From 01aeb1cd308744a97cd9b0ce26728a166483ff49 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Tue, 12 Jan 2021 08:24:00 -0500 Subject: [PATCH] fix safari incopatibility --- config.js | 4 +- dist/demo-browser-index.js | 22 +- dist/demo-browser-index.js.map | 4 +- dist/demo-browser-index.json | 8 +- dist/human.esm-nobundle.js | 6 +- dist/human.esm-nobundle.js.map | 6 +- dist/human.esm.js | 22 +- dist/human.esm.js.map | 4 +- dist/human.esm.json | 18 +- dist/human.js | 22 +- dist/human.js.map | 4 +- dist/human.json | 18 +- dist/human.node-gpu.js | 6 +- dist/human.node-gpu.js.map | 6 +- dist/human.node.js | 6 +- dist/human.node.js.map | 6 +- dist/human.node.json | 231 +++++----- models/blazepose.bin | Bin 3257752 -> 6802836 bytes models/blazepose.json | 763 ++++++++++++++++++++++----------- src/blazepose/blazepose.js | 197 +-------- src/blazepose/detect.js | 295 ------------- src/blazepose/helpers.js | 160 ------- src/blazepose/main.js | 374 ---------------- src/human.js | 63 ++- wiki | 2 +- 25 files changed, 776 insertions(+), 1471 deletions(-) delete mode 100644 src/blazepose/detect.js delete mode 100644 src/blazepose/helpers.js delete mode 100644 src/blazepose/main.js diff --git a/config.js b/config.js index 6b653ab9..1a39d5e5 100644 --- a/config.js +++ b/config.js @@ -144,14 +144,14 @@ export default { modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet }, - pose: { + pose: { // TBD: not currently in use enabled: false, scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score // in non-maximum suppression iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much // in non-maximum suppression modelPath: '../models/blazepose.json', - inputSize: 128, // fixed value + inputSize: 256, // fixed value }, hand: { diff --git a/dist/demo-browser-index.js b/dist/demo-browser-index.js index 0afac6a7..542b3b30 100644 --- a/dist/demo-browser-index.js +++ b/dist/demo-browser-index.js @@ -5,19 +5,19 @@ author: ' */ -var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__markAsModule=target=>__defProp(target,"__esModule",{value:!0}),__commonJS=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export=(target,all4)=>{__markAsModule(target);for(var name in all4)__defProp(target,name,{get:all4[name],enumerable:!0})},__exportStar=(target,module,desc)=>{if(__markAsModule(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames(module))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc(module,key))||desc.enumerable});return target},__toModule=module=>module&&module.__esModule?module:__exportStar(__defProp(module!=null?__create(__getProtoOf(module)):{},"default",{value:module,enumerable:!0}),module),require_blazeface=__commonJS(exports=>{var NUM_LANDMARKS=6;function generateAnchors2(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors2=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:slice(startEndTensor,[0,0],[-1,2]),endPoint:slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=mul(box.startPoint,factors),ends=mul(box.endPoint,factors),newCoordinates=concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors2,inputSize){let boxStarts=slice(boxOutputs,[0,1],[-1,2]),centers=add2(boxStarts,anchors2),boxSizes=slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=div(boxSizes,inputSize),centersNormalized=div(centers,inputSize),halfBoxSize=div(boxSizesNormalized,2),starts=sub(centersNormalized,halfBoxSize),ends=add2(centersNormalized,halfBoxSize),startNormalized=mul(starts,inputSize),endNormalized=mul(ends,inputSize);return concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model2,config3){this.blazeFaceModel=model2,this.width=config3.face.detector.inputSize,this.height=config3.face.detector.inputSize,this.anchorsData=generateAnchors2(config3.face.detector.inputSize),this.anchors=tensor2d(this.anchorsData),this.inputSize=tensor1d([this.width,this.height]),this.config=config3,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=concat([sorted[0],sorted[2]],2),concat512=concat([sorted[1],sorted[3]],2);prediction=concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=slice(prediction,[0,0],[-1,1]),scoresOut=sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tidy(()=>slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input2){let{boxes,scaleFactor}=await this.getBoundingBoxes(input2),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load3(config3){let blazeface=await loadGraphModel(config3.face.detector.modelPath,{fromTFHub:config3.face.detector.modelPath.includes("tfhub.dev")}),model2=new BlazeFaceModel(blazeface,config3);return log(`load model: ${config3.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model2}exports.load=load3,exports.BlazeFaceModel=BlazeFaceModel,exports.disposeBox=disposeBox}),require_box=__commonJS(exports=>{function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}exports.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports.squarifyBox=squarifyBox2}),require_util=__commonJS(exports=>{exports.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot5(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports.MESH_ANNOTATIONS=MESH_ANNOTATIONS,exports.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP,exports.TRI468=TRI468,exports.TRI68=TRI68,exports.TRI33=TRI33,exports.TRI7=TRI7,exports.UV468=UV468,exports.UV68=VTX68.map(x=>UV468[x]),exports.UV33=VTX33.map(x=>UV468[x]),exports.UV7=VTX7.map(x=>UV468[x])}),require_facepipeline=__commonJS(exports=>{var bounding=__toModule(require_box()),util=__toModule(require_util()),coords2=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords2.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input2,config3){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config3.face.detector.skipFrames||!config3.face.mesh.enabled||!config3.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input2),this.skipped=0),config3.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config3.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config3.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config3.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input2.shape[2],faceCenter[1]/input2.shape[1]],rotatedImage=image.rotateWithOffset(input2,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input2.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config3.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports.Pipeline=Pipeline}),require_facemesh=__commonJS(exports=>{var blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords2=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config3){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config3),this.config=config3}async estimateFaces(input2,config3){let predictions=await this.facePipeline.predict(input2,config3),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords2.MESH_ANNOTATIONS))annotations[key]=coords2.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config3.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input2.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input2.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load3(config3){faceModels=await Promise.all([!faceModels[0]&&config3.face.enabled?blazeface.load(config3):null,!faceModels[1]&&config3.face.mesh.enabled?loadGraphModel(config3.face.mesh.modelPath,{fromTFHub:config3.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config3.face.iris.enabled?loadGraphModel(config3.face.iris.modelPath,{fromTFHub:config3.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config3);return config3.face.mesh.enabled&&log(`load model: ${config3.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config3.face.iris.enabled&&log(`load model: ${config3.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports.load=load3,exports.MediaPipeFaceMesh=MediaPipeFaceMesh,exports.triangulation=coords2.TRI468}),require_profile=__commonJS(exports=>{var profileData={};function profile3(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time2=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time2,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports.run=profile3}),require_age=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load3(config3){return models2.age||(models2.age=await loadGraphModel(config3.face.age.modelPath),log(`load model: ${config3.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models2.age}async function predict3(image3,config3){return models2.age?skipped0?(skipped++,last):(config3.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config3.face.age.inputSize,config3.face.age.inputSize],!1),enhance=mul(resize,[255]);dispose(resize);let ageT,obj={};if(!config3.profile)config3.face.age.enabled&&(ageT=await models2.age.predict(enhance));else{let profileAge=config3.face.age.enabled?await profile(()=>models2.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile3.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3,exports.load=load3}),require_gender=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load3(config3){return models2.gender||(models2.gender=await loadGraphModel(config3.face.gender.modelPath),alternative=models2.gender.inputs[0].shape[3]===1,log(`load model: ${config3.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models2.gender}async function predict3(image3,config3){return models2.gender?skipped{let resize=image.resizeBilinear(image3,[config3.face.gender.inputSize,config3.face.gender.inputSize],!1),enhance;alternative?enhance=tidy(()=>{let[red,green,blue]=split(resize,3,3),redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);return addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=mul(resize,[255]),dispose(resize);let genderT,obj={};if(!config3.profile)config3.face.gender.enabled&&(genderT=await models2.gender.predict(enhance));else{let profileGender=config3.face.gender.enabled?await profile(()=>models2.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile3.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config3.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config3.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3,exports.load=load3}),require_emotion=__commonJS(exports=>{var profile3=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models2={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale2=1;async function load3(config3){return models2.emotion||(models2.emotion=await loadGraphModel(config3.face.emotion.modelPath),log(`load model: ${config3.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models2.emotion}async function predict3(image3,config3){return models2.emotion?skipped0?(skipped++,last):(config3.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config3.face.emotion.inputSize,config3.face.emotion.inputSize],!1),[red,green,blue]=split(resize,3,3);resize.dispose();let redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config3.face.emotion.enabled){let data2;if(config3.profile){let profileData=await profile(()=>models2.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile3.run("emotion",profileData)}else{let emotionT=await models2.emotion.predict(normalize);data2=emotionT.dataSync(),dispose(emotionT)}for(let i=0;iconfig3.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale2*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3,exports.load=load3}),require_embedding=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={};async function load3(config3){return models2.embedding||(models2.embedding=await loadGraphModel(config3.face.embedding.modelPath),log(`load model: ${config3.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models2.embedding}function simmilarity2(embedding1,embedding22){if((embedding1==null?void 0:embedding1.length)!==(embedding22==null?void 0:embedding22.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding22[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict3(image3,config3){return models2.embedding?new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config3.face.embedding.inputSize,config3.face.embedding.inputSize],!1),data2=[];if(config3.face.embedding.enabled)if(config3.profile){let profileData=await profile(()=>models2.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile3.run("emotion",profileData)}else{let embeddingT=await models2.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports.predict=predict3,exports.simmilarity=simmilarity2,exports.load=load3}),require_modelBase=__commonJS(exports=>{var imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model2){this.model=model2}predict(input2,config3){return tidy(()=>{let asBatch=(config3.body.modelType==="ResNet"?input2.toFloat().add(imageNetMean):input2.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config3.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports.BaseModel=BaseModel}),require_heapSort=__commonJS(exports=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max6=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max6}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],exports.NUM_KEYPOINTS=exports.partNames.length,exports.partIds=exports.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports.partIds[jointNameA],exports.partIds[jointNameB]]),exports.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]],exports.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]}),require_vectors=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax6?max6:a}exports.clamp=clamp2;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports.addVectors=addVectors;function clampVector(a,min6,max6){return{y:clamp2(a.y,min6,max6),x:clamp2(a.x,min6,max6)}}exports.clampVector=clampVector}),require_decoders=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports.getOffsetPoints=getOffsetPoints;function mod4(a,b){return tidy(()=>{let floored=a.div(scalar(b,"int32"));return a.sub(floored.mul(scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tidy(()=>{let coords2=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords2.div(scalar(width,"int32")).expandDims(1),xCoords=mod4(coords2,width).expandDims(1);return concat([yCoords,xCoords],1)})}exports.argmax2d=argmax2d}),require_decodePose=__commonJS(exports=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config3.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports.decodeSinglePose=decodeSinglePose}),require_decodeMultiple=__commonJS(exports=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config3){let poses=[],queue=buildParts.buildPartWithScoreQueue(config3.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config3.body.nmsRadius^2;for(;poses.lengthconfig3.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports.decodeMultiplePoses=decodeMultiplePoses}),require_util2=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor2=>tensor2.buffer()))}exports.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports.scalePose=scalePose;function resizeTo(image3,[targetH,targetW]){let input2=image3.squeeze(0),resized=input2.resizeBilinear([targetH,targetW]);return input2.dispose(),resized}exports.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports.scaleAndFlipPoses=scaleAndFlipPoses}),require_modelPoseNet=__commonJS(exports=>{var modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input2,res,config3){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config3),scaled=util.scaleAndFlipPoses(poses,[height,width],[config3.body.inputSize,config3.body.inputSize]);resolve(scaled)})}async function estimateSingle(input2,res,config3){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config3)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config3.body.inputSize,config3.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model2){this.baseModel=model2}async estimatePoses(input2,config3){let resized=util.resizeTo(input2,[config3.body.inputSize,config3.body.inputSize]),res=this.baseModel.predict(resized,config3),poses=config3.body.maxDetections<2?await estimateSingle(input2,res,config3):await estimateMultiple(input2,res,config3);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports.PoseNet=PoseNet;async function load3(config3){let model2=await loadGraphModel(config3.body.modelPath),mobilenet=new modelBase.BaseModel(model2);return log(`load model: ${config3.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports.load=load3}),require_posenet=__commonJS(exports=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports.load=modelPoseNet.load,exports.PoseNet=modelPoseNet.PoseNet,exports.partChannels=keypoints.partChannels,exports.partIds=keypoints.partIds,exports.partNames=keypoints.partNames,exports.poseChain=keypoints.poseChain,exports.getAdjacentKeyPoints=util.getAdjacentKeyPoints,exports.getBoundingBox=util.getBoundingBox,exports.getBoundingBoxPoints=util.getBoundingBoxPoints,exports.scaleAndFlipPoses=util.scaleAndFlipPoses,exports.scalePose=util.scalePose}),require_handdetector=__commonJS(exports=>{var HandDetector=class{constructor(model2,inputSize,anchorsAnnotated){this.model=model2,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tensor2d(this.anchors),this.inputSizeTensor=tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tidy(()=>{let boxOffsets=slice(boxes,[0,0],[-1,2]),boxSizes=slice(boxes,[0,2],[-1,2]),boxCenterPoints=add2(div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=div(boxSizes,this.doubleInputSizeTensor),startPoints=mul(sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=mul(add2(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tidy(()=>{let landmarks=add2(div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return mul(landmarks,this.inputSizeTensor)})}async getBoxes(input2,config3){let batched=this.model.predict(input2),predictions=batched.squeeze();batched.dispose();let scoresT=tidy(()=>sigmoid(slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await image.nonMaxSuppressionAsync(boxes,scores,config3.hand.maxHands,config3.hand.iouThreshold,config3.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config3.hand.minConfidence){let matchingBox=slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=slice(predictions,[index,5],[1,14]),palmLandmarks=tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input2,config3){let inputHeight=input2.shape[1],inputWidth=input2.shape[2],image3=tidy(()=>input2.resizeBilinear([config3.hand.inputSize,config3.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image3,config3);image3.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config3.hand.inputSize,inputHeight/config3.hand.inputSize]))}return hands}};exports.HandDetector=HandDetector}),require_handpipeline=__commonJS(exports=>{var PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot4(boxCenter,inverseRotationMatrix[0]),dot4(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image3,config3){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config3.hand.skipFrames||!config3.hand.landmarks||!config3.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image3,config3),this.skipped=0),config3.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config3.hand.maxHands||!config3.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config3.hand.minConfidence){let keypointsReshaped=reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords2=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords2);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords2,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports.HandPipeline=HandPipeline}),require_anchors=__commonJS(exports=>{exports.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]}),require_handpose=__commonJS(exports=>{var handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors2=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input2,config3){let predictions=await this.handPipeline.estimateHands(input2,config3);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input2.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input2.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports.HandPose=HandPose;async function load3(config3){let[handDetectorModel,handPoseModel]=await Promise.all([config3.hand.enabled?loadGraphModel(config3.hand.detector.modelPath,{fromTFHub:config3.hand.detector.modelPath.includes("tfhub.dev")}):null,config3.hand.landmarks?loadGraphModel(config3.hand.skeleton.modelPath,{fromTFHub:config3.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config3.hand.inputSize,anchors2.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config3.hand.inputSize),handPose=new HandPose(handPipeline);return config3.hand.enabled&&log(`load model: ${config3.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config3.hand.landmarks&&log(`load model: ${config3.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports.load=load3}),require_gesture=__commonJS(exports=>{exports.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures},exports.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures},exports.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image3){if(_resize(image3.width,image3.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image3),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` +var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__markAsModule=target=>__defProp(target,"__esModule",{value:!0}),__commonJS=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export=(target,all4)=>{__markAsModule(target);for(var name in all4)__defProp(target,name,{get:all4[name],enumerable:!0})},__exportStar=(target,module,desc)=>{if(__markAsModule(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames(module))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc(module,key))||desc.enumerable});return target},__toModule=module=>module&&module.__esModule?module:__exportStar(__defProp(module!=null?__create(__getProtoOf(module)):{},"default",{value:module,enumerable:!0}),module),require_blazeface=__commonJS(exports=>{var NUM_LANDMARKS=6;function generateAnchors(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:slice(startEndTensor,[0,0],[-1,2]),endPoint:slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=mul(box.startPoint,factors),ends=mul(box.endPoint,factors),newCoordinates=concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors,inputSize){let boxStarts=slice(boxOutputs,[0,1],[-1,2]),centers=add2(boxStarts,anchors),boxSizes=slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=div(boxSizes,inputSize),centersNormalized=div(centers,inputSize),halfBoxSize=div(boxSizesNormalized,2),starts=sub(centersNormalized,halfBoxSize),ends=add2(centersNormalized,halfBoxSize),startNormalized=mul(starts,inputSize),endNormalized=mul(ends,inputSize);return concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model2,config2){this.blazeFaceModel=model2,this.width=config2.face.detector.inputSize,this.height=config2.face.detector.inputSize,this.anchorsData=generateAnchors(config2.face.detector.inputSize),this.anchors=tensor2d(this.anchorsData),this.inputSize=tensor1d([this.width,this.height]),this.config=config2,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=concat([sorted[0],sorted[2]],2),concat512=concat([sorted[1],sorted[3]],2);prediction=concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=slice(prediction,[0,0],[-1,1]),scoresOut=sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tidy(()=>slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input2){let{boxes,scaleFactor}=await this.getBoundingBoxes(input2),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load3(config2){let blazeface=await loadGraphModel(config2.face.detector.modelPath,{fromTFHub:config2.face.detector.modelPath.includes("tfhub.dev")}),model2=new BlazeFaceModel(blazeface,config2);return log(`load model: ${config2.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model2}exports.load=load3,exports.BlazeFaceModel=BlazeFaceModel,exports.disposeBox=disposeBox}),require_box=__commonJS(exports=>{function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}exports.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports.squarifyBox=squarifyBox2}),require_util=__commonJS(exports=>{exports.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot5(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports.MESH_ANNOTATIONS=MESH_ANNOTATIONS,exports.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP,exports.TRI468=TRI468,exports.TRI68=TRI68,exports.TRI33=TRI33,exports.TRI7=TRI7,exports.UV468=UV468,exports.UV68=VTX68.map(x=>UV468[x]),exports.UV33=VTX33.map(x=>UV468[x]),exports.UV7=VTX7.map(x=>UV468[x])}),require_facepipeline=__commonJS(exports=>{var bounding=__toModule(require_box()),util=__toModule(require_util()),coords2=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords2.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input2,config2){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config2.face.detector.skipFrames||!config2.face.mesh.enabled||!config2.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input2),this.skipped=0),config2.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config2.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config2.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config2.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input2.shape[2],faceCenter[1]/input2.shape[1]],rotatedImage=image.rotateWithOffset(input2,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input2.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config2.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports.Pipeline=Pipeline}),require_facemesh=__commonJS(exports=>{var blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords2=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config2){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config2),this.config=config2}async estimateFaces(input2,config2){let predictions=await this.facePipeline.predict(input2,config2),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords2.MESH_ANNOTATIONS))annotations[key]=coords2.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config2.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input2.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input2.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load3(config2){faceModels=await Promise.all([!faceModels[0]&&config2.face.enabled?blazeface.load(config2):null,!faceModels[1]&&config2.face.mesh.enabled?loadGraphModel(config2.face.mesh.modelPath,{fromTFHub:config2.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config2.face.iris.enabled?loadGraphModel(config2.face.iris.modelPath,{fromTFHub:config2.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config2);return config2.face.mesh.enabled&&log(`load model: ${config2.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config2.face.iris.enabled&&log(`load model: ${config2.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports.load=load3,exports.MediaPipeFaceMesh=MediaPipeFaceMesh,exports.triangulation=coords2.TRI468}),require_profile=__commonJS(exports=>{var profileData={};function profile3(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time2=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time2,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports.run=profile3}),require_age=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load3(config2){return models2.age||(models2.age=await loadGraphModel(config2.face.age.modelPath),log(`load model: ${config2.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models2.age}async function predict3(image3,config2){return models2.age?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.face.age.inputSize,config2.face.age.inputSize],!1),enhance=mul(resize,[255]);dispose(resize);let ageT,obj={};if(!config2.profile)config2.face.age.enabled&&(ageT=await models2.age.predict(enhance));else{let profileAge=config2.face.age.enabled?await profile(()=>models2.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile3.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3,exports.load=load3}),require_gender=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load3(config2){return models2.gender||(models2.gender=await loadGraphModel(config2.face.gender.modelPath),alternative=models2.gender.inputs[0].shape[3]===1,log(`load model: ${config2.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models2.gender}async function predict3(image3,config2){return models2.gender?skipped{let resize=image.resizeBilinear(image3,[config2.face.gender.inputSize,config2.face.gender.inputSize],!1),enhance;alternative?enhance=tidy(()=>{let[red,green,blue]=split(resize,3,3),redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);return addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=mul(resize,[255]),dispose(resize);let genderT,obj={};if(!config2.profile)config2.face.gender.enabled&&(genderT=await models2.gender.predict(enhance));else{let profileGender=config2.face.gender.enabled?await profile(()=>models2.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile3.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3,exports.load=load3}),require_emotion=__commonJS(exports=>{var profile3=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models2={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale2=1;async function load3(config2){return models2.emotion||(models2.emotion=await loadGraphModel(config2.face.emotion.modelPath),log(`load model: ${config2.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models2.emotion}async function predict3(image3,config2){return models2.emotion?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.face.emotion.inputSize,config2.face.emotion.inputSize],!1),[red,green,blue]=split(resize,3,3);resize.dispose();let redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config2.face.emotion.enabled){let data2;if(config2.profile){let profileData=await profile(()=>models2.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile3.run("emotion",profileData)}else{let emotionT=await models2.emotion.predict(normalize);data2=emotionT.dataSync(),dispose(emotionT)}for(let i=0;iconfig2.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale2*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3,exports.load=load3}),require_embedding=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={};async function load3(config2){return models2.embedding||(models2.embedding=await loadGraphModel(config2.face.embedding.modelPath),log(`load model: ${config2.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models2.embedding}function simmilarity2(embedding1,embedding22){if((embedding1==null?void 0:embedding1.length)!==(embedding22==null?void 0:embedding22.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding22[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict3(image3,config2){return models2.embedding?new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.face.embedding.inputSize,config2.face.embedding.inputSize],!1),data2=[];if(config2.face.embedding.enabled)if(config2.profile){let profileData=await profile(()=>models2.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile3.run("emotion",profileData)}else{let embeddingT=await models2.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports.predict=predict3,exports.simmilarity=simmilarity2,exports.load=load3}),require_modelBase=__commonJS(exports=>{var imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model2){this.model=model2}predict(input2,config2){return tidy(()=>{let asBatch=(config2.body.modelType==="ResNet"?input2.toFloat().add(imageNetMean):input2.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config2.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports.BaseModel=BaseModel}),require_heapSort=__commonJS(exports=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max6=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max6}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],exports.NUM_KEYPOINTS=exports.partNames.length,exports.partIds=exports.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports.partIds[jointNameA],exports.partIds[jointNameB]]),exports.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]],exports.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]}),require_vectors=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax6?max6:a}exports.clamp=clamp2;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports.addVectors=addVectors;function clampVector(a,min6,max6){return{y:clamp2(a.y,min6,max6),x:clamp2(a.x,min6,max6)}}exports.clampVector=clampVector}),require_decoders=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports.getOffsetPoints=getOffsetPoints;function mod4(a,b){return tidy(()=>{let floored=a.div(scalar(b,"int32"));return a.sub(floored.mul(scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tidy(()=>{let coords2=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords2.div(scalar(width,"int32")).expandDims(1),xCoords=mod4(coords2,width).expandDims(1);return concat([yCoords,xCoords],1)})}exports.argmax2d=argmax2d}),require_decodePose=__commonJS(exports=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config2.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports.decodeSinglePose=decodeSinglePose}),require_decodeMultiple=__commonJS(exports=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2){let poses=[],queue=buildParts.buildPartWithScoreQueue(config2.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config2.body.nmsRadius^2;for(;poses.lengthconfig2.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports.decodeMultiplePoses=decodeMultiplePoses}),require_util2=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor2=>tensor2.buffer()))}exports.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports.scalePose=scalePose;function resizeTo(image3,[targetH,targetW]){let input2=image3.squeeze(0),resized=input2.resizeBilinear([targetH,targetW]);return input2.dispose(),resized}exports.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports.scaleAndFlipPoses=scaleAndFlipPoses}),require_modelPoseNet=__commonJS(exports=>{var modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input2,res,config2){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2),scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}async function estimateSingle(input2,res,config2){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config2)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model2){this.baseModel=model2}async estimatePoses(input2,config2){let resized=util.resizeTo(input2,[config2.body.inputSize,config2.body.inputSize]),res=this.baseModel.predict(resized,config2),poses=config2.body.maxDetections<2?await estimateSingle(input2,res,config2):await estimateMultiple(input2,res,config2);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports.PoseNet=PoseNet;async function load3(config2){let model2=await loadGraphModel(config2.body.modelPath),mobilenet=new modelBase.BaseModel(model2);return log(`load model: ${config2.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports.load=load3}),require_posenet=__commonJS(exports=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports.load=modelPoseNet.load,exports.PoseNet=modelPoseNet.PoseNet,exports.partChannels=keypoints.partChannels,exports.partIds=keypoints.partIds,exports.partNames=keypoints.partNames,exports.poseChain=keypoints.poseChain,exports.getAdjacentKeyPoints=util.getAdjacentKeyPoints,exports.getBoundingBox=util.getBoundingBox,exports.getBoundingBoxPoints=util.getBoundingBoxPoints,exports.scaleAndFlipPoses=util.scaleAndFlipPoses,exports.scalePose=util.scalePose}),require_handdetector=__commonJS(exports=>{var HandDetector=class{constructor(model2,inputSize,anchorsAnnotated){this.model=model2,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tensor2d(this.anchors),this.inputSizeTensor=tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tidy(()=>{let boxOffsets=slice(boxes,[0,0],[-1,2]),boxSizes=slice(boxes,[0,2],[-1,2]),boxCenterPoints=add2(div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=div(boxSizes,this.doubleInputSizeTensor),startPoints=mul(sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=mul(add2(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tidy(()=>{let landmarks=add2(div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return mul(landmarks,this.inputSizeTensor)})}async getBoxes(input2,config2){let batched=this.model.predict(input2),predictions=batched.squeeze();batched.dispose();let scoresT=tidy(()=>sigmoid(slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await image.nonMaxSuppressionAsync(boxes,scores,config2.hand.maxHands,config2.hand.iouThreshold,config2.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config2.hand.minConfidence){let matchingBox=slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=slice(predictions,[index,5],[1,14]),palmLandmarks=tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input2,config2){let inputHeight=input2.shape[1],inputWidth=input2.shape[2],image3=tidy(()=>input2.resizeBilinear([config2.hand.inputSize,config2.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image3,config2);image3.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config2.hand.inputSize,inputHeight/config2.hand.inputSize]))}return hands}};exports.HandDetector=HandDetector}),require_handpipeline=__commonJS(exports=>{var PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot4(boxCenter,inverseRotationMatrix[0]),dot4(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image3,config2){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config2.hand.skipFrames||!config2.hand.landmarks||!config2.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image3,config2),this.skipped=0),config2.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config2.hand.maxHands||!config2.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config2.hand.minConfidence){let keypointsReshaped=reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords2=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords2);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords2,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports.HandPipeline=HandPipeline}),require_anchors=__commonJS(exports=>{exports.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]}),require_handpose=__commonJS(exports=>{var handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input2,config2){let predictions=await this.handPipeline.estimateHands(input2,config2);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input2.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input2.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports.HandPose=HandPose;async function load3(config2){let[handDetectorModel,handPoseModel]=await Promise.all([config2.hand.enabled?loadGraphModel(config2.hand.detector.modelPath,{fromTFHub:config2.hand.detector.modelPath.includes("tfhub.dev")}):null,config2.hand.landmarks?loadGraphModel(config2.hand.skeleton.modelPath,{fromTFHub:config2.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config2.hand.inputSize,anchors.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config2.hand.inputSize),handPose=new HandPose(handPipeline);return config2.hand.enabled&&log(`load model: ${config2.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config2.hand.landmarks&&log(`load model: ${config2.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports.load=load3}),require_gesture=__commonJS(exports=>{exports.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures},exports.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures},exports.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image3){if(_resize(image3.width,image3.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image3),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` `),SHADER.FRAGMENT_IDENTITY=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","void main(void) {","gl_FragColor = texture2D(texture, vUv);","}"].join(` `);let _filter={};_filter.colorMatrix=function(matrix){let m=new Float32Array(matrix);m[4]/=255,m[9]/=255,m[14]/=255,m[19]/=255;let shader=m[18]===1&&m[3]===0&&m[8]===0&&m[13]===0&&m[15]===0&&m[16]===0&&m[17]===0&&m[19]===0?_filter.colorMatrix.SHADER.WITHOUT_ALPHA:_filter.colorMatrix.SHADER.WITH_ALPHA,program=_compileShader(shader);gl.uniform1fv(program.uniform.m,m),_draw()},_filter.colorMatrix.SHADER={},_filter.colorMatrix.SHADER.WITH_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];","gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];","}"].join(` `),_filter.colorMatrix.SHADER.WITHOUT_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];","gl_FragColor.a = c.a;","}"].join(` `),_filter.brightness=function(brightness){let b=(brightness||0)+1;_filter.colorMatrix([b,0,0,0,0,0,b,0,0,0,0,0,b,0,0,0,0,0,1,0])},_filter.saturation=function(amount){let x=(amount||0)*2/3+1,y=(x-1)*-.5;_filter.colorMatrix([x,y,y,0,0,y,x,y,0,0,y,y,x,0,0,0,0,0,1,0])},_filter.desaturate=function(){_filter.saturation(-1)},_filter.contrast=function(amount){let v=(amount||0)+1,o=-128*(v-1);_filter.colorMatrix([v,0,0,0,o,0,v,0,0,o,0,0,v,0,o,0,0,0,1,0])},_filter.negative=function(){_filter.contrast(-2)},_filter.hue=function(rotation){rotation=(rotation||0)/180*Math.PI;let cos4=Math.cos(rotation),sin4=Math.sin(rotation),lumR=.213,lumG=.715,lumB=.072;_filter.colorMatrix([lumR+cos4*(1-lumR)+sin4*-lumR,lumG+cos4*-lumG+sin4*-lumG,lumB+cos4*-lumB+sin4*(1-lumB),0,0,lumR+cos4*-lumR+sin4*.143,lumG+cos4*(1-lumG)+sin4*.14,lumB+cos4*-lumB+sin4*-.283,0,0,lumR+cos4*-lumR+sin4*-(1-lumR),lumG+cos4*-lumG+sin4*lumG,lumB+cos4*(1-lumB)+sin4*lumB,0,0,0,0,0,1,0])},_filter.desaturateLuminance=function(){_filter.colorMatrix([.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,0,0,0,1,0])},_filter.sepia=function(){_filter.colorMatrix([.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0])},_filter.brownie=function(){_filter.colorMatrix([.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0])},_filter.vintagePinhole=function(){_filter.colorMatrix([.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0])},_filter.kodachrome=function(){_filter.colorMatrix([1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0])},_filter.technicolor=function(){_filter.colorMatrix([1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0])},_filter.polaroid=function(){_filter.colorMatrix([1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0])},_filter.shiftToBGR=function(){_filter.colorMatrix([0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0])},_filter.convolution=function(matrix){let m=new Float32Array(matrix),pixelSizeX=1/_width,pixelSizeY=1/_height,program=_compileShader(_filter.convolution.SHADER);gl.uniform1fv(program.uniform.m,m),gl.uniform2f(program.uniform.px,pixelSizeX,pixelSizeY),_draw()},_filter.convolution.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","uniform float m[9];","void main(void) {","vec4 c11 = texture2D(texture, vUv - px);","vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));","vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));","vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );","vec4 c22 = texture2D(texture, vUv);","vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );","vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );","vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );","vec4 c33 = texture2D(texture, vUv + px );","gl_FragColor = ","c11 * m[0] + c12 * m[1] + c22 * m[2] +","c21 * m[3] + c22 * m[4] + c23 * m[5] +","c31 * m[6] + c32 * m[7] + c33 * m[8];","gl_FragColor.a = c22.a;","}"].join(` `),_filter.detectEdges=function(){_filter.convolution.call(this,[0,1,0,1,-4,1,0,1,0])},_filter.sobelX=function(){_filter.convolution.call(this,[-1,0,1,-2,0,2,-1,0,1])},_filter.sobelY=function(){_filter.convolution.call(this,[-1,-2,-1,0,0,0,1,2,1])},_filter.sharpen=function(amount){let a=amount||1;_filter.convolution.call(this,[0,-1*a,0,-1*a,1+4*a,-1*a,0,-1*a,0])},_filter.emboss=function(size){let s=size||1;_filter.convolution.call(this,[-2*s,-1*s,0,-1*s,1,1*s,0,1*s,2*s])},_filter.blur=function(size){let blurSizeX=size/7/_width,blurSizeY=size/7/_height,program=_compileShader(_filter.blur.SHADER);gl.uniform2f(program.uniform.px,0,blurSizeY),_draw(DRAW.INTERMEDIATE),gl.uniform2f(program.uniform.px,blurSizeX,0),_draw()},_filter.blur.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","void main(void) {","gl_FragColor = vec4(0.0);","gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;","gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv )*0.159576912161;","gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;","}"].join(` `),_filter.pixelate=function(size){let blurSizeX=size/_width,blurSizeY=size/_height,program=_compileShader(_filter.pixelate.SHADER);gl.uniform2f(program.uniform.size,blurSizeX,blurSizeY),_draw()},_filter.pixelate.SHADER=["precision highp float;","varying vec2 vUv;","uniform vec2 size;","uniform sampler2D texture;","vec2 pixelate(vec2 coord, vec2 size) {","return floor( coord / size ) * size;","}","void main(void) {","gl_FragColor = vec4(0.0);","vec2 coord = pixelate(vUv, size);","gl_FragColor += texture2D(texture, coord);","}"].join(` -`)};exports.Canvas=WebGLImageFilter}),require_image=__commonJS(exports=>{var fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input2,config3){let tensor2;if(input2 instanceof Tensor)tensor2=clone(input2);else{let originalWidth=input2.naturalWidth||input2.videoWidth||input2.width||input2.shape&&input2.shape[1]>0,originalHeight=input2.naturalHeight||input2.videoHeight||input2.height||input2.shape&&input2.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config3.filter.width>0?targetWidth=config3.filter.width:config3.filter.height>0&&(targetWidth=originalWidth*(config3.filter.height/originalHeight)),config3.filter.height>0?targetHeight=config3.filter.height:config3.filter.width>0&&(targetHeight=originalHeight*(config3.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input2),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input2 instanceof ImageData?ctx.putImageData(input2,0,0):ctx.drawImage(input2,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config3.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config3.filter.brightness),config3.filter.contrast!==0&&this.fx.addFilter("contrast",config3.filter.contrast),config3.filter.sharpness!==0&&this.fx.addFilter("sharpen",config3.filter.sharpness),config3.filter.blur!==0&&this.fx.addFilter("blur",config3.filter.blur),config3.filter.saturation!==0&&this.fx.addFilter("saturation",config3.filter.saturation),config3.filter.hue!==0&&this.fx.addFilter("hue",config3.filter.hue),config3.filter.negative&&this.fx.addFilter("negative"),config3.filter.sepia&&this.fx.addFilter("sepia"),config3.filter.vintage&&this.fx.addFilter("brownie"),config3.filter.sepia&&this.fx.addFilter("sepia"),config3.filter.kodachrome&&this.fx.addFilter("kodachrome"),config3.filter.technicolor&&this.fx.addFilter("technicolor"),config3.filter.polaroid&&this.fx.addFilter("polaroid"),config3.filter.pixelate!==0&&this.fx.addFilter("pixelate",config3.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tensor3d(outCanvas.data,shape,"int32")}else if(config3.backend==="webgl"||outCanvas instanceof ImageData)pixels=browser_exports.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=browser_exports.fromPixels(data2)}let casted=pixels.toFloat();tensor2=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor:tensor2,canvas:config3.filter.return?outCanvas:null}}exports.process=process3});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tfjs_esm_exports={};__export(tfjs_esm_exports,{Abs:()=>Abs,Acos:()=>Acos,Acosh:()=>Acosh,AdadeltaOptimizer:()=>AdadeltaOptimizer,AdagradOptimizer:()=>AdagradOptimizer,AdamOptimizer:()=>AdamOptimizer,AdamaxOptimizer:()=>AdamaxOptimizer,Add:()=>Add,AddN:()=>AddN,All:()=>All,Any:()=>Any,ArgMax:()=>ArgMax,ArgMin:()=>ArgMin,Asin:()=>Asin,Asinh:()=>Asinh,Atan:()=>Atan,Atan2:()=>Atan2,Atanh:()=>Atanh,AvgPool:()=>AvgPool,AvgPool3D:()=>AvgPool3D,AvgPool3DGrad:()=>AvgPool3DGrad,AvgPoolGrad:()=>AvgPoolGrad,BackendWasm:()=>BackendWasm,BatchMatMul:()=>BatchMatMul,BatchToSpaceND:()=>BatchToSpaceND,Bincount:()=>Bincount,BroadcastTo:()=>BroadcastTo,Callback:()=>Callback,CallbackList:()=>CallbackList,Cast:()=>Cast,Ceil:()=>Ceil,ClipByValue:()=>ClipByValue,Complex:()=>Complex,ComplexAbs:()=>ComplexAbs,Concat:()=>Concat,Conv2D:()=>Conv2D,Conv2DBackpropFilter:()=>Conv2DBackpropFilter,Conv2DBackpropInput:()=>Conv2DBackpropInput,Conv3D:()=>Conv3D,Conv3DBackpropFilterV2:()=>Conv3DBackpropFilterV2,Conv3DBackpropInputV2:()=>Conv3DBackpropInputV2,Cos:()=>Cos,Cosh:()=>Cosh,CropAndResize:()=>CropAndResize,Cumsum:()=>Cumsum,CustomCallback:()=>CustomCallback,DataStorage:()=>DataStorage,DenseBincount:()=>DenseBincount,DepthToSpace:()=>DepthToSpace,DepthwiseConv2dNative:()=>DepthwiseConv2dNative,DepthwiseConv2dNativeBackpropFilter:()=>DepthwiseConv2dNativeBackpropFilter,DepthwiseConv2dNativeBackpropInput:()=>DepthwiseConv2dNativeBackpropInput,Diag:()=>Diag,Dilation2D:()=>Dilation2D,Dilation2DBackpropFilter:()=>Dilation2DBackpropFilter,Dilation2DBackpropInput:()=>Dilation2DBackpropInput,ENV:()=>ENV,EarlyStopping:()=>EarlyStopping,Elu:()=>Elu,EluGrad:()=>EluGrad,Environment:()=>Environment,Equal:()=>Equal,Erf:()=>Erf,Exp:()=>Exp,ExpandDims:()=>ExpandDims,Expm1:()=>Expm1,FFT:()=>FFT,Fill:()=>Fill,FlipLeftRight:()=>FlipLeftRight,Floor:()=>Floor,FloorDiv:()=>FloorDiv,FromPixels:()=>FromPixels,FusedBatchNorm:()=>FusedBatchNorm,FusedConv2D:()=>FusedConv2D,FusedDepthwiseConv2D:()=>FusedDepthwiseConv2D,GPGPUContext:()=>GPGPUContext,GatherNd:()=>GatherNd,GatherV2:()=>GatherV2,GraphModel:()=>GraphModel,Greater:()=>Greater,GreaterEqual:()=>GreaterEqual,History:()=>History,IFFT:()=>IFFT,Identity:()=>Identity,Imag:()=>Imag,InputSpec:()=>InputSpec,IsFinite:()=>IsFinite,IsInf:()=>IsInf,IsNan:()=>IsNan,KernelBackend:()=>KernelBackend,LRN:()=>LRN,LRNGrad:()=>LRNGrad,LayerVariable:()=>LayerVariable,LayersModel:()=>LayersModel,LeakyRelu:()=>LeakyRelu,Less:()=>Less,LessEqual:()=>LessEqual,LinSpace:()=>LinSpace,Log:()=>Log,Log1p:()=>Log1p,LogSoftmax:()=>LogSoftmax,LogicalAnd:()=>LogicalAnd,LogicalNot:()=>LogicalNot,LogicalOr:()=>LogicalOr,MathBackendCPU:()=>MathBackendCPU,MathBackendWebGL:()=>MathBackendWebGL,Max:()=>Max,MaxPool:()=>MaxPool,MaxPool3D:()=>MaxPool3D,MaxPool3DGrad:()=>MaxPool3DGrad,MaxPoolGrad:()=>MaxPoolGrad,MaxPoolWithArgmax:()=>MaxPoolWithArgmax,Maximum:()=>Maximum,Mean:()=>Mean,Min:()=>Min,Minimum:()=>Minimum,MirrorPad:()=>MirrorPad,Mod:()=>Mod,MomentumOptimizer:()=>MomentumOptimizer,Multinomial:()=>Multinomial,Multiply:()=>Multiply,Neg:()=>Neg,NonMaxSuppressionV3:()=>NonMaxSuppressionV3,NonMaxSuppressionV4:()=>NonMaxSuppressionV4,NonMaxSuppressionV5:()=>NonMaxSuppressionV5,NotEqual:()=>NotEqual,OP_SCOPE_SUFFIX:()=>OP_SCOPE_SUFFIX,OneHot:()=>OneHot,OnesLike:()=>OnesLike,Optimizer:()=>Optimizer,Pack:()=>Pack,PadV2:()=>PadV2,Pool:()=>Pool,Pow:()=>Pow,Prelu:()=>Prelu,Prod:()=>Prod,RMSPropOptimizer:()=>RMSPropOptimizer,RNN:()=>RNN,Range:()=>Range,Rank:()=>Rank,Real:()=>Real,RealDiv:()=>RealDiv,Reciprocal:()=>Reciprocal,Reduction:()=>Reduction,Relu:()=>Relu,Relu6:()=>Relu6,Reshape:()=>Reshape,ResizeBilinear:()=>ResizeBilinear,ResizeBilinearGrad:()=>ResizeBilinearGrad,ResizeNearestNeighbor:()=>ResizeNearestNeighbor,ResizeNearestNeighborGrad:()=>ResizeNearestNeighborGrad,Reverse:()=>Reverse,RotateWithOffset:()=>RotateWithOffset,Round:()=>Round,Rsqrt:()=>Rsqrt,SGDOptimizer:()=>SGDOptimizer,ScatterNd:()=>ScatterNd,Select:()=>Select,Selu:()=>Selu,Sequential:()=>Sequential,Sigmoid:()=>Sigmoid,Sign:()=>Sign,Sin:()=>Sin,Sinh:()=>Sinh,Slice:()=>Slice,Softmax:()=>Softmax,Softplus:()=>Softplus,SpaceToBatchND:()=>SpaceToBatchND,SparseToDense:()=>SparseToDense,SplitV:()=>SplitV,Sqrt:()=>Sqrt,Square:()=>Square,SquaredDifference:()=>SquaredDifference,Step:()=>Step,StridedSlice:()=>StridedSlice,Sub:()=>Sub,Sum:()=>Sum,SymbolicTensor:()=>SymbolicTensor,Tan:()=>Tan,Tanh:()=>Tanh,Tensor:()=>Tensor,TensorBuffer:()=>TensorBuffer,Tile:()=>Tile,TopK:()=>TopK,Transpose:()=>Transpose,Unique:()=>Unique,Unpack:()=>Unpack,UnsortedSegmentSum:()=>UnsortedSegmentSum,Variable:()=>Variable,ZerosLike:()=>ZerosLike,_FusedMatMul:()=>_FusedMatMul,abs:()=>abs,acos:()=>acos,acosh:()=>acosh,add:()=>add2,addN:()=>addN,addStrict:()=>addStrict,all:()=>all,any:()=>any,argMax:()=>argMax,argMin:()=>argMin,asin:()=>asin,asinh:()=>asinh,atan:()=>atan,atan2:()=>atan2,atanh:()=>atanh,avgPool:()=>avgPool,avgPool3d:()=>avgPool3d,backend:()=>backend,backend_util:()=>backend_util_exports,basicLSTMCell:()=>basicLSTMCell,batchNorm:()=>batchNorm,batchNorm2d:()=>batchNorm2d,batchNorm3d:()=>batchNorm3d,batchNorm4d:()=>batchNorm4d,batchToSpaceND:()=>batchToSpaceND,bincount:()=>bincount,booleanMaskAsync:()=>booleanMaskAsync,broadcastTo:()=>broadcastTo,browser:()=>browser_exports,buffer:()=>buffer,callbacks:()=>callbacks,cast:()=>cast,ceil:()=>ceil,clipByValue:()=>clipByValue,clone:()=>clone,complex:()=>complex,concat:()=>concat,concat1d:()=>concat1d,concat2d:()=>concat2d,concat3d:()=>concat3d,concat4d:()=>concat4d,constraints:()=>exports_constraints_exports,conv1d:()=>conv1d,conv2d:()=>conv2d,conv2dTranspose:()=>conv2dTranspose,conv3d:()=>conv3d,conv3dTranspose:()=>conv3dTranspose,copyRegisteredKernels:()=>copyRegisteredKernels,cos:()=>cos,cosh:()=>cosh,cosineWindow:()=>cosineWindow,cumsum:()=>cumsum,customGrad:()=>customGrad,data:()=>dist_exports,denseBincount:()=>denseBincount,deprecationWarn:()=>deprecationWarn,depthToSpace:()=>depthToSpace,depthwiseConv2d:()=>depthwiseConv2d,deregisterOp:()=>deregisterOp,device_util:()=>device_util_exports,diag:()=>diag,dilation2d:()=>dilation2d,disableDeprecationWarnings:()=>disableDeprecationWarnings,dispose:()=>dispose,disposeVariables:()=>disposeVariables,div:()=>div,divNoNan:()=>divNoNan,divStrict:()=>divStrict,dot:()=>dot,dropout:()=>dropout,elu:()=>elu,enableDebugMode:()=>enableDebugMode,enableProdMode:()=>enableProdMode,enclosingPowerOfTwo:()=>enclosingPowerOfTwo,engine:()=>engine,env:()=>env,equal:()=>equal,equalStrict:()=>equalStrict,erf:()=>erf,exp:()=>exp,expandDims:()=>expandDims,expm1:()=>expm1,eye:()=>eye,fft:()=>fft,fill:()=>fill,findBackend:()=>findBackend,findBackendFactory:()=>findBackendFactory,floor:()=>floor,floorDiv:()=>floorDiv,forceHalfFloat:()=>forceHalfFloat,fused:()=>fused_ops_exports,gather:()=>gather,gatherND:()=>gatherND,gather_util:()=>gather_nd_util_exports,getBackend:()=>getBackend,getGradient:()=>getGradient,getKernel:()=>getKernel,getKernelsForBackend:()=>getKernelsForBackend,gpgpu_util:()=>gpgpu_util_exports,grad:()=>grad,grads:()=>grads,greater:()=>greater,greaterEqual:()=>greaterEqual,greaterEqualStrict:()=>greaterEqualStrict,greaterStrict:()=>greaterStrict,ifft:()=>ifft,imag:()=>imag,image:()=>image,inTopKAsync:()=>inTopKAsync,initializers:()=>exports_initializers_exports,input:()=>input,io:()=>io_exports,irfft:()=>irfft,isFinite:()=>isFinite2,isInf:()=>isInf,isNaN:()=>isNaN2,keep:()=>keep,kernel_impls:()=>kernel_impls_exports,layers:()=>exports_layers_exports,leakyRelu:()=>leakyRelu,less:()=>less,lessEqual:()=>lessEqual,lessEqualStrict:()=>lessEqualStrict,lessStrict:()=>lessStrict,linalg:()=>linalg,linspace:()=>linspace,loadGraphModel:()=>loadGraphModel,loadLayersModel:()=>loadLayersModel,localResponseNormalization:()=>localResponseNormalization,log:()=>log2,log1p:()=>log1p,logSigmoid:()=>logSigmoid,logSoftmax:()=>logSoftmax,logSumExp:()=>logSumExp,logicalAnd:()=>logicalAnd,logicalNot:()=>logicalNot,logicalOr:()=>logicalOr,logicalXor:()=>logicalXor,losses:()=>losses,matMul:()=>matMul,math:()=>math_exports,max:()=>max,maxPool:()=>maxPool,maxPool3d:()=>maxPool3d,maxPoolWithArgmax:()=>maxPoolWithArgmax,maximum:()=>maximum,maximumStrict:()=>maximumStrict,mean:()=>mean,memory:()=>memory,metrics:()=>exports_metrics_exports,min:()=>min,minimum:()=>minimum,minimumStrict:()=>minimumStrict,mirrorPad:()=>mirrorPad,mod:()=>mod,modStrict:()=>modStrict,model:()=>model,models:()=>exports_models_exports,moments:()=>moments,movingAverage:()=>movingAverage,mul:()=>mul,mulStrict:()=>mulStrict,multiRNNCell:()=>multiRNNCell,multinomial:()=>multinomial,neg:()=>neg,nextFrame:()=>nextFrame,norm:()=>norm,notEqual:()=>notEqual,notEqualStrict:()=>notEqualStrict,oneHot:()=>oneHot,ones:()=>ones2,onesLike:()=>onesLike,op:()=>op,outerProduct:()=>outerProduct,pad:()=>pad,pad1d:()=>pad1d,pad2d:()=>pad2d,pad3d:()=>pad3d,pad4d:()=>pad4d,pool:()=>pool,pow:()=>pow,powStrict:()=>powStrict,prelu:()=>prelu,print:()=>print2,prod:()=>prod,profile:()=>profile,rand:()=>rand,randomGamma:()=>randomGamma,randomNormal:()=>randomNormal,randomUniform:()=>randomUniform,range:()=>range,ready:()=>ready,real:()=>real,reciprocal:()=>reciprocal,registerBackend:()=>registerBackend,registerCallbackConstructor:()=>registerCallbackConstructor,registerGradient:()=>registerGradient,registerKernel:()=>registerKernel,registerOp:()=>registerOp,regularizers:()=>exports_regularizers_exports,relu:()=>relu,relu6:()=>relu6,removeBackend:()=>removeBackend,reshape:()=>reshape,reverse:()=>reverse,reverse1d:()=>reverse1d,reverse2d:()=>reverse2d,reverse3d:()=>reverse3d,reverse4d:()=>reverse4d,rfft:()=>rfft,round:()=>round2,rsqrt:()=>rsqrt,scalar:()=>scalar,scatterND:()=>scatterND,scatter_util:()=>scatter_nd_util_exports,selu:()=>selu,separableConv2d:()=>separableConv2d,sequential:()=>sequential,serialization:()=>serialization_exports,setBackend:()=>setBackend,setPlatform:()=>setPlatform,setWasmPath:()=>setWasmPath,setWasmPaths:()=>setWasmPaths,setWebGLContext:()=>setWebGLContext,setdiff1dAsync:()=>setdiff1dAsync,shared:()=>shared_exports,sigmoid:()=>sigmoid,sign:()=>sign,signal:()=>signal,sin:()=>sin,sinh:()=>sinh,slice:()=>slice,slice1d:()=>slice1d,slice2d:()=>slice2d,slice3d:()=>slice3d,slice4d:()=>slice4d,slice_util:()=>slice_util_exports,softmax:()=>softmax,softplus:()=>softplus,spaceToBatchND:()=>spaceToBatchND,sparseToDense:()=>sparseToDense,spectral:()=>spectral,split:()=>split,sqrt:()=>sqrt,square:()=>square,squaredDifference:()=>squaredDifference,squaredDifferenceStrict:()=>squaredDifferenceStrict,squeeze:()=>squeeze,stack:()=>stack,step:()=>step,stridedSlice:()=>stridedSlice,sub:()=>sub,subStrict:()=>subStrict,sum:()=>sum2,sumOutType:()=>sumOutType,tan:()=>tan,tanh:()=>tanh2,tensor:()=>tensor,tensor1d:()=>tensor1d,tensor2d:()=>tensor2d,tensor3d:()=>tensor3d,tensor4d:()=>tensor4d,tensor5d:()=>tensor5d,tensor6d:()=>tensor6d,tensor_util:()=>tensor_util_exports,test_util:()=>test_util_exports,tidy:()=>tidy,tile:()=>tile,time:()=>time,topk:()=>topk,train:()=>train,transpose:()=>transpose,truncatedNormal:()=>truncatedNormal,unique:()=>unique,unregisterGradient:()=>unregisterGradient,unregisterKernel:()=>unregisterKernel,unsortedSegmentSum:()=>unsortedSegmentSum,unstack:()=>unstack,upcastType:()=>upcastType,util:()=>util_exports,valueAndGrad:()=>valueAndGrad,valueAndGrads:()=>valueAndGrads,variable:()=>variable,variableGrads:()=>variableGrads,version:()=>version13,version_converter:()=>version11,version_core:()=>version6,version_cpu:()=>version7,version_layers:()=>version10,version_wasm:()=>version9,version_webgl:()=>version8,webgl:()=>webgl,webgl_util:()=>webgl_util_exports,where:()=>where,whereAsync:()=>whereAsync,zeros:()=>zeros,zerosLike:()=>zerosLike});var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__commonJS2=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export2=(target,all4)=>{__markAsModule2(target);for(var name in all4)__defProp2(target,name,{get:all4[name],enumerable:!0})},__exportStar2=(target,module,desc)=>{if(__markAsModule2(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames2(module))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc2(module,key))||desc.enumerable});return target},__toModule2=module=>module&&module.__esModule?module:__exportStar2(__defProp2(module!=null?__create2(__getProtoOf2(module)):{},"default",{value:module,enumerable:!0}),module),require_browser=__commonJS2(()=>{}),require_alea=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor128=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift7=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor4096=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_crypto=__commonJS2(()=>{}),require_seedrandom=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea(),xor128=require_xor128(),xorwow=require_xorwow(),xorshift7=require_xorshift7(),xor4096=require_xor4096(),tychei=require_tychei(),sr=require_seedrandom();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_alea2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1282=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift72=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40962=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom3=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea2(),xor128=require_xor1282(),xorwow=require_xorwow2(),xorshift7=require_xorshift72(),xor4096=require_xor40962(),tychei=require_tychei2(),sr=require_seedrandom3();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_path=__commonJS2(()=>{}),require_worker_threads=__commonJS2(()=>{}),require_perf_hooks=__commonJS2(()=>{}),require_tfjs_backend_wasm_threaded_simd=__commonJS2((exports,module)=>{var WasmBackendModuleThreadedSimd=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModuleThreadedSimd2){WasmBackendModuleThreadedSimd2=WasmBackendModuleThreadedSimd2||{};function GROWABLE_HEAP_I8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP8}function GROWABLE_HEAP_U8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU8}function GROWABLE_HEAP_I32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP32}function GROWABLE_HEAP_U32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU32}function GROWABLE_HEAP_F64(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd2!="undefined"?WasmBackendModuleThreadedSimd2:{},_scriptDir2=void 0,moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status2,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module.ENVIRONMENT_IS_PTHREAD||!1;ENVIRONMENT_IS_PTHREAD&&(buffer2=Module.buffer,DYNAMIC_BASE=Module.DYNAMIC_BASE,DYNAMICTOP_PTR=Module.DYNAMICTOP_PTR);var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;if(ENVIRONMENT_IS_NODE){ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status2){process.exit(status2)},Module.inspect=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require_worker_threads()}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}Worker=nodeWorkerThreads.Worker}else ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status2){quit(status2)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir2&&(scriptDirectory=_scriptDir2),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",ENVIRONMENT_IS_NODE?(read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret}):(read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)}),setWindowTitle=function(title){document.title=title});ENVIRONMENT_IS_NODE&&typeof performance=="undefined"&&(performance=require_perf_hooks().performance);var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var Atomics_load=Atomics.load,Atomics_store=Atomics.store,Atomics_compareExchange=Atomics.compareExchange,wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:169,maximum:169+0,element:"anyfunc"}),wasmModule,threadInfoStruct=0,selfThreadId=0,ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str2){var ret2=0;if(str2!=null&&str2!==0){var len=(str2.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str2,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);){var u0=heap[idx++];if(!u0)return str2;if(!(u0&128)){str2+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str2+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224?u0=(u0&15)<<12|u1<<6|u2:u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63,u0<65536)str2+=String.fromCharCode(u0);else{var ch=u0-65536;str2+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str2}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""}function stringToUTF8Array(str2,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str2.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str2,outPtr,maxBytesToWrite){return stringToUTF8Array(str2,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str2){for(var len=0,i=0;i=55296&&u<=57343&&(u=65536+((u&1023)<<10)|str2.charCodeAt(++i)&1023),u<=127?++len:u<=2047?len+=2:u<=65535?len+=3:len+=4}return len}function writeArrayToMemory(array2,buffer3){GROWABLE_HEAP_I8().set(array2,buffer3)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){return x%multiple>0&&(x+=multiple-x%multiple),x}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656,INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;if(ENVIRONMENT_IS_PTHREAD)wasmMemory=Module.wasmMemory,buffer2=Module.buffer;else if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else if(wasmMemory=new WebAssembly.Memory({initial:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,maximum:2147483648/WASM_PAGE_SIZE,shared:!0}),!(wasmMemory.buffer instanceof SharedArrayBuffer))throw err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ENVIRONMENT_IS_NODE&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");wasmMemory&&(buffer2=wasmMemory.buffer),INITIAL_INITIAL_MEMORY=buffer2.byteLength,updateGlobalBufferAndViews(buffer2),ENVIRONMENT_IS_PTHREAD||(GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE);function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1;ENVIRONMENT_IS_PTHREAD&&(runtimeInitialized=!0);function preRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){ENVIRONMENT_IS_PTHREAD||callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){assert3(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker"),runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),ENVIRONMENT_IS_PTHREAD&&console.error("Pthread aborting at "+new Error().stack),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str2,prefix){return String.prototype.startsWith?str2.startsWith(prefix):str2.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm-threaded-simd.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={a:asmLibraryArg};function receiveInstance(instance2,module2){var exports3=instance2.exports;if(Module.asm=exports3,wasmModule=module2,!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){--numWorkersToLoad||removeRunDependency("wasm-instantiate")})})}}ENVIRONMENT_IS_PTHREAD||addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance,output.module)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}ENVIRONMENT_IS_PTHREAD||__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0,__pthread_is_main_runtime_thread=0,__pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0,isMainBrowserThread=isMainBrowserThread|0,isMainRuntimeThread=isMainRuntimeThread|0,__pthread_ptr=pthreadPtr,__pthread_is_main_browser_thread=isMainBrowserThread,__pthread_is_main_runtime_thread=isMainRuntimeThread}Module.__register_pthread_ptr=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},__main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count2){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0||count2<0)return-28;if(count2==0)return 0;count2>=2147483647&&(count2=Infinity);var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2),mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress&&(--count2,mainThreadWoken=1,count2<=0))return 1}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count2);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module._emscripten_futex_wake=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _kill_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate(),PThread.freeThreadData(pthread),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1),pthread.worker.pthread=void 0}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({cmd:"cancel"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker2=pthread.worker;PThread.returnWorkerToPool(worker2)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1),_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){for(var pthreadPoolSize=8,i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;for(var tlsMemory=13056,i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){for(;PThread.exitHandlers.length>0;)PThread.exitHandlers.pop()();PThread.exitHandlers=null}ENVIRONMENT_IS_PTHREAD&&threadInfoStruct&&___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();tb&&(Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode),Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0),PThread.runExitHandlers(),_emscripten_futex_wake(tb+0,2147483647),__register_pthread_ptr(0,0,0),threadInfoStruct=0,ENVIRONMENT_IS_PTHREAD&&postMessage({cmd:"exit"}))},threadCancel:function(){PThread.runExitHandlers(),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1),_emscripten_futex_wake(threadInfoStruct+0,2147483647),threadInfoStruct=selfThreadId=0,__register_pthread_ptr(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];pthread&&pthread.worker&&PThread.returnWorkerToPool(pthread.worker)}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0,_free(tlsMemory),_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0,pthread.allocatedOwnStack&&pthread.stackBase&&_free(pthread.stackBase),pthread.stackBase=0,pthread.worker&&(pthread.worker.pthread=null)}},returnWorkerToPool:function(worker2){delete PThread.pthreads[worker2.pthread.thread],PThread.unusedWorkers.push(worker2),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker2),1),PThread.freeThreadData(worker2.pthread),worker2.pthread=void 0},receiveObjectTransfer:function(data2){},loadWasmModuleToWorker:function(worker2,onFinishedLoading){worker2.onmessage=function(e){var d=e.data,cmd=d.cmd;if(worker2.pthread&&(PThread.currentProxiedOperationCallerThread=worker2.pthread.threadInfoStruct),d.targetThread&&d.targetThread!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];thread?thread.worker.postMessage(e.data,d.transferList):console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d.targetThread+", but that thread no longer exists!"),PThread.currentProxiedOperationCallerThread=void 0;return}if(cmd==="processQueuedMainThreadWork")_emscripten_main_thread_process_queued_calls();else if(cmd==="spawnThread")__spawn_thread(e.data);else if(cmd==="cleanupThread")__cleanup_thread(d.thread);else if(cmd==="killThread")__kill_thread(d.thread);else if(cmd==="cancelThread")__cancel_thread(d.thread);else if(cmd==="loaded")worker2.loaded=!0,onFinishedLoading&&onFinishedLoading(worker2),worker2.runPthread&&(worker2.runPthread(),delete worker2.runPthread);else if(cmd==="print")out("Thread "+d.threadId+": "+d.text);else if(cmd==="printErr")err("Thread "+d.threadId+": "+d.text);else if(cmd==="alert")alert("Thread "+d.threadId+": "+d.text);else if(cmd==="exit"){var detached=worker2.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker2.pthread.thread+68>>2);detached&&PThread.returnWorkerToPool(worker2)}else cmd==="cancelDone"?PThread.returnWorkerToPool(worker2):cmd==="objectTransfer"?PThread.receiveObjectTransfer(e.data):e.data.target==="setimmediate"?worker2.postMessage(e.data):err("worker sent an unknown command "+cmd);PThread.currentProxiedOperationCallerThread=void 0},worker2.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)},ENVIRONMENT_IS_NODE&&(worker2.on("message",function(data2){worker2.onmessage({data:data2})}),worker2.on("error",function(data2){worker2.onerror(data2)}),worker2.on("exit",function(data2){console.log("worker exited - TODO: update the worker queue?")})),worker2.postMessage({cmd:"load",urlOrBlob:Module.mainScriptUrlOrBlob||_scriptDir2,wasmMemory,wasmModule,DYNAMIC_BASE,DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("tfjs-backend-wasm-threaded-simd.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){return PThread.unusedWorkers.length==0&&(PThread.allocateUnusedWorker(),PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])),PThread.unusedWorkers.length>0?PThread.unusedWorkers.pop():null},busySpinWait:function(msecs){for(var t=performance.now()+msecs;performance.now()>2]=value,value}function _atexit(func2,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func2,arg);__ATEXIT__.unshift({func:func2,arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId)postMessage({cmd:"processQueuedMainThreadWork"});else if(ENVIRONMENT_IS_PTHREAD)postMessage({targetThread:targetThreadId,cmd:"processThreadQueue"});else{var pthread=PThread.pthreads[targetThreadId],worker2=pthread&&pthread.worker;if(!worker2)return;worker2.postMessage({cmd:"processThreadQueue"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0,newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now(),tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);for(var ourWaitAddress=addr;addr==ourWaitAddress;){if(tNow=performance.now(),tNow>tEnd)return-73;_emscripten_main_thread_process_queued_calls(),addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator.hardwareConcurrency}function _emscripten_proxy_to_main_thread_js(index,sync){for(var numCallArgs=arguments.length-2,stack2=stackSave(),args=stackAlloc(numCallArgs*8),b=args>>3,i=0;i>3]),buf+=8):(buf=buf+3&~3,args.push(GROWABLE_HEAP_I32()[buf>>2]),buf+=4);return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;for(var b=args>>3,i=0;i>>16),updateGlobalBufferAndViews(wasmMemory.buffer),1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize)return!1;var PAGE_MULTIPLE=65536,maxHeapSize=2147483648;if(requestedSize>maxHeapSize)return!1;for(var minHeapSize=16777216,cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE)),replacement=emscripten_realloc_buffer(newSize);if(replacement)return!0}return!1}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i)JSEvents._removeHandler(i);JSEvents.eventHandlers=[],JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){JSEvents.removeEventListenersRegistered||(__ATEXIT__.push(JSEvents.removeAllEventListeners),JSEvents.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return!1;for(var i2 in arrA)if(arrA[i2]!=arrB[i2])return!1;return!0}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList))return}JSEvents.deferredCalls.push({targetFunction,precedence,argsList}),JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId,GROWABLE_HEAP_I32()[varargs+4>>2]=eventData,GROWABLE_HEAP_I32()[varargs+8>>2]=userData,_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs),stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){return target?target==window?"#window":target==screen?"#screen":target&&target.nodeName?target.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1,cString=_malloc(length);return stringToUTF8(jsString,cString,length),cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave(),varargs=stackAlloc(12),targetCanvasPtr=0;targetCanvas&&(targetCanvasPtr=stringToNewUTF8(targetCanvas)),GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr,GROWABLE_HEAP_I32()[varargs+4>>2]=width,GROWABLE_HEAP_I32()[varargs+8>>2]=height,_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs),stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"",_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):void 0);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr&&(GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width,GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height),canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){canvas.offscreenCanvas&&(canvas=canvas.offscreenCanvas);var autoResizeViewport=!1;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width,canvas.height=height,autoResizeViewport&&canvas.GLctxObject.GLctx.viewport(0,0,width,height)}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];return _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height),1}else return-4;return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(2,1,target,width,height):_emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);return canvas?_emscripten_set_canvas_element_size_calling_thread(target,width,height):_emscripten_set_canvas_element_size_main_thread(target,width,height)}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0,name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext)return ctx.vertexAttribDivisor=function(index,divisor){ext.vertexAttribDivisorANGLE(index,divisor)},ctx.drawArraysInstanced=function(mode,first,count2,primcount){ext.drawArraysInstancedANGLE(mode,first,count2,primcount)},ctx.drawElementsInstanced=function(mode,count2,type,indices,primcount){ext.drawElementsInstancedANGLE(mode,count2,type,indices,primcount)},1}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext)return ctx.createVertexArray=function(){return ext.createVertexArrayOES()},ctx.deleteVertexArray=function(vao){ext.deleteVertexArrayOES(vao)},ctx.bindVertexArray=function(vao){ext.bindVertexArrayOES(vao)},ctx.isVertexArray=function(vao){return ext.isVertexArrayOES(vao)},1}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext)return ctx.drawBuffers=function(n,bufs){ext.drawBuffersWEBGL(n,bufs)},1}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE),i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?void 0:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};return ctx.canvas&&(ctx.canvas.GLctxObject=context),GL.contexts[handle]=context,(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault)&&GL.initExtensions(context),handle},makeContextCurrent:function(contextHandle){return GL.currentContext=GL.contexts[contextHandle],Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx,!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){GL.currentContext===GL.contexts[contextHandle]&&(GL.currentContext=null),typeof JSEvents=="object"&&JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas),GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas&&(GL.contexts[contextHandle].GLctx.canvas.GLctxObject=void 0),_free(GL.contexts[contextHandle].handle),GL.contexts[contextHandle]=null},initExtensions:function(context){if(context||(context=GL.currentContext),!context.initExtensionsDone){context.initExtensionsDone=!0;var GLctx2=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx2),__webgl_enable_OES_vertex_array_object(GLctx2),__webgl_enable_WEBGL_draw_buffers(GLctx2),GLctx2.disjointTimerQueryExt=GLctx2.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],exts=GLctx2.getSupportedExtensions()||[];exts.forEach(function(ext){automaticallyEnabledExtensions.indexOf(ext)!=-1&&GLctx2.getExtension(ext)})}},populateUniformTable:function(program){for(var p2=GL.programs[program],ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},utable=ptable.uniforms,numUniforms=GLctx.getProgramParameter(p2,35718),i=0;i>2;contextAttributes.alpha=!!GROWABLE_HEAP_I32()[a+(0>>2)],contextAttributes.depth=!!GROWABLE_HEAP_I32()[a+(4>>2)],contextAttributes.stencil=!!GROWABLE_HEAP_I32()[a+(8>>2)],contextAttributes.antialias=!!GROWABLE_HEAP_I32()[a+(12>>2)],contextAttributes.premultipliedAlpha=!!GROWABLE_HEAP_I32()[a+(16>>2)],contextAttributes.preserveDrawingBuffer=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes.powerPreference=__emscripten_webgl_power_preferences[powerPreference],contextAttributes.failIfMajorPerformanceCaveat=!!GROWABLE_HEAP_I32()[a+(28>>2)],contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)],contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)],contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)],contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)],contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)],contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(contextAttributes.explicitSwapControl)return-1;var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a12){return _emscripten_webgl_do_create_context(a0,a12)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(3,1,fd):0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);for(var num=0,i=0;i>2],len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _pthread_cleanup_pop(execute2){var routine=PThread.exitHandlers.pop();execute2&&routine()}function _pthread_cleanup_push(routine,arg){PThread.exitHandlers===null&&(PThread.exitHandlers=[]),PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var worker2=PThread.getNewWorker();if(worker2.pthread!==void 0)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker2);for(var tlsMemory=_malloc(128*4),i=0;i<128;++i)GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0;var stackHigh=threadParams.stackBase+threadParams.stackSize,pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker2,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr},tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct),Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42),Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc(),global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale),worker2.pthread=pthread;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,threadInfoStruct:threadParams.pthread_ptr,selfThreadId:threadParams.pthread_ptr,parentThreadId:threadParams.parent_pthread_ptr,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize};worker2.runPthread=function(){msg.time=performance.now(),worker2.postMessage(msg,threadParams.transferList)},worker2.loaded&&(worker2.runPthread(),delete worker2.runPthread)}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread)return err("pthread_getschedparam called with a null thread pointer!"),ERRNO_CODES.ESRCH;var self2=GROWABLE_HEAP_I32()[thread+12>>2];if(self2!==thread)return err("pthread_getschedparam attempted on thread "+thread+", which does not point to a valid thread, or does not exist anymore!"),ERRNO_CODES.ESRCH;var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2),schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);return policy&&(GROWABLE_HEAP_I32()[policy>>2]=schedPolicy),schedparam&&(GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio),0}function _pthread_self(){return __pthread_ptr|0}Module._pthread_self=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer=="undefined")return err("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!pthread_ptr)return err("pthread_create called with a null thread pointer!"),28;var transferList=[],error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error))return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg);if(error)return error;var stackSize=0,stackBase=0,detached=0,schedPolicy=0,schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2],stackSize+=81920,stackBase=GROWABLE_HEAP_I32()[attr+8>>2],detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2],parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24),schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2],GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy,GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}else stackSize=2097152;var allocatedOwnStack=stackBase==0;allocatedOwnStack?stackBase=_memalign(16,stackSize):(stackBase-=stackSize,assert3(stackBase>0));for(var threadInfoStruct2=_malloc(232),i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct2>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct2,GROWABLE_HEAP_I32()[threadInfoStruct2+12>>2]=threadInfoStruct2;var headPtr=threadInfoStruct2+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase,stackSize,allocatedOwnStack,schedPolicy,schedPrio,detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct2,parent_pthread_ptr:_pthread_self(),arg,transferList};return ENVIRONMENT_IS_PTHREAD?(threadParams.cmd="spawnThread",postMessage(threadParams,transferList)):__spawn_thread(threadParams),0}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return setErrNo(28),-1}ENVIRONMENT_IS_PTHREAD?PThread.initWorker():PThread.initMainThreadBlock();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf],asmLibraryArg={e:___assert_fail,r:___call_main,w:__emscripten_notify_thread_queue,a:_abort,l:_emscripten_conditional_set_current_thread_status,d:_emscripten_futex_wait,c:_emscripten_futex_wake,h:_emscripten_get_now,g:_emscripten_is_main_browser_thread,x:_emscripten_is_main_runtime_thread,q:_emscripten_memcpy_big,B:_emscripten_num_logical_cores,t:_emscripten_receive_on_main_thread_js,A:_emscripten_resize_heap,u:_emscripten_set_canvas_element_size,k:_emscripten_set_current_thread_status,s:_emscripten_set_thread_name,v:_emscripten_webgl_create_context,m:_fd_close,o:_fd_seek,i:_fd_write,p:initPthreadsJS,memory:wasmMemory||Module.wasmMemory,y:_pthread_cleanup_pop,z:_pthread_cleanup_push,j:_pthread_create,b:_pthread_self,f:_roundf,n:_sysconf,table:wasmTable},asm=createWasm();Module.asm=asm;var ___wasm_call_ctors=Module.___wasm_call_ctors=function(){return(___wasm_call_ctors=Module.___wasm_call_ctors=Module.asm.C).apply(null,arguments)},_init=Module._init=function(){return(_init=Module._init=Module.asm.D).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.E).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.F).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.G).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.H).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.I).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.J).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.K).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.L).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.M).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.N).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.O).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.P).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Q).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.R).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.S).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.T).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.U).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.V).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.W).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.X).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Y).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.Z).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm._).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.$).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.aa).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.ba).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.ca).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.da).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.ea).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.fa).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.ga).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.ha).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.ia).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.ja).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.ka).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.la).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.ma).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.na).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.oa).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.pa).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.qa).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.ra).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.sa).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.ta).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.ua).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.va).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.wa).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.xa).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.ya).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.za).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Aa).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.Ba).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Ca).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Da).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.Ea).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Fa).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.Ga).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Ha).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Ia).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.Ja).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.Ka).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.La).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Ma).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Na).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Oa).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Pa).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.Qa).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.Ra).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sa).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Ta).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Ua).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Va).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.Wa).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Xa).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm.Ya).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.Za).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm._a).apply(null,arguments)},_emscripten_get_global_libc=Module._emscripten_get_global_libc=function(){return(_emscripten_get_global_libc=Module._emscripten_get_global_libc=Module.asm.$a).apply(null,arguments)},___errno_location=Module.___errno_location=function(){return(___errno_location=Module.___errno_location=Module.asm.ab).apply(null,arguments)},___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=function(){return(___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=Module.asm.bb).apply(null,arguments)},_memalign=Module._memalign=function(){return(_memalign=Module._memalign=Module.asm.cb).apply(null,arguments)},___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=function(){return(___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=Module.asm.db).apply(null,arguments)},_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=function(){return(_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=Module.asm.eb).apply(null,arguments)},_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=function(){return(_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=Module.asm.fb).apply(null,arguments)},_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=function(){return(_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=Module.asm.gb).apply(null,arguments)},_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=function(){return(_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=Module.asm.hb).apply(null,arguments)},_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=function(){return(_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=Module.asm.ib).apply(null,arguments)},_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=function(){return(_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=Module.asm.jb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=function(){return(_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=Module.asm.kb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=function(){return(_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=Module.asm.lb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=function(){return(_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=Module.asm.mb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=Module.asm.nb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=function(){return(_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=Module.asm.ob).apply(null,arguments)},_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=function(){return(_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=Module.asm.pb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=function(){return(_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=Module.asm.qb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=function(){return(_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=Module.asm.rb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=function(){return(_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=Module.asm.sb).apply(null,arguments)},_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=function(){return(_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=Module.asm.tb).apply(null,arguments)},_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=function(){return(_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=Module.asm.ub).apply(null,arguments)},_emscripten_tls_init=Module._emscripten_tls_init=function(){return(_emscripten_tls_init=Module._emscripten_tls_init=Module.asm.vb).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.wb).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.xb).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.yb).apply(null,arguments)},dynCall_vi=Module.dynCall_vi=function(){return(dynCall_vi=Module.dynCall_vi=Module.asm.zb).apply(null,arguments)},dynCall_v=Module.dynCall_v=function(){return(dynCall_v=Module.dynCall_v=Module.asm.Ab).apply(null,arguments)},dynCall_ii=Module.dynCall_ii=function(){return(dynCall_ii=Module.dynCall_ii=Module.asm.Bb).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap,Module.PThread=PThread,Module.PThread=PThread,Module._pthread_self=_pthread_self,Module.wasmMemory=wasmMemory,Module.ExitStatus=ExitStatus;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status2){this.name="ExitStatus",this.message="Program terminated with exit("+status2+")",this.status=status2}dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}if(Module.run=run,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();return ENVIRONMENT_IS_PTHREAD||(noExitRuntime=!0),ENVIRONMENT_IS_PTHREAD||run(),WasmBackendModuleThreadedSimd2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModuleThreadedSimd:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModuleThreadedSimd}):typeof exports=="object"&&(exports.WasmBackendModuleThreadedSimd=WasmBackendModuleThreadedSimd)}),require_tfjs_backend_wasm=__commonJS2((exports,module)=>{var WasmBackendModule=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModule2){WasmBackendModule2=WasmBackendModule2||{};var Module=typeof WasmBackendModule2!="undefined"?WasmBackendModule2:{},moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status2,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;ENVIRONMENT_IS_NODE?(ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status2){process.exit(status2)},Module.inspect=function(){return"[Emscripten Module object]"}):ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status2){quit(status2)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)},setWindowTitle=function(title){document.title=title});var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:151,maximum:151+0,element:"anyfunc"}),ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str2){var ret2=0;if(str2!=null&&str2!==0){var len=(str2.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str2,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);)++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder)return UTF8Decoder.decode(heap.subarray(idx,endPtr));for(var str2="";idx>10,56320|ch&1023)}}return str2}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str2,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str2.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str2,outPtr,maxBytesToWrite){return stringToUTF8Array(str2,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array2,buffer3){HEAP8.set(array2,buffer3)}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str2,prefix){return String.prototype.startsWith?str2.startsWith(prefix):str2.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function receiveInstance(instance2,module2){var exports3=instance2.exports;Module.asm=exports3,wasmMemory=exports3.memory,updateGlobalBufferAndViews(wasmMemory.buffer),removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){for(var num=0,i=0;i>2],len=HEAP32[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _exit(status2){exit(status2)}function _proc_exit(code){_exit(code)}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}var asmLibraryArg={emscripten_notify_memory_growth:_emscripten_notify_memory_growth,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,proc_exit:_proc_exit,roundf:_roundf},asm=createWasm();Module.asm=asm;var _init=Module._init=function(){return(_init=Module._init=Module.asm.init).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.register_tensor).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.dispose_data).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.dispose).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.Abs).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.Add).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.AddN).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.ArgMax).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.AvgPool).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.BatchMatMul).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.ClipByValue).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.Conv2D).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.Conv2DBackpropInput).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Cos).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.CropAndResize).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.Cumsum).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.DepthToSpace).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.DepthwiseConv2dNative).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.Equal).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.Exp).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.FlipLeftRight).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Floor).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.FloorDiv).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm.FusedBatchNorm).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.FusedConv2D).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.FusedDepthwiseConv2D).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.Gather).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.GatherNd).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.Greater).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.GreaterEqual).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.LeakyRelu).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.Less).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.LessEqual).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.Log).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.LogicalAnd).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.Max).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.MaxPool).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.Maximum).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.Mean).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.Min).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.Minimum).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.Multiply).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.Neg).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.NonMaxSuppressionV3).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.NonMaxSuppressionV4).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.NonMaxSuppressionV5).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.NotEqual).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.OneHot).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.PadV2).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.Pow).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.Prelu).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Prod).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.RealDiv).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Relu).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Relu6).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.ResizeBilinear).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Reverse).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.RotateWithOffset).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Round).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Rsqrt).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.ScatterNd).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.SelectV2).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.Sigmoid).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Sin).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Softmax).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Sqrt).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Square).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.SquaredDifference).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.StridedSlice).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sub).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Sum).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Tanh).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Tile).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.TopK).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Transpose).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm._FusedMatMul).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.malloc).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm.free).apply(null,arguments)},__start=Module.__start=function(){return(__start=Module.__start=Module.asm._start).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.stackSave).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.stackRestore).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status2){this.name="ExitStatus",this.message="Program terminated with exit("+status2+")",this.status=status2}var calledMain=!1;dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function callMain(args){var entryFunction=Module.__start;try{entryFunction();var ret=0;exit(ret,!0)}catch(e){if(e instanceof ExitStatus)return;if(e=="unwind"){noExitRuntime=!0;return}else{var toLog=e;e&&typeof e=="object"&&e.stack&&(toLog=[e,e.stack]),err("exception thrown: "+toLog),quit_(1,e)}}finally{calledMain=!0}}function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(args),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}Module.run=run;function exit(status2,implicit){implicit&&noExitRuntime&&status2===0||(noExitRuntime||(ABORT=!0,EXITSTATUS=status2,exitRuntime(),Module.onExit&&Module.onExit(status2)),quit_(status2,new ExitStatus(status2)))}if(Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),noExitRuntime=!0,run(),WasmBackendModule2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModule:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModule}):typeof exports=="object"&&(exports.WasmBackendModule=WasmBackendModule)}),require_alea3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=String(data2);for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1283=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift73=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40963=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom5=__commonJS2((exports,module)=>{(function(global2,pool3,math){var width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea3(),xor128=require_xor1283(),xorwow=require_xorwow3(),xorshift7=require_xorshift73(),xor4096=require_xor40963(),tychei=require_tychei3(),sr=require_seedrandom5();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_string_decoder=__commonJS2(()=>{}),version="2.8.3",version2="2.8.3",version3="2.8.3",version4="2.8.3",version5="2.8.3",EPSILON_FLOAT32=1e-7,EPSILON_FLOAT16=1e-4,DataStorage=class{constructor(backend22,dataMover){this.backend=backend22,this.dataMover=dataMover,this.data=new WeakMap,this.dataIdsCount=0}get(dataId){return this.data.has(dataId)||this.dataMover.moveData(this.backend,dataId),this.data.get(dataId)}set(dataId,value){this.dataIdsCount++,this.data.set(dataId,value)}has(dataId){return this.data.has(dataId)}delete(dataId){return this.dataIdsCount--,this.data.delete(dataId)}numDataIds(){return this.dataIdsCount}},KernelBackend=class{time(f){return notYetImplemented("time")}read(dataId){return notYetImplemented("read")}readSync(dataId){return notYetImplemented("readSync")}numDataIds(){return notYetImplemented("numDataIds")}disposeData(dataId){return notYetImplemented("disposeData")}write(values,shape,dtype){return notYetImplemented("write")}move(dataId,values,shape,dtype){return notYetImplemented("move")}memory(){return notYetImplemented("memory")}floatPrecision(){return notYetImplemented("floatPrecision")}epsilon(){return this.floatPrecision()===32?EPSILON_FLOAT32:EPSILON_FLOAT16}batchMatMul(a,b,transposeA,transposeB){return notYetImplemented("batchMatMul")}fusedBatchMatMul({a,b,transposeA,transposeB,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedBatchMatMul")}slice(x,begin,size){return notYetImplemented("slice")}stridedSlice(x,begin,end,strides){return notYetImplemented("stridedSlice")}unstack(x,axis){return notYetImplemented("unstack")}reverse(a,axis){return notYetImplemented("reverse")}concat(tensors,axis){return notYetImplemented("concat")}neg(a){return notYetImplemented("neg")}add(a,b){return notYetImplemented("add")}addN(tensors){return notYetImplemented("addN")}subtract(a,b){return notYetImplemented("subtract")}multiply(a,b){return notYetImplemented("multiply")}realDivide(a,b){return notYetImplemented("realDivide")}floorDiv(a,b){return notYetImplemented("floorDiv")}sum(x,axes){return notYetImplemented("sum")}prod(x,axes){return notYetImplemented("prod")}unsortedSegmentSum(x,segmentIds,numSegments){return notYetImplemented("unsortedSegmentSum")}argMin(x,axis){return notYetImplemented("argMin")}argMax(x,axis){return notYetImplemented("argMax")}equal(a,b){return notYetImplemented("equal")}notEqual(a,b){return notYetImplemented("notEqual")}less(a,b){return notYetImplemented("less")}lessEqual(a,b){return notYetImplemented("lessEqual")}greater(a,b){return notYetImplemented("greater")}greaterEqual(a,b){return notYetImplemented("greaterEqual")}logicalNot(a){return notYetImplemented("logicalNot")}logicalAnd(a,b){return notYetImplemented("logicalAnd")}logicalOr(a,b){return notYetImplemented("logicalOr")}where(condition){return notYetImplemented("where")}select(condition,a,b){return notYetImplemented("select")}topk(x,k,sorted){return notYetImplemented("topk")}min(x,axes){return notYetImplemented("min")}minimum(a,b){return notYetImplemented("minimum")}mod(a,b){return notYetImplemented("mod")}max(x,axes){return notYetImplemented("max")}maximum(a,b){return notYetImplemented("maximum")}all(x,axes){return notYetImplemented("all")}any(x,axes){return notYetImplemented("any")}squaredDifference(a,b){return notYetImplemented("squaredDifference")}ceil(x){return notYetImplemented("ceil")}floor(x){return notYetImplemented("floor")}round(x){return notYetImplemented("round")}sign(x){return notYetImplemented("sign")}isNaN(x){return notYetImplemented("isNaN")}isInf(x){return notYetImplemented("isInf")}isFinite(x){return notYetImplemented("isFinite")}pow(a,b){return notYetImplemented("pow")}exp(x){return notYetImplemented("exp")}expm1(x){return notYetImplemented("expm1")}softmax(x,dim){return notYetImplemented("softmax")}log(x){return notYetImplemented("log")}log1p(x){return notYetImplemented("log1p")}sqrt(x){return notYetImplemented("sqrt")}rsqrt(x){return notYetImplemented("rsqrt")}square(x){return notYetImplemented("square")}reciprocal(x){return notYetImplemented("reciprocal")}relu(x){return notYetImplemented("relu")}relu6(x){return notYetImplemented("relu6")}prelu(x,a){return notYetImplemented("prelu")}elu(x){return notYetImplemented("elu")}eluDer(dy,y){return notYetImplemented("eluDer")}selu(x){return notYetImplemented("selu")}int(x){return notYetImplemented("int")}clip(x,min6,max6){return notYetImplemented("clip")}abs(x){return notYetImplemented("abs")}complexAbs(x){return notYetImplemented("complexAbs")}sigmoid(x){return notYetImplemented("sigmoid")}softplus(x){return notYetImplemented("softplus")}sin(x){return notYetImplemented("sin")}cos(x){return notYetImplemented("cos")}tan(x){return notYetImplemented("tan")}asin(x){return notYetImplemented("asin")}acos(x){return notYetImplemented("acos")}atan(x){return notYetImplemented("atan")}atan2(a,b){return notYetImplemented("atan2")}sinh(x){return notYetImplemented("sinh")}cosh(x){return notYetImplemented("cosh")}tanh(x){return notYetImplemented("tanh")}asinh(x){return notYetImplemented("asinh")}acosh(x){return notYetImplemented("acosh")}atanh(x){return notYetImplemented("atanh")}erf(x){return notYetImplemented("erf")}step(x,alpha){return notYetImplemented("step")}fusedConv2d({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedConv2d")}conv2d(x,filter,convInfo){return notYetImplemented("conv2d")}conv2dDerInput(dy,filter,convInfo){return notYetImplemented("conv2dDerInput")}conv2dDerFilter(x,dY,convInfo){return notYetImplemented("conv2dDerFilter")}fusedDepthwiseConv2D({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedDepthwiseConv2D")}depthwiseConv2D(input2,filter,convInfo){return notYetImplemented("depthwiseConv2D")}depthwiseConv2DDerInput(dy,filter,convInfo){return notYetImplemented("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(x,dY,convInfo){return notYetImplemented("depthwiseConv2DDerFilter")}conv3d(x,filter,convInfo){return notYetImplemented("conv3d")}conv3dDerInput(dy,filter,convInfo){return notYetImplemented("conv3dDerInput")}conv3dDerFilter(x,dY,convInfo){return notYetImplemented("conv3dDerFilter")}maxPool(x,convInfo){return notYetImplemented("maxPool")}maxPoolBackprop(dy,x,y,convInfo){return notYetImplemented("maxPoolBackprop")}avgPool(x,convInfo){return notYetImplemented("avgPool")}avgPoolBackprop(dy,x,convInfo){return notYetImplemented("avgPoolBackprop")}avgPool3d(x,convInfo){return notYetImplemented("avgPool3d")}avgPool3dBackprop(dy,x,convInfo){return notYetImplemented("avgPool3dBackprop")}maxPool3d(x,convInfo){return notYetImplemented("maxPool3d")}maxPool3dBackprop(dy,x,y,convInfo){return notYetImplemented("maxPool3dBackprop")}reshape(x,shape){return notYetImplemented("reshape")}cast(x,dtype){return notYetImplemented("cast")}tile(x,reps){return notYetImplemented("tile")}pad(x,paddings,constantValue){return notYetImplemented("pad")}transpose(x,perm){return notYetImplemented("transpose")}gather(x,indices,axis,batchDims=0){return notYetImplemented("gather")}gatherND(x,indices){return notYetImplemented("gatherND")}scatterND(indices,updates,shape){return notYetImplemented("scatterND")}batchToSpaceND(x,blockShape,crops){return notYetImplemented("batchToSpaceND")}spaceToBatchND(x,blockShape,paddings){return notYetImplemented("spaceToBatchND")}resizeBilinear(x,newHeight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeBilinear")}resizeBilinearBackprop(dy,x,alignCorners){return notYetImplemented("resizeBilinearBackprop")}resizeNearestNeighbor(x,newHEight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeNearestNeighbor")}resizeNearestNeighborBackprop(dy,x,alignCorners){return notYetImplemented("resizeNearestNeighborBackprop")}batchNorm(x,mean4,variance,offset,scale2,varianceEpsilon){return notYetImplemented("batchNorm")}localResponseNormalization4D(x,radius,bias,alpha,beta){return notYetImplemented("localResponseNormalization4D")}LRNGrad(dy,inputImage,outputImage,radius,bias,alpha,beta){return notYetImplemented("LRNGrad")}multinomial(logits,normalized,numSamples,seed){return notYetImplemented("multinomial")}oneHot(indices,depth,onValue,offValue){return notYetImplemented("oneHot")}cumsum(x,axis,exclusive,reverse5){return notYetImplemented("cumsum")}nonMaxSuppression(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return notYetImplemented("nonMaxSuppression")}fft(x){return notYetImplemented("fft")}ifft(x){return notYetImplemented("ifft")}complex(real4,imag4){return notYetImplemented("complex")}real(input2){return notYetImplemented("real")}imag(input2){return notYetImplemented("imag")}cropAndResize(image3,boxes,boxIndex,cropSize,method,extrapolationValue){return notYetImplemented("cropAndResize")}depthToSpace(x,blockSize,dataFormat){return notYetImplemented("depthToSpace")}split(value,sizeSplits,axis){return notYetImplemented("split")}sparseToDense(sparseIndices,sparseValues,outputShape,defaultValue){return notYetImplemented("sparseToDense")}diag(x){return notYetImplemented("diag")}fill(shape,value,dtype){return notYetImplemented("fill")}onesLike(x){return notYetImplemented("onesLike")}zerosLike(x){return notYetImplemented("zerosLike")}linspace(start,stop,num){return notYetImplemented("linspace")}dispose(){return notYetImplemented("dispose")}};function notYetImplemented(kernelName){throw new Error(`'${kernelName}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function shuffle(array2){let counter=array2.length,temp=0,index=0;for(;counter>0;)index=Math.random()*counter|0,counter--,temp=array2[counter],array2[counter]=array2[index],array2[index]=temp}function clamp(min6,x,max6){return Math.max(min6,Math.min(x,max6))}function nearestLargerEven(val){return val%2==0?val:val+1}function sum(arr){let sum6=0;for(let i=0;ierrorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function assertNonNull(a){assert(a!=null,()=>"The input to the tensor constructor must be a non-null value.")}function flatten(arr,result=[],skipTypedArray=!1){if(result==null&&(result=[]),Array.isArray(arr)||isTypedArray(arr)&&!skipTypedArray)for(let i=0;i0,maxCounter){return new Promise((resolve,reject)=>{let tryCount=0,tryFn=()=>{if(checkFn()){resolve();return}tryCount++;let nextBackoff=delayFn(tryCount);if(maxCounter!=null&&tryCount>=maxCounter){reject();return}setTimeout(tryFn,nextBackoff)};tryFn()})}function inferFromImplicitShape(shape,size){let shapeProd=1,implicitIdx=-1;for(let i=0;i=0)shapeProd*=shape[i];else if(shape[i]===-1){if(implicitIdx!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${implicitIdx} and dim ${i}`);implicitIdx=i}else if(shape[i]<0)throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);if(implicitIdx===-1){if(size>0&&size!==shapeProd)throw Error(`Size(${size}) must match the product of shape ${shape}`);return shape}if(shapeProd===0)throw Error(`Cannot infer the missing size in [${shape}] when there are 0 elements`);if(size%shapeProd!=0)throw Error(`The implicit shape can't be a fractional number. Got ${size} / ${shapeProd}`);let newShape=shape.slice();return newShape[implicitIdx]=size/shapeProd,newShape}function parseAxisParam(axis,shape){let rank=shape.length;return axis=axis==null?shape.map((s,i)=>i):[].concat(axis),assert(axis.every(ax=>ax>=-rank&&ax`All values in axis param must be in range [-${rank}, ${rank}) but got axis ${axis}`),assert(axis.every(ax=>isInt(ax)),()=>`All values in axis param must be integers but got axis ${axis}`),axis.map(a=>a<0?rank+a:a)}function squeezeShape(shape,axis){let newShape=[],keptDims=[],isEmptyArray=axis!=null&&Array.isArray(axis)&&axis.length===0,axes=axis==null||isEmptyArray?null:parseAxisParam(axis,shape).sort(),j=0;for(let i=0;ii)&&shape[i]===1&&(newShape.push(shape[i]),keptDims.push(i)),axes[j]<=i&&j++}shape[i]!==1&&(newShape.push(shape[i]),keptDims.push(i))}return{newShape,keptDims}}function getTypedArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function getArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else if(dtype==="string")values=new Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function checkConversionForErrors(vals,dtype){for(let i=0;ibytes+=x.length),bytes}function isString(value){return typeof value=="string"||value instanceof String}function isBoolean(value){return typeof value=="boolean"}function isNumber(value){return typeof value=="number"}function inferDtype(values){return Array.isArray(values)?inferDtype(values[0]):values instanceof Float32Array?"float32":values instanceof Int32Array||values instanceof Uint8Array?"int32":isNumber(values)?"float32":isString(values)?"string":isBoolean(values)?"bool":"float32"}function isFunction(f){return!!(f&&f.constructor&&f.call&&f.apply)}function nearestDivisor(size,start){for(let i=start;i=0;--i)strides[i]=strides[i+1]*shape[i+1];return strides}function createNestedArray(offset,shape,a){let ret=new Array;if(shape.length===1){let d=shape[0];for(let i=0;iacc*c);for(let i=0;iacc*c);if(size===0)return[];if(size!==a.length)throw new Error(`[${shape}] does not match the input size ${a.length}.`);return createNestedArray(0,shape,a)}function makeOnesTypedArray(size,dtype){let array2=makeZerosTypedArray(size,dtype);for(let i=0;iprev*curr,1);if(dtype==null||dtype==="float32")return toNestedArray(shape,new Float32Array(size));if(dtype==="int32")return toNestedArray(shape,new Int32Array(size));if(dtype==="bool")return toNestedArray(shape,new Uint8Array(size));throw new Error(`Unknown data type ${dtype}`)}function assertNonNegativeIntegerDimensions(shape){shape.forEach(dimSize=>{assert(Number.isInteger(dimSize)&&dimSize>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${shape}].`)})}function locToIndex(locs,rank,strides){if(rank===0)return 0;if(rank===1)return locs[0];let index=locs[locs.length-1];for(let i=0;i{let[key,value]=keyValue.split(":");this.urlFlags[key]=parseValue(key,value)})}};function getQueryParams(queryString){let params={};return queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...t)=>(decodeParam(params,t[0],t[1]),t.join("="))),params}function decodeParam(params,name,value){params[decodeURIComponent(name)]=decodeURIComponent(value||"")}function parseValue(flagName,value){if(value=value.toLowerCase(),value==="true"||value==="false")return value==="true";if(`${+value}`===value)return+value;throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`)}function env(){return ENV}var ENV=null;function setEnvironmentGlobal(environment){ENV=environment}var globalNameSpace;function getGlobalNamespace(){if(globalNameSpace==null){let ns;if(typeof window!="undefined")ns=window;else if(typeof global!="undefined")ns=global;else if(typeof process!="undefined")ns=process;else if(typeof self!="undefined")ns=self;else throw new Error("Could not find a global object");globalNameSpace=ns}return globalNameSpace}function getGlobalMap(){let ns=getGlobalNamespace();return ns._tfGlobals==null&&(ns._tfGlobals=new Map),ns._tfGlobals}function getGlobal(key,init2){let globalMap=getGlobalMap();if(globalMap.has(key))return globalMap.get(key);{let singleton=init2();return globalMap.set(key,singleton),globalMap.get(key)}}var Abs="Abs",Acos="Acos",Acosh="Acosh",Add="Add",AddN="AddN",All="All",Any="Any",ArgMax="ArgMax",ArgMin="ArgMin",Asin="Asin",Asinh="Asinh",Atan="Atan",Atanh="Atanh",Atan2="Atan2",AvgPool="AvgPool",AvgPoolGrad="AvgPoolGrad",AvgPool3D="AvgPool3D",AvgPool3DGrad="AvgPool3DGrad",BatchMatMul="BatchMatMul",BatchToSpaceND="BatchToSpaceND",Bincount="Bincount",BroadcastTo="BroadcastTo",Cast="Cast",Ceil="Ceil",ClipByValue="ClipByValue",Complex="Complex",ComplexAbs="ComplexAbs",Concat="Concat",Conv2D="Conv2D",Conv2DBackpropFilter="Conv2DBackpropFilter",Conv2DBackpropInput="Conv2DBackpropInput",Conv3D="Conv3D",Conv3DBackpropFilterV2="Conv3DBackpropFilterV2",Conv3DBackpropInputV2="Conv3DBackpropInputV2",Cos="Cos",Cosh="Cosh",Cumsum="Cumsum",CropAndResize="CropAndResize",DenseBincount="DenseBincount",DepthToSpace="DepthToSpace",DepthwiseConv2dNative="DepthwiseConv2dNative",DepthwiseConv2dNativeBackpropFilter="DepthwiseConv2dNativeBackpropFilter",DepthwiseConv2dNativeBackpropInput="DepthwiseConv2dNativeBackpropInput",Diag="Diag",Dilation2D="Dilation2D",Dilation2DBackpropInput="Dilation2DBackpropInput",Dilation2DBackpropFilter="Dilation2DBackpropFilter",RealDiv="RealDiv",Elu="Elu",EluGrad="EluGrad",Erf="Erf",Equal="Equal",Exp="Exp",ExpandDims="ExpandDims",Expm1="Expm1",FFT="FFT",Fill="Fill",FlipLeftRight="FlipLeftRight",Floor="Floor",FloorDiv="FloorDiv",FusedBatchNorm="FusedBatchNorm",GatherV2="GatherV2",GatherNd="GatherNd",Greater="Greater",GreaterEqual="GreaterEqual",Identity="Identity",IFFT="IFFT",Imag="Imag",IsFinite="IsFinite",IsInf="IsInf",IsNan="IsNan",LeakyRelu="LeakyRelu",Less="Less",LessEqual="LessEqual",LinSpace="LinSpace",Log="Log",Log1p="Log1p",LogicalAnd="LogicalAnd",LogicalNot="LogicalNot",LogicalOr="LogicalOr",LogSoftmax="LogSoftmax",LRN="LRN",LRNGrad="LRNGrad",Max="Max",Maximum="Maximum",MaxPool="MaxPool",MaxPoolGrad="MaxPoolGrad",MaxPool3D="MaxPool3D",MaxPool3DGrad="MaxPool3DGrad",MaxPoolWithArgmax="MaxPoolWithArgmax",Mean="Mean",Min="Min",Minimum="Minimum",MirrorPad="MirrorPad",Mod="Mod",Multinomial="Multinomial",Multiply="Multiply",Neg="Neg",NotEqual="NotEqual",NonMaxSuppressionV3="NonMaxSuppressionV3",NonMaxSuppressionV4="NonMaxSuppressionV4",NonMaxSuppressionV5="NonMaxSuppressionV5",OnesLike="OnesLike",OneHot="OneHot",Pack="Pack",PadV2="PadV2",Pool="Pool",Pow="Pow",Prelu="Prelu",Prod="Prod",Range="Range",Real="Real",Reciprocal="Reciprocal",Relu="Relu",Reshape="Reshape",ResizeNearestNeighbor="ResizeNearestNeighbor",ResizeNearestNeighborGrad="ResizeNearestNeighborGrad",ResizeBilinear="ResizeBilinear",ResizeBilinearGrad="ResizeBilinearGrad",Relu6="Relu6",Reverse="Reverse",Round="Round",Rsqrt="Rsqrt",ScatterNd="ScatterNd",Select="Select",Selu="Selu",Slice="Slice",Sin="Sin",Sinh="Sinh",Sign="Sign",Sigmoid="Sigmoid",Softplus="Softplus",Sqrt="Sqrt",Sum="Sum",SpaceToBatchND="SpaceToBatchND",SplitV="SplitV",Softmax="Softmax",SquaredDifference="SquaredDifference",Square="Square",Sub="Sub",SparseToDense="SparseToDense",StridedSlice="StridedSlice",Tan="Tan",Tanh="Tanh",Tile="Tile",TopK="TopK",Transpose="Transpose",Unique="Unique",Unpack="Unpack",UnsortedSegmentSum="UnsortedSegmentSum",ZerosLike="ZerosLike",Step="Step",FromPixels="FromPixels",RotateWithOffset="RotateWithOffset",_FusedMatMul="_FusedMatMul",FusedConv2D="FusedConv2D",FusedDepthwiseConv2D="FusedDepthwiseConv2D",kernelRegistry=getGlobal("kernelRegistry",()=>new Map),gradRegistry=getGlobal("gradRegistry",()=>new Map);function getKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);return kernelRegistry.get(key)}function getGradient(kernelName){return gradRegistry.get(kernelName)}function getKernelsForBackend(backendName){let it=kernelRegistry.entries(),result=[];for(;;){let{done,value}=it.next();if(done)break;let[key,config3]=value,[backend22]=key.split("_");backend22===backendName&&result.push(config3)}return result}function registerKernel(config3){let{kernelName,backendName}=config3,key=makeKey(kernelName,backendName);kernelRegistry.has(key)&&console.warn(`The kernel '${kernelName}' for backend '${backendName}' is already registered`),kernelRegistry.set(key,config3)}function registerGradient(config3){let{kernelName}=config3;gradRegistry.has(kernelName)&&env().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${kernelName}'`),gradRegistry.set(kernelName,config3)}function unregisterKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);if(!kernelRegistry.has(key))throw new Error(`The kernel '${kernelName}' for backend '${backendName}' is not registered`);kernelRegistry.delete(key)}function unregisterGradient(kernelName){if(!gradRegistry.has(kernelName))throw new Error(`The gradient '${kernelName}' for backend is not registered`);gradRegistry.delete(kernelName)}function copyRegisteredKernels(registeredBackendName,newBackendName){getKernelsForBackend(registeredBackendName).forEach(kernelConfig=>{let newKernelConfig=Object.assign({},kernelConfig,{backendName:newBackendName});registerKernel(newKernelConfig)})}function makeKey(kernelName,backendName){return`${backendName}_${kernelName}`}var util_exports={};__export2(util_exports,{arraysEqual:()=>arraysEqual,assert:()=>assert,assertNonNegativeIntegerDimensions:()=>assertNonNegativeIntegerDimensions,assertNonNull:()=>assertNonNull,assertShapesMatch:()=>assertShapesMatch,bytesFromStringArray:()=>bytesFromStringArray,bytesPerElement:()=>bytesPerElement,checkConversionForErrors:()=>checkConversionForErrors,clamp:()=>clamp,computeStrides:()=>computeStrides,createScalarValue:()=>createScalarValue,createShuffledIndices:()=>createShuffledIndices,decodeString:()=>decodeString,distSquared:()=>distSquared,encodeString:()=>encodeString,fetch:()=>fetch2,flatten:()=>flatten,getArrayFromDType:()=>getArrayFromDType,getTypedArrayFromDType:()=>getTypedArrayFromDType,hasEncodingLoss:()=>hasEncodingLoss,indexToLoc:()=>indexToLoc,inferDtype:()=>inferDtype,inferFromImplicitShape:()=>inferFromImplicitShape,isBoolean:()=>isBoolean,isFunction:()=>isFunction,isInt:()=>isInt,isNumber:()=>isNumber,isPromise:()=>isPromise,isScalarShape:()=>isScalarShape,isString:()=>isString,isTypedArray:()=>isTypedArray,isValidDtype:()=>isValidDtype,locToIndex:()=>locToIndex,makeOnesTypedArray:()=>makeOnesTypedArray,makeZerosNestedTypedArray:()=>makeZerosNestedTypedArray,makeZerosTypedArray:()=>makeZerosTypedArray,nearestDivisor:()=>nearestDivisor,nearestLargerEven:()=>nearestLargerEven,now:()=>now,parseAxisParam:()=>parseAxisParam,randUniform:()=>randUniform,repeatedTry:()=>repeatedTry,rightPad:()=>rightPad,shuffle:()=>shuffle,sizeFromShape:()=>sizeFromShape,sizeToSquarishShape:()=>sizeToSquarishShape,squeezeShape:()=>squeezeShape,sum:()=>sum,tanh:()=>tanh,toNestedArray:()=>toNestedArray,toTypedArray:()=>toTypedArray});function createScalarValue(value,dtype){return dtype==="string"?encodeString(value):toTypedArray([value],dtype)}function noConversionNeeded(a,dtype){return a instanceof Float32Array&&dtype==="float32"||a instanceof Int32Array&&dtype==="int32"||a instanceof Uint8Array&&dtype==="bool"}function toTypedArray(a,dtype){if(dtype==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(a)&&(a=flatten(a)),env().getBool("DEBUG")&&checkConversionForErrors(a,dtype),noConversionNeeded(a,dtype))return a;if(dtype==null||dtype==="float32"||dtype==="complex64")return new Float32Array(a);if(dtype==="int32")return new Int32Array(a);if(dtype==="bool"){let bool=new Uint8Array(a.length);for(let i=0;i{outputs=f()},timer=this.backendTimer.time(holdResultWrapperFn);if(env().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let i=0;i{checkComputationForErrors(tensorVals,output.dtype,kernelName)})}return{kernelName,outputs,inputs,timeMs:timer.then(timing=>timing.kernelMs),extraInfo:timer.then(timing=>timing.getExtraProfileInfo!=null?timing.getExtraProfileInfo():"")}}logKernelProfile(kernelProfile){let{kernelName,outputs,timeMs,inputs,extraInfo}=kernelProfile;outputs.forEach(result=>{Promise.all([result.data(),timeMs,extraInfo]).then(valueContainer=>{this.logger.logKernelProfile(kernelName,result,valueContainer[0],valueContainer[1],inputs,valueContainer[2])})})}};function checkComputationForErrors(vals,dtype,kernelName){if(dtype!=="float32")return!1;for(let i=0;i0?inputShape:""} `}}console.log(`%c${paddedName} %c${time2} %c${rank}D ${shape} %c${size} %c${inputShapesDescription} %c${extraInfo}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function getFilteredNodesXToY(tape,xs,y){let tensorsFromX={},nodesFromX={};for(let i=0;itensorsFromX[output.id]=!0),anyInputFromX=!0,nodesFromX[node.id]=!0;break}if(anyInputFromX)break}}let tensorsLeadToY={};tensorsLeadToY[y.id]=!0;let nodesToY={};for(let i=tape.length-1;i>=0;i--){let node=tape[i],nodeInputs=node.inputs;for(let j=0;j=0;i--){let node=filteredTape[i],dys=[];if(node.outputs.forEach(o=>{let gradTensor=tensorAccumulatedGradientMap[o.id];gradTensor!=null?dys.push(gradTensor):dys.push(null)}),node.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${node.kernelName}.`);let inputGradients=node.gradient(dys);for(let inputName in node.inputs){if(!(inputName in inputGradients))throw new Error(`Cannot backprop through input ${inputName}. Available gradients found: ${Object.keys(inputGradients)}.`);let dx=tidy2(()=>inputGradients[inputName]());if(dx.dtype!=="float32")throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);let x=node.inputs[inputName];if(!arraysEqual(dx.shape,x.shape))throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input '${inputName}' has shape '${dx.shape}', which does not match the shape of the input '${x.shape}'`);if(tensorAccumulatedGradientMap[x.id]==null)tensorAccumulatedGradientMap[x.id]=dx;else{let curGradient=tensorAccumulatedGradientMap[x.id];tensorAccumulatedGradientMap[x.id]=add5(curGradient,dx),curGradient.dispose()}}}}var FORMAT_LIMIT_NUM_VALS=20,FORMAT_NUM_FIRST_LAST_VALS=3,FORMAT_NUM_SIG_DIGITS=7;function tensorToString(vals,shape,dtype,verbose){let strides=computeStrides(shape),padPerCol=computeMaxSizePerColumn(vals,shape,dtype,strides),rank=shape.length,valsLines=subTensorToString(vals,shape,dtype,strides,padPerCol),lines=["Tensor"];return verbose&&(lines.push(` dtype: ${dtype}`),lines.push(` rank: ${rank}`),lines.push(` shape: [${shape}]`),lines.push(" values:")),lines.push(valsLines.map(l=>" "+l).join(` +`)};exports.Canvas=WebGLImageFilter}),require_image=__commonJS(exports=>{var fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input2,config2){let tensor2;if(input2 instanceof Tensor)tensor2=clone(input2);else{let originalWidth=input2.naturalWidth||input2.videoWidth||input2.width||input2.shape&&input2.shape[1]>0,originalHeight=input2.naturalHeight||input2.videoHeight||input2.height||input2.shape&&input2.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config2.filter.width>0?targetWidth=config2.filter.width:config2.filter.height>0&&(targetWidth=originalWidth*(config2.filter.height/originalHeight)),config2.filter.height>0?targetHeight=config2.filter.height:config2.filter.width>0&&(targetHeight=originalHeight*(config2.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input2),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input2 instanceof ImageData?ctx.putImageData(input2,0,0):ctx.drawImage(input2,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config2.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config2.filter.brightness),config2.filter.contrast!==0&&this.fx.addFilter("contrast",config2.filter.contrast),config2.filter.sharpness!==0&&this.fx.addFilter("sharpen",config2.filter.sharpness),config2.filter.blur!==0&&this.fx.addFilter("blur",config2.filter.blur),config2.filter.saturation!==0&&this.fx.addFilter("saturation",config2.filter.saturation),config2.filter.hue!==0&&this.fx.addFilter("hue",config2.filter.hue),config2.filter.negative&&this.fx.addFilter("negative"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.vintage&&this.fx.addFilter("brownie"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.kodachrome&&this.fx.addFilter("kodachrome"),config2.filter.technicolor&&this.fx.addFilter("technicolor"),config2.filter.polaroid&&this.fx.addFilter("polaroid"),config2.filter.pixelate!==0&&this.fx.addFilter("pixelate",config2.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tensor3d(outCanvas.data,shape,"int32")}else if(config2.backend==="webgl"||outCanvas instanceof ImageData)pixels=browser_exports.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=browser_exports.fromPixels(data2)}let casted=pixels.toFloat();tensor2=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor:tensor2,canvas:config2.filter.return?outCanvas:null}}exports.process=process3});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tfjs_esm_exports={};__export(tfjs_esm_exports,{Abs:()=>Abs,Acos:()=>Acos,Acosh:()=>Acosh,AdadeltaOptimizer:()=>AdadeltaOptimizer,AdagradOptimizer:()=>AdagradOptimizer,AdamOptimizer:()=>AdamOptimizer,AdamaxOptimizer:()=>AdamaxOptimizer,Add:()=>Add,AddN:()=>AddN,All:()=>All,Any:()=>Any,ArgMax:()=>ArgMax,ArgMin:()=>ArgMin,Asin:()=>Asin,Asinh:()=>Asinh,Atan:()=>Atan,Atan2:()=>Atan2,Atanh:()=>Atanh,AvgPool:()=>AvgPool,AvgPool3D:()=>AvgPool3D,AvgPool3DGrad:()=>AvgPool3DGrad,AvgPoolGrad:()=>AvgPoolGrad,BackendWasm:()=>BackendWasm,BatchMatMul:()=>BatchMatMul,BatchToSpaceND:()=>BatchToSpaceND,Bincount:()=>Bincount,BroadcastTo:()=>BroadcastTo,Callback:()=>Callback,CallbackList:()=>CallbackList,Cast:()=>Cast,Ceil:()=>Ceil,ClipByValue:()=>ClipByValue,Complex:()=>Complex,ComplexAbs:()=>ComplexAbs,Concat:()=>Concat,Conv2D:()=>Conv2D,Conv2DBackpropFilter:()=>Conv2DBackpropFilter,Conv2DBackpropInput:()=>Conv2DBackpropInput,Conv3D:()=>Conv3D,Conv3DBackpropFilterV2:()=>Conv3DBackpropFilterV2,Conv3DBackpropInputV2:()=>Conv3DBackpropInputV2,Cos:()=>Cos,Cosh:()=>Cosh,CropAndResize:()=>CropAndResize,Cumsum:()=>Cumsum,CustomCallback:()=>CustomCallback,DataStorage:()=>DataStorage,DenseBincount:()=>DenseBincount,DepthToSpace:()=>DepthToSpace,DepthwiseConv2dNative:()=>DepthwiseConv2dNative,DepthwiseConv2dNativeBackpropFilter:()=>DepthwiseConv2dNativeBackpropFilter,DepthwiseConv2dNativeBackpropInput:()=>DepthwiseConv2dNativeBackpropInput,Diag:()=>Diag,Dilation2D:()=>Dilation2D,Dilation2DBackpropFilter:()=>Dilation2DBackpropFilter,Dilation2DBackpropInput:()=>Dilation2DBackpropInput,ENV:()=>ENV,EarlyStopping:()=>EarlyStopping,Elu:()=>Elu,EluGrad:()=>EluGrad,Environment:()=>Environment,Equal:()=>Equal,Erf:()=>Erf,Exp:()=>Exp,ExpandDims:()=>ExpandDims,Expm1:()=>Expm1,FFT:()=>FFT,Fill:()=>Fill,FlipLeftRight:()=>FlipLeftRight,Floor:()=>Floor,FloorDiv:()=>FloorDiv,FromPixels:()=>FromPixels,FusedBatchNorm:()=>FusedBatchNorm,FusedConv2D:()=>FusedConv2D,FusedDepthwiseConv2D:()=>FusedDepthwiseConv2D,GPGPUContext:()=>GPGPUContext,GatherNd:()=>GatherNd,GatherV2:()=>GatherV2,GraphModel:()=>GraphModel,Greater:()=>Greater,GreaterEqual:()=>GreaterEqual,History:()=>History,IFFT:()=>IFFT,Identity:()=>Identity,Imag:()=>Imag,InputSpec:()=>InputSpec,IsFinite:()=>IsFinite,IsInf:()=>IsInf,IsNan:()=>IsNan,KernelBackend:()=>KernelBackend,LRN:()=>LRN,LRNGrad:()=>LRNGrad,LayerVariable:()=>LayerVariable,LayersModel:()=>LayersModel,LeakyRelu:()=>LeakyRelu,Less:()=>Less,LessEqual:()=>LessEqual,LinSpace:()=>LinSpace,Log:()=>Log,Log1p:()=>Log1p,LogSoftmax:()=>LogSoftmax,LogicalAnd:()=>LogicalAnd,LogicalNot:()=>LogicalNot,LogicalOr:()=>LogicalOr,MathBackendCPU:()=>MathBackendCPU,MathBackendWebGL:()=>MathBackendWebGL,Max:()=>Max,MaxPool:()=>MaxPool,MaxPool3D:()=>MaxPool3D,MaxPool3DGrad:()=>MaxPool3DGrad,MaxPoolGrad:()=>MaxPoolGrad,MaxPoolWithArgmax:()=>MaxPoolWithArgmax,Maximum:()=>Maximum,Mean:()=>Mean,Min:()=>Min,Minimum:()=>Minimum,MirrorPad:()=>MirrorPad,Mod:()=>Mod,MomentumOptimizer:()=>MomentumOptimizer,Multinomial:()=>Multinomial,Multiply:()=>Multiply,Neg:()=>Neg,NonMaxSuppressionV3:()=>NonMaxSuppressionV3,NonMaxSuppressionV4:()=>NonMaxSuppressionV4,NonMaxSuppressionV5:()=>NonMaxSuppressionV5,NotEqual:()=>NotEqual,OP_SCOPE_SUFFIX:()=>OP_SCOPE_SUFFIX,OneHot:()=>OneHot,OnesLike:()=>OnesLike,Optimizer:()=>Optimizer,Pack:()=>Pack,PadV2:()=>PadV2,Pool:()=>Pool,Pow:()=>Pow,Prelu:()=>Prelu,Prod:()=>Prod,RMSPropOptimizer:()=>RMSPropOptimizer,RNN:()=>RNN,Range:()=>Range,Rank:()=>Rank,Real:()=>Real,RealDiv:()=>RealDiv,Reciprocal:()=>Reciprocal,Reduction:()=>Reduction,Relu:()=>Relu,Relu6:()=>Relu6,Reshape:()=>Reshape,ResizeBilinear:()=>ResizeBilinear,ResizeBilinearGrad:()=>ResizeBilinearGrad,ResizeNearestNeighbor:()=>ResizeNearestNeighbor,ResizeNearestNeighborGrad:()=>ResizeNearestNeighborGrad,Reverse:()=>Reverse,RotateWithOffset:()=>RotateWithOffset,Round:()=>Round,Rsqrt:()=>Rsqrt,SGDOptimizer:()=>SGDOptimizer,ScatterNd:()=>ScatterNd,Select:()=>Select,Selu:()=>Selu,Sequential:()=>Sequential,Sigmoid:()=>Sigmoid,Sign:()=>Sign,Sin:()=>Sin,Sinh:()=>Sinh,Slice:()=>Slice,Softmax:()=>Softmax,Softplus:()=>Softplus,SpaceToBatchND:()=>SpaceToBatchND,SparseToDense:()=>SparseToDense,SplitV:()=>SplitV,Sqrt:()=>Sqrt,Square:()=>Square,SquaredDifference:()=>SquaredDifference,Step:()=>Step,StridedSlice:()=>StridedSlice,Sub:()=>Sub,Sum:()=>Sum,SymbolicTensor:()=>SymbolicTensor,Tan:()=>Tan,Tanh:()=>Tanh,Tensor:()=>Tensor,TensorBuffer:()=>TensorBuffer,Tile:()=>Tile,TopK:()=>TopK,Transpose:()=>Transpose,Unique:()=>Unique,Unpack:()=>Unpack,UnsortedSegmentSum:()=>UnsortedSegmentSum,Variable:()=>Variable,ZerosLike:()=>ZerosLike,_FusedMatMul:()=>_FusedMatMul,abs:()=>abs,acos:()=>acos,acosh:()=>acosh,add:()=>add2,addN:()=>addN,addStrict:()=>addStrict,all:()=>all,any:()=>any,argMax:()=>argMax,argMin:()=>argMin,asin:()=>asin,asinh:()=>asinh,atan:()=>atan,atan2:()=>atan2,atanh:()=>atanh,avgPool:()=>avgPool,avgPool3d:()=>avgPool3d,backend:()=>backend,backend_util:()=>backend_util_exports,basicLSTMCell:()=>basicLSTMCell,batchNorm:()=>batchNorm,batchNorm2d:()=>batchNorm2d,batchNorm3d:()=>batchNorm3d,batchNorm4d:()=>batchNorm4d,batchToSpaceND:()=>batchToSpaceND,bincount:()=>bincount,booleanMaskAsync:()=>booleanMaskAsync,broadcastTo:()=>broadcastTo,browser:()=>browser_exports,buffer:()=>buffer,callbacks:()=>callbacks,cast:()=>cast,ceil:()=>ceil,clipByValue:()=>clipByValue,clone:()=>clone,complex:()=>complex,concat:()=>concat,concat1d:()=>concat1d,concat2d:()=>concat2d,concat3d:()=>concat3d,concat4d:()=>concat4d,constraints:()=>exports_constraints_exports,conv1d:()=>conv1d,conv2d:()=>conv2d,conv2dTranspose:()=>conv2dTranspose,conv3d:()=>conv3d,conv3dTranspose:()=>conv3dTranspose,copyRegisteredKernels:()=>copyRegisteredKernels,cos:()=>cos,cosh:()=>cosh,cosineWindow:()=>cosineWindow,cumsum:()=>cumsum,customGrad:()=>customGrad,data:()=>dist_exports,denseBincount:()=>denseBincount,deprecationWarn:()=>deprecationWarn,depthToSpace:()=>depthToSpace,depthwiseConv2d:()=>depthwiseConv2d,deregisterOp:()=>deregisterOp,device_util:()=>device_util_exports,diag:()=>diag,dilation2d:()=>dilation2d,disableDeprecationWarnings:()=>disableDeprecationWarnings,dispose:()=>dispose,disposeVariables:()=>disposeVariables,div:()=>div,divNoNan:()=>divNoNan,divStrict:()=>divStrict,dot:()=>dot,dropout:()=>dropout,elu:()=>elu,enableDebugMode:()=>enableDebugMode,enableProdMode:()=>enableProdMode,enclosingPowerOfTwo:()=>enclosingPowerOfTwo,engine:()=>engine,env:()=>env,equal:()=>equal,equalStrict:()=>equalStrict,erf:()=>erf,exp:()=>exp,expandDims:()=>expandDims,expm1:()=>expm1,eye:()=>eye,fft:()=>fft,fill:()=>fill,findBackend:()=>findBackend,findBackendFactory:()=>findBackendFactory,floor:()=>floor,floorDiv:()=>floorDiv,forceHalfFloat:()=>forceHalfFloat,fused:()=>fused_ops_exports,gather:()=>gather,gatherND:()=>gatherND,gather_util:()=>gather_nd_util_exports,getBackend:()=>getBackend,getGradient:()=>getGradient,getKernel:()=>getKernel,getKernelsForBackend:()=>getKernelsForBackend,gpgpu_util:()=>gpgpu_util_exports,grad:()=>grad,grads:()=>grads,greater:()=>greater,greaterEqual:()=>greaterEqual,greaterEqualStrict:()=>greaterEqualStrict,greaterStrict:()=>greaterStrict,ifft:()=>ifft,imag:()=>imag,image:()=>image,inTopKAsync:()=>inTopKAsync,initializers:()=>exports_initializers_exports,input:()=>input,io:()=>io_exports,irfft:()=>irfft,isFinite:()=>isFinite2,isInf:()=>isInf,isNaN:()=>isNaN2,keep:()=>keep,kernel_impls:()=>kernel_impls_exports,layers:()=>exports_layers_exports,leakyRelu:()=>leakyRelu,less:()=>less,lessEqual:()=>lessEqual,lessEqualStrict:()=>lessEqualStrict,lessStrict:()=>lessStrict,linalg:()=>linalg,linspace:()=>linspace,loadGraphModel:()=>loadGraphModel,loadLayersModel:()=>loadLayersModel,localResponseNormalization:()=>localResponseNormalization,log:()=>log2,log1p:()=>log1p,logSigmoid:()=>logSigmoid,logSoftmax:()=>logSoftmax,logSumExp:()=>logSumExp,logicalAnd:()=>logicalAnd,logicalNot:()=>logicalNot,logicalOr:()=>logicalOr,logicalXor:()=>logicalXor,losses:()=>losses,matMul:()=>matMul,math:()=>math_exports,max:()=>max,maxPool:()=>maxPool,maxPool3d:()=>maxPool3d,maxPoolWithArgmax:()=>maxPoolWithArgmax,maximum:()=>maximum,maximumStrict:()=>maximumStrict,mean:()=>mean,memory:()=>memory,metrics:()=>exports_metrics_exports,min:()=>min,minimum:()=>minimum,minimumStrict:()=>minimumStrict,mirrorPad:()=>mirrorPad,mod:()=>mod,modStrict:()=>modStrict,model:()=>model,models:()=>exports_models_exports,moments:()=>moments,movingAverage:()=>movingAverage,mul:()=>mul,mulStrict:()=>mulStrict,multiRNNCell:()=>multiRNNCell,multinomial:()=>multinomial,neg:()=>neg,nextFrame:()=>nextFrame,norm:()=>norm,notEqual:()=>notEqual,notEqualStrict:()=>notEqualStrict,oneHot:()=>oneHot,ones:()=>ones2,onesLike:()=>onesLike,op:()=>op,outerProduct:()=>outerProduct,pad:()=>pad,pad1d:()=>pad1d,pad2d:()=>pad2d,pad3d:()=>pad3d,pad4d:()=>pad4d,pool:()=>pool,pow:()=>pow,powStrict:()=>powStrict,prelu:()=>prelu,print:()=>print2,prod:()=>prod,profile:()=>profile,rand:()=>rand,randomGamma:()=>randomGamma,randomNormal:()=>randomNormal,randomUniform:()=>randomUniform,range:()=>range,ready:()=>ready,real:()=>real,reciprocal:()=>reciprocal,registerBackend:()=>registerBackend,registerCallbackConstructor:()=>registerCallbackConstructor,registerGradient:()=>registerGradient,registerKernel:()=>registerKernel,registerOp:()=>registerOp,regularizers:()=>exports_regularizers_exports,relu:()=>relu,relu6:()=>relu6,removeBackend:()=>removeBackend,reshape:()=>reshape,reverse:()=>reverse,reverse1d:()=>reverse1d,reverse2d:()=>reverse2d,reverse3d:()=>reverse3d,reverse4d:()=>reverse4d,rfft:()=>rfft,round:()=>round2,rsqrt:()=>rsqrt,scalar:()=>scalar,scatterND:()=>scatterND,scatter_util:()=>scatter_nd_util_exports,selu:()=>selu,separableConv2d:()=>separableConv2d,sequential:()=>sequential,serialization:()=>serialization_exports,setBackend:()=>setBackend,setPlatform:()=>setPlatform,setWasmPath:()=>setWasmPath,setWasmPaths:()=>setWasmPaths,setWebGLContext:()=>setWebGLContext,setdiff1dAsync:()=>setdiff1dAsync,shared:()=>shared_exports,sigmoid:()=>sigmoid,sign:()=>sign,signal:()=>signal,sin:()=>sin,sinh:()=>sinh,slice:()=>slice,slice1d:()=>slice1d,slice2d:()=>slice2d,slice3d:()=>slice3d,slice4d:()=>slice4d,slice_util:()=>slice_util_exports,softmax:()=>softmax,softplus:()=>softplus,spaceToBatchND:()=>spaceToBatchND,sparseToDense:()=>sparseToDense,spectral:()=>spectral,split:()=>split,sqrt:()=>sqrt,square:()=>square,squaredDifference:()=>squaredDifference,squaredDifferenceStrict:()=>squaredDifferenceStrict,squeeze:()=>squeeze,stack:()=>stack,step:()=>step,stridedSlice:()=>stridedSlice,sub:()=>sub,subStrict:()=>subStrict,sum:()=>sum2,sumOutType:()=>sumOutType,tan:()=>tan,tanh:()=>tanh2,tensor:()=>tensor,tensor1d:()=>tensor1d,tensor2d:()=>tensor2d,tensor3d:()=>tensor3d,tensor4d:()=>tensor4d,tensor5d:()=>tensor5d,tensor6d:()=>tensor6d,tensor_util:()=>tensor_util_exports,test_util:()=>test_util_exports,tidy:()=>tidy,tile:()=>tile,time:()=>time,topk:()=>topk,train:()=>train,transpose:()=>transpose,truncatedNormal:()=>truncatedNormal,unique:()=>unique,unregisterGradient:()=>unregisterGradient,unregisterKernel:()=>unregisterKernel,unsortedSegmentSum:()=>unsortedSegmentSum,unstack:()=>unstack,upcastType:()=>upcastType,util:()=>util_exports,valueAndGrad:()=>valueAndGrad,valueAndGrads:()=>valueAndGrads,variable:()=>variable,variableGrads:()=>variableGrads,version:()=>version13,version_converter:()=>version11,version_core:()=>version6,version_cpu:()=>version7,version_layers:()=>version10,version_wasm:()=>version9,version_webgl:()=>version8,webgl:()=>webgl,webgl_util:()=>webgl_util_exports,where:()=>where,whereAsync:()=>whereAsync,zeros:()=>zeros,zerosLike:()=>zerosLike});var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__commonJS2=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export2=(target,all4)=>{__markAsModule2(target);for(var name in all4)__defProp2(target,name,{get:all4[name],enumerable:!0})},__exportStar2=(target,module,desc)=>{if(__markAsModule2(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames2(module))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc2(module,key))||desc.enumerable});return target},__toModule2=module=>module&&module.__esModule?module:__exportStar2(__defProp2(module!=null?__create2(__getProtoOf2(module)):{},"default",{value:module,enumerable:!0}),module),require_browser=__commonJS2(()=>{}),require_alea=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor128=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift7=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor4096=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_crypto=__commonJS2(()=>{}),require_seedrandom=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea(),xor128=require_xor128(),xorwow=require_xorwow(),xorshift7=require_xorshift7(),xor4096=require_xor4096(),tychei=require_tychei(),sr=require_seedrandom();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_alea2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1282=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift72=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40962=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom3=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea2(),xor128=require_xor1282(),xorwow=require_xorwow2(),xorshift7=require_xorshift72(),xor4096=require_xor40962(),tychei=require_tychei2(),sr=require_seedrandom3();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_path=__commonJS2(()=>{}),require_worker_threads=__commonJS2(()=>{}),require_perf_hooks=__commonJS2(()=>{}),require_tfjs_backend_wasm_threaded_simd=__commonJS2((exports,module)=>{var WasmBackendModuleThreadedSimd=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModuleThreadedSimd2){WasmBackendModuleThreadedSimd2=WasmBackendModuleThreadedSimd2||{};function GROWABLE_HEAP_I8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP8}function GROWABLE_HEAP_U8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU8}function GROWABLE_HEAP_I32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP32}function GROWABLE_HEAP_U32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU32}function GROWABLE_HEAP_F64(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd2!="undefined"?WasmBackendModuleThreadedSimd2:{},_scriptDir2=void 0,moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status2,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module.ENVIRONMENT_IS_PTHREAD||!1;ENVIRONMENT_IS_PTHREAD&&(buffer2=Module.buffer,DYNAMIC_BASE=Module.DYNAMIC_BASE,DYNAMICTOP_PTR=Module.DYNAMICTOP_PTR);var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;if(ENVIRONMENT_IS_NODE){ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status2){process.exit(status2)},Module.inspect=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require_worker_threads()}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}Worker=nodeWorkerThreads.Worker}else ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status2){quit(status2)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir2&&(scriptDirectory=_scriptDir2),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",ENVIRONMENT_IS_NODE?(read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret}):(read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)}),setWindowTitle=function(title){document.title=title});ENVIRONMENT_IS_NODE&&typeof performance=="undefined"&&(performance=require_perf_hooks().performance);var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var Atomics_load=Atomics.load,Atomics_store=Atomics.store,Atomics_compareExchange=Atomics.compareExchange,wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:169,maximum:169+0,element:"anyfunc"}),wasmModule,threadInfoStruct=0,selfThreadId=0,ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str2){var ret2=0;if(str2!=null&&str2!==0){var len=(str2.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str2,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);){var u0=heap[idx++];if(!u0)return str2;if(!(u0&128)){str2+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str2+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224?u0=(u0&15)<<12|u1<<6|u2:u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63,u0<65536)str2+=String.fromCharCode(u0);else{var ch=u0-65536;str2+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str2}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""}function stringToUTF8Array(str2,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str2.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str2,outPtr,maxBytesToWrite){return stringToUTF8Array(str2,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str2){for(var len=0,i=0;i=55296&&u<=57343&&(u=65536+((u&1023)<<10)|str2.charCodeAt(++i)&1023),u<=127?++len:u<=2047?len+=2:u<=65535?len+=3:len+=4}return len}function writeArrayToMemory(array2,buffer3){GROWABLE_HEAP_I8().set(array2,buffer3)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){return x%multiple>0&&(x+=multiple-x%multiple),x}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656,INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;if(ENVIRONMENT_IS_PTHREAD)wasmMemory=Module.wasmMemory,buffer2=Module.buffer;else if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else if(wasmMemory=new WebAssembly.Memory({initial:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,maximum:2147483648/WASM_PAGE_SIZE,shared:!0}),!(wasmMemory.buffer instanceof SharedArrayBuffer))throw err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ENVIRONMENT_IS_NODE&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");wasmMemory&&(buffer2=wasmMemory.buffer),INITIAL_INITIAL_MEMORY=buffer2.byteLength,updateGlobalBufferAndViews(buffer2),ENVIRONMENT_IS_PTHREAD||(GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE);function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1;ENVIRONMENT_IS_PTHREAD&&(runtimeInitialized=!0);function preRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){ENVIRONMENT_IS_PTHREAD||callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){assert3(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker"),runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),ENVIRONMENT_IS_PTHREAD&&console.error("Pthread aborting at "+new Error().stack),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str2,prefix){return String.prototype.startsWith?str2.startsWith(prefix):str2.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm-threaded-simd.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={a:asmLibraryArg};function receiveInstance(instance2,module2){var exports3=instance2.exports;if(Module.asm=exports3,wasmModule=module2,!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){--numWorkersToLoad||removeRunDependency("wasm-instantiate")})})}}ENVIRONMENT_IS_PTHREAD||addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance,output.module)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}ENVIRONMENT_IS_PTHREAD||__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0,__pthread_is_main_runtime_thread=0,__pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0,isMainBrowserThread=isMainBrowserThread|0,isMainRuntimeThread=isMainRuntimeThread|0,__pthread_ptr=pthreadPtr,__pthread_is_main_browser_thread=isMainBrowserThread,__pthread_is_main_runtime_thread=isMainRuntimeThread}Module.__register_pthread_ptr=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},__main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count2){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0||count2<0)return-28;if(count2==0)return 0;count2>=2147483647&&(count2=Infinity);var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2),mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress&&(--count2,mainThreadWoken=1,count2<=0))return 1}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count2);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module._emscripten_futex_wake=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _kill_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate(),PThread.freeThreadData(pthread),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1),pthread.worker.pthread=void 0}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({cmd:"cancel"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker2=pthread.worker;PThread.returnWorkerToPool(worker2)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1),_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){for(var pthreadPoolSize=8,i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;for(var tlsMemory=13056,i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){for(;PThread.exitHandlers.length>0;)PThread.exitHandlers.pop()();PThread.exitHandlers=null}ENVIRONMENT_IS_PTHREAD&&threadInfoStruct&&___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();tb&&(Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode),Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0),PThread.runExitHandlers(),_emscripten_futex_wake(tb+0,2147483647),__register_pthread_ptr(0,0,0),threadInfoStruct=0,ENVIRONMENT_IS_PTHREAD&&postMessage({cmd:"exit"}))},threadCancel:function(){PThread.runExitHandlers(),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1),_emscripten_futex_wake(threadInfoStruct+0,2147483647),threadInfoStruct=selfThreadId=0,__register_pthread_ptr(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];pthread&&pthread.worker&&PThread.returnWorkerToPool(pthread.worker)}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0,_free(tlsMemory),_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0,pthread.allocatedOwnStack&&pthread.stackBase&&_free(pthread.stackBase),pthread.stackBase=0,pthread.worker&&(pthread.worker.pthread=null)}},returnWorkerToPool:function(worker2){delete PThread.pthreads[worker2.pthread.thread],PThread.unusedWorkers.push(worker2),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker2),1),PThread.freeThreadData(worker2.pthread),worker2.pthread=void 0},receiveObjectTransfer:function(data2){},loadWasmModuleToWorker:function(worker2,onFinishedLoading){worker2.onmessage=function(e){var d=e.data,cmd=d.cmd;if(worker2.pthread&&(PThread.currentProxiedOperationCallerThread=worker2.pthread.threadInfoStruct),d.targetThread&&d.targetThread!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];thread?thread.worker.postMessage(e.data,d.transferList):console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d.targetThread+", but that thread no longer exists!"),PThread.currentProxiedOperationCallerThread=void 0;return}if(cmd==="processQueuedMainThreadWork")_emscripten_main_thread_process_queued_calls();else if(cmd==="spawnThread")__spawn_thread(e.data);else if(cmd==="cleanupThread")__cleanup_thread(d.thread);else if(cmd==="killThread")__kill_thread(d.thread);else if(cmd==="cancelThread")__cancel_thread(d.thread);else if(cmd==="loaded")worker2.loaded=!0,onFinishedLoading&&onFinishedLoading(worker2),worker2.runPthread&&(worker2.runPthread(),delete worker2.runPthread);else if(cmd==="print")out("Thread "+d.threadId+": "+d.text);else if(cmd==="printErr")err("Thread "+d.threadId+": "+d.text);else if(cmd==="alert")alert("Thread "+d.threadId+": "+d.text);else if(cmd==="exit"){var detached=worker2.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker2.pthread.thread+68>>2);detached&&PThread.returnWorkerToPool(worker2)}else cmd==="cancelDone"?PThread.returnWorkerToPool(worker2):cmd==="objectTransfer"?PThread.receiveObjectTransfer(e.data):e.data.target==="setimmediate"?worker2.postMessage(e.data):err("worker sent an unknown command "+cmd);PThread.currentProxiedOperationCallerThread=void 0},worker2.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)},ENVIRONMENT_IS_NODE&&(worker2.on("message",function(data2){worker2.onmessage({data:data2})}),worker2.on("error",function(data2){worker2.onerror(data2)}),worker2.on("exit",function(data2){console.log("worker exited - TODO: update the worker queue?")})),worker2.postMessage({cmd:"load",urlOrBlob:Module.mainScriptUrlOrBlob||_scriptDir2,wasmMemory,wasmModule,DYNAMIC_BASE,DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("tfjs-backend-wasm-threaded-simd.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){return PThread.unusedWorkers.length==0&&(PThread.allocateUnusedWorker(),PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])),PThread.unusedWorkers.length>0?PThread.unusedWorkers.pop():null},busySpinWait:function(msecs){for(var t=performance.now()+msecs;performance.now()>2]=value,value}function _atexit(func2,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func2,arg);__ATEXIT__.unshift({func:func2,arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId)postMessage({cmd:"processQueuedMainThreadWork"});else if(ENVIRONMENT_IS_PTHREAD)postMessage({targetThread:targetThreadId,cmd:"processThreadQueue"});else{var pthread=PThread.pthreads[targetThreadId],worker2=pthread&&pthread.worker;if(!worker2)return;worker2.postMessage({cmd:"processThreadQueue"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0,newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now(),tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);for(var ourWaitAddress=addr;addr==ourWaitAddress;){if(tNow=performance.now(),tNow>tEnd)return-73;_emscripten_main_thread_process_queued_calls(),addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator.hardwareConcurrency}function _emscripten_proxy_to_main_thread_js(index,sync){for(var numCallArgs=arguments.length-2,stack2=stackSave(),args=stackAlloc(numCallArgs*8),b=args>>3,i=0;i>3]),buf+=8):(buf=buf+3&~3,args.push(GROWABLE_HEAP_I32()[buf>>2]),buf+=4);return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;for(var b=args>>3,i=0;i>>16),updateGlobalBufferAndViews(wasmMemory.buffer),1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize)return!1;var PAGE_MULTIPLE=65536,maxHeapSize=2147483648;if(requestedSize>maxHeapSize)return!1;for(var minHeapSize=16777216,cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE)),replacement=emscripten_realloc_buffer(newSize);if(replacement)return!0}return!1}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i)JSEvents._removeHandler(i);JSEvents.eventHandlers=[],JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){JSEvents.removeEventListenersRegistered||(__ATEXIT__.push(JSEvents.removeAllEventListeners),JSEvents.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return!1;for(var i2 in arrA)if(arrA[i2]!=arrB[i2])return!1;return!0}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList))return}JSEvents.deferredCalls.push({targetFunction,precedence,argsList}),JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId,GROWABLE_HEAP_I32()[varargs+4>>2]=eventData,GROWABLE_HEAP_I32()[varargs+8>>2]=userData,_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs),stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){return target?target==window?"#window":target==screen?"#screen":target&&target.nodeName?target.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1,cString=_malloc(length);return stringToUTF8(jsString,cString,length),cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave(),varargs=stackAlloc(12),targetCanvasPtr=0;targetCanvas&&(targetCanvasPtr=stringToNewUTF8(targetCanvas)),GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr,GROWABLE_HEAP_I32()[varargs+4>>2]=width,GROWABLE_HEAP_I32()[varargs+8>>2]=height,_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs),stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"",_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):void 0);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr&&(GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width,GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height),canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){canvas.offscreenCanvas&&(canvas=canvas.offscreenCanvas);var autoResizeViewport=!1;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width,canvas.height=height,autoResizeViewport&&canvas.GLctxObject.GLctx.viewport(0,0,width,height)}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];return _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height),1}else return-4;return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(2,1,target,width,height):_emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);return canvas?_emscripten_set_canvas_element_size_calling_thread(target,width,height):_emscripten_set_canvas_element_size_main_thread(target,width,height)}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0,name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext)return ctx.vertexAttribDivisor=function(index,divisor){ext.vertexAttribDivisorANGLE(index,divisor)},ctx.drawArraysInstanced=function(mode,first,count2,primcount){ext.drawArraysInstancedANGLE(mode,first,count2,primcount)},ctx.drawElementsInstanced=function(mode,count2,type,indices,primcount){ext.drawElementsInstancedANGLE(mode,count2,type,indices,primcount)},1}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext)return ctx.createVertexArray=function(){return ext.createVertexArrayOES()},ctx.deleteVertexArray=function(vao){ext.deleteVertexArrayOES(vao)},ctx.bindVertexArray=function(vao){ext.bindVertexArrayOES(vao)},ctx.isVertexArray=function(vao){return ext.isVertexArrayOES(vao)},1}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext)return ctx.drawBuffers=function(n,bufs){ext.drawBuffersWEBGL(n,bufs)},1}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE),i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?void 0:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};return ctx.canvas&&(ctx.canvas.GLctxObject=context),GL.contexts[handle]=context,(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault)&&GL.initExtensions(context),handle},makeContextCurrent:function(contextHandle){return GL.currentContext=GL.contexts[contextHandle],Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx,!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){GL.currentContext===GL.contexts[contextHandle]&&(GL.currentContext=null),typeof JSEvents=="object"&&JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas),GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas&&(GL.contexts[contextHandle].GLctx.canvas.GLctxObject=void 0),_free(GL.contexts[contextHandle].handle),GL.contexts[contextHandle]=null},initExtensions:function(context){if(context||(context=GL.currentContext),!context.initExtensionsDone){context.initExtensionsDone=!0;var GLctx2=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx2),__webgl_enable_OES_vertex_array_object(GLctx2),__webgl_enable_WEBGL_draw_buffers(GLctx2),GLctx2.disjointTimerQueryExt=GLctx2.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],exts=GLctx2.getSupportedExtensions()||[];exts.forEach(function(ext){automaticallyEnabledExtensions.indexOf(ext)!=-1&&GLctx2.getExtension(ext)})}},populateUniformTable:function(program){for(var p2=GL.programs[program],ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},utable=ptable.uniforms,numUniforms=GLctx.getProgramParameter(p2,35718),i=0;i>2;contextAttributes.alpha=!!GROWABLE_HEAP_I32()[a+(0>>2)],contextAttributes.depth=!!GROWABLE_HEAP_I32()[a+(4>>2)],contextAttributes.stencil=!!GROWABLE_HEAP_I32()[a+(8>>2)],contextAttributes.antialias=!!GROWABLE_HEAP_I32()[a+(12>>2)],contextAttributes.premultipliedAlpha=!!GROWABLE_HEAP_I32()[a+(16>>2)],contextAttributes.preserveDrawingBuffer=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes.powerPreference=__emscripten_webgl_power_preferences[powerPreference],contextAttributes.failIfMajorPerformanceCaveat=!!GROWABLE_HEAP_I32()[a+(28>>2)],contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)],contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)],contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)],contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)],contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)],contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(contextAttributes.explicitSwapControl)return-1;var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a12){return _emscripten_webgl_do_create_context(a0,a12)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(3,1,fd):0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);for(var num=0,i=0;i>2],len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _pthread_cleanup_pop(execute2){var routine=PThread.exitHandlers.pop();execute2&&routine()}function _pthread_cleanup_push(routine,arg){PThread.exitHandlers===null&&(PThread.exitHandlers=[]),PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var worker2=PThread.getNewWorker();if(worker2.pthread!==void 0)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker2);for(var tlsMemory=_malloc(128*4),i=0;i<128;++i)GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0;var stackHigh=threadParams.stackBase+threadParams.stackSize,pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker2,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr},tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct),Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42),Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc(),global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale),worker2.pthread=pthread;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,threadInfoStruct:threadParams.pthread_ptr,selfThreadId:threadParams.pthread_ptr,parentThreadId:threadParams.parent_pthread_ptr,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize};worker2.runPthread=function(){msg.time=performance.now(),worker2.postMessage(msg,threadParams.transferList)},worker2.loaded&&(worker2.runPthread(),delete worker2.runPthread)}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread)return err("pthread_getschedparam called with a null thread pointer!"),ERRNO_CODES.ESRCH;var self2=GROWABLE_HEAP_I32()[thread+12>>2];if(self2!==thread)return err("pthread_getschedparam attempted on thread "+thread+", which does not point to a valid thread, or does not exist anymore!"),ERRNO_CODES.ESRCH;var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2),schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);return policy&&(GROWABLE_HEAP_I32()[policy>>2]=schedPolicy),schedparam&&(GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio),0}function _pthread_self(){return __pthread_ptr|0}Module._pthread_self=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer=="undefined")return err("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!pthread_ptr)return err("pthread_create called with a null thread pointer!"),28;var transferList=[],error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error))return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg);if(error)return error;var stackSize=0,stackBase=0,detached=0,schedPolicy=0,schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2],stackSize+=81920,stackBase=GROWABLE_HEAP_I32()[attr+8>>2],detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2],parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24),schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2],GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy,GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}else stackSize=2097152;var allocatedOwnStack=stackBase==0;allocatedOwnStack?stackBase=_memalign(16,stackSize):(stackBase-=stackSize,assert3(stackBase>0));for(var threadInfoStruct2=_malloc(232),i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct2>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct2,GROWABLE_HEAP_I32()[threadInfoStruct2+12>>2]=threadInfoStruct2;var headPtr=threadInfoStruct2+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase,stackSize,allocatedOwnStack,schedPolicy,schedPrio,detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct2,parent_pthread_ptr:_pthread_self(),arg,transferList};return ENVIRONMENT_IS_PTHREAD?(threadParams.cmd="spawnThread",postMessage(threadParams,transferList)):__spawn_thread(threadParams),0}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return setErrNo(28),-1}ENVIRONMENT_IS_PTHREAD?PThread.initWorker():PThread.initMainThreadBlock();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf],asmLibraryArg={e:___assert_fail,r:___call_main,w:__emscripten_notify_thread_queue,a:_abort,l:_emscripten_conditional_set_current_thread_status,d:_emscripten_futex_wait,c:_emscripten_futex_wake,h:_emscripten_get_now,g:_emscripten_is_main_browser_thread,x:_emscripten_is_main_runtime_thread,q:_emscripten_memcpy_big,B:_emscripten_num_logical_cores,t:_emscripten_receive_on_main_thread_js,A:_emscripten_resize_heap,u:_emscripten_set_canvas_element_size,k:_emscripten_set_current_thread_status,s:_emscripten_set_thread_name,v:_emscripten_webgl_create_context,m:_fd_close,o:_fd_seek,i:_fd_write,p:initPthreadsJS,memory:wasmMemory||Module.wasmMemory,y:_pthread_cleanup_pop,z:_pthread_cleanup_push,j:_pthread_create,b:_pthread_self,f:_roundf,n:_sysconf,table:wasmTable},asm=createWasm();Module.asm=asm;var ___wasm_call_ctors=Module.___wasm_call_ctors=function(){return(___wasm_call_ctors=Module.___wasm_call_ctors=Module.asm.C).apply(null,arguments)},_init=Module._init=function(){return(_init=Module._init=Module.asm.D).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.E).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.F).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.G).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.H).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.I).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.J).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.K).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.L).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.M).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.N).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.O).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.P).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Q).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.R).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.S).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.T).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.U).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.V).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.W).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.X).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Y).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.Z).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm._).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.$).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.aa).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.ba).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.ca).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.da).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.ea).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.fa).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.ga).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.ha).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.ia).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.ja).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.ka).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.la).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.ma).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.na).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.oa).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.pa).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.qa).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.ra).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.sa).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.ta).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.ua).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.va).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.wa).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.xa).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.ya).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.za).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Aa).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.Ba).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Ca).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Da).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.Ea).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Fa).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.Ga).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Ha).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Ia).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.Ja).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.Ka).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.La).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Ma).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Na).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Oa).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Pa).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.Qa).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.Ra).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sa).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Ta).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Ua).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Va).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.Wa).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Xa).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm.Ya).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.Za).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm._a).apply(null,arguments)},_emscripten_get_global_libc=Module._emscripten_get_global_libc=function(){return(_emscripten_get_global_libc=Module._emscripten_get_global_libc=Module.asm.$a).apply(null,arguments)},___errno_location=Module.___errno_location=function(){return(___errno_location=Module.___errno_location=Module.asm.ab).apply(null,arguments)},___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=function(){return(___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=Module.asm.bb).apply(null,arguments)},_memalign=Module._memalign=function(){return(_memalign=Module._memalign=Module.asm.cb).apply(null,arguments)},___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=function(){return(___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=Module.asm.db).apply(null,arguments)},_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=function(){return(_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=Module.asm.eb).apply(null,arguments)},_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=function(){return(_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=Module.asm.fb).apply(null,arguments)},_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=function(){return(_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=Module.asm.gb).apply(null,arguments)},_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=function(){return(_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=Module.asm.hb).apply(null,arguments)},_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=function(){return(_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=Module.asm.ib).apply(null,arguments)},_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=function(){return(_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=Module.asm.jb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=function(){return(_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=Module.asm.kb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=function(){return(_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=Module.asm.lb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=function(){return(_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=Module.asm.mb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=Module.asm.nb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=function(){return(_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=Module.asm.ob).apply(null,arguments)},_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=function(){return(_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=Module.asm.pb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=function(){return(_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=Module.asm.qb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=function(){return(_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=Module.asm.rb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=function(){return(_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=Module.asm.sb).apply(null,arguments)},_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=function(){return(_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=Module.asm.tb).apply(null,arguments)},_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=function(){return(_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=Module.asm.ub).apply(null,arguments)},_emscripten_tls_init=Module._emscripten_tls_init=function(){return(_emscripten_tls_init=Module._emscripten_tls_init=Module.asm.vb).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.wb).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.xb).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.yb).apply(null,arguments)},dynCall_vi=Module.dynCall_vi=function(){return(dynCall_vi=Module.dynCall_vi=Module.asm.zb).apply(null,arguments)},dynCall_v=Module.dynCall_v=function(){return(dynCall_v=Module.dynCall_v=Module.asm.Ab).apply(null,arguments)},dynCall_ii=Module.dynCall_ii=function(){return(dynCall_ii=Module.dynCall_ii=Module.asm.Bb).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap,Module.PThread=PThread,Module.PThread=PThread,Module._pthread_self=_pthread_self,Module.wasmMemory=wasmMemory,Module.ExitStatus=ExitStatus;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status2){this.name="ExitStatus",this.message="Program terminated with exit("+status2+")",this.status=status2}dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}if(Module.run=run,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();return ENVIRONMENT_IS_PTHREAD||(noExitRuntime=!0),ENVIRONMENT_IS_PTHREAD||run(),WasmBackendModuleThreadedSimd2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModuleThreadedSimd:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModuleThreadedSimd}):typeof exports=="object"&&(exports.WasmBackendModuleThreadedSimd=WasmBackendModuleThreadedSimd)}),require_tfjs_backend_wasm=__commonJS2((exports,module)=>{var WasmBackendModule=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModule2){WasmBackendModule2=WasmBackendModule2||{};var Module=typeof WasmBackendModule2!="undefined"?WasmBackendModule2:{},moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status2,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;ENVIRONMENT_IS_NODE?(ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status2){process.exit(status2)},Module.inspect=function(){return"[Emscripten Module object]"}):ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status2){quit(status2)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)},setWindowTitle=function(title){document.title=title});var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:151,maximum:151+0,element:"anyfunc"}),ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str2){var ret2=0;if(str2!=null&&str2!==0){var len=(str2.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str2,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);)++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder)return UTF8Decoder.decode(heap.subarray(idx,endPtr));for(var str2="";idx>10,56320|ch&1023)}}return str2}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str2,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str2.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str2,outPtr,maxBytesToWrite){return stringToUTF8Array(str2,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array2,buffer3){HEAP8.set(array2,buffer3)}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str2,prefix){return String.prototype.startsWith?str2.startsWith(prefix):str2.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function receiveInstance(instance2,module2){var exports3=instance2.exports;Module.asm=exports3,wasmMemory=exports3.memory,updateGlobalBufferAndViews(wasmMemory.buffer),removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){for(var num=0,i=0;i>2],len=HEAP32[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _exit(status2){exit(status2)}function _proc_exit(code){_exit(code)}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}var asmLibraryArg={emscripten_notify_memory_growth:_emscripten_notify_memory_growth,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,proc_exit:_proc_exit,roundf:_roundf},asm=createWasm();Module.asm=asm;var _init=Module._init=function(){return(_init=Module._init=Module.asm.init).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.register_tensor).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.dispose_data).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.dispose).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.Abs).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.Add).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.AddN).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.ArgMax).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.AvgPool).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.BatchMatMul).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.ClipByValue).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.Conv2D).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.Conv2DBackpropInput).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Cos).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.CropAndResize).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.Cumsum).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.DepthToSpace).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.DepthwiseConv2dNative).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.Equal).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.Exp).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.FlipLeftRight).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Floor).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.FloorDiv).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm.FusedBatchNorm).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.FusedConv2D).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.FusedDepthwiseConv2D).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.Gather).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.GatherNd).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.Greater).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.GreaterEqual).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.LeakyRelu).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.Less).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.LessEqual).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.Log).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.LogicalAnd).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.Max).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.MaxPool).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.Maximum).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.Mean).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.Min).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.Minimum).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.Multiply).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.Neg).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.NonMaxSuppressionV3).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.NonMaxSuppressionV4).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.NonMaxSuppressionV5).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.NotEqual).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.OneHot).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.PadV2).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.Pow).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.Prelu).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Prod).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.RealDiv).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Relu).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Relu6).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.ResizeBilinear).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Reverse).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.RotateWithOffset).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Round).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Rsqrt).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.ScatterNd).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.SelectV2).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.Sigmoid).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Sin).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Softmax).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Sqrt).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Square).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.SquaredDifference).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.StridedSlice).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sub).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Sum).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Tanh).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Tile).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.TopK).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Transpose).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm._FusedMatMul).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.malloc).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm.free).apply(null,arguments)},__start=Module.__start=function(){return(__start=Module.__start=Module.asm._start).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.stackSave).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.stackRestore).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status2){this.name="ExitStatus",this.message="Program terminated with exit("+status2+")",this.status=status2}var calledMain=!1;dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function callMain(args){var entryFunction=Module.__start;try{entryFunction();var ret=0;exit(ret,!0)}catch(e){if(e instanceof ExitStatus)return;if(e=="unwind"){noExitRuntime=!0;return}else{var toLog=e;e&&typeof e=="object"&&e.stack&&(toLog=[e,e.stack]),err("exception thrown: "+toLog),quit_(1,e)}}finally{calledMain=!0}}function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(args),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}Module.run=run;function exit(status2,implicit){implicit&&noExitRuntime&&status2===0||(noExitRuntime||(ABORT=!0,EXITSTATUS=status2,exitRuntime(),Module.onExit&&Module.onExit(status2)),quit_(status2,new ExitStatus(status2)))}if(Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),noExitRuntime=!0,run(),WasmBackendModule2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModule:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModule}):typeof exports=="object"&&(exports.WasmBackendModule=WasmBackendModule)}),require_alea3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=String(data2);for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1283=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift73=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40963=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom5=__commonJS2((exports,module)=>{(function(global2,pool3,math){var width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea3(),xor128=require_xor1283(),xorwow=require_xorwow3(),xorshift7=require_xorshift73(),xor4096=require_xor40963(),tychei=require_tychei3(),sr=require_seedrandom5();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_string_decoder=__commonJS2(()=>{}),version="2.8.3",version2="2.8.3",version3="2.8.3",version4="2.8.3",version5="2.8.3",EPSILON_FLOAT32=1e-7,EPSILON_FLOAT16=1e-4,DataStorage=class{constructor(backend22,dataMover){this.backend=backend22,this.dataMover=dataMover,this.data=new WeakMap,this.dataIdsCount=0}get(dataId){return this.data.has(dataId)||this.dataMover.moveData(this.backend,dataId),this.data.get(dataId)}set(dataId,value){this.dataIdsCount++,this.data.set(dataId,value)}has(dataId){return this.data.has(dataId)}delete(dataId){return this.dataIdsCount--,this.data.delete(dataId)}numDataIds(){return this.dataIdsCount}},KernelBackend=class{time(f){return notYetImplemented("time")}read(dataId){return notYetImplemented("read")}readSync(dataId){return notYetImplemented("readSync")}numDataIds(){return notYetImplemented("numDataIds")}disposeData(dataId){return notYetImplemented("disposeData")}write(values,shape,dtype){return notYetImplemented("write")}move(dataId,values,shape,dtype){return notYetImplemented("move")}memory(){return notYetImplemented("memory")}floatPrecision(){return notYetImplemented("floatPrecision")}epsilon(){return this.floatPrecision()===32?EPSILON_FLOAT32:EPSILON_FLOAT16}batchMatMul(a,b,transposeA,transposeB){return notYetImplemented("batchMatMul")}fusedBatchMatMul({a,b,transposeA,transposeB,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedBatchMatMul")}slice(x,begin,size){return notYetImplemented("slice")}stridedSlice(x,begin,end,strides){return notYetImplemented("stridedSlice")}unstack(x,axis){return notYetImplemented("unstack")}reverse(a,axis){return notYetImplemented("reverse")}concat(tensors,axis){return notYetImplemented("concat")}neg(a){return notYetImplemented("neg")}add(a,b){return notYetImplemented("add")}addN(tensors){return notYetImplemented("addN")}subtract(a,b){return notYetImplemented("subtract")}multiply(a,b){return notYetImplemented("multiply")}realDivide(a,b){return notYetImplemented("realDivide")}floorDiv(a,b){return notYetImplemented("floorDiv")}sum(x,axes){return notYetImplemented("sum")}prod(x,axes){return notYetImplemented("prod")}unsortedSegmentSum(x,segmentIds,numSegments){return notYetImplemented("unsortedSegmentSum")}argMin(x,axis){return notYetImplemented("argMin")}argMax(x,axis){return notYetImplemented("argMax")}equal(a,b){return notYetImplemented("equal")}notEqual(a,b){return notYetImplemented("notEqual")}less(a,b){return notYetImplemented("less")}lessEqual(a,b){return notYetImplemented("lessEqual")}greater(a,b){return notYetImplemented("greater")}greaterEqual(a,b){return notYetImplemented("greaterEqual")}logicalNot(a){return notYetImplemented("logicalNot")}logicalAnd(a,b){return notYetImplemented("logicalAnd")}logicalOr(a,b){return notYetImplemented("logicalOr")}where(condition){return notYetImplemented("where")}select(condition,a,b){return notYetImplemented("select")}topk(x,k,sorted){return notYetImplemented("topk")}min(x,axes){return notYetImplemented("min")}minimum(a,b){return notYetImplemented("minimum")}mod(a,b){return notYetImplemented("mod")}max(x,axes){return notYetImplemented("max")}maximum(a,b){return notYetImplemented("maximum")}all(x,axes){return notYetImplemented("all")}any(x,axes){return notYetImplemented("any")}squaredDifference(a,b){return notYetImplemented("squaredDifference")}ceil(x){return notYetImplemented("ceil")}floor(x){return notYetImplemented("floor")}round(x){return notYetImplemented("round")}sign(x){return notYetImplemented("sign")}isNaN(x){return notYetImplemented("isNaN")}isInf(x){return notYetImplemented("isInf")}isFinite(x){return notYetImplemented("isFinite")}pow(a,b){return notYetImplemented("pow")}exp(x){return notYetImplemented("exp")}expm1(x){return notYetImplemented("expm1")}softmax(x,dim){return notYetImplemented("softmax")}log(x){return notYetImplemented("log")}log1p(x){return notYetImplemented("log1p")}sqrt(x){return notYetImplemented("sqrt")}rsqrt(x){return notYetImplemented("rsqrt")}square(x){return notYetImplemented("square")}reciprocal(x){return notYetImplemented("reciprocal")}relu(x){return notYetImplemented("relu")}relu6(x){return notYetImplemented("relu6")}prelu(x,a){return notYetImplemented("prelu")}elu(x){return notYetImplemented("elu")}eluDer(dy,y){return notYetImplemented("eluDer")}selu(x){return notYetImplemented("selu")}int(x){return notYetImplemented("int")}clip(x,min6,max6){return notYetImplemented("clip")}abs(x){return notYetImplemented("abs")}complexAbs(x){return notYetImplemented("complexAbs")}sigmoid(x){return notYetImplemented("sigmoid")}softplus(x){return notYetImplemented("softplus")}sin(x){return notYetImplemented("sin")}cos(x){return notYetImplemented("cos")}tan(x){return notYetImplemented("tan")}asin(x){return notYetImplemented("asin")}acos(x){return notYetImplemented("acos")}atan(x){return notYetImplemented("atan")}atan2(a,b){return notYetImplemented("atan2")}sinh(x){return notYetImplemented("sinh")}cosh(x){return notYetImplemented("cosh")}tanh(x){return notYetImplemented("tanh")}asinh(x){return notYetImplemented("asinh")}acosh(x){return notYetImplemented("acosh")}atanh(x){return notYetImplemented("atanh")}erf(x){return notYetImplemented("erf")}step(x,alpha){return notYetImplemented("step")}fusedConv2d({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedConv2d")}conv2d(x,filter,convInfo){return notYetImplemented("conv2d")}conv2dDerInput(dy,filter,convInfo){return notYetImplemented("conv2dDerInput")}conv2dDerFilter(x,dY,convInfo){return notYetImplemented("conv2dDerFilter")}fusedDepthwiseConv2D({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedDepthwiseConv2D")}depthwiseConv2D(input2,filter,convInfo){return notYetImplemented("depthwiseConv2D")}depthwiseConv2DDerInput(dy,filter,convInfo){return notYetImplemented("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(x,dY,convInfo){return notYetImplemented("depthwiseConv2DDerFilter")}conv3d(x,filter,convInfo){return notYetImplemented("conv3d")}conv3dDerInput(dy,filter,convInfo){return notYetImplemented("conv3dDerInput")}conv3dDerFilter(x,dY,convInfo){return notYetImplemented("conv3dDerFilter")}maxPool(x,convInfo){return notYetImplemented("maxPool")}maxPoolBackprop(dy,x,y,convInfo){return notYetImplemented("maxPoolBackprop")}avgPool(x,convInfo){return notYetImplemented("avgPool")}avgPoolBackprop(dy,x,convInfo){return notYetImplemented("avgPoolBackprop")}avgPool3d(x,convInfo){return notYetImplemented("avgPool3d")}avgPool3dBackprop(dy,x,convInfo){return notYetImplemented("avgPool3dBackprop")}maxPool3d(x,convInfo){return notYetImplemented("maxPool3d")}maxPool3dBackprop(dy,x,y,convInfo){return notYetImplemented("maxPool3dBackprop")}reshape(x,shape){return notYetImplemented("reshape")}cast(x,dtype){return notYetImplemented("cast")}tile(x,reps){return notYetImplemented("tile")}pad(x,paddings,constantValue){return notYetImplemented("pad")}transpose(x,perm){return notYetImplemented("transpose")}gather(x,indices,axis,batchDims=0){return notYetImplemented("gather")}gatherND(x,indices){return notYetImplemented("gatherND")}scatterND(indices,updates,shape){return notYetImplemented("scatterND")}batchToSpaceND(x,blockShape,crops){return notYetImplemented("batchToSpaceND")}spaceToBatchND(x,blockShape,paddings){return notYetImplemented("spaceToBatchND")}resizeBilinear(x,newHeight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeBilinear")}resizeBilinearBackprop(dy,x,alignCorners){return notYetImplemented("resizeBilinearBackprop")}resizeNearestNeighbor(x,newHEight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeNearestNeighbor")}resizeNearestNeighborBackprop(dy,x,alignCorners){return notYetImplemented("resizeNearestNeighborBackprop")}batchNorm(x,mean4,variance,offset,scale2,varianceEpsilon){return notYetImplemented("batchNorm")}localResponseNormalization4D(x,radius,bias,alpha,beta){return notYetImplemented("localResponseNormalization4D")}LRNGrad(dy,inputImage,outputImage,radius,bias,alpha,beta){return notYetImplemented("LRNGrad")}multinomial(logits,normalized,numSamples,seed){return notYetImplemented("multinomial")}oneHot(indices,depth,onValue,offValue){return notYetImplemented("oneHot")}cumsum(x,axis,exclusive,reverse5){return notYetImplemented("cumsum")}nonMaxSuppression(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return notYetImplemented("nonMaxSuppression")}fft(x){return notYetImplemented("fft")}ifft(x){return notYetImplemented("ifft")}complex(real4,imag4){return notYetImplemented("complex")}real(input2){return notYetImplemented("real")}imag(input2){return notYetImplemented("imag")}cropAndResize(image3,boxes,boxIndex,cropSize,method,extrapolationValue){return notYetImplemented("cropAndResize")}depthToSpace(x,blockSize,dataFormat){return notYetImplemented("depthToSpace")}split(value,sizeSplits,axis){return notYetImplemented("split")}sparseToDense(sparseIndices,sparseValues,outputShape,defaultValue){return notYetImplemented("sparseToDense")}diag(x){return notYetImplemented("diag")}fill(shape,value,dtype){return notYetImplemented("fill")}onesLike(x){return notYetImplemented("onesLike")}zerosLike(x){return notYetImplemented("zerosLike")}linspace(start,stop,num){return notYetImplemented("linspace")}dispose(){return notYetImplemented("dispose")}};function notYetImplemented(kernelName){throw new Error(`'${kernelName}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function shuffle(array2){let counter=array2.length,temp=0,index=0;for(;counter>0;)index=Math.random()*counter|0,counter--,temp=array2[counter],array2[counter]=array2[index],array2[index]=temp}function clamp(min6,x,max6){return Math.max(min6,Math.min(x,max6))}function nearestLargerEven(val){return val%2==0?val:val+1}function sum(arr){let sum6=0;for(let i=0;ierrorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function assertNonNull(a){assert(a!=null,()=>"The input to the tensor constructor must be a non-null value.")}function flatten(arr,result=[],skipTypedArray=!1){if(result==null&&(result=[]),Array.isArray(arr)||isTypedArray(arr)&&!skipTypedArray)for(let i=0;i0,maxCounter){return new Promise((resolve,reject)=>{let tryCount=0,tryFn=()=>{if(checkFn()){resolve();return}tryCount++;let nextBackoff=delayFn(tryCount);if(maxCounter!=null&&tryCount>=maxCounter){reject();return}setTimeout(tryFn,nextBackoff)};tryFn()})}function inferFromImplicitShape(shape,size){let shapeProd=1,implicitIdx=-1;for(let i=0;i=0)shapeProd*=shape[i];else if(shape[i]===-1){if(implicitIdx!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${implicitIdx} and dim ${i}`);implicitIdx=i}else if(shape[i]<0)throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);if(implicitIdx===-1){if(size>0&&size!==shapeProd)throw Error(`Size(${size}) must match the product of shape ${shape}`);return shape}if(shapeProd===0)throw Error(`Cannot infer the missing size in [${shape}] when there are 0 elements`);if(size%shapeProd!=0)throw Error(`The implicit shape can't be a fractional number. Got ${size} / ${shapeProd}`);let newShape=shape.slice();return newShape[implicitIdx]=size/shapeProd,newShape}function parseAxisParam(axis,shape){let rank=shape.length;return axis=axis==null?shape.map((s,i)=>i):[].concat(axis),assert(axis.every(ax=>ax>=-rank&&ax`All values in axis param must be in range [-${rank}, ${rank}) but got axis ${axis}`),assert(axis.every(ax=>isInt(ax)),()=>`All values in axis param must be integers but got axis ${axis}`),axis.map(a=>a<0?rank+a:a)}function squeezeShape(shape,axis){let newShape=[],keptDims=[],isEmptyArray=axis!=null&&Array.isArray(axis)&&axis.length===0,axes=axis==null||isEmptyArray?null:parseAxisParam(axis,shape).sort(),j=0;for(let i=0;ii)&&shape[i]===1&&(newShape.push(shape[i]),keptDims.push(i)),axes[j]<=i&&j++}shape[i]!==1&&(newShape.push(shape[i]),keptDims.push(i))}return{newShape,keptDims}}function getTypedArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function getArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else if(dtype==="string")values=new Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function checkConversionForErrors(vals,dtype){for(let i=0;ibytes+=x.length),bytes}function isString(value){return typeof value=="string"||value instanceof String}function isBoolean(value){return typeof value=="boolean"}function isNumber(value){return typeof value=="number"}function inferDtype(values){return Array.isArray(values)?inferDtype(values[0]):values instanceof Float32Array?"float32":values instanceof Int32Array||values instanceof Uint8Array?"int32":isNumber(values)?"float32":isString(values)?"string":isBoolean(values)?"bool":"float32"}function isFunction(f){return!!(f&&f.constructor&&f.call&&f.apply)}function nearestDivisor(size,start){for(let i=start;i=0;--i)strides[i]=strides[i+1]*shape[i+1];return strides}function createNestedArray(offset,shape,a){let ret=new Array;if(shape.length===1){let d=shape[0];for(let i=0;iacc*c);for(let i=0;iacc*c);if(size===0)return[];if(size!==a.length)throw new Error(`[${shape}] does not match the input size ${a.length}.`);return createNestedArray(0,shape,a)}function makeOnesTypedArray(size,dtype){let array2=makeZerosTypedArray(size,dtype);for(let i=0;iprev*curr,1);if(dtype==null||dtype==="float32")return toNestedArray(shape,new Float32Array(size));if(dtype==="int32")return toNestedArray(shape,new Int32Array(size));if(dtype==="bool")return toNestedArray(shape,new Uint8Array(size));throw new Error(`Unknown data type ${dtype}`)}function assertNonNegativeIntegerDimensions(shape){shape.forEach(dimSize=>{assert(Number.isInteger(dimSize)&&dimSize>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${shape}].`)})}function locToIndex(locs,rank,strides){if(rank===0)return 0;if(rank===1)return locs[0];let index=locs[locs.length-1];for(let i=0;i{let[key,value]=keyValue.split(":");this.urlFlags[key]=parseValue(key,value)})}};function getQueryParams(queryString){let params={};return queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...t)=>(decodeParam(params,t[0],t[1]),t.join("="))),params}function decodeParam(params,name,value){params[decodeURIComponent(name)]=decodeURIComponent(value||"")}function parseValue(flagName,value){if(value=value.toLowerCase(),value==="true"||value==="false")return value==="true";if(`${+value}`===value)return+value;throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`)}function env(){return ENV}var ENV=null;function setEnvironmentGlobal(environment){ENV=environment}var globalNameSpace;function getGlobalNamespace(){if(globalNameSpace==null){let ns;if(typeof window!="undefined")ns=window;else if(typeof global!="undefined")ns=global;else if(typeof process!="undefined")ns=process;else if(typeof self!="undefined")ns=self;else throw new Error("Could not find a global object");globalNameSpace=ns}return globalNameSpace}function getGlobalMap(){let ns=getGlobalNamespace();return ns._tfGlobals==null&&(ns._tfGlobals=new Map),ns._tfGlobals}function getGlobal(key,init2){let globalMap=getGlobalMap();if(globalMap.has(key))return globalMap.get(key);{let singleton=init2();return globalMap.set(key,singleton),globalMap.get(key)}}var Abs="Abs",Acos="Acos",Acosh="Acosh",Add="Add",AddN="AddN",All="All",Any="Any",ArgMax="ArgMax",ArgMin="ArgMin",Asin="Asin",Asinh="Asinh",Atan="Atan",Atanh="Atanh",Atan2="Atan2",AvgPool="AvgPool",AvgPoolGrad="AvgPoolGrad",AvgPool3D="AvgPool3D",AvgPool3DGrad="AvgPool3DGrad",BatchMatMul="BatchMatMul",BatchToSpaceND="BatchToSpaceND",Bincount="Bincount",BroadcastTo="BroadcastTo",Cast="Cast",Ceil="Ceil",ClipByValue="ClipByValue",Complex="Complex",ComplexAbs="ComplexAbs",Concat="Concat",Conv2D="Conv2D",Conv2DBackpropFilter="Conv2DBackpropFilter",Conv2DBackpropInput="Conv2DBackpropInput",Conv3D="Conv3D",Conv3DBackpropFilterV2="Conv3DBackpropFilterV2",Conv3DBackpropInputV2="Conv3DBackpropInputV2",Cos="Cos",Cosh="Cosh",Cumsum="Cumsum",CropAndResize="CropAndResize",DenseBincount="DenseBincount",DepthToSpace="DepthToSpace",DepthwiseConv2dNative="DepthwiseConv2dNative",DepthwiseConv2dNativeBackpropFilter="DepthwiseConv2dNativeBackpropFilter",DepthwiseConv2dNativeBackpropInput="DepthwiseConv2dNativeBackpropInput",Diag="Diag",Dilation2D="Dilation2D",Dilation2DBackpropInput="Dilation2DBackpropInput",Dilation2DBackpropFilter="Dilation2DBackpropFilter",RealDiv="RealDiv",Elu="Elu",EluGrad="EluGrad",Erf="Erf",Equal="Equal",Exp="Exp",ExpandDims="ExpandDims",Expm1="Expm1",FFT="FFT",Fill="Fill",FlipLeftRight="FlipLeftRight",Floor="Floor",FloorDiv="FloorDiv",FusedBatchNorm="FusedBatchNorm",GatherV2="GatherV2",GatherNd="GatherNd",Greater="Greater",GreaterEqual="GreaterEqual",Identity="Identity",IFFT="IFFT",Imag="Imag",IsFinite="IsFinite",IsInf="IsInf",IsNan="IsNan",LeakyRelu="LeakyRelu",Less="Less",LessEqual="LessEqual",LinSpace="LinSpace",Log="Log",Log1p="Log1p",LogicalAnd="LogicalAnd",LogicalNot="LogicalNot",LogicalOr="LogicalOr",LogSoftmax="LogSoftmax",LRN="LRN",LRNGrad="LRNGrad",Max="Max",Maximum="Maximum",MaxPool="MaxPool",MaxPoolGrad="MaxPoolGrad",MaxPool3D="MaxPool3D",MaxPool3DGrad="MaxPool3DGrad",MaxPoolWithArgmax="MaxPoolWithArgmax",Mean="Mean",Min="Min",Minimum="Minimum",MirrorPad="MirrorPad",Mod="Mod",Multinomial="Multinomial",Multiply="Multiply",Neg="Neg",NotEqual="NotEqual",NonMaxSuppressionV3="NonMaxSuppressionV3",NonMaxSuppressionV4="NonMaxSuppressionV4",NonMaxSuppressionV5="NonMaxSuppressionV5",OnesLike="OnesLike",OneHot="OneHot",Pack="Pack",PadV2="PadV2",Pool="Pool",Pow="Pow",Prelu="Prelu",Prod="Prod",Range="Range",Real="Real",Reciprocal="Reciprocal",Relu="Relu",Reshape="Reshape",ResizeNearestNeighbor="ResizeNearestNeighbor",ResizeNearestNeighborGrad="ResizeNearestNeighborGrad",ResizeBilinear="ResizeBilinear",ResizeBilinearGrad="ResizeBilinearGrad",Relu6="Relu6",Reverse="Reverse",Round="Round",Rsqrt="Rsqrt",ScatterNd="ScatterNd",Select="Select",Selu="Selu",Slice="Slice",Sin="Sin",Sinh="Sinh",Sign="Sign",Sigmoid="Sigmoid",Softplus="Softplus",Sqrt="Sqrt",Sum="Sum",SpaceToBatchND="SpaceToBatchND",SplitV="SplitV",Softmax="Softmax",SquaredDifference="SquaredDifference",Square="Square",Sub="Sub",SparseToDense="SparseToDense",StridedSlice="StridedSlice",Tan="Tan",Tanh="Tanh",Tile="Tile",TopK="TopK",Transpose="Transpose",Unique="Unique",Unpack="Unpack",UnsortedSegmentSum="UnsortedSegmentSum",ZerosLike="ZerosLike",Step="Step",FromPixels="FromPixels",RotateWithOffset="RotateWithOffset",_FusedMatMul="_FusedMatMul",FusedConv2D="FusedConv2D",FusedDepthwiseConv2D="FusedDepthwiseConv2D",kernelRegistry=getGlobal("kernelRegistry",()=>new Map),gradRegistry=getGlobal("gradRegistry",()=>new Map);function getKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);return kernelRegistry.get(key)}function getGradient(kernelName){return gradRegistry.get(kernelName)}function getKernelsForBackend(backendName){let it=kernelRegistry.entries(),result=[];for(;;){let{done,value}=it.next();if(done)break;let[key,config2]=value,[backend22]=key.split("_");backend22===backendName&&result.push(config2)}return result}function registerKernel(config2){let{kernelName,backendName}=config2,key=makeKey(kernelName,backendName);kernelRegistry.has(key)&&console.warn(`The kernel '${kernelName}' for backend '${backendName}' is already registered`),kernelRegistry.set(key,config2)}function registerGradient(config2){let{kernelName}=config2;gradRegistry.has(kernelName)&&env().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${kernelName}'`),gradRegistry.set(kernelName,config2)}function unregisterKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);if(!kernelRegistry.has(key))throw new Error(`The kernel '${kernelName}' for backend '${backendName}' is not registered`);kernelRegistry.delete(key)}function unregisterGradient(kernelName){if(!gradRegistry.has(kernelName))throw new Error(`The gradient '${kernelName}' for backend is not registered`);gradRegistry.delete(kernelName)}function copyRegisteredKernels(registeredBackendName,newBackendName){getKernelsForBackend(registeredBackendName).forEach(kernelConfig=>{let newKernelConfig=Object.assign({},kernelConfig,{backendName:newBackendName});registerKernel(newKernelConfig)})}function makeKey(kernelName,backendName){return`${backendName}_${kernelName}`}var util_exports={};__export2(util_exports,{arraysEqual:()=>arraysEqual,assert:()=>assert,assertNonNegativeIntegerDimensions:()=>assertNonNegativeIntegerDimensions,assertNonNull:()=>assertNonNull,assertShapesMatch:()=>assertShapesMatch,bytesFromStringArray:()=>bytesFromStringArray,bytesPerElement:()=>bytesPerElement,checkConversionForErrors:()=>checkConversionForErrors,clamp:()=>clamp,computeStrides:()=>computeStrides,createScalarValue:()=>createScalarValue,createShuffledIndices:()=>createShuffledIndices,decodeString:()=>decodeString,distSquared:()=>distSquared,encodeString:()=>encodeString,fetch:()=>fetch2,flatten:()=>flatten,getArrayFromDType:()=>getArrayFromDType,getTypedArrayFromDType:()=>getTypedArrayFromDType,hasEncodingLoss:()=>hasEncodingLoss,indexToLoc:()=>indexToLoc,inferDtype:()=>inferDtype,inferFromImplicitShape:()=>inferFromImplicitShape,isBoolean:()=>isBoolean,isFunction:()=>isFunction,isInt:()=>isInt,isNumber:()=>isNumber,isPromise:()=>isPromise,isScalarShape:()=>isScalarShape,isString:()=>isString,isTypedArray:()=>isTypedArray,isValidDtype:()=>isValidDtype,locToIndex:()=>locToIndex,makeOnesTypedArray:()=>makeOnesTypedArray,makeZerosNestedTypedArray:()=>makeZerosNestedTypedArray,makeZerosTypedArray:()=>makeZerosTypedArray,nearestDivisor:()=>nearestDivisor,nearestLargerEven:()=>nearestLargerEven,now:()=>now,parseAxisParam:()=>parseAxisParam,randUniform:()=>randUniform,repeatedTry:()=>repeatedTry,rightPad:()=>rightPad,shuffle:()=>shuffle,sizeFromShape:()=>sizeFromShape,sizeToSquarishShape:()=>sizeToSquarishShape,squeezeShape:()=>squeezeShape,sum:()=>sum,tanh:()=>tanh,toNestedArray:()=>toNestedArray,toTypedArray:()=>toTypedArray});function createScalarValue(value,dtype){return dtype==="string"?encodeString(value):toTypedArray([value],dtype)}function noConversionNeeded(a,dtype){return a instanceof Float32Array&&dtype==="float32"||a instanceof Int32Array&&dtype==="int32"||a instanceof Uint8Array&&dtype==="bool"}function toTypedArray(a,dtype){if(dtype==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(a)&&(a=flatten(a)),env().getBool("DEBUG")&&checkConversionForErrors(a,dtype),noConversionNeeded(a,dtype))return a;if(dtype==null||dtype==="float32"||dtype==="complex64")return new Float32Array(a);if(dtype==="int32")return new Int32Array(a);if(dtype==="bool"){let bool=new Uint8Array(a.length);for(let i=0;i{outputs=f()},timer=this.backendTimer.time(holdResultWrapperFn);if(env().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let i=0;i{checkComputationForErrors(tensorVals,output.dtype,kernelName)})}return{kernelName,outputs,inputs,timeMs:timer.then(timing=>timing.kernelMs),extraInfo:timer.then(timing=>timing.getExtraProfileInfo!=null?timing.getExtraProfileInfo():"")}}logKernelProfile(kernelProfile){let{kernelName,outputs,timeMs,inputs,extraInfo}=kernelProfile;outputs.forEach(result=>{Promise.all([result.data(),timeMs,extraInfo]).then(valueContainer=>{this.logger.logKernelProfile(kernelName,result,valueContainer[0],valueContainer[1],inputs,valueContainer[2])})})}};function checkComputationForErrors(vals,dtype,kernelName){if(dtype!=="float32")return!1;for(let i=0;i0?inputShape:""} `}}console.log(`%c${paddedName} %c${time2} %c${rank}D ${shape} %c${size} %c${inputShapesDescription} %c${extraInfo}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function getFilteredNodesXToY(tape,xs,y){let tensorsFromX={},nodesFromX={};for(let i=0;itensorsFromX[output.id]=!0),anyInputFromX=!0,nodesFromX[node.id]=!0;break}if(anyInputFromX)break}}let tensorsLeadToY={};tensorsLeadToY[y.id]=!0;let nodesToY={};for(let i=tape.length-1;i>=0;i--){let node=tape[i],nodeInputs=node.inputs;for(let j=0;j=0;i--){let node=filteredTape[i],dys=[];if(node.outputs.forEach(o=>{let gradTensor=tensorAccumulatedGradientMap[o.id];gradTensor!=null?dys.push(gradTensor):dys.push(null)}),node.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${node.kernelName}.`);let inputGradients=node.gradient(dys);for(let inputName in node.inputs){if(!(inputName in inputGradients))throw new Error(`Cannot backprop through input ${inputName}. Available gradients found: ${Object.keys(inputGradients)}.`);let dx=tidy2(()=>inputGradients[inputName]());if(dx.dtype!=="float32")throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);let x=node.inputs[inputName];if(!arraysEqual(dx.shape,x.shape))throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input '${inputName}' has shape '${dx.shape}', which does not match the shape of the input '${x.shape}'`);if(tensorAccumulatedGradientMap[x.id]==null)tensorAccumulatedGradientMap[x.id]=dx;else{let curGradient=tensorAccumulatedGradientMap[x.id];tensorAccumulatedGradientMap[x.id]=add5(curGradient,dx),curGradient.dispose()}}}}var FORMAT_LIMIT_NUM_VALS=20,FORMAT_NUM_FIRST_LAST_VALS=3,FORMAT_NUM_SIG_DIGITS=7;function tensorToString(vals,shape,dtype,verbose){let strides=computeStrides(shape),padPerCol=computeMaxSizePerColumn(vals,shape,dtype,strides),rank=shape.length,valsLines=subTensorToString(vals,shape,dtype,strides,padPerCol),lines=["Tensor"];return verbose&&(lines.push(` dtype: ${dtype}`),lines.push(` rank: ${rank}`),lines.push(` shape: [${shape}]`),lines.push(" values:")),lines.push(valsLines.map(l=>" "+l).join(` `)),lines.join(` `)}function computeMaxSizePerColumn(vals,shape,dtype,strides){let n=sizeFromShape(shape),numCols=strides[strides.length-1],padPerCol=new Array(numCols).fill(0),rank=shape.length,valuesOrTuples=dtype==="complex64"?createComplexTuples(vals):vals;if(rank>1)for(let row=0;rowFORMAT_LIMIT_NUM_VALS){let firstValsSize=FORMAT_NUM_FIRST_LAST_VALS*storagePerElement,firstVals=Array.from(vals.slice(0,firstValsSize)),lastVals=Array.from(vals.slice((size-FORMAT_NUM_FIRST_LAST_VALS)*storagePerElement,size*storagePerElement));return dtype==="complex64"&&(firstVals=createComplexTuples(firstVals),lastVals=createComplexTuples(lastVals)),["["+firstVals.map((x,i)=>valToString(x,padPerCol[i],dtype)).join(", ")+", ..., "+lastVals.map((x,i)=>valToString(x,padPerCol[size-FORMAT_NUM_FIRST_LAST_VALS+i],dtype)).join(", ")+"]"]}let displayVals=dtype==="complex64"?createComplexTuples(vals):Array.from(vals);return["["+displayVals.map((x,i)=>valToString(x,padPerCol[i],dtype)).join(", ")+"]"]}let subshape=shape.slice(1),substrides=strides.slice(1),stride=strides[0]*storagePerElement,lines=[];if(size>FORMAT_LIMIT_NUM_VALS){for(let i=0;i`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(dtype==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=values||getArrayFromDType(dtype,this.size),this.strides=computeStrides(shape)}set(value,...locs){locs.length===0&&(locs=[0]),assert(locs.length===this.rank,()=>`The number of provided coordinates (${locs.length}) must match the rank (${this.rank})`);let index=this.locToIndex(locs);this.values[index]=value}get(...locs){locs.length===0&&(locs=[0]);let i=0;for(let loc of locs){if(loc<0||loc>=this.shape[i]){let msg=`Requested out of range element at ${locs}. Buffer shape=${this.shape}`;throw new Error(msg)}i++}let index=locs[locs.length-1];for(let i2=0;i2decodeString(b))}catch(_a){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return data2}dataSync(){this.throwIfDisposed();let data2=trackerFn().readSync(this.dataId);if(this.dtype==="string")try{return data2.map(b=>decodeString(b))}catch(_a){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return data2}async bytes(){this.throwIfDisposed();let data2=await trackerFn().read(this.dataId);return this.dtype==="string"?data2:new Uint8Array(data2.buffer)}dispose(){this.isDisposed||(trackerFn().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(verbose=!1){return opHandler.print(this,verbose)}clone(){return this.throwIfDisposed(),opHandler.clone(this)}toString(verbose=!1){let vals=this.dataSync();return tensorToString(vals,this.shape,this.dtype,verbose)}cast(dtype){return this.throwIfDisposed(),opHandler.cast(this,dtype)}variable(trainable=!0,name,dtype){return this.throwIfDisposed(),trackerFn().makeVariable(this,trainable,name,dtype)}};Object.defineProperty(Tensor,Symbol.hasInstance,{value:instance2=>!!instance2&&instance2.data!=null&&instance2.dataSync!=null&&instance2.throwIfDisposed!=null});var Variable=class extends Tensor{constructor(initialValue,trainable,name,tensorId){super(initialValue.shape,initialValue.dtype,initialValue.dataId,tensorId);this.trainable=trainable,this.name=name}assign(newValue){if(newValue.dtype!==this.dtype)throw new Error(`dtype of the new value (${newValue.dtype}) and previous value (${this.dtype}) must match`);if(!arraysEqual(newValue.shape,this.shape))throw new Error(`shape of the new value (${newValue.shape}) and previous value (${this.shape}) must match`);trackerFn().disposeTensor(this),this.dataId=newValue.dataId,trackerFn().incRef(this,null)}dispose(){trackerFn().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Variable,Symbol.hasInstance,{value:instance2=>instance2 instanceof Tensor&&instance2.assign!=null&&instance2.assign instanceof Function});var tensor_util_exports={};__export2(tensor_util_exports,{assertTypesMatch:()=>assertTypesMatch,getTensorsInContainer:()=>getTensorsInContainer,isTensorInList:()=>isTensorInList,makeTypesMatch:()=>makeTypesMatch});var Rank;(function(Rank2){Rank2.R0="R0",Rank2.R1="R1",Rank2.R2="R2",Rank2.R3="R3",Rank2.R4="R4",Rank2.R5="R5",Rank2.R6="R6"})(Rank||(Rank={}));var UpcastInt32AndMap;(function(UpcastInt32AndMap2){UpcastInt32AndMap2.float32="float32",UpcastInt32AndMap2.int32="int32",UpcastInt32AndMap2.bool="int32",UpcastInt32AndMap2.complex64="complex64"})(UpcastInt32AndMap||(UpcastInt32AndMap={}));var UpcastBoolAndMap;(function(UpcastBoolAndMap2){UpcastBoolAndMap2.float32="float32",UpcastBoolAndMap2.int32="int32",UpcastBoolAndMap2.bool="bool",UpcastBoolAndMap2.complex64="complex64"})(UpcastBoolAndMap||(UpcastBoolAndMap={}));var UpcastFloat32AndMap;(function(UpcastFloat32AndMap2){UpcastFloat32AndMap2.float32="float32",UpcastFloat32AndMap2.int32="float32",UpcastFloat32AndMap2.bool="float32",UpcastFloat32AndMap2.complex64="complex64"})(UpcastFloat32AndMap||(UpcastFloat32AndMap={}));var UpcastComplex64AndMap;(function(UpcastComplex64AndMap2){UpcastComplex64AndMap2.float32="complex64",UpcastComplex64AndMap2.int32="complex64",UpcastComplex64AndMap2.bool="complex64",UpcastComplex64AndMap2.complex64="complex64"})(UpcastComplex64AndMap||(UpcastComplex64AndMap={}));var upcastTypeMap={float32:UpcastFloat32AndMap,int32:UpcastInt32AndMap,bool:UpcastBoolAndMap,complex64:UpcastComplex64AndMap};function upcastType(typeA,typeB){if(typeA==="string"||typeB==="string"){if(typeA==="string"&&typeB==="string")return"string";throw new Error(`Can not upcast ${typeA} with ${typeB}`)}return upcastTypeMap[typeA][typeB]}function sumOutType(type){return upcastType(type,"int32")}function makeTypesMatch(a,b){if(a.dtype===b.dtype)return[a,b];let dtype=upcastType(a.dtype,b.dtype);return[a.cast(dtype),b.cast(dtype)]}function assertTypesMatch(a,b){assert(a.dtype===b.dtype,()=>`The dtypes of the first(${a.dtype}) and second(${b.dtype}) input must match`)}function isTensorInList(tensor2,tensorList){return tensorList.some(x=>x.id===tensor2.id)}function getTensorsInContainer(result){let list=[],seen=new Set;return walkTensorContainer(result,list,seen),list}function walkTensorContainer(container,list,seen){if(container==null)return;if(container instanceof Tensor){list.push(container);return}if(!isIterable(container))return;let iterable=container;for(let k in iterable){let val=iterable[k];seen.has(val)||(seen.add(val),walkTensorContainer(val,list,seen))}}function isIterable(obj){return Array.isArray(obj)||typeof obj=="object"}var EngineState=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(k=>k.name)))}}}dispose(){for(let variableName in this.registeredVariables)this.registeredVariables[variableName].dispose()}},Engine=class{constructor(ENV5){this.ENV=ENV5,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new EngineState}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let sortedBackends=this.getSortedBackends();for(let i=0;i{kernel.setupFunc!=null&&kernel.setupFunc(this.backendInstance)})}disposeRegisteredKernels(backendName){getKernelsForBackend(backendName).forEach(kernel=>{kernel.disposeFunc!=null&&kernel.disposeFunc(this.registry[backendName])})}initializeBackend(backendName){let registryFactoryEntry=this.registryFactory[backendName];if(registryFactoryEntry==null)throw new Error(`Cannot initialize backend ${backendName}, no registration found.`);try{let backend22=registryFactoryEntry.factory();if(backend22&&!(backend22 instanceof KernelBackend)&&typeof backend22.then=="function"){let promiseId=++this.pendingBackendInitId,success=backend22.then(backendInstance=>promiseId(promiseIdthis.registryFactory[b].priority-this.registryFactory[a].priority)}initializeBackendsAndReturnBest(){let sortedBackends=this.getSortedBackends();for(let i=0;ithis.startScope(name),()=>this.endScope(result),()=>(result=fn(),result instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),result))}scopedRun(start,end,f){start();try{let res=f();return end(),res}catch(ex){throw end(),ex}}nextTensorId(){return Engine.nextTensorId++}nextVariableId(){return Engine.nextVariableId++}clone(x){let y=this.makeTensorFromDataId(x.dataId,x.shape,x.dtype),inputs={x},grad2=dy=>({x:()=>{let dtype="float32",gradInputs={x:dy},attrs={dtype};return ENGINE.runKernelFunc(backend22=>backend22.cast(dy,dtype),gradInputs,null,Cast,attrs)}}),saved=[];return this.addTapeNode(this.state.activeScope.name,inputs,[y],grad2,saved,{}),y}runKernel(kernelName,inputs,attrs,inputsToSave,outputsToSave){let forwardFunc=null,backwardsFunc=null;return this.runKernelFunc(forwardFunc,inputs,backwardsFunc,kernelName,attrs,inputsToSave,outputsToSave)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(kernelName,numDataIdsBefore,outInfos){let numDataIdsAfter=this.backend.numDataIds(),numOutputDataIds=0;outInfos.forEach(info=>{numOutputDataIds+=info.dtype==="complex64"?3:1});let numMoves=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],dataIdsLeaked=numDataIdsAfter-numDataIdsBefore-numOutputDataIds-numMoves;if(dataIdsLeaked>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${dataIdsLeaked} data ids) after running '${kernelName}'`)}runKernelFunc(forwardFunc,inputs,backwardsFunc,kernelName,attrs,inputsToSave,outputsToSave){let outputs,saved=[],isTapeOn=this.isTapeOn();kernelName==null&&(kernelName=this.state.activeScope!=null?this.state.activeScope.name:"");let startingBytecount=this.state.numBytes,startingNumTensors=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let kernelFunc3;this.backendName==null&&this.backend;let kernel=getKernel(kernelName,this.backendName),out;if(kernel!=null)kernelFunc3=()=>{let numDataIdsBefore=this.backend.numDataIds();out=kernel.kernelFunc({inputs,attrs,backend:this.backend});let outInfos=Array.isArray(out)?out:[out];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(kernelName,numDataIdsBefore,outInfos);let outTensors=outInfos.map(outInfo=>{if(outInfo.rank!=null)return outInfo;let{dataId,shape,dtype}=outInfo;return this.makeTensorFromDataId(dataId,shape,dtype)});if(isTapeOn){let tensorsToSave=this.getTensorsForGradient(kernelName,inputs,outTensors);if(tensorsToSave==null){outputsToSave==null&&(outputsToSave=[]);let outsToSave=outTensors.filter((_,i)=>outputsToSave[i]);tensorsToSave=(inputsToSave||[]).slice().concat(outsToSave)}saved=this.saveTensorsForBackwardMode(tensorsToSave)}return outTensors};else{if(forwardFunc==null)throw new Error(`Error running ${kernelName}: Neither modular kernel nor forward func passed`);let saveFunc=tensors=>{!isTapeOn||(saved=tensors.map(tensor2=>this.keep(this.clone(tensor2))))};kernelFunc3=()=>{let numDataIdsBefore=this.backend.numDataIds();out=this.tidy(()=>forwardFunc(this.backend,saveFunc));let outs=Array.isArray(out)?out:[out];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(kernelName,numDataIdsBefore,outs),outs}}let kernelProfile;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?outputs=kernelFunc3():(kernelProfile=this.profiler.profileKernel(kernelName,inputs,()=>kernelFunc3()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(kernelProfile),outputs=kernelProfile.outputs)}),isTapeOn&&this.addTapeNode(kernelName,inputs,outputs,backwardsFunc,saved,attrs),this.state.profiling&&this.state.activeProfile.kernels.push({name:kernelName,bytesAdded:this.state.numBytes-startingBytecount,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-startingNumTensors,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(inputs).map(key=>inputs[key]!=null?inputs[key].shape:null),outputShapes:outputs.map(item=>item.shape),kernelTimeMs:kernelProfile.timeMs,extraInfo:kernelProfile.extraInfo}),Array.isArray(out)?outputs:outputs[0]}saveTensorsForBackwardMode(tensors){return tensors.map(tensor2=>this.keep(this.clone(tensor2)))}getTensorsForGradient(kernelName,inputs,outputs){let gradConfig=getGradient(kernelName);if(gradConfig!=null){let inputsToSave=gradConfig.inputsToSave||[],outputsToSave=gradConfig.outputsToSave||[],inputTensorsToSave;gradConfig.saveAllInputs?(assert(Array.isArray(inputs),()=>"saveAllInputs is true, expected inputs to be an array."),inputTensorsToSave=Object.keys(inputs).map(key=>inputs[key])):inputTensorsToSave=inputsToSave.map(inputName=>inputs[inputName]);let outputTensorsToSave=outputs.filter((_,i)=>outputsToSave[i]);return inputTensorsToSave.concat(outputTensorsToSave)}return null}makeTensor(values,shape,dtype,backend22){if(values==null)throw new Error("Values passed to engine.makeTensor() are null");dtype=dtype||"float32",backend22=backend22||this.backend;let backendVals=values;dtype==="string"&&isString(values[0])&&(backendVals=values.map(d=>encodeString(d)));let dataId=backend22.write(backendVals,shape,dtype),t=new Tensor(shape,dtype,dataId,this.nextTensorId());if(this.incRef(t,backend22),dtype==="string"){let info=this.state.tensorInfo.get(dataId),newBytes=bytesFromStringArray(backendVals);this.state.numBytes+=newBytes-info.bytes,info.bytes=newBytes}return t}makeTensorFromDataId(dataId,shape,dtype,backend22){dtype=dtype||"float32";let t=new Tensor(shape,dtype,dataId,this.nextTensorId());return this.incRef(t,backend22),t}makeVariable(initialValue,trainable=!0,name,dtype){name=name||this.nextVariableId().toString(),dtype!=null&&dtype!==initialValue.dtype&&(initialValue=initialValue.cast(dtype));let v=new Variable(initialValue,trainable,name,this.nextTensorId());if(this.state.registeredVariables[v.name]!=null)throw new Error(`Variable with name ${v.name} was already registered`);return this.state.registeredVariables[v.name]=v,this.incRef(v,this.backend),v}incRef(a,backend22){let refCount=this.state.tensorInfo.has(a.dataId)?this.state.tensorInfo.get(a.dataId).refCount:0;if(this.state.numTensors++,a.dtype==="string"&&this.state.numStringTensors++,refCount===0){this.state.numDataBuffers++;let bytes=0;a.dtype!=="complex64"&&a.dtype!=="string"&&(bytes=a.size*bytesPerElement(a.dtype)),this.state.tensorInfo.set(a.dataId,{backend:backend22||this.backend,dtype:a.dtype,shape:a.shape,bytes,refCount:0}),this.state.numBytes+=bytes}this.state.tensorInfo.get(a.dataId).refCount++,a instanceof Variable||this.track(a)}disposeTensor(a){if(!this.state.tensorInfo.has(a.dataId))return;this.state.numTensors--,a.dtype==="string"&&this.state.numStringTensors--;let info=this.state.tensorInfo.get(a.dataId);info.refCount<=1?(a.dtype!=="complex64"&&(this.state.numBytes-=info.bytes),this.state.numDataBuffers--,info.backend.disposeData(a.dataId),this.state.tensorInfo.delete(a.dataId)):this.state.tensorInfo.get(a.dataId).refCount--}disposeVariables(){for(let varName in this.state.registeredVariables){let v=this.state.registeredVariables[varName];this.disposeVariable(v)}}disposeVariable(v){this.disposeTensor(v),this.state.registeredVariables[v.name]!=null&&delete this.state.registeredVariables[v.name]}memory(){let info=this.backend.memory();return info.numTensors=this.state.numTensors,info.numDataBuffers=this.state.numDataBuffers,info.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(info.unreliable=!0,info.reasons==null&&(info.reasons=[]),info.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),info}async profile(query){this.state.profiling=!0;let startBytes=this.state.numBytes,startNumTensors=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await query(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(d=>d.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-startBytes,this.state.activeProfile.newTensors=this.state.numTensors-startNumTensors;for(let kernel of this.state.activeProfile.kernels)kernel.kernelTimeMs=await kernel.kernelTimeMs,kernel.extraInfo=await kernel.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(kernelName,inputs,outputs,gradientsFunc,saved,attrs){let tapeNode={id:this.state.nextTapeNodeId++,kernelName,inputs,outputs,saved},gradConfig=getGradient(kernelName);gradConfig!=null&&(gradientsFunc=gradConfig.gradFunc),gradientsFunc!=null&&(tapeNode.gradient=dys=>(dys=dys.map((dy,i)=>{if(dy==null){let output=outputs[i],vals=makeZerosTypedArray(output.size,output.dtype);return this.makeTensor(vals,output.shape,output.dtype)}return dy}),gradientsFunc(dys.length>1?dys:dys[0],saved,attrs))),this.state.activeTape.push(tapeNode)}keep(result){return result.kept=!0,result}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(name){let scopeInfo={track:[],name:"unnamed scope",id:this.state.nextScopeId++};name&&(scopeInfo.name=name),this.state.scopeStack.push(scopeInfo),this.state.activeScope=scopeInfo}endScope(result){let tensorsToTrackInParent=getTensorsInContainer(result),tensorsToTrackInParentSet=new Set(tensorsToTrackInParent.map(t=>t.id));for(let i=0;i{!tensor2.kept&&tensor2.scopeId===oldScope.id&&this.track(tensor2)})}gradients(f,xs,dy,allowNoGradients=!1){if(assert(xs.length>0,()=>"gradients() received an empty list of xs."),dy!=null&&dy.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);let y=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",f));assert(y instanceof Tensor,()=>"The result y returned by f() must be a tensor.");let filteredTape=getFilteredNodesXToY(this.state.activeTape,xs,y);if(!allowNoGradients&&filteredTape.length===0&&xs.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let accumulatedGradientMap={};accumulatedGradientMap[y.id]=dy==null?ones(y.shape):dy,backpropagateGradients(accumulatedGradientMap,filteredTape,f2=>this.tidy(f2),add);let grads2=xs.map(x=>accumulatedGradientMap[x.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(node=>{for(let tensor2 of node.saved)tensor2.dispose()}),this.state.activeTape=null),{value:y,grads:grads2}})}customGrad(f){return assert(isFunction(f),()=>"The f passed in customGrad(f) must be a function."),(...inputs)=>{assert(inputs.every(t=>t instanceof Tensor),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let res,inputMap={};return inputs.forEach((input2,i)=>{inputMap[i]=input2}),this.runKernelFunc((_,save)=>(res=f(...inputs,save),assert(res.value instanceof Tensor,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),assert(isFunction(res.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),res.value),inputMap,(dy,saved)=>{let gradRes=res.gradFunc(dy,saved),grads2=Array.isArray(gradRes)?gradRes:[gradRes];assert(grads2.length===inputs.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),assert(grads2.every(t=>t instanceof Tensor),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let gradMap={};return grads2.forEach((grad2,i)=>{gradMap[i]=()=>grad2}),gradMap})}}readSync(dataId){return this.state.tensorInfo.get(dataId).backend.readSync(dataId)}read(dataId){return this.state.tensorInfo.get(dataId).backend.read(dataId)}async time(query){let start=now(),timingInfo=await this.backend.time(query);return timingInfo.wallMs=now()-start,timingInfo}track(result){return this.state.activeScope!=null&&(result.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(result)),result}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new EngineState;for(let backendName in this.registry)this.disposeRegisteredKernels(backendName),this.registry[backendName].dispose(),delete this.registry[backendName];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Engine.nextTensorId=0;Engine.nextVariableId=0;function ones(shape){let values=makeOnesTypedArray(sizeFromShape(shape),"float32");return ENGINE.makeTensor(values,shape,"float32")}function getOrMakeEngine(){let ns=getGlobalNamespace();if(ns._tfengine==null){let environment=new Environment(ns);ns._tfengine=new Engine(environment)}return setEnvironmentGlobal(ns._tfengine.ENV),setTensorTracker(()=>ns._tfengine),ns._tfengine}var ENGINE=getOrMakeEngine();function add(a,b){let inputs={a,b};return ENGINE.runKernel(Add,inputs)}var device_util_exports={};__export2(device_util_exports,{isBrowser:()=>isBrowser,isMobile:()=>isMobile});function _isNavigatorDefined(){return typeof navigator!="undefined"&&navigator!=null}function isMobile(){if(_isNavigatorDefined()){let a=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))}return!1}function isBrowser(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var ENV2=env();ENV2.registerFlag("DEBUG",()=>!1,debugValue=>{debugValue&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});ENV2.registerFlag("IS_BROWSER",()=>isBrowser());ENV2.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");ENV2.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));ENV2.registerFlag("PROD",()=>!1);ENV2.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>ENV2.getBool("DEBUG"));ENV2.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);ENV2.registerFlag("IS_TEST",()=>!1);ENV2.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function inferShape(val,dtype){let firstElem=val;if(isTypedArray(val))return dtype==="string"?[]:[val.length];if(!Array.isArray(val))return[];let shape=[];for(;Array.isArray(firstElem)||isTypedArray(firstElem)&&dtype!=="string";)shape.push(firstElem.length),firstElem=firstElem[0];return Array.isArray(val)&&env().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&deepAssertShapeConsistency(val,shape,[]),shape}function deepAssertShapeConsistency(val,shape,indices){if(indices=indices||[],!Array.isArray(val)&&!isTypedArray(val)){assert(shape.length===0,()=>`Element arr[${indices.join("][")}] is a primitive, but should be an array/TypedArray of ${shape[0]} elements`);return}assert(shape.length>0,()=>`Element arr[${indices.join("][")}] should be a primitive, but is an array of ${val.length} elements`),assert(val.length===shape[0],()=>`Element arr[${indices.join("][")}] should have ${shape[0]} elements, but has ${val.length} elements`);let subShape=shape.slice(1);for(let i=0;i=0&&(inferredDtype=parseAsDtype),assertDtype(parseAsDtype,inferredDtype,argName,functionName),x==null||!isTypedArray(x)&&!Array.isArray(x)&&typeof x!="number"&&typeof x!="boolean"&&typeof x!="string"){let type=x==null?"null":x.constructor.name;throw new Error(`Argument '${argName}' passed to '${functionName}' must be a Tensor or TensorLike, but got '${type}'`)}let inferredShape=inferShape(x,inferredDtype);!isTypedArray(x)&&!Array.isArray(x)&&(x=[x]);let values=inferredDtype!=="string"?toTypedArray(x,inferredDtype):flatten(x,[],!0);return ENGINE.makeTensor(values,inferredShape,inferredDtype)}function convertToTensorArray(arg,argName,functionName,parseAsDtype="numeric"){if(!Array.isArray(arg))throw new Error(`Argument ${argName} passed to ${functionName} must be a \`Tensor[]\` or \`TensorLike[]\``);return arg.map((t,i)=>convertToTensor(t,`${argName}[${i}]`,functionName,parseAsDtype))}var OP_SCOPE_SUFFIX="__op";function op(f){let keys=Object.keys(f);if(keys.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${keys.length} keys.`);let opName=keys[0],fn=f[opName];opName.endsWith("_")&&(opName=opName.substring(0,opName.length-1)),opName=opName+OP_SCOPE_SUFFIX;let f2=(...args)=>{ENGINE.startScope(opName);try{let result=fn(...args);return isPromise(result)&&console.error("Cannot return a Promise inside of tidy."),ENGINE.endScope(result),result}catch(ex){throw ENGINE.endScope(null),ex}};return Object.defineProperty(f2,"name",{value:opName,configurable:!0}),f2}function complex_(real4,imag4){let $real=convertToTensor(real4,"real","complex"),$imag=convertToTensor(imag4,"imag","complex");assertShapesMatch($real.shape,$imag.shape,`real and imag shapes, ${$real.shape} and ${$imag.shape}, must match in call to tf.complex().`);let inputs={real:$real,imag:$imag};return ENGINE.runKernel(Complex,inputs)}var complex=op({complex_});function makeTensor(values,shape,inferredShape,dtype){if(dtype==null&&(dtype=inferDtype(values)),dtype==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!isTypedArray(values)&&!Array.isArray(values)&&typeof values!="number"&&typeof values!="boolean"&&typeof values!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(shape!=null){assertNonNegativeIntegerDimensions(shape);let providedSize=sizeFromShape(shape),inferredSize=sizeFromShape(inferredShape);assert(providedSize===inferredSize,()=>`Based on the provided shape, [${shape}], the tensor should have ${providedSize} values but has ${inferredSize}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${inferredShape}) does not match the provided shape (${shape}). `)}}return!isTypedArray(values)&&!Array.isArray(values)&&(values=[values]),shape=shape||inferredShape,values=dtype!=="string"?toTypedArray(values,dtype):flatten(values,[],!0),ENGINE.makeTensor(values,shape,dtype)}function tensor(values,shape,dtype){let inferredShape=inferShape(values,dtype);return makeTensor(values,shape,inferredShape,dtype)}var DTYPE_VALUE_SIZE_MAP={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},NUM_BYTES_STRING_LENGTH=4;async function encodeWeights(tensors,group){let specs=[],dataPromises=[],names=Array.isArray(tensors)?tensors.map(tensor2=>tensor2.name):Object.keys(tensors);for(let i=0;i{let vals=await t.bytes(),totalNumBytes=vals.reduce((p2,c)=>p2+c.length,0)+NUM_BYTES_STRING_LENGTH*vals.length,bytes=new Uint8Array(totalNumBytes),offset=0;for(let i2=0;i2{if(totalByteLength+=x.byteLength,normalizedXs.push(x.byteLength===x.buffer.byteLength?x:new x.constructor(x)),!(x instanceof Float32Array||x instanceof Int32Array||x instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`)});let y=new Uint8Array(totalByteLength),offset=0;return normalizedXs.forEach(x=>{y.set(new Uint8Array(x.buffer),offset),offset+=x.byteLength}),y.buffer}var useNodeBuffer=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function stringByteLength(str2){return useNodeBuffer?Buffer.byteLength(str2):new Blob([str2]).size}function arrayBufferToBase64String(buffer2){if(useNodeBuffer)return Buffer.from(buffer2).toString("base64");let buf=new Uint8Array(buffer2),s="";for(let i=0,l=buf.length;i{totalByteLength+=buffer2.byteLength});let temp=new Uint8Array(totalByteLength),offset=0;return buffers.forEach(buffer2=>{temp.set(new Uint8Array(buffer2),offset),offset+=buffer2.byteLength}),temp.buffer}function basename(path){let SEPARATOR="/";for(path=path.trim();path.endsWith(SEPARATOR);)path=path.slice(0,path.length-1);let items=path.split(SEPARATOR);return items[items.length-1]}function getModelArtifactsInfoForJSON(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:modelArtifacts.modelTopology==null?0:stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),weightSpecsBytes:modelArtifacts.weightSpecs==null?0:stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),weightDataBytes:modelArtifacts.weightData==null?0:modelArtifacts.weightData.byteLength}}function computeFloat16MantisaTable(){let convertMantissa=i=>{let m=i<<13,e=0;for(;(m&8388608)==0;)e-=8388608,m<<=1;return m&=~8388608,e+=947912704,m|e},mantisaTable=new Uint32Array(2048);mantisaTable[0]=0;for(let i=1;i<1024;i++)mantisaTable[i]=convertMantissa(i);for(let i=1024;i<2048;i++)mantisaTable[i]=939524096+(i-1024<<13);return mantisaTable}function computeFloat16ExponentTable(){let exponentTable=new Uint32Array(64);exponentTable[0]=0,exponentTable[31]=1199570944,exponentTable[32]=2147483648,exponentTable[63]=3347054592;for(let i=1;i<31;i++)exponentTable[i]=i<<23;for(let i=33;i<63;i++)exponentTable[i]=2147483648+(i-32<<23);return exponentTable}function computeFloat16OffsetTable(){let offsetTable=new Uint32Array(64);for(let i=0;i<64;i++)offsetTable[i]=1024;return offsetTable[0]=offsetTable[32]=0,offsetTable}function getFloat16Decoder(){let mantisaTable=computeFloat16MantisaTable(),exponentTable=computeFloat16ExponentTable(),offsetTable=computeFloat16OffsetTable();return quantizedArray=>{let buffer2=new ArrayBuffer(4*quantizedArray.length),bufferUint32View=new Uint32Array(buffer2);for(let index=0;index>10]+(float16Bits&1023)]+exponentTable[float16Bits>>10];bufferUint32View[index]=float32Bits}return new Float32Array(buffer2)}}var IORouterRegistry=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return IORouterRegistry.instance==null&&(IORouterRegistry.instance=new IORouterRegistry),IORouterRegistry.instance}static registerSaveRouter(saveRouter){IORouterRegistry.getInstance().saveRouters.push(saveRouter)}static registerLoadRouter(loadRouter){IORouterRegistry.getInstance().loadRouters.push(loadRouter)}static getSaveHandlers(url){return IORouterRegistry.getHandlers(url,"save")}static getLoadHandlers(url,loadOptions){return IORouterRegistry.getHandlers(url,"load",loadOptions)}static getHandlers(url,handlerType,loadOptions){let validHandlers=[];return(handlerType==="load"?IORouterRegistry.getInstance().loadRouters:IORouterRegistry.getInstance().saveRouters).forEach(router=>{let handler=router(url,loadOptions);handler!==null&&validHandlers.push(handler)}),validHandlers}},registerSaveRouter=loudRouter=>IORouterRegistry.registerSaveRouter(loudRouter),registerLoadRouter=loudRouter=>IORouterRegistry.registerLoadRouter(loudRouter),getSaveHandlers=url=>IORouterRegistry.getSaveHandlers(url),getLoadHandlers=(url,loadOptions)=>IORouterRegistry.getLoadHandlers(url,loadOptions),DATABASE_NAME="tensorflowjs",DATABASE_VERSION=1,MODEL_STORE_NAME="models_store",INFO_STORE_NAME="model_info_store";function getIndexedDBFactory(){if(!env().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let theWindow=typeof window=="undefined"?self:window,factory=theWindow.indexedDB||theWindow.mozIndexedDB||theWindow.webkitIndexedDB||theWindow.msIndexedDB||theWindow.shimIndexedDB;if(factory==null)throw new Error("The current browser does not appear to support IndexedDB.");return factory}function setUpDatabase(openRequest){let db=openRequest.result;db.createObjectStore(MODEL_STORE_NAME,{keyPath:"modelPath"}),db.createObjectStore(INFO_STORE_NAME,{keyPath:"modelPath"})}var BrowserIndexedDB=class{constructor(modelPath){if(this.indexedDB=getIndexedDBFactory(),modelPath==null||!modelPath)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=modelPath}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,modelArtifacts)}async load(){return this.databaseAction(this.modelPath)}databaseAction(modelPath,modelArtifacts){return new Promise((resolve,reject)=>{let openRequest=this.indexedDB.open(DATABASE_NAME,DATABASE_VERSION);openRequest.onupgradeneeded=()=>setUpDatabase(openRequest),openRequest.onsuccess=()=>{let db=openRequest.result;if(modelArtifacts==null){let modelTx=db.transaction(MODEL_STORE_NAME,"readonly"),getRequest=modelTx.objectStore(MODEL_STORE_NAME).get(this.modelPath);getRequest.onsuccess=()=>{if(getRequest.result==null)return db.close(),reject(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));resolve(getRequest.result.modelArtifacts)},getRequest.onerror=error=>(db.close(),reject(getRequest.error)),modelTx.oncomplete=()=>db.close()}else{let modelArtifactsInfo=getModelArtifactsInfoForJSON(modelArtifacts),infoTx=db.transaction(INFO_STORE_NAME,"readwrite"),infoStore=infoTx.objectStore(INFO_STORE_NAME),putInfoRequest=infoStore.put({modelPath:this.modelPath,modelArtifactsInfo}),modelTx;putInfoRequest.onsuccess=()=>{modelTx=db.transaction(MODEL_STORE_NAME,"readwrite");let putModelRequest=modelTx.objectStore(MODEL_STORE_NAME).put({modelPath:this.modelPath,modelArtifacts,modelArtifactsInfo});putModelRequest.onsuccess=()=>resolve({modelArtifactsInfo}),putModelRequest.onerror=error=>{infoStore=infoTx.objectStore(INFO_STORE_NAME);let deleteInfoRequest=infoStore.delete(this.modelPath);deleteInfoRequest.onsuccess=()=>(db.close(),reject(putModelRequest.error)),deleteInfoRequest.onerror=error2=>(db.close(),reject(putModelRequest.error))}},putInfoRequest.onerror=error=>(db.close(),reject(putInfoRequest.error)),infoTx.oncomplete=()=>{modelTx==null?db.close():modelTx.oncomplete=()=>db.close()}}},openRequest.onerror=error=>reject(openRequest.error)})}};BrowserIndexedDB.URL_SCHEME="indexeddb://";var indexedDBRouter=url=>env().getBool("IS_BROWSER")&&!Array.isArray(url)&&url.startsWith(BrowserIndexedDB.URL_SCHEME)?browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length)):null;IORouterRegistry.registerSaveRouter(indexedDBRouter);IORouterRegistry.registerLoadRouter(indexedDBRouter);function browserIndexedDB(modelPath){return new BrowserIndexedDB(modelPath)}function maybeStripScheme(key){return key.startsWith(BrowserIndexedDB.URL_SCHEME)?key.slice(BrowserIndexedDB.URL_SCHEME.length):key}var BrowserIndexedDBManager=class{constructor(){this.indexedDB=getIndexedDBFactory()}async listModels(){return new Promise((resolve,reject)=>{let openRequest=this.indexedDB.open(DATABASE_NAME,DATABASE_VERSION);openRequest.onupgradeneeded=()=>setUpDatabase(openRequest),openRequest.onsuccess=()=>{let db=openRequest.result,tx=db.transaction(INFO_STORE_NAME,"readonly"),getAllInfoRequest=tx.objectStore(INFO_STORE_NAME).getAll();getAllInfoRequest.onsuccess=()=>{let out={};for(let item of getAllInfoRequest.result)out[item.modelPath]=item.modelArtifactsInfo;resolve(out)},getAllInfoRequest.onerror=error=>(db.close(),reject(getAllInfoRequest.error)),tx.oncomplete=()=>db.close()},openRequest.onerror=error=>reject(openRequest.error)})}async removeModel(path){return path=maybeStripScheme(path),new Promise((resolve,reject)=>{let openRequest=this.indexedDB.open(DATABASE_NAME,DATABASE_VERSION);openRequest.onupgradeneeded=()=>setUpDatabase(openRequest),openRequest.onsuccess=()=>{let db=openRequest.result,infoTx=db.transaction(INFO_STORE_NAME,"readwrite"),infoStore=infoTx.objectStore(INFO_STORE_NAME),getInfoRequest=infoStore.get(path),modelTx;getInfoRequest.onsuccess=()=>{if(getInfoRequest.result==null)return db.close(),reject(new Error(`Cannot find model with path '${path}' in IndexedDB.`));{let deleteInfoRequest=infoStore.delete(path),deleteModelData=()=>{modelTx=db.transaction(MODEL_STORE_NAME,"readwrite");let deleteModelRequest=modelTx.objectStore(MODEL_STORE_NAME).delete(path);deleteModelRequest.onsuccess=()=>resolve(getInfoRequest.result.modelArtifactsInfo),deleteModelRequest.onerror=error=>reject(getInfoRequest.error)};deleteInfoRequest.onsuccess=deleteModelData,deleteInfoRequest.onerror=error=>(deleteModelData(),db.close(),reject(getInfoRequest.error))}},getInfoRequest.onerror=error=>(db.close(),reject(getInfoRequest.error)),infoTx.oncomplete=()=>{modelTx==null?db.close():modelTx.oncomplete=()=>db.close()}},openRequest.onerror=error=>reject(openRequest.error)})}},PATH_SEPARATOR="/",PATH_PREFIX="tensorflowjs_models",INFO_SUFFIX="info",MODEL_TOPOLOGY_SUFFIX="model_topology",WEIGHT_SPECS_SUFFIX="weight_specs",WEIGHT_DATA_SUFFIX="weight_data",MODEL_METADATA_SUFFIX="model_metadata";function getModelKeys(path){return{info:[PATH_PREFIX,path,INFO_SUFFIX].join(PATH_SEPARATOR),topology:[PATH_PREFIX,path,MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),weightSpecs:[PATH_PREFIX,path,WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),weightData:[PATH_PREFIX,path,WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),modelMetadata:[PATH_PREFIX,path,MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)}}function getModelPathFromKey(key){let items=key.split(PATH_SEPARATOR);if(items.length<3)throw new Error(`Invalid key format: ${key}`);return items.slice(1,items.length-1).join(PATH_SEPARATOR)}function maybeStripScheme2(key){return key.startsWith(BrowserLocalStorage.URL_SCHEME)?key.slice(BrowserLocalStorage.URL_SCHEME.length):key}var BrowserLocalStorage=class{constructor(modelPath){if(!env().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,modelPath==null||!modelPath)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=modelPath,this.keys=getModelKeys(this.modelPath)}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let topology=JSON.stringify(modelArtifacts.modelTopology),weightSpecs=JSON.stringify(modelArtifacts.weightSpecs),modelArtifactsInfo=getModelArtifactsInfoForJSON(modelArtifacts);try{this.LS.setItem(this.keys.info,JSON.stringify(modelArtifactsInfo)),this.LS.setItem(this.keys.topology,topology),this.LS.setItem(this.keys.weightSpecs,weightSpecs),this.LS.setItem(this.keys.weightData,arrayBufferToBase64String(modelArtifacts.weightData));let result={format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy};return modelArtifacts.signature!=null&&(result.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(result.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(result.modelInitializer=modelArtifacts.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(result)),{modelArtifactsInfo}}catch(err){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`)}}}async load(){let info=JSON.parse(this.LS.getItem(this.keys.info));if(info==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(info.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let out={},topology=JSON.parse(this.LS.getItem(this.keys.topology));if(topology==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);out.modelTopology=topology;let weightSpecs=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(weightSpecs==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);out.weightSpecs=weightSpecs;let metadataString=this.LS.getItem(this.keys.modelMetadata);if(metadataString!=null){let metadata=JSON.parse(metadataString);out.format=metadata.format,out.generatedBy=metadata.generatedBy,out.convertedBy=metadata.convertedBy,metadata.signature!=null&&(out.signature=metadata.signature),metadata.userDefinedMetadata!=null&&(out.userDefinedMetadata=metadata.userDefinedMetadata),metadata.modelInitializer!=null&&(out.modelInitializer=metadata.modelInitializer)}let weightDataBase64=this.LS.getItem(this.keys.weightData);if(weightDataBase64==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return out.weightData=base64StringToArrayBuffer(weightDataBase64),out}};BrowserLocalStorage.URL_SCHEME="localstorage://";var localStorageRouter=url=>env().getBool("IS_BROWSER")&&!Array.isArray(url)&&url.startsWith(BrowserLocalStorage.URL_SCHEME)?browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length)):null;IORouterRegistry.registerSaveRouter(localStorageRouter);IORouterRegistry.registerLoadRouter(localStorageRouter);function browserLocalStorage(modelPath){return new BrowserLocalStorage(modelPath)}var BrowserLocalStorageManager=class{constructor(){assert(env().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),assert(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let out={},prefix=PATH_PREFIX+PATH_SEPARATOR,suffix=PATH_SEPARATOR+INFO_SUFFIX;for(let i=0;i"scheme must not be undefined or null."),scheme.endsWith(URL_SCHEME_SUFFIX)&&(scheme=scheme.slice(0,scheme.indexOf(URL_SCHEME_SUFFIX))),assert(scheme.length>0,()=>"scheme must not be an empty string.");let registry=ModelStoreManagerRegistry.getInstance();assert(registry.managers[scheme]==null,()=>`A model store manager is already registered for scheme '${scheme}'.`),registry.managers[scheme]=manager}static getManager(scheme){let manager=this.getInstance().managers[scheme];if(manager==null)throw new Error(`Cannot find model manager for scheme '${scheme}'`);return manager}static getSchemes(){return Object.keys(this.getInstance().managers)}};function parseURL(url){if(url.indexOf(URL_SCHEME_SUFFIX)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${ModelStoreManagerRegistry.getSchemes().join(",")}`);return{scheme:url.split(URL_SCHEME_SUFFIX)[0],path:url.split(URL_SCHEME_SUFFIX)[1]}}async function cloneModelInternal(sourceURL,destURL,deleteSource=!1){assert(sourceURL!==destURL,()=>`Old path and new path are the same: '${sourceURL}'`);let loadHandlers=IORouterRegistry.getLoadHandlers(sourceURL);assert(loadHandlers.length>0,()=>`Copying failed because no load handler is found for source URL ${sourceURL}.`),assert(loadHandlers.length<2,()=>`Copying failed because more than one (${loadHandlers.length}) load handlers for source URL ${sourceURL}.`);let loadHandler=loadHandlers[0],saveHandlers=IORouterRegistry.getSaveHandlers(destURL);assert(saveHandlers.length>0,()=>`Copying failed because no save handler is found for destination URL ${destURL}.`),assert(saveHandlers.length<2,()=>`Copying failed because more than one (${loadHandlers.length}) save handlers for destination URL ${destURL}.`);let saveHandler=saveHandlers[0],sourceScheme=parseURL(sourceURL).scheme,sourcePath=parseURL(sourceURL).path,sameMedium=sourceScheme===parseURL(sourceURL).scheme,modelArtifacts=await loadHandler.load();deleteSource&&sameMedium&&await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath);let saveResult=await saveHandler.save(modelArtifacts);return deleteSource&&!sameMedium&&await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath),saveResult.modelArtifactsInfo}async function listModels(){let schemes=ModelStoreManagerRegistry.getSchemes(),out={};for(let scheme of schemes){let schemeOut=await ModelStoreManagerRegistry.getManager(scheme).listModels();for(let path in schemeOut){let url=scheme+URL_SCHEME_SUFFIX+path;out[url]=schemeOut[path]}}return out}async function removeModel(url){let schemeAndPath=parseURL(url);return ModelStoreManagerRegistry.getManager(schemeAndPath.scheme).removeModel(schemeAndPath.path)}async function copyModel(sourceURL,destURL){return cloneModelInternal(sourceURL,destURL,!1)}async function moveModel(sourceURL,destURL){return cloneModelInternal(sourceURL,destURL,!0)}var PlatformBrowser=class{fetch(path,init2){return fetch(path,init2)}now(){return performance.now()}encode(text,encoding){if(encoding!=="utf-8"&&encoding!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${encoding}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(text)}decode(bytes,encoding){return new TextDecoder(encoding).decode(bytes)}};if(env().get("IS_BROWSER")){env().setPlatform("browser",new PlatformBrowser);try{ModelStoreManagerRegistry.registerManager(BrowserLocalStorage.URL_SCHEME,new BrowserLocalStorageManager)}catch(err){}try{ModelStoreManagerRegistry.registerManager(BrowserIndexedDB.URL_SCHEME,new BrowserIndexedDBManager)}catch(err){}}var getNodeFetch={importFetch:()=>require_browser()},systemFetch,PlatformNode=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(path,requestInits){return env().global.fetch!=null?env().global.fetch(path,requestInits):(systemFetch==null&&(systemFetch=getNodeFetch.importFetch()),systemFetch(path,requestInits))}now(){let time2=process.hrtime();return time2[0]*1e3+time2[1]/1e6}encode(text,encoding){if(encoding!=="utf-8"&&encoding!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${encoding}`);return this.textEncoder.encode(text)}decode(bytes,encoding){return bytes.length===0?"":new this.util.TextDecoder(encoding).decode(bytes)}};env().get("IS_NODE")&&env().setPlatform("node",new PlatformNode);function buffer(shape,dtype="float32",values){return dtype=dtype||"float32",assertNonNegativeIntegerDimensions(shape),new TensorBuffer(shape,dtype,values)}function cast_(x,dtype){let $x=convertToTensor(x,"x","cast");if(!isValidDtype(dtype))throw new Error(`Failed to cast to unknown dtype ${dtype}`);if(dtype==="string"&&$x.dtype!=="string"||dtype!=="string"&&$x.dtype==="string")throw new Error("Only strings can be casted to strings");let inputs={x:$x},attrs={dtype};return ENGINE.runKernel(Cast,inputs,attrs)}var cast=op({cast_});function clone_(x){let inputs={x:convertToTensor(x,"x","clone","string_or_numeric")};return ENGINE.runKernel(Identity,inputs)}var clone=op({clone_});function print2(x,verbose=!1){console.log(x.toString(verbose))}getOrMakeEngine();var opHandler2={buffer,cast,clone,print:print2};setOpHandler(opHandler2);var io_exports={};__export2(io_exports,{browserFiles:()=>browserFiles,browserHTTPRequest:()=>browserHTTPRequest,concatenateArrayBuffers:()=>concatenateArrayBuffers,copyModel:()=>copyModel,decodeWeights:()=>decodeWeights,encodeWeights:()=>encodeWeights,fromMemory:()=>fromMemory,getLoadHandlers:()=>getLoadHandlers,getModelArtifactsInfoForJSON:()=>getModelArtifactsInfoForJSON,getSaveHandlers:()=>getSaveHandlers,http:()=>http,isHTTPScheme:()=>isHTTPScheme,listModels:()=>listModels,loadWeights:()=>loadWeights,moveModel:()=>moveModel,registerLoadRouter:()=>registerLoadRouter,registerSaveRouter:()=>registerSaveRouter,removeModel:()=>removeModel,weightsLoaderFactory:()=>weightsLoaderFactory,withSaveHandler:()=>withSaveHandler});var DEFAULT_FILE_NAME_PREFIX="model",DEFAULT_JSON_EXTENSION_NAME=".json",DEFAULT_WEIGHT_DATA_EXTENSION_NAME=".weights.bin";function defer(f){return new Promise(resolve=>setTimeout(resolve)).then(f)}var BrowserDownloads=class{constructor(fileNamePrefix){if(!env().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)&&(fileNamePrefix=fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length)),(fileNamePrefix==null||fileNamePrefix.length===0)&&(fileNamePrefix=DEFAULT_FILE_NAME_PREFIX),this.modelTopologyFileName=fileNamePrefix+DEFAULT_JSON_EXTENSION_NAME,this.weightDataFileName=fileNamePrefix+DEFAULT_WEIGHT_DATA_EXTENSION_NAME}async save(modelArtifacts){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let weightsURL=window.URL.createObjectURL(new Blob([modelArtifacts.weightData],{type:"application/octet-stream"}));if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let weightsManifest=[{paths:["./"+this.weightDataFileName],weights:modelArtifacts.weightSpecs}],modelTopologyAndWeightManifest={modelTopology:modelArtifacts.modelTopology,format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy,weightsManifest};modelArtifacts.signature!=null&&(modelTopologyAndWeightManifest.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(modelTopologyAndWeightManifest.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(modelTopologyAndWeightManifest.modelInitializer=modelArtifacts.modelInitializer);let modelTopologyAndWeightManifestURL=window.URL.createObjectURL(new Blob([JSON.stringify(modelTopologyAndWeightManifest)],{type:"application/json"})),jsonAnchor=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(jsonAnchor.download=this.modelTopologyFileName,jsonAnchor.href=modelTopologyAndWeightManifestURL,await defer(()=>jsonAnchor.dispatchEvent(new MouseEvent("click"))),modelArtifacts.weightData!=null){let weightDataAnchor=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;weightDataAnchor.download=this.weightDataFileName,weightDataAnchor.href=weightsURL,await defer(()=>weightDataAnchor.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:getModelArtifactsInfoForJSON(modelArtifacts)}}}};BrowserDownloads.URL_SCHEME="downloads://";var BrowserFiles=class{constructor(files){if(files==null||files.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${files}`);this.files=files}async load(){let jsonFile=this.files[0],weightFiles=this.files.slice(1);return new Promise((resolve,reject)=>{let jsonReader=new FileReader;jsonReader.onload=event=>{let modelJSON=JSON.parse(event.target.result),modelTopology=modelJSON.modelTopology;if(modelTopology==null){reject(new Error(`modelTopology field is missing from file ${jsonFile.name}`));return}weightFiles.length===0&&resolve({modelTopology});let weightsManifest=modelJSON.weightsManifest;if(weightsManifest==null){reject(new Error(`weightManifest field is missing from file ${jsonFile.name}`));return}let pathToFile;try{pathToFile=this.checkManifestAndWeightFiles(weightsManifest,weightFiles)}catch(err){reject(err);return}let weightSpecs=[],paths=[],perFileBuffers=[];weightsManifest.forEach(weightsGroup=>{weightsGroup.paths.forEach(path=>{paths.push(path),perFileBuffers.push(null)}),weightSpecs.push(...weightsGroup.weights)}),weightsManifest.forEach(weightsGroup=>{weightsGroup.paths.forEach(path=>{let weightFileReader=new FileReader;weightFileReader.onload=event2=>{let weightData=event2.target.result,index=paths.indexOf(path);if(perFileBuffers[index]=weightData,perFileBuffers.indexOf(null)===-1){let result={modelTopology,weightSpecs,weightData:concatenateArrayBuffers(perFileBuffers),format:modelJSON.format,generatedBy:modelJSON.generatedBy,convertedBy:modelJSON.convertedBy};modelJSON.signature!=null&&(result.signature=modelJSON.signature),modelJSON.userDefinedMetadata!=null&&(result.userDefinedMetadata=modelJSON.userDefinedMetadata),modelJSON.modelInitializer!=null&&(result.modelInitializer=modelJSON.modelInitializer),resolve(result)}},weightFileReader.onerror=error=>reject(`Failed to weights data from file of path '${path}'.`),weightFileReader.readAsArrayBuffer(pathToFile[path])})})},jsonReader.onerror=error=>reject(`Failed to read model topology and weights manifest JSON from file '${jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),jsonReader.readAsText(jsonFile)})}checkManifestAndWeightFiles(manifest,files){let basenames=[],fileNames=files.map(file=>basename(file.name)),pathToFile={};for(let group of manifest)group.paths.forEach(path=>{let pathBasename=basename(path);if(basenames.indexOf(pathBasename)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${pathBasename}'`);if(basenames.push(pathBasename),fileNames.indexOf(pathBasename)===-1)throw new Error(`Weight file with basename '${pathBasename}' is not provided.`);pathToFile[path]=files[fileNames.indexOf(pathBasename)]});if(basenames.length!==files.length)throw new Error(`Mismatch in the number of files in weights manifest (${basenames.length}) and the number of weight files provided (${files.length}).`);return pathToFile}},browserDownloadsRouter=url=>env().getBool("IS_BROWSER")&&!Array.isArray(url)&&url.startsWith(BrowserDownloads.URL_SCHEME)?browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length)):null;IORouterRegistry.registerSaveRouter(browserDownloadsRouter);function browserDownloads(fileNamePrefix="model"){return new BrowserDownloads(fileNamePrefix)}function browserFiles(files){return new BrowserFiles(files)}function monitorPromisesProgress(promises,onProgress,startFraction,endFraction){checkPromises(promises),startFraction=startFraction==null?0:startFraction,endFraction=endFraction==null?1:endFraction,checkFraction(startFraction,endFraction);let resolvedPromise=0,registerMonitor=promise=>(promise.then(value=>{let fraction=startFraction+ ++resolvedPromise/promises.length*(endFraction-startFraction);return onProgress(fraction),value}),promise);function checkPromises(promises2){assert(promises2!=null&&Array.isArray(promises2)&&promises2.length>0,()=>"promises must be a none empty array")}function checkFraction(startFraction2,endFraction2){assert(startFraction2>=0&&startFraction2<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${startFraction2}`),assert(endFraction2>=0&&endFraction2<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${endFraction2}`),assert(endFraction2>=startFraction2,()=>`startFraction must be no more than endFraction, but got startFraction ${startFraction2} and endFraction ${endFraction2}`)}return Promise.all(promises.map(registerMonitor))}async function loadWeightsAsArrayBuffer(fetchURLs,loadOptions){loadOptions==null&&(loadOptions={});let fetchFunc=loadOptions.fetchFunc==null?env().platform.fetch:loadOptions.fetchFunc,requests=fetchURLs.map(fetchURL=>fetchFunc(fetchURL,loadOptions.requestInit,{isBinary:!0})),fetchStartFraction=0,fetchEndFraction=.5,bufferPromises=(loadOptions.onProgress==null?await Promise.all(requests):await monitorPromisesProgress(requests,loadOptions.onProgress,fetchStartFraction,fetchEndFraction)).map(response=>response.arrayBuffer()),bufferStartFraction=.5,bufferEndFraction=1;return loadOptions.onProgress==null?await Promise.all(bufferPromises):await monitorPromisesProgress(bufferPromises,loadOptions.onProgress,bufferStartFraction,bufferEndFraction)}async function loadWeights(manifest,filePathPrefix="",weightNames,requestInit){return weightsLoaderFactory(fetchUrls=>loadWeightsAsArrayBuffer(fetchUrls,{requestInit}))(manifest,filePathPrefix,weightNames)}function weightsLoaderFactory(fetchWeightsFunction){return async(manifest,filePathPrefix="",weightNames)=>{let groupIndicesToFetchMap=manifest.map(()=>!1),groupWeightsToFetch={},weightsFound=weightNames!=null?weightNames.map(()=>!1):[],allManifestWeightNames=[];if(manifest.forEach((manifestGroupConfig,groupIndex)=>{let groupOffset=0;manifestGroupConfig.weights.forEach(weightsEntry=>{let rawDtype="quantization"in weightsEntry?weightsEntry.quantization.dtype:weightsEntry.dtype,weightsBytes=DTYPE_VALUE_SIZE_MAP[rawDtype]*sizeFromShape(weightsEntry.shape),enqueueWeightsForFetchingFn=()=>{groupIndicesToFetchMap[groupIndex]=!0,groupWeightsToFetch[groupIndex]==null&&(groupWeightsToFetch[groupIndex]=[]),groupWeightsToFetch[groupIndex].push({manifestEntry:weightsEntry,groupOffset,sizeBytes:weightsBytes})};weightNames!=null?weightNames.forEach((weightName,weightIndex)=>{weightName===weightsEntry.name&&(enqueueWeightsForFetchingFn(),weightsFound[weightIndex]=!0)}):enqueueWeightsForFetchingFn(),allManifestWeightNames.push(weightsEntry.name),groupOffset+=weightsBytes})}),!weightsFound.every(found=>found)){let weightsNotFound=weightNames.filter((_,i)=>!weightsFound[i]);throw new Error(`Could not find weights in manifest with names: ${weightsNotFound.join(", ")}. -Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`)}let groupIndicesToFetch=groupIndicesToFetchMap.reduce((accumulator,shouldFetch,i)=>(shouldFetch&&accumulator.push(i),accumulator),[]),fetchUrls=[];groupIndicesToFetch.forEach(i=>{manifest[i].paths.forEach(filepath=>{let fetchUrl=filePathPrefix+(filePathPrefix.endsWith("/")?"":"/")+filepath;fetchUrls.push(fetchUrl)})});let buffers=await fetchWeightsFunction(fetchUrls),weightsTensorMap={},bufferIndexOffset=0;return groupIndicesToFetch.forEach(i=>{let numBuffers=manifest[i].paths.length,groupBytes=0;for(let i2=0;i2{let byteBuffer=groupBuffer.slice(weightsEntry.groupOffset,weightsEntry.groupOffset+weightsEntry.sizeBytes),nameToTensorMap=decodeWeights(byteBuffer,[weightsEntry.manifestEntry]);for(let name in nameToTensorMap)weightsTensorMap[name]=nameToTensorMap[name]}),bufferIndexOffset+=numBuffers}),weightsTensorMap}}var OCTET_STREAM_MIME_TYPE="application/octet-stream",JSON_TYPE="application/json",HTTPRequest=class{constructor(path,loadOptions){if(this.DEFAULT_METHOD="POST",loadOptions==null&&(loadOptions={}),this.weightPathPrefix=loadOptions.weightPathPrefix,this.onProgress=loadOptions.onProgress,this.weightUrlConverter=loadOptions.weightUrlConverter,loadOptions.fetchFunc!=null?(assert(typeof loadOptions.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=loadOptions.fetchFunc):this.fetch=env().platform.fetch,assert(path!=null&&path.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(path)&&assert(path.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${path.length}).`),this.path=path,loadOptions.requestInit!=null&&loadOptions.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=loadOptions.requestInit||{}}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let init2=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);init2.body=new FormData;let weightsManifest=[{paths:["./model.weights.bin"],weights:modelArtifacts.weightSpecs}],modelTopologyAndWeightManifest={modelTopology:modelArtifacts.modelTopology,format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy,weightsManifest};modelArtifacts.signature!=null&&(modelTopologyAndWeightManifest.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(modelTopologyAndWeightManifest.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(modelTopologyAndWeightManifest.modelInitializer=modelArtifacts.modelInitializer),init2.body.append("model.json",new Blob([JSON.stringify(modelTopologyAndWeightManifest)],{type:JSON_TYPE}),"model.json"),modelArtifacts.weightData!=null&&init2.body.append("model.weights.bin",new Blob([modelArtifacts.weightData],{type:OCTET_STREAM_MIME_TYPE}),"model.weights.bin");let response=await this.fetch(this.path,init2);if(response.ok)return{modelArtifactsInfo:getModelArtifactsInfoForJSON(modelArtifacts),responses:[response]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${response.status}.`)}async load(){let modelConfigRequest=await this.fetch(this.path,this.requestInit);if(!modelConfigRequest.ok)throw new Error(`Request to ${this.path} failed with status code ${modelConfigRequest.status}. Please verify this URL points to the model JSON of the model to load.`);let modelConfig;try{modelConfig=await modelConfigRequest.json()}catch(e){let message=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?message+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":message+=" Please make sure the server is serving valid JSON for this request.",new Error(message)}let modelTopology=modelConfig.modelTopology,weightsManifest=modelConfig.weightsManifest,generatedBy=modelConfig.generatedBy,convertedBy=modelConfig.convertedBy,format=modelConfig.format,signature=modelConfig.signature,userDefinedMetadata=modelConfig.userDefinedMetadata;if(modelTopology==null&&weightsManifest==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let weightSpecs,weightData;weightsManifest!=null&&([weightSpecs,weightData]=await this.loadWeights(weightsManifest));let artifacts={modelTopology,weightSpecs,weightData,generatedBy,convertedBy,format};signature!=null&&(artifacts.signature=signature),userDefinedMetadata!=null&&(artifacts.userDefinedMetadata=userDefinedMetadata);let initializer=modelConfig.modelInitializer;return initializer&&(artifacts.modelInitializer=initializer),artifacts}async loadWeights(weightsManifest){let weightPath=Array.isArray(this.path)?this.path[1]:this.path,[prefix,suffix]=parseUrl(weightPath),pathPrefix=this.weightPathPrefix||prefix,weightSpecs=[];for(let entry of weightsManifest)weightSpecs.push(...entry.weights);let fetchURLs=[],urlPromises=[];for(let weightsGroup of weightsManifest)for(let path of weightsGroup.paths)this.weightUrlConverter!=null?urlPromises.push(this.weightUrlConverter(path)):fetchURLs.push(pathPrefix+path+suffix);this.weightUrlConverter&&fetchURLs.push(...await Promise.all(urlPromises));let buffers=await loadWeightsAsArrayBuffer(fetchURLs,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[weightSpecs,concatenateArrayBuffers(buffers)]}};HTTPRequest.URL_SCHEME_REGEX=/^https?:\/\//;function parseUrl(url){let lastSlash=url.lastIndexOf("/"),lastSearchParam=url.lastIndexOf("?"),prefix=url.substring(0,lastSlash),suffix=lastSearchParam>lastSlash?url.substring(lastSearchParam):"";return[prefix+"/",suffix]}function isHTTPScheme(url){return url.match(HTTPRequest.URL_SCHEME_REGEX)!=null}var httpRouter=(url,loadOptions)=>{if(typeof fetch=="undefined"&&(loadOptions==null||loadOptions.fetchFunc==null))return null;{let isHTTP=!0;if(Array.isArray(url)?isHTTP=url.every(urlItem=>isHTTPScheme(urlItem)):isHTTP=isHTTPScheme(url),isHTTP)return http(url,loadOptions)}return null};IORouterRegistry.registerSaveRouter(httpRouter);IORouterRegistry.registerLoadRouter(httpRouter);function http(path,loadOptions){return new HTTPRequest(path,loadOptions)}function browserHTTPRequest(path,loadOptions){return http(path,loadOptions)}var PassthroughLoader=class{constructor(modelArtifacts){this.modelArtifacts=modelArtifacts}async load(){return this.modelArtifacts}},PassthroughSaver=class{constructor(saveHandler){this.saveHandler=saveHandler}async save(modelArtifacts){return this.saveHandler(modelArtifacts)}};function fromMemory(modelArtifacts,weightSpecs,weightData,trainingConfig){return arguments.length===1?modelArtifacts.modelTopology!=null||modelArtifacts.weightSpecs!=null?new PassthroughLoader(modelArtifacts):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts,weightSpecs,weightData,trainingConfig}))}function withSaveHandler(saveHandler){return new PassthroughSaver(saveHandler)}var math_exports={};__export2(math_exports,{confusionMatrix:()=>confusionMatrix});function matMul_(a,b,transposeA=!1,transposeB=!1){let $a=convertToTensor(a,"a","matMul"),$b=convertToTensor(b,"b","matMul");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b},attrs={transposeA,transposeB};return ENGINE.runKernel(BatchMatMul,inputs,attrs)}var matMul=op({matMul_});function oneHot_(indices,depth,onValue=1,offValue=0){if(depth<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);let inputs={indices:convertToTensor(indices,"indices","oneHot","int32")},attrs={depth,onValue,offValue};return ENGINE.runKernel(OneHot,inputs,attrs)}var oneHot=op({oneHot_});function transpose_(x,perm){let $x=convertToTensor(x,"x","transpose");if(perm==null&&(perm=$x.shape.map((s,i)=>i).reverse()),assert($x.rank===perm.length,()=>`Error in transpose: rank of input ${$x.rank} must match length of perm ${perm}.`),perm.forEach(axis=>{assert(axis>=0&&axis<$x.rank,()=>`All entries in 'perm' must be between 0 and ${$x.rank-1} but got ${perm}`)}),$x.rank<=1)return $x.clone();let inputs={x:$x},attrs={perm};return ENGINE.runKernel(Transpose,inputs,attrs)}var transpose=op({transpose_});function confusionMatrix_(labels,predictions,numClasses){let $labels=convertToTensor(labels,"labels","confusionMatrix"),$predictions=convertToTensor(predictions,"predictions","confusionMatrix");assert(numClasses==null||numClasses>0&&Number.isInteger(numClasses),()=>`If provided, numClasses must be a positive integer, but got ${numClasses}`),assert($labels.rank===1,()=>`Expected the rank of labels to be 1, but got ${$labels.rank}`),assert($predictions.rank===1,()=>`Expected the rank of predictions to be 1, but got ${$predictions.rank}`),assert($labels.shape[0]===$predictions.shape[0],()=>`Mismatch in the number of examples: ${$labels.shape[0]} vs. ${$predictions.shape[0]}. Labels and predictions should have the same number of elements.`),assert(numClasses>0&&Number.isInteger(numClasses),()=>`numClasses is required to be a positive integer, but got ${numClasses}`);let oneHotLabels=oneHot(cast($labels,"int32"),numClasses),oneHotPredictions=oneHot(cast($predictions,"int32"),numClasses),oneHotLabelsT=transpose(oneHotLabels),product=matMul(oneHotLabelsT,oneHotPredictions);return cast(product,"int32")}var confusionMatrix=op({confusionMatrix_}),browser_exports={};__export2(browser_exports,{fromPixels:()=>fromPixels,toPixels:()=>toPixels});function tensor3d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==3&&inferredShape.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}var fromPixels2DContext;function fromPixels_(pixels,numChannels=3){if(numChannels>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(pixels==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let isPixelData=!1,isImageData=!1,isVideo=!1,isImage=!1,isCanvasLike=!1,isImageBitmap=!1;if(pixels.data instanceof Uint8Array)isPixelData=!0;else if(typeof ImageData!="undefined"&&pixels instanceof ImageData)isImageData=!0;else if(typeof HTMLVideoElement!="undefined"&&pixels instanceof HTMLVideoElement)isVideo=!0;else if(typeof HTMLImageElement!="undefined"&&pixels instanceof HTMLImageElement)isImage=!0;else if(pixels.getContext!=null)isCanvasLike=!0;else if(typeof ImageBitmap!="undefined"&&pixels instanceof ImageBitmap)isImageBitmap=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${pixels.constructor.name}`);if(isVideo){let HAVE_CURRENT_DATA_READY_STATE=2;if(isVideo&&pixels.readyState element.")}if(getKernel(FromPixels,ENGINE.backendName)!=null){let inputs={pixels},attrs={numChannels};return ENGINE.runKernel(FromPixels,inputs,attrs)}let[width,height]=isVideo?[pixels.videoWidth,pixels.videoHeight]:[pixels.width,pixels.height],vals;isCanvasLike?vals=pixels.getContext("2d").getImageData(0,0,width,height).data:isImageData||isPixelData?vals=pixels.data:(isImage||isVideo||isImageBitmap)&&(fromPixels2DContext==null&&(fromPixels2DContext=document.createElement("canvas").getContext("2d")),fromPixels2DContext.canvas.width=width,fromPixels2DContext.canvas.height=height,fromPixels2DContext.drawImage(pixels,0,0,width,height),vals=fromPixels2DContext.getImageData(0,0,width,height).data);let values;if(numChannels===4)values=new Int32Array(vals);else{let numPixels=width*height;values=new Int32Array(numPixels*numChannels);for(let i=0;i4||depth===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${depth}`);if($img.dtype!=="float32"&&$img.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${$img.dtype}. Please use float32 or int32 tensors.`);let data2=await $img.data(),multiplier=$img.dtype==="float32"?255:1,bytes=new Uint8ClampedArray(width*height*4);for(let i=0;i1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${value}.`)}else if($img.dtype==="int32"&&(value<0||value>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${value}.`);depth===1?(rgba[0]=value*multiplier,rgba[1]=value*multiplier,rgba[2]=value*multiplier):rgba[d]=value*multiplier}let j=i*4;bytes[j+0]=Math.round(rgba[0]),bytes[j+1]=Math.round(rgba[1]),bytes[j+2]=Math.round(rgba[2]),bytes[j+3]=Math.round(rgba[3])}if(canvas!=null){canvas.width=width,canvas.height=height;let ctx=canvas.getContext("2d"),imageData=new ImageData(bytes,width,height);ctx.putImageData(imageData,0,0)}return $img!==img&&$img.dispose(),bytes}var fromPixels=op({fromPixels_}),gather_nd_util_exports={};__export2(gather_nd_util_exports,{prepareAndValidate:()=>prepareAndValidate});function prepareAndValidate(tensor2,indices){let tensorRank=tensor2.shape.length,indicesRank=indices.shape.length;if(tensorRank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${tensorRank}.`);if(indicesRank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${indicesRank}.`);if(indices.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${indices.dtype}.`);if(indices.shape[indicesRank-1]>tensorRank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${indices.shape[indicesRank-1]} vs. ${tensorRank}`);if(sizeFromShape(tensor2.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${tensor2.shape}.`);let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],nResult=1;for(let i=0;istride/sliceSize),1].slice(0,sliceRank);return[resultShape,nResult,sliceSize,strides]}var scatter_nd_util_exports={};__export2(scatter_nd_util_exports,{calculateShapes:()=>calculateShapes,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape});function validateUpdateShape(shape,indices,updates){let sliceDim=indices.rank>1?indices.shape[indices.rank-1]:1,batchDim=indices.rank>1?indices.rank-1:1,shapeError=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${updates.shape}, indices.shape: ${indices.shape}, shape: ${shape}, sliceDim: ${sliceDim}, and batchDim: ${batchDim}.`;if(updates.rank1?indices.shape[indicesRank-1]:1,totalNd=shape.length,sliceSize=1;for(let i=sliceRank;iassertParamsValid,computeFlatOffset:()=>computeFlatOffset,computeOutShape:()=>computeOutShape,getNormalizedAxes:()=>getNormalizedAxes,isSliceContinous:()=>isSliceContinous,maskToAxes:()=>maskToAxes,parseSliceParams:()=>parseSliceParams,sliceInfo:()=>sliceInfo,startForAxis:()=>startForAxis,startIndicesWithElidedDims:()=>startIndicesWithElidedDims,stopForAxis:()=>stopForAxis,stopIndicesWithElidedDims:()=>stopIndicesWithElidedDims,stridesForAxis:()=>stridesForAxis,stridesWithElidedDims:()=>stridesWithElidedDims});function assertParamsValid(input2,begin,size){let inputRank=input2.shape.length;assert(inputRank===begin.length,()=>`Error in slice${inputRank}D: Length of begin ${begin} must match the rank of the array (${inputRank}).`),assert(inputRank===size.length,()=>`Error in slice${inputRank}D: Length of size ${size} must match the rank of the array (${inputRank}).`);for(let i=0;i`Error in slice${inputRank}D: begin[${i}] + size[${i}] (${begin[i]+size[i]}) would overflow input.shape[${i}] (${input2.shape[i]})`)}function maskToAxes(mask){let axes=[],axis=0;for(;mask>0;)mask&1&&axes.push(axis),mask/=2,axis++;return axes}function computeOutShape(begin,end,strides){let size=[];for(let axis=0;axis0){let fullIndex=ellipsisAxes[0],numElidedAxes=numInterpolatedAxes+1;normalizedBegin=startIndicesWithElidedDims(beginMask,fullIndex,numElidedAxes,begin,inputShape),normalizedEnd=stopIndicesWithElidedDims(endMask,fullIndex,numElidedAxes,end,inputShape),normalizedStrides=stridesWithElidedDims(strides,fullIndex,numElidedAxes,inputShape)}else for(let axis=0;axis-1)newIndices[axis]=0;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalBegin[originalAxis];beginMask&1<-1)newIndices[axis]=Number.MAX_SAFE_INTEGER;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalEnd[originalAxis];endMask&1<0?start=Number.MIN_SAFE_INTEGER:start=Number.MAX_SAFE_INTEGER);let axisSize=inputShape[axis];return start<0&&(start+=axisSize),start=clamp(0,start,axisSize-1),start}function stopForAxis(endMask,stopIndices,strides,inputShape,axis,ellipsisMask){let stop=stopIndices[axis],stride=strides[axis]||1;(endMask&1<0?stop=Number.MAX_SAFE_INTEGER:stop=Number.MIN_SAFE_INTEGER);let axisSize=inputShape[axis];return stop<0&&(stop+=axisSize),stride>0?stop=clamp(0,stop,axisSize):stop=clamp(-1,stop,axisSize-1),stop}function isSliceContinous(shape,begin,size){let firstNonOneAxis=size.length;for(let i=0;i1){firstNonOneAxis=i;break}for(let i=firstNonOneAxis+1;i0||size[i]!==shape[i])return!1;return!0}function computeFlatOffset(begin,strides){let flatOffset=begin.length>0?begin[begin.length-1]:1;for(let i=0;i{assert(d!==-1,()=>"slice() does not support negative begin indexing.")});let size_;return size==null?size_=new Array(xRank).fill(-1):typeof size=="number"?size_=[size,...new Array(xRank-1).fill(-1)]:size.lengthd>=0?d:(assert(d===-1,()=>`Negative size values should be exactly -1 but got ${d} for the slice() size at index ${i}.`),x.shape[i]-begin_[i])),[begin_,size_]}function sliceInfo(xShape,begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask){let $begin=begin.slice(),$end=end.slice(),$strides=strides;strides==null&&($strides=new Array($begin.length));let ellipsisAxes=maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=xShape.length-$begin.length,expandAxes=maskToAxes(newAxisMask),newShape=xShape.slice();expandAxes.forEach(axis=>{$begin[axis]=0,$end[axis]=1,newShape.splice(axis,0,1)});let{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=getNormalizedAxes(newShape,ellipsisAxes,numInterpolatedAxes,$begin,$end,$strides,beginMask,endMask,ellipsisMask);$begin=normalizedBegin,$end=normalizedEnd,$strides=normalizedStrides;let shrinkAxes=maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{$end[axis]=$begin[axis]+1,$strides[axis]=1});let size=computeOutShape($begin,$end,$strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);return{nonStrided:$strides.every(v=>v===1),$begin,$end,$strides,size,newShape,outShape}}var serialization_exports={};__export2(serialization_exports,{Serializable:()=>Serializable,SerializationMap:()=>SerializationMap,registerClass:()=>registerClass});var Serializable=class{getClassName(){return this.constructor.className}static fromConfig(cls,config3){return new cls(config3)}},SerializationMap=class{constructor(){this.classNameMap={}}static getMap(){return SerializationMap.instance==null&&(SerializationMap.instance=new SerializationMap),SerializationMap.instance}static register(cls){SerializationMap.getMap().classNameMap[cls.className]=[cls,cls.fromConfig]}};function registerClass(cls){assert(cls.className!=null,()=>"Class being registered does not have the static className property defined."),assert(typeof cls.className=="string",()=>"className is required to be a string, but got type "+typeof cls.className),assert(cls.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),SerializationMap.register(cls)}var test_util_exports={};__export2(test_util_exports,{TEST_EPSILON_FLOAT16:()=>TEST_EPSILON_FLOAT16,encodeStrings:()=>encodeStrings,expectArrayBuffersEqual:()=>expectArrayBuffersEqual,expectArraysClose:()=>expectArraysClose,expectArraysEqual:()=>expectArraysEqual,expectNumbersClose:()=>expectNumbersClose,expectPromiseToFail:()=>expectPromiseToFail,expectValuesInRange:()=>expectValuesInRange,testEpsilon:()=>testEpsilon});var TEST_EPSILON_FLOAT32=.001,TEST_EPSILON_FLOAT16=.1;function expectArraysClose(actual,expected,epsilon3){return epsilon3==null&&(epsilon3=testEpsilon()),expectArraysPredicate(actual,expected,(a,b)=>areClose(a,b,epsilon3))}function testEpsilon(){return ENGINE.backend.floatPrecision()===32?TEST_EPSILON_FLOAT32:TEST_EPSILON_FLOAT16}function expectArraysPredicate(actual,expected,predicate){let checkClassType=!0;if((isTypedArray(actual)||isTypedArray(expected))&&(checkClassType=!1),isTypedArray(actual)&&isTypedArray(expected)&&(checkClassType=!0),checkClassType){let aType=actual.constructor.name,bType=expected.constructor.name;if(aType!==bType)throw new Error(`Arrays are of different type. Actual: ${aType}. Expected: ${bType}`)}if(Array.isArray(actual)&&Array.isArray(expected)){let actualShape=inferShape(actual),expectedShape=inferShape(expected);if(!arraysEqual(actualShape,expectedShape))throw new Error(`Arrays have different shapes. Actual: [${actualShape}]. Expected: [${expectedShape}]`)}let actualFlat=isTypedArray(actual)?actual:flatten(actual),expectedFlat=isTypedArray(expected)?expected:flatten(expected);if(actualFlat.length!==expectedFlat.length)throw new Error(`Arrays have different lengths actual: ${actualFlat.length} vs expected: ${expectedFlat.length}. +Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`)}let groupIndicesToFetch=groupIndicesToFetchMap.reduce((accumulator,shouldFetch,i)=>(shouldFetch&&accumulator.push(i),accumulator),[]),fetchUrls=[];groupIndicesToFetch.forEach(i=>{manifest[i].paths.forEach(filepath=>{let fetchUrl=filePathPrefix+(filePathPrefix.endsWith("/")?"":"/")+filepath;fetchUrls.push(fetchUrl)})});let buffers=await fetchWeightsFunction(fetchUrls),weightsTensorMap={},bufferIndexOffset=0;return groupIndicesToFetch.forEach(i=>{let numBuffers=manifest[i].paths.length,groupBytes=0;for(let i2=0;i2{let byteBuffer=groupBuffer.slice(weightsEntry.groupOffset,weightsEntry.groupOffset+weightsEntry.sizeBytes),nameToTensorMap=decodeWeights(byteBuffer,[weightsEntry.manifestEntry]);for(let name in nameToTensorMap)weightsTensorMap[name]=nameToTensorMap[name]}),bufferIndexOffset+=numBuffers}),weightsTensorMap}}var OCTET_STREAM_MIME_TYPE="application/octet-stream",JSON_TYPE="application/json",HTTPRequest=class{constructor(path,loadOptions){if(this.DEFAULT_METHOD="POST",loadOptions==null&&(loadOptions={}),this.weightPathPrefix=loadOptions.weightPathPrefix,this.onProgress=loadOptions.onProgress,this.weightUrlConverter=loadOptions.weightUrlConverter,loadOptions.fetchFunc!=null?(assert(typeof loadOptions.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=loadOptions.fetchFunc):this.fetch=env().platform.fetch,assert(path!=null&&path.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(path)&&assert(path.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${path.length}).`),this.path=path,loadOptions.requestInit!=null&&loadOptions.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=loadOptions.requestInit||{}}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let init2=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);init2.body=new FormData;let weightsManifest=[{paths:["./model.weights.bin"],weights:modelArtifacts.weightSpecs}],modelTopologyAndWeightManifest={modelTopology:modelArtifacts.modelTopology,format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy,weightsManifest};modelArtifacts.signature!=null&&(modelTopologyAndWeightManifest.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(modelTopologyAndWeightManifest.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(modelTopologyAndWeightManifest.modelInitializer=modelArtifacts.modelInitializer),init2.body.append("model.json",new Blob([JSON.stringify(modelTopologyAndWeightManifest)],{type:JSON_TYPE}),"model.json"),modelArtifacts.weightData!=null&&init2.body.append("model.weights.bin",new Blob([modelArtifacts.weightData],{type:OCTET_STREAM_MIME_TYPE}),"model.weights.bin");let response=await this.fetch(this.path,init2);if(response.ok)return{modelArtifactsInfo:getModelArtifactsInfoForJSON(modelArtifacts),responses:[response]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${response.status}.`)}async load(){let modelConfigRequest=await this.fetch(this.path,this.requestInit);if(!modelConfigRequest.ok)throw new Error(`Request to ${this.path} failed with status code ${modelConfigRequest.status}. Please verify this URL points to the model JSON of the model to load.`);let modelConfig;try{modelConfig=await modelConfigRequest.json()}catch(e){let message=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?message+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":message+=" Please make sure the server is serving valid JSON for this request.",new Error(message)}let modelTopology=modelConfig.modelTopology,weightsManifest=modelConfig.weightsManifest,generatedBy=modelConfig.generatedBy,convertedBy=modelConfig.convertedBy,format=modelConfig.format,signature=modelConfig.signature,userDefinedMetadata=modelConfig.userDefinedMetadata;if(modelTopology==null&&weightsManifest==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let weightSpecs,weightData;weightsManifest!=null&&([weightSpecs,weightData]=await this.loadWeights(weightsManifest));let artifacts={modelTopology,weightSpecs,weightData,generatedBy,convertedBy,format};signature!=null&&(artifacts.signature=signature),userDefinedMetadata!=null&&(artifacts.userDefinedMetadata=userDefinedMetadata);let initializer=modelConfig.modelInitializer;return initializer&&(artifacts.modelInitializer=initializer),artifacts}async loadWeights(weightsManifest){let weightPath=Array.isArray(this.path)?this.path[1]:this.path,[prefix,suffix]=parseUrl(weightPath),pathPrefix=this.weightPathPrefix||prefix,weightSpecs=[];for(let entry of weightsManifest)weightSpecs.push(...entry.weights);let fetchURLs=[],urlPromises=[];for(let weightsGroup of weightsManifest)for(let path of weightsGroup.paths)this.weightUrlConverter!=null?urlPromises.push(this.weightUrlConverter(path)):fetchURLs.push(pathPrefix+path+suffix);this.weightUrlConverter&&fetchURLs.push(...await Promise.all(urlPromises));let buffers=await loadWeightsAsArrayBuffer(fetchURLs,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[weightSpecs,concatenateArrayBuffers(buffers)]}};HTTPRequest.URL_SCHEME_REGEX=/^https?:\/\//;function parseUrl(url){let lastSlash=url.lastIndexOf("/"),lastSearchParam=url.lastIndexOf("?"),prefix=url.substring(0,lastSlash),suffix=lastSearchParam>lastSlash?url.substring(lastSearchParam):"";return[prefix+"/",suffix]}function isHTTPScheme(url){return url.match(HTTPRequest.URL_SCHEME_REGEX)!=null}var httpRouter=(url,loadOptions)=>{if(typeof fetch=="undefined"&&(loadOptions==null||loadOptions.fetchFunc==null))return null;{let isHTTP=!0;if(Array.isArray(url)?isHTTP=url.every(urlItem=>isHTTPScheme(urlItem)):isHTTP=isHTTPScheme(url),isHTTP)return http(url,loadOptions)}return null};IORouterRegistry.registerSaveRouter(httpRouter);IORouterRegistry.registerLoadRouter(httpRouter);function http(path,loadOptions){return new HTTPRequest(path,loadOptions)}function browserHTTPRequest(path,loadOptions){return http(path,loadOptions)}var PassthroughLoader=class{constructor(modelArtifacts){this.modelArtifacts=modelArtifacts}async load(){return this.modelArtifacts}},PassthroughSaver=class{constructor(saveHandler){this.saveHandler=saveHandler}async save(modelArtifacts){return this.saveHandler(modelArtifacts)}};function fromMemory(modelArtifacts,weightSpecs,weightData,trainingConfig){return arguments.length===1?modelArtifacts.modelTopology!=null||modelArtifacts.weightSpecs!=null?new PassthroughLoader(modelArtifacts):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts,weightSpecs,weightData,trainingConfig}))}function withSaveHandler(saveHandler){return new PassthroughSaver(saveHandler)}var math_exports={};__export2(math_exports,{confusionMatrix:()=>confusionMatrix});function matMul_(a,b,transposeA=!1,transposeB=!1){let $a=convertToTensor(a,"a","matMul"),$b=convertToTensor(b,"b","matMul");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b},attrs={transposeA,transposeB};return ENGINE.runKernel(BatchMatMul,inputs,attrs)}var matMul=op({matMul_});function oneHot_(indices,depth,onValue=1,offValue=0){if(depth<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);let inputs={indices:convertToTensor(indices,"indices","oneHot","int32")},attrs={depth,onValue,offValue};return ENGINE.runKernel(OneHot,inputs,attrs)}var oneHot=op({oneHot_});function transpose_(x,perm){let $x=convertToTensor(x,"x","transpose");if(perm==null&&(perm=$x.shape.map((s,i)=>i).reverse()),assert($x.rank===perm.length,()=>`Error in transpose: rank of input ${$x.rank} must match length of perm ${perm}.`),perm.forEach(axis=>{assert(axis>=0&&axis<$x.rank,()=>`All entries in 'perm' must be between 0 and ${$x.rank-1} but got ${perm}`)}),$x.rank<=1)return $x.clone();let inputs={x:$x},attrs={perm};return ENGINE.runKernel(Transpose,inputs,attrs)}var transpose=op({transpose_});function confusionMatrix_(labels,predictions,numClasses){let $labels=convertToTensor(labels,"labels","confusionMatrix"),$predictions=convertToTensor(predictions,"predictions","confusionMatrix");assert(numClasses==null||numClasses>0&&Number.isInteger(numClasses),()=>`If provided, numClasses must be a positive integer, but got ${numClasses}`),assert($labels.rank===1,()=>`Expected the rank of labels to be 1, but got ${$labels.rank}`),assert($predictions.rank===1,()=>`Expected the rank of predictions to be 1, but got ${$predictions.rank}`),assert($labels.shape[0]===$predictions.shape[0],()=>`Mismatch in the number of examples: ${$labels.shape[0]} vs. ${$predictions.shape[0]}. Labels and predictions should have the same number of elements.`),assert(numClasses>0&&Number.isInteger(numClasses),()=>`numClasses is required to be a positive integer, but got ${numClasses}`);let oneHotLabels=oneHot(cast($labels,"int32"),numClasses),oneHotPredictions=oneHot(cast($predictions,"int32"),numClasses),oneHotLabelsT=transpose(oneHotLabels),product=matMul(oneHotLabelsT,oneHotPredictions);return cast(product,"int32")}var confusionMatrix=op({confusionMatrix_}),browser_exports={};__export2(browser_exports,{fromPixels:()=>fromPixels,toPixels:()=>toPixels});function tensor3d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==3&&inferredShape.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}var fromPixels2DContext;function fromPixels_(pixels,numChannels=3){if(numChannels>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(pixels==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let isPixelData=!1,isImageData=!1,isVideo=!1,isImage=!1,isCanvasLike=!1,isImageBitmap=!1;if(pixels.data instanceof Uint8Array)isPixelData=!0;else if(typeof ImageData!="undefined"&&pixels instanceof ImageData)isImageData=!0;else if(typeof HTMLVideoElement!="undefined"&&pixels instanceof HTMLVideoElement)isVideo=!0;else if(typeof HTMLImageElement!="undefined"&&pixels instanceof HTMLImageElement)isImage=!0;else if(pixels.getContext!=null)isCanvasLike=!0;else if(typeof ImageBitmap!="undefined"&&pixels instanceof ImageBitmap)isImageBitmap=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${pixels.constructor.name}`);if(isVideo){let HAVE_CURRENT_DATA_READY_STATE=2;if(isVideo&&pixels.readyState element.")}if(getKernel(FromPixels,ENGINE.backendName)!=null){let inputs={pixels},attrs={numChannels};return ENGINE.runKernel(FromPixels,inputs,attrs)}let[width,height]=isVideo?[pixels.videoWidth,pixels.videoHeight]:[pixels.width,pixels.height],vals;isCanvasLike?vals=pixels.getContext("2d").getImageData(0,0,width,height).data:isImageData||isPixelData?vals=pixels.data:(isImage||isVideo||isImageBitmap)&&(fromPixels2DContext==null&&(fromPixels2DContext=document.createElement("canvas").getContext("2d")),fromPixels2DContext.canvas.width=width,fromPixels2DContext.canvas.height=height,fromPixels2DContext.drawImage(pixels,0,0,width,height),vals=fromPixels2DContext.getImageData(0,0,width,height).data);let values;if(numChannels===4)values=new Int32Array(vals);else{let numPixels=width*height;values=new Int32Array(numPixels*numChannels);for(let i=0;i4||depth===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${depth}`);if($img.dtype!=="float32"&&$img.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${$img.dtype}. Please use float32 or int32 tensors.`);let data2=await $img.data(),multiplier=$img.dtype==="float32"?255:1,bytes=new Uint8ClampedArray(width*height*4);for(let i=0;i1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${value}.`)}else if($img.dtype==="int32"&&(value<0||value>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${value}.`);depth===1?(rgba[0]=value*multiplier,rgba[1]=value*multiplier,rgba[2]=value*multiplier):rgba[d]=value*multiplier}let j=i*4;bytes[j+0]=Math.round(rgba[0]),bytes[j+1]=Math.round(rgba[1]),bytes[j+2]=Math.round(rgba[2]),bytes[j+3]=Math.round(rgba[3])}if(canvas!=null){canvas.width=width,canvas.height=height;let ctx=canvas.getContext("2d"),imageData=new ImageData(bytes,width,height);ctx.putImageData(imageData,0,0)}return $img!==img&&$img.dispose(),bytes}var fromPixels=op({fromPixels_}),gather_nd_util_exports={};__export2(gather_nd_util_exports,{prepareAndValidate:()=>prepareAndValidate});function prepareAndValidate(tensor2,indices){let tensorRank=tensor2.shape.length,indicesRank=indices.shape.length;if(tensorRank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${tensorRank}.`);if(indicesRank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${indicesRank}.`);if(indices.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${indices.dtype}.`);if(indices.shape[indicesRank-1]>tensorRank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${indices.shape[indicesRank-1]} vs. ${tensorRank}`);if(sizeFromShape(tensor2.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${tensor2.shape}.`);let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],nResult=1;for(let i=0;istride/sliceSize),1].slice(0,sliceRank);return[resultShape,nResult,sliceSize,strides]}var scatter_nd_util_exports={};__export2(scatter_nd_util_exports,{calculateShapes:()=>calculateShapes,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape});function validateUpdateShape(shape,indices,updates){let sliceDim=indices.rank>1?indices.shape[indices.rank-1]:1,batchDim=indices.rank>1?indices.rank-1:1,shapeError=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${updates.shape}, indices.shape: ${indices.shape}, shape: ${shape}, sliceDim: ${sliceDim}, and batchDim: ${batchDim}.`;if(updates.rank1?indices.shape[indicesRank-1]:1,totalNd=shape.length,sliceSize=1;for(let i=sliceRank;iassertParamsValid,computeFlatOffset:()=>computeFlatOffset,computeOutShape:()=>computeOutShape,getNormalizedAxes:()=>getNormalizedAxes,isSliceContinous:()=>isSliceContinous,maskToAxes:()=>maskToAxes,parseSliceParams:()=>parseSliceParams,sliceInfo:()=>sliceInfo,startForAxis:()=>startForAxis,startIndicesWithElidedDims:()=>startIndicesWithElidedDims,stopForAxis:()=>stopForAxis,stopIndicesWithElidedDims:()=>stopIndicesWithElidedDims,stridesForAxis:()=>stridesForAxis,stridesWithElidedDims:()=>stridesWithElidedDims});function assertParamsValid(input2,begin,size){let inputRank=input2.shape.length;assert(inputRank===begin.length,()=>`Error in slice${inputRank}D: Length of begin ${begin} must match the rank of the array (${inputRank}).`),assert(inputRank===size.length,()=>`Error in slice${inputRank}D: Length of size ${size} must match the rank of the array (${inputRank}).`);for(let i=0;i`Error in slice${inputRank}D: begin[${i}] + size[${i}] (${begin[i]+size[i]}) would overflow input.shape[${i}] (${input2.shape[i]})`)}function maskToAxes(mask){let axes=[],axis=0;for(;mask>0;)mask&1&&axes.push(axis),mask/=2,axis++;return axes}function computeOutShape(begin,end,strides){let size=[];for(let axis=0;axis0){let fullIndex=ellipsisAxes[0],numElidedAxes=numInterpolatedAxes+1;normalizedBegin=startIndicesWithElidedDims(beginMask,fullIndex,numElidedAxes,begin,inputShape),normalizedEnd=stopIndicesWithElidedDims(endMask,fullIndex,numElidedAxes,end,inputShape),normalizedStrides=stridesWithElidedDims(strides,fullIndex,numElidedAxes,inputShape)}else for(let axis=0;axis-1)newIndices[axis]=0;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalBegin[originalAxis];beginMask&1<-1)newIndices[axis]=Number.MAX_SAFE_INTEGER;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalEnd[originalAxis];endMask&1<0?start=Number.MIN_SAFE_INTEGER:start=Number.MAX_SAFE_INTEGER);let axisSize=inputShape[axis];return start<0&&(start+=axisSize),start=clamp(0,start,axisSize-1),start}function stopForAxis(endMask,stopIndices,strides,inputShape,axis,ellipsisMask){let stop=stopIndices[axis],stride=strides[axis]||1;(endMask&1<0?stop=Number.MAX_SAFE_INTEGER:stop=Number.MIN_SAFE_INTEGER);let axisSize=inputShape[axis];return stop<0&&(stop+=axisSize),stride>0?stop=clamp(0,stop,axisSize):stop=clamp(-1,stop,axisSize-1),stop}function isSliceContinous(shape,begin,size){let firstNonOneAxis=size.length;for(let i=0;i1){firstNonOneAxis=i;break}for(let i=firstNonOneAxis+1;i0||size[i]!==shape[i])return!1;return!0}function computeFlatOffset(begin,strides){let flatOffset=begin.length>0?begin[begin.length-1]:1;for(let i=0;i{assert(d!==-1,()=>"slice() does not support negative begin indexing.")});let size_;return size==null?size_=new Array(xRank).fill(-1):typeof size=="number"?size_=[size,...new Array(xRank-1).fill(-1)]:size.lengthd>=0?d:(assert(d===-1,()=>`Negative size values should be exactly -1 but got ${d} for the slice() size at index ${i}.`),x.shape[i]-begin_[i])),[begin_,size_]}function sliceInfo(xShape,begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask){let $begin=begin.slice(),$end=end.slice(),$strides=strides;strides==null&&($strides=new Array($begin.length));let ellipsisAxes=maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=xShape.length-$begin.length,expandAxes=maskToAxes(newAxisMask),newShape=xShape.slice();expandAxes.forEach(axis=>{$begin[axis]=0,$end[axis]=1,newShape.splice(axis,0,1)});let{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=getNormalizedAxes(newShape,ellipsisAxes,numInterpolatedAxes,$begin,$end,$strides,beginMask,endMask,ellipsisMask);$begin=normalizedBegin,$end=normalizedEnd,$strides=normalizedStrides;let shrinkAxes=maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{$end[axis]=$begin[axis]+1,$strides[axis]=1});let size=computeOutShape($begin,$end,$strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);return{nonStrided:$strides.every(v=>v===1),$begin,$end,$strides,size,newShape,outShape}}var serialization_exports={};__export2(serialization_exports,{Serializable:()=>Serializable,SerializationMap:()=>SerializationMap,registerClass:()=>registerClass});var Serializable=class{getClassName(){return this.constructor.className}static fromConfig(cls,config2){return new cls(config2)}},SerializationMap=class{constructor(){this.classNameMap={}}static getMap(){return SerializationMap.instance==null&&(SerializationMap.instance=new SerializationMap),SerializationMap.instance}static register(cls){SerializationMap.getMap().classNameMap[cls.className]=[cls,cls.fromConfig]}};function registerClass(cls){assert(cls.className!=null,()=>"Class being registered does not have the static className property defined."),assert(typeof cls.className=="string",()=>"className is required to be a string, but got type "+typeof cls.className),assert(cls.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),SerializationMap.register(cls)}var test_util_exports={};__export2(test_util_exports,{TEST_EPSILON_FLOAT16:()=>TEST_EPSILON_FLOAT16,encodeStrings:()=>encodeStrings,expectArrayBuffersEqual:()=>expectArrayBuffersEqual,expectArraysClose:()=>expectArraysClose,expectArraysEqual:()=>expectArraysEqual,expectNumbersClose:()=>expectNumbersClose,expectPromiseToFail:()=>expectPromiseToFail,expectValuesInRange:()=>expectValuesInRange,testEpsilon:()=>testEpsilon});var TEST_EPSILON_FLOAT32=.001,TEST_EPSILON_FLOAT16=.1;function expectArraysClose(actual,expected,epsilon3){return epsilon3==null&&(epsilon3=testEpsilon()),expectArraysPredicate(actual,expected,(a,b)=>areClose(a,b,epsilon3))}function testEpsilon(){return ENGINE.backend.floatPrecision()===32?TEST_EPSILON_FLOAT32:TEST_EPSILON_FLOAT16}function expectArraysPredicate(actual,expected,predicate){let checkClassType=!0;if((isTypedArray(actual)||isTypedArray(expected))&&(checkClassType=!1),isTypedArray(actual)&&isTypedArray(expected)&&(checkClassType=!0),checkClassType){let aType=actual.constructor.name,bType=expected.constructor.name;if(aType!==bType)throw new Error(`Arrays are of different type. Actual: ${aType}. Expected: ${bType}`)}if(Array.isArray(actual)&&Array.isArray(expected)){let actualShape=inferShape(actual),expectedShape=inferShape(expected);if(!arraysEqual(actualShape,expectedShape))throw new Error(`Arrays have different shapes. Actual: [${actualShape}]. Expected: [${expectedShape}]`)}let actualFlat=isTypedArray(actual)?actual:flatten(actual),expectedFlat=isTypedArray(expected)?expected:flatten(expected);if(actualFlat.length!==expectedFlat.length)throw new Error(`Arrays have different lengths actual: ${actualFlat.length} vs expected: ${expectedFlat.length}. Actual: ${actualFlat}. Expected: ${expectedFlat}.`);for(let i=0;i`Dimension size must be evenly divisible by ${blockSize*blockSize} but is ${inputDepth} for depthToSpace with input shape ${$x.shape}`);let inputs={x:$x},attrs={blockSize,dataFormat};return ENGINE.runKernel(DepthToSpace,inputs,attrs)}var depthToSpace=op({depthToSpace_});function depthwiseConv2d_(x,filter,strides,pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode){let $x=convertToTensor(x,"x","depthwiseConv2d"),$filter=convertToTensor(filter,"filter","depthwiseConv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${$filter.rank}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${x4D.shape[3]}) must match the inChannels dimension in filter ${$filter.shape[2]}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D,filter:$filter},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode},res=ENGINE.runKernel(DepthwiseConv2dNative,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var depthwiseConv2d=op({depthwiseConv2d_});function diag_(x){let inputs={x:convertToTensor(x,"x","diag")};return ENGINE.runKernel(Diag,inputs)}var diag=op({diag_});function dilation2d_(x,filter,strides,pad3,dilations=[1,1],dataFormat="NHWC"){let $x=convertToTensor(x,"x","dilation2d"),$filter=convertToTensor(filter,"filter","dilation2d");assert($x.rank===3||$x.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${$x.rank}.`),assert($filter.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${$filter.rank}.`),assert(dataFormat==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${dataFormat}`);let x4D=$x,reshapedTo4D=!1;$x.rank===3&&(x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]]),reshapedTo4D=!0);let inputs={x:x4D,filter:$filter},attrs={strides,pad:pad3,dilations},res=ENGINE.runKernel(Dilation2D,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var dilation2d=op({dilation2d_});function getBroadcastDims(inShape,outShape){let inRank=inShape.length,dims=[];for(let i=0;i1&&a===1&&dims.unshift(dim)}return dims}function getReductionAxes(inShape,outShape){let result=[];for(let i=0;i1)&&result.unshift(outAxis)}return result}function assertAndGetBroadcastShape(shapeA,shapeB){let result=[],l=Math.max(shapeA.length,shapeB.length);for(let i=0;i"The first dimension of `a` must match the size of `condition`."),$condition.rank!==1&&assertShapesMatch($condition.shape,$broadcastedB.shape,"Error in where: ");let inputs={condition:$condition,t:$broadcastedA,e:$broadcastedB};return ENGINE.runKernel(Select,inputs)}var where=op({where_});function zerosLike_(x){let inputs={x:convertToTensor(x,"x","zerosLike")};return ENGINE.runKernel(ZerosLike,inputs)}var zerosLike=op({zerosLike_});function divNoNan_(a,b){let $a=convertToTensor(a,"a","div"),$b=convertToTensor(b,"b","div");[$a,$b]=makeTypesMatch($a,$b);let divResult=div($a,$b),zeros4=zerosLike(divResult),bEqualsZero=equal($b,zeros4);return where(bEqualsZero,zeros4,divResult)}var divNoNan=op({divNoNan_});function dot_(t1,t2){let $t1=convertToTensor(t1,"t1","dot"),$t2=convertToTensor(t2,"t2","dot");assert(($t1.rank===1||$t1.rank===2)&&($t2.rank===1||$t2.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${$t1.rank} and ${$t2.rank}.`);let t1Inner=$t1.rank===1?$t1.size:$t1.shape[1],t2Inner=$t2.rank===1?$t2.size:$t2.shape[0];if(assert(t1Inner===t2Inner,()=>`Error in dot: inner dimensions of inputs must match, but got ${t1Inner} and ${t2Inner}.`),$t1.rank===1&&$t2.rank===1){let t12D=reshape($t1,[1,-1]),t22D=reshape($t2,[-1,1]),t1t2=matMul(t12D,t22D);return reshape(t1t2,[])}else if($t1.rank===1&&$t2.rank===2){let t12D=reshape($t1,[1,-1]),t22D=reshape($t2,[$t2.shape[0],$t2.shape[1]]),t1t2=matMul(t12D,t22D);return reshape(t1t2,[t1t2.size])}else if($t1.rank===2&&$t2.rank===1){let t22D=reshape($t2,[-1,1]),t1t2=matMul($t1,t22D);return reshape(t1t2,[t1t2.size])}else{let t22D=reshape($t2,[$t2.shape[0],$t2.shape[1]]);return matMul($t1,t22D)}}var dot=op({dot_});function elu_(x){let inputs={x:convertToTensor(x,"x","elu")};return ENGINE.runKernel(Elu,inputs)}var elu=op({elu_});function erf_(x){let $x=convertToTensor(x,"x","erf");assert($x.dtype==="int32"||$x.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),$x.dtype==="int32"&&($x=cast($x,"float32"));let inputs={x:$x};return ENGINE.runKernel(Erf,inputs)}var erf=op({erf_});function exp_(x){let inputs={x:convertToTensor(x,"x","exp")};return ENGINE.runKernel(Exp,inputs)}var exp=op({exp_});function expandDims_(x,axis=0){let $x=convertToTensor(x,"x","expandDims","string_or_numeric");assert(axis<=$x.rank,()=>"Axis must be <= rank of the tensor");let inputs={input:$x},attrs={dim:axis};return ENGINE.runKernel(ExpandDims,inputs,attrs)}var expandDims=op({expandDims_});function expm1_(x){let inputs={x:convertToTensor(x,"x","expm1")};return ENGINE.runKernel(Expm1,inputs)}var expm1=op({expm1_});function tile_(x,reps){let $x=convertToTensor(x,"x","tile","string_or_numeric");assert($x.rank===reps.length,()=>`Error in transpose: rank of input ${$x.rank} must match length of reps ${reps}.`);let inputs={x:$x},attrs={reps};return ENGINE.runKernel(Tile,inputs,attrs)}var tile=op({tile_});function eye_(numRows,numColumns,batchShape,dtype="float32"){numColumns==null&&(numColumns=numRows);let buff=buffer([numRows,numColumns],dtype),n=numRows<=numColumns?numRows:numColumns;for(let i=0;i`Error in localResponseNormalization: x must be rank 3 or 4 but got rank ${$x.rank}.`),assert(isInt(depthRadius),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${depthRadius}.`);let x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]]));let inputs={x:x4D},attrs={depthRadius,bias,alpha,beta},res=ENGINE.runKernel(LRN,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var localResponseNormalization=op({localResponseNormalization_});function log_(x){let inputs={x:convertToTensor(x,"x","log")};return ENGINE.runKernel(Log,inputs)}var log2=op({log_});function log1p_(x){let inputs={x:convertToTensor(x,"x","log1p")};return ENGINE.runKernel(Log1p,inputs)}var log1p=op({log1p_});function grad(f){return assert(isFunction(f),()=>"The f passed in grad(f) must be a function"),(x,dy)=>{let $x=convertToTensor(x,"x","tf.grad","string_or_numeric"),$dy=dy!=null?convertToTensor(dy,"dy","tf.grad"):null;return ENGINE.tidy(()=>{let{value,grads:grads2}=ENGINE.gradients(()=>f($x),[$x],$dy);return $dy!=null&&assertShapesMatch(value.shape,$dy.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),checkGrads(grads2),grads2[0]})}}function grads(f){return assert(isFunction(f),()=>"The f passed in grads(f) must be a function"),(args,dy)=>{assert(Array.isArray(args),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let $args=convertToTensorArray(args,"args","tf.grads","string_or_numeric"),$dy=dy!=null?convertToTensor(dy,"dy","tf.grads"):null;return ENGINE.tidy(()=>{let{value,grads:grads2}=ENGINE.gradients(()=>f(...$args),$args,$dy);return $dy!=null&&assertShapesMatch(value.shape,$dy.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),checkGrads(grads2),grads2})}}function valueAndGrad(f){return assert(isFunction(f),()=>"The f passed in valueAndGrad(f) must be a function"),(x,dy)=>{assert(x instanceof Tensor,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),assert(dy==null||dy instanceof Tensor,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:grads2,value}=ENGINE.gradients(()=>f(x),[x],dy);return checkGrads(grads2),{grad:grads2[0],value}}}function valueAndGrads(f){return assert(isFunction(f),()=>"The f passed in valueAndGrads(f) must be a function"),(args,dy)=>{assert(Array.isArray(args)&&args.every(arg=>arg instanceof Tensor),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),assert(dy==null||dy instanceof Tensor,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let res=ENGINE.gradients(()=>f(...args),args,dy);return dy!=null&&assertShapesMatch(res.value.shape,dy.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),checkGrads(res.grads),res}}function variableGrads(f,varList){assert(isFunction(f),()=>"The f passed in variableGrads(f) must be a function"),assert(varList==null||Array.isArray(varList)&&varList.every(v=>v instanceof Variable),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let specifiedVarList=varList!=null;if(!specifiedVarList){varList=[];for(let varName in ENGINE.registeredVariables)varList.push(ENGINE.registeredVariables[varName])}let specifiedNonTrainable=specifiedVarList?varList.filter(variable2=>!variable2.trainable):null,originalVarCount=varList.length;varList=varList.filter(variable2=>variable2.trainable),assert(varList.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${originalVarCount} variables is trainable.`);let allowNoGradients=!0,{value,grads:grads2}=ENGINE.gradients(f,varList,null,allowNoGradients);assert(grads2.some(g=>g!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),assert(value.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${value.rank} tensor`);let namedGrads={};return varList.forEach((v,i)=>{grads2[i]!=null&&(namedGrads[v.name]=grads2[i])}),specifiedNonTrainable!=null&&specifiedNonTrainable.forEach(v=>namedGrads[v.name]=null),{value,grads:namedGrads}}function customGrad(f){return ENGINE.customGrad(f)}function checkGrads(grads2){if(grads2.filter(g=>g==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function neg_(x){let inputs={x:convertToTensor(x,"x","neg")};return ENGINE.runKernel(Neg,inputs)}var neg=op({neg_});function softplus_(x){let inputs={x:convertToTensor(x,"x","softplus")};return ENGINE.runKernel(Softplus,inputs)}var softplus=op({softplus_});function logSigmoid_(x){let $x=convertToTensor(x,"x","logSigmoid");return customGrad(x2=>({value:neg(softplus(neg(x2))),gradFunc:dy=>mul(dy,sigmoid(neg(x2)))}))($x)}var logSigmoid=op({logSigmoid_});function max_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","max")},attrs={reductionIndices:axis,keepDims};return ENGINE.runKernel(Max,inputs,attrs)}var max=op({max_});function sub_(a,b){let $a=convertToTensor(a,"a","sub"),$b=convertToTensor(b,"b","sub");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Sub,inputs)}var sub=op({sub_});function sum_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","sum");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Sum,inputs,attrs)}var sum2=op({sum_});function logSoftmax_(logits,axis=-1){let $logits=convertToTensor(logits,"logits","logSoftmax");if(axis===-1&&(axis=$logits.rank-1),axis!==$logits.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and axis was ${axis}`);return customGrad((logits2,save)=>{let keepDims=!0,xMax=max(logits2,axis,!0),shifted=sub(logits2,xMax),value=sub(cast(shifted,"float32"),log2(sum2(exp(shifted),axis,keepDims)));return save([value]),{value,gradFunc:(dy,saved)=>{let[value2]=saved,keepDims2=!0,softmax6=exp(value2);return sub(dy,mul(sum2(dy,axis,keepDims2),softmax6))}}})($logits)}var logSoftmax=op({logSoftmax_});function axesAreInnerMostDims(axes,rank){for(let i=0;iaShape[dim]);return[outShape,reduceShape]}function expandShapeToKeepDim(shape,axes){let reduceSubShape=axes.map(x=>1);return combineLocations(shape,reduceSubShape,axes)}function assertAxesAreInnerMostDims(msg,axes,rank){assert(axesAreInnerMostDims(axes,rank),()=>`${msg} supports only inner-most axes for now. Got axes ${axes} and rank-${rank} input.`)}function getAxesPermutation(axes,rank){if(axesAreInnerMostDims(axes,rank))return null;let result=[];for(let i=0;iresult.push(axis)),result}function getUndoAxesPermutation(axes){return axes.map((axis,i)=>[i,axis]).sort((a,b)=>a[1]-b[1]).map(x=>x[0])}function getInnerMostAxes(numAxes,rank){let res=[];for(let i=rank-numAxes;i`Error in maxPool: input must be rank 4 but got rank ${x4D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D},attrs={filterSize,strides,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(MaxPool,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var maxPool=op({maxPool_});function maxPool3d_(x,filterSize=[1,1,1],strides,pad3,dimRoundingMode,dataFormat="NDHWC",dilations){dilations==null?dilations=[1,1,1]:deprecationWarn("dilations is deprecated, this field will be gone in v3.0.0.");let $x=convertToTensor(x,"x","maxPool3d"),x5D=$x,reshapedTo5D=!1;$x.rank===4&&(reshapedTo5D=!0,x5D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2],$x.shape[3]])),assert(x5D.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${x5D.rank}.`),assert(dataFormat==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${dataFormat}`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x5D},attrs={filterSize,strides,pad:pad3,dimRoundingMode,dataFormat,dilations},res=ENGINE.runKernel(MaxPool3D,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var maxPool3d=op({maxPool3d_});function maxPoolWithArgmax_(x,filterSize,strides,pad3,includeBatchInIndex=!1){let inputs={x:convertToTensor(x,"x","maxPoolWithArgmax")},attrs={filterSize,strides,pad:pad3,includeBatchInIndex},result=ENGINE.runKernel(MaxPoolWithArgmax,inputs,attrs);return{result:result[0],indexes:result[1]}}var maxPoolWithArgmax=op({maxPoolWithArgmax_});function maximum_(a,b){let $a=convertToTensor(a,"a","maximum"),$b=convertToTensor(b,"b","maximum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Maximum,inputs)}var maximum=op({maximum_});function mean_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","mean")},attrs={axis,keepDims};return ENGINE.runKernel(Mean,inputs,attrs)}var mean=op({mean_});function min_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","min")},attrs={axis,keepDims};return ENGINE.runKernel(Min,inputs,attrs)}var min=op({min_});function minimum_(a,b){let $a=convertToTensor(a,"a","minimum"),$b=convertToTensor(b,"b","minimum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Minimum,inputs)}var minimum=op({minimum_});function mirrorPad_(x,paddings,mode){assert(mode==="reflect"||mode==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${mode}.`);let $x=convertToTensor(x,"x","mirrorPad");if($x.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");assert(paddings.length===$x.rank,()=>`Padding doesn't match input. Must be ${$x.rank}. Got ${paddings.length}.`);let shapeOffset=mode==="reflect"?1:0;for(let i=0;i<$x.rank;i++)assert(paddings[i].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),assert(paddings[i][0]>=0&&paddings[i][0]<=$x.shape[i]-shapeOffset&&paddings[i][1]>=0&&paddings[i][1]<=$x.shape[i]-shapeOffset,()=>`Padding in dimension ${i} cannot be greater than or equal to ${$x.shape[i]-shapeOffset} or less than 0 for input of shape ${$x.shape}`);let attrs={paddings,mode},inputs={x:$x};return ENGINE.runKernel(MirrorPad,inputs,attrs)}var mirrorPad=op({mirrorPad_});function mod_(a,b){let $a=convertToTensor(a,"a","mod"),$b=convertToTensor(b,"b","mod");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Mod,inputs)}var mod=op({mod_});function square_(x){let $x=convertToTensor(x,"x","square"),attrs={};return ENGINE.runKernel("Square",{x:$x},attrs)}var square=op({square_});function moments_(x,axis=null,keepDims=!1){x=convertToTensor(x,"x","moments");let axes=parseAxisParam(axis,x.shape),xMean=mean(x,axes,keepDims),keepDimsShape=xMean.shape;keepDims||(keepDimsShape=expandShapeToKeepDim(xMean.shape,axes));let devSquared=square(sub(cast(x,"float32"),reshape(xMean,keepDimsShape))),variance=mean(devSquared,axes,keepDims);return{mean:xMean,variance}}var moments=op({moments_});function multiRNNCell_(lstmCells,data2,c,h){let $data=convertToTensor(data2,"data","multiRNNCell"),$c=convertToTensorArray(c,"c","multiRNNCell"),$h=convertToTensorArray(h,"h","multiRNNCell"),input2=$data,newStates=[];for(let i=0;i2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${origRank}`);seed=seed||Math.random();let inputs={logits:origRank===1?reshape($logits,[1,-1]):$logits},attrs={numSamples,seed,normalized},res=ENGINE.runKernel(Multinomial,inputs,attrs);return origRank===1?reshape(res,[res.size]):res}var multinomial=op({multinomial_});function notEqual_(a,b){let $a=convertToTensor(a,"a","notEqual"),$b=convertToTensor(b,"b","notEqual");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(NotEqual,inputs)}var notEqual=op({notEqual_});function zeros(shape,dtype="float32"){if(dtype==="complex64"){let real4=zeros(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeZerosTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function ones2(shape,dtype="float32"){if(dtype==="complex64"){let real4=ones2(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeOnesTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function onesLike_(x){let inputs={x:convertToTensor(x,"x","onesLike")};return ENGINE.runKernel(OnesLike,inputs)}var onesLike=op({onesLike_});function outerProduct_(v1,v2){let $v1=convertToTensor(v1,"v1","outerProduct"),$v2=convertToTensor(v2,"v2","outerProduct");assert($v1.rank===1&&$v2.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${$v1.rank} and ${$v2.rank}.`);let v12D=reshape($v1,[-1,1]),v22D=reshape($v2,[1,-1]);return matMul(v12D,v22D)}var outerProduct=op({outerProduct_});function pad_(x,paddings,constantValue=0){let $x=convertToTensor(x,"x","pad");if($x.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let attrs={paddings,constantValue},inputs={x:$x};return ENGINE.runKernel(PadV2,inputs,attrs)}var pad=op({pad_});function pad1d_(x,paddings,constantValue=0){return assert(paddings.length===2,()=>"Invalid number of paddings. Must be length of 2."),pad(x,[paddings],constantValue)}var pad1d=op({pad1d_});function pad2d_(x,paddings,constantValue=0){return assert(paddings.length===2&&paddings[0].length===2&&paddings[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad2d=op({pad2d_});function pad3d_(x,paddings,constantValue=0){return assert(paddings.length===3&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad3d=op({pad3d_});function pad4d_(x,paddings,constantValue=0){return assert(paddings.length===4&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2&&paddings[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad4d=op({pad4d_});function spaceToBatchND_(x,blockShape,paddings){let $x=convertToTensor(x,"x","spaceToBatchND");assert($x.rank>=1+blockShape.length,()=>`input rank ${$x.rank} should be > than [blockShape] ${blockShape.length}`),assert(paddings.length===blockShape.length,()=>`paddings.shape[0] ${paddings.length} must be equal to [blockShape] ${blockShape.length}`),assert($x.shape.reduce((a,b,i)=>i>0&&i<=blockShape.length?a&&(b+paddings[i-1][0]+paddings[i-1][1])%blockShape[i-1]==0:a,!0),()=>`input spatial dimensions ${$x.shape.slice(1)} with paddings ${paddings.toString()} must be divisible by blockShapes ${blockShape.toString()}`);let inputs={x:$x},attrs={blockShape,paddings};return ENGINE.runKernel(SpaceToBatchND,inputs,attrs)}var spaceToBatchND=op({spaceToBatchND_});function pool_(input2,windowShape,poolingType,pad3,dilations,strides){dilations==null&&(dilations=[1,1]),strides==null&&(strides=1),pad3===0&&(pad3="valid");let $x=convertToTensor(input2,"x","maxPool"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`);let convInfo=computePool2DInfo(x4D.shape,windowShape,strides,dilations,pad3),dilation=[convInfo.dilationHeight,convInfo.dilationWidth],basePadding;pad3==="same"?basePadding=withSpaceToBatchBasePaddings([convInfo.filterHeight,convInfo.filterWidth],dilation):basePadding=[[0,0],[0,0]];let isDilationOne=dilation[0]===1&&dilation[1]===1,[adjustedPadding,adjustedCrops]=requiredSpaceToBatchPaddings([convInfo.inHeight,convInfo.inWidth],dilation,basePadding),convertedPad=isDilationOne?pad3:"valid",convertedX=isDilationOne?x4D:spaceToBatchND(x4D,dilation,adjustedPadding),y=(poolingType==="avg"?()=>avgPool(convertedX,windowShape,strides,convertedPad):()=>maxPool(convertedX,windowShape,strides,convertedPad))(),res=isDilationOne?y:batchToSpaceND(y,dilation,adjustedCrops);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}function requiredSpaceToBatchPaddings(inputShape,blockShape,basePadding){let padStart=basePadding.map(b=>b[0]),origPadEnd=basePadding.map(b=>b[1]),fullInputShape=inputShape.concat(padStart,origPadEnd),padEndExtra=blockShape.map((b,i)=>(b-fullInputShape[i]%b)%b),padEnd=origPadEnd.map((s,i)=>s+padEndExtra[i]),paddings=blockShape.map((_,i)=>[padStart[i],padEnd[i]]),crops=blockShape.map((_,i)=>[0,padEndExtra[i]]);return[paddings,crops]}function withSpaceToBatchBasePaddings(filterShape,dilation){let padExtraShape=filterShape.map((s,i)=>s+(s-1)*(dilation[i]-1)).map(s=>s-1),padExtraStart=padExtraShape.map(s=>Math.floor(s/2)),padExtraEnd=padExtraShape.map((s,i)=>s-padExtraStart[i]);return padExtraShape.map((_,i)=>[padExtraStart[i],padExtraEnd[i]])}var pool=op({pool_});function pow_(base2,exp4){let $base=convertToTensor(base2,"base","pow"),$exp=convertToTensor(exp4,"exp","pow");[$base,$exp]=makeTypesMatch($base,$exp);let inputs={a:$base,b:$exp};return ENGINE.runKernel(Pow,inputs)}var pow=op({pow_});function prelu_(x,alpha){let $x=convertToTensor(x,"x","prelu"),$alpha=convertToTensor(alpha,"alpha","prelu"),inputs={x:$x,alpha:$alpha};return ENGINE.runKernel(Prelu,inputs)}var prelu=op({prelu_});function prod_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","prod");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Prod,inputs,attrs)}var prod=op({prod_});function rand_(shape,randFunction,dtype){let size=sizeFromShape(shape),values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);for(let i=0;i=1||s===0);let mul2=Math.sqrt(-2*Math.log(s)/s);resultX=this.mean+this.stdDev*v1*mul2,resultY=this.mean+this.stdDev*v2*mul2,(!this.truncated||this.isValidTruncated(resultX))&&(isValid=!0)}return(!this.truncated||this.isValidTruncated(resultY))&&(this.nextVal=this.convertValue(resultY)),this.convertValue(resultX)}convertValue(value){return this.dtype==null||this.dtype==="float32"?value:Math.round(value)}isValidTruncated(value){return value<=this.upper&&value>=this.lower}},RandGamma=class{constructor(alpha,beta,dtype,seed){this.alpha=alpha,this.beta=1/beta,this.dtype=dtype;let seedValue=seed||Math.random();this.randu=seedrandom.alea(seedValue.toString()),this.randn=new MPRandGauss(0,1,dtype,!1,this.randu()),alpha<1?this.d=alpha+2/3:this.d=alpha-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let x2,v0,v1,x,u,v;for(;;){do x=this.randn.nextValue(),v=1+this.c*x;while(v<=0);if(v*=v*v,x2=x*x,v0=1-.331*x2*x2,v1=.5*x2+this.d*(1-v+Math.log(v)),u=this.randu(),uthis.dtype==null||this.dtype==="float32",this.min=min6,this.range=max6-min6,this.dtype=dtype,seed==null&&(seed=Math.random()),typeof seed=="number"&&(seed=seed.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${min6} - ${max6} <= 1 and dtype is not float`);this.random=seedrandom.alea(seed)}convertValue(value){return this.canReturnFloat()?value:Math.round(value)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function randomGamma_(shape,alpha,beta=1,dtype="float32",seed){if(beta==null&&(beta=1),dtype==null&&(dtype="float32"),dtype!=="float32"&&dtype!=="int32")throw new Error(`Unsupported data type ${dtype}`);let rgamma=new RandGamma(alpha,beta,dtype,seed),res=buffer(shape,dtype);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${$x.rank}.`),reverse($x,0)}var reverse1d=op({reverse1d_});function reverse2d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse2d=op({reverse2d_});function reverse3d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse3d=op({reverse3d_});function reverse4d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse4d=op({reverse4d_});function round_(x){let inputs={x:convertToTensor(x,"x","round")};return ENGINE.runKernel(Round,inputs)}var round2=op({round_});function rsqrt_(x){let inputs={x:convertToTensor(x,"x","rsqrt")};return ENGINE.runKernel(Rsqrt,inputs)}var rsqrt=op({rsqrt_});function scalar(value,dtype){if((isTypedArray(value)&&dtype!=="string"||Array.isArray(value))&&dtype!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(dtype==="string"&&isTypedArray(value)&&!(value instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return makeTensor(value,[],[],dtype)}function selu_(x){let inputs={x:convertToTensor(x,"x","selu")};return ENGINE.runKernel(Selu,inputs)}var selu=op({selu_});function separableConv2d_(x,depthwiseFilter,pointwiseFilter,strides,pad3,dilation=[1,1],dataFormat="NHWC"){let $x=convertToTensor(x,"x","separableConv2d"),$depthwiseFilter=convertToTensor(depthwiseFilter,"depthwiseFilter","separableConv2d"),$pointwiseFilter=convertToTensor(pointwiseFilter,"pointwiseFilter","separableConv2d"),x4D=$x,reshapedTo4D=!1;if($x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),dataFormat==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");assert(x4D.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($depthwiseFilter.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[0]}.`),assert($pointwiseFilter.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[1]}.`);let inChannels=$depthwiseFilter.shape[2],channelMultiplier=$depthwiseFilter.shape[3];assert($pointwiseFilter.shape[2]===inChannels*channelMultiplier,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${inChannels*channelMultiplier}, but got ${$pointwiseFilter.shape[2]}.`);let depthwise=depthwiseConv2d(x4D,$depthwiseFilter,strides,pad3,dataFormat,dilation),res=conv2d(depthwise,$pointwiseFilter,1,"valid",dataFormat);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var separableConv2d=op({separableConv2d_});async function setdiff1dAsync_(x,y){let $x=convertToTensor(x,"x","setdiff1d"),$y=convertToTensor(y,"y","setdiff1d");assert($x.dtype===$y.dtype,()=>`x and y should have the same dtype, but got x (${$x.dtype}) and y (${$y.dtype}).`),assert($x.rank===1,()=>`x should be 1D tensor, but got x (${$x.shape}).`),assert($y.rank===1,()=>`y should be 1D tensor, but got y (${$y.shape}).`);let xVals=await $x.data(),yVals=await $y.data(),ySet=new Set(yVals),outputSize=0;for(let i=0;i`slice1d expects a rank-1 tensor, but got a rank-${$x.rank} tensor`),slice($x,[begin],[size])}var slice1d=op({slice1d_});function slice2d_(x,begin,size){let $x=convertToTensor(x,"x","slice2d");return assert($x.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice2d=op({slice2d_});function slice3d_(x,begin,size){let $x=convertToTensor(x,"x","slice3d");return assert($x.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice3d=op({slice3d_});function slice4d_(x,begin,size){let $x=convertToTensor(x,"x","slice4d");return assert($x.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice4d=op({slice4d_});function softmax_(logits,dim=-1){let $logits=convertToTensor(logits,"logits","softmax","float32");if(dim===-1&&(dim=$logits.rank-1),dim!==$logits.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and dim was ${dim}`);let inputs={logits:$logits},attrs={dim};return ENGINE.runKernel(Softmax,inputs,attrs)}var softmax=op({softmax_});function fft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(FFT,inputs)}var fft=op({fft_});function ifft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(IFFT,inputs)}var ifft=op({ifft_});function irfft_(input2){let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,ret;if(innerDimensionSize<=2){let complexInput=reshape(input2,[batch,innerDimensionSize]);ret=ifft(complexInput)}else{let outputShape=[batch,2*(innerDimensionSize-1)],realInput=reshape(real(input2),[batch,innerDimensionSize]),imagInput=reshape(imag(input2),[batch,innerDimensionSize]),realConjugate=reverse(slice(realInput,[0,1],[batch,innerDimensionSize-2]),1),imagConjugate=mul(reverse(slice(imagInput,[0,1],[batch,innerDimensionSize-2]),1),scalar(-1)),r=concat([realInput,realConjugate],1),i=concat([imagInput,imagConjugate],1),complexInput=reshape(complex(r,i),[outputShape[0],outputShape[1]]);ret=ifft(complexInput)}if(ret=real(ret),input2.rank===3&&input2.shape[0]!==0){let temp=ret,batch2=input2.shape[0];ret=reshape(ret,[batch2,ret.shape[0]/batch2,ret.shape[1]]),temp.dispose()}return ret}var irfft=op({irfft_});function split_(x,numOrSizeSplits,axis=0){let inputs={x:convertToTensor(x,"x","split")},attr={numOrSizeSplits,axis};return ENGINE.runKernel(SplitV,inputs,attr)}var split=op({split_});function rfft_(input2,fftLength){assert(input2.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${input2.dtype}`);let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,adjustedInput;if(fftLength!=null&&fftLength0),size=input2.shape.map(v=>v);size[input2.shape.length-1]=fftLength,adjustedInput=slice(input2,begin,size),innerDimensionSize=fftLength}else if(fftLength!=null&&fftLength>innerDimensionSize){let zerosShape=input2.shape.map(v=>v);zerosShape[input2.shape.length-1]=fftLength-innerDimensionSize,adjustedInput=concat([input2,zeros(zerosShape)],input2.shape.length-1),innerDimensionSize=fftLength}else adjustedInput=input2;let zerosInput=zerosLike(adjustedInput),complexInput=reshape(complex(adjustedInput,zerosInput),[batch,innerDimensionSize]),ret=fft(complexInput),half=Math.floor(innerDimensionSize/2)+1,realValues=real(ret),imagValues=imag(ret),realComplexConjugate=split(realValues,[half,innerDimensionSize-half],realValues.shape.length-1),imagComplexConjugate=split(imagValues,[half,innerDimensionSize-half],imagValues.shape.length-1),outputShape=adjustedInput.shape.slice();return outputShape[adjustedInput.shape.length-1]=half,reshape(complex(realComplexConjugate[0],imagComplexConjugate[0]),outputShape)}var rfft=op({rfft_});function sqrt_(x){let inputs={x:convertToTensor(x,"x","sqrt")};return ENGINE.runKernel(Sqrt,inputs)}var sqrt=op({sqrt_});function squaredDifference_(a,b){let $a=convertToTensor(a,"a","squaredDifference"),$b=convertToTensor(b,"b","squaredDifference");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b},attrs={};return ENGINE.runKernel(SquaredDifference,inputs,attrs)}var squaredDifference=op({squaredDifference_});function squeeze_(x,axis){let $x=convertToTensor(x,"x","squeeze");return reshape($x,squeezeShape($x.shape,axis).newShape)}var squeeze=op({squeeze_});function stack_(tensors,axis=0){let $tensors=convertToTensorArray(tensors,"tensors","stack","string_or_numeric");assert($tensors.length>=1,()=>"Pass at least one tensor to tf.stack"),$tensors.length>0&&assert(axis<=$tensors[0].rank,()=>"Axis must be <= rank of the tensor");let inputs=$tensors,attrs={axis};return ENGINE.runKernel(Pack,inputs,attrs)}var stack=op({stack_});function step_(x,alpha=0){let inputs={x:convertToTensor(x,"x","step")},attrs={alpha};return ENGINE.runKernel(Step,inputs,attrs)}var step=op({step_});function stridedSlice_(x,begin,end,strides,beginMask=0,endMask=0,ellipsisMask=0,newAxisMask=0,shrinkAxisMask=0){let inputs={x:convertToTensor(x,"x","stridedSlice")},attrs={begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask};return ENGINE.runKernel(StridedSlice,inputs,attrs)}var stridedSlice=op({stridedSlice_});function tan_(x){let inputs={x:convertToTensor(x,"x","tan")};return ENGINE.runKernel(Tan,inputs)}var tan=op({tan_});function tensor1d(values,dtype){assertNonNull(values);let inferredShape=inferShape(values,dtype);if(inferredShape.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return makeTensor(values,null,inferredShape,dtype)}function tensor2d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==2&&inferredShape.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return makeTensor(values,shape,inferredShape,dtype)}function tensor4d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==4&&inferredShape.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor5d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==5&&inferredShape.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor6d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==6&&inferredShape.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return shape=shape||inferredShape,makeTensor(values,shape,inferredShape,dtype)}function topk_(x,k=1,sorted=!0){let $x=convertToTensor(x,"x","topk");if($x.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let lastDim=$x.shape[$x.shape.length-1];if(k>lastDim)throw new Error(`'k' passed to topk() must be <= the last dimension (${lastDim}) but got ${k}`);let inputs={x:$x},attrs={k,sorted},[values,indices]=ENGINE.runKernel(TopK,inputs,attrs);return{values,indices}}var topk=op({topk_});function truncatedNormal_(shape,mean4=0,stdDev=1,dtype,seed){if(dtype!=null&&dtype==="bool")throw new Error("Unsupported data type $ { dtype }");let randGauss=new MPRandGauss(mean4,stdDev,dtype,!0,seed),res=buffer(shape,dtype);for(let i=0;i0,()=>"The input tensor must be at least 1D");let inputs={x:$x},attrs={axis},[values,indices]=ENGINE.runKernel(Unique,inputs,attrs);return{values,indices}}var unique=op({unique_});function unsortedSegmentSum_(x,segmentIds,numSegments){let $x=convertToTensor(x,"x","unsortedSegmentSum"),$segmentIds=convertToTensor(segmentIds,"segmentIds","unsortedSegmentSum","int32");assert(isInt(numSegments),()=>"numSegments must be of dtype int");let inputs={x:$x,segmentIds:$segmentIds},attrs={numSegments};return ENGINE.runKernel(UnsortedSegmentSum,inputs,attrs)}var unsortedSegmentSum=op({unsortedSegmentSum_});function unstack_(x,axis=0){let $x=convertToTensor(x,"x","unstack","string_or_numeric");assert(axis>=-$x.shape.length&&axis<$x.shape.length,()=>`Axis = ${axis} is not in [-${$x.shape.length}, ${$x.shape.length})`);let inputs={value:$x},attrs={axis};return ENGINE.runKernel(Unpack,inputs,attrs)}var unstack=op({unstack_});function variable(initialValue,trainable=!0,name,dtype){return ENGINE.makeVariable(initialValue,trainable,name,dtype)}function whereImpl(condShape,condVals){let indices=[];for(let i=0;i0,()=>"mask cannot be scalar"),assertShapesMatch(tensorShape.slice(axisFrom,axisFrom+maskDim),$mask.shape,"mask's shape must match the first K dimensions of tensor's shape,");let leadingSize=1;for(let i=axisFrom;i"Shape mismatch in v and x");let one=scalar(1),oneMinusDecay=sub(one,$decay),update=mul(sub($x,$v),oneMinusDecay);if(zeroDebias){assert(step4!=null,()=>"When using zeroDebias: true, step is required.");let $step=convertToTensor(step4,"step","movingAverage");update=div(update,sub(one,pow($decay,$step)))}return add2($v,update)}var movingAverage=op({movingAverage_});function scatterND_(indices,updates,shape){let $indices=convertToTensor(indices,"indices","scatterND","int32"),$updates=convertToTensor(updates,"updates","scatterND");validateInput($updates,$indices,shape);let inputs={indices:$indices,updates:$updates},attrs={shape};return ENGINE.runKernel(ScatterNd,inputs,attrs)}var scatterND=op({scatterND_});function validateInput2(sparseIndices,sparseValues,outputShape,defaultValues){if(sparseIndices.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${sparseIndices.dtype}.`);if(sparseIndices.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${sparseIndices.shape}.`);let numElems=sparseIndices.rank>0?sparseIndices.shape[0]:1,numDims=sparseIndices.rank>1?sparseIndices.shape[1]:1;if(outputShape.length!==numDims)throw new Error(`outputShape has incorrect number of elements:, ${outputShape.length}, should be: ${numDims}.`);let numValues=sparseValues.size;if(!(sparseValues.rank===0||sparseValues.rank===1&&numValues===numElems))throw new Error(`sparseValues has incorrect shape ${sparseValues.shape}, should be [] or [${numElems}]`);if(sparseValues.dtype!==defaultValues.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function sparseToDense_(sparseIndices,sparseValues,outputShape,defaultValue=0){let $sparseIndices=convertToTensor(sparseIndices,"sparseIndices","sparseToDense","int32"),$sparseValues=convertToTensor(sparseValues,"sparseValues","sparseToDense"),$defaultValue=convertToTensor(defaultValue,"defaultValue","sparseToDense",$sparseValues.dtype);validateInput2($sparseIndices,$sparseValues,outputShape,$defaultValue);let inputs={sparseIndices:$sparseIndices,sparseValues:$sparseValues,defaultValue:$defaultValue},attrs={outputShape};return ENGINE.runKernel(SparseToDense,inputs,attrs)}var sparseToDense=op({sparseToDense_});function gatherND_(x,indices){let $indices=convertToTensor(indices,"indices","gatherND","int32"),inputs={params:convertToTensor(x,"x","gatherND"),indices:$indices};return ENGINE.runKernel(GatherNd,inputs)}var gatherND=op({gatherND_});function getNoiseShape(x,noiseShape){if(noiseShape==null)return x.shape.slice();if(arraysEqual(x.shape,noiseShape))return noiseShape;if(x.shape.length===noiseShape.length){let newDimension=[];for(let i=0;i`x has to be a floating point tensor since it's going to be scaled, but got a ${$x.dtype} tensor instead.`),assert(rate>=0&&rate<1,()=>`rate must be a float in the range [0, 1), but got ${rate}.`),rate===0)return x instanceof Tensor?$x.clone():$x;let $noiseShape=getNoiseShape($x,noiseShape),keepProb=1-rate,multiplier=div(floor(add2(randomUniform($noiseShape,0,1,"float32",seed),keepProb)),keepProb);return mul($x,multiplier)}var dropout=op({dropout_});function enclosingPowerOfTwo(value){return Math.floor(Math.pow(2,Math.ceil(Math.log(value)/Math.log(2))))}function cosineWindow(windowLength,a,b){let even=1-windowLength%2,newValues=new Float32Array(windowLength);for(let i=0;i1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${$predictions.rank}`),assert($predictions.rank-1===$targets.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${$predictions.rank} and targets rank ${$targets.rank}`),assertShapesMatch($predictions.shape.slice(0,$predictions.shape.length-1),$targets.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let lastDim=$predictions.shape[$predictions.shape.length-1];assert(k>0&&k<=lastDim,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${lastDim}), but got ${k}`);let predictionsVals=await $predictions.data(),targetsVals=await $targets.data(),[batch,size]=[predictionsVals.length/lastDim,lastDim],precision3=getTypedArrayFromDType("bool",batch);for(let b=0;bb2.value-a.value),precision3[b]=0;for(let i=0;iconv2d2,depthwiseConv2d:()=>depthwiseConv2d2,matMul:()=>matMul2});function conv2DBackpropFilter_(x,dy,filterShape,strides,pad3,dataFormat="NHWC",dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]])),assert(x4D.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${x4D.shape}.`),assert(dy4D.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${dy4D.shape}.`),assert(filterShape.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${filterShape}.`);let inDepth=dataFormat==="NHWC"?x4D.shape[3]:x4D.shape[1],outDepth=dataFormat==="NHWC"?dy4D.shape[3]:dy4D.shape[1];assert(inDepth===filterShape[2],()=>`Error in conv2dDerFilter: depth of input ${inDepth}) must match input depth in filter (${filterShape[2]}.`),assert(outDepth===filterShape[3],()=>`Error in conv2dDerFilter: depth of dy (${outDepth}) must match output depth for filter (${filterShape[3]}).`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dataFormat,dimRoundingMode,filterShape};return ENGINE.runKernel(Conv2DBackpropFilter,inputs,attrs)}var conv2DBackpropFilter=op({conv2DBackpropFilter_});function getFusedDyActivation(dy,y,activation2){if(activation2==null||activation2==="linear")return dy;if(activation2==="relu")return mul(dy,step(y));throw new Error(`Cannot compute gradient for fused activation ${activation2}.`)}function getFusedBiasGradient(bias,dyActivation){let res=dyActivation,reduceAxes=getReductionAxes(bias.shape,dyActivation.shape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,bias.shape)}function applyActivation(x,activation2,preluActivationWeights,leakyreluAlpha){if(activation2==="linear")return x;if(activation2==="relu")return relu(x);if(activation2==="elu")return elu(x);if(activation2==="relu6")return relu6(x);if(activation2==="prelu")return prelu(x,preluActivationWeights);if(activation2==="leakyrelu")return leakyRelu(x,leakyreluAlpha);throw new Error(`Unknown fused activation ${activation2}.`)}var shouldFuse=(gradientDepth,activation2)=>!(gradientDepth>0)||activation2==="linear";function fusedConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(activation2=activation2||"linear",shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=conv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","conv2d"),$filter=convertToTensor(filter,"filter","conv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${$filter.rank}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in conv2d: depth of input (${x4D.shape[3]}) must match input depth for filter ${$filter.shape[2]}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),assert(dataFormat==="NHWC",()=>`Error in conv2d: got dataFormat of ${dataFormat} but only NHWC is currently supported.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused conv2d"));let grad2=(dy,saved)=>{let[$filter2,x4D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2);assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`);let xDer=conv2DBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3),filterDer=conv2DBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3),der=[xDer,filterDer];if($bias2!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);der.push(biasDer)}return der},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var conv2d2=op({fusedConv2d_});function depthwiseConv2dNativeBackpropFilter_(x,dy,filterShape,strides,pad3,dilations=[1,1],dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dimRoundingMode,dilations,filterShape};return ENGINE.runKernel(DepthwiseConv2dNativeBackpropFilter,inputs,attrs)}var depthwiseConv2dNativeBackpropFilter=op({depthwiseConv2dNativeBackpropFilter_});function depthwiseConv2dNativeBackpropInput_(xShape,dy,filter,strides,pad3,dilations=[1,1],dimRoundingMode){let dy4D=dy,reshapedTo4D=!1;dy.rank===3&&(reshapedTo4D=!0,dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={dy:dy4D,filter},attrs={strides,pad:pad3,dimRoundingMode,dilations,inputShape:xShape},res=ENGINE.runKernel(DepthwiseConv2dNativeBackpropInput,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var depthwiseConv2dNativeBackpropInput=op({depthwiseConv2dNativeBackpropInput_});function fusedDepthwiseConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=depthwiseConv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","depthwiseConv2d"),$filter=convertToTensor(filter,"filter","depthwiseConv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${$filter.rank}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${x4D.shape[3]}) must match the inChannels dimension in filter ${$filter.shape[2]}.`),dilations==null&&(dilations=[1,1]),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode,!0),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused depthwiseConv2d"));let grad2=(dy,saved)=>{assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${dilations}'`);let[$filter2,x4D2,y,bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2),xDer=depthwiseConv2dNativeBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3,dilations,dimRoundingMode),filterDer=depthwiseConv2dNativeBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3,dilations,dimRoundingMode);if(bias2!=null){let biasDer=getFusedBiasGradient($bias,dyActivation);return[xDer,filterDer,biasDer]}return[xDer,filterDer]},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var depthwiseConv2d2=op({fusedDepthwiseConv2d_});function fusedMatMul_({a,b,transposeA=!1,transposeB=!1,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=matMul(a,b,transposeA,transposeB);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $a=convertToTensor(a,"a","fused matMul"),$b=convertToTensor(b,"b","fused matMul");[$a,$b]=makeTypesMatch($a,$b);let innerShapeA=transposeA?$a.shape[$a.rank-2]:$a.shape[$a.rank-1],innerShapeB=transposeB?$b.shape[$b.rank-1]:$b.shape[$b.rank-2],outerShapeA=transposeA?$a.shape[$a.rank-1]:$a.shape[$a.rank-2],outerShapeB=transposeB?$b.shape[$b.rank-2]:$b.shape[$b.rank-1],outerDimsA=$a.shape.slice(0,-2),outerDimsB=$b.shape.slice(0,-2),batchDimA=sizeFromShape(outerDimsA),batchDimB=sizeFromShape(outerDimsB);assert($a.rank>=2&&$b.rank>=2&&$a.rank===$b.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${$a.rank} and ${$b.rank}.`),assert(arraysEqual(outerDimsA,outerDimsB),()=>`Error in fused matMul: outer dimensions (${outerDimsA}) and (${outerDimsB}) of Tensors with shapes ${$a.shape} and ${$b.shape} must match.`),assert(innerShapeA===innerShapeB,()=>`Error in fused matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${$a.shape} and ${$b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let outShape=$a.shape.slice(0,-2).concat([outerShapeA,outerShapeB]),a3D=transposeA?reshape($a,[batchDimA,innerShapeA,outerShapeA]):reshape($a,[batchDimA,outerShapeA,innerShapeA]),b3D=transposeB?reshape($b,[batchDimB,outerShapeB,innerShapeB]):reshape($b,[batchDimB,innerShapeB,outerShapeB]),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused matMul"),[$bias]=makeTypesMatch($bias,$a),assertAndGetBroadcastShape(outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused matMul"));let grad2=(dy,saved)=>{let[a3D2,b3D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(reshape(dy,y.shape),y,activation2),aDer,bDer;if(!transposeA&&!transposeB?(aDer=matMul(dyActivation,b3D2,!1,!0),bDer=matMul(a3D2,dyActivation,!0,!1)):!transposeA&&transposeB?(aDer=matMul(dyActivation,b3D2,!1,!1),bDer=matMul(dyActivation,a3D2,!0,!1)):transposeA&&!transposeB?(aDer=matMul(b3D2,dyActivation,!1,!0),bDer=matMul(a3D2,dyActivation,!1,!1)):(aDer=matMul(b3D2,dyActivation,!0,!0),bDer=matMul(dyActivation,a3D2,!0,!0)),bias!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);return[aDer,bDer,biasDer]}else return[aDer,bDer]},inputs={a:a3D,b:b3D,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={transposeA,transposeB,activation:activation2,leakyreluAlpha};return bias==null?customGrad((a3D2,b3D2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D):customGrad((a3D2,b3D2,$bias2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res,$bias2]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D,$bias)}var matMul2=op({fusedMatMul_});function hammingWindow_(windowLength){return cosineWindow(windowLength,.54,.46)}var hammingWindow=op({hammingWindow_});function hannWindow_(windowLength){return cosineWindow(windowLength,.5,.5)}var hannWindow=op({hannWindow_});function frame_(signal2,frameLength,frameStep,padEnd=!1,padValue=0){let start=0,output=[];for(;start+frameLength<=signal2.size;)output.push(slice(signal2,start,frameLength)),start+=frameStep;if(padEnd)for(;start`Error in cropAndResize: image must be rank 4,but got rank ${$image.rank}.`),assert($boxes.rank===2&&$boxes.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${numBoxes},4] but had shape ${$boxes.shape}.`),assert($boxInd.rank===1&&$boxInd.shape[0]===numBoxes,()=>`Error in cropAndResize: boxInd must be have size [${numBoxes}] but had shape ${$boxes.shape}.`),assert(cropSize.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${cropSize.length}.`),assert(cropSize[0]>=1&&cropSize[1]>=1,()=>`cropSize must be atleast [1,1], but was ${cropSize}`),assert(method==="bilinear"||method==="nearest",()=>`method must be bilinear or nearest, but was ${method}`);let inputs={image:$image,boxes:$boxes,boxInd:$boxInd},attrs={method,extrapolationValue,cropSize};return ENGINE.runKernel(CropAndResize,inputs,attrs)}var cropAndResize=op({cropAndResize_});function flipLeftRight_(image3){let $image=convertToTensor(image3,"image","flipLeftRight","float32");assert($image.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image};return ENGINE.runKernel(FlipLeftRight,inputs,{})}var flipLeftRight=op({flipLeftRight_});function rotateWithOffset_(image3,radians,fillValue=0,center=.5){let $image=convertToTensor(image3,"image","rotateWithOffset","float32");assert($image.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image},attrs={radians,fillValue,center};return ENGINE.runKernel(RotateWithOffset,inputs,attrs)}var rotateWithOffset=op({rotateWithOffset_});function nonMaxSuppSanityCheck(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){iouThreshold==null&&(iouThreshold=.5),scoreThreshold==null&&(scoreThreshold=Number.NEGATIVE_INFINITY),softNmsSigma==null&&(softNmsSigma=0);let numBoxes=boxes.shape[0];return maxOutputSize=Math.min(maxOutputSize,numBoxes),assert(0<=iouThreshold&&iouThreshold<=1,()=>`iouThreshold must be in [0, 1], but was '${iouThreshold}'`),assert(boxes.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${boxes.rank}'`),assert(boxes.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${boxes.shape[1]}`),assert(scores.rank===1,()=>"scores must be a 1D tensor"),assert(scores.shape[0]===numBoxes,()=>`scores has incompatible shape with boxes. Expected ${numBoxes}, but was ${scores.shape[0]}`),assert(0<=softNmsSigma&&softNmsSigma<=1,()=>`softNmsSigma must be in [0, 1], but was '${softNmsSigma}'`),{maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}function nonMaxSuppression_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let attrs={maxOutputSize,iouThreshold,scoreThreshold};return ENGINE.runKernel(NonMaxSuppressionV3,{boxes:$boxes,scores:$scores},attrs)}var nonMaxSuppression=op({nonMaxSuppression_});function binaryInsert(arr,element,comparator){let index=binarySearch(arr,element,comparator),insertionPoint=index<0?-(index+1):index;arr.splice(insertionPoint,0,element)}function binarySearch(arr,target,comparator){return binarySearch_(arr,target,comparator||defaultComparator)}function defaultComparator(a,b){return a>b?1:a>>1);let compareResult=comparator(target,arr[middle]);compareResult>0?left=middle+1:(right=middle,found=!compareResult)}return found?left:-left-1}function nonMaxSuppressionV3Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0)}function nonMaxSuppressionV4Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0,!1,padToMaxOutputSize,!0)}function nonMaxSuppressionV5Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,!0)}function nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,returnScoresTensor=!1,padToMaxOutputSize=!1,returnValidOutputs=!1){let candidates=[];for(let i=0;iscoreThreshold&&candidates.push({score:scores[i],boxIndex:i,suppressBeginIndex:0});candidates.sort(ascendingComparator);let scale2=softNmsSigma>0?-.5/softNmsSigma:0,selectedIndices=[],selectedScores=[];for(;selectedIndices.length0;){let candidate=candidates.pop(),{score:originalScore,boxIndex,suppressBeginIndex}=candidate;if(originalScore=suppressBeginIndex;--j){let iou=intersectionOverUnion(boxes,boxIndex,selectedIndices[j]);if(iou>=iouThreshold){ignoreCandidate=!0;break}if(candidate.score=candidate.score*suppressWeight(iouThreshold,scale2,iou),candidate.score<=scoreThreshold)break}candidate.suppressBeginIndex=selectedIndices.length,ignoreCandidate||(candidate.score===originalScore?(selectedIndices.push(boxIndex),selectedScores.push(candidate.score)):candidate.score>scoreThreshold&&binaryInsert(candidates,candidate,ascendingComparator))}let validOutputs=selectedIndices.length,elemsToPad=maxOutputSize-validOutputs;padToMaxOutputSize&&elemsToPad>0&&(selectedIndices.push(...new Array(elemsToPad).fill(0)),selectedScores.push(...new Array(elemsToPad).fill(0)));let result={selectedIndices};return returnScoresTensor&&(result.selectedScores=selectedScores),returnValidOutputs&&(result.validOutputs=validOutputs),result}function intersectionOverUnion(boxes,i,j){let iCoord=boxes.subarray(i*4,i*4+4),jCoord=boxes.subarray(j*4,j*4+4),yminI=Math.min(iCoord[0],iCoord[2]),xminI=Math.min(iCoord[1],iCoord[3]),ymaxI=Math.max(iCoord[0],iCoord[2]),xmaxI=Math.max(iCoord[1],iCoord[3]),yminJ=Math.min(jCoord[0],jCoord[2]),xminJ=Math.min(jCoord[1],jCoord[3]),ymaxJ=Math.max(jCoord[0],jCoord[2]),xmaxJ=Math.max(jCoord[1],jCoord[3]),areaI=(ymaxI-yminI)*(xmaxI-xminI),areaJ=(ymaxJ-yminJ)*(xmaxJ-xminJ);if(areaI<=0||areaJ<=0)return 0;let intersectionYmin=Math.max(yminI,yminJ),intersectionXmin=Math.max(xminI,xminJ),intersectionYmax=Math.min(ymaxI,ymaxJ),intersectionXmax=Math.min(xmaxI,xmaxJ),intersectionArea=Math.max(intersectionYmax-intersectionYmin,0)*Math.max(intersectionXmax-intersectionXmin,0);return intersectionArea/(areaI+areaJ-intersectionArea)}function suppressWeight(iouThreshold,scale2,iou){let weight=Math.exp(scale2*iou*iou);return iou<=iouThreshold?weight:0}function ascendingComparator(c1,c2){return c1.score-c2.score||c1.score===c2.score&&c2.boxIndex-c1.boxIndex}async function nonMaxSuppressionAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices}=nonMaxSuppressionV3Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),tensor1d(selectedIndices,"int32")}var nonMaxSuppressionAsync=nonMaxSuppressionAsync_;function nonMaxSuppressionWithScore_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma},result=ENGINE.runKernel(NonMaxSuppressionV5,inputs,attrs);return{selectedIndices:result[0],selectedScores:result[1]}}var nonMaxSuppressionWithScore=op({nonMaxSuppressionWithScore_});async function nonMaxSuppressionWithScoreAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices,selectedScores}=nonMaxSuppressionV5Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),selectedScores:tensor1d(selectedScores)}}var nonMaxSuppressionWithScoreAsync=nonMaxSuppressionWithScoreAsync_;function nonMaxSuppressionPadded_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize:$maxOutputSize,iouThreshold:$iouThreshold,scoreThreshold:$scoreThreshold,padToMaxOutputSize},result=ENGINE.runKernel(NonMaxSuppressionV4,inputs,attrs);return{selectedIndices:result[0],validOutputs:result[1]}}var nonMaxSuppressionPadded=op({nonMaxSuppressionPadded_});async function nonMaxSuppressionPaddedAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,[boxesVals,scoresVals]=await Promise.all([$boxes.data(),$scores.data()]),{selectedIndices,validOutputs}=nonMaxSuppressionV4Impl(boxesVals,scoresVals,$maxOutputSize,$iouThreshold,$scoreThreshold,padToMaxOutputSize);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),validOutputs:scalar(validOutputs,"int32")}}var nonMaxSuppressionPaddedAsync=nonMaxSuppressionPaddedAsync_;function resizeBilinear_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeBilinear");assert($images.rank===3||$images.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${size}.`),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeBilinear,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeBilinear=op({resizeBilinear_});function resizeNearestNeighbor_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeNearestNeighbor");assert($images.rank===3||$images.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${size}.`),assert($images.dtype==="float32"||$images.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeNearestNeighbor,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeNearestNeighbor=op({resizeNearestNeighbor_});function bandPart_(a,numLower,numUpper){assert(numLower%1==0,()=>`bandPart(): numLower must be an integer, got ${numLower}.`),assert(numUpper%1==0,()=>`bandPart(): numUpper must be an integer, got ${numUpper}.`);let $a=convertToTensor(a,"a","bandPart");assert($a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${$a.rank}.`);let shape=$a.shape,[M,N]=$a.shape.slice(-2);if(!(numLower<=M))throw new Error(`bandPart(): numLower (${numLower}) must not be greater than the number of rows (${M}).`);if(!(numUpper<=N))throw new Error(`bandPart(): numUpper (${numUpper}) must not be greater than the number of columns (${N}).`);numLower<0&&(numLower=M),numUpper<0&&(numUpper=N);let i=reshape(range(0,M,1,"int32"),[-1,1]),j=range(0,N,1,"int32"),ij=sub(i,j),inBand=logicalAnd(lessEqual(ij,scalar(+numLower,"int32")),greaterEqual(ij,scalar(-numUpper,"int32"))),zero=zeros([M,N],$a.dtype);return reshape(stack(unstack(reshape($a,[-1,M,N])).map(mat=>where(inBand,mat,zero))),shape)}var bandPart=op({bandPart_});function gramSchmidt_(xs){let inputIsTensor2D;if(Array.isArray(xs)){inputIsTensor2D=!1,assert(xs!=null&&xs.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let dim=xs[0].shape[0];for(let i=1;i`Gram-Schmidt: Non-unique lengths found in the input vectors: (${xs[i].shape[0]} vs. ${dim})`)}else inputIsTensor2D=!0,xs=split(xs,xs.shape[0],0).map(x=>squeeze(x,[0]));assert(xs.length<=xs[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${xs.length}) exceeds number of dimensions (${xs[0].shape[0]}).`);let ys=[],xs1d=xs;for(let i=0;i{let x=xs1d[i];if(i>0)for(let j=0;j=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${x.rank}`),x.rank===2)return qr2d(x,fullMatrices);{let outerDimsProd=x.shape.slice(0,x.shape.length-2).reduce((value,prev)=>value*prev),x2ds=unstack(reshape(x,[outerDimsProd,x.shape[x.shape.length-2],x.shape[x.shape.length-1]]),0),q2ds=[],r2ds=[];x2ds.forEach(x2d=>{let[q2d,r2d]=qr2d(x2d,fullMatrices);q2ds.push(q2d),r2ds.push(r2d)});let q=reshape(stack(q2ds,0),x.shape),r=reshape(stack(r2ds,0),x.shape);return[q,r]}}function qr2d(x,fullMatrices=!1){return ENGINE.tidy(()=>{assert(x.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${x.shape.length}D Tensor.`);let m=x.shape[0],n=x.shape[1],q=eye(m),r=clone(x),one2D=tensor2d([[1]],[1,1]),w=clone(one2D),iters=m>=n?n:m;for(let j=0;j{let rjEnd1=slice(r,[j,j],[m-j,1]),normX=norm(rjEnd1),rjj=slice(r,[j,j],[1,1]),s=where(greater(rjj,0),tensor2d([[-1]]),tensor2d([[1]])),u1=sub(rjj,mul(s,normX)),wPre=div(rjEnd1,u1);wPre.shape[0]===1?w=clone(one2D):w=concat([one2D,slice(wPre,[1,0],[wPre.shape[0]-1,wPre.shape[1]])],0);let tau=neg(div(matMul(s,u1),normX)),rjEndAll=slice(r,[j,0],[m-j,n]),tauTimesW=mul(tau,w),wT=transpose(w);if(j===0)r=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));else{let rTimesTau=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));r=concat([slice(r,[0,0],[j,n]),rTimesTau],0)}let tawTimesWT=transpose(tauTimesW),qAllJEnd=slice(q,[0,j],[m,q.shape[1]-j]);if(j===0)q=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));else{let qTimesTau=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));q=concat([slice(q,[0,0],[m,j]),qTimesTau],1)}return[w,r,q]}),dispose([rTemp,wTemp,qTemp])}return!fullMatrices&&m>n&&(q=slice(q,[0,0],[m,n]),r=slice(r,[0,0],[n,n])),[q,r]})}var qr=op({qr_}),Reduction;(function(Reduction2){Reduction2[Reduction2.NONE=0]="NONE",Reduction2[Reduction2.MEAN=1]="MEAN",Reduction2[Reduction2.SUM=2]="SUM",Reduction2[Reduction2.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Reduction||(Reduction={}));function computeWeightedLoss_(losses4,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $losses=convertToTensor(losses4,"losses","computeWeightedLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","computeWeightedLoss"));let weightedLoss=$weights==null?$losses:mul($losses,$weights);if(reduction2===Reduction.NONE)return weightedLoss;if(reduction2===Reduction.SUM)return sum2(weightedLoss);if(reduction2===Reduction.MEAN){if($weights==null)return mean(weightedLoss);{let broadcastFactor=$losses.size/$weights.size,result=div(sum2(weightedLoss),sum2($weights));return broadcastFactor>1?div(result,scalar(broadcastFactor)):result}}if(reduction2===Reduction.SUM_BY_NONZERO_WEIGHTS){if($weights==null)return div(sum2(weightedLoss),scalar($losses.size));{let broadcastedWeights=mul($weights,ones2($losses.shape)),numNonZeros=cast(sum2(notEqual(broadcastedWeights,scalar(0))),"float32");return div(sum2(weightedLoss),numNonZeros)}}throw Error(`Unknown reduction: ${reduction2}`)}var computeWeightedLoss=op({computeWeightedLoss_});function absoluteDifference_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","absoluteDifference"),$predictions=convertToTensor(predictions,"predictions","absoluteDifference"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","absoluteDifference")),assertShapesMatch($labels.shape,$predictions.shape,"Error in absoluteDifference: ");let losses4=abs(sub($labels,$predictions));return computeWeightedLoss(losses4,$weights,reduction2)}var absoluteDifference=op({absoluteDifference_});function cosineDistance_(labels,predictions,axis,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","cosineDistance"),$predictions=convertToTensor(predictions,"predictions","cosineDistance"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","cosineDistance")),assertShapesMatch($labels.shape,$predictions.shape,"Error in cosineDistance: ");let one=scalar(1),losses4=sub(one,sum2(mul($labels,$predictions),axis,!0));return computeWeightedLoss(losses4,$weights,reduction2)}var cosineDistance=op({cosineDistance_});function hingeLoss_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","hingeLoss"),$predictions=convertToTensor(predictions,"predictions","hingeLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","hingeLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in hingeLoss: ");let one=scalar(1);$labels=sub(mul(scalar(2),$labels),one);let losses4=relu(sub(one,mul($labels,$predictions)));return computeWeightedLoss(losses4,$weights,reduction2)}var hingeLoss=op({hingeLoss_});function huberLoss_(labels,predictions,weights,delta=1,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","huberLoss"),$predictions=convertToTensor(predictions,"predictions","huberLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","huberLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in huberLoss: ");let deltaScalar=scalar(delta),error=abs(sub($predictions,$labels)),quadratic=minimum(error,deltaScalar),linear=sub(error,quadratic),losses4=add2(mul(scalar(.5),square(quadratic)),mul(deltaScalar,linear));return computeWeightedLoss(losses4,$weights,reduction2)}var huberLoss=op({huberLoss_});function logLoss_(labels,predictions,weights,epsilon3=1e-7,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","logLoss"),$predictions=convertToTensor(predictions,"predictions","logLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","logLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in logLoss: ");let one=scalar(1),epsilonScalar=scalar(epsilon3),l13=neg(mul($labels,log2(add2($predictions,epsilonScalar)))),l23=mul(sub(one,$labels),log2(add2(sub(one,$predictions),epsilonScalar))),losses4=sub(l13,l23);return computeWeightedLoss(losses4,$weights,reduction2)}var logLoss=op({logLoss_});function meanSquaredError_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","meanSquaredError"),$predictions=convertToTensor(predictions,"predictions","meanSquaredError"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","meanSquaredError")),assertShapesMatch($labels.shape,$predictions.shape,"Error in meanSquaredError: ");let losses4=squaredDifference($labels,$predictions);return computeWeightedLoss(losses4,$weights,reduction2)}var meanSquaredError=op({meanSquaredError_});function sigmoidCrossEntropyWithLogits_(labels,logits){let $labels=convertToTensor(labels,"labels","sigmoidCrossEntropyWithLogits"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropyWithLogits");assertShapesMatch($labels.shape,$logits.shape,"Error in sigmoidCrossEntropyWithLogits: ");let maxOutput=relu($logits),outputXTarget=mul($logits,$labels),sigmoidOutput=log1p(exp(neg(abs($logits))));return add2(sub(maxOutput,outputXTarget),sigmoidOutput)}function sigmoidCrossEntropy_(multiClassLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $multiClassLabels=convertToTensor(multiClassLabels,"multiClassLabels","sigmoidCrossEntropy"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","sigmoidCrossEntropy")),assertShapesMatch($multiClassLabels.shape,$logits.shape,"Error in sigmoidCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),half=scalar(.5);$multiClassLabels=add2(mul($multiClassLabels,sub(one,labelSmoothingScalar)),mul(half,labelSmoothingScalar))}let losses4=sigmoidCrossEntropyWithLogits_($multiClassLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var sigmoidCrossEntropy=op({sigmoidCrossEntropy_});function softmaxCrossEntropyWithLogits_(labels,logits,dim=-1){if(dim===-1&&(dim=logits.rank-1),dim!==logits.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${logits.rank} and dim was ${dim}`);return customGrad((labels2,logits2,save)=>{let lse=logSumExp(logits2,[dim],!0),logResult=sub(cast(logits2,"float32"),lse);save([labels2,logResult]);let costVector=neg(mul(logResult,labels2));return{value:sum2(costVector,[dim]),gradFunc:(dy,saved)=>{let[labels3,logResult2]=saved,dyShape=expandShapeToKeepDim(dy.shape,[dim]);return[mul(reshape(dy,dyShape),sub(cast(labels3,"float32"),exp(logResult2))),mul(reshape(dy,dyShape),sub(exp(logResult2),cast(labels3,"float32")))]}}})(labels,logits)}function softmaxCrossEntropy_(onehotLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $onehotLabels=convertToTensor(onehotLabels,"onehotLabels","softmaxCrossEntropy"),$logits=convertToTensor(logits,"logits","softmaxCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","softmaxCrossEntropy")),assertShapesMatch($onehotLabels.shape,$logits.shape,"Error in softmaxCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),numClasses=scalar($onehotLabels.shape[1]);$onehotLabels=add2(mul($onehotLabels,sub(one,labelSmoothingScalar)),div(labelSmoothingScalar,numClasses))}let losses4=softmaxCrossEntropyWithLogits_($onehotLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var softmaxCrossEntropy=op({softmaxCrossEntropy_}),spectral={fft,ifft,rfft,irfft},signal={hammingWindow,hannWindow,frame,stft},image={flipLeftRight,resizeNearestNeighbor,resizeBilinear,rotateWithOffset,cropAndResize,nonMaxSuppression,nonMaxSuppressionAsync,nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync},linalg={bandPart,gramSchmidt,qr},losses={absoluteDifference,computeWeightedLoss,cosineDistance,hingeLoss,huberLoss,logLoss,meanSquaredError,sigmoidCrossEntropy,softmaxCrossEntropy},Optimizer=class extends Serializable{minimize(f,returnCost=!1,varList){let{value,grads:grads2}=this.computeGradients(f,varList);if(varList!=null){let gradArray=varList.map(v=>({name:v.name,tensor:grads2[v.name]}));this.applyGradients(gradArray)}else this.applyGradients(grads2);return dispose(grads2),returnCost?value:(value.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(f,varList){return variableGrads(f,varList)}dispose(){this.iterations_!=null&&dispose(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:scalar(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(weightValues){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(weightValues){return this.iterations_=(await weightValues[0].tensor.data())[0],weightValues.slice(1)}};Object.defineProperty(Optimizer,Symbol.hasInstance,{value:instance2=>instance2.minimize!=null&&instance2.computeGradients!=null&&instance2.applyGradients!=null});var AdadeltaOptimizer=class extends Optimizer{constructor(learningRate,rho,epsilon3=null){super();this.learningRate=learningRate,this.rho=rho,this.epsilon=epsilon3,this.accumulatedGrads=[],this.accumulatedUpdates=[],epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedGrads[i]==null&&(this.accumulatedGrads[i]={originalName:`${name}/accum_grad`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedUpdates[i]==null&&(this.accumulatedUpdates[i]={originalName:`${name}/accum_var`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable,accumulatedUpdate=this.accumulatedUpdates[i].variable;tidy(()=>{let newAccumulatedGrad=add2(mul(accumulatedGrad,this.rho),mul(square(gradient),1-this.rho)),updates=mul(div(sqrt(add2(accumulatedUpdate,this.epsilon)),sqrt(add2(accumulatedGrad,this.epsilon))),gradient),newAccumulatedUpdate=add2(mul(accumulatedUpdate,this.rho),mul(square(updates),1-this.rho));accumulatedGrad.assign(newAccumulatedGrad),accumulatedUpdate.assign(newAccumulatedUpdate);let newValue=add2(mul(updates,-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(dispose(this.accumulatedGrads.map(v=>v.variable)),dispose(this.accumulatedUpdates.map(v=>v.variable)))}async getWeights(){let variables=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=weightValues.length/2,trainable=!1;this.accumulatedGrads=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedUpdates=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.rho,config3.epsilon)}};AdadeltaOptimizer.className="Adadelta";registerClass(AdadeltaOptimizer);var AdagradOptimizer=class extends Optimizer{constructor(learningRate,initialAccumulatorValue=.1){super();this.learningRate=learningRate,this.initialAccumulatorValue=initialAccumulatorValue,this.accumulatedGrads=[]}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulatedGrads[i]==null){let trainable=!1;this.accumulatedGrads[i]={originalName:`${name}/accumulator`,variable:tidy(()=>fill(value.shape,this.initialAccumulatorValue).variable(trainable))}}let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable;tidy(()=>{let newAccumulatedGrad=add2(accumulatedGrad,square(gradient));accumulatedGrad.assign(newAccumulatedGrad);let newValue=add2(mul(div(gradient,sqrt(add2(newAccumulatedGrad,ENGINE.backend.epsilon()))),-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&dispose(this.accumulatedGrads.map(v=>v.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulatedGrads=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.initialAccumulatorValue)}};AdagradOptimizer.className="Adagrad";registerClass(AdagradOptimizer);var AdamOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],tidy(()=>{this.accBeta1=scalar(beta1).variable(),this.accBeta2=scalar(beta2).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let varNames=Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),oneMinusAccBeta2=sub(1,this.accBeta2);varNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${name}/v`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,secondMoment=this.accumulatedSecondMoment[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),newSecondMoment=add2(mul(secondMoment,this.beta2),mul(square(gradient),1-this.beta2)),biasCorrectedFirstMoment=div(newFirstMoment,oneMinusAccBeta1),biasCorrectedSecondMoment=div(newSecondMoment,oneMinusAccBeta2);firstMoment.assign(newFirstMoment),secondMoment.assign(newSecondMoment);let newValue=add2(mul(div(biasCorrectedFirstMoment,add2(sqrt(biasCorrectedSecondMoment),this.epsilon)),-this.learningRate),value);value.assign(newValue)}),this.accBeta1.assign(mul(this.accBeta1,this.beta1)),this.accBeta2.assign(mul(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedSecondMoment!=null&&dispose(this.accumulatedSecondMoment.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues),tidy(()=>{this.accBeta1.assign(pow(this.beta1,this.iterations_+1)),this.accBeta2.assign(pow(this.beta2,this.iterations_+1))});let variableCount=weightValues.length/2,trainable=!1;this.accumulatedFirstMoment=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedSecondMoment=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.beta1,config3.beta2,config3.epsilon)}};AdamOptimizer.className="Adam";registerClass(AdamOptimizer);var AdamaxOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null,decay=0){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.decay=decay,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],tidy(()=>{this.iteration=scalar(0).variable(),this.accBeta1=scalar(beta1).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let variableNames=Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),lr=div(-this.learningRate,add2(mul(this.iteration,this.decay),1));variableNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:zerosLike(value).variable(trainable)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${name}/v`,variable:zerosLike(value).variable(trainable)});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,weightedInfNorm=this.accumulatedWeightedInfNorm[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),ut0=mul(weightedInfNorm,this.beta2),ut1=abs(gradient),newWeightedInfNorm=maximum(ut0,ut1);firstMoment.assign(newFirstMoment),weightedInfNorm.assign(newWeightedInfNorm);let newValue=add2(mul(div(lr,oneMinusAccBeta1),div(newFirstMoment,add2(newWeightedInfNorm,this.epsilon))),value);value.assign(newValue)}),this.iteration.assign(add2(this.iteration,1)),this.accBeta1.assign(mul(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedWeightedInfNorm!=null&&dispose(this.accumulatedWeightedInfNorm.map(v=>v.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(weightValues){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.beta1,config3.beta2,config3.epsilon,config3.decay)}};AdamaxOptimizer.className="Adamax";registerClass(AdamaxOptimizer);var SGDOptimizer=class extends Optimizer{constructor(learningRate){super();this.learningRate=learningRate,this.setLearningRate(learningRate)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients)).forEach((name,i)=>{let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let value=ENGINE.registeredVariables[name];tidy(()=>{let newValue=add2(mul(this.c,gradient),value);value.assign(newValue)})}),this.incrementIterations()}setLearningRate(learningRate){this.learningRate=learningRate,this.c!=null&&this.c.dispose(),this.c=keep(scalar(-learningRate))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(weightValues){if(weightValues=await this.extractIterations(weightValues),weightValues.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(cls,config3){return new cls(config3.learningRate)}};SGDOptimizer.className="SGD";registerClass(SGDOptimizer);var MomentumOptimizer=class extends SGDOptimizer{constructor(learningRate,momentum,useNesterov=!1){super(learningRate);this.learningRate=learningRate,this.momentum=momentum,this.useNesterov=useNesterov,this.accumulations=[],this.m=scalar(this.momentum)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulations[i]==null){let trainable=!1;this.accumulations[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}}let accumulation=this.accumulations[i].variable,gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];gradient!=null&&tidy(()=>{let newValue,newAccumulation=add2(mul(this.m,accumulation),gradient);this.useNesterov?newValue=add2(mul(this.c,add2(gradient,mul(newAccumulation,this.m))),value):newValue=add2(mul(this.c,newAccumulation),value),accumulation.assign(newAccumulation),value.assign(newValue)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&dispose(this.accumulations.map(v=>v.variable))}setMomentum(momentum){this.momentum=momentum}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulations=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.momentum,config3.useNesterov)}};MomentumOptimizer.className="Momentum";registerClass(MomentumOptimizer);var RMSPropOptimizer=class extends Optimizer{constructor(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){super();if(this.learningRate=learningRate,this.decay=decay,this.momentum=momentum,this.epsilon=epsilon3,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=centered,epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon()),learningRate==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedMeanSquares[i]==null&&(this.accumulatedMeanSquares[i]={originalName:`${name}/rms`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMoments[i]==null&&(this.accumulatedMoments[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMeanGrads[i]==null&&this.centered&&(this.accumulatedMeanGrads[i]={originalName:`${name}/mg`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedMeanSquare=this.accumulatedMeanSquares[i].variable,accumulatedMoments=this.accumulatedMoments[i].variable;tidy(()=>{let newAccumulatedMeanSquare=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay));if(this.centered){let accumulatedMeanGrad=this.accumulatedMeanGrads[i].variable,newAccumulatedMeanGrad=add2(mul(accumulatedMeanGrad,this.decay),mul(gradient,1-this.decay)),gradContribution=div(mul(gradient,this.learningRate),sqrt(sub(newAccumulatedMeanSquare,add2(square(newAccumulatedMeanGrad),this.epsilon)))),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),gradContribution);accumulatedMeanSquare.assign(newAccumulatedMeanSquare),accumulatedMeanGrad.assign(newAccumulatedMeanGrad),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}else{let newAccumulatedMeanSquare2=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay)),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),div(mul(gradient,this.learningRate),sqrt(add2(newAccumulatedMeanSquare2,this.epsilon))));accumulatedMeanSquare.assign(newAccumulatedMeanSquare2),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&dispose(this.accumulatedMeanSquares.map(v=>v.variable)),this.accumulatedMeanGrads!=null&&this.centered&&dispose(this.accumulatedMeanGrads.map(v=>v.variable)),this.accumulatedMoments!=null&&dispose(this.accumulatedMoments.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&variables.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=this.centered?weightValues.length/3:weightValues.length/2,trainable=!1;this.accumulatedMeanSquares=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedMoments=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.centered&&(this.accumulatedMeanGrads=weightValues.slice(variableCount*2,variableCount*3).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.decay,config3.momentum,config3.epsilon,config3.centered)}};RMSPropOptimizer.className="RMSProp";registerClass(RMSPropOptimizer);var OptimizerConstructors=class{static sgd(learningRate){return new SGDOptimizer(learningRate)}static momentum(learningRate,momentum,useNesterov=!1){return new MomentumOptimizer(learningRate,momentum,useNesterov)}static rmsprop(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){return new RMSPropOptimizer(learningRate,decay,momentum,epsilon3,centered)}static adam(learningRate=.001,beta1=.9,beta2=.999,epsilon3=null){return new AdamOptimizer(learningRate,beta1,beta2,epsilon3)}static adadelta(learningRate=.001,rho=.95,epsilon3=null){return new AdadeltaOptimizer(learningRate,rho,epsilon3)}static adamax(learningRate=.002,beta1=.9,beta2=.999,epsilon3=null,decay=0){return new AdamaxOptimizer(learningRate,beta1,beta2,epsilon3,decay)}static adagrad(learningRate,initialAccumulatorValue=.1){return new AdagradOptimizer(learningRate,initialAccumulatorValue)}},train={sgd:OptimizerConstructors.sgd,momentum:OptimizerConstructors.momentum,adadelta:OptimizerConstructors.adadelta,adagrad:OptimizerConstructors.adagrad,rmsprop:OptimizerConstructors.rmsprop,adamax:OptimizerConstructors.adamax,adam:OptimizerConstructors.adam},delayCallback=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:f=>f())();function nextFrame(){return new Promise(resolve=>delayCallback(()=>resolve()))}var backend_util_exports={};__export2(backend_util_exports,{ERF_A1:()=>ERF_A1,ERF_A2:()=>ERF_A2,ERF_A3:()=>ERF_A3,ERF_A4:()=>ERF_A4,ERF_A5:()=>ERF_A5,ERF_P:()=>ERF_P,PARALLELIZE_THRESHOLD:()=>PARALLELIZE_THRESHOLD,SELU_SCALE:()=>SELU_SCALE,SELU_SCALEALPHA:()=>SELU_SCALEALPHA,applyActivation:()=>applyActivation,assertAndGetBroadcastShape:()=>assertAndGetBroadcastShape,assertAxesAreInnerMostDims:()=>assertAxesAreInnerMostDims,assertParamsConsistent:()=>assertParamsConsistent,assignToTypedArray:()=>assignToTypedArray,axesAreInnerMostDims:()=>axesAreInnerMostDims,calculateShapes:()=>calculateShapes,castTensor:()=>castTensor,combineLocations:()=>combineLocations,complexWithEvenIndex:()=>complexWithEvenIndex,complexWithOddIndex:()=>complexWithOddIndex,computeConv2DInfo:()=>computeConv2DInfo,computeConv3DInfo:()=>computeConv3DInfo,computeDefaultPad:()=>computeDefaultPad,computeDilation2DInfo:()=>computeDilation2DInfo,computeOptimalWindowSize:()=>computeOptimalWindowSize,computeOutAndReduceShapes:()=>computeOutAndReduceShapes,computeOutShape:()=>computeOutShape2,computePool2DInfo:()=>computePool2DInfo,computePool3DInfo:()=>computePool3DInfo,convertConv2DDataFormat:()=>convertConv2DDataFormat,eitherStridesOrDilationsAreOne:()=>eitherStridesOrDilationsAreOne,expandShapeToKeepDim:()=>expandShapeToKeepDim,exponent:()=>exponent,exponents:()=>exponents,fromStringArrayToUint8:()=>fromStringArrayToUint8,fromUint8ToStringArray:()=>fromUint8ToStringArray,getAxesPermutation:()=>getAxesPermutation,getBroadcastDims:()=>getBroadcastDims,getComplexWithIndex:()=>getComplexWithIndex,getFusedBiasGradient:()=>getFusedBiasGradient,getFusedDyActivation:()=>getFusedDyActivation,getImageCenter:()=>getImageCenter,getInnerMostAxes:()=>getInnerMostAxes,getPermuted:()=>getPermuted,getReductionAxes:()=>getReductionAxes,getReshaped:()=>getReshaped,getReshapedPermuted:()=>getReshapedPermuted,getSliceBeginCoords:()=>getSliceBeginCoords,getSliceSize:()=>getSliceSize,getUndoAxesPermutation:()=>getUndoAxesPermutation,log:()=>log22,mergeRealAndImagArrays:()=>mergeRealAndImagArrays,prepareAndValidate:()=>prepareAndValidate,prepareSplitSize:()=>prepareSplitSize,reshapeTensor:()=>reshapeTensor,segment_util:()=>segment_util_exports,shouldFuse:()=>shouldFuse,slice_util:()=>slice_util_exports,splitRealAndImagArrays:()=>splitRealAndImagArrays,tupleValuesAreOne:()=>tupleValuesAreOne,upcastType:()=>upcastType,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape,warn:()=>warn});function assertParamsConsistent(shapes,axis){let rank=shapes[0].length;shapes.forEach((shape,i)=>{assert(shape.length===rank,()=>`Error in concat${rank}D: rank of tensors[${i}] must be the same as the rank of the rest (${rank})`)}),assert(axis>=0&&axis`Error in concat${rank}D: axis must be between 0 and ${rank-1}.`);let firstShape=shapes[0];shapes.forEach((shape,i)=>{for(let r=0;r`Error in concat${rank}D: Shape of tensors[${i}] (${shape}) does not match the shape of the rest (${firstShape}) along the non-concatenated axis ${i}.`)})}function computeOutShape2(shapes,axis){let outputShape=shapes[0].slice();for(let i=1;i=blockShapeRank*2+1||i%2==1?permutedAfterBatch.push(i):permutedBeforeBatch.push(i);permuted.push(...permutedBeforeBatch),permuted.push(0),permuted.push(...permutedAfterBatch)}return permuted}function getReshapedPermuted(inputShape,blockShape,prod5,batchToSpace=!0){let reshapedPermuted=[];batchToSpace?reshapedPermuted.push(inputShape[0]/prod5):reshapedPermuted.push(inputShape[0]*prod5);for(let i=1;i"Number of splits must evenly divide the axis."),splitSizes=new Array(numOrSizeSplits).fill(x.shape[axis]/numOrSizeSplits);else{let numOfNegs=numOrSizeSplits.reduce((count2,value)=>(value===-1&&(count2+=1),count2),0);assert(numOfNegs<=1,()=>"There should be only one negative value in split array.");let negIndex=numOrSizeSplits.indexOf(-1);if(negIndex!==-1){let total=numOrSizeSplits.reduce((a,b)=>b>0?a+b:a);numOrSizeSplits[negIndex]=x.shape[axis]-total}assert(x.shape[axis]===numOrSizeSplits.reduce((a,b)=>a+b),()=>"The sum of sizes must match the size of the axis dimension."),splitSizes=numOrSizeSplits}return splitSizes}var segment_util_exports={};__export2(segment_util_exports,{collectGatherOpShapeInfo:()=>collectGatherOpShapeInfo,computeOutShape:()=>computeOutShape3,segOpComputeOptimalWindowSize:()=>segOpComputeOptimalWindowSize});function segOpComputeOptimalWindowSize(inSize,numSegments){let done=!1,res;for(inSize<=PARALLELIZE_THRESHOLD?(res=inSize,done=!0):res=nearestDivisor(inSize,Math.floor(Math.sqrt(inSize)));!done;)res>numSegments||res===inSize?done=!0:res=nearestDivisor(inSize,res+1);return res}function computeOutShape3(aShape,axis,numSegments){let outShape=[],rank=aShape.length;for(let dim=0;dimindicesRank))throw new Error(`Expect batchDims in the range of [-${indicesRank}, ${indicesRank}], but got ${batchDims}`);if(batchDims<0&&(batchDims+=indicesRank),batchDims>xRank)throw new Error(`batchDims (${batchDims}) must be less than rank(x) ( + the f you passed encloses all operations that lead from x to y.`)}function neg_(x){let inputs={x:convertToTensor(x,"x","neg")};return ENGINE.runKernel(Neg,inputs)}var neg=op({neg_});function softplus_(x){let inputs={x:convertToTensor(x,"x","softplus")};return ENGINE.runKernel(Softplus,inputs)}var softplus=op({softplus_});function logSigmoid_(x){let $x=convertToTensor(x,"x","logSigmoid");return customGrad(x2=>({value:neg(softplus(neg(x2))),gradFunc:dy=>mul(dy,sigmoid(neg(x2)))}))($x)}var logSigmoid=op({logSigmoid_});function max_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","max")},attrs={reductionIndices:axis,keepDims};return ENGINE.runKernel(Max,inputs,attrs)}var max=op({max_});function sub_(a,b){let $a=convertToTensor(a,"a","sub"),$b=convertToTensor(b,"b","sub");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Sub,inputs)}var sub=op({sub_});function sum_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","sum");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Sum,inputs,attrs)}var sum2=op({sum_});function logSoftmax_(logits,axis=-1){let $logits=convertToTensor(logits,"logits","logSoftmax");if(axis===-1&&(axis=$logits.rank-1),axis!==$logits.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and axis was ${axis}`);return customGrad((logits2,save)=>{let keepDims=!0,xMax=max(logits2,axis,!0),shifted=sub(logits2,xMax),value=sub(cast(shifted,"float32"),log2(sum2(exp(shifted),axis,keepDims)));return save([value]),{value,gradFunc:(dy,saved)=>{let[value2]=saved,keepDims2=!0,softmax6=exp(value2);return sub(dy,mul(sum2(dy,axis,keepDims2),softmax6))}}})($logits)}var logSoftmax=op({logSoftmax_});function axesAreInnerMostDims(axes,rank){for(let i=0;iaShape[dim]);return[outShape,reduceShape]}function expandShapeToKeepDim(shape,axes){let reduceSubShape=axes.map(x=>1);return combineLocations(shape,reduceSubShape,axes)}function assertAxesAreInnerMostDims(msg,axes,rank){assert(axesAreInnerMostDims(axes,rank),()=>`${msg} supports only inner-most axes for now. Got axes ${axes} and rank-${rank} input.`)}function getAxesPermutation(axes,rank){if(axesAreInnerMostDims(axes,rank))return null;let result=[];for(let i=0;iresult.push(axis)),result}function getUndoAxesPermutation(axes){return axes.map((axis,i)=>[i,axis]).sort((a,b)=>a[1]-b[1]).map(x=>x[0])}function getInnerMostAxes(numAxes,rank){let res=[];for(let i=rank-numAxes;i`Error in maxPool: input must be rank 4 but got rank ${x4D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D},attrs={filterSize,strides,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(MaxPool,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var maxPool=op({maxPool_});function maxPool3d_(x,filterSize=[1,1,1],strides,pad3,dimRoundingMode,dataFormat="NDHWC",dilations){dilations==null?dilations=[1,1,1]:deprecationWarn("dilations is deprecated, this field will be gone in v3.0.0.");let $x=convertToTensor(x,"x","maxPool3d"),x5D=$x,reshapedTo5D=!1;$x.rank===4&&(reshapedTo5D=!0,x5D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2],$x.shape[3]])),assert(x5D.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${x5D.rank}.`),assert(dataFormat==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${dataFormat}`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x5D},attrs={filterSize,strides,pad:pad3,dimRoundingMode,dataFormat,dilations},res=ENGINE.runKernel(MaxPool3D,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var maxPool3d=op({maxPool3d_});function maxPoolWithArgmax_(x,filterSize,strides,pad3,includeBatchInIndex=!1){let inputs={x:convertToTensor(x,"x","maxPoolWithArgmax")},attrs={filterSize,strides,pad:pad3,includeBatchInIndex},result=ENGINE.runKernel(MaxPoolWithArgmax,inputs,attrs);return{result:result[0],indexes:result[1]}}var maxPoolWithArgmax=op({maxPoolWithArgmax_});function maximum_(a,b){let $a=convertToTensor(a,"a","maximum"),$b=convertToTensor(b,"b","maximum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Maximum,inputs)}var maximum=op({maximum_});function mean_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","mean")},attrs={axis,keepDims};return ENGINE.runKernel(Mean,inputs,attrs)}var mean=op({mean_});function min_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","min")},attrs={axis,keepDims};return ENGINE.runKernel(Min,inputs,attrs)}var min=op({min_});function minimum_(a,b){let $a=convertToTensor(a,"a","minimum"),$b=convertToTensor(b,"b","minimum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Minimum,inputs)}var minimum=op({minimum_});function mirrorPad_(x,paddings,mode){assert(mode==="reflect"||mode==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${mode}.`);let $x=convertToTensor(x,"x","mirrorPad");if($x.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");assert(paddings.length===$x.rank,()=>`Padding doesn't match input. Must be ${$x.rank}. Got ${paddings.length}.`);let shapeOffset=mode==="reflect"?1:0;for(let i=0;i<$x.rank;i++)assert(paddings[i].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),assert(paddings[i][0]>=0&&paddings[i][0]<=$x.shape[i]-shapeOffset&&paddings[i][1]>=0&&paddings[i][1]<=$x.shape[i]-shapeOffset,()=>`Padding in dimension ${i} cannot be greater than or equal to ${$x.shape[i]-shapeOffset} or less than 0 for input of shape ${$x.shape}`);let attrs={paddings,mode},inputs={x:$x};return ENGINE.runKernel(MirrorPad,inputs,attrs)}var mirrorPad=op({mirrorPad_});function mod_(a,b){let $a=convertToTensor(a,"a","mod"),$b=convertToTensor(b,"b","mod");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Mod,inputs)}var mod=op({mod_});function square_(x){let $x=convertToTensor(x,"x","square"),attrs={};return ENGINE.runKernel("Square",{x:$x},attrs)}var square=op({square_});function moments_(x,axis=null,keepDims=!1){x=convertToTensor(x,"x","moments");let axes=parseAxisParam(axis,x.shape),xMean=mean(x,axes,keepDims),keepDimsShape=xMean.shape;keepDims||(keepDimsShape=expandShapeToKeepDim(xMean.shape,axes));let devSquared=square(sub(cast(x,"float32"),reshape(xMean,keepDimsShape))),variance=mean(devSquared,axes,keepDims);return{mean:xMean,variance}}var moments=op({moments_});function multiRNNCell_(lstmCells,data2,c,h){let $data=convertToTensor(data2,"data","multiRNNCell"),$c=convertToTensorArray(c,"c","multiRNNCell"),$h=convertToTensorArray(h,"h","multiRNNCell"),input2=$data,newStates=[];for(let i=0;i2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${origRank}`);seed=seed||Math.random();let inputs={logits:origRank===1?reshape($logits,[1,-1]):$logits},attrs={numSamples,seed,normalized},res=ENGINE.runKernel(Multinomial,inputs,attrs);return origRank===1?reshape(res,[res.size]):res}var multinomial=op({multinomial_});function notEqual_(a,b){let $a=convertToTensor(a,"a","notEqual"),$b=convertToTensor(b,"b","notEqual");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(NotEqual,inputs)}var notEqual=op({notEqual_});function zeros(shape,dtype="float32"){if(dtype==="complex64"){let real4=zeros(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeZerosTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function ones2(shape,dtype="float32"){if(dtype==="complex64"){let real4=ones2(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeOnesTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function onesLike_(x){let inputs={x:convertToTensor(x,"x","onesLike")};return ENGINE.runKernel(OnesLike,inputs)}var onesLike=op({onesLike_});function outerProduct_(v1,v2){let $v1=convertToTensor(v1,"v1","outerProduct"),$v2=convertToTensor(v2,"v2","outerProduct");assert($v1.rank===1&&$v2.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${$v1.rank} and ${$v2.rank}.`);let v12D=reshape($v1,[-1,1]),v22D=reshape($v2,[1,-1]);return matMul(v12D,v22D)}var outerProduct=op({outerProduct_});function pad_(x,paddings,constantValue=0){let $x=convertToTensor(x,"x","pad");if($x.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let attrs={paddings,constantValue},inputs={x:$x};return ENGINE.runKernel(PadV2,inputs,attrs)}var pad=op({pad_});function pad1d_(x,paddings,constantValue=0){return assert(paddings.length===2,()=>"Invalid number of paddings. Must be length of 2."),pad(x,[paddings],constantValue)}var pad1d=op({pad1d_});function pad2d_(x,paddings,constantValue=0){return assert(paddings.length===2&&paddings[0].length===2&&paddings[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad2d=op({pad2d_});function pad3d_(x,paddings,constantValue=0){return assert(paddings.length===3&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad3d=op({pad3d_});function pad4d_(x,paddings,constantValue=0){return assert(paddings.length===4&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2&&paddings[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad4d=op({pad4d_});function spaceToBatchND_(x,blockShape,paddings){let $x=convertToTensor(x,"x","spaceToBatchND");assert($x.rank>=1+blockShape.length,()=>`input rank ${$x.rank} should be > than [blockShape] ${blockShape.length}`),assert(paddings.length===blockShape.length,()=>`paddings.shape[0] ${paddings.length} must be equal to [blockShape] ${blockShape.length}`),assert($x.shape.reduce((a,b,i)=>i>0&&i<=blockShape.length?a&&(b+paddings[i-1][0]+paddings[i-1][1])%blockShape[i-1]==0:a,!0),()=>`input spatial dimensions ${$x.shape.slice(1)} with paddings ${paddings.toString()} must be divisible by blockShapes ${blockShape.toString()}`);let inputs={x:$x},attrs={blockShape,paddings};return ENGINE.runKernel(SpaceToBatchND,inputs,attrs)}var spaceToBatchND=op({spaceToBatchND_});function pool_(input2,windowShape,poolingType,pad3,dilations,strides){dilations==null&&(dilations=[1,1]),strides==null&&(strides=1),pad3===0&&(pad3="valid");let $x=convertToTensor(input2,"x","maxPool"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`);let convInfo=computePool2DInfo(x4D.shape,windowShape,strides,dilations,pad3),dilation=[convInfo.dilationHeight,convInfo.dilationWidth],basePadding;pad3==="same"?basePadding=withSpaceToBatchBasePaddings([convInfo.filterHeight,convInfo.filterWidth],dilation):basePadding=[[0,0],[0,0]];let isDilationOne=dilation[0]===1&&dilation[1]===1,[adjustedPadding,adjustedCrops]=requiredSpaceToBatchPaddings([convInfo.inHeight,convInfo.inWidth],dilation,basePadding),convertedPad=isDilationOne?pad3:"valid",convertedX=isDilationOne?x4D:spaceToBatchND(x4D,dilation,adjustedPadding),y=(poolingType==="avg"?()=>avgPool(convertedX,windowShape,strides,convertedPad):()=>maxPool(convertedX,windowShape,strides,convertedPad))(),res=isDilationOne?y:batchToSpaceND(y,dilation,adjustedCrops);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}function requiredSpaceToBatchPaddings(inputShape,blockShape,basePadding){let padStart=basePadding.map(b=>b[0]),origPadEnd=basePadding.map(b=>b[1]),fullInputShape=inputShape.concat(padStart,origPadEnd),padEndExtra=blockShape.map((b,i)=>(b-fullInputShape[i]%b)%b),padEnd=origPadEnd.map((s,i)=>s+padEndExtra[i]),paddings=blockShape.map((_,i)=>[padStart[i],padEnd[i]]),crops=blockShape.map((_,i)=>[0,padEndExtra[i]]);return[paddings,crops]}function withSpaceToBatchBasePaddings(filterShape,dilation){let padExtraShape=filterShape.map((s,i)=>s+(s-1)*(dilation[i]-1)).map(s=>s-1),padExtraStart=padExtraShape.map(s=>Math.floor(s/2)),padExtraEnd=padExtraShape.map((s,i)=>s-padExtraStart[i]);return padExtraShape.map((_,i)=>[padExtraStart[i],padExtraEnd[i]])}var pool=op({pool_});function pow_(base2,exp4){let $base=convertToTensor(base2,"base","pow"),$exp=convertToTensor(exp4,"exp","pow");[$base,$exp]=makeTypesMatch($base,$exp);let inputs={a:$base,b:$exp};return ENGINE.runKernel(Pow,inputs)}var pow=op({pow_});function prelu_(x,alpha){let $x=convertToTensor(x,"x","prelu"),$alpha=convertToTensor(alpha,"alpha","prelu"),inputs={x:$x,alpha:$alpha};return ENGINE.runKernel(Prelu,inputs)}var prelu=op({prelu_});function prod_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","prod");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Prod,inputs,attrs)}var prod=op({prod_});function rand_(shape,randFunction,dtype){let size=sizeFromShape(shape),values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);for(let i=0;i=1||s===0);let mul2=Math.sqrt(-2*Math.log(s)/s);resultX=this.mean+this.stdDev*v1*mul2,resultY=this.mean+this.stdDev*v2*mul2,(!this.truncated||this.isValidTruncated(resultX))&&(isValid=!0)}return(!this.truncated||this.isValidTruncated(resultY))&&(this.nextVal=this.convertValue(resultY)),this.convertValue(resultX)}convertValue(value){return this.dtype==null||this.dtype==="float32"?value:Math.round(value)}isValidTruncated(value){return value<=this.upper&&value>=this.lower}},RandGamma=class{constructor(alpha,beta,dtype,seed){this.alpha=alpha,this.beta=1/beta,this.dtype=dtype;let seedValue=seed||Math.random();this.randu=seedrandom.alea(seedValue.toString()),this.randn=new MPRandGauss(0,1,dtype,!1,this.randu()),alpha<1?this.d=alpha+2/3:this.d=alpha-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let x2,v0,v1,x,u,v;for(;;){do x=this.randn.nextValue(),v=1+this.c*x;while(v<=0);if(v*=v*v,x2=x*x,v0=1-.331*x2*x2,v1=.5*x2+this.d*(1-v+Math.log(v)),u=this.randu(),uthis.dtype==null||this.dtype==="float32",this.min=min6,this.range=max6-min6,this.dtype=dtype,seed==null&&(seed=Math.random()),typeof seed=="number"&&(seed=seed.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${min6} - ${max6} <= 1 and dtype is not float`);this.random=seedrandom.alea(seed)}convertValue(value){return this.canReturnFloat()?value:Math.round(value)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function randomGamma_(shape,alpha,beta=1,dtype="float32",seed){if(beta==null&&(beta=1),dtype==null&&(dtype="float32"),dtype!=="float32"&&dtype!=="int32")throw new Error(`Unsupported data type ${dtype}`);let rgamma=new RandGamma(alpha,beta,dtype,seed),res=buffer(shape,dtype);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${$x.rank}.`),reverse($x,0)}var reverse1d=op({reverse1d_});function reverse2d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse2d=op({reverse2d_});function reverse3d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse3d=op({reverse3d_});function reverse4d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse4d=op({reverse4d_});function round_(x){let inputs={x:convertToTensor(x,"x","round")};return ENGINE.runKernel(Round,inputs)}var round2=op({round_});function rsqrt_(x){let inputs={x:convertToTensor(x,"x","rsqrt")};return ENGINE.runKernel(Rsqrt,inputs)}var rsqrt=op({rsqrt_});function scalar(value,dtype){if((isTypedArray(value)&&dtype!=="string"||Array.isArray(value))&&dtype!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(dtype==="string"&&isTypedArray(value)&&!(value instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return makeTensor(value,[],[],dtype)}function selu_(x){let inputs={x:convertToTensor(x,"x","selu")};return ENGINE.runKernel(Selu,inputs)}var selu=op({selu_});function separableConv2d_(x,depthwiseFilter,pointwiseFilter,strides,pad3,dilation=[1,1],dataFormat="NHWC"){let $x=convertToTensor(x,"x","separableConv2d"),$depthwiseFilter=convertToTensor(depthwiseFilter,"depthwiseFilter","separableConv2d"),$pointwiseFilter=convertToTensor(pointwiseFilter,"pointwiseFilter","separableConv2d"),x4D=$x,reshapedTo4D=!1;if($x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),dataFormat==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");assert(x4D.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($depthwiseFilter.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[0]}.`),assert($pointwiseFilter.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[1]}.`);let inChannels=$depthwiseFilter.shape[2],channelMultiplier=$depthwiseFilter.shape[3];assert($pointwiseFilter.shape[2]===inChannels*channelMultiplier,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${inChannels*channelMultiplier}, but got ${$pointwiseFilter.shape[2]}.`);let depthwise=depthwiseConv2d(x4D,$depthwiseFilter,strides,pad3,dataFormat,dilation),res=conv2d(depthwise,$pointwiseFilter,1,"valid",dataFormat);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var separableConv2d=op({separableConv2d_});async function setdiff1dAsync_(x,y){let $x=convertToTensor(x,"x","setdiff1d"),$y=convertToTensor(y,"y","setdiff1d");assert($x.dtype===$y.dtype,()=>`x and y should have the same dtype, but got x (${$x.dtype}) and y (${$y.dtype}).`),assert($x.rank===1,()=>`x should be 1D tensor, but got x (${$x.shape}).`),assert($y.rank===1,()=>`y should be 1D tensor, but got y (${$y.shape}).`);let xVals=await $x.data(),yVals=await $y.data(),ySet=new Set(yVals),outputSize=0;for(let i=0;i`slice1d expects a rank-1 tensor, but got a rank-${$x.rank} tensor`),slice($x,[begin],[size])}var slice1d=op({slice1d_});function slice2d_(x,begin,size){let $x=convertToTensor(x,"x","slice2d");return assert($x.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice2d=op({slice2d_});function slice3d_(x,begin,size){let $x=convertToTensor(x,"x","slice3d");return assert($x.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice3d=op({slice3d_});function slice4d_(x,begin,size){let $x=convertToTensor(x,"x","slice4d");return assert($x.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice4d=op({slice4d_});function softmax_(logits,dim=-1){let $logits=convertToTensor(logits,"logits","softmax","float32");if(dim===-1&&(dim=$logits.rank-1),dim!==$logits.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and dim was ${dim}`);let inputs={logits:$logits},attrs={dim};return ENGINE.runKernel(Softmax,inputs,attrs)}var softmax=op({softmax_});function fft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(FFT,inputs)}var fft=op({fft_});function ifft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(IFFT,inputs)}var ifft=op({ifft_});function irfft_(input2){let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,ret;if(innerDimensionSize<=2){let complexInput=reshape(input2,[batch,innerDimensionSize]);ret=ifft(complexInput)}else{let outputShape=[batch,2*(innerDimensionSize-1)],realInput=reshape(real(input2),[batch,innerDimensionSize]),imagInput=reshape(imag(input2),[batch,innerDimensionSize]),realConjugate=reverse(slice(realInput,[0,1],[batch,innerDimensionSize-2]),1),imagConjugate=mul(reverse(slice(imagInput,[0,1],[batch,innerDimensionSize-2]),1),scalar(-1)),r=concat([realInput,realConjugate],1),i=concat([imagInput,imagConjugate],1),complexInput=reshape(complex(r,i),[outputShape[0],outputShape[1]]);ret=ifft(complexInput)}if(ret=real(ret),input2.rank===3&&input2.shape[0]!==0){let temp=ret,batch2=input2.shape[0];ret=reshape(ret,[batch2,ret.shape[0]/batch2,ret.shape[1]]),temp.dispose()}return ret}var irfft=op({irfft_});function split_(x,numOrSizeSplits,axis=0){let inputs={x:convertToTensor(x,"x","split")},attr={numOrSizeSplits,axis};return ENGINE.runKernel(SplitV,inputs,attr)}var split=op({split_});function rfft_(input2,fftLength){assert(input2.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${input2.dtype}`);let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,adjustedInput;if(fftLength!=null&&fftLength0),size=input2.shape.map(v=>v);size[input2.shape.length-1]=fftLength,adjustedInput=slice(input2,begin,size),innerDimensionSize=fftLength}else if(fftLength!=null&&fftLength>innerDimensionSize){let zerosShape=input2.shape.map(v=>v);zerosShape[input2.shape.length-1]=fftLength-innerDimensionSize,adjustedInput=concat([input2,zeros(zerosShape)],input2.shape.length-1),innerDimensionSize=fftLength}else adjustedInput=input2;let zerosInput=zerosLike(adjustedInput),complexInput=reshape(complex(adjustedInput,zerosInput),[batch,innerDimensionSize]),ret=fft(complexInput),half=Math.floor(innerDimensionSize/2)+1,realValues=real(ret),imagValues=imag(ret),realComplexConjugate=split(realValues,[half,innerDimensionSize-half],realValues.shape.length-1),imagComplexConjugate=split(imagValues,[half,innerDimensionSize-half],imagValues.shape.length-1),outputShape=adjustedInput.shape.slice();return outputShape[adjustedInput.shape.length-1]=half,reshape(complex(realComplexConjugate[0],imagComplexConjugate[0]),outputShape)}var rfft=op({rfft_});function sqrt_(x){let inputs={x:convertToTensor(x,"x","sqrt")};return ENGINE.runKernel(Sqrt,inputs)}var sqrt=op({sqrt_});function squaredDifference_(a,b){let $a=convertToTensor(a,"a","squaredDifference"),$b=convertToTensor(b,"b","squaredDifference");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b},attrs={};return ENGINE.runKernel(SquaredDifference,inputs,attrs)}var squaredDifference=op({squaredDifference_});function squeeze_(x,axis){let $x=convertToTensor(x,"x","squeeze");return reshape($x,squeezeShape($x.shape,axis).newShape)}var squeeze=op({squeeze_});function stack_(tensors,axis=0){let $tensors=convertToTensorArray(tensors,"tensors","stack","string_or_numeric");assert($tensors.length>=1,()=>"Pass at least one tensor to tf.stack"),$tensors.length>0&&assert(axis<=$tensors[0].rank,()=>"Axis must be <= rank of the tensor");let inputs=$tensors,attrs={axis};return ENGINE.runKernel(Pack,inputs,attrs)}var stack=op({stack_});function step_(x,alpha=0){let inputs={x:convertToTensor(x,"x","step")},attrs={alpha};return ENGINE.runKernel(Step,inputs,attrs)}var step=op({step_});function stridedSlice_(x,begin,end,strides,beginMask=0,endMask=0,ellipsisMask=0,newAxisMask=0,shrinkAxisMask=0){let inputs={x:convertToTensor(x,"x","stridedSlice")},attrs={begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask};return ENGINE.runKernel(StridedSlice,inputs,attrs)}var stridedSlice=op({stridedSlice_});function tan_(x){let inputs={x:convertToTensor(x,"x","tan")};return ENGINE.runKernel(Tan,inputs)}var tan=op({tan_});function tensor1d(values,dtype){assertNonNull(values);let inferredShape=inferShape(values,dtype);if(inferredShape.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return makeTensor(values,null,inferredShape,dtype)}function tensor2d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==2&&inferredShape.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return makeTensor(values,shape,inferredShape,dtype)}function tensor4d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==4&&inferredShape.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor5d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==5&&inferredShape.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor6d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==6&&inferredShape.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return shape=shape||inferredShape,makeTensor(values,shape,inferredShape,dtype)}function topk_(x,k=1,sorted=!0){let $x=convertToTensor(x,"x","topk");if($x.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let lastDim=$x.shape[$x.shape.length-1];if(k>lastDim)throw new Error(`'k' passed to topk() must be <= the last dimension (${lastDim}) but got ${k}`);let inputs={x:$x},attrs={k,sorted},[values,indices]=ENGINE.runKernel(TopK,inputs,attrs);return{values,indices}}var topk=op({topk_});function truncatedNormal_(shape,mean4=0,stdDev=1,dtype,seed){if(dtype!=null&&dtype==="bool")throw new Error("Unsupported data type $ { dtype }");let randGauss=new MPRandGauss(mean4,stdDev,dtype,!0,seed),res=buffer(shape,dtype);for(let i=0;i0,()=>"The input tensor must be at least 1D");let inputs={x:$x},attrs={axis},[values,indices]=ENGINE.runKernel(Unique,inputs,attrs);return{values,indices}}var unique=op({unique_});function unsortedSegmentSum_(x,segmentIds,numSegments){let $x=convertToTensor(x,"x","unsortedSegmentSum"),$segmentIds=convertToTensor(segmentIds,"segmentIds","unsortedSegmentSum","int32");assert(isInt(numSegments),()=>"numSegments must be of dtype int");let inputs={x:$x,segmentIds:$segmentIds},attrs={numSegments};return ENGINE.runKernel(UnsortedSegmentSum,inputs,attrs)}var unsortedSegmentSum=op({unsortedSegmentSum_});function unstack_(x,axis=0){let $x=convertToTensor(x,"x","unstack","string_or_numeric");assert(axis>=-$x.shape.length&&axis<$x.shape.length,()=>`Axis = ${axis} is not in [-${$x.shape.length}, ${$x.shape.length})`);let inputs={value:$x},attrs={axis};return ENGINE.runKernel(Unpack,inputs,attrs)}var unstack=op({unstack_});function variable(initialValue,trainable=!0,name,dtype){return ENGINE.makeVariable(initialValue,trainable,name,dtype)}function whereImpl(condShape,condVals){let indices=[];for(let i=0;i0,()=>"mask cannot be scalar"),assertShapesMatch(tensorShape.slice(axisFrom,axisFrom+maskDim),$mask.shape,"mask's shape must match the first K dimensions of tensor's shape,");let leadingSize=1;for(let i=axisFrom;i"Shape mismatch in v and x");let one=scalar(1),oneMinusDecay=sub(one,$decay),update=mul(sub($x,$v),oneMinusDecay);if(zeroDebias){assert(step4!=null,()=>"When using zeroDebias: true, step is required.");let $step=convertToTensor(step4,"step","movingAverage");update=div(update,sub(one,pow($decay,$step)))}return add2($v,update)}var movingAverage=op({movingAverage_});function scatterND_(indices,updates,shape){let $indices=convertToTensor(indices,"indices","scatterND","int32"),$updates=convertToTensor(updates,"updates","scatterND");validateInput($updates,$indices,shape);let inputs={indices:$indices,updates:$updates},attrs={shape};return ENGINE.runKernel(ScatterNd,inputs,attrs)}var scatterND=op({scatterND_});function validateInput2(sparseIndices,sparseValues,outputShape,defaultValues){if(sparseIndices.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${sparseIndices.dtype}.`);if(sparseIndices.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${sparseIndices.shape}.`);let numElems=sparseIndices.rank>0?sparseIndices.shape[0]:1,numDims=sparseIndices.rank>1?sparseIndices.shape[1]:1;if(outputShape.length!==numDims)throw new Error(`outputShape has incorrect number of elements:, ${outputShape.length}, should be: ${numDims}.`);let numValues=sparseValues.size;if(!(sparseValues.rank===0||sparseValues.rank===1&&numValues===numElems))throw new Error(`sparseValues has incorrect shape ${sparseValues.shape}, should be [] or [${numElems}]`);if(sparseValues.dtype!==defaultValues.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function sparseToDense_(sparseIndices,sparseValues,outputShape,defaultValue=0){let $sparseIndices=convertToTensor(sparseIndices,"sparseIndices","sparseToDense","int32"),$sparseValues=convertToTensor(sparseValues,"sparseValues","sparseToDense"),$defaultValue=convertToTensor(defaultValue,"defaultValue","sparseToDense",$sparseValues.dtype);validateInput2($sparseIndices,$sparseValues,outputShape,$defaultValue);let inputs={sparseIndices:$sparseIndices,sparseValues:$sparseValues,defaultValue:$defaultValue},attrs={outputShape};return ENGINE.runKernel(SparseToDense,inputs,attrs)}var sparseToDense=op({sparseToDense_});function gatherND_(x,indices){let $indices=convertToTensor(indices,"indices","gatherND","int32"),inputs={params:convertToTensor(x,"x","gatherND"),indices:$indices};return ENGINE.runKernel(GatherNd,inputs)}var gatherND=op({gatherND_});function getNoiseShape(x,noiseShape){if(noiseShape==null)return x.shape.slice();if(arraysEqual(x.shape,noiseShape))return noiseShape;if(x.shape.length===noiseShape.length){let newDimension=[];for(let i=0;i`x has to be a floating point tensor since it's going to be scaled, but got a ${$x.dtype} tensor instead.`),assert(rate>=0&&rate<1,()=>`rate must be a float in the range [0, 1), but got ${rate}.`),rate===0)return x instanceof Tensor?$x.clone():$x;let $noiseShape=getNoiseShape($x,noiseShape),keepProb=1-rate,multiplier=div(floor(add2(randomUniform($noiseShape,0,1,"float32",seed),keepProb)),keepProb);return mul($x,multiplier)}var dropout=op({dropout_});function enclosingPowerOfTwo(value){return Math.floor(Math.pow(2,Math.ceil(Math.log(value)/Math.log(2))))}function cosineWindow(windowLength,a,b){let even=1-windowLength%2,newValues=new Float32Array(windowLength);for(let i=0;i1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${$predictions.rank}`),assert($predictions.rank-1===$targets.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${$predictions.rank} and targets rank ${$targets.rank}`),assertShapesMatch($predictions.shape.slice(0,$predictions.shape.length-1),$targets.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let lastDim=$predictions.shape[$predictions.shape.length-1];assert(k>0&&k<=lastDim,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${lastDim}), but got ${k}`);let predictionsVals=await $predictions.data(),targetsVals=await $targets.data(),[batch,size]=[predictionsVals.length/lastDim,lastDim],precision3=getTypedArrayFromDType("bool",batch);for(let b=0;bb2.value-a.value),precision3[b]=0;for(let i=0;iconv2d2,depthwiseConv2d:()=>depthwiseConv2d2,matMul:()=>matMul2});function conv2DBackpropFilter_(x,dy,filterShape,strides,pad3,dataFormat="NHWC",dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]])),assert(x4D.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${x4D.shape}.`),assert(dy4D.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${dy4D.shape}.`),assert(filterShape.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${filterShape}.`);let inDepth=dataFormat==="NHWC"?x4D.shape[3]:x4D.shape[1],outDepth=dataFormat==="NHWC"?dy4D.shape[3]:dy4D.shape[1];assert(inDepth===filterShape[2],()=>`Error in conv2dDerFilter: depth of input ${inDepth}) must match input depth in filter (${filterShape[2]}.`),assert(outDepth===filterShape[3],()=>`Error in conv2dDerFilter: depth of dy (${outDepth}) must match output depth for filter (${filterShape[3]}).`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dataFormat,dimRoundingMode,filterShape};return ENGINE.runKernel(Conv2DBackpropFilter,inputs,attrs)}var conv2DBackpropFilter=op({conv2DBackpropFilter_});function getFusedDyActivation(dy,y,activation2){if(activation2==null||activation2==="linear")return dy;if(activation2==="relu")return mul(dy,step(y));throw new Error(`Cannot compute gradient for fused activation ${activation2}.`)}function getFusedBiasGradient(bias,dyActivation){let res=dyActivation,reduceAxes=getReductionAxes(bias.shape,dyActivation.shape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,bias.shape)}function applyActivation(x,activation2,preluActivationWeights,leakyreluAlpha){if(activation2==="linear")return x;if(activation2==="relu")return relu(x);if(activation2==="elu")return elu(x);if(activation2==="relu6")return relu6(x);if(activation2==="prelu")return prelu(x,preluActivationWeights);if(activation2==="leakyrelu")return leakyRelu(x,leakyreluAlpha);throw new Error(`Unknown fused activation ${activation2}.`)}var shouldFuse=(gradientDepth,activation2)=>!(gradientDepth>0)||activation2==="linear";function fusedConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(activation2=activation2||"linear",shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=conv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","conv2d"),$filter=convertToTensor(filter,"filter","conv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${$filter.rank}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in conv2d: depth of input (${x4D.shape[3]}) must match input depth for filter ${$filter.shape[2]}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),assert(dataFormat==="NHWC",()=>`Error in conv2d: got dataFormat of ${dataFormat} but only NHWC is currently supported.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused conv2d"));let grad2=(dy,saved)=>{let[$filter2,x4D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2);assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`);let xDer=conv2DBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3),filterDer=conv2DBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3),der=[xDer,filterDer];if($bias2!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);der.push(biasDer)}return der},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var conv2d2=op({fusedConv2d_});function depthwiseConv2dNativeBackpropFilter_(x,dy,filterShape,strides,pad3,dilations=[1,1],dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dimRoundingMode,dilations,filterShape};return ENGINE.runKernel(DepthwiseConv2dNativeBackpropFilter,inputs,attrs)}var depthwiseConv2dNativeBackpropFilter=op({depthwiseConv2dNativeBackpropFilter_});function depthwiseConv2dNativeBackpropInput_(xShape,dy,filter,strides,pad3,dilations=[1,1],dimRoundingMode){let dy4D=dy,reshapedTo4D=!1;dy.rank===3&&(reshapedTo4D=!0,dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={dy:dy4D,filter},attrs={strides,pad:pad3,dimRoundingMode,dilations,inputShape:xShape},res=ENGINE.runKernel(DepthwiseConv2dNativeBackpropInput,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var depthwiseConv2dNativeBackpropInput=op({depthwiseConv2dNativeBackpropInput_});function fusedDepthwiseConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=depthwiseConv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","depthwiseConv2d"),$filter=convertToTensor(filter,"filter","depthwiseConv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${$filter.rank}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${x4D.shape[3]}) must match the inChannels dimension in filter ${$filter.shape[2]}.`),dilations==null&&(dilations=[1,1]),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode,!0),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused depthwiseConv2d"));let grad2=(dy,saved)=>{assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${dilations}'`);let[$filter2,x4D2,y,bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2),xDer=depthwiseConv2dNativeBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3,dilations,dimRoundingMode),filterDer=depthwiseConv2dNativeBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3,dilations,dimRoundingMode);if(bias2!=null){let biasDer=getFusedBiasGradient($bias,dyActivation);return[xDer,filterDer,biasDer]}return[xDer,filterDer]},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var depthwiseConv2d2=op({fusedDepthwiseConv2d_});function fusedMatMul_({a,b,transposeA=!1,transposeB=!1,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=matMul(a,b,transposeA,transposeB);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $a=convertToTensor(a,"a","fused matMul"),$b=convertToTensor(b,"b","fused matMul");[$a,$b]=makeTypesMatch($a,$b);let innerShapeA=transposeA?$a.shape[$a.rank-2]:$a.shape[$a.rank-1],innerShapeB=transposeB?$b.shape[$b.rank-1]:$b.shape[$b.rank-2],outerShapeA=transposeA?$a.shape[$a.rank-1]:$a.shape[$a.rank-2],outerShapeB=transposeB?$b.shape[$b.rank-2]:$b.shape[$b.rank-1],outerDimsA=$a.shape.slice(0,-2),outerDimsB=$b.shape.slice(0,-2),batchDimA=sizeFromShape(outerDimsA),batchDimB=sizeFromShape(outerDimsB);assert($a.rank>=2&&$b.rank>=2&&$a.rank===$b.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${$a.rank} and ${$b.rank}.`),assert(arraysEqual(outerDimsA,outerDimsB),()=>`Error in fused matMul: outer dimensions (${outerDimsA}) and (${outerDimsB}) of Tensors with shapes ${$a.shape} and ${$b.shape} must match.`),assert(innerShapeA===innerShapeB,()=>`Error in fused matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${$a.shape} and ${$b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let outShape=$a.shape.slice(0,-2).concat([outerShapeA,outerShapeB]),a3D=transposeA?reshape($a,[batchDimA,innerShapeA,outerShapeA]):reshape($a,[batchDimA,outerShapeA,innerShapeA]),b3D=transposeB?reshape($b,[batchDimB,outerShapeB,innerShapeB]):reshape($b,[batchDimB,innerShapeB,outerShapeB]),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused matMul"),[$bias]=makeTypesMatch($bias,$a),assertAndGetBroadcastShape(outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused matMul"));let grad2=(dy,saved)=>{let[a3D2,b3D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(reshape(dy,y.shape),y,activation2),aDer,bDer;if(!transposeA&&!transposeB?(aDer=matMul(dyActivation,b3D2,!1,!0),bDer=matMul(a3D2,dyActivation,!0,!1)):!transposeA&&transposeB?(aDer=matMul(dyActivation,b3D2,!1,!1),bDer=matMul(dyActivation,a3D2,!0,!1)):transposeA&&!transposeB?(aDer=matMul(b3D2,dyActivation,!1,!0),bDer=matMul(a3D2,dyActivation,!1,!1)):(aDer=matMul(b3D2,dyActivation,!0,!0),bDer=matMul(dyActivation,a3D2,!0,!0)),bias!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);return[aDer,bDer,biasDer]}else return[aDer,bDer]},inputs={a:a3D,b:b3D,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={transposeA,transposeB,activation:activation2,leakyreluAlpha};return bias==null?customGrad((a3D2,b3D2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D):customGrad((a3D2,b3D2,$bias2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res,$bias2]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D,$bias)}var matMul2=op({fusedMatMul_});function hammingWindow_(windowLength){return cosineWindow(windowLength,.54,.46)}var hammingWindow=op({hammingWindow_});function hannWindow_(windowLength){return cosineWindow(windowLength,.5,.5)}var hannWindow=op({hannWindow_});function frame_(signal2,frameLength,frameStep,padEnd=!1,padValue=0){let start=0,output=[];for(;start+frameLength<=signal2.size;)output.push(slice(signal2,start,frameLength)),start+=frameStep;if(padEnd)for(;start`Error in cropAndResize: image must be rank 4,but got rank ${$image.rank}.`),assert($boxes.rank===2&&$boxes.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${numBoxes},4] but had shape ${$boxes.shape}.`),assert($boxInd.rank===1&&$boxInd.shape[0]===numBoxes,()=>`Error in cropAndResize: boxInd must be have size [${numBoxes}] but had shape ${$boxes.shape}.`),assert(cropSize.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${cropSize.length}.`),assert(cropSize[0]>=1&&cropSize[1]>=1,()=>`cropSize must be atleast [1,1], but was ${cropSize}`),assert(method==="bilinear"||method==="nearest",()=>`method must be bilinear or nearest, but was ${method}`);let inputs={image:$image,boxes:$boxes,boxInd:$boxInd},attrs={method,extrapolationValue,cropSize};return ENGINE.runKernel(CropAndResize,inputs,attrs)}var cropAndResize=op({cropAndResize_});function flipLeftRight_(image3){let $image=convertToTensor(image3,"image","flipLeftRight","float32");assert($image.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image};return ENGINE.runKernel(FlipLeftRight,inputs,{})}var flipLeftRight=op({flipLeftRight_});function rotateWithOffset_(image3,radians,fillValue=0,center=.5){let $image=convertToTensor(image3,"image","rotateWithOffset","float32");assert($image.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image},attrs={radians,fillValue,center};return ENGINE.runKernel(RotateWithOffset,inputs,attrs)}var rotateWithOffset=op({rotateWithOffset_});function nonMaxSuppSanityCheck(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){iouThreshold==null&&(iouThreshold=.5),scoreThreshold==null&&(scoreThreshold=Number.NEGATIVE_INFINITY),softNmsSigma==null&&(softNmsSigma=0);let numBoxes=boxes.shape[0];return maxOutputSize=Math.min(maxOutputSize,numBoxes),assert(0<=iouThreshold&&iouThreshold<=1,()=>`iouThreshold must be in [0, 1], but was '${iouThreshold}'`),assert(boxes.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${boxes.rank}'`),assert(boxes.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${boxes.shape[1]}`),assert(scores.rank===1,()=>"scores must be a 1D tensor"),assert(scores.shape[0]===numBoxes,()=>`scores has incompatible shape with boxes. Expected ${numBoxes}, but was ${scores.shape[0]}`),assert(0<=softNmsSigma&&softNmsSigma<=1,()=>`softNmsSigma must be in [0, 1], but was '${softNmsSigma}'`),{maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}function nonMaxSuppression_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let attrs={maxOutputSize,iouThreshold,scoreThreshold};return ENGINE.runKernel(NonMaxSuppressionV3,{boxes:$boxes,scores:$scores},attrs)}var nonMaxSuppression=op({nonMaxSuppression_});function binaryInsert(arr,element,comparator){let index=binarySearch(arr,element,comparator),insertionPoint=index<0?-(index+1):index;arr.splice(insertionPoint,0,element)}function binarySearch(arr,target,comparator){return binarySearch_(arr,target,comparator||defaultComparator)}function defaultComparator(a,b){return a>b?1:a>>1);let compareResult=comparator(target,arr[middle]);compareResult>0?left=middle+1:(right=middle,found=!compareResult)}return found?left:-left-1}function nonMaxSuppressionV3Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0)}function nonMaxSuppressionV4Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0,!1,padToMaxOutputSize,!0)}function nonMaxSuppressionV5Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,!0)}function nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,returnScoresTensor=!1,padToMaxOutputSize=!1,returnValidOutputs=!1){let candidates=[];for(let i=0;iscoreThreshold&&candidates.push({score:scores[i],boxIndex:i,suppressBeginIndex:0});candidates.sort(ascendingComparator);let scale2=softNmsSigma>0?-.5/softNmsSigma:0,selectedIndices=[],selectedScores=[];for(;selectedIndices.length0;){let candidate=candidates.pop(),{score:originalScore,boxIndex,suppressBeginIndex}=candidate;if(originalScore=suppressBeginIndex;--j){let iou=intersectionOverUnion(boxes,boxIndex,selectedIndices[j]);if(iou>=iouThreshold){ignoreCandidate=!0;break}if(candidate.score=candidate.score*suppressWeight(iouThreshold,scale2,iou),candidate.score<=scoreThreshold)break}candidate.suppressBeginIndex=selectedIndices.length,ignoreCandidate||(candidate.score===originalScore?(selectedIndices.push(boxIndex),selectedScores.push(candidate.score)):candidate.score>scoreThreshold&&binaryInsert(candidates,candidate,ascendingComparator))}let validOutputs=selectedIndices.length,elemsToPad=maxOutputSize-validOutputs;padToMaxOutputSize&&elemsToPad>0&&(selectedIndices.push(...new Array(elemsToPad).fill(0)),selectedScores.push(...new Array(elemsToPad).fill(0)));let result={selectedIndices};return returnScoresTensor&&(result.selectedScores=selectedScores),returnValidOutputs&&(result.validOutputs=validOutputs),result}function intersectionOverUnion(boxes,i,j){let iCoord=boxes.subarray(i*4,i*4+4),jCoord=boxes.subarray(j*4,j*4+4),yminI=Math.min(iCoord[0],iCoord[2]),xminI=Math.min(iCoord[1],iCoord[3]),ymaxI=Math.max(iCoord[0],iCoord[2]),xmaxI=Math.max(iCoord[1],iCoord[3]),yminJ=Math.min(jCoord[0],jCoord[2]),xminJ=Math.min(jCoord[1],jCoord[3]),ymaxJ=Math.max(jCoord[0],jCoord[2]),xmaxJ=Math.max(jCoord[1],jCoord[3]),areaI=(ymaxI-yminI)*(xmaxI-xminI),areaJ=(ymaxJ-yminJ)*(xmaxJ-xminJ);if(areaI<=0||areaJ<=0)return 0;let intersectionYmin=Math.max(yminI,yminJ),intersectionXmin=Math.max(xminI,xminJ),intersectionYmax=Math.min(ymaxI,ymaxJ),intersectionXmax=Math.min(xmaxI,xmaxJ),intersectionArea=Math.max(intersectionYmax-intersectionYmin,0)*Math.max(intersectionXmax-intersectionXmin,0);return intersectionArea/(areaI+areaJ-intersectionArea)}function suppressWeight(iouThreshold,scale2,iou){let weight=Math.exp(scale2*iou*iou);return iou<=iouThreshold?weight:0}function ascendingComparator(c1,c2){return c1.score-c2.score||c1.score===c2.score&&c2.boxIndex-c1.boxIndex}async function nonMaxSuppressionAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices}=nonMaxSuppressionV3Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),tensor1d(selectedIndices,"int32")}var nonMaxSuppressionAsync=nonMaxSuppressionAsync_;function nonMaxSuppressionWithScore_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma},result=ENGINE.runKernel(NonMaxSuppressionV5,inputs,attrs);return{selectedIndices:result[0],selectedScores:result[1]}}var nonMaxSuppressionWithScore=op({nonMaxSuppressionWithScore_});async function nonMaxSuppressionWithScoreAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices,selectedScores}=nonMaxSuppressionV5Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),selectedScores:tensor1d(selectedScores)}}var nonMaxSuppressionWithScoreAsync=nonMaxSuppressionWithScoreAsync_;function nonMaxSuppressionPadded_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize:$maxOutputSize,iouThreshold:$iouThreshold,scoreThreshold:$scoreThreshold,padToMaxOutputSize},result=ENGINE.runKernel(NonMaxSuppressionV4,inputs,attrs);return{selectedIndices:result[0],validOutputs:result[1]}}var nonMaxSuppressionPadded=op({nonMaxSuppressionPadded_});async function nonMaxSuppressionPaddedAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,[boxesVals,scoresVals]=await Promise.all([$boxes.data(),$scores.data()]),{selectedIndices,validOutputs}=nonMaxSuppressionV4Impl(boxesVals,scoresVals,$maxOutputSize,$iouThreshold,$scoreThreshold,padToMaxOutputSize);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),validOutputs:scalar(validOutputs,"int32")}}var nonMaxSuppressionPaddedAsync=nonMaxSuppressionPaddedAsync_;function resizeBilinear_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeBilinear");assert($images.rank===3||$images.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${size}.`),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeBilinear,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeBilinear=op({resizeBilinear_});function resizeNearestNeighbor_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeNearestNeighbor");assert($images.rank===3||$images.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${size}.`),assert($images.dtype==="float32"||$images.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeNearestNeighbor,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeNearestNeighbor=op({resizeNearestNeighbor_});function bandPart_(a,numLower,numUpper){assert(numLower%1==0,()=>`bandPart(): numLower must be an integer, got ${numLower}.`),assert(numUpper%1==0,()=>`bandPart(): numUpper must be an integer, got ${numUpper}.`);let $a=convertToTensor(a,"a","bandPart");assert($a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${$a.rank}.`);let shape=$a.shape,[M,N]=$a.shape.slice(-2);if(!(numLower<=M))throw new Error(`bandPart(): numLower (${numLower}) must not be greater than the number of rows (${M}).`);if(!(numUpper<=N))throw new Error(`bandPart(): numUpper (${numUpper}) must not be greater than the number of columns (${N}).`);numLower<0&&(numLower=M),numUpper<0&&(numUpper=N);let i=reshape(range(0,M,1,"int32"),[-1,1]),j=range(0,N,1,"int32"),ij=sub(i,j),inBand=logicalAnd(lessEqual(ij,scalar(+numLower,"int32")),greaterEqual(ij,scalar(-numUpper,"int32"))),zero=zeros([M,N],$a.dtype);return reshape(stack(unstack(reshape($a,[-1,M,N])).map(mat=>where(inBand,mat,zero))),shape)}var bandPart=op({bandPart_});function gramSchmidt_(xs){let inputIsTensor2D;if(Array.isArray(xs)){inputIsTensor2D=!1,assert(xs!=null&&xs.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let dim=xs[0].shape[0];for(let i=1;i`Gram-Schmidt: Non-unique lengths found in the input vectors: (${xs[i].shape[0]} vs. ${dim})`)}else inputIsTensor2D=!0,xs=split(xs,xs.shape[0],0).map(x=>squeeze(x,[0]));assert(xs.length<=xs[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${xs.length}) exceeds number of dimensions (${xs[0].shape[0]}).`);let ys=[],xs1d=xs;for(let i=0;i{let x=xs1d[i];if(i>0)for(let j=0;j=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${x.rank}`),x.rank===2)return qr2d(x,fullMatrices);{let outerDimsProd=x.shape.slice(0,x.shape.length-2).reduce((value,prev)=>value*prev),x2ds=unstack(reshape(x,[outerDimsProd,x.shape[x.shape.length-2],x.shape[x.shape.length-1]]),0),q2ds=[],r2ds=[];x2ds.forEach(x2d=>{let[q2d,r2d]=qr2d(x2d,fullMatrices);q2ds.push(q2d),r2ds.push(r2d)});let q=reshape(stack(q2ds,0),x.shape),r=reshape(stack(r2ds,0),x.shape);return[q,r]}}function qr2d(x,fullMatrices=!1){return ENGINE.tidy(()=>{assert(x.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${x.shape.length}D Tensor.`);let m=x.shape[0],n=x.shape[1],q=eye(m),r=clone(x),one2D=tensor2d([[1]],[1,1]),w=clone(one2D),iters=m>=n?n:m;for(let j=0;j{let rjEnd1=slice(r,[j,j],[m-j,1]),normX=norm(rjEnd1),rjj=slice(r,[j,j],[1,1]),s=where(greater(rjj,0),tensor2d([[-1]]),tensor2d([[1]])),u1=sub(rjj,mul(s,normX)),wPre=div(rjEnd1,u1);wPre.shape[0]===1?w=clone(one2D):w=concat([one2D,slice(wPre,[1,0],[wPre.shape[0]-1,wPre.shape[1]])],0);let tau=neg(div(matMul(s,u1),normX)),rjEndAll=slice(r,[j,0],[m-j,n]),tauTimesW=mul(tau,w),wT=transpose(w);if(j===0)r=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));else{let rTimesTau=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));r=concat([slice(r,[0,0],[j,n]),rTimesTau],0)}let tawTimesWT=transpose(tauTimesW),qAllJEnd=slice(q,[0,j],[m,q.shape[1]-j]);if(j===0)q=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));else{let qTimesTau=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));q=concat([slice(q,[0,0],[m,j]),qTimesTau],1)}return[w,r,q]}),dispose([rTemp,wTemp,qTemp])}return!fullMatrices&&m>n&&(q=slice(q,[0,0],[m,n]),r=slice(r,[0,0],[n,n])),[q,r]})}var qr=op({qr_}),Reduction;(function(Reduction2){Reduction2[Reduction2.NONE=0]="NONE",Reduction2[Reduction2.MEAN=1]="MEAN",Reduction2[Reduction2.SUM=2]="SUM",Reduction2[Reduction2.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Reduction||(Reduction={}));function computeWeightedLoss_(losses4,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $losses=convertToTensor(losses4,"losses","computeWeightedLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","computeWeightedLoss"));let weightedLoss=$weights==null?$losses:mul($losses,$weights);if(reduction2===Reduction.NONE)return weightedLoss;if(reduction2===Reduction.SUM)return sum2(weightedLoss);if(reduction2===Reduction.MEAN){if($weights==null)return mean(weightedLoss);{let broadcastFactor=$losses.size/$weights.size,result=div(sum2(weightedLoss),sum2($weights));return broadcastFactor>1?div(result,scalar(broadcastFactor)):result}}if(reduction2===Reduction.SUM_BY_NONZERO_WEIGHTS){if($weights==null)return div(sum2(weightedLoss),scalar($losses.size));{let broadcastedWeights=mul($weights,ones2($losses.shape)),numNonZeros=cast(sum2(notEqual(broadcastedWeights,scalar(0))),"float32");return div(sum2(weightedLoss),numNonZeros)}}throw Error(`Unknown reduction: ${reduction2}`)}var computeWeightedLoss=op({computeWeightedLoss_});function absoluteDifference_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","absoluteDifference"),$predictions=convertToTensor(predictions,"predictions","absoluteDifference"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","absoluteDifference")),assertShapesMatch($labels.shape,$predictions.shape,"Error in absoluteDifference: ");let losses4=abs(sub($labels,$predictions));return computeWeightedLoss(losses4,$weights,reduction2)}var absoluteDifference=op({absoluteDifference_});function cosineDistance_(labels,predictions,axis,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","cosineDistance"),$predictions=convertToTensor(predictions,"predictions","cosineDistance"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","cosineDistance")),assertShapesMatch($labels.shape,$predictions.shape,"Error in cosineDistance: ");let one=scalar(1),losses4=sub(one,sum2(mul($labels,$predictions),axis,!0));return computeWeightedLoss(losses4,$weights,reduction2)}var cosineDistance=op({cosineDistance_});function hingeLoss_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","hingeLoss"),$predictions=convertToTensor(predictions,"predictions","hingeLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","hingeLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in hingeLoss: ");let one=scalar(1);$labels=sub(mul(scalar(2),$labels),one);let losses4=relu(sub(one,mul($labels,$predictions)));return computeWeightedLoss(losses4,$weights,reduction2)}var hingeLoss=op({hingeLoss_});function huberLoss_(labels,predictions,weights,delta=1,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","huberLoss"),$predictions=convertToTensor(predictions,"predictions","huberLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","huberLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in huberLoss: ");let deltaScalar=scalar(delta),error=abs(sub($predictions,$labels)),quadratic=minimum(error,deltaScalar),linear=sub(error,quadratic),losses4=add2(mul(scalar(.5),square(quadratic)),mul(deltaScalar,linear));return computeWeightedLoss(losses4,$weights,reduction2)}var huberLoss=op({huberLoss_});function logLoss_(labels,predictions,weights,epsilon3=1e-7,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","logLoss"),$predictions=convertToTensor(predictions,"predictions","logLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","logLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in logLoss: ");let one=scalar(1),epsilonScalar=scalar(epsilon3),l13=neg(mul($labels,log2(add2($predictions,epsilonScalar)))),l23=mul(sub(one,$labels),log2(add2(sub(one,$predictions),epsilonScalar))),losses4=sub(l13,l23);return computeWeightedLoss(losses4,$weights,reduction2)}var logLoss=op({logLoss_});function meanSquaredError_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","meanSquaredError"),$predictions=convertToTensor(predictions,"predictions","meanSquaredError"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","meanSquaredError")),assertShapesMatch($labels.shape,$predictions.shape,"Error in meanSquaredError: ");let losses4=squaredDifference($labels,$predictions);return computeWeightedLoss(losses4,$weights,reduction2)}var meanSquaredError=op({meanSquaredError_});function sigmoidCrossEntropyWithLogits_(labels,logits){let $labels=convertToTensor(labels,"labels","sigmoidCrossEntropyWithLogits"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropyWithLogits");assertShapesMatch($labels.shape,$logits.shape,"Error in sigmoidCrossEntropyWithLogits: ");let maxOutput=relu($logits),outputXTarget=mul($logits,$labels),sigmoidOutput=log1p(exp(neg(abs($logits))));return add2(sub(maxOutput,outputXTarget),sigmoidOutput)}function sigmoidCrossEntropy_(multiClassLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $multiClassLabels=convertToTensor(multiClassLabels,"multiClassLabels","sigmoidCrossEntropy"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","sigmoidCrossEntropy")),assertShapesMatch($multiClassLabels.shape,$logits.shape,"Error in sigmoidCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),half=scalar(.5);$multiClassLabels=add2(mul($multiClassLabels,sub(one,labelSmoothingScalar)),mul(half,labelSmoothingScalar))}let losses4=sigmoidCrossEntropyWithLogits_($multiClassLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var sigmoidCrossEntropy=op({sigmoidCrossEntropy_});function softmaxCrossEntropyWithLogits_(labels,logits,dim=-1){if(dim===-1&&(dim=logits.rank-1),dim!==logits.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${logits.rank} and dim was ${dim}`);return customGrad((labels2,logits2,save)=>{let lse=logSumExp(logits2,[dim],!0),logResult=sub(cast(logits2,"float32"),lse);save([labels2,logResult]);let costVector=neg(mul(logResult,labels2));return{value:sum2(costVector,[dim]),gradFunc:(dy,saved)=>{let[labels3,logResult2]=saved,dyShape=expandShapeToKeepDim(dy.shape,[dim]);return[mul(reshape(dy,dyShape),sub(cast(labels3,"float32"),exp(logResult2))),mul(reshape(dy,dyShape),sub(exp(logResult2),cast(labels3,"float32")))]}}})(labels,logits)}function softmaxCrossEntropy_(onehotLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $onehotLabels=convertToTensor(onehotLabels,"onehotLabels","softmaxCrossEntropy"),$logits=convertToTensor(logits,"logits","softmaxCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","softmaxCrossEntropy")),assertShapesMatch($onehotLabels.shape,$logits.shape,"Error in softmaxCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),numClasses=scalar($onehotLabels.shape[1]);$onehotLabels=add2(mul($onehotLabels,sub(one,labelSmoothingScalar)),div(labelSmoothingScalar,numClasses))}let losses4=softmaxCrossEntropyWithLogits_($onehotLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var softmaxCrossEntropy=op({softmaxCrossEntropy_}),spectral={fft,ifft,rfft,irfft},signal={hammingWindow,hannWindow,frame,stft},image={flipLeftRight,resizeNearestNeighbor,resizeBilinear,rotateWithOffset,cropAndResize,nonMaxSuppression,nonMaxSuppressionAsync,nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync},linalg={bandPart,gramSchmidt,qr},losses={absoluteDifference,computeWeightedLoss,cosineDistance,hingeLoss,huberLoss,logLoss,meanSquaredError,sigmoidCrossEntropy,softmaxCrossEntropy},Optimizer=class extends Serializable{minimize(f,returnCost=!1,varList){let{value,grads:grads2}=this.computeGradients(f,varList);if(varList!=null){let gradArray=varList.map(v=>({name:v.name,tensor:grads2[v.name]}));this.applyGradients(gradArray)}else this.applyGradients(grads2);return dispose(grads2),returnCost?value:(value.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(f,varList){return variableGrads(f,varList)}dispose(){this.iterations_!=null&&dispose(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:scalar(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(weightValues){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(weightValues){return this.iterations_=(await weightValues[0].tensor.data())[0],weightValues.slice(1)}};Object.defineProperty(Optimizer,Symbol.hasInstance,{value:instance2=>instance2.minimize!=null&&instance2.computeGradients!=null&&instance2.applyGradients!=null});var AdadeltaOptimizer=class extends Optimizer{constructor(learningRate,rho,epsilon3=null){super();this.learningRate=learningRate,this.rho=rho,this.epsilon=epsilon3,this.accumulatedGrads=[],this.accumulatedUpdates=[],epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedGrads[i]==null&&(this.accumulatedGrads[i]={originalName:`${name}/accum_grad`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedUpdates[i]==null&&(this.accumulatedUpdates[i]={originalName:`${name}/accum_var`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable,accumulatedUpdate=this.accumulatedUpdates[i].variable;tidy(()=>{let newAccumulatedGrad=add2(mul(accumulatedGrad,this.rho),mul(square(gradient),1-this.rho)),updates=mul(div(sqrt(add2(accumulatedUpdate,this.epsilon)),sqrt(add2(accumulatedGrad,this.epsilon))),gradient),newAccumulatedUpdate=add2(mul(accumulatedUpdate,this.rho),mul(square(updates),1-this.rho));accumulatedGrad.assign(newAccumulatedGrad),accumulatedUpdate.assign(newAccumulatedUpdate);let newValue=add2(mul(updates,-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(dispose(this.accumulatedGrads.map(v=>v.variable)),dispose(this.accumulatedUpdates.map(v=>v.variable)))}async getWeights(){let variables=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=weightValues.length/2,trainable=!1;this.accumulatedGrads=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedUpdates=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.rho,config2.epsilon)}};AdadeltaOptimizer.className="Adadelta";registerClass(AdadeltaOptimizer);var AdagradOptimizer=class extends Optimizer{constructor(learningRate,initialAccumulatorValue=.1){super();this.learningRate=learningRate,this.initialAccumulatorValue=initialAccumulatorValue,this.accumulatedGrads=[]}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulatedGrads[i]==null){let trainable=!1;this.accumulatedGrads[i]={originalName:`${name}/accumulator`,variable:tidy(()=>fill(value.shape,this.initialAccumulatorValue).variable(trainable))}}let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable;tidy(()=>{let newAccumulatedGrad=add2(accumulatedGrad,square(gradient));accumulatedGrad.assign(newAccumulatedGrad);let newValue=add2(mul(div(gradient,sqrt(add2(newAccumulatedGrad,ENGINE.backend.epsilon()))),-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&dispose(this.accumulatedGrads.map(v=>v.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulatedGrads=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.initialAccumulatorValue)}};AdagradOptimizer.className="Adagrad";registerClass(AdagradOptimizer);var AdamOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],tidy(()=>{this.accBeta1=scalar(beta1).variable(),this.accBeta2=scalar(beta2).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let varNames=Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),oneMinusAccBeta2=sub(1,this.accBeta2);varNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${name}/v`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,secondMoment=this.accumulatedSecondMoment[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),newSecondMoment=add2(mul(secondMoment,this.beta2),mul(square(gradient),1-this.beta2)),biasCorrectedFirstMoment=div(newFirstMoment,oneMinusAccBeta1),biasCorrectedSecondMoment=div(newSecondMoment,oneMinusAccBeta2);firstMoment.assign(newFirstMoment),secondMoment.assign(newSecondMoment);let newValue=add2(mul(div(biasCorrectedFirstMoment,add2(sqrt(biasCorrectedSecondMoment),this.epsilon)),-this.learningRate),value);value.assign(newValue)}),this.accBeta1.assign(mul(this.accBeta1,this.beta1)),this.accBeta2.assign(mul(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedSecondMoment!=null&&dispose(this.accumulatedSecondMoment.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues),tidy(()=>{this.accBeta1.assign(pow(this.beta1,this.iterations_+1)),this.accBeta2.assign(pow(this.beta2,this.iterations_+1))});let variableCount=weightValues.length/2,trainable=!1;this.accumulatedFirstMoment=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedSecondMoment=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.beta1,config2.beta2,config2.epsilon)}};AdamOptimizer.className="Adam";registerClass(AdamOptimizer);var AdamaxOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null,decay=0){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.decay=decay,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],tidy(()=>{this.iteration=scalar(0).variable(),this.accBeta1=scalar(beta1).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let variableNames=Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),lr=div(-this.learningRate,add2(mul(this.iteration,this.decay),1));variableNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:zerosLike(value).variable(trainable)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${name}/v`,variable:zerosLike(value).variable(trainable)});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,weightedInfNorm=this.accumulatedWeightedInfNorm[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),ut0=mul(weightedInfNorm,this.beta2),ut1=abs(gradient),newWeightedInfNorm=maximum(ut0,ut1);firstMoment.assign(newFirstMoment),weightedInfNorm.assign(newWeightedInfNorm);let newValue=add2(mul(div(lr,oneMinusAccBeta1),div(newFirstMoment,add2(newWeightedInfNorm,this.epsilon))),value);value.assign(newValue)}),this.iteration.assign(add2(this.iteration,1)),this.accBeta1.assign(mul(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedWeightedInfNorm!=null&&dispose(this.accumulatedWeightedInfNorm.map(v=>v.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(weightValues){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.beta1,config2.beta2,config2.epsilon,config2.decay)}};AdamaxOptimizer.className="Adamax";registerClass(AdamaxOptimizer);var SGDOptimizer=class extends Optimizer{constructor(learningRate){super();this.learningRate=learningRate,this.setLearningRate(learningRate)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients)).forEach((name,i)=>{let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let value=ENGINE.registeredVariables[name];tidy(()=>{let newValue=add2(mul(this.c,gradient),value);value.assign(newValue)})}),this.incrementIterations()}setLearningRate(learningRate){this.learningRate=learningRate,this.c!=null&&this.c.dispose(),this.c=keep(scalar(-learningRate))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(weightValues){if(weightValues=await this.extractIterations(weightValues),weightValues.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(cls,config2){return new cls(config2.learningRate)}};SGDOptimizer.className="SGD";registerClass(SGDOptimizer);var MomentumOptimizer=class extends SGDOptimizer{constructor(learningRate,momentum,useNesterov=!1){super(learningRate);this.learningRate=learningRate,this.momentum=momentum,this.useNesterov=useNesterov,this.accumulations=[],this.m=scalar(this.momentum)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulations[i]==null){let trainable=!1;this.accumulations[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}}let accumulation=this.accumulations[i].variable,gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];gradient!=null&&tidy(()=>{let newValue,newAccumulation=add2(mul(this.m,accumulation),gradient);this.useNesterov?newValue=add2(mul(this.c,add2(gradient,mul(newAccumulation,this.m))),value):newValue=add2(mul(this.c,newAccumulation),value),accumulation.assign(newAccumulation),value.assign(newValue)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&dispose(this.accumulations.map(v=>v.variable))}setMomentum(momentum){this.momentum=momentum}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulations=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.momentum,config2.useNesterov)}};MomentumOptimizer.className="Momentum";registerClass(MomentumOptimizer);var RMSPropOptimizer=class extends Optimizer{constructor(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){super();if(this.learningRate=learningRate,this.decay=decay,this.momentum=momentum,this.epsilon=epsilon3,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=centered,epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon()),learningRate==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedMeanSquares[i]==null&&(this.accumulatedMeanSquares[i]={originalName:`${name}/rms`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMoments[i]==null&&(this.accumulatedMoments[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMeanGrads[i]==null&&this.centered&&(this.accumulatedMeanGrads[i]={originalName:`${name}/mg`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedMeanSquare=this.accumulatedMeanSquares[i].variable,accumulatedMoments=this.accumulatedMoments[i].variable;tidy(()=>{let newAccumulatedMeanSquare=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay));if(this.centered){let accumulatedMeanGrad=this.accumulatedMeanGrads[i].variable,newAccumulatedMeanGrad=add2(mul(accumulatedMeanGrad,this.decay),mul(gradient,1-this.decay)),gradContribution=div(mul(gradient,this.learningRate),sqrt(sub(newAccumulatedMeanSquare,add2(square(newAccumulatedMeanGrad),this.epsilon)))),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),gradContribution);accumulatedMeanSquare.assign(newAccumulatedMeanSquare),accumulatedMeanGrad.assign(newAccumulatedMeanGrad),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}else{let newAccumulatedMeanSquare2=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay)),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),div(mul(gradient,this.learningRate),sqrt(add2(newAccumulatedMeanSquare2,this.epsilon))));accumulatedMeanSquare.assign(newAccumulatedMeanSquare2),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&dispose(this.accumulatedMeanSquares.map(v=>v.variable)),this.accumulatedMeanGrads!=null&&this.centered&&dispose(this.accumulatedMeanGrads.map(v=>v.variable)),this.accumulatedMoments!=null&&dispose(this.accumulatedMoments.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&variables.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=this.centered?weightValues.length/3:weightValues.length/2,trainable=!1;this.accumulatedMeanSquares=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedMoments=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.centered&&(this.accumulatedMeanGrads=weightValues.slice(variableCount*2,variableCount*3).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.decay,config2.momentum,config2.epsilon,config2.centered)}};RMSPropOptimizer.className="RMSProp";registerClass(RMSPropOptimizer);var OptimizerConstructors=class{static sgd(learningRate){return new SGDOptimizer(learningRate)}static momentum(learningRate,momentum,useNesterov=!1){return new MomentumOptimizer(learningRate,momentum,useNesterov)}static rmsprop(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){return new RMSPropOptimizer(learningRate,decay,momentum,epsilon3,centered)}static adam(learningRate=.001,beta1=.9,beta2=.999,epsilon3=null){return new AdamOptimizer(learningRate,beta1,beta2,epsilon3)}static adadelta(learningRate=.001,rho=.95,epsilon3=null){return new AdadeltaOptimizer(learningRate,rho,epsilon3)}static adamax(learningRate=.002,beta1=.9,beta2=.999,epsilon3=null,decay=0){return new AdamaxOptimizer(learningRate,beta1,beta2,epsilon3,decay)}static adagrad(learningRate,initialAccumulatorValue=.1){return new AdagradOptimizer(learningRate,initialAccumulatorValue)}},train={sgd:OptimizerConstructors.sgd,momentum:OptimizerConstructors.momentum,adadelta:OptimizerConstructors.adadelta,adagrad:OptimizerConstructors.adagrad,rmsprop:OptimizerConstructors.rmsprop,adamax:OptimizerConstructors.adamax,adam:OptimizerConstructors.adam},delayCallback=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:f=>f())();function nextFrame(){return new Promise(resolve=>delayCallback(()=>resolve()))}var backend_util_exports={};__export2(backend_util_exports,{ERF_A1:()=>ERF_A1,ERF_A2:()=>ERF_A2,ERF_A3:()=>ERF_A3,ERF_A4:()=>ERF_A4,ERF_A5:()=>ERF_A5,ERF_P:()=>ERF_P,PARALLELIZE_THRESHOLD:()=>PARALLELIZE_THRESHOLD,SELU_SCALE:()=>SELU_SCALE,SELU_SCALEALPHA:()=>SELU_SCALEALPHA,applyActivation:()=>applyActivation,assertAndGetBroadcastShape:()=>assertAndGetBroadcastShape,assertAxesAreInnerMostDims:()=>assertAxesAreInnerMostDims,assertParamsConsistent:()=>assertParamsConsistent,assignToTypedArray:()=>assignToTypedArray,axesAreInnerMostDims:()=>axesAreInnerMostDims,calculateShapes:()=>calculateShapes,castTensor:()=>castTensor,combineLocations:()=>combineLocations,complexWithEvenIndex:()=>complexWithEvenIndex,complexWithOddIndex:()=>complexWithOddIndex,computeConv2DInfo:()=>computeConv2DInfo,computeConv3DInfo:()=>computeConv3DInfo,computeDefaultPad:()=>computeDefaultPad,computeDilation2DInfo:()=>computeDilation2DInfo,computeOptimalWindowSize:()=>computeOptimalWindowSize,computeOutAndReduceShapes:()=>computeOutAndReduceShapes,computeOutShape:()=>computeOutShape2,computePool2DInfo:()=>computePool2DInfo,computePool3DInfo:()=>computePool3DInfo,convertConv2DDataFormat:()=>convertConv2DDataFormat,eitherStridesOrDilationsAreOne:()=>eitherStridesOrDilationsAreOne,expandShapeToKeepDim:()=>expandShapeToKeepDim,exponent:()=>exponent,exponents:()=>exponents,fromStringArrayToUint8:()=>fromStringArrayToUint8,fromUint8ToStringArray:()=>fromUint8ToStringArray,getAxesPermutation:()=>getAxesPermutation,getBroadcastDims:()=>getBroadcastDims,getComplexWithIndex:()=>getComplexWithIndex,getFusedBiasGradient:()=>getFusedBiasGradient,getFusedDyActivation:()=>getFusedDyActivation,getImageCenter:()=>getImageCenter,getInnerMostAxes:()=>getInnerMostAxes,getPermuted:()=>getPermuted,getReductionAxes:()=>getReductionAxes,getReshaped:()=>getReshaped,getReshapedPermuted:()=>getReshapedPermuted,getSliceBeginCoords:()=>getSliceBeginCoords,getSliceSize:()=>getSliceSize,getUndoAxesPermutation:()=>getUndoAxesPermutation,log:()=>log22,mergeRealAndImagArrays:()=>mergeRealAndImagArrays,prepareAndValidate:()=>prepareAndValidate,prepareSplitSize:()=>prepareSplitSize,reshapeTensor:()=>reshapeTensor,segment_util:()=>segment_util_exports,shouldFuse:()=>shouldFuse,slice_util:()=>slice_util_exports,splitRealAndImagArrays:()=>splitRealAndImagArrays,tupleValuesAreOne:()=>tupleValuesAreOne,upcastType:()=>upcastType,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape,warn:()=>warn});function assertParamsConsistent(shapes,axis){let rank=shapes[0].length;shapes.forEach((shape,i)=>{assert(shape.length===rank,()=>`Error in concat${rank}D: rank of tensors[${i}] must be the same as the rank of the rest (${rank})`)}),assert(axis>=0&&axis`Error in concat${rank}D: axis must be between 0 and ${rank-1}.`);let firstShape=shapes[0];shapes.forEach((shape,i)=>{for(let r=0;r`Error in concat${rank}D: Shape of tensors[${i}] (${shape}) does not match the shape of the rest (${firstShape}) along the non-concatenated axis ${i}.`)})}function computeOutShape2(shapes,axis){let outputShape=shapes[0].slice();for(let i=1;i=blockShapeRank*2+1||i%2==1?permutedAfterBatch.push(i):permutedBeforeBatch.push(i);permuted.push(...permutedBeforeBatch),permuted.push(0),permuted.push(...permutedAfterBatch)}return permuted}function getReshapedPermuted(inputShape,blockShape,prod5,batchToSpace=!0){let reshapedPermuted=[];batchToSpace?reshapedPermuted.push(inputShape[0]/prod5):reshapedPermuted.push(inputShape[0]*prod5);for(let i=1;i"Number of splits must evenly divide the axis."),splitSizes=new Array(numOrSizeSplits).fill(x.shape[axis]/numOrSizeSplits);else{let numOfNegs=numOrSizeSplits.reduce((count2,value)=>(value===-1&&(count2+=1),count2),0);assert(numOfNegs<=1,()=>"There should be only one negative value in split array.");let negIndex=numOrSizeSplits.indexOf(-1);if(negIndex!==-1){let total=numOrSizeSplits.reduce((a,b)=>b>0?a+b:a);numOrSizeSplits[negIndex]=x.shape[axis]-total}assert(x.shape[axis]===numOrSizeSplits.reduce((a,b)=>a+b),()=>"The sum of sizes must match the size of the axis dimension."),splitSizes=numOrSizeSplits}return splitSizes}var segment_util_exports={};__export2(segment_util_exports,{collectGatherOpShapeInfo:()=>collectGatherOpShapeInfo,computeOutShape:()=>computeOutShape3,segOpComputeOptimalWindowSize:()=>segOpComputeOptimalWindowSize});function segOpComputeOptimalWindowSize(inSize,numSegments){let done=!1,res;for(inSize<=PARALLELIZE_THRESHOLD?(res=inSize,done=!0):res=nearestDivisor(inSize,Math.floor(Math.sqrt(inSize)));!done;)res>numSegments||res===inSize?done=!0:res=nearestDivisor(inSize,res+1);return res}function computeOutShape3(aShape,axis,numSegments){let outShape=[],rank=aShape.length;for(let dim=0;dimindicesRank))throw new Error(`Expect batchDims in the range of [-${indicesRank}, ${indicesRank}], but got ${batchDims}`);if(batchDims<0&&(batchDims+=indicesRank),batchDims>xRank)throw new Error(`batchDims (${batchDims}) must be less than rank(x) ( ${xRank}).`);if(axisdecodeString(val))}catch(err){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${err}`)}}function fromStringArrayToUint8(strings){return strings.map(s=>encodeString(s))}var kernel_impls_exports={};__export2(kernel_impls_exports,{nonMaxSuppressionV3Impl:()=>nonMaxSuppressionV3Impl,nonMaxSuppressionV4Impl:()=>nonMaxSuppressionV4Impl,nonMaxSuppressionV5Impl:()=>nonMaxSuppressionV5Impl,whereImpl:()=>whereImpl});var absGradConfig={kernelName:Abs,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,step(cast(x,"float32"),-1))}}},acosGradConfig={kernelName:Acos,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let a=square(cast(x,"float32")),b=sqrt(sub(scalar(1),a));return neg(div(dy,b))}}}},acoshGradConfig={kernelName:Acosh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let a=sqrt(sub(square(cast(x,"float32")),1));return div(dy,a)}}}},addGradConfig={kernelName:Add,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=dy,reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,a.shape)},b:()=>{let res=dy,reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,b.shape)}}}},addNGradConfig={kernelName:AddN,saveAllInputs:!0,gradFunc:(dy,saved)=>{let ders={};return saved.forEach((_,i)=>{ders[i]=()=>dy.clone()}),ders}},argMaxGradConfig={kernelName:ArgMax,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>zerosLike(x)}}},argMinGradConfig={kernelName:ArgMin,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>zerosLike(x)}}},asinGradConfig={kernelName:Asin,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,sqrt(sub(scalar(1),square(cast(x,"float32")))))}}},asinhGradConfig={kernelName:Asinh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let a=sqrt(add2(scalar(1),square(cast(x,"float32"))));return div(dy,a)}}}},atan2GradConfig={kernelName:Atan2,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let d=add2(square(a),square(b)),res=mul(dy,div(b,d)),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,a.shape)},b:()=>{let d=add2(square(a),square(b)),res=neg(mul(dy,div(a,d))),reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,b.shape)}}}},atanGradConfig={kernelName:Atan,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,add2(square(cast(x,"float32")),1))}}},atanhGradConfig={kernelName:Atanh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,sub(scalar(1),square(cast(x,"float32"))))}}};function avgPool3dGrad_(dy,input2,filterSize,strides,dilations=[1,1,1],pad3,dimRoundingMode){let $dy=convertToTensor(dy,"dy","avgPool3dGrad"),$input=convertToTensor(input2,"input","avgPool3dGrad"),dy5D=$dy,input5D=$input,reshapedTo5D=!1;$input.rank===4&&(reshapedTo5D=!0,dy5D=reshape($dy,[1,$dy.shape[0],$dy.shape[1],$dy.shape[2],$dy.shape[3]]),input5D=reshape($input,[1,$input.shape[0],$input.shape[1],$input.shape[2],$input.shape[3]])),assert(dy5D.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${dy5D.rank}.`),assert(input5D.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${input5D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in avgPool3dGrad: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={dy:dy5D,input:input5D},attrs={filterSize,strides,dilations,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(AvgPool3DGrad,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var avgPool3dGrad=op({avgPool3dGrad_}),avgPool3DGradConfig={kernelName:AvgPool3D,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{filterSize,strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1,1]:dilations;return{x:()=>avgPool3dGrad(dy,x,filterSize,strides,$dilations,pad3,dimRoundingMode)}}};function avgPoolGrad_(dy,input2,filterSize,strides,pad3){let $dy=convertToTensor(dy,"dy","avgPoolGrad"),$input=convertToTensor(input2,"input","avgPoolGrad");assert($input.rank===$dy.rank,()=>`Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`);let input4D=$input,dy4D=$dy,reshapedTo4D=!1;$input.rank===3&&(reshapedTo4D=!0,input4D=reshape($input,[1,$input.shape[0],$input.shape[1],$input.shape[2]]),dy4D=reshape($dy,[1,$dy.shape[0],$dy.shape[1],$dy.shape[2]])),assert(dy4D.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${dy4D.rank}.`),assert(input4D.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${input4D.rank}.`);let inputs={dy:dy4D,input:input4D},attrs={filterSize,strides,pad:pad3},res=ENGINE.runKernel(AvgPoolGrad,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var avgPoolGrad=op({avgPoolGrad_}),avgPoolGradConfig={kernelName:AvgPool,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{filterSize,strides,pad:pad3}=attrs;return{x:()=>avgPoolGrad(dy,x,filterSize,strides,pad3)}}},batchMatMulGradConfig={kernelName:BatchMatMul,inputsToSave:["a","b"],gradFunc:(dy,saved,attrs)=>{let[a,b]=saved,{transposeA,transposeB}=attrs;return!transposeA&&!transposeB?{a:()=>matMul(dy,b,!1,!0),b:()=>matMul(a,dy,!0,!1)}:!transposeA&&transposeB?{a:()=>matMul(dy,b,!1,!1),b:()=>matMul(dy,a,!0,!1)}:transposeA&&!transposeB?{a:()=>matMul(b,dy,!1,!0),b:()=>matMul(a,dy,!1,!1)}:{a:()=>matMul(b,dy,!0,!0),b:()=>matMul(dy,a,!0,!0)}}},batchToSpaceNDGradConfig={kernelName:BatchToSpaceND,gradFunc:(dy,saved,attrs)=>{let{blockShape,crops}=attrs;return{x:()=>spaceToBatchND(dy,blockShape,crops)}}},broadcastToGradConfig={kernelName:BroadcastTo,gradFunc:(dy,saved,attrs)=>{let broadCastToAttrs=attrs,inputShape=broadCastToAttrs.inputShape,outputShape=broadCastToAttrs.shape,reps=Array.from(outputShape);for(let i=inputShape.length-1;i>=0;i--)if(inputShape[i]===outputShape[i])reps[i]=1;else if(inputShape[i]!==1)throw new Error(`broadcastTo(): [${inputShape}] cannot be broadcast to [${outputShape}].`);let axes=[];for(let i=0;i1&&axes.push(i);return{x:()=>sum2(dy,axes,!0)}}},castGradConfig={kernelName:Cast,gradFunc:dy=>({x:()=>dy.clone()})},ceilGradConfig={kernelName:Ceil,gradFunc:dy=>({x:()=>zerosLike(dy)})},clipByValueGradConfig={kernelName:ClipByValue,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{clipValueMin,clipValueMax}=attrs;return{x:()=>where(logicalAnd(greaterEqual(x,clipValueMin),lessEqual(x,clipValueMax)),dy,zerosLike(dy))}}},complexAbsGradConfig={kernelName:ComplexAbs,inputsToSave:["x"],gradFunc:absGradConfig.gradFunc},concatGradConfig={kernelName:Concat,saveAllInputs:!0,gradFunc:(dy,saved,attrs)=>{let shapes=saved.map(t=>t.shape),{axis}=attrs,$axis=parseAxisParam(axis,saved[0].shape)[0],sizeSplits=shapes.map(s=>s[$axis]);return split(dy,sizeSplits,$axis).map(t=>()=>t)}},conv2DGradConfig={kernelName:Conv2D,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let[x4D,$filter]=saved,{dilations,strides,pad:pad3,dataFormat}=attrs;return assert(tupleValuesAreOne(dilations),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`),{x:()=>conv2DBackpropInput(x4D.shape,dy,$filter,strides,pad3,dataFormat),filter:()=>conv2DBackpropFilter(x4D,dy,$filter.shape,strides,pad3,dataFormat)}}},conv2DBackpropInputGradConfig={kernelName:Conv2DBackpropInput,inputsToSave:["dy","filter"],gradFunc:(ddx,saved,attrs)=>{let[dy,filter]=saved,{strides,pad:pad3,dataFormat,dimRoundingMode}=attrs;return{dy:()=>conv2d(ddx,filter,strides,pad3,dataFormat,1,dimRoundingMode),filter:()=>conv2DBackpropFilter(ddx,dy,filter.shape,strides,pad3,dataFormat,dimRoundingMode)}}};function conv3DBackpropFilter_(x,dy,filterShape,strides,pad3){let x5D=x;x.rank===4&&(x5D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2],x.shape[3]]));let dy5D=dy;dy5D.rank===4&&(dy5D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2],dy.shape[3]])),assert(x5D.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${x5D.shape}.`),assert(dy5D.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${dy5D.shape}.`),assert(filterShape.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${filterShape}.`),assert(x5D.shape[4]===filterShape[3],()=>`Error in conv3dDerFilter: depth of input ${x5D.shape[4]}) must match input depth in filter (${filterShape[3]}.`),assert(dy5D.shape[4]===filterShape[4],()=>`Error in conv3dDerFilter: depth of dy (${dy5D.shape[4]}) must match output depth for filter (${filterShape[4]}).`);let inputs={x:x5D,dy:dy5D},attrs={strides,pad:pad3,filterShape};return ENGINE.runKernel(Conv3DBackpropFilterV2,inputs,attrs)}var conv3DBackpropFilter=op({conv3DBackpropFilter_}),conv3DGradConfig={kernelName:Conv3D,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let{dilations,strides,pad:pad3}=attrs;assert(tupleValuesAreOne(dilations),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`);let[x5D,$filter]=saved;return{x:()=>conv3DBackpropInput(x5D.shape,dy,$filter,strides,pad3),filter:()=>conv3DBackpropFilter(x5D,dy,$filter.shape,strides,pad3)}}},cosGradConfig={kernelName:Cos,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(neg(sin(cast(x,"float32"))),dy)}}},coshGradConfig={kernelName:Cosh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(sinh(cast(x,"float32")),dy)}}},cumsumGradConfig={kernelName:Cumsum,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{axis,exclusive,reverse:reverse5}=attrs;return{x:()=>{let permutation=getAxesPermutation([axis],x.rank),out=cumsum(dy,axis,exclusive,!reverse5);return permutation!=null&&(out=transpose(out,permutation)),out}}}},depthwiseConv2dNativeGradConfig={kernelName:DepthwiseConv2dNative,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let{dilations,strides,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations;assert(tupleValuesAreOne($dilations),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${$dilations}'`);let[x,filter]=saved;return assert(x.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${x.rank}.`),assert(filter.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${filter.rank}.`),assert(x.shape[3]===filter.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${x.shape[3]}) must match the inChannels dimension in filter ${filter.shape[2]}.`),assert(eitherStridesOrDilationsAreOne(strides,$dilations),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${$dilations}'.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`),{x:()=>depthwiseConv2dNativeBackpropInput(x.shape,dy,filter,strides,pad3,dilations,dimRoundingMode),filter:()=>depthwiseConv2dNativeBackpropFilter(x,dy,filter.shape,strides,pad3,dilations,dimRoundingMode)}}},dilation2dGradConfig={kernelName:Dilation2D,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let[x,filter]=saved,inputInputs={x,filter,dy},filterInputs={x,filter,dy};return{x:()=>ENGINE.runKernel(Dilation2DBackpropInput,inputInputs,attrs),filter:()=>ENGINE.runKernel(Dilation2DBackpropFilter,filterInputs,attrs)}}},eluGradConfig={kernelName:Elu,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved,inputs={dy,y};return{x:()=>ENGINE.runKernel(EluGrad,inputs)}}},erfGradConfig={kernelName:Erf,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved,a=mul(exp(neg(square(x))),2/Math.sqrt(Math.PI));return{x:()=>mul(dy,a)}}},expGradConfig={kernelName:Exp,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved;return{x:()=>mul(dy,y)}}},expandDimsGradConfig={kernelName:ExpandDims,inputsToSave:["input"],gradFunc:(dy,saved)=>{let[input2]=saved;return{input:()=>reshape(dy,input2.shape)}}},expm1GradConfig={kernelName:Expm1,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,exp(x))}}},floorGradConfig={kernelName:Floor,gradFunc:dy=>({x:()=>zerosLike(dy)})},floorDivGradConfig={kernelName:FloorDiv,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=div(dy,cast(b,"float32")),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),a.shape):res},b:()=>{let res=mul(dy,cast(a,"float32")),reduceAxes=getReductionAxes(b.shape,outShape);reduceAxes.length>0&&(res=reshape(sum2(res,reduceAxes),b.shape));let tmp=square(b);return neg(div(res,cast(tmp,"float32")))}}}},fusedBatchNormGradConfig={kernelName:FusedBatchNorm,inputsToSave:["x","mean","variance","scale"],gradFunc:(dy,saved,attrs)=>{let{varianceEpsilon}=attrs,[x,mean4,variance,scale2]=saved,scaleValue=scale2==null?scalar(1):scale2,reductionAxes=getReductionAxes(mean4.shape,x.shape),tileShape=[];if(mean4.rank===1){for(let i=0;imean4.rank===1?reshape(mul(mul(dy,tile(reshape(oneOverSqrtVariance,[1,1,1,mean4.shape[0]]),tileShape)),scaleValue),x.shape):reshape(mul(mul(dy,oneOverSqrtVariance),scaleValue),x.shape),mean:()=>{let meanDer=mul(mul(oneOverSqrtVariance,scalar(-1)),dyTimesScaleValue);return mean4.rank===1&&(meanDer=sum2(meanDer,reductionAxes)),reshape(meanDer,mean4.shape)},variance:()=>{let varianceDer=mul(mul(minusHalfRCube,xMinusMean),dyTimesScaleValue);return mean4.rank===1&&(varianceDer=sum2(varianceDer,reductionAxes)),reshape(varianceDer,mean4.shape)},scale:()=>{let xMinusMean2TimesRsqrt=mul(xMinusMean,oneOverSqrtVariance),scaleDer=mul(dy,xMinusMean2TimesRsqrt);return mean4.rank===1&&(scaleDer=sum2(scaleDer,reductionAxes)),reshape(scaleDer,mean4.shape)},offset:()=>{let offsetDer=dy;return mean4.rank===1&&(offsetDer=sum2(offsetDer,reductionAxes)),reshape(offsetDer,mean4.shape)}}}},gatherGradConfig={kernelName:GatherV2,inputsToSave:["x","indices"],gradFunc:(dy,saved,attrs)=>{let[x,indices]=saved,{axis}=attrs,parsedAxis=parseAxisParam(axis,x.shape)[0];return{x:()=>{let paramsShape=x.shape,indicesSize=indices.size,outerShape=paramsShape.slice(0,parsedAxis),outerDims=outerShape.length,innerShape=paramsShape.slice(axis,paramsShape.length).slice(1),innerDims=innerShape.length,outerAxesIndices=arrayRange(0,outerDims),innerAxesIndices=arrayRange(outerDims+1,outerDims+1+innerDims),valuesShape=arrayConcat([outerShape,[indicesSize],innerShape]),values=reshape(dy,valuesShape),reshapedIndices=reshape(indices,[indicesSize]),transposeDims=arrayConcat([[outerDims],outerAxesIndices,innerAxesIndices]),valuesTranspose=transpose(values,transposeDims),paramsGrad=unsortedSegmentSum(valuesTranspose,reshapedIndices,x.shape[parsedAxis]),invertTransposeDims=getUndoAxesPermutation(transposeDims);return paramsGrad=transpose(paramsGrad,invertTransposeDims),paramsGrad},indices:()=>indices}}};function arrayRange(start,stop){let result=[];for(let i=start;i{let[a,b]=saved;return{a:()=>zerosLike(a),b:()=>zerosLike(b)}}},identityGradConfig={kernelName:Identity,gradFunc:dy=>({x:()=>cast(dy,"float32")})},isFiniteGradConfig={kernelName:IsFinite,gradFunc:dy=>({x:()=>zerosLike(dy)})},isInfGradConfig={kernelName:IsInf,gradFunc:dy=>({x:()=>zerosLike(dy)})},isNanGradConfig={kernelName:IsNan,gradFunc:dy=>({x:()=>zerosLike(dy)})},leakyReluGradConfig={kernelName:LeakyRelu,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{alpha}=attrs,mask=greater(x,0);return{x:()=>where(mask,dy,mul(dy,alpha))}}},log1pGradConfig={kernelName:Log1p,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,add2(x,1))}}},logGradConfig={kernelName:Log,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,cast(x,"float32"))}}},logSoftmaxGradConfig={kernelName:LogSoftmax,inputsToSave:[],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[value]=saved,{axis}=attrs;return{logits:()=>{let keepDims=!0,softmax6=exp(value);return sub(dy,mul(sum2(dy,axis,keepDims),softmax6))}}}};function localResponseNormalizationBackprop_(x,y,dy,depthRadius=5,bias=1,alpha=1,beta=.5){let inputs={x,y,dy},attrs={depthRadius,bias,alpha,beta};return ENGINE.runKernel(LRNGrad,inputs,attrs)}var localResponseNormalizationBackprop=op({localResponseNormalizationBackprop_}),lrnGradConfig={kernelName:LRN,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[x,y]=saved,{depthRadius,bias,alpha,beta}=attrs;return{x:()=>localResponseNormalizationBackprop(x,y,dy,depthRadius,bias,alpha,beta)}}};function gradForMinAndMax(dy,y,xOrig,origAxes){return y.rankmul(dy,cast(equal(xOrig,y),dy.dtype))}}var maxGradConfig={kernelName:Max,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let maxAttrs=attrs,{reductionIndices}=maxAttrs,x=saved[0],y=saved[1],origAxes=parseAxisParam(reductionIndices,x.shape),maxGrad=gradForMinAndMax(dy,y,x,origAxes);return{x:()=>maxGrad.x()}}},maximumGradConfig={kernelName:Maximum,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved;return{a:()=>mul(dy,cast(greaterEqual(a,b),"float32")),b:()=>mul(dy,cast(less(a,b),"float32"))}}};function maxPool3dGrad_(dy,input2,output,filterSize,strides,dilations=[1,1,1],pad3,dimRoundingMode){let $dy=convertToTensor(dy,"dy","maxPool3dGrad"),$input=convertToTensor(input2,"input","maxPool3dGrad"),$output=convertToTensor(output,"output","maxPool3dGrad"),dy5D=$dy,input5D=$input,output5D=$output,reshapedTo5D=!1;$input.rank===4&&(reshapedTo5D=!0,dy5D=reshape($dy,[1,$dy.shape[0],$dy.shape[1],$dy.shape[2],$dy.shape[3]]),input5D=reshape($input,[1,$input.shape[0],$input.shape[1],$input.shape[2],$input.shape[3]]),output5D=reshape($output,[1,$output.shape[0],$output.shape[1],$output.shape[2],$output.shape[3]])),assert(dy5D.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${dy5D.rank}.`),assert(input5D.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${input5D.rank}.`),assert(output5D.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${output5D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool3dGrad: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={dy:dy5D,input:input5D,output:output5D},attrs={filterSize,strides,dilations,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(MaxPool3DGrad,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var maxPool3dGrad=op({maxPool3dGrad_}),maxPool3DGradConfig={kernelName:MaxPool3D,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[x,y]=saved,{filterSize,strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1,1]:dilations;return{x:()=>maxPool3dGrad(dy,x,y,filterSize,strides,$dilations,pad3,dimRoundingMode)}}};function maxPoolGrad_(dy,input2,output,filterSize,strides,pad3,dimRoundingMode){let $dy=convertToTensor(dy,"dy","maxPoolGrad"),$input=convertToTensor(input2,"input","maxPoolGrad"),$output=convertToTensor(output,"output","maxPoolGrad");assert($input.rank===$dy.rank,()=>`Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`),assert($dy.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${$dy.rank}.`),assert($input.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${$input.rank}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={dy:$dy,input:$input,output:$output},attrs={filterSize,strides,pad:pad3,dimRoundingMode};return ENGINE.runKernel(MaxPoolGrad,inputs,attrs)}var maxPoolGrad=op({maxPoolGrad_}),maxPoolGradConfig={kernelName:MaxPool,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[x,y]=saved,{filterSize,strides,pad:pad3}=attrs;return{x:()=>maxPoolGrad(dy,x,y,filterSize,strides,pad3)}}},meanGradConfig={kernelName:Mean,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{axis}=attrs,axes=parseAxisParam(axis,x.shape),reduceShape=computeOutAndReduceShapes(x.shape,axes)[1],reduceSize=sizeFromShape(reduceShape);return{x:()=>{let expandedDyShape=x.shape.slice();axes.forEach(axis2=>{expandedDyShape[axis2]=1});let expandedDy=reshape(dy,expandedDyShape);return div(mul(expandedDy,ones2(x.shape,"float32")),reduceSize)}}}},minGradConfig={kernelName:Min,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let minAttrs=attrs,{axis}=minAttrs,[x,y]=saved,origAxes=parseAxisParam(axis,x.shape),minGrad=gradForMinAndMax(dy,y,x,origAxes);return{x:()=>minGrad.x()}}},minimumGradConfig={kernelName:Minimum,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved;return{a:()=>mul(dy,cast(lessEqual(a,b),"float32")),b:()=>mul(dy,cast(greater(a,b),"float32"))}}},mirrorPadGradConfig={kernelName:MirrorPad,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let x=saved[0],{paddings}=attrs,begin=paddings.map(p2=>p2[0]);return{x:()=>slice(dy,begin,x.shape)}}},modGradConfig={kernelName:Mod,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(dy,reduceAxes),a.shape):dy},b:()=>{let res=mul(dy,neg(floor(div(a,b)))),reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),b.shape):res}}}},multiplyGradConfig={kernelName:Multiply,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=mul(dy,cast(b,"float32")),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),a.shape):res},b:()=>{let res=mul(dy,cast(a,"float32")),reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),b.shape):res}}}},negGradConfig={kernelName:Neg,gradFunc:dy=>({x:()=>neg(dy)})},oneHotGradConfig={kernelName:OneHot,inputsToSave:["indices"],gradFunc:(dy,saved)=>{let indices=saved[0];return{indices:()=>zeros(indices.shape,"float32")}}},onesLikeGradConfig={kernelName:OnesLike,gradFunc:dy=>({x:()=>zerosLike(dy)})},packGradConfig={kernelName:Pack,saveAllInputs:!0,gradFunc:(dy,saved,attrs)=>{let{axis}=attrs;return unstack(dy,axis).map(t=>()=>t)}},padV2GradConfig={kernelName:PadV2,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let x=saved[0],{paddings}=attrs,begin=paddings.map(p2=>p2[0]);return{x:()=>slice(dy,begin,x.shape)}}},powGradConfig={kernelName:Pow,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(dy,saved)=>{let[a,b,y]=saved,base2=a,exp4=b,outShape=assertAndGetBroadcastShape(base2.shape,exp4.shape);return{a:()=>{let expFloat=cast(exp4,"float32"),res=mul(dy,mul(expFloat,pow(base2,sub(expFloat,scalar(1))))),reduceAxes=getReductionAxes(base2.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,base2.shape)},b:()=>{let condition=greater(base2,0),logBase=where(condition,log2(base2),zerosLike(base2)),res=mul(dy,mul(y,logBase)),reduceAxes=getReductionAxes(exp4.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,exp4.shape)}}}},preluGradConfig={kernelName:Prelu,inputsToSave:["x","alpha"],gradFunc:(dy,saved)=>{let[x,alpha]=saved,mask=greater(x,0);return{x:()=>where(mask,dy,mul(dy,alpha)),alpha:()=>{let res=where(mask,zerosLike(dy),mul(dy,x)),reduceAxes=getReductionAxes(alpha.shape,dy.shape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,alpha.shape)}}}},divGradConfig={kernelName:RealDiv,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=div(dy,cast(b,"float32")),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),a.shape):res},b:()=>{let res=mul(dy,cast(a,"float32")),reduceAxes=getReductionAxes(b.shape,outShape);reduceAxes.length>0&&(res=reshape(sum2(res,reduceAxes),b.shape));let tmp=square(b);return neg(div(res,cast(tmp,"float32")))}}}},reciprocalGradConfig={kernelName:Reciprocal,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,neg(square(x)))}}},relu6GradConfig={kernelName:Relu6,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved,mask=mul(lessEqual(x,6),step(x));return{x:()=>mul(dy,cast(mask,"float32"))}}},reluGradConfig={kernelName:Relu,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,cast(step(x),"float32"))}}},reshapeGradConfig={kernelName:Reshape,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>reshape(dy,x.shape)}}},resizeBilinearGradConfig={kernelName:ResizeBilinear,inputsToSave:["images"],gradFunc:(dy,saved,attrs)=>{let[images]=saved,inputs={dy,images};return{images:()=>ENGINE.runKernel(ResizeBilinearGrad,inputs,attrs)}}},resizeNearestNeighborGradConfig={kernelName:ResizeNearestNeighbor,inputsToSave:["images"],gradFunc:(dy,saved,attrs)=>{let[images]=saved,inputs={dy,images};return{images:()=>ENGINE.runKernel(ResizeNearestNeighborGrad,inputs,attrs)}}},reverseGradConfig={kernelName:Reverse,gradFunc:(dy,saved,attrs)=>{let{dims}=attrs,axes=parseAxisParam(dims,dy.shape);return{x:()=>reverse(dy,axes)}}},roundGradConfig={kernelName:Round,gradFunc:dy=>({x:()=>zerosLike(dy)})},rsqrtGradConfig={kernelName:Rsqrt,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>neg(div(dy,mul(pow(x,1.5),2)))}}},selectGradConfig={kernelName:Select,inputsToSave:["condition"],gradFunc:(dy,saved)=>{let[condition]=saved;return{condition:()=>cast(zerosLike(condition),"float32"),t:()=>mul(dy,cast(condition,dy.dtype)),e:()=>mul(dy,cast(logicalNot(condition),dy.dtype))}}},seluGradConfig={kernelName:Selu,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let mask=greater(x,scalar(0)),scaleAlpha2=scalar(SELU_SCALEALPHA),scale2=scalar(SELU_SCALE),greaterThanZeroDer=mul(dy,scale2),lessEqualZeroDer=mul(mul(dy,scaleAlpha2),exp(cast(x,"float32")));return where(mask,greaterThanZeroDer,lessEqualZeroDer)}}}},sigmoidGradConfig={kernelName:Sigmoid,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved;return{x:()=>mul(dy,mul(y,sub(scalar(1),y)))}}},signGradConfig={kernelName:Sign,gradFunc:dy=>({x:()=>zerosLike(dy)})},sinGradConfig={kernelName:Sin,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(cos(cast(x,"float32")),dy)}}},sinhGradConfig={kernelName:Sinh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(cosh(cast(x,"float32")),dy)}}},sliceGradConfig={kernelName:Slice,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{begin,size}=attrs,inputShape=x.shape,[begin_,size_]=parseSliceParams(x,begin,size),paddings=[];for(let i=0;ipad(dy,paddings)}}},softmaxGradConfig={kernelName:Softmax,outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[y]=saved,{dim}=attrs,keepDims=!0,dyTimesY=mul(dy,y);return{logits:()=>sub(dyTimesY,mul(sum2(dyTimesY,[dim],keepDims),y))}}},softplusGradConfig={kernelName:Softplus,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,sigmoid(x))}}},spaceToBatchNDGradConfig={kernelName:SpaceToBatchND,gradFunc:(dy,saved,attrs)=>{let{blockShape,paddings}=attrs;return{x:()=>batchToSpaceND(dy,blockShape,paddings)}}},splitVGradConfig={kernelName:SplitV,gradFunc:(dy,saved,attrs)=>{let{axis}=attrs;return{x:()=>concat(dy,axis)}}},sqrtGradConfig={kernelName:Sqrt,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,mul(sqrt(cast(x,"float32")),2))}}},squareGradConfig={kernelName:Square,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,mul(cast(x,"float32"),2))}}},squaredDifferenceGradConfig={kernelName:SquaredDifference,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,two=scalar(2);return{a:()=>mul(dy,mul(two,sub(a,b))),b:()=>mul(dy,mul(two,sub(b,a)))}}},stepGradConfig={kernelName:Step,gradFunc:dy=>({x:()=>zerosLike(dy)})},subGradConfig={kernelName:Sub,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=dy,reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,a.shape)},b:()=>{let res=dy,reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(neg(res),b.shape)}}}},sumGradConfig={kernelName:Sum,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,expandedDyShape=x.shape.slice(),{axis}=attrs;parseAxisParam(axis,x.shape).forEach(axis2=>{expandedDyShape[axis2]=1});let expandedDy=reshape(dy,expandedDyShape),derX=mul(expandedDy,ones2(x.shape,"float32"));return{x:()=>derX}}},tanGradConfig={kernelName:Tan,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,square(cos(x)))}}},tanhGradConfig={kernelName:Tanh,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved;return{x:()=>mul(sub(scalar(1),square(y)),dy)}}},tileGradConfig={kernelName:Tile,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{reps}=attrs;return{x:()=>{let xGrad=zerosLike(x);if(x.rank===1)for(let i=0;i{let transposeAttrs=attrs,{perm}=transposeAttrs,undoPerm=getUndoAxesPermutation(perm);return{x:()=>transpose(dy,undoPerm)}}},unpackGradConfig={kernelName:Unpack,gradFunc:(dy,saved,attrs)=>{let unpackAttrs=attrs,{axis}=unpackAttrs;return{value:()=>stack(dy,axis)}}},unsortedSegmentSumGradConfig={kernelName:UnsortedSegmentSum,inputsToSave:["segmentIds"],gradFunc:(dy,saved)=>{let[segmentIds]=saved;return{x:()=>gatherDropNegatives(dy,segmentIds)}}};function gatherDropNegatives(x,indices){let zeroClippedIndices=maximum(indices,zerosLike(indices)),gathered=gather(x,zeroClippedIndices),isPositive=greaterEqual(indices,scalar(0,"int32")),numIters=gathered.rank-isPositive.rank;for(let i=0;i({x:()=>zerosLike(dy)})},gradConfigs=[absGradConfig,acosGradConfig,acoshGradConfig,addGradConfig,addNGradConfig,argMaxGradConfig,argMinGradConfig,asinGradConfig,asinhGradConfig,atan2GradConfig,atanGradConfig,atanhGradConfig,avgPool3DGradConfig,avgPoolGradConfig,batchMatMulGradConfig,batchToSpaceNDGradConfig,broadcastToGradConfig,castGradConfig,ceilGradConfig,clipByValueGradConfig,complexAbsGradConfig,concatGradConfig,conv2DBackpropInputGradConfig,conv2DGradConfig,conv3DGradConfig,cosGradConfig,coshGradConfig,cumsumGradConfig,depthwiseConv2dNativeGradConfig,dilation2dGradConfig,divGradConfig,eluGradConfig,erfGradConfig,expGradConfig,expandDimsGradConfig,expm1GradConfig,floorDivGradConfig,floorGradConfig,fusedBatchNormGradConfig,gatherGradConfig,greaterEqualGradConfig,identityGradConfig,isFiniteGradConfig,isInfGradConfig,isNanGradConfig,leakyReluGradConfig,log1pGradConfig,logGradConfig,logSoftmaxGradConfig,lrnGradConfig,maxGradConfig,maxGradConfig,maximumGradConfig,maxPool3DGradConfig,maxPoolGradConfig,meanGradConfig,minGradConfig,minimumGradConfig,mirrorPadGradConfig,modGradConfig,multiplyGradConfig,negGradConfig,oneHotGradConfig,onesLikeGradConfig,packGradConfig,padV2GradConfig,padV2GradConfig,powGradConfig,preluGradConfig,reciprocalGradConfig,relu6GradConfig,reluGradConfig,reshapeGradConfig,resizeBilinearGradConfig,resizeNearestNeighborGradConfig,reverseGradConfig,roundGradConfig,rsqrtGradConfig,selectGradConfig,seluGradConfig,sigmoidGradConfig,signGradConfig,sinGradConfig,sinhGradConfig,sliceGradConfig,softmaxGradConfig,softplusGradConfig,spaceToBatchNDGradConfig,spaceToBatchNDGradConfig,splitVGradConfig,splitVGradConfig,sqrtGradConfig,squaredDifferenceGradConfig,squareGradConfig,stepGradConfig,subGradConfig,sumGradConfig,tanGradConfig,tanhGradConfig,tileGradConfig,transposeGradConfig,unpackGradConfig,unsortedSegmentSumGradConfig,zerosLikeGradConfig];for(let gradientConfig of gradConfigs)registerGradient(gradientConfig);Tensor.prototype.abs=function(){return this.throwIfDisposed(),abs(this)};Tensor.prototype.acos=function(){return this.throwIfDisposed(),acos(this)};Tensor.prototype.acosh=function(){return this.throwIfDisposed(),acosh(this)};Tensor.prototype.addStrict=function(x){return this.throwIfDisposed(),addStrict(this,x)};Tensor.prototype.add=function(b){return this.throwIfDisposed(),add2(this,b)};Tensor.prototype.all=function(axis,keepDims){return this.throwIfDisposed(),all(this,axis,keepDims)};Tensor.prototype.any=function(axis,keepDims){return this.throwIfDisposed(),any(this,axis,keepDims)};Tensor.prototype.argMax=function(axis){return this.throwIfDisposed(),argMax(this,axis)};Tensor.prototype.argMin=function(axis){return this.throwIfDisposed(),argMin(this,axis)};Tensor.prototype.asScalar=function(){return this.throwIfDisposed(),assert(this.size===1,()=>"The array must have only 1 element."),reshape(this,[])};Tensor.prototype.asType=function(dtype){return this.throwIfDisposed(),cast(this,dtype)};Tensor.prototype.as1D=function(){return this.throwIfDisposed(),reshape(this,[this.size])};Tensor.prototype.as2D=function(rows,columns){return this.throwIfDisposed(),reshape(this,[rows,columns])};Tensor.prototype.as3D=function(rows,columns,depth){return this.throwIfDisposed(),reshape(this,[rows,columns,depth])};Tensor.prototype.as4D=function(rows,columns,depth,depth2){return this.throwIfDisposed(),reshape(this,[rows,columns,depth,depth2])};Tensor.prototype.as5D=function(rows,columns,depth,depth2,depth3){return this.throwIfDisposed(),reshape(this,[rows,columns,depth,depth2,depth3])};Tensor.prototype.asin=function(){return this.throwIfDisposed(),asin(this)};Tensor.prototype.asinh=function(){return this.throwIfDisposed(),asinh(this)};Tensor.prototype.atan=function(){return this.throwIfDisposed(),atan(this)};Tensor.prototype.atan2=function(b){return this.throwIfDisposed(),atan2(this,b)};Tensor.prototype.atanh=function(){return this.throwIfDisposed(),atanh(this)};Tensor.prototype.avgPool=function(filterSize,strides,pad3,dimRoundingMode){return this.throwIfDisposed(),avgPool(this,filterSize,strides,pad3,dimRoundingMode)};Tensor.prototype.batchToSpaceND=function(blockShape,crops){return this.throwIfDisposed(),batchToSpaceND(this,blockShape,crops)};Tensor.prototype.batchNorm=function(mean4,variance,offset,scale2,varianceEpsilon){return this.throwIfDisposed(),batchNorm(this,mean4,variance,offset,scale2,varianceEpsilon)};Tensor.prototype.broadcastTo=function(shape){return this.throwIfDisposed(),broadcastTo(this,shape)};Tensor.prototype.cast=function(dtype){return this.throwIfDisposed(),cast(this,dtype)};Tensor.prototype.ceil=function(){return this.throwIfDisposed(),ceil(this)};Tensor.prototype.clipByValue=function(min6,max6){return this.throwIfDisposed(),clipByValue(this,min6,max6)};Tensor.prototype.concat=function(x,axis){return this.throwIfDisposed(),x instanceof Tensor&&(x=[x]),concat([this,...x],axis)};Tensor.prototype.conv1d=function(filter,stride,pad3,dataFormat,dilation,dimRoundingMode){return this.throwIfDisposed(),conv1d(this,filter,stride,pad3,dataFormat,dilation,dimRoundingMode)};Tensor.prototype.conv2dTranspose=function(filter,outputShape,strides,pad3,dimRoundingMode){return this.throwIfDisposed(),conv2dTranspose(this,filter,outputShape,strides,pad3,dimRoundingMode)};Tensor.prototype.conv2d=function(filter,strides,pad3,dataFormat,dilations,dimRoundingMode){return this.throwIfDisposed(),conv2d(this,filter,strides,pad3,dataFormat,dilations,dimRoundingMode)};Tensor.prototype.cos=function(){return this.throwIfDisposed(),cos(this)};Tensor.prototype.cosh=function(){return this.throwIfDisposed(),cosh(this)};Tensor.prototype.cumsum=function(axis,exclusive,reverse5){return this.throwIfDisposed(),cumsum(this,axis,exclusive,reverse5)};Tensor.prototype.depthToSpace=function(blockSize,dataFormat){return this.throwIfDisposed(),depthToSpace(this,blockSize,dataFormat)};Tensor.prototype.depthwiseConv2D=function(filter,strides,pad3,dataFormat,dilations,dimRoundingMode){return deprecationWarn("depthwiseConv2D is deprecated, use depthwiseConv2d instead"),this.throwIfDisposed(),depthwiseConv2d(this,filter,strides,pad3,dataFormat,dilations,dimRoundingMode)};Tensor.prototype.depthwiseConv2d=function(filter,strides,pad3,dataFormat,dilations,dimRoundingMode){return this.throwIfDisposed(),depthwiseConv2d(this,filter,strides,pad3,dataFormat,dilations,dimRoundingMode)};Tensor.prototype.dilation2d=function(filter,strides,pad3,dilations,dataFormat){return this.throwIfDisposed(),dilation2d(this,filter,strides,pad3,dilations,dataFormat)};Tensor.prototype.divNoNan=function(b){return this.throwIfDisposed(),divNoNan(this,b)};Tensor.prototype.divStrict=function(x){return this.throwIfDisposed(),divStrict(this,x)};Tensor.prototype.div=function(b){return this.throwIfDisposed(),div(this,b)};Tensor.prototype.dot=function(b){return this.throwIfDisposed(),dot(this,b)};Tensor.prototype.elu=function(){return this.throwIfDisposed(),elu(this)};Tensor.prototype.equalStrict=function(x){return this.throwIfDisposed(),equalStrict(this,x)};Tensor.prototype.equal=function(b){return this.throwIfDisposed(),equal(this,b)};Tensor.prototype.erf=function(){return this.throwIfDisposed(),erf(this)};Tensor.prototype.exp=function(){return this.throwIfDisposed(),exp(this)};Tensor.prototype.expandDims=function(axis){return this.throwIfDisposed(),expandDims(this,axis)};Tensor.prototype.expm1=function(){return this.throwIfDisposed(),expm1(this)};Tensor.prototype.fft=function(){return this.throwIfDisposed(),fft(this)};Tensor.prototype.flatten=function(){return this.throwIfDisposed(),reshape(this,[this.size])};Tensor.prototype.floor=function(){return this.throwIfDisposed(),floor(this)};Tensor.prototype.floorDiv=function(b){return this.throwIfDisposed(),floorDiv(this,b)};Tensor.prototype.gather=function(indices,axis){return this.throwIfDisposed(),gather(this,indices,axis)};Tensor.prototype.greaterEqualStrict=function(x){return this.throwIfDisposed(),greaterEqualStrict(this,x)};Tensor.prototype.greaterEqual=function(b){return this.throwIfDisposed(),greaterEqual(this,b)};Tensor.prototype.greaterStrict=function(x){return this.throwIfDisposed(),greaterStrict(this,x)};Tensor.prototype.greater=function(b){return this.throwIfDisposed(),greater(this,b)};Tensor.prototype.ifft=function(){return this.throwIfDisposed(),ifft(this)};Tensor.prototype.irfft=function(){return this.throwIfDisposed(),irfft(this)};Tensor.prototype.isFinite=function(){return this.throwIfDisposed(),isFinite2(this)};Tensor.prototype.isInf=function(){return this.throwIfDisposed(),isInf(this)};Tensor.prototype.isNaN=function(){return this.throwIfDisposed(),isNaN2(this)};Tensor.prototype.leakyRelu=function(alpha){return this.throwIfDisposed(),leakyRelu(this,alpha)};Tensor.prototype.lessEqualStrict=function(x){return this.throwIfDisposed(),lessEqualStrict(this,x)};Tensor.prototype.lessEqual=function(b){return this.throwIfDisposed(),lessEqual(this,b)};Tensor.prototype.lessStrict=function(x){return this.throwIfDisposed(),lessStrict(this,x)};Tensor.prototype.less=function(b){return this.throwIfDisposed(),less(this,b)};Tensor.prototype.localResponseNormalization=function(depthRadius,bias,alpha,beta){return this.throwIfDisposed(),localResponseNormalization(this,depthRadius,bias,alpha,beta)};Tensor.prototype.logSigmoid=function(){return this.throwIfDisposed(),logSigmoid(this)};Tensor.prototype.logSoftmax=function(axis){return this.throwIfDisposed(),logSoftmax(this,axis)};Tensor.prototype.logSumExp=function(axis,keepDims){return this.throwIfDisposed(),logSumExp(this,axis,keepDims)};Tensor.prototype.log=function(){return this.throwIfDisposed(),log2(this)};Tensor.prototype.log1p=function(){return this.throwIfDisposed(),log1p(this)};Tensor.prototype.logicalAnd=function(b){return this.throwIfDisposed(),logicalAnd(this,b)};Tensor.prototype.logicalNot=function(){return this.throwIfDisposed(),logicalNot(this)};Tensor.prototype.logicalOr=function(b){return this.throwIfDisposed(),logicalOr(this,b)};Tensor.prototype.logicalXor=function(b){return this.throwIfDisposed(),logicalXor(this,b)};Tensor.prototype.matMul=function(b,transposeA,transposeB){return this.throwIfDisposed(),matMul(this,b,transposeA,transposeB)};Tensor.prototype.maxPool=function(filterSize,strides,pad3,dimRoundingMode){return this.throwIfDisposed(),maxPool(this,filterSize,strides,pad3,dimRoundingMode)};Tensor.prototype.max=function(axis,keepDims){return this.throwIfDisposed(),max(this,axis,keepDims)};Tensor.prototype.maximumStrict=function(x){return this.throwIfDisposed(),maximumStrict(this,x)};Tensor.prototype.maximum=function(b){return this.throwIfDisposed(),maximum(this,b)};Tensor.prototype.mean=function(axis,keepDims){return this.throwIfDisposed(),mean(this,axis,keepDims)};Tensor.prototype.min=function(axis,keepDims){return this.throwIfDisposed(),min(this,axis,keepDims)};Tensor.prototype.minimumStrict=function(x){return this.throwIfDisposed(),minimumStrict(this,x)};Tensor.prototype.minimum=function(b){return this.throwIfDisposed(),minimum(this,b)};Tensor.prototype.mirrorPad=function(paddings,mode){return this.throwIfDisposed(),mirrorPad(this,paddings,mode)};Tensor.prototype.modStrict=function(x){return this.throwIfDisposed(),modStrict(this,x)};Tensor.prototype.mod=function(b){return this.throwIfDisposed(),mod(this,b)};Tensor.prototype.mulStrict=function(x){return this.throwIfDisposed(),mulStrict(this,x)};Tensor.prototype.mul=function(b){return this.throwIfDisposed(),mul(this,b)};Tensor.prototype.neg=function(){return this.throwIfDisposed(),neg(this)};Tensor.prototype.norm=function(ord,axis,keepDims){return this.throwIfDisposed(),norm(this,ord,axis,keepDims)};Tensor.prototype.notEqualStrict=function(x){return this.throwIfDisposed(),notEqualStrict(this,x)};Tensor.prototype.notEqual=function(b){return this.throwIfDisposed(),notEqual(this,b)};Tensor.prototype.oneHot=function(depth,onValue=1,offValue=0){return this.throwIfDisposed(),oneHot(this,depth,onValue,offValue)};Tensor.prototype.onesLike=function(){return this.throwIfDisposed(),onesLike(this)};Tensor.prototype.pad=function(paddings,constantValue){return this.throwIfDisposed(),pad(this,paddings,constantValue)};Tensor.prototype.pool=function(windowShape,poolingType,padding,dilationRate,strides){return this.throwIfDisposed(),pool(this,windowShape,poolingType,padding,dilationRate,strides)};Tensor.prototype.powStrict=function(exp4){return this.throwIfDisposed(),powStrict(this,exp4)};Tensor.prototype.pow=function(exp4){return this.throwIfDisposed(),pow(this,exp4)};Tensor.prototype.prelu=function(alpha){return this.throwIfDisposed(),prelu(this,alpha)};Tensor.prototype.prod=function(axis,keepDims){return this.throwIfDisposed(),prod(this,axis,keepDims)};Tensor.prototype.reciprocal=function(){return this.throwIfDisposed(),reciprocal(this)};Tensor.prototype.relu=function(){return this.throwIfDisposed(),relu(this)};Tensor.prototype.relu6=function(){return this.throwIfDisposed(),relu6(this)};Tensor.prototype.reshapeAs=function(x){return this.throwIfDisposed(),reshape(this,x.shape)};Tensor.prototype.reshape=function(shape){return this.throwIfDisposed(),reshape(this,shape)};Tensor.prototype.resizeBilinear=function(newShape2D,alignCorners,halfPixelCenters){return this.throwIfDisposed(),resizeBilinear(this,newShape2D,alignCorners,halfPixelCenters)};Tensor.prototype.resizeNearestNeighbor=function(newShape2D,alignCorners,halfFloatCenters){return this.throwIfDisposed(),resizeNearestNeighbor(this,newShape2D,alignCorners,halfFloatCenters)};Tensor.prototype.reverse=function(axis){return this.throwIfDisposed(),reverse(this,axis)};Tensor.prototype.rfft=function(){return this.throwIfDisposed(),rfft(this)};Tensor.prototype.round=function(){return this.throwIfDisposed(),round2(this)};Tensor.prototype.rsqrt=function(){return this.throwIfDisposed(),rsqrt(this)};Tensor.prototype.selu=function(){return this.throwIfDisposed(),selu(this)};Tensor.prototype.separableConv2d=function(depthwiseFilter,pointwiseFilter,strides,pad3,dilation,dataFormat){return this.throwIfDisposed(),separableConv2d(this,depthwiseFilter,pointwiseFilter,strides,pad3,dilation,dataFormat)};Tensor.prototype.sigmoid=function(){return this.throwIfDisposed(),sigmoid(this)};Tensor.prototype.sign=function(){return this.throwIfDisposed(),sign(this)};Tensor.prototype.sin=function(){return this.throwIfDisposed(),sin(this)};Tensor.prototype.sinh=function(){return this.throwIfDisposed(),sinh(this)};Tensor.prototype.slice=function(begin,size){return this.throwIfDisposed(),slice(this,begin,size)};Tensor.prototype.softmax=function(dim){return this.throwIfDisposed(),softmax(this,dim)};Tensor.prototype.softplus=function(){return this.throwIfDisposed(),softplus(this)};Tensor.prototype.spaceToBatchND=function(blockShape,paddings){return this.throwIfDisposed(),spaceToBatchND(this,blockShape,paddings)};Tensor.prototype.split=function(numOrSizeSplits,axis){return this.throwIfDisposed(),split(this,numOrSizeSplits,axis)};Tensor.prototype.sqrt=function(){return this.throwIfDisposed(),sqrt(this)};Tensor.prototype.square=function(){return this.throwIfDisposed(),square(this)};Tensor.prototype.squaredDifference=function(b){return this.throwIfDisposed(),squaredDifference(this,b)};Tensor.prototype.squaredDifferenceStrict=function(x){return this.throwIfDisposed(),squaredDifferenceStrict(this,x)};Tensor.prototype.squeeze=function(axis){return this.throwIfDisposed(),squeeze(this,axis)};Tensor.prototype.stack=function(x,axis){this.throwIfDisposed();let tensorsToBeStacked=x instanceof Tensor?[this,x]:[this,...x];return stack(tensorsToBeStacked,axis)};Tensor.prototype.step=function(alpha){return this.throwIfDisposed(),step(this,alpha)};Tensor.prototype.stridedSlice=function(begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask){return this.throwIfDisposed(),stridedSlice(this,begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask)};Tensor.prototype.subStrict=function(x){return this.throwIfDisposed(),subStrict(this,x)};Tensor.prototype.sub=function(b){return this.throwIfDisposed(),sub(this,b)};Tensor.prototype.sum=function(axis,keepDims){return this.throwIfDisposed(),sum2(this,axis,keepDims)};Tensor.prototype.tan=function(){return this.throwIfDisposed(),tan(this)};Tensor.prototype.tanh=function(){return this.throwIfDisposed(),tanh2(this)};Tensor.prototype.tile=function(reps){return this.throwIfDisposed(),tile(this,reps)};Tensor.prototype.toBool=function(){return this.throwIfDisposed(),cast(this,"bool")};Tensor.prototype.toFloat=function(){return this.throwIfDisposed(),cast(this,"float32")};Tensor.prototype.toInt=function(){return this.throwIfDisposed(),cast(this,"int32")};Tensor.prototype.topk=function(k,sorted){return this.throwIfDisposed(),topk(this,k,sorted)};Tensor.prototype.transpose=function(perm){return this.throwIfDisposed(),transpose(this,perm)};Tensor.prototype.unique=function(axis){return this.throwIfDisposed(),unique(this,axis)};Tensor.prototype.unsortedSegmentSum=function(segmentIds,numSegments){return this.throwIfDisposed(),unsortedSegmentSum(this,segmentIds,numSegments)};Tensor.prototype.unstack=function(axis){return this.throwIfDisposed(),unstack(this,axis)};Tensor.prototype.where=function(condition,x){return this.throwIfDisposed(),where(condition,this,x)};Tensor.prototype.zerosLike=function(){return this.throwIfDisposed(),zerosLike(this)};function assertNotComplex(tensor2,opName){Array.isArray(tensor2)||(tensor2=[tensor2]),tensor2.forEach(t=>{t!=null&&util_exports.assert(t.dtype!=="complex64",()=>`${opName} does not support complex64 tensors in the CPU backend.`)})}var whereImpl2=kernel_impls_exports.whereImpl,MathBackendCPU=class extends KernelBackend{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new DataStorage(this,engine())}write(values,shape,dtype){this.firstUse&&(this.firstUse=!1,env().get("IS_NODE")&&backend_util_exports.warn(` ============================ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. @@ -4040,19 +4040,19 @@ return a / b;`,DIV_PACKED=` } setOutput(${returnValue}); } - `}};function unsortedSegmentSum3(args){let{inputs,backend:backend22,attrs}=args,{x,segmentIds}=inputs,{numSegments}=attrs,xRank=x.shape.length,toDispose=[],axis=0,permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!=null&&(permutedX=transpose3({inputs:{x},backend:backend22,attrs:{perm:permutation}}),toDispose.push(permutedX),axis=backend_util_exports.getInnerMostAxes(1,xRank)[0]);let outShape=backend_util_exports.segment_util.computeOutShape(permutedX.shape,axis,numSegments),inSize=util_exports.sizeFromShape([permutedX.shape[axis]]),a2D=reshape3({inputs:{x:permutedX},backend:backend22,attrs:{shape:[-1,inSize]}});toDispose.push(a2D);let outputDType=sumOutType(x.dtype),segOpCompute=(x2,segOpType,segmentIds2,dtype,numSegments2)=>{let batchSize=x2.shape[0],inSize2=x2.shape[1],windowSize=backend_util_exports.segment_util.segOpComputeOptimalWindowSize(inSize2,numSegments2),segOpInfo={windowSize,inSize:inSize2,batchSize,numSegments:numSegments2},program=new SegmentOpProgram(segOpInfo,segOpType),output=backend22.compileAndRun(program,[x2,segmentIds2],dtype);if(toDispose.push(output),output.shape[1]===numSegments2)return output;let rangeInfo=range3({backend:backend22,attrs:{start:0,stop:numSegments2,step:1,dtype:"float32"}}),tileInfo=tile3({inputs:{x:rangeInfo},backend:backend22,attrs:{reps:[inSize2/windowSize]}});return toDispose.push(rangeInfo),toDispose.push(tileInfo),segOpCompute(output,segOpType,tileInfo,dtype,numSegments2)},segOpResult=segOpCompute(a2D,"unsortedSegmentSum",segmentIds,outputDType,numSegments),reshaped=reshape3({inputs:{x:segOpResult},backend:backend22,attrs:{shape:outShape}}),result=reshaped;if(permutation!=null){toDispose.push(reshaped);let perm=backend_util_exports.getUndoAxesPermutation(permutation);result=transpose3({inputs:{x:result},backend:backend22,attrs:{perm}})}return toDispose.forEach(t=>backend22.disposeIntermediateTensorInfo(t)),result}var unsortedSegmentSumConfig2={kernelName:UnsortedSegmentSum,backendName:"webgl",kernelFunc:unsortedSegmentSum3},kernelConfigs2=[LRNConfig,LRNGradConfig,_fusedMatMulConfig2,absConfig2,acosConfig2,acoshConfig2,addConfig2,addNConfig2,allConfig2,anyConfig2,argMaxConfig2,argMinConfig2,asinConfig2,asinhConfig2,atan2Config2,atanConfig2,atanhConfig2,avgPool3DConfig2,avgPoolConfig2,avgPoolGrad3DConfig,avgPoolGradConfig3,batchMatMulConfig2,batchNormConfig2,batchToSpaceNDConfig2,bincountConfig2,castConfig2,ceilConfig2,clipByValueConfig,complexAbsConfig2,complexConfig2,concatConfig2,conv2DBackpropFilterConfig2,conv2DBackpropInputConfig2,conv2DConfig2,conv3DBackpropFilterV2Config2,conv3DBackpropInputConfig,conv3DConfig2,cosConfig2,coshConfig2,cropAndResizeConfig2,cumsumConfig2,denseBincountConfig2,depthToSpaceConfig2,depthwiseConv2dNativeBackpropFilterConfig2,depthwiseConv2dNativeBackpropInputConfig2,depthwiseConv2dNativeConfig2,diagConfig2,dilation2DConfig,eluConfig2,eluGradConfig3,equalConfig2,erfConfig2,expConfig2,expandDimsConfig2,expm1Config2,fftConfig2,fillConfig2,flipLeftRightConfig2,floorConfig2,floorDivConfig2,fromPixelsConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig2,gatherV2Config2,greaterConfig2,greaterEqualConfig2,identityConfig2,ifftConfig2,imagConfig2,isFiniteConfig2,isInfConfig2,isNaNConfig2,leakyReluConfig2,lessConfig2,lessEqualConfig2,linSpaceConfig2,log1pConfig2,logConfig2,logicalAndConfig2,logicalNotConfig2,logicalOrConfig2,maxConfig2,maxPool3DConfig2,maxPoolConfig2,maxPoolGrad3DConfig,maxPoolGradConfig3,maxPoolWithArgmaxConfig2,maximumConfig2,meanConfig2,minConfig2,minimumConfig2,mirrorPadConfig2,modConfig2,multinomialConfig2,multiplyConfig2,negConfig2,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config2,nonMaxSuppressionV5Config2,notEqualConfig2,oneHotConfig2,onesLikeConfig2,packConfig2,padV2Config2,powConfig2,preluConfig2,prodConfig2,rangeConfig2,realConfig2,realDivConfig2,reciprocalConfig2,relu6Config2,reluConfig2,reshapeConfig2,resizeBilinearConfig2,resizeBilinearGradConfig3,resizeNearestNeighborConfig2,resizeNearestNeighborGradConfig3,reverseConfig2,rotateWithOffsetConfig2,roundConfig2,rsqrtConfig2,scatterNdConfig2,selectConfig2,seluConfig2,sigmoidConfig2,signConfig2,sinConfig2,sinhConfig2,sliceConfig2,softmaxConfig2,softplusConfig2,spaceToBatchNDConfig2,sparseToDenseConfig2,splitVConfig2,sqrtConfig2,squareConfig2,squaredDifferenceConfig2,stepConfig2,stridedSliceConfig2,subConfig2,sumConfig2,tanConfig2,tanhConfig2,tileConfig2,topKConfig2,transposeConfig2,uniqueConfig2,unpackConfig2,unsortedSegmentSumConfig2,zerosLikeConfig2];for(let kernelConfig of kernelConfigs2)registerKernel(kernelConfig);var CppDType;(function(CppDType2){CppDType2[CppDType2.float32=0]="float32",CppDType2[CppDType2.int32=1]="int32",CppDType2[CppDType2.bool=2]="bool",CppDType2[CppDType2.string=3]="string",CppDType2[CppDType2.complex64=4]="complex64"})(CppDType||(CppDType={}));var FusableActivation;(function(FusableActivation2){FusableActivation2[FusableActivation2.linear=0]="linear",FusableActivation2[FusableActivation2.relu=1]="relu",FusableActivation2[FusableActivation2.relu6=2]="relu6",FusableActivation2[FusableActivation2.prelu=3]="prelu",FusableActivation2[FusableActivation2.leakyrelu=4]="leakyrelu"})(FusableActivation||(FusableActivation={}));var wasmFusedMatMul;function setup(backend22){wasmFusedMatMul=backend22.wasm.cwrap(_FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function fusedBatchMatMul(args){let{inputs,backend:backend22,attrs}=args,{a,b,bias,preluActivationWeights}=inputs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA,transposeB,activation:activation2,leakyreluAlpha}=attrs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${biasData.shape.length}.`);biasId=biasData.id}let preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id,fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let leftDim=transposeA?a.shape[2]:a.shape[1],rightDim=transposeB?b.shape[1]:b.shape[2],batchDim=a.shape[0],out=backend22.makeOutput([batchDim,leftDim,rightDim],a.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer);return wasmFusedMatMul(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,transposeA,transposeB,fusedActivation,biasId,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedMatMulConfig={kernelName:_FusedMatMul,backendName:"wasm",setupFunc:setup,kernelFunc:fusedBatchMatMul};function createUnaryKernelConfig(kernelName){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","number"])}function kernelFunc3(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc9(xId,outId),out}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var absConfig3=createUnaryKernelConfig(Abs);function createBinaryKernelConfig(kernelName,supportsFullBroadcast17,dtype){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","array","number","number","array","number","number","number"])}function kernelFunc3(args){let{backend:backend22,inputs}=args,{a,b}=inputs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,outputType=dtype!=null?dtype:a.dtype,newShape=backend_util_exports.assertAndGetBroadcastShape(a.shape,b.shape),out=backend22.makeOutput(newShape,outputType);if(util_exports.sizeFromShape(newShape)===0)return out;let aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer),outId=backend22.dataIdMap.get(out.dataId).id,kernelFunc4=()=>wasmFunc9(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;let aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast),wasmFunc;function setupFunc(backend22){wasmFunc=backend22.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){let{inputs,backend:backend22}=args,out=backend22.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;let inputIds=inputs.map(x=>backend22.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}var addNConfig3={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity3(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity3},wasmTranspose;function setup2(backend22){wasmTranspose=backend22.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose4(args){let{inputs,backend:backend22,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm),permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}var transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose4,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend22){let xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape),axes=originalAxes,permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank),xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){let newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}var reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape4},wasmBatchMatMul;function setup5(backend22){wasmBatchMatMul=backend22.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul3(args){let{inputs,backend:backend22,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);let outShape=(batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2)).concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape4({inputs:{x:a},backend:backend22,attrs:{shape:a3dShape}}),b3d=reshape4({inputs:{x:b},backend:backend22,attrs:{shape:b3dShape}}),a3dId=backend22.dataIdMap.get(a3d.dataId).id,b3dId=backend22.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend22.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}var batchMatMulConfig3={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul3};function cast4(args){let{inputs:{x},attrs:{dtype},backend:backend22}=args,out=backend22.makeOutput(x.shape,dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast4},wasmClip;function setup6(backend22){wasmClip=backend22.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}var clipByValueConfig2={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat4(args){let{inputs,backend:backend22}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),$inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return identity3({inputs:{x:$inputs[0]},backend:backend22});let out=backend22.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;let shapes=$inputs.map(t=>t.shape);if(backend_util_exports.assertParamsConsistent(shapes,axis),$inputs[0].dtype==="string"){let inputs2D=$inputs.map(t=>{let innerSize=util_exports.sizeFromShape(t.shape.slice(axis));return reshape4({inputs:{x:t},backend:backend22,attrs:{shape:[-1,innerSize]}})}),inputsValShapes=inputs2D.map(t=>({vals:backend22.readSync(t.dataId),shape:t.shape}));outShape=backend_util_exports.computeOutShape(inputs2D.map(t=>t.shape),1);let simplyConcat=inputs2D[0].shape[0]===1,outVals2=concatImpl(inputsValShapes,outShape,inputs[0].dtype,simplyConcat),finalOutShape=backend_util_exports.computeOutShape($inputs.map(t=>t.shape),axis);out.shape=finalOutShape;let outData=backend22.dataIdMap.get(out.dataId);return outData.stringBytes=backend_util_exports.fromStringArrayToUint8(outVals2),out}let batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis)),sumInnerDims=0,innerDims=$inputs.map(input2=>{let innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend22.typedArrayFromHeap(input2)),outVals=backend22.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);let permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!==null&&(permutedX=transpose4({inputs:{x},attrs:{perm:permutation},backend:backend22}));let permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);let permutedOut=backend22.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend22.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend22.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse5?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){let undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose4({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend22}),backend22.disposeData(permutedX.dataId),backend22.disposeData(permutedOut.dataId)}return out}var cumsumConfig3={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum4},wasmDepthToSpace;function setup11(backend22){wasmDepthToSpace=backend22.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);let batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend22.makeOutput(outputShape,"float32"),xId=backend22.dataIdMap.get(x.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthToSpace(xId,blockSize,dataFormat==="NHWC"?1:0,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}var depthToSpaceConfig3={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace4},wasmDepthwiseConv2d;function setup12(backend22){wasmDepthwiseConv2d=backend22.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d3(args){let{inputs,attrs,backend:backend22}=args,{x,filter}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad3,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var depthwiseConv2dNativeConfig3={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d3},supportsFullBroadcast2=!1,equalConfig3=createBinaryKernelConfig(Equal,supportsFullBroadcast2,"bool"),expConfig3=createUnaryKernelConfig(Exp);function expandDims4(args){let{inputs,attrs,backend:backend22}=args,{input:input2}=inputs,{dim}=attrs,inputRank=input2.shape.length,newShape=input2.shape.slice(),$dim=dim;return dim<0&&(util_exports.assert(-(inputRank+1)<=dim,()=>`Axis must be in the interval [${-(inputRank+1)}, ${inputRank}]`),$dim=inputRank+dim+1),newShape.splice($dim,0,1),reshape4({inputs:{x:input2},backend:backend22,attrs:{shape:newShape}})}var expandDimsConfig3={kernelName:ExpandDims,backendName:"wasm",kernelFunc:expandDims4};function fill4(args){let{attrs:{shape,value,dtype},backend:backend22}=args,out=backend22.makeOutput(shape,dtype);return backend22.typedArrayFromHeap(out).fill(value),out}var fillConfig3={kernelName:Fill,backendName:"wasm",kernelFunc:fill4},wasmFlipLeftRight;function setup13(backend22){wasmFlipLeftRight=backend22.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){let{inputs,backend:backend22}=args,{image:image3}=inputs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}var flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},floorConfig3=createUnaryKernelConfig(Floor),supportsFullBroadcast3=!1,floorDivConfig3=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast3),wasmBatchNorm;function setup14(backend22){wasmBatchNorm=backend22.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){let{backend:backend22,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean4,variance,offset,scale:scale2}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,meanId=backend22.dataIdMap.get(mean4.dataId).id,varianceId=backend22.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend22.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend22.dataIdMap.get(scale2.dataId).id:0,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}var fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm},wasmFusedConv2d;function setup15(backend22){wasmFusedConv2d=backend22.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d2(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedConv2DConfig3={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d2},wasmFusedDepthwiseConv2d;function setup16(backend22){wasmFusedDepthwiseConv2d=backend22.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedDepthwiseConv2DConfig3={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d},wasmGatherNd;function setup17(backend22){wasmGatherNd=backend22.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd3(args){let{backend:backend22,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend22.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xId=backend22.dataIdMap.get(params.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}var gatherNdConfig3={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd3},wasmGather;function setup18(backend22){wasmGather=backend22.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV23(args){let{backend:backend22,inputs,attrs}=args,{x,indices}=inputs,{axis,batchDims}=attrs,parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis,batchDims),flattenX=reshape4({inputs:{x},attrs:{shape:[shapeInfo.batchSize,shapeInfo.outerSize,shapeInfo.dimSize,shapeInfo.sliceSize]},backend:backend22}),indicesSize=util_exports.sizeFromShape(indices.shape),flattenIndex=reshape4({inputs:{x:indices},attrs:{shape:[shapeInfo.batchSize,indicesSize/shapeInfo.batchSize]},backend:backend22}),flattenOutputShape=[shapeInfo.batchSize,shapeInfo.outerSize,indicesSize/shapeInfo.batchSize,shapeInfo.sliceSize],out=backend22.makeOutput(flattenOutputShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let stridesSize=flattenX.shape.length-1,xId=backend22.dataIdMap.get(flattenX.dataId).id,indicesId=backend22.dataIdMap.get(flattenIndex.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenX.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenOutputShape)).buffer);return wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,shapeInfo.batchSize,outStridesBytes,outId),out.shape=shapeInfo.outputShape,out}var gatherV2Config3={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV23},supportsFullBroadcast4=!1,greaterConfig3=createBinaryKernelConfig(Greater,supportsFullBroadcast4,"bool"),supportsFullBroadcast5=!1,greaterEqualConfig3=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast5,"bool"),wasmFunc3;function setupFunc2(backend22){wasmFunc3=backend22.wasm.cwrap(LeakyRelu,null,["number","number","number"])}function leakyRelu4(args){let{inputs:{x},attrs:{alpha},backend:backend22}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmFunc3(xId,alpha,outId)}return out}var leakyReluConfig3={kernelName:LeakyRelu,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:leakyRelu4},supportsFullBroadcast6=!1,lessConfig3=createBinaryKernelConfig(Less,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessEqualConfig3=createBinaryKernelConfig(LessEqual,supportsFullBroadcast7,"bool"),logConfig3=createUnaryKernelConfig(Log),supportsFullBroadcast8=!1,logicalAndConfig3=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast8,"bool"),wasmMax;function setup19(backend22){wasmMax=backend22.wasm.cwrap(Max,null,["number, number, number"])}function max4(args){let{backend:backend22,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,inputId=backend22.dataIdMap.get(x.dataId).id,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max4},supportsFullBroadcast9=!1,maximumConfig3=createBinaryKernelConfig(Maximum,supportsFullBroadcast9),wasmMaxPool;function setup20(backend22){wasmMaxPool=backend22.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){let{inputs,attrs,backend:backend22}=args,x=inputs.x,xId=backend22.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad3,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad3,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4},wasmMean;function setup21(backend22){wasmMean=backend22.wasm.cwrap(Mean,null,["number, number, number"])}function mean3(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("mean",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),castedInput=input2;input2.dtype!=="float32"&&(castedInput=cast4({backend:backend22,inputs:{x:input2},attrs:{dtype:"float32"}}),inputId=backend22.dataIdMap.get(castedInput.dataId).id);let out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMean(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return input2.dtype!=="float32"&&backend22.disposeData(castedInput.dataId),out}var meanConfig3={kernelName:Mean,backendName:"wasm",setupFunc:setup21,kernelFunc:mean3},wasmMin;function setup22(backend22){wasmMin=backend22.wasm.cwrap(Min,null,["number, number, number"])}function min4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var minConfig3={kernelName:Min,backendName:"wasm",setupFunc:setup22,kernelFunc:min4},supportsFullBroadcast10=!1,minimumConfig3=createBinaryKernelConfig(Minimum,supportsFullBroadcast10),supportsFullBroadcast11=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast11),negConfig3=createUnaryKernelConfig(Neg);function parseResultStruct(backend22,resOffset){let result=new Int32Array(backend22.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend22.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}var wasmFunc4;function setup23(backend22){wasmFunc4=backend22.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);return backend22.wasm._free(pSelectedScores),backend22.wasm._free(pValidOutputs),backend22.makeOutput([selectedSize],"int32",pSelectedIndices)}var nonMaxSuppressionV3Config3={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup23,kernelFunc},wasmFunc5;function setup24(backend22){wasmFunc5=backend22.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV43(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pSelectedScores);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend22.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}var nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup24,kernelFunc:nonMaxSuppressionV43},wasmFunc6;function setup25(backend22){wasmFunc6=backend22.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc6(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pValidOutputs);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend22.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}var nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup25,kernelFunc:kernelFunc2},supportsFullBroadcast12=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast12,"bool"),wasmOneHot;function setup26(backend22){wasmOneHot=backend22.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot4(args){let{inputs,backend:backend22,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend22.makeOutput([...indices.shape,depth],"int32"),outId=backend22.dataIdMap.get(out.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}var oneHotConfig3={kernelName:OneHot,backendName:"wasm",setupFunc:setup26,kernelFunc:oneHot4};function onesLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(1),out}var onesLikeConfig3={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike4};function pack3(args){let{inputs,backend:backend22,attrs}=args,{axis}=attrs;if(inputs.length===1)return expandDims4({inputs:{input:inputs[0]},backend:backend22,attrs:{dim:axis}});let shape=inputs[0].shape,dtype=inputs[0].dtype;inputs.forEach(t=>{util_exports.assertShapesMatch(shape,t.shape,"All tensors passed to stack must have matching shapes"),util_exports.assert(dtype===t.dtype,()=>"All tensors passed to stack must have matching dtypes")});let expandedTensors=inputs.map(t=>expandDims4({inputs:{input:t},backend:backend22,attrs:{dim:axis}}));return concat4({inputs:expandedTensors,backend:backend22,attrs:{axis}})}var packConfig3={kernelName:Pack,backendName:"wasm",kernelFunc:pack3},wasmPadV2;function setup27(backend22){wasmPadV2=backend22.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad2(args){let{inputs:{x},backend:backend22,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(outShape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}var padV2Config3={kernelName:PadV2,backendName:"wasm",kernelFunc:pad2,setupFunc:setup27},supportsFullBroadcast13=!1,powConfig3=createBinaryKernelConfig(Pow,supportsFullBroadcast13),wasmPrelu;function setup28(backend22){wasmPrelu=backend22.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu4(args){let{inputs,backend:backend22}=args,{x,alpha}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,weightsId=backend22.dataIdMap.get(alpha.dataId).id,out=backend22.makeOutput(x.shape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}var preluConfig3={kernelName:Prelu,backendName:"wasm",setupFunc:setup28,kernelFunc:prelu4},wasmProd;function setup29(backend22){wasmProd=backend22.wasm.cwrap(Prod,null,["number","number","number","number"])}function prod4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("prod",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmProd(inputId,reduceSize,CppDType[out.dtype],outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var prodConfig3={kernelName:Prod,backendName:"wasm",setupFunc:setup29,kernelFunc:prod4},range4=args=>{let{backend:backend22,attrs}=args,{start,stop,step:step4,dtype}=attrs,values=rangeImpl(start,stop,step4,dtype),out=backend22.makeOutput([values.length],dtype);return backend22.typedArrayFromHeap(out).set(values),out},rangeConfig3={kernelName:Range,backendName:"wasm",kernelFunc:range4},supportsFullBroadcast14=!0,realDivConfig3=createBinaryKernelConfig(RealDiv,supportsFullBroadcast14),reluConfig3=createUnaryKernelConfig(Relu),relu6Config3=createUnaryKernelConfig(Relu6),wasmResizeBilinear;function setup30(backend22){wasmResizeBilinear=backend22.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number","number"])}function resizeBilinear4(args){let{backend:backend22,inputs,attrs}=args,{images}=inputs,{alignCorners,halfPixelCenters,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels],xData=backend22.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast4({backend:backend22,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend22.dataIdMap.get(castedData.dataId));let xId=xData.id,out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,halfPixelCenters?1:0,outId),castedData!=null&&backend22.disposeData(castedData.dataId),out}var resizeBilinearConfig3={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup30,kernelFunc:resizeBilinear4},wasmReverse;function setup31(backend22){wasmReverse=backend22.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity3({inputs:{x},backend:backend22});let out=backend22.makeOutput(x.shape,x.dtype),xId=backend22.dataIdMap.get(x.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape4({inputs:{x:out},attrs:{shape:x.shape},backend:backend22})}var reverseConfig3={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse4,setupFunc:setup31},wasmRotate;function setup32(backend22){wasmRotate=backend22.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){let{inputs,backend:backend22,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}var rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup32},roundConfig3=createUnaryKernelConfig(Round),rsqrtConfig3=createUnaryKernelConfig(Rsqrt),wasmScatterNd;function setup33(backend22){wasmScatterNd=backend22.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd3(args){let{backend:backend22,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend22.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;let{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesId=backend22.dataIdMap.get(indices.dataId).id,updatesId=backend22.dataIdMap.get(updates.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}var scatterNdConfig3={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup33,kernelFunc:scatterNd3},wasmSelect;function setup34(backend22){wasmSelect=backend22.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function select3(args){let{inputs,backend:backend22}=args,{condition,t,e}=inputs,conditionId=backend22.dataIdMap.get(condition.dataId).id,tId=backend22.dataIdMap.get(t.dataId).id,eId=backend22.dataIdMap.get(e.dataId).id,out=backend22.makeOutput(t.shape,t.dtype),outId=backend22.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}var selectConfig3={kernelName:Select,backendName:"wasm",kernelFunc:select3,setupFunc:setup34},wasmFunc7;function setup35(backend22){wasmFunc7=backend22.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid4(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId),out}var sigmoidConfig3={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup35,kernelFunc:sigmoid4},sinConfig3=createUnaryKernelConfig(Sin);function slice4(args){let{inputs:{x},attrs:{begin,size},backend:backend22}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend22.readSync(x.dataId),out=backend22.makeOutput(size_,x.dtype),xStrides=util_exports.computeStrides(x.shape),outData=backend22.dataIdMap.get(out.dataId);if(isContinous){let flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return x.dtype==="string"?outData.stringBytes=xVals.slice(flatOffset,flatOffset+util_exports.sizeFromShape(size_)):backend22.typedArrayFromHeap(out).set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}if(x.dtype==="string"){let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);return outData.stringBytes=res,out}let outVals=backend22.typedArrayFromHeap(out),rank=x.shape.length;if(rank===2)slice2d2(xVals,xStrides[0],outVals,begin_,size_);else if(rank===3)slice3d2(xVals,xStrides[0],xStrides[1],outVals,begin_,size_);else if(rank===4)slice4d2(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_);else{let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);outVals.set(res)}return out}function slice2d2(xVals,xStride,outVals,begin,size){let outOffset=0,beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;i{let xSliceSize=[...size];xSliceSize[$axis]=s;let xSlice=slice4({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend22});return begin[$axis]+=s,xSlice})}var splitVConfig3={kernelName:SplitV,backendName:"wasm",kernelFunc:splitV3},sqrtConfig3=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15),wasmStridedSlice;function setup37(backend22){wasmStridedSlice=backend22.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));let{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});let xReshaped=reshape4({inputs:{x},attrs:{shape:newShape},backend:backend22}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;let shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});let size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);if(strides.every(v=>v===1)){let xSliced=slice4({inputs:{x},attrs:{begin,size},backend:backend22});return reshape4({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend22})}let out=backend22.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){let xId=backend22.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape4({inputs:{x:out},attrs:{shape:outShape},backend:backend22})}var stridedSliceConfig3={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup37,kernelFunc:stridedSlice4},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16),wasmSum;function setup38(backend22){wasmSum=backend22.wasm.cwrap(Sum,null,["number, number, number"])}function sum5(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var sumConfig3={kernelName:Sum,backendName:"wasm",setupFunc:setup38,kernelFunc:sum5},tanhConfig3=createUnaryKernelConfig(Tanh),wasmTile;function setup39(backend22){wasmTile=backend22.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i{let{x}=inputs,{k,sorted}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),outputShape=x.shape.slice();outputShape[outputShape.length-1]=k;let outValues=backend22.makeOutput(outputShape,x.dtype),outValuesId=backend22.dataIdMap.get(outValues.dataId).id,outIndices=backend22.makeOutput(outputShape,"int32"),outIndicesId=backend22.dataIdMap.get(outIndices.dataId).id;return wasmTopK(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],k,sorted,outValuesId,outIndicesId),[outValues,outIndices]},topKConfig3={kernelName:TopK,backendName:"wasm",setupFunc:setup40,kernelFunc:topk2};function unpack3(args){let{inputs,backend:backend22,attrs}=args,{value}=inputs,{axis}=attrs;axis<0&&(axis+=value.shape.length);let numOutputs=value.shape[axis],rank=value.shape.length,outShape=new Array(rank-1),outIndex=0;for(let i=0;i({dataId,dtype,shape:outShape}))}var unpackConfig3={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack3};function zerosLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(0),out}var zerosLikeConfig3={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike4},kernelConfigs3=[absConfig3,addConfig3,addNConfig3,argMaxConfig3,avgPoolConfig3,batchMatMulConfig3,castConfig3,clipByValueConfig2,concatConfig3,conv2DConfig3,conv2DBackpropInputConfig3,cosConfig3,cropAndResizeConfig3,cumsumConfig3,depthToSpaceConfig3,depthwiseConv2dNativeConfig3,equalConfig3,expConfig3,expandDimsConfig3,fillConfig3,flipLeftRightConfig3,floorConfig3,floorDivConfig3,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig3,fusedDepthwiseConv2DConfig3,gatherNdConfig3,gatherV2Config3,greaterConfig3,greaterEqualConfig3,identityConfig3,leakyReluConfig3,lessConfig3,lessEqualConfig3,logConfig3,logicalAndConfig3,maxConfig3,maximumConfig3,maxPoolConfig3,meanConfig3,minConfig3,minimumConfig3,multiplyConfig3,negConfig3,nonMaxSuppressionV3Config3,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig3,onesLikeConfig3,packConfig3,padV2Config3,powConfig3,preluConfig3,prodConfig3,rangeConfig3,realDivConfig3,reluConfig3,relu6Config3,reshapeConfig3,resizeBilinearConfig3,reverseConfig3,rotateWithOffsetConfig3,rsqrtConfig3,roundConfig3,scatterNdConfig3,selectConfig3,sigmoidConfig3,sinConfig3,sliceConfig3,softmaxConfig3,splitVConfig3,sqrtConfig3,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig3,subConfig3,sumConfig3,tanhConfig3,tileConfig3,topKConfig3,transposeConfig3,unpackConfig3,zerosLikeConfig3];for(let kernelConfig of kernelConfigs3)registerKernel(kernelConfig);var ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var import_tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',import_tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),BackendWasm=class extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine())}write(values,shape,dtype){let dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){let start=util_exports.now();return f(),{kernelMs:util_exports.now()-start}}move(dataId,values,shape,dtype){let id=this.dataIdNextNumber++;if(dtype==="string"){let stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}let size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){let{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;let bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){let data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};let id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});let size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){let buffer2=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer2,memoryOffset,size);case"int32":return new Int32Array(buffer2,memoryOffset,size);case"bool":return new Uint8Array(buffer2,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}};function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){let[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{let factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){let response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=import_tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+import_tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=import_tfjs_backend_wasm.default(factoryConfig);let voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{initialized||initAborted||(initAborted=!0,reject({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))}})}function typedArrayFromBuffer(buffer2,dtype){switch(dtype){case"float32":return new Float32Array(buffer2);case"int32":return new Int32Array(buffer2);case"bool":return new Uint8Array(buffer2);default:throw new Error(`Unknown dtype ${dtype}`)}}var wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;let missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}var version9="2.8.3",WASM_PRIORITY=2;registerBackend("wasm",async()=>{let{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);var exports_constraints_exports={};__export2(exports_constraints_exports,{maxNorm:()=>maxNorm,minMaxNorm:()=>minMaxNorm,nonNeg:()=>nonNeg,unitNorm:()=>unitNorm});var _epsilon;function epsilon2(){return _epsilon==null&&(_epsilon=backend().epsilon()),_epsilon}function imageDataFormat(){return"channelsLast"}var AttributeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AttributeError.prototype)}},RuntimeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,RuntimeError.prototype)}},ValueError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,ValueError.prototype)}},NotImplementedError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,NotImplementedError.prototype)}},AssertionError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AssertionError.prototype)}},IndexError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,IndexError.prototype)}};function pyListRepeat(value,numValues){if(Array.isArray(value)){let newArray=[];for(let i=0;ip1.toUpperCase())}var _GLOBAL_CUSTOM_OBJECTS={};function serializeKerasObject(instance2){if(instance2==null)return null;let dict={};return dict.className=instance2.getClassName(),dict.config=instance2.getConfig(),dict}function convertNDArrayScalarsInConfig(config3){if(!(config3==null||typeof config3!="object"))if(Array.isArray(config3))config3.forEach(configItem=>convertNDArrayScalarsInConfig(configItem));else{let fields=Object.keys(config3);for(let field of fields){let value=config3[field];value!=null&&typeof value=="object"&&(!Array.isArray(value)&&value.type==="ndarray"&&typeof value.value=="number"?config3[field]=value.value:convertNDArrayScalarsInConfig(value))}}}function deserializeKerasObject(identifier,moduleObjects={},customObjects={},printableModuleName="object",fastWeightInit=!1){if(typeof identifier=="string"){let functionName=identifier,fn;if(functionName in customObjects)fn=customObjects[functionName];else if(functionName in _GLOBAL_CUSTOM_OBJECTS)fn=_GLOBAL_CUSTOM_OBJECTS[functionName];else if(fn=moduleObjects[functionName],fn==null)throw new ValueError(`Unknown ${printableModuleName}: ${identifier}. This may be due to one of the following reasons: + `}};function unsortedSegmentSum3(args){let{inputs,backend:backend22,attrs}=args,{x,segmentIds}=inputs,{numSegments}=attrs,xRank=x.shape.length,toDispose=[],axis=0,permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!=null&&(permutedX=transpose3({inputs:{x},backend:backend22,attrs:{perm:permutation}}),toDispose.push(permutedX),axis=backend_util_exports.getInnerMostAxes(1,xRank)[0]);let outShape=backend_util_exports.segment_util.computeOutShape(permutedX.shape,axis,numSegments),inSize=util_exports.sizeFromShape([permutedX.shape[axis]]),a2D=reshape3({inputs:{x:permutedX},backend:backend22,attrs:{shape:[-1,inSize]}});toDispose.push(a2D);let outputDType=sumOutType(x.dtype),segOpCompute=(x2,segOpType,segmentIds2,dtype,numSegments2)=>{let batchSize=x2.shape[0],inSize2=x2.shape[1],windowSize=backend_util_exports.segment_util.segOpComputeOptimalWindowSize(inSize2,numSegments2),segOpInfo={windowSize,inSize:inSize2,batchSize,numSegments:numSegments2},program=new SegmentOpProgram(segOpInfo,segOpType),output=backend22.compileAndRun(program,[x2,segmentIds2],dtype);if(toDispose.push(output),output.shape[1]===numSegments2)return output;let rangeInfo=range3({backend:backend22,attrs:{start:0,stop:numSegments2,step:1,dtype:"float32"}}),tileInfo=tile3({inputs:{x:rangeInfo},backend:backend22,attrs:{reps:[inSize2/windowSize]}});return toDispose.push(rangeInfo),toDispose.push(tileInfo),segOpCompute(output,segOpType,tileInfo,dtype,numSegments2)},segOpResult=segOpCompute(a2D,"unsortedSegmentSum",segmentIds,outputDType,numSegments),reshaped=reshape3({inputs:{x:segOpResult},backend:backend22,attrs:{shape:outShape}}),result=reshaped;if(permutation!=null){toDispose.push(reshaped);let perm=backend_util_exports.getUndoAxesPermutation(permutation);result=transpose3({inputs:{x:result},backend:backend22,attrs:{perm}})}return toDispose.forEach(t=>backend22.disposeIntermediateTensorInfo(t)),result}var unsortedSegmentSumConfig2={kernelName:UnsortedSegmentSum,backendName:"webgl",kernelFunc:unsortedSegmentSum3},kernelConfigs2=[LRNConfig,LRNGradConfig,_fusedMatMulConfig2,absConfig2,acosConfig2,acoshConfig2,addConfig2,addNConfig2,allConfig2,anyConfig2,argMaxConfig2,argMinConfig2,asinConfig2,asinhConfig2,atan2Config2,atanConfig2,atanhConfig2,avgPool3DConfig2,avgPoolConfig2,avgPoolGrad3DConfig,avgPoolGradConfig3,batchMatMulConfig2,batchNormConfig2,batchToSpaceNDConfig2,bincountConfig2,castConfig2,ceilConfig2,clipByValueConfig,complexAbsConfig2,complexConfig2,concatConfig2,conv2DBackpropFilterConfig2,conv2DBackpropInputConfig2,conv2DConfig2,conv3DBackpropFilterV2Config2,conv3DBackpropInputConfig,conv3DConfig2,cosConfig2,coshConfig2,cropAndResizeConfig2,cumsumConfig2,denseBincountConfig2,depthToSpaceConfig2,depthwiseConv2dNativeBackpropFilterConfig2,depthwiseConv2dNativeBackpropInputConfig2,depthwiseConv2dNativeConfig2,diagConfig2,dilation2DConfig,eluConfig2,eluGradConfig3,equalConfig2,erfConfig2,expConfig2,expandDimsConfig2,expm1Config2,fftConfig2,fillConfig2,flipLeftRightConfig2,floorConfig2,floorDivConfig2,fromPixelsConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig2,gatherV2Config2,greaterConfig2,greaterEqualConfig2,identityConfig2,ifftConfig2,imagConfig2,isFiniteConfig2,isInfConfig2,isNaNConfig2,leakyReluConfig2,lessConfig2,lessEqualConfig2,linSpaceConfig2,log1pConfig2,logConfig2,logicalAndConfig2,logicalNotConfig2,logicalOrConfig2,maxConfig2,maxPool3DConfig2,maxPoolConfig2,maxPoolGrad3DConfig,maxPoolGradConfig3,maxPoolWithArgmaxConfig2,maximumConfig2,meanConfig2,minConfig2,minimumConfig2,mirrorPadConfig2,modConfig2,multinomialConfig2,multiplyConfig2,negConfig2,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config2,nonMaxSuppressionV5Config2,notEqualConfig2,oneHotConfig2,onesLikeConfig2,packConfig2,padV2Config2,powConfig2,preluConfig2,prodConfig2,rangeConfig2,realConfig2,realDivConfig2,reciprocalConfig2,relu6Config2,reluConfig2,reshapeConfig2,resizeBilinearConfig2,resizeBilinearGradConfig3,resizeNearestNeighborConfig2,resizeNearestNeighborGradConfig3,reverseConfig2,rotateWithOffsetConfig2,roundConfig2,rsqrtConfig2,scatterNdConfig2,selectConfig2,seluConfig2,sigmoidConfig2,signConfig2,sinConfig2,sinhConfig2,sliceConfig2,softmaxConfig2,softplusConfig2,spaceToBatchNDConfig2,sparseToDenseConfig2,splitVConfig2,sqrtConfig2,squareConfig2,squaredDifferenceConfig2,stepConfig2,stridedSliceConfig2,subConfig2,sumConfig2,tanConfig2,tanhConfig2,tileConfig2,topKConfig2,transposeConfig2,uniqueConfig2,unpackConfig2,unsortedSegmentSumConfig2,zerosLikeConfig2];for(let kernelConfig of kernelConfigs2)registerKernel(kernelConfig);var CppDType;(function(CppDType2){CppDType2[CppDType2.float32=0]="float32",CppDType2[CppDType2.int32=1]="int32",CppDType2[CppDType2.bool=2]="bool",CppDType2[CppDType2.string=3]="string",CppDType2[CppDType2.complex64=4]="complex64"})(CppDType||(CppDType={}));var FusableActivation;(function(FusableActivation2){FusableActivation2[FusableActivation2.linear=0]="linear",FusableActivation2[FusableActivation2.relu=1]="relu",FusableActivation2[FusableActivation2.relu6=2]="relu6",FusableActivation2[FusableActivation2.prelu=3]="prelu",FusableActivation2[FusableActivation2.leakyrelu=4]="leakyrelu"})(FusableActivation||(FusableActivation={}));var wasmFusedMatMul;function setup(backend22){wasmFusedMatMul=backend22.wasm.cwrap(_FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function fusedBatchMatMul(args){let{inputs,backend:backend22,attrs}=args,{a,b,bias,preluActivationWeights}=inputs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA,transposeB,activation:activation2,leakyreluAlpha}=attrs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${biasData.shape.length}.`);biasId=biasData.id}let preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id,fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let leftDim=transposeA?a.shape[2]:a.shape[1],rightDim=transposeB?b.shape[1]:b.shape[2],batchDim=a.shape[0],out=backend22.makeOutput([batchDim,leftDim,rightDim],a.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer);return wasmFusedMatMul(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,transposeA,transposeB,fusedActivation,biasId,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedMatMulConfig={kernelName:_FusedMatMul,backendName:"wasm",setupFunc:setup,kernelFunc:fusedBatchMatMul};function createUnaryKernelConfig(kernelName){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","number"])}function kernelFunc3(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc9(xId,outId),out}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var absConfig3=createUnaryKernelConfig(Abs);function createBinaryKernelConfig(kernelName,supportsFullBroadcast17,dtype){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","array","number","number","array","number","number","number"])}function kernelFunc3(args){let{backend:backend22,inputs}=args,{a,b}=inputs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,outputType=dtype!=null?dtype:a.dtype,newShape=backend_util_exports.assertAndGetBroadcastShape(a.shape,b.shape),out=backend22.makeOutput(newShape,outputType);if(util_exports.sizeFromShape(newShape)===0)return out;let aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer),outId=backend22.dataIdMap.get(out.dataId).id,kernelFunc4=()=>wasmFunc9(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;let aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast),wasmFunc;function setupFunc(backend22){wasmFunc=backend22.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){let{inputs,backend:backend22}=args,out=backend22.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;let inputIds=inputs.map(x=>backend22.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}var addNConfig3={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity3(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity3},wasmTranspose;function setup2(backend22){wasmTranspose=backend22.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose4(args){let{inputs,backend:backend22,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm),permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}var transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose4,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend22){let xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape),axes=originalAxes,permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank),xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){let newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}var reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape4},wasmBatchMatMul;function setup5(backend22){wasmBatchMatMul=backend22.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul3(args){let{inputs,backend:backend22,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);let outShape=(batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2)).concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape4({inputs:{x:a},backend:backend22,attrs:{shape:a3dShape}}),b3d=reshape4({inputs:{x:b},backend:backend22,attrs:{shape:b3dShape}}),a3dId=backend22.dataIdMap.get(a3d.dataId).id,b3dId=backend22.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend22.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}var batchMatMulConfig3={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul3};function cast4(args){let{inputs:{x},attrs:{dtype},backend:backend22}=args,out=backend22.makeOutput(x.shape,dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast4},wasmClip;function setup6(backend22){wasmClip=backend22.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}var clipByValueConfig2={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat4(args){let{inputs,backend:backend22}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),$inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return identity3({inputs:{x:$inputs[0]},backend:backend22});let out=backend22.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;let shapes=$inputs.map(t=>t.shape);if(backend_util_exports.assertParamsConsistent(shapes,axis),$inputs[0].dtype==="string"){let inputs2D=$inputs.map(t=>{let innerSize=util_exports.sizeFromShape(t.shape.slice(axis));return reshape4({inputs:{x:t},backend:backend22,attrs:{shape:[-1,innerSize]}})}),inputsValShapes=inputs2D.map(t=>({vals:backend22.readSync(t.dataId),shape:t.shape}));outShape=backend_util_exports.computeOutShape(inputs2D.map(t=>t.shape),1);let simplyConcat=inputs2D[0].shape[0]===1,outVals2=concatImpl(inputsValShapes,outShape,inputs[0].dtype,simplyConcat),finalOutShape=backend_util_exports.computeOutShape($inputs.map(t=>t.shape),axis);out.shape=finalOutShape;let outData=backend22.dataIdMap.get(out.dataId);return outData.stringBytes=backend_util_exports.fromStringArrayToUint8(outVals2),out}let batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis)),sumInnerDims=0,innerDims=$inputs.map(input2=>{let innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend22.typedArrayFromHeap(input2)),outVals=backend22.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);let permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!==null&&(permutedX=transpose4({inputs:{x},attrs:{perm:permutation},backend:backend22}));let permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);let permutedOut=backend22.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend22.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend22.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse5?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){let undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose4({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend22}),backend22.disposeData(permutedX.dataId),backend22.disposeData(permutedOut.dataId)}return out}var cumsumConfig3={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum4},wasmDepthToSpace;function setup11(backend22){wasmDepthToSpace=backend22.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);let batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend22.makeOutput(outputShape,"float32"),xId=backend22.dataIdMap.get(x.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthToSpace(xId,blockSize,dataFormat==="NHWC"?1:0,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}var depthToSpaceConfig3={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace4},wasmDepthwiseConv2d;function setup12(backend22){wasmDepthwiseConv2d=backend22.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d3(args){let{inputs,attrs,backend:backend22}=args,{x,filter}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad3,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var depthwiseConv2dNativeConfig3={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d3},supportsFullBroadcast2=!1,equalConfig3=createBinaryKernelConfig(Equal,supportsFullBroadcast2,"bool"),expConfig3=createUnaryKernelConfig(Exp);function expandDims4(args){let{inputs,attrs,backend:backend22}=args,{input:input2}=inputs,{dim}=attrs,inputRank=input2.shape.length,newShape=input2.shape.slice(),$dim=dim;return dim<0&&(util_exports.assert(-(inputRank+1)<=dim,()=>`Axis must be in the interval [${-(inputRank+1)}, ${inputRank}]`),$dim=inputRank+dim+1),newShape.splice($dim,0,1),reshape4({inputs:{x:input2},backend:backend22,attrs:{shape:newShape}})}var expandDimsConfig3={kernelName:ExpandDims,backendName:"wasm",kernelFunc:expandDims4};function fill4(args){let{attrs:{shape,value,dtype},backend:backend22}=args,out=backend22.makeOutput(shape,dtype);return backend22.typedArrayFromHeap(out).fill(value),out}var fillConfig3={kernelName:Fill,backendName:"wasm",kernelFunc:fill4},wasmFlipLeftRight;function setup13(backend22){wasmFlipLeftRight=backend22.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){let{inputs,backend:backend22}=args,{image:image3}=inputs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}var flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},floorConfig3=createUnaryKernelConfig(Floor),supportsFullBroadcast3=!1,floorDivConfig3=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast3),wasmBatchNorm;function setup14(backend22){wasmBatchNorm=backend22.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){let{backend:backend22,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean4,variance,offset,scale:scale2}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,meanId=backend22.dataIdMap.get(mean4.dataId).id,varianceId=backend22.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend22.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend22.dataIdMap.get(scale2.dataId).id:0,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}var fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm},wasmFusedConv2d;function setup15(backend22){wasmFusedConv2d=backend22.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d2(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedConv2DConfig3={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d2},wasmFusedDepthwiseConv2d;function setup16(backend22){wasmFusedDepthwiseConv2d=backend22.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedDepthwiseConv2DConfig3={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d},wasmGatherNd;function setup17(backend22){wasmGatherNd=backend22.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd3(args){let{backend:backend22,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend22.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xId=backend22.dataIdMap.get(params.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}var gatherNdConfig3={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd3},wasmGather;function setup18(backend22){wasmGather=backend22.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV23(args){let{backend:backend22,inputs,attrs}=args,{x,indices}=inputs,{axis,batchDims}=attrs,parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis,batchDims),flattenX=reshape4({inputs:{x},attrs:{shape:[shapeInfo.batchSize,shapeInfo.outerSize,shapeInfo.dimSize,shapeInfo.sliceSize]},backend:backend22}),indicesSize=util_exports.sizeFromShape(indices.shape),flattenIndex=reshape4({inputs:{x:indices},attrs:{shape:[shapeInfo.batchSize,indicesSize/shapeInfo.batchSize]},backend:backend22}),flattenOutputShape=[shapeInfo.batchSize,shapeInfo.outerSize,indicesSize/shapeInfo.batchSize,shapeInfo.sliceSize],out=backend22.makeOutput(flattenOutputShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let stridesSize=flattenX.shape.length-1,xId=backend22.dataIdMap.get(flattenX.dataId).id,indicesId=backend22.dataIdMap.get(flattenIndex.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenX.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenOutputShape)).buffer);return wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,shapeInfo.batchSize,outStridesBytes,outId),out.shape=shapeInfo.outputShape,out}var gatherV2Config3={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV23},supportsFullBroadcast4=!1,greaterConfig3=createBinaryKernelConfig(Greater,supportsFullBroadcast4,"bool"),supportsFullBroadcast5=!1,greaterEqualConfig3=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast5,"bool"),wasmFunc3;function setupFunc2(backend22){wasmFunc3=backend22.wasm.cwrap(LeakyRelu,null,["number","number","number"])}function leakyRelu4(args){let{inputs:{x},attrs:{alpha},backend:backend22}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmFunc3(xId,alpha,outId)}return out}var leakyReluConfig3={kernelName:LeakyRelu,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:leakyRelu4},supportsFullBroadcast6=!1,lessConfig3=createBinaryKernelConfig(Less,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessEqualConfig3=createBinaryKernelConfig(LessEqual,supportsFullBroadcast7,"bool"),logConfig3=createUnaryKernelConfig(Log),supportsFullBroadcast8=!1,logicalAndConfig3=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast8,"bool"),wasmMax;function setup19(backend22){wasmMax=backend22.wasm.cwrap(Max,null,["number, number, number"])}function max4(args){let{backend:backend22,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,inputId=backend22.dataIdMap.get(x.dataId).id,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max4},supportsFullBroadcast9=!1,maximumConfig3=createBinaryKernelConfig(Maximum,supportsFullBroadcast9),wasmMaxPool;function setup20(backend22){wasmMaxPool=backend22.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){let{inputs,attrs,backend:backend22}=args,x=inputs.x,xId=backend22.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad3,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad3,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4},wasmMean;function setup21(backend22){wasmMean=backend22.wasm.cwrap(Mean,null,["number, number, number"])}function mean3(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("mean",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),castedInput=input2;input2.dtype!=="float32"&&(castedInput=cast4({backend:backend22,inputs:{x:input2},attrs:{dtype:"float32"}}),inputId=backend22.dataIdMap.get(castedInput.dataId).id);let out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMean(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return input2.dtype!=="float32"&&backend22.disposeData(castedInput.dataId),out}var meanConfig3={kernelName:Mean,backendName:"wasm",setupFunc:setup21,kernelFunc:mean3},wasmMin;function setup22(backend22){wasmMin=backend22.wasm.cwrap(Min,null,["number, number, number"])}function min4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var minConfig3={kernelName:Min,backendName:"wasm",setupFunc:setup22,kernelFunc:min4},supportsFullBroadcast10=!1,minimumConfig3=createBinaryKernelConfig(Minimum,supportsFullBroadcast10),supportsFullBroadcast11=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast11),negConfig3=createUnaryKernelConfig(Neg);function parseResultStruct(backend22,resOffset){let result=new Int32Array(backend22.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend22.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}var wasmFunc4;function setup23(backend22){wasmFunc4=backend22.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);return backend22.wasm._free(pSelectedScores),backend22.wasm._free(pValidOutputs),backend22.makeOutput([selectedSize],"int32",pSelectedIndices)}var nonMaxSuppressionV3Config3={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup23,kernelFunc},wasmFunc5;function setup24(backend22){wasmFunc5=backend22.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV43(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pSelectedScores);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend22.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}var nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup24,kernelFunc:nonMaxSuppressionV43},wasmFunc6;function setup25(backend22){wasmFunc6=backend22.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc6(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pValidOutputs);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend22.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}var nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup25,kernelFunc:kernelFunc2},supportsFullBroadcast12=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast12,"bool"),wasmOneHot;function setup26(backend22){wasmOneHot=backend22.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot4(args){let{inputs,backend:backend22,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend22.makeOutput([...indices.shape,depth],"int32"),outId=backend22.dataIdMap.get(out.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}var oneHotConfig3={kernelName:OneHot,backendName:"wasm",setupFunc:setup26,kernelFunc:oneHot4};function onesLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(1),out}var onesLikeConfig3={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike4};function pack3(args){let{inputs,backend:backend22,attrs}=args,{axis}=attrs;if(inputs.length===1)return expandDims4({inputs:{input:inputs[0]},backend:backend22,attrs:{dim:axis}});let shape=inputs[0].shape,dtype=inputs[0].dtype;inputs.forEach(t=>{util_exports.assertShapesMatch(shape,t.shape,"All tensors passed to stack must have matching shapes"),util_exports.assert(dtype===t.dtype,()=>"All tensors passed to stack must have matching dtypes")});let expandedTensors=inputs.map(t=>expandDims4({inputs:{input:t},backend:backend22,attrs:{dim:axis}}));return concat4({inputs:expandedTensors,backend:backend22,attrs:{axis}})}var packConfig3={kernelName:Pack,backendName:"wasm",kernelFunc:pack3},wasmPadV2;function setup27(backend22){wasmPadV2=backend22.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad2(args){let{inputs:{x},backend:backend22,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(outShape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}var padV2Config3={kernelName:PadV2,backendName:"wasm",kernelFunc:pad2,setupFunc:setup27},supportsFullBroadcast13=!1,powConfig3=createBinaryKernelConfig(Pow,supportsFullBroadcast13),wasmPrelu;function setup28(backend22){wasmPrelu=backend22.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu4(args){let{inputs,backend:backend22}=args,{x,alpha}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,weightsId=backend22.dataIdMap.get(alpha.dataId).id,out=backend22.makeOutput(x.shape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}var preluConfig3={kernelName:Prelu,backendName:"wasm",setupFunc:setup28,kernelFunc:prelu4},wasmProd;function setup29(backend22){wasmProd=backend22.wasm.cwrap(Prod,null,["number","number","number","number"])}function prod4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("prod",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmProd(inputId,reduceSize,CppDType[out.dtype],outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var prodConfig3={kernelName:Prod,backendName:"wasm",setupFunc:setup29,kernelFunc:prod4},range4=args=>{let{backend:backend22,attrs}=args,{start,stop,step:step4,dtype}=attrs,values=rangeImpl(start,stop,step4,dtype),out=backend22.makeOutput([values.length],dtype);return backend22.typedArrayFromHeap(out).set(values),out},rangeConfig3={kernelName:Range,backendName:"wasm",kernelFunc:range4},supportsFullBroadcast14=!0,realDivConfig3=createBinaryKernelConfig(RealDiv,supportsFullBroadcast14),reluConfig3=createUnaryKernelConfig(Relu),relu6Config3=createUnaryKernelConfig(Relu6),wasmResizeBilinear;function setup30(backend22){wasmResizeBilinear=backend22.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number","number"])}function resizeBilinear4(args){let{backend:backend22,inputs,attrs}=args,{images}=inputs,{alignCorners,halfPixelCenters,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels],xData=backend22.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast4({backend:backend22,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend22.dataIdMap.get(castedData.dataId));let xId=xData.id,out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,halfPixelCenters?1:0,outId),castedData!=null&&backend22.disposeData(castedData.dataId),out}var resizeBilinearConfig3={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup30,kernelFunc:resizeBilinear4},wasmReverse;function setup31(backend22){wasmReverse=backend22.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity3({inputs:{x},backend:backend22});let out=backend22.makeOutput(x.shape,x.dtype),xId=backend22.dataIdMap.get(x.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape4({inputs:{x:out},attrs:{shape:x.shape},backend:backend22})}var reverseConfig3={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse4,setupFunc:setup31},wasmRotate;function setup32(backend22){wasmRotate=backend22.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){let{inputs,backend:backend22,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}var rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup32},roundConfig3=createUnaryKernelConfig(Round),rsqrtConfig3=createUnaryKernelConfig(Rsqrt),wasmScatterNd;function setup33(backend22){wasmScatterNd=backend22.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd3(args){let{backend:backend22,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend22.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;let{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesId=backend22.dataIdMap.get(indices.dataId).id,updatesId=backend22.dataIdMap.get(updates.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}var scatterNdConfig3={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup33,kernelFunc:scatterNd3},wasmSelect;function setup34(backend22){wasmSelect=backend22.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function select3(args){let{inputs,backend:backend22}=args,{condition,t,e}=inputs,conditionId=backend22.dataIdMap.get(condition.dataId).id,tId=backend22.dataIdMap.get(t.dataId).id,eId=backend22.dataIdMap.get(e.dataId).id,out=backend22.makeOutput(t.shape,t.dtype),outId=backend22.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}var selectConfig3={kernelName:Select,backendName:"wasm",kernelFunc:select3,setupFunc:setup34},wasmFunc7;function setup35(backend22){wasmFunc7=backend22.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid4(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId),out}var sigmoidConfig3={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup35,kernelFunc:sigmoid4},sinConfig3=createUnaryKernelConfig(Sin);function slice4(args){let{inputs:{x},attrs:{begin,size},backend:backend22}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend22.readSync(x.dataId),out=backend22.makeOutput(size_,x.dtype),xStrides=util_exports.computeStrides(x.shape),outData=backend22.dataIdMap.get(out.dataId);if(isContinous){let flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return x.dtype==="string"?outData.stringBytes=xVals.slice(flatOffset,flatOffset+util_exports.sizeFromShape(size_)):backend22.typedArrayFromHeap(out).set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}if(x.dtype==="string"){let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);return outData.stringBytes=res,out}let outVals=backend22.typedArrayFromHeap(out),rank=x.shape.length;if(rank===2)slice2d2(xVals,xStrides[0],outVals,begin_,size_);else if(rank===3)slice3d2(xVals,xStrides[0],xStrides[1],outVals,begin_,size_);else if(rank===4)slice4d2(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_);else{let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);outVals.set(res)}return out}function slice2d2(xVals,xStride,outVals,begin,size){let outOffset=0,beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;i{let xSliceSize=[...size];xSliceSize[$axis]=s;let xSlice=slice4({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend22});return begin[$axis]+=s,xSlice})}var splitVConfig3={kernelName:SplitV,backendName:"wasm",kernelFunc:splitV3},sqrtConfig3=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15),wasmStridedSlice;function setup37(backend22){wasmStridedSlice=backend22.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));let{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});let xReshaped=reshape4({inputs:{x},attrs:{shape:newShape},backend:backend22}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;let shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});let size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);if(strides.every(v=>v===1)){let xSliced=slice4({inputs:{x},attrs:{begin,size},backend:backend22});return reshape4({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend22})}let out=backend22.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){let xId=backend22.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape4({inputs:{x:out},attrs:{shape:outShape},backend:backend22})}var stridedSliceConfig3={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup37,kernelFunc:stridedSlice4},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16),wasmSum;function setup38(backend22){wasmSum=backend22.wasm.cwrap(Sum,null,["number, number, number"])}function sum5(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var sumConfig3={kernelName:Sum,backendName:"wasm",setupFunc:setup38,kernelFunc:sum5},tanhConfig3=createUnaryKernelConfig(Tanh),wasmTile;function setup39(backend22){wasmTile=backend22.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i{let{x}=inputs,{k,sorted}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),outputShape=x.shape.slice();outputShape[outputShape.length-1]=k;let outValues=backend22.makeOutput(outputShape,x.dtype),outValuesId=backend22.dataIdMap.get(outValues.dataId).id,outIndices=backend22.makeOutput(outputShape,"int32"),outIndicesId=backend22.dataIdMap.get(outIndices.dataId).id;return wasmTopK(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],k,sorted,outValuesId,outIndicesId),[outValues,outIndices]},topKConfig3={kernelName:TopK,backendName:"wasm",setupFunc:setup40,kernelFunc:topk2};function unpack3(args){let{inputs,backend:backend22,attrs}=args,{value}=inputs,{axis}=attrs;axis<0&&(axis+=value.shape.length);let numOutputs=value.shape[axis],rank=value.shape.length,outShape=new Array(rank-1),outIndex=0;for(let i=0;i({dataId,dtype,shape:outShape}))}var unpackConfig3={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack3};function zerosLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(0),out}var zerosLikeConfig3={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike4},kernelConfigs3=[absConfig3,addConfig3,addNConfig3,argMaxConfig3,avgPoolConfig3,batchMatMulConfig3,castConfig3,clipByValueConfig2,concatConfig3,conv2DConfig3,conv2DBackpropInputConfig3,cosConfig3,cropAndResizeConfig3,cumsumConfig3,depthToSpaceConfig3,depthwiseConv2dNativeConfig3,equalConfig3,expConfig3,expandDimsConfig3,fillConfig3,flipLeftRightConfig3,floorConfig3,floorDivConfig3,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig3,fusedDepthwiseConv2DConfig3,gatherNdConfig3,gatherV2Config3,greaterConfig3,greaterEqualConfig3,identityConfig3,leakyReluConfig3,lessConfig3,lessEqualConfig3,logConfig3,logicalAndConfig3,maxConfig3,maximumConfig3,maxPoolConfig3,meanConfig3,minConfig3,minimumConfig3,multiplyConfig3,negConfig3,nonMaxSuppressionV3Config3,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig3,onesLikeConfig3,packConfig3,padV2Config3,powConfig3,preluConfig3,prodConfig3,rangeConfig3,realDivConfig3,reluConfig3,relu6Config3,reshapeConfig3,resizeBilinearConfig3,reverseConfig3,rotateWithOffsetConfig3,rsqrtConfig3,roundConfig3,scatterNdConfig3,selectConfig3,sigmoidConfig3,sinConfig3,sliceConfig3,softmaxConfig3,splitVConfig3,sqrtConfig3,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig3,subConfig3,sumConfig3,tanhConfig3,tileConfig3,topKConfig3,transposeConfig3,unpackConfig3,zerosLikeConfig3];for(let kernelConfig of kernelConfigs3)registerKernel(kernelConfig);var ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var import_tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',import_tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),BackendWasm=class extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine())}write(values,shape,dtype){let dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){let start=util_exports.now();return f(),{kernelMs:util_exports.now()-start}}move(dataId,values,shape,dtype){let id=this.dataIdNextNumber++;if(dtype==="string"){let stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}let size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){let{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;let bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){let data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};let id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});let size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){let buffer2=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer2,memoryOffset,size);case"int32":return new Int32Array(buffer2,memoryOffset,size);case"bool":return new Uint8Array(buffer2,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}};function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){let[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{let factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){let response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=import_tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+import_tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=import_tfjs_backend_wasm.default(factoryConfig);let voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{initialized||initAborted||(initAborted=!0,reject({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))}})}function typedArrayFromBuffer(buffer2,dtype){switch(dtype){case"float32":return new Float32Array(buffer2);case"int32":return new Int32Array(buffer2);case"bool":return new Uint8Array(buffer2);default:throw new Error(`Unknown dtype ${dtype}`)}}var wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;let missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}var version9="2.8.3",WASM_PRIORITY=2;registerBackend("wasm",async()=>{let{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);var exports_constraints_exports={};__export2(exports_constraints_exports,{maxNorm:()=>maxNorm,minMaxNorm:()=>minMaxNorm,nonNeg:()=>nonNeg,unitNorm:()=>unitNorm});var _epsilon;function epsilon2(){return _epsilon==null&&(_epsilon=backend().epsilon()),_epsilon}function imageDataFormat(){return"channelsLast"}var AttributeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AttributeError.prototype)}},RuntimeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,RuntimeError.prototype)}},ValueError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,ValueError.prototype)}},NotImplementedError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,NotImplementedError.prototype)}},AssertionError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AssertionError.prototype)}},IndexError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,IndexError.prototype)}};function pyListRepeat(value,numValues){if(Array.isArray(value)){let newArray=[];for(let i=0;ip1.toUpperCase())}var _GLOBAL_CUSTOM_OBJECTS={};function serializeKerasObject(instance2){if(instance2==null)return null;let dict={};return dict.className=instance2.getClassName(),dict.config=instance2.getConfig(),dict}function convertNDArrayScalarsInConfig(config2){if(!(config2==null||typeof config2!="object"))if(Array.isArray(config2))config2.forEach(configItem=>convertNDArrayScalarsInConfig(configItem));else{let fields=Object.keys(config2);for(let field of fields){let value=config2[field];value!=null&&typeof value=="object"&&(!Array.isArray(value)&&value.type==="ndarray"&&typeof value.value=="number"?config2[field]=value.value:convertNDArrayScalarsInConfig(value))}}}function deserializeKerasObject(identifier,moduleObjects={},customObjects={},printableModuleName="object",fastWeightInit=!1){if(typeof identifier=="string"){let functionName=identifier,fn;if(functionName in customObjects)fn=customObjects[functionName];else if(functionName in _GLOBAL_CUSTOM_OBJECTS)fn=_GLOBAL_CUSTOM_OBJECTS[functionName];else if(fn=moduleObjects[functionName],fn==null)throw new ValueError(`Unknown ${printableModuleName}: ${identifier}. This may be due to one of the following reasons: 1. The ${printableModuleName} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return fn}else{let config3=identifier;if(config3.className==null||config3.config==null)throw new ValueError(`${printableModuleName}: Improper config format: ${JSON.stringify(config3)}. -'className' and 'config' must set.`);let className=config3.className,cls,fromConfig;if(className in customObjects?[cls,fromConfig]=customObjects[className]:className in _GLOBAL_CUSTOM_OBJECTS?[cls,fromConfig]=_GLOBAL_CUSTOM_OBJECTS.className:className in moduleObjects&&([cls,fromConfig]=moduleObjects[className]),cls==null)throw new ValueError(`Unknown ${printableModuleName}: ${className}. This may be due to one of the following reasons: +2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return fn}else{let config2=identifier;if(config2.className==null||config2.config==null)throw new ValueError(`${printableModuleName}: Improper config format: ${JSON.stringify(config2)}. +'className' and 'config' must set.`);let className=config2.className,cls,fromConfig;if(className in customObjects?[cls,fromConfig]=customObjects[className]:className in _GLOBAL_CUSTOM_OBJECTS?[cls,fromConfig]=_GLOBAL_CUSTOM_OBJECTS.className:className in moduleObjects&&([cls,fromConfig]=moduleObjects[className]),cls==null)throw new ValueError(`Unknown ${printableModuleName}: ${className}. This may be due to one of the following reasons: 1. The ${printableModuleName} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(fromConfig!=null){let customObjectsCombined={};for(let key of Object.keys(_GLOBAL_CUSTOM_OBJECTS))customObjectsCombined[key]=_GLOBAL_CUSTOM_OBJECTS[key];for(let key of Object.keys(customObjects))customObjectsCombined[key]=customObjects[key];let nestedConfig=config3.config;nestedConfig.customObjects=customObjectsCombined;let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];convertNDArrayScalarsInConfig(config3.config);let returnObj=fromConfig(cls,config3.config,customObjects,fastWeightInit);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}else{let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];let returnObj=new cls(config3.config);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}}}function numberCompare(a,b){return ab?1:0}function reverseNumberCompare(a,b){return-1*numberCompare(a,b)}function unique4(xs){if(xs==null)return xs;let out=[];for(let x of xs)out.indexOf(x)===-1&&out.push(x);return out}function isObjectEmpty(obj){if(obj==null)throw new ValueError(`Invalid value in obj: ${JSON.stringify(obj)}`);for(let key in obj)if(obj.hasOwnProperty(key))return!1;return!0}function checkStringTypeUnionValue(values,label,value){if(value!=null&&values.indexOf(value)<0)throw new ValueError(`${value} is not a valid ${label}. Valid values are ${values} or null/undefined.`)}function checkArrayTypeAndLength(x,expectedType,minLength=0,maxLength=Infinity){return assert2(minLength>=0),assert2(maxLength>=minLength),Array.isArray(x)&&x.length>=minLength&&x.length<=maxLength&&x.every(e=>typeof e===expectedType)}function assertPositiveInteger(value,name){Array.isArray(value)?(util_exports.assert(value.length>0,()=>`${name} is unexpectedly an empty array.`),value.forEach((v,i)=>assertPositiveInteger(v,`element ${i+1} of ${name}`))):util_exports.assert(Number.isInteger(value)&&value>0,()=>`Expected ${name} to be a positive integer, but got ${formatAsFriendlyString(value)}.`)}function formatAsFriendlyString(value){return value===null?"null":Array.isArray(value)?"["+value.map(v=>formatAsFriendlyString(v)).join(",")+"]":typeof value=="string"?`"${value}"`:`${value}`}function debounce(f,waitMs){let lastTime=util_exports.now(),lastResult;return(...args)=>{let now22=util_exports.now();return now22-lastTimesqrt(sum2(mul(w,w),axis,!0)))}var Constraint=class extends serialization_exports.Serializable{getConfig(){return{}}},MaxNorm=class extends Constraint{constructor(args){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=clipByValue(norms,0,this.maxValue);return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};MaxNorm.className="MaxNorm";serialization_exports.registerClass(MaxNorm);var UnitNorm=class extends Constraint{constructor(args){super();this.defaultAxis=0,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>div(w,add2(epsilon2(),calcL2Norms(w,this.axis))))}getConfig(){return{axis:this.axis}}};UnitNorm.className="UnitNorm";serialization_exports.registerClass(UnitNorm);var NonNeg=class extends Constraint{apply(w){return relu(w)}};NonNeg.className="NonNeg";serialization_exports.registerClass(NonNeg);var MinMaxNorm=class extends Constraint{constructor(args){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=args.minValue!=null?args.minValue:this.defaultMinValue,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.rate=args.rate!=null?args.rate:this.defaultRate,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=add2(mul(this.rate,clipByValue(norms,this.minValue,this.maxValue)),mul(1-this.rate,norms));return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};MinMaxNorm.className="MinMaxNorm";serialization_exports.registerClass(MinMaxNorm);var CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function serializeConstraint(constraint){return serializeKerasObject(constraint)}function deserializeConstraint(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"constraint")}function getConstraint(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config3={className:identifier in CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP?CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeConstraint(config3)}else return identifier instanceof Constraint?identifier:deserializeConstraint(identifier)}function maxNorm(args){return new MaxNorm(args)}function unitNorm(args){return new UnitNorm(args)}function nonNeg(){return new NonNeg}function minMaxNorm(config3){return new MinMaxNorm(config3)}var exports_initializers_exports={};__export2(exports_initializers_exports,{constant:()=>constant,glorotNormal:()=>glorotNormal,glorotUniform:()=>glorotUniform,heNormal:()=>heNormal,heUniform:()=>heUniform,identity:()=>identity4,leCunNormal:()=>leCunNormal,leCunUniform:()=>leCunUniform,ones:()=>ones3,orthogonal:()=>orthogonal,randomNormal:()=>randomNormal3,randomUniform:()=>randomUniform2,truncatedNormal:()=>truncatedNormal2,varianceScaling:()=>varianceScaling,zeros:()=>zeros3});var VALID_DATA_FORMAT_VALUES=["channelsFirst","channelsLast"],VALID_INTERPOLATION_FORMAT_VALUES=["nearest","bilinear"],VALID_PADDING_MODE_VALUES=["valid","same","causal"],VALID_POOL_MODE_VALUES=["max","avg"],VALID_BIDIRECTIONAL_MERGE_MODES=["sum","mul","concat","ave"],nameMap=new Map;function checkDataFormat(value){checkStringTypeUnionValue(VALID_DATA_FORMAT_VALUES,"DataFormat",value)}function checkInterpolationFormat(value){checkStringTypeUnionValue(VALID_INTERPOLATION_FORMAT_VALUES,"InterpolationFormat",value)}function checkPaddingMode(value){checkStringTypeUnionValue(VALID_PADDING_MODE_VALUES,"PaddingMode",value)}function checkPoolMode(value){checkStringTypeUnionValue(VALID_POOL_MODE_VALUES,"PoolMode",value)}var _nameScopeStack=[],_nameScopeDivider="/";function nameScope(name,fn){_nameScopeStack.push(name);try{let val=fn();return _nameScopeStack.pop(),val}catch(e){throw _nameScopeStack.pop(),e}}function currentNameScopePrefix(){return _nameScopeStack.length===0?"":_nameScopeStack.join(_nameScopeDivider)+_nameScopeDivider}function getScopedTensorName(tensorName){if(!isValidTensorName(tensorName))throw new Error("Not a valid tensor name: '"+tensorName+"'");return currentNameScopePrefix()+tensorName}function getUniqueTensorName(scopedName){if(!isValidTensorName(scopedName))throw new Error("Not a valid tensor name: '"+scopedName+"'");nameMap.has(scopedName)||nameMap.set(scopedName,0);let index=nameMap.get(scopedName);if(nameMap.set(scopedName,nameMap.get(scopedName)+1),index>0){let result=`${scopedName}_${index}`;return nameMap.set(result,1),result}else return scopedName}var tensorNameRegex=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function isValidTensorName(name){return!!name.match(tensorNameRegex)}function isInteger(x){return x===parseInt(x.toString(),10)}function arrayProd(array2,begin,end){begin==null&&(begin=0),end==null&&(end=array2.length);let prod5=1;for(let i=begin;i{if(x.shape.length!==2)throw new ValueError(`repeat() expects a rank-2 tensor, but received a rank-${x.shape.length} tensor.`);let y=expandDims5(x,1);return tile5(y,[1,n,1])})}function flatten2(x){let newShape=[arrayProd(x.shape)];return x.reshape(newShape)}function batchFlatten(x){if(x.rank<=1)throw new ValueError(`batchFlatten requires a minimum rank of 2. Got rank: ${x.rank}.`);let newShape=[x.shape[0],arrayProd(x.shape,1)];return x.reshape(newShape)}function sliceAlongFirstAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[start,0],[size,array2.shape[1]]);case 3:return slice3d(array2,[start,0,0],[size,array2.shape[1],array2.shape[2]]);case 4:return slice4d(array2,[start,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3]]);case 5:return slice(array2,[start,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4]]);case 6:return slice(array2,[start,0,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4],array2.shape[5]]);default:throw new ValueError(`sliceAlongFirstAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongLastAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[0,start],[array2.shape[0],size]);case 3:return slice3d(array2,[0,0,start],[array2.shape[0],array2.shape[1],size]);case 4:return slice4d(array2,[0,0,0,start],[array2.shape[0],array2.shape[1],array2.shape[2],size]);default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongAxis(array2,start,size,axis){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 3:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice3d(array2,[0,start,0],[array2.shape[0],size,array2.shape[2]]);case 3:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 4:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice4d(array2,[0,start,0,0],[array2.shape[0],size,array2.shape[2],array2.shape[3]]);case 3:return slice4d(array2,[0,0,start,0],[array2.shape[0],array2.shape[1],size,array2.shape[3]]);case 4:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function concatenate(tensors,axis=-1){let rank;return axis<0&&(rank=tensors[0].rank,rank!==0?axis=rank:axis=0),axis===tensors[0].rank&&(axis=-1),concat(tensors,axis)}function concatAlongFirstAxis(a,b){switch(a.rank){case 1:return concat1d([a,b]);case 2:return concat2d([a,b],0);case 3:return concat3d([a,b],0);case 4:return concat4d([a,b],0);default:throw new ValueError(`concatAlongFirstAxis() received an unsupported tensor rank: ${a.rank}`)}}function tile5(x,n){if(Array.isArray(n)||(n=[n]),x.rank!==n.length)throw new ValueError(`The length of input n (${n.length}) does not match the number of dimensions in input x (${x.rank})`);return tile(x,n)}function randomNormal2(shape,mean4=0,stddev=1,dtype,seed){return randomNormal(shape,mean4,stddev,dtype,seed)}function dot2(a,b,activation2,bias){if(a.rank<2||b.rank<2)throw new NotImplementedError(`dot requires both inputs to be rank >= 2 but got x shape = ${a.shape} and y shape = ${b.shape}`);if(b.rank>=3){let xLastDim=a.shape.slice(-1)[0],ySecondLastDim=b.shape.slice(-2)[0];if(xLastDim!==ySecondLastDim)throw new NotImplementedError(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${a.shape} and y shape = ${b.shape}`)}if(a.rank===2&&b.rank===2){let transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2})}else{let aFirstDims=a.shape.slice(),aLastDim=aFirstDims.pop();a=a.reshape([-1,aLastDim]);let bShape=b.shape.slice(),bLastDim=bShape.pop(),ySecondLastDim=bShape.pop(),yOtherDims=[...bShape,bLastDim],perm=Array.from({length:b.rank},(_,i)=>i===0?b.rank-2:i<=b.rank-2?i-1:i);b=b.transpose(perm).reshape([ySecondLastDim,-1]);let outputShape=[...aFirstDims,...yOtherDims],transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2}).reshape(outputShape)}}function gather2(reference,indices,axis){return tidy(()=>(Array.isArray(indices)?indices=tensor1d(indices,"int32"):indices=indices.toInt(),gather(reference,indices,axis)))}function square3(x){return mul(x,x)}function reshapeBias(xRank,bias,dataFormat){let biasShape=bias.shape;if(bias.rank!==1&&bias.rank!==xRank)throw new ValueError(`Unexpected bias dimensions: ${bias.rank}; expected it to be 1 or ${xRank}`);if(xRank===5){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1,1]):bias.reshape([1,biasShape[3],biasShape[0],biasShape[1],biasShape[2]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===4){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1]):bias.reshape([1,biasShape[2],biasShape[0],biasShape[1]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===3){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1]):bias.reshape([1,biasShape[1],biasShape[0]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank<3)return bias;throw new ValueError(`Unsupported input rank by biasAdd: ${bias.rank}`)}function biasAdd(x,bias,dataFormat){return tidy(()=>(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.add(reshapeBias(x.rank,bias,dataFormat))))}function elu4(x,alpha=1){if(alpha!==1)throw new NotImplementedError(`Support for alpha values other than 1 (${alpha}) is not implemented yet.`);return elu(x)}function softsign(x){return tidy(()=>div(x,abs(x).add(1)))}function dropout2(x,level,noiseShape,seed){return tidy(()=>dropout(x,level,noiseShape,seed))}function hardSigmoid(x){return tidy(()=>{let y=add2(.5,mul(.2,x));return clipByValue(y,0,1)})}function inTrainPhase(x,alt,training=!1){return training?x():alt()}var VALID_FAN_MODE_VALUES=["fanIn","fanOut","fanAvg"],VALID_DISTRIBUTION_VALUES=["normal","uniform","truncatedNormal"];function checkFanMode(value){checkStringTypeUnionValue(VALID_FAN_MODE_VALUES,"FanMode",value)}function checkDistribution(value){checkStringTypeUnionValue(VALID_DISTRIBUTION_VALUES,"Distribution",value)}var Initializer=class extends serialization_exports.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Zeros=class extends Initializer{apply(shape,dtype){return zeros(shape,dtype)}};Zeros.className="Zeros";serialization_exports.registerClass(Zeros);var Ones=class extends Initializer{apply(shape,dtype){return ones2(shape,dtype)}};Ones.className="Ones";serialization_exports.registerClass(Ones);var Constant=class extends Initializer{constructor(args){super();if(typeof args!="object")throw new ValueError(`Expected argument of type ConstantConfig but got ${args}`);if(args.value===void 0)throw new ValueError(`config must have value set but got ${args}`);this.value=args.value}apply(shape,dtype){return tidy(()=>mul(scalar(this.value),ones2(shape,dtype)))}getConfig(){return{value:this.value}}};Constant.className="Constant";serialization_exports.registerClass(Constant);var RandomUniform=class extends Initializer{constructor(args){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=args.minval||this.DEFAULT_MINVAL,this.maxval=args.maxval||this.DEFAULT_MAXVAL,this.seed=args.seed}apply(shape,dtype){return randomUniform(shape,this.minval,this.maxval,dtype)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};RandomUniform.className="RandomUniform";serialization_exports.registerClass(RandomUniform);var RandomNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`randomNormal does not support dType ${dtype}.`);return randomNormal2(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};RandomNormal.className="RandomNormal";serialization_exports.registerClass(RandomNormal);var TruncatedNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`truncatedNormal does not support dType ${dtype}.`);return truncatedNormal(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};TruncatedNormal.className="TruncatedNormal";serialization_exports.registerClass(TruncatedNormal);var Identity2=class extends Initializer{constructor(args){super();this.gain=args.gain!=null?args.gain:1}apply(shape,dtype){return tidy(()=>{if(shape.length!==2||shape[0]!==shape[1])throw new ValueError("Identity matrix initializer can only be used for 2D square matrices.");return mul(this.gain,eye(shape[0]))})}getConfig(){return{gain:this.gain}}};Identity2.className="Identity";serialization_exports.registerClass(Identity2);function computeFans(shape,dataFormat="channelsLast"){let fanIn,fanOut;if(checkDataFormat(dataFormat),shape.length===2)fanIn=shape[0],fanOut=shape[1];else if([3,4,5].indexOf(shape.length)!==-1){if(dataFormat==="channelsFirst"){let receptiveFieldSize=arrayProd(shape,2);fanIn=shape[1]*receptiveFieldSize,fanOut=shape[0]*receptiveFieldSize}else if(dataFormat==="channelsLast"){let receptiveFieldSize=arrayProd(shape,0,shape.length-2);fanIn=shape[shape.length-2]*receptiveFieldSize,fanOut=shape[shape.length-1]*receptiveFieldSize}}else{let shapeProd=arrayProd(shape);fanIn=Math.sqrt(shapeProd),fanOut=Math.sqrt(shapeProd)}return[fanIn,fanOut]}var VarianceScaling=class extends Initializer{constructor(args){super();if(args.scale<0)throw new ValueError(`scale must be a positive float. Got: ${args.scale}`);this.scale=args.scale==null?1:args.scale,this.mode=args.mode==null?"fanIn":args.mode,checkFanMode(this.mode),this.distribution=args.distribution==null?"normal":args.distribution,checkDistribution(this.distribution),this.seed=args.seed}apply(shape,dtype){let fans=computeFans(shape),fanIn=fans[0],fanOut=fans[1],scale2=this.scale;if(this.mode==="fanIn"?scale2/=Math.max(1,fanIn):this.mode==="fanOut"?scale2/=Math.max(1,fanOut):scale2/=Math.max(1,(fanIn+fanOut)/2),this.distribution==="normal"){let stddev=Math.sqrt(scale2);if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`${this.getClassName()} does not support dType ${dtype}.`);return truncatedNormal(shape,0,stddev,dtype,this.seed)}else{let limit=Math.sqrt(3*scale2);return randomUniform(shape,-limit,limit,dtype)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};VarianceScaling.className="VarianceScaling";serialization_exports.registerClass(VarianceScaling);var GlorotUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotUniform.className="GlorotUniform";serialization_exports.registerClass(GlorotUniform);var GlorotNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotNormal.className="GlorotNormal";serialization_exports.registerClass(GlorotNormal);var HeNormal=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeNormal.className="HeNormal";serialization_exports.registerClass(HeNormal);var HeUniform=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeUniform.className="HeUniform";serialization_exports.registerClass(HeUniform);var LeCunNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunNormal.className="LeCunNormal";serialization_exports.registerClass(LeCunNormal);var LeCunUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunUniform.className="LeCunNormal";serialization_exports.registerClass(LeCunUniform);var Orthogonal=class extends Initializer{constructor(args){super();if(this.DEFAULT_GAIN=1,this.gain=args.gain==null?this.DEFAULT_GAIN:args.gain,this.seed=args.seed,this.seed!=null)throw new NotImplementedError("Random seed is not implemented for Orthogonal Initializer yet.")}apply(shape,dtype){return tidy(()=>{if(shape.length<2)throw new NotImplementedError("Shape must be at least 2D.");shape[0]*shape[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${shape[0]*shape[1]}) elements: Slowness may result.`);let normalizedShape=shape[0]>shape[1]?[shape[1],shape[0]]:shape,a=randomNormal2(normalizedShape,0,1,"float32"),q=linalg.gramSchmidt(a);return shape[0]>shape[1]&&(q=q.transpose()),mul(this.gain,q)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Orthogonal.className="Orthogonal";serialization_exports.registerClass(Orthogonal);var INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function deserializeInitializer(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"initializer")}function serializeInitializer(initializer){return serializeKerasObject(initializer)}function getInitializer(identifier){if(typeof identifier=="string"){let className=identifier in INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier;if(className==="GlorotNormal")return new GlorotNormal;if(className==="GlorotUniform")return new GlorotUniform;if(className==="HeNormal")return new HeNormal;if(className==="HeUniform")return new HeUniform;if(className==="LeCunNormal")return new LeCunNormal;if(className==="LeCunUniform")return new LeCunUniform;{let config3={};return config3.className=className,config3.config={},deserializeInitializer(config3)}}else return identifier instanceof Initializer?identifier:deserializeInitializer(identifier)}function zeros3(){return new Zeros}function ones3(){return new Ones}function constant(args){return new Constant(args)}function randomUniform2(args){return new RandomUniform(args)}function randomNormal3(args){return new RandomNormal(args)}function truncatedNormal2(args){return new TruncatedNormal(args)}function identity4(args){return new Identity2(args)}function varianceScaling(config3){return new VarianceScaling(config3)}function glorotUniform(args){return new GlorotUniform(args)}function glorotNormal(args){return new GlorotNormal(args)}function heNormal(args){return new HeNormal(args)}function heUniform(args){return new HeUniform(args)}function leCunNormal(args){return new LeCunNormal(args)}function leCunUniform(args){return new LeCunUniform(args)}function orthogonal(args){return new Orthogonal(args)}var exports_layers_exports={};__export2(exports_layers_exports,{Layer:()=>Layer,RNN:()=>RNN,RNNCell:()=>RNNCell,activation:()=>activation,add:()=>add4,alphaDropout:()=>alphaDropout,average:()=>average,averagePooling1d:()=>averagePooling1d,averagePooling2d:()=>averagePooling2d,averagePooling3d:()=>averagePooling3d,avgPool1d:()=>avgPool1d,avgPool2d:()=>avgPool2d,avgPool3d:()=>avgPool3d2,avgPooling1d:()=>avgPooling1d,avgPooling2d:()=>avgPooling2d,avgPooling3d:()=>avgPooling3d,batchNormalization:()=>batchNormalization2,bidirectional:()=>bidirectional,concatenate:()=>concatenate2,conv1d:()=>conv1d2,conv2d:()=>conv2d5,conv2dTranspose:()=>conv2dTranspose2,conv3d:()=>conv3d2,convLstm2d:()=>convLstm2d,convLstm2dCell:()=>convLstm2dCell,cropping2D:()=>cropping2D,dense:()=>dense,depthwiseConv2d:()=>depthwiseConv2d5,dot:()=>dot3,dropout:()=>dropout3,elu:()=>elu5,embedding:()=>embedding,flatten:()=>flatten3,gaussianDropout:()=>gaussianDropout,gaussianNoise:()=>gaussianNoise,globalAveragePooling1d:()=>globalAveragePooling1d,globalAveragePooling2d:()=>globalAveragePooling2d,globalMaxPool1d:()=>globalMaxPool1d,globalMaxPool2d:()=>globalMaxPool2d,globalMaxPooling1d:()=>globalMaxPooling1d,globalMaxPooling2d:()=>globalMaxPooling2d,gru:()=>gru,gruCell:()=>gruCell,input:()=>input,inputLayer:()=>inputLayer,layerNormalization:()=>layerNormalization,leakyReLU:()=>leakyReLU,lstm:()=>lstm,lstmCell:()=>lstmCell,masking:()=>masking,maxPool1d:()=>maxPool1d,maxPool2d:()=>maxPool2d,maxPooling1d:()=>maxPooling1d,maxPooling2d:()=>maxPooling2d,maxPooling3d:()=>maxPooling3d,maximum:()=>maximum4,minimum:()=>minimum4,multiply:()=>multiply3,permute:()=>permute,prelu:()=>prelu5,reLU:()=>reLU,repeatVector:()=>repeatVector,reshape:()=>reshape5,rnn:()=>rnn2,separableConv2d:()=>separableConv2d2,simpleRNN:()=>simpleRNN,simpleRNNCell:()=>simpleRNNCell,softmax:()=>softmax5,spatialDropout1d:()=>spatialDropout1d,stackedRNNCells:()=>stackedRNNCells,thresholdedReLU:()=>thresholdedReLU,timeDistributed:()=>timeDistributed,upSampling2d:()=>upSampling2d,zeroPadding2d:()=>zeroPadding2d});var _nextUniqueTensorId=0;function getNextUniqueTensorId(){return _nextUniqueTensorId++}var _uidPrefixes={};function getUid(prefix=""){return prefix in _uidPrefixes||(_uidPrefixes[prefix]=0),_uidPrefixes[prefix]+=1,prefix+_uidPrefixes[prefix].toString()}function isArrayOfShapes(x){return Array.isArray(x)&&Array.isArray(x[0])}function normalizeShapeList(x){return x.length===0?[]:Array.isArray(x[0])?x:[x]}function getExactlyOneTensor(xs){let x;if(Array.isArray(xs)){if(xs.length!==1)throw new ValueError(`Expected Tensor length to be 1; got ${xs.length}`);x=xs[0]}else x=xs;return x}function getExactlyOneShape(shapes){if(Array.isArray(shapes)&&Array.isArray(shapes[0])){if(shapes.length===1)return shapes=shapes,shapes[0];throw new ValueError(`Expected exactly 1 Shape; got ${shapes.length}`)}else return shapes}function countParamsInWeights(weights){let count2=0;for(let weight of weights)weight.shape.length===0?count2+=1:count2+=weight.shape.reduce((a,b)=>a*b);return count2}var DEFAULT_VARIABLE_NAME_PREFIX="Variable",LayerVariable=class{constructor(val,dtype="float32",name=DEFAULT_VARIABLE_NAME_PREFIX,trainable=!0,constraint=null){this.dtype=dtype==null?"float32":dtype,this.shape=val.shape,this.id=getNextUniqueTensorId(),name=name==null?DEFAULT_VARIABLE_NAME_PREFIX:name,this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName),this.trainable_=trainable,this.constraint=constraint,this.val=variable(val,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(newVal){return this.assertNotDisposed(),checkShapesMatch(this.val,newVal),this.val.id!==newVal.id&&(this.val.assign(newVal),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(trainable){this.trainable_=trainable,this.val.trainable=trainable}};function checkShapesMatch(x,y){if(x.shape.toString()!==y.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(x.shape)+" vs. "+JSON.stringify(y.shape))}function batchGetValue(xs){return xs.map(x=>x.read())}function batchSetValue(variablesAndValues){variablesAndValues.forEach(variableAndValue=>{variableAndValue[0].write(variableAndValue[1])})}var InputSpec=class{constructor(args){this.dtype=args.dtype,this.shape=args.shape,args.shape!=null?this.ndim=args.shape.length:this.ndim=args.ndim,this.maxNDim=args.maxNDim,this.minNDim=args.minNDim,this.axes=args.axes||{}}},SymbolicTensor=class{constructor(dtype,shape,sourceLayer,inputs,callArgs,name,outputTensorIndex){this.dtype=dtype,this.shape=shape,this.sourceLayer=sourceLayer,this.inputs=inputs,this.callArgs=callArgs,this.outputTensorIndex=outputTensorIndex,this.id=getNextUniqueTensorId(),name!=null&&(this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName)),this.rank=shape.length}},_nextNodeID=0,Node=class{constructor(args,callArgs){this.callArgs=callArgs,this.id=_nextNodeID++,this.outboundLayer=args.outboundLayer,this.inboundLayers=args.inboundLayers,this.nodeIndices=args.nodeIndices,this.tensorIndices=args.tensorIndices,this.inputTensors=args.inputTensors,this.outputTensors=args.outputTensors,this.inputMasks=args.inputMasks,this.outputMasks=args.outputMasks,this.inputShapes=args.inputShapes,this.outputShapes=args.outputShapes;for(let layer of args.inboundLayers)layer!=null&&layer.outboundNodes.push(this);args.outboundLayer.inboundNodes.push(this)}getConfig(){let inboundNames=[];for(let layer of this.inboundLayers)layer!=null?inboundNames.push(layer.name):inboundNames.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:inboundNames,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},_nextLayerID=0,Layer=class extends serialization_exports.Serializable{constructor(args={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=_nextLayerID++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let name=args.name;if(!name){let prefix=this.getClassName();name=toSnakeCase(prefix)+"_"+getUid(prefix)}if(this.name=name,this.trainable_=args.trainable==null?!0:args.trainable,args.inputShape!=null||args.batchInputShape!=null){let batchInputShape;if(args.batchInputShape!=null)batchInputShape=args.batchInputShape;else if(args.inputShape!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),batchInputShape=[batchSize].concat(args.inputShape)}this.batchInputShape=batchInputShape;let dtype=args.dtype;dtype==null&&(dtype=args.inputDType),dtype==null&&(dtype="float32"),this.dtype=dtype}args.weights!=null?this.initialWeights=args.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(layer,nodeIndex){return layer.name+"_ib-"+nodeIndex.toString()}getNodeAtIndex(nodeIndex,attrName){if(this.inboundNodes.length===0)throw new RuntimeError(`The layer has never been called and thus has no defined ${attrName}.`);if(this.inboundNodes.length<=nodeIndex)throw new ValueError(`Asked to get ${attrName} at node ${nodeIndex}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[nodeIndex]}getInputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"input").inputTensors)}getOutputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} is not connected, no input to return.`);return singletonOrArray(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return singletonOrArray(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(lossFn=>lossFn())}get updates(){return this._updates}get built(){return this._built}set built(built){this._built=built}get trainable(){return this.trainable_}set trainable(trainable){this._trainableWeights.forEach(w=>w.trainable=trainable),this.trainable_=trainable}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(w=>w.trainable):[]}set trainableWeights(weights){this._trainableWeights=weights}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(w=>!w.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(weights){this._nonTrainableWeights=weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(inputs){if(inputs=toList(inputs),this.inputSpec==null||this.inputSpec.length===0)return;let inputSpec=toList(this.inputSpec);if(inputs.length!==inputSpec.length)throw new ValueError(`Layer ${this.name} expects ${inputSpec.length} inputs, but it received ${inputs.length} input tensors. Input received: ${inputs}`);for(let inputIndex=0;inputIndexspec.maxNDim)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected max_ndim=${spec.maxNDim}, found ndim=${ndim}`);if(spec.minNDim!=null&&ndim=0?xShape[axis]:xShape[xShape.length+axis];if(value!=null&&[value,null].indexOf(xShapeAtAxis)===-1)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected axis ${axis} of input shape to have value ${value} but got shape ${xShape}.`)}}if(spec.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(inputs);let inputShapes=[];for(let xElem of toList(inputs))inputShapes.push(xElem.shape);this.build(singletonOrArray(inputShapes)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&noneAreSymbolic&&(this._refCount=1)}if(this.assertInputCompatibility(inputs),noneAreSymbolic){let output=this.call(inputs,kwargs),outputList=toList(output),outputListCopy=[];for(let x of outputList)inputsList.indexOf(x)!==-1&&(x=x.clone()),outputListCopy.push(x);if(output=singletonOrArray(outputListCopy),this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}else{let inputShape=collectInputShape(inputs),outputShape=this.computeOutputShape(inputShape),output,outputDType=guessOutputDType(inputs);if(this.warnOnIncompatibleInputShape(Array.isArray(inputs)?inputShape[0]:inputShape),outputShape!=null&&outputShape.length>0&&Array.isArray(outputShape[0])?output=outputShape.map((shape,index)=>new SymbolicTensor(outputDType,shape,this,toList(inputs),kwargs,this.name,index)):output=new SymbolicTensor(outputDType,outputShape,this,toList(inputs),kwargs,this.name),this.addInboundNode(inputs,output,null,null,inputShape,outputShape,kwargs),this._refCount++,this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}})}warnOnIncompatibleInputShape(inputShape){if(this.batchInputShape!=null)if(inputShape.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(inputShape)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let dimMismatch=!1;this.batchInputShape.forEach((dimension,i)=>{dimension!=null&&inputShape[i]!=null&&inputShape[i]!==dimension&&(dimMismatch=!0)}),dimMismatch&&console.warn(`The shape of the input tensor (${JSON.stringify(inputShape)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new AttributeError(`The layer ${this.name} has never been called and thus has no defined output shape.`);let allOutputShapes=[];for(let node of this.inboundNodes){let shapeString=JSON.stringify(node.outputShapes);allOutputShapes.indexOf(shapeString)===-1&&allOutputShapes.push(shapeString)}if(allOutputShapes.length===1){let outputShapes=this.inboundNodes[0].outputShapes;return Array.isArray(outputShapes)&&Array.isArray(outputShapes[0])&&outputShapes.length===1?outputShapes[0]:outputShapes}else throw new AttributeError(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new RuntimeError(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return countParamsInWeights(this.weights)}build(inputShape){this.built=!0}getWeights(trainableOnly=!1){return batchGetValue(trainableOnly?this.trainableWeights:this.weights)}setWeights(weights){tidy(()=>{let params=this.weights;if(params.length!==weights.length)throw new ValueError(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${weights.length}, but the layer was expecting ${params.length} weights. Provided weights: ${weights}...`);if(params.length===0)return;let weightValueTuples=[],paramValues=batchGetValue(params);for(let i=0;iregularizer.apply(weight.read())),trainable==null&&(trainable=!0),trainable?this._trainableWeights.push(weight):this._nonTrainableWeights.push(weight),weight}setFastWeightInitDuringBuild(value){this.fastWeightInitDuringBuild=value}addLoss(losses4){losses4==null||Array.isArray(losses4)&&losses4.length===0||(losses4=toList(losses4),this._losses!==void 0&&this._losses!==null&&this.losses.push(...losses4))}computeOutputShape(inputShape){return inputShape}computeMask(inputs,mask){if(!this.supportsMasking){if(mask!=null)if(Array.isArray(mask))mask.forEach(maskElement=>{if(maskElement!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return mask}addInboundNode(inputTensors,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes,kwargs=null){let inputTensorList=toList(inputTensors);outputTensors=toList(outputTensors),inputMasks=toList(inputMasks),outputMasks=toList(outputMasks),inputShapes=normalizeShapeList(inputShapes),outputShapes=normalizeShapeList(outputShapes);let inboundLayers=[],nodeIndices=[],tensorIndices=[];for(let x of inputTensorList)inboundLayers.push(x.sourceLayer),nodeIndices.push(x.nodeIndex),tensorIndices.push(x.tensorIndex);new Node({outboundLayer:this,inboundLayers,nodeIndices,tensorIndices,inputTensors:inputTensorList,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes},kwargs);for(let i=0;iweight.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let numDisposedVariables=0;return--this._refCount==0&&(numDisposedVariables=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables}}};function collectInputShape(inputTensors){inputTensors=toList(inputTensors);let shapes=[];for(let x of inputTensors)shapes.push(x.shape);return singletonOrArray(shapes)}function guessOutputDType(inputTensors){return"float32"}function getSourceInputs(tensor2,layer,nodeIndex){if((layer==null||nodeIndex!=null&&nodeIndex>0)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex),layer.inboundNodes.length===0)return[tensor2];{let node=layer.inboundNodes[nodeIndex];if(node.inboundLayers.length===0)return node.inputTensors;{let sourceTensors=[];for(let i=0;i0){let values=await Promise.all(promises);for(let i=0;iadd2(this.totals[key],mul(value,batchSize)));this.totals[key]=total,oldTotalsToDispose!=null&&oldTotalsToDispose.dispose()}}}async onEpochEnd(epoch,logs){if(logs!=null)for(let key of this.params.metrics)this.totals[key]!=null&&(typeof this.totals[key]=="number"?logs[key]=this.totals[key]/this.seen:tidy(()=>{let log52=mul(div(1,this.seen),this.totals[key]);logs[key]=log52,this.totals[key].dispose(),keep(logs[key])}))}},History=class extends BaseCallback{async onTrainBegin(logs){this.epoch=[],this.history={}}async onEpochEnd(epoch,logs){logs==null&&(logs={}),this.epoch.push(epoch);for(let key in logs)this.history[key]==null&&(this.history[key]=[]),this.history[key].push(logs[key])}async syncData(){let promises=[],keys=[],indices=[];for(let key in this.history){let valueArray=this.history[key];for(let i=0;inew CustomCallback(callbackConfig,yieldEvery))}var CallbackConstructorRegistry=class{constructor(){}static registerCallbackConstructor(verbosityLevel,callbackConstructor){util_exports.assert(verbosityLevel>=0&&Number.isInteger(verbosityLevel),()=>`Verbosity level is expected to be an integer >= 0, but got ${verbosityLevel}`),CallbackConstructorRegistry.checkForDuplicate(callbackConstructor),CallbackConstructorRegistry.constructors[verbosityLevel]==null&&(CallbackConstructorRegistry.constructors[verbosityLevel]=[]),CallbackConstructorRegistry.constructors[verbosityLevel].push(callbackConstructor)}static checkForDuplicate(callbackConstructor){for(let levelName in CallbackConstructorRegistry.constructors)CallbackConstructorRegistry.constructors[+levelName].forEach(ctor=>{if(ctor===callbackConstructor)throw new ValueError("Duplicate callback constructor.")})}static clear(){CallbackConstructorRegistry.constructors={}}static createCallbacks(verbosityLevel){let constructors=[];for(let levelName in CallbackConstructorRegistry.constructors){let level=+levelName;verbosityLevel>=level&&constructors.push(...CallbackConstructorRegistry.constructors[level])}return constructors.map(ctor=>new ctor)}};CallbackConstructorRegistry.constructors={};function configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics){let history=new History,actualCallbacks=[new BaseLogger,...CallbackConstructorRegistry.createCallbacks(verbose)];callbacks2!=null&&actualCallbacks.push(...callbacks2),actualCallbacks.push(history);let callbackList=new CallbackList(actualCallbacks);return callbackList.setParams({epochs,initialEpoch,samples:numTrainSamples,steps:stepsPerEpoch,batchSize,verbose,doValidation,metrics:callbackMetrics}),{callbackList,history}}function deserialize(config3,customObjects={},fastWeightInit=!1){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"layer",fastWeightInit)}function l2Normalize(x,axis){return tidy(()=>{x.dtype!=="float32"&&(x=x.asType("float32"));let squareSum=sum2(square3(x),axis,!0),epsilonTensor=fill(squareSum.shape,epsilon2()),norm2=sqrt(maximum(squareSum,epsilonTensor));return div(x,norm2)})}function meanSquaredError2(yTrue,yPred){return tidy(()=>mean(square3(sub(yPred,yTrue)),-1))}function meanAbsoluteError(yTrue,yPred){return tidy(()=>mean(abs(sub(yPred,yTrue)),-1))}function meanAbsolutePercentageError(yTrue,yPred){return tidy(()=>{let diff=sub(yTrue,yPred),clippedTrue=clipByValue(abs(yTrue),epsilon2(),Number.MAX_VALUE),absResult=abs(div(diff,clippedTrue));return mul(100,mean(absResult,-1))})}function meanSquaredLogarithmicError(yTrue,yPred){return tidy(()=>{let clippedPred=clipByValue(yPred,epsilon2(),Number.MAX_VALUE),firstLog=log2(add2(1,clippedPred)),clippedTrue=clipByValue(yTrue,epsilon2(),Number.MAX_VALUE),secondLog=log2(add2(1,clippedTrue));return mean(square3(sub(firstLog,secondLog)),-1)})}function squaredHinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(square3(maxResult),-1)})}function hinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(maxResult,-1)})}function categoricalHinge(yTrue,yPred){return tidy(()=>{let pos=sum2(mul(yTrue,yPred),-1),neg4=max(mul(sub(1,yTrue),yPred),-1);return maximum(0,add2(1,sub(neg4,pos)))})}function logcosh(yTrue,yPred){return tidy(()=>{let log222=Math.log(2),predictionDiff=sub(yPred,yTrue),logcoshResult=sub(add2(predictionDiff,softplus(mul(-2,predictionDiff))),log222);return mean(logcoshResult,-1)})}function categoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{if(fromLogits)output=softmax(output);else{let outputSum=sum2(output,output.shape.length-1,!0);output=div(output,outputSum)}return output=clipByValue(output,epsilon2(),1-epsilon2()),neg(sum2(mul(target.toFloat(),log2(output)),output.shape.length-1))})}function sparseCategoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{let flatTarget=floor(flatten2(target)).toInt();output=clipByValue(output,epsilon2(),1-epsilon2());let outputShape=output.shape,oneHotTarget=oneHot(flatTarget,outputShape[outputShape.length-1]).reshape(outputShape);return categoricalCrossentropy(oneHotTarget,output,fromLogits)})}function sigmoidCrossEntropyWithLogits(labels,logits){if(!util_exports.arraysEqual(labels.shape,logits.shape))throw new ValueError(`logits and labels must have the same shape, but got shapes ${JSON.stringify(labels.shape)} and ${JSON.stringify(logits.shape)}`);return tidy(()=>{let reluLogits=logits.relu(),negAbsLogits=logits.abs().neg();return reluLogits.sub(logits.mul(labels)).add(negAbsLogits.exp().log1p())})}function binaryCrossentropy(yTrue,yPred){return tidy(()=>{let y;return y=clipByValue(yPred,epsilon2(),1-epsilon2()),y=log2(div(y,sub(1,y))),mean(sigmoidCrossEntropyWithLogits(yTrue,y),-1)})}function kullbackLeiblerDivergence(yTrue,yPred){return tidy(()=>{let clippedTrue=clipByValue(yTrue,epsilon2(),1),clippedPred=clipByValue(yPred,epsilon2(),1);return sum2(mul(yTrue,log2(div(clippedTrue,clippedPred))),-1)})}function poisson(yTrue,yPred){return tidy(()=>{let logPred=log2(add2(epsilon2(),yPred));return mean(sub(yPred,mul(yTrue,logPred)),-1)})}function cosineProximity(yTrue,yPred){return tidy(()=>{let trueNormalized=l2Normalize(yTrue,-1),predNormalized=l2Normalize(yPred,-1),trueXPred=mul(trueNormalized,predNormalized);return neg(sum2(trueXPred,-1))})}var lossesMap={meanSquaredError:meanSquaredError2,meanAbsoluteError,meanAbsolutePercentageError,meanSquaredLogarithmicError,squaredHinge,hinge,categoricalHinge,logcosh,categoricalCrossentropy,sparseCategoricalCrossentropy,binaryCrossentropy,kullbackLeiblerDivergence,poisson,cosineProximity};function get(identifierOrFn){if(typeof identifierOrFn=="string"){if(identifierOrFn in lossesMap)return lossesMap[identifierOrFn];let errMsg=`Unknown loss ${identifierOrFn}`;throw identifierOrFn.toLowerCase().includes("softmaxcrossentropy")&&(errMsg=`Unknown loss ${identifierOrFn}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new ValueError(errMsg)}else return identifierOrFn}function binaryAccuracy(yTrue,yPred){return tidy(()=>{let threshold2=mul(.5,onesLike(yPred)),yPredThresholded=cast5(greater(yPred,threshold2),yTrue.dtype);return mean(equal(yTrue,yPredThresholded),-1)})}function categoricalAccuracy(yTrue,yPred){return tidy(()=>cast5(equal(argMax(yTrue,-1),argMax(yPred,-1)),"float32"))}function truePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(1)).sum().cast("float32"))}function falseNegatives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(0)).sum().cast("float32"))}function falsePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(0),yPred.equal(1)).sum().cast("float32"))}function precision(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fp=falsePositives(yTrue,yPred),denominator=tp.add(fp);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function recall(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fn=falseNegatives(yTrue,yPred),denominator=tp.add(fn);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function binaryCrossentropy2(yTrue,yPred){return binaryCrossentropy(yTrue,yPred)}function sparseCategoricalAccuracy(yTrue,yPred){return yTrue.rank===yPred.rank&&(yTrue=yTrue.squeeze([yTrue.rank-1])),yPred=yPred.argMax(-1),yPred.dtype!==yTrue.dtype&&(yPred=yPred.asType(yTrue.dtype)),equal(yTrue,yPred).asType("float32")}var mse=meanSquaredError2,MSE=meanSquaredError2,mae=meanAbsoluteError,MAE=meanAbsoluteError,mape=meanAbsolutePercentageError,MAPE=meanAbsolutePercentageError,categoricalCrossentropy2=categoricalCrossentropy,cosine=cosineProximity,sparseCategoricalCrossentropy2=sparseCategoricalCrossentropy,metricsMap={binaryAccuracy,categoricalAccuracy,precision,categoricalCrossentropy:categoricalCrossentropy2,sparseCategoricalCrossentropy:sparseCategoricalCrossentropy2,mse,MSE,mae,MAE,mape,MAPE,cosine};function get2(identifier){if(typeof identifier=="string"&&identifier in metricsMap)return metricsMap[identifier];if(typeof identifier!="string"&&identifier!=null)return identifier;throw new ValueError(`Unknown metric ${identifier}`)}function getLossOrMetricName(fn){if(assert2(fn!==null,`Unknown LossOrMetricFn ${fn}`),typeof fn=="string")return fn;{let fnName;for(let key of Object.keys(lossesMap))if(lossesMap[key]===fn){fnName=key;break}if(fnName!==void 0)return fnName;for(let key of Object.keys(metricsMap))if(metricsMap[key]===fn){fnName=key;break}return fnName!==void 0?fnName:fn.name}}function getOptimizer(identifier){let optimizerMap={Adagrad:()=>train.adagrad(.01),Adadelta:()=>train.adadelta(1,.95,epsilon2()),Adam:()=>train.adam(.001,.9,.999,epsilon2()),Adamax:()=>train.adamax(.002,.9,.999,epsilon2(),0),RMSProp:()=>train.rmsprop(.001,.9,0,epsilon2()),SGD:()=>train.sgd(.01)};if(optimizerMap.adagrad=optimizerMap.Adagrad,optimizerMap.adadelta=optimizerMap.Adadelta,optimizerMap.adam=optimizerMap.Adam,optimizerMap.adamax=optimizerMap.Adamax,optimizerMap.rmsprop=optimizerMap.RMSProp,optimizerMap.sgd=optimizerMap.SGD,identifier in optimizerMap)return optimizerMap[identifier]();throw new ValueError(`Unknown Optimizer ${identifier}`)}var MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH=1*1024*1024;function checkUserDefinedMetadata(userDefinedMetadata,modelName,checkSize=!1){if(userDefinedMetadata==null||typeof userDefinedMetadata!="object"||Object.getPrototypeOf(userDefinedMetadata)!==Object.prototype||!plainObjectCheck(userDefinedMetadata))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(checkSize){let out=JSON.stringify(userDefinedMetadata);out.length>MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH&&console.warn(`User-defined metadata of model "${modelName}" is too large in size (length=${out.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH}.`)}}function plainObjectCheck(x){if(x===null)return!0;if(typeof x=="object")if(Object.getPrototypeOf(x)===Object.prototype){let keys=Object.keys(x);for(let key of keys)if(typeof key!="string"||!plainObjectCheck(x[key]))return!1;return!0}else if(Array.isArray(x)){for(let item of x)if(!plainObjectCheck(item))return!1;return!0}else return!1;else{let xType=typeof x;return xType==="string"||xType==="number"||xType==="boolean"}}function printSummary(model2,lineLength,positions,printFn=console.log){let sequentialLike=isModelSequentialLike(model2),toDisplay=["Layer (type)","Output shape","Param #"];sequentialLike?(lineLength=lineLength||65,positions=positions||[.45,.85,1]):(lineLength=lineLength||98,positions=positions||[.33,.55,.67,1]),positions[positions.length-1]<=1&&(positions=positions.map(p2=>Math.floor(lineLength*p2)));let relevantNodes;if(!sequentialLike){toDisplay.push("Receives inputs"),relevantNodes=[];for(let depth in model2.nodesByDepth)relevantNodes.push(...model2.nodesByDepth[depth])}printFn("_".repeat(lineLength)),printRow(toDisplay,positions,printFn),printFn("=".repeat(lineLength));let layers=model2.layers;for(let i=0;i1||depthNodes.length===1&&depthNodes[0].inboundLayers.length>1){sequentialLike=!1;break}nodes.push(...depthNodes)}if(sequentialLike)for(let layer of model2.layers){let flag=!1;for(let node of layer.inboundNodes)if(nodes.indexOf(node)!==-1)if(flag){sequentialLike=!1;break}else flag=!0;if(!sequentialLike)break}return sequentialLike}function printRow(fields,positions,printFn=console.log){let line="";for(let i=0;i0&&(line=line.slice(0,line.length-1)+" "),line+=fields[i],line=line.slice(0,positions[i]),line+=" ".repeat(positions[i]-line.length);printFn(line)}function printLayerSummary(layer,positions,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let name=layer.name,className=layer.getClassName(),fields=[`${name} (${className})`,outputShape,layer.countParams().toString()];printRow(fields,positions,printFn)}function printLayerSummaryWithConnections(layer,positions,relevantNodes,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let connections=[];for(let node of layer.inboundNodes)if(!(relevantNodes!=null&&relevantNodes.length>0&&relevantNodes.indexOf(node)===-1))for(let i=0;it.name),finalOutputs=[],feedNames=feedDict.names();for(let outputName of outputNames)feedNames.indexOf(outputName)!==-1?finalOutputs.push(feedDict.getValue(outputName)):finalOutputs.push(null);probe!=null&&(probe.maxNumTensors=-Infinity,probe.minNumTensors=Infinity);let fetchAndFeedKey=outputNames.join(",")+"|"+feedDict.names().join(","),sorted,recipientCounts;if(cachedSorted[fetchAndFeedKey]==null){let out=getTopologicalSortAndRecipientCounts(fetchArray,feedDict);sorted=out.sorted,recipientCounts=out.recipientCounts,cachedSorted[fetchAndFeedKey]=sorted,cachedRecipientCounts[fetchAndFeedKey]=recipientCounts}sorted=cachedSorted[fetchAndFeedKey],recipientCounts={},training||Object.assign(recipientCounts,cachedRecipientCounts[fetchAndFeedKey]);let internalFeedDict=new FeedDict(feedDict);for(let i=0;iprobe.maxNumTensors&&(probe.maxNumTensors=numTensors),numTensors0,()=>"Expected at least one fetch, got none");let finalSorted=[],finalRecipientMap={};if(fetches.length===1){let out=getTopologicalSortAndRecipientCountsForOneFetch(fetches[0],feedDict);finalSorted=out.sorted,finalRecipientMap=out.recipientMap}else{let visited=new Set;for(let fetch3 of fetches){let{sorted,recipientMap}=getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict);for(let symbolicTensor of sorted)visited.has(symbolicTensor.name)||(finalSorted.push(symbolicTensor),visited.add(symbolicTensor.name));for(let name in recipientMap)finalRecipientMap[name]==null&&(finalRecipientMap[name]=new Set),recipientMap[name].forEach(recipient=>finalRecipientMap[name].add(recipient))}}return{sorted:finalSorted,recipientCounts:recipientMap2Counts(finalRecipientMap)}}function recipientMap2Counts(recipientMap){let recipientCounts={};for(let name in recipientMap)recipientCounts[name]=recipientMap[name].size;return recipientCounts}function getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict){let visited=new Set,sorted=[],recipientMap={};for(let key of feedDict.names())visited.add(key);let stack2=[],marks=[];for(stack2.push(fetch3);stack2.length>0;){let top=stack2[stack2.length-1];if(visited.has(top.name)){stack2.pop();continue}let topIsMarked=marks[marks.length-1]===stack2.length-1;if(top.inputs.length===0||topIsMarked)stack2.pop(),sorted.push(top),visited.add(top.name),topIsMarked&&marks.pop();else{marks.push(stack2.length-1);for(let input2 of top.inputs)recipientMap[input2.name]==null&&(recipientMap[input2.name]=new Set),recipientMap[input2.name].add(top.name),!visited.has(input2.name)&&stack2.push(input2)}}return{sorted,recipientMap}}function getNodeOutputs(fetch3){let layerOutputs;if(fetch3.sourceLayer.inboundNodes.length===1)layerOutputs=fetch3.sourceLayer.output;else{let nodeIndex=null;for(let i=0;ix.name)}`);unique4(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(x=>x.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let x of this.outputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;this.outputLayers.push(layer),this.outputLayersNodeIndices.push(nodeIndex),this.outputLayersTensorIndices.push(tensorIndex)}for(let x of this.inputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;assert2(nodeIndex===0,"input layer has >1 nodes"),assert2(tensorIndex===0,"input layer has >1 tensors"),this.inputLayers.push(layer),this.inputLayersNodeIndices.push(nodeIndex),this.inputLayersTensorIndices.push(tensorIndex)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let i=0;ix.shape),this.internalOutputShapes=this.outputs.map(x=>x.shape);let nodesDepths={},nodeIDToNode={},layersDepths={},layerIDToLayer={},layerIndices={},nodesInDecreasingDepth=[],buildMapOfGraph=(tensor2,finishedNodes2,nodesInProgress2,layer,nodeIndex,tensorIndex)=>{(layer==null||nodeIndex==null||tensorIndex==null)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex,tensorIndex=tensor2.tensorIndex);let node=layer.inboundNodes[nodeIndex];if(nodesInProgress2.indexOf(node)!==-1)throw new RuntimeError(`The tensor ${tensor2.name} at layer "${layer.name}" is part of a cycle.`);if(finishedNodes2.indexOf(node)!==-1)return;this.containerNodes.add(Container.nodeKey(layer,nodeIndex)),layer.id in layerIndices||(layerIndices[layer.id]=Object.keys(layerIndices).length),nodesInProgress2.indexOf(node)===-1&&nodesInProgress2.push(node);let numInboundLayers=node.inboundLayers.length;for(let i=0;i=0;)nodesInProgress2.splice(nodesInProgress2.indexOf(node),1);nodesInDecreasingDepth.push(node)},finishedNodes=[],nodesInProgress=[];for(let x of this.outputs)buildMapOfGraph(x,finishedNodes,nodesInProgress);let reversedNodesInDecreasingDepth=nodesInDecreasingDepth.slice().reverse();for(let node of reversedNodesInDecreasingDepth){nodeIDToNode[node.id]=node,node.id in nodesDepths||(nodesDepths[node.id]=0);let depth=nodesDepths[node.id],previousDepth=layersDepths[node.outboundLayer.id]==null?0:layersDepths[node.outboundLayer.id];depth=Math.max(depth,previousDepth),layersDepths[node.outboundLayer.id]=depth,layerIDToLayer[node.outboundLayer.id]=node.outboundLayer,nodesDepths[node.id]=depth;for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);this.layers=[];for(let depth of depthKeys){let layersForDepth=layersByDepth[depth];layersForDepth.sort((a,b)=>{let aIndex=layerIndices[a.id],bIndex=layerIndices[b.id];return aIndexbIndex?1:0});for(let layer of layersForDepth)layer instanceof Container&&this.internalContainerRefs.push(layer),this.layers.push(layer)}this.layersByDepth=layersByDepth,depthKeys=Object.keys(nodesByDepth).map(x=>parseInt(x,10)).sort(reverseNumberCompare);let computableTensors=this.inputs.slice(),layersWithCompleteInput=[];for(let depth of depthKeys)for(let node of nodesByDepth[depth]){let layer=node.outboundLayer;if(layer!=null){for(let x of node.inputTensors)if(computableTensors.indexOf(x)===-1)throw new RuntimeError(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${layer.name}". The following previous layers were accessed without issue: ${layersWithCompleteInput}`);for(let x of node.outputTensors)computableTensors.push(x);layersWithCompleteInput.push(layer.name)}}this.nodesByDepth=nodesByDepth;let allNames=this.layers.map(x=>x.name);for(let name of allNames){let numOccurrences=allNames.filter(x=>x===name).length;if(numOccurrences!==1)throw new RuntimeError(`The name "${name}" is used ${numOccurrences} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(allNames))}this.outboundNodes=[],this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(x=>null),outputMasks:this.outputs.map(x=>null),inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs.map(x=>x.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let result={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let layer of this.layers)result.numDisposedVariables+=layer.dispose().numDisposedVariables;for(let container of this.internalContainerRefs)result.numDisposedVariables+=container.dispose().numDisposedVariables}return result.refCountAfterDispose=this._refCount,result}get trainable(){return this.trainable_}set trainable(trainable){this.layers.forEach(layer=>{layer._trainableWeights.forEach(w=>w.trainable=trainable)}),this.trainable_=trainable}get trainableWeights(){if(this._trainableWeights.length>0)throw new ValueError("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let weights=[];for(let layer of this.layers)weights=weights.concat(layer.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let layer of this.layers)weights.push(...layer.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let layer of this.layers)trainableWeights.push(...layer.trainableWeights);return trainableWeights.concat(weights)}return weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(weights,strict=!0){let nameToWeight={},totalWeightsCount=0;for(let layer of this.layers)for(let weight of layer.weights){if(nameToWeight[weight.originalName]!=null)throw new ValueError(`Duplicate weight name: ${weight.originalName}`);nameToWeight[weight.originalName]=weight,totalWeightsCount++}let weightValueTuples=[];for(let name in weights){let validatedName=name;if(nameToWeight[name]==null){let tokens=name.split("/");validatedName=tokens.slice(0,-2).concat([tokens[tokens.length-1]]).join("/")}if(nameToWeight[validatedName]!=null)weightValueTuples.push([nameToWeight[validatedName],weights[name]]);else if(strict)throw new ValueError(`Provided weight data has no target variable: ${name}`);delete nameToWeight[validatedName]}if(strict){let unsetNames=[];for(let name in nameToWeight)unsetNames.push(name);if(unsetNames.length>0)throw new ValueError(`${unsetNames.length} of ${totalWeightsCount} weights are not set: ${unsetNames}`)}batchSetValue(weightValueTuples)}updatedConfig(){let theConfig=this.getConfig(),modelConfig={};return modelConfig.className=this.getClassName(),modelConfig.config=theConfig,modelConfig.kerasVersion=`tfjs-layers ${version10}`,modelConfig.backend="TensorFlow.js",modelConfig}toJSON(unused,returnString=!0){let modelConfig=convertTsToPythonic(this.updatedConfig());return returnString?JSON.stringify(modelConfig):modelConfig}call(inputs,kwargs){return tidy(()=>{inputs=toList(inputs);let feedDict=new FeedDict;for(let i=0;i{inputs=toList(inputs);let masks;return mask==null?masks=pyListRepeat(null,inputs.length):masks=toList(mask),this.runInternalGraph(inputs,masks)[1]})}computeOutputShape(inputShape){let inputShapes=normalizeShapeList(inputShape);if(inputShapes.length!==this.inputLayers.length)throw new ValueError(`Invalid inputShape argument ${inputShape}: model has ${this.inputLayers.length} tensor inputs.`);let layersToOutputShapes={};for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);if(depthKeys.length>1)for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer;if(this.inputLayers.map(x=>x.id).indexOf(layer.id)!==-1)continue;let inputShapes2=[];for(let j=0;jparseInt(x,10)).sort(reverseNumberCompare);for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer,referenceInputTensors=node.inputTensors,referenceOutputTensors=node.outputTensors,computedData=new Array;for(let x of referenceInputTensors)x.id in tensorMap&&computedData.push(tensorMap[x.id]);if(computedData.length===referenceInputTensors.length){let kwargs={},computedTensors,computedMasks,outputTensors2,outputMasks2;if(node.callArgs!=null&&(kwargs=node.callArgs),computedData.length===1){let[computedTensor,computedMask]=computedData[0];kwargs.mask==null&&(kwargs.mask=computedMask),outputTensors2=toList(layer.call(computedTensor,kwargs)),outputMasks2=toList(layer.computeMask(computedTensor,computedMask)),computedTensors=[computedTensor],computedMasks=[computedMask]}else computedTensors=computedData.map(x=>x[0]),computedMasks=computedData.map(x=>x[1]),kwargs.mask==null&&(kwargs.mask=computedMasks),outputTensors2=toList(layer.call(computedTensors,kwargs)),outputMasks2=toList(layer.computeMask(computedTensors,computedMasks));if(layer.activityRegularizer)throw new NotImplementedError("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let i=0;i{let losses4=[];for(let layer of this.layers)for(let nodeIndex=0;nodeIndex0){let nodeData=[];for(let i=0;i0&&layer.apply(singletonOrArray(inputTensors2),kwargs)}function processLayer(layerData){let layerName=layerData.name,layer=deserialize(layerData,config3.customObjects!=null?config3.customObjects:{});layer.setFastWeightInitDuringBuild(fastWeightInit),createdLayers[layerName]=layer,layerData.inboundNodes.forEach(nodeData=>{if(!(nodeData instanceof Array))throw new ValueError(`Corrupted configuration, expected array for nodeData: ${nodeData}`);addUnprocessedNode(layer,nodeData)})}let name=config3.name,layersFromConfig=config3.layers;for(let layerData of layersFromConfig)processLayer(layerData);for(;!isObjectEmpty(unprocessedNodes);)for(let layerData of layersFromConfig){let layer=createdLayers[layerData.name];if(layer.name in unprocessedNodes){let currentUnprocessedNodesForLayer=unprocessedNodes[layer.name];delete unprocessedNodes[layer.name];for(let nodeData of currentUnprocessedNodesForLayer)processNode(layer,nodeData)}}let inputTensors=[],outputTensors=[],inputLayersFromConfig=config3.inputLayers;for(let layerData of inputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;inputTensors.push(layerOutputTensors[tensorIndex])}let outputLayersFromConfig=config3.outputLayers;for(let layerData of outputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;outputTensors.push(layerOutputTensors[tensorIndex])}return new cls({inputs:inputTensors,outputs:outputTensors,name})}get stateful(){if(this._stateful)throw new ValueError("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let layer of this.layers)if(layer.stateful)return!0;return!1}resetStates(){tidy(()=>{this.layers.forEach(layer=>{layer.stateful&&layer.resetStates()})})}};function standardizeSampleOrClassWeights(xWeight,outputNames,weightType){let numOutputs=outputNames.length;if(xWeight==null||Array.isArray(xWeight)&&xWeight.length===0)return outputNames.map(name=>null);if(numOutputs===1)return Array.isArray(xWeight)&&xWeight.length===1?xWeight:typeof xWeight=="object"&&outputNames[0]in xWeight?[xWeight[outputNames[0]]]:[xWeight];if(Array.isArray(xWeight)){if(xWeight.length!==numOutputs)throw new Error(`Provided ${weightType} is an array of ${xWeight.length} element(s), but the model has ${numOutputs} outputs. Make sure a set of weights is provided for each model output.`);return xWeight}else if(typeof xWeight=="object"&&Object.keys(xWeight).length>0&&typeof xWeight[Object.keys(xWeight)[0]]=="object"){let output=[];return outputNames.forEach(outputName=>{outputName in xWeight?output.push(xWeight[outputName]):output.push(null)}),output}else throw new Error(`The model has multiple (${numOutputs}) outputs, so ${weightType} must be either an array with ${numOutputs} elements or an object with ${outputNames} keys. Provided ${weightType} not understood: ${JSON.stringify(xWeight)}`)}function standardizeClassWeights(classWeight,outputNames){return standardizeSampleOrClassWeights(classWeight,outputNames,"classWeight")}async function standardizeWeights(y,sampleWeight,classWeight,sampleWeightMode){if(sampleWeight!=null||sampleWeightMode!=null)throw new Error("Support sampleWeight is not implemented yet");if(classWeight!=null){let yClasses=tidy(()=>{if(y.shape.length===1)return y.clone();if(y.shape.length===2)if(y.shape[1]>1){let axis=1;return y.argMax(axis)}else{if(y.shape[1]===1)return y.reshape([y.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${y.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${y.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),yClassIndices=Array.from(await yClasses.data());dispose(yClasses);let classSampleWeight=[];return yClassIndices.forEach(classIndex=>{if(classWeight[classIndex]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${classIndex} exists in the data but not in classWeight`);classSampleWeight.push(classWeight[classIndex])}),tensor1d(classSampleWeight,"float32")}else return null}function computeWeightedLoss2(losses4,sampleWeights){return mul(losses4,sampleWeights)}var DEFAULT_VALIDATION_BATCH_SIZE=32;function standardizeDataIteratorOutput(model2,iteratorOut){let xs,ys,iteratorOutObj=iteratorOut;xs=iteratorOutObj.xs,ys=iteratorOutObj.ys,util_exports.assert(xs!=null&&ys!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${iteratorOut}`);let flattenedXs=flattenTensorOrArrayOrMap("input",model2.inputNames,xs),flattenedYs=flattenTensorOrArrayOrMap("output",model2.outputNames,ys),batchSize=flattenedXs[0].shape[0];util_exports.assert(flattenedXs.length===model2.inputs.length,()=>`LayersModel has ${model2.inputs.length} inputs, but the dataset provides ${flattenedXs.length} inputs. (Expected input keys: ${JSON.stringify(model2.inputNames)})`),util_exports.assert(flattenedYs.length===model2.outputs.length,()=>`LayersModel has ${model2.outputs.length} outputs, but the dataset provides ${flattenedYs.length} outputs. (Expected output keys: ${JSON.stringify(model2.outputNames)})`);for(let xIndex=0;xIndex`Batch size mismatch: input ${model2.inputNames[xIndex]} has ${flattenedXs[xIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);for(let yIndex=0;yIndex`Batch size mismatch: output ${model2.outputNames[yIndex]} has ${flattenedYs[yIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);return{xs:flattenedXs,ys:flattenedYs}}function flattenTensorOrArrayOrMap(inputOrOutput,names,values){if(values instanceof Tensor)return[values];if(Array.isArray(values))return util_exports.assert(values.length===names.length,()=>`Received an array of ${values.length} Tensors, but expected ${names.length} to match the ${inputOrOutput} keys ${names}.`),values;{let result=[];for(let name of names){if(values[name]==null)throw new ValueError(`The feature data generated by the dataset lacks the required ${inputOrOutput} key '${name}'.`);result.push(values[name])}return result}}function standardizeTensorValidationData(data2){if(data2.length===3)throw new NotImplementedError("Validation with sample weights is not implemented yet.");return{xs:data2[0],ys:data2[1]}}async function fitDataset(model2,dataset,args){let hasBatchesPerEpoch=args.batchesPerEpoch!=null;if(util_exports.assert(model2.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),util_exports.assert(args!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),util_exports.assert(args.epochs!=null&&args.epochs>0&&Number.isInteger(args.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${args.epochs}`),util_exports.assert(!hasBatchesPerEpoch||args.batchesPerEpoch>0&&Number.isInteger(args.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${args.batchesPerEpoch}`),util_exports.assert(args.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),model2.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");model2.isTraining=!0;try{let doValidation=args.validationData!=null,valXs,valYs;if(doValidation)if(isDatasetObject(args.validationData))util_exports.assert(args.validationBatches==null||args.validationBatches>0&&Number.isInteger(args.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${args.validationBatches}`);else{let validationData=standardizeTensorValidationData(args.validationData);valXs=validationData.xs,valYs=validationData.ys}let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),callbackMetrics;doValidation?callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n)):callbackMetrics=outLabels.slice();let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery),verbose=args.verbose==null?1:args.verbose,{callbackList,history}=configureCallbacks(callbacks2,verbose,args.epochs,null,null,getStepsPerEpoch(dataset,args),null,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;let epoch=args.initialEpoch==null?0:args.initialEpoch,dataIterator=await dataset.iterator();for(;epoch=args.batchesPerEpoch:iteratorOut.done){if(doValidation){let valOuts;isDatasetObject(args.validationData)?valOuts=toList(await model2.evaluateDataset(args.validationData,{batches:args.validationBatches})):valOuts=toList(model2.evaluate(valXs,valYs,{batchSize:args.validationBatchSize==null?DEFAULT_VALIDATION_BATCH_SIZE:args.validationBatchSize,verbose:0}));for(let i=0;i0)throw new NotImplementedError("Verbose mode is not implemented yet.");util_exports.assert(!hasBatches||args.batches>0&&Number.isInteger(args.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(args.batches)}`);let dataIterator=isLazyIteratorObject(dataset)?dataset:await dataset.iterator(),numExamples=0,batch=0;for(;hasBatches?batch{if(iteratorOut.value){let{xs,ys}=standardizeDataIteratorOutput(model2,iteratorOut.value),xsAndYs=xs.concat(ys),batchOuts=tidy(()=>f(xsAndYs));if(dispose(xsAndYs),batch===0)for(let i=0;iadd2(outs[i],mul(batchSize,batchOut))),batch>0&&dispose(oldScalar)}dispose(batchOuts),numExamples+=batchSize,++batch}return outs}),iteratorOut.done){hasBatches&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${args.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let i=0;i0&&Number.isInteger(batchSize),()=>`batchSize is required to be a positive integer, but got ${batchSize}`)}function sliceArrays(arrays,start,stop){return arrays==null?[null]:Array.isArray(arrays)?arrays.map(array2=>sliceAlongFirstAxis(array2,start,stop-start)):sliceAlongFirstAxis(arrays,start,stop-start)}function sliceArraysByIndices(arrays,indices){return tidy(()=>arrays==null?null:Array.isArray(arrays)?arrays.map(array2=>sliceArraysByIndices(array2,indices)):gather2(arrays,indices.dtype==="int32"?indices:indices.toInt()))}function makeBatches(size,batchSize){let output=[],batchStart=0,batchEnd=null;for(;batchStart=size&&(batchEnd=size),output.push([batchStart,batchEnd]),batchStart=batchEnd;return output}async function fitLoop(model2,f,ins,outLabels,batchSize,epochs,verbose,callbacks2,valF,valIns,shuffle2,callbackMetrics,initialEpoch,stepsPerEpoch,validationSteps){batchSize==null&&(batchSize=32),epochs==null&&(epochs=1),shuffle2==null&&(shuffle2=!0),initialEpoch==null&&(initialEpoch=0);let doValidation=!1;if(valF!=null&&valIns!=null&&(doValidation=!0),validationSteps!=null&&(doValidation=!0,stepsPerEpoch==null))throw new ValueError("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let numTrainSamples=model2.checkNumSamples(ins,batchSize,stepsPerEpoch,"steps_per_epoch"),indexArray;numTrainSamples!=null&&(indexArray=range5(0,numTrainSamples)),verbose==null&&(verbose=1);let{callbackList,history}=configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;for(let epoch=initialEpoch;epoch{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],batchIds=sliceAlongFirstAxis(epochIndexArray1D,batchStart,batchEnd-batchStart);batchLogs.batch=batchIndex,batchLogs.size=batchEnd-batchStart;let insBatch=sliceArraysByIndices(ins,batchIds),outs=f(insBatch);for(let i=0;i0){if(doValidation=!0,args.validationData.length===2)inputValX=args.validationData[0],inputValY=args.validationData[1];else throw args.validationData.length===3?new NotImplementedError("validationData including sample weights is not supported yet."):new ValueError(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${args.validationData} is invalid.`);let checkBatchAxis2=!0,valStandardized=await model2.standardizeUserData(inputValX,inputValY,null,null,checkBatchAxis2,batchSize);valX=valStandardized[0],valY=valStandardized[1],valIns=valX.concat(valY)}else if(args.validationSplit!=null&&args.validationSplit>0&&args.validationSplit<1){doValidation=!0;let splitAt=Math.floor(inputs[0].shape[0]*(1-args.validationSplit)),originalBatchSize=inputs[0].shape[0];valX=sliceArrays(inputs,splitAt,originalBatchSize),inputs=sliceArrays(inputs,0,splitAt),valY=sliceArrays(targets,splitAt,originalBatchSize),targets=sliceArrays(targets,0,splitAt),valIns=valX.concat(valY)}else args.validationSteps!=null&&(doValidation=!0);let ins=inputs.concat(targets).concat(sampleWeights);model2.checkTrainableWeightsConsistency();let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),valFunction,callbackMetrics;doValidation?(model2.makeTestFunction(),valFunction=model2.testFunction,callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n))):(valFunction=null,valIns=[],callbackMetrics=outLabels.slice());let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery);return await fitLoop(model2,trainFunction,ins,outLabels,batchSize,args.epochs,args.verbose,callbacks2,valFunction,valIns,args.shuffle,callbackMetrics,args.initialEpoch,null,null)}finally{model2.isTraining=!1,disposeNewTensors(inputs,x),disposeNewTensors(targets,y),disposeNewTensors(valX,inputValX),disposeNewTensors(valY,inputValY),sampleWeights!=null&&dispose(sampleWeights)}}function ensureTensorsRank2OrHigher(tensors){let outs=[];tensors instanceof Tensor&&(tensors=[tensors]);for(let i=0;ioldTensorIds.push(t.id));else if(refTensors!=null)for(let name in refTensors){let oldTensor=refTensors[name];oldTensorIds.push(oldTensor.id)}let tensorsToDispose=[];if(tensors instanceof Tensor)oldTensorIds.indexOf(tensors.id)===-1&&tensorsToDispose.push(tensors);else if(Array.isArray(tensors))tensors.forEach(t=>{oldTensorIds.indexOf(t.id)===-1&&tensorsToDispose.push(t)});else if(tensors!=null)for(let name in tensors){let tensor2=tensors[name];oldTensorIds.indexOf(tensor2.id)===-1&&tensorsToDispose.push(tensor2)}tensorsToDispose.forEach(t=>{t.isDisposed||t.dispose()})}function isDataTensor(x){return x instanceof Tensor}function isDataArray(x){return Array.isArray(x)}function isDataDict(x){return!isDataTensor(x)&&!isDataArray(x)}function standardizeInputData(data2,names,shapes,checkBatchAxis=!0,exceptionPrefix=""){if(names==null||names.length===0){if(data2!=null){let gotUnexpectedData=!1;if(isDataArray(data2)&&data2.length>0)gotUnexpectedData=!0;else if(isDataDict(data2)){for(let key in data2)if(data2.hasOwnProperty(key)){gotUnexpectedData=!0;break}}else gotUnexpectedData=!0;if(gotUnexpectedData)throw new ValueError(`Error when checking model ${exceptionPrefix} expected no data, but got ${data2}`)}return[]}if(data2==null)return names.map(name=>null);let arrays;if(isDataDict(data2)){data2=data2,arrays=[];for(let name of names){if(data2[name]==null)throw new ValueError(`No data provided for "${name}". Need data for each key in: ${names}`);arrays.push(data2[name])}}else if(isDataArray(data2)){if(data2=data2,data2.length!==names.length)throw new ValueError(`Error when checking model ${exceptionPrefix}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${names.length} Tensor(s), but instead got the following list of Tensor(s): ${data2}`);arrays=data2}else{if(data2=data2,names.length>1)throw new ValueError(`The model ${exceptionPrefix} expects ${names.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${data2.shape}`);arrays=[data2]}if(arrays=ensureTensorsRank2OrHigher(arrays),shapes!=null)for(let i=0;i=0&&dim!==refDim)throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have shape [${shapes[i]}], but got array with shape [${array2.shape}].`)}}return arrays}function checkArrayLengths(inputs,targets,weights){let setX=unique4(inputs.map(input2=>input2.shape[0]));setX.sort();let setY=unique4(targets.map(target=>target.shape[0]));if(setY.sort(),setX.length>1)throw new ValueError(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(inputs.map(input2=>input2.shape))}`);if(setY.length>1)throw new ValueError(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(targets.map(target=>target.shape))}`);if(setX.length>0&&setY.length>0&&!util_exports.arraysEqual(setX,setY))throw new ValueError(`Input Tensors should have the same number of samples as target Tensors. Found ${setX[0]} input sample(s) and ${setY[0]} target sample(s).`)}function checkLossAndTargetCompatibility(targets,lossFns,outputShapes){let keyLosses=[meanSquaredError2,binaryCrossentropy,categoricalCrossentropy];for(let i=0;i1)throw new ValueError(`The model expects ${names.length} ${exceptionPrefix} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(data2.shape)}.`);arrays=[data2]}if(shapes!=null)for(let i=0;i[]);let wrappedMetrics;if(typeof metrics2=="string"||typeof metrics2=="function")wrappedMetrics=[metrics2];else if(Array.isArray(metrics2)||typeof metrics2=="object")wrappedMetrics=metrics2;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${metrics2}`);if(Array.isArray(wrappedMetrics))return outputNames.map(name=>wrappedMetrics);{let nestedMetrics=[];for(let name of outputNames){let outputMetrics=wrappedMetrics.hasOwnProperty(name)?wrappedMetrics[name]:[];Array.isArray(outputMetrics)||(outputMetrics=[outputMetrics]),nestedMetrics.push(outputMetrics)}return nestedMetrics}}var LAYERS_MODEL_FORMAT_NAME="layers-model",LayersModel=class extends Container{constructor(args){super(args);this.isTraining=!1}summary(lineLength,positions,printFn=console.log){if(!this.built)throw new ValueError("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");printSummary(this,lineLength,positions,printFn)}compile(args){if(args.loss==null&&(args.loss=[]),this.loss=args.loss,typeof args.optimizer=="string")this.optimizer_=getOptimizer(args.optimizer),this.isOptimizerOwned=!0;else{if(!(args.optimizer instanceof Optimizer))throw new ValueError("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=args.optimizer,this.isOptimizerOwned=!1}let lossFunctions=[];if(!Array.isArray(args.loss)&&typeof args.loss!="string"&&typeof args.loss!="function"){args.loss=args.loss;for(let name in args.loss)if(this.outputNames.indexOf(name)===-1)throw new ValueError(`Unknown entry in loss dictionary: "${name}". Only expected the following keys: ${this.outputNames}`);for(let name of this.outputNames)args.loss[name]==null&&console.warn(`Output "${name}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${name} during training`),lossFunctions.push(get(args.loss[name]))}else if(Array.isArray(args.loss)){if(args.loss.length!==this.outputs.length)throw new ValueError(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${args.loss}.`);lossFunctions=args.loss.map(l=>get(l))}else{let lossFunction=get(args.loss);this.outputs.forEach(_=>{lossFunctions.push(lossFunction)})}this.lossFunctions=lossFunctions,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([weightedLoss,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let nestedMetrics=collectMetrics(args.metrics,this.outputNames),appendMetric=(outputIndex,metricName,metricTensor)=>{this.outputNames.length>1&&(metricName=this.outputNames[outputIndex]+"_"+metricName),this.metricsNames.push(metricName),this.metricsTensors.push([metricTensor,outputIndex])};nameScope("metric",()=>{for(let i=0;i{let metricNamePrefix="",metricName,accFn,weightedMetricFn;for(let metric of metrics2){if(typeof metric=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(metric)!==-1){let outputShape=this.internalOutputShapes[i];outputShape[outputShape.length-1]===1||this.lossFunctions[i]===binaryCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=binaryAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=binaryCrossentropy2):this.lossFunctions[i]===sparseCategoricalCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=sparseCategoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=sparseCategoricalCrossentropy2):["accuracy","acc"].indexOf(metric)!==-1?accFn=categoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=categoricalCrossentropy2);let suffix;["accuracy","acc"].indexOf(metric)!==-1?suffix="acc":["crossentropy","ce"].indexOf(metric)!==-1&&(suffix="ce"),weightedMetricFn=accFn,metricName=metricNamePrefix+suffix}else weightedMetricFn=get2(metric),metricName=metricNamePrefix+getLossOrMetricName(metric);let metricResult;nameScope(metricName,()=>{metricResult=weightedMetricFn}),appendMetric(i,metricName,metricResult)}})(outputMetrics)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(x,y,args={}){let batchSize=args.batchSize==null?32:args.batchSize;checkBatchSize(batchSize);let checkBatchAxis=!0,standardizedOuts=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);try{let ins=standardizedOuts[0].concat(standardizedOuts[1]);this.makeTestFunction();let f=this.testFunction,testOuts=this.testLoop(f,ins,batchSize,args.verbose,args.steps);return singletonOrArray(testOuts)}finally{disposeNewTensors(standardizedOuts[0],x),disposeNewTensors(standardizedOuts[1],y)}}async evaluateDataset(dataset,args){return this.makeTestFunction(),evaluateDataset(this,dataset,args)}checkNumSamples(ins,batchSize,steps,stepsName="steps"){let numSamples;if(steps!=null){if(numSamples=null,batchSize!=null)throw new ValueError(`If ${stepsName} is set, batchSize must be null or undefined.Got batchSize = ${batchSize}`)}else if(ins!=null)Array.isArray(ins)?numSamples=ins[0].shape[0]:numSamples=ins.shape[0];else throw new ValueError(`Either the input data should have a defined shape, or ${stepsName} shoud be specified.`);return numSamples}execute(inputs,outputs){if(Array.isArray(outputs)&&outputs.length===0)throw new ValueError("`outputs` is an empty Array, which is not allowed.");let outputsIsArray=Array.isArray(outputs),outputNames=outputsIsArray?outputs:[outputs],outputSymbolicTensors=this.retrieveSymbolicTensors(outputNames),feedDict=new FeedDict;if(inputs instanceof Tensor&&(inputs=[inputs]),Array.isArray(inputs)){if(inputs.length!==this.inputs.length)throw new ValueError(`The number of inputs provided (${inputs.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let i=0;ioutput.name);for(let i=0;i0){let remainingNames=[];throw outputSymbolicTensors.forEach((tensor2,i)=>{tensor2==null&&remainingNames.push(symbolicTensorNames[i])}),new ValueError(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(remainingNames)}`)}return outputSymbolicTensors}predictLoop(ins,batchSize=32,verbose=!1){return tidy(()=>{let numSamples=this.checkNumSamples(ins);if(verbose)throw new NotImplementedError("Verbose predictLoop() is not implemented yet.");let batches=makeBatches(numSamples,batchSize),outsBatches=this.outputs.map(output=>[]);for(let batchIndex=0;batchIndex{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],insBatch=sliceArrays(ins,batchStart,batchEnd),feeds=[];if(Array.isArray(insBatch))for(let i=0;ioutsBatches[i].push(batchOut));return singletonOrArray(outsBatches.map(batches2=>concat(batches2,0)))})}predict(x,args={}){let xsRank2OrHigher=ensureTensorsRank2OrHigher(x);checkInputData(xsRank2OrHigher,this.inputNames,this.feedInputShapes,!1);try{let batchSize=args.batchSize==null?32:args.batchSize;return checkBatchSize(batchSize),this.predictLoop(xsRank2OrHigher,batchSize)}finally{disposeNewTensors(xsRank2OrHigher,x)}}predictOnBatch(x){checkInputData(x,this.inputNames,this.feedInputShapes,!0);let batchSize=(Array.isArray(x)?x[0]:x).shape[0];return this.predictLoop(x,batchSize)}standardizeUserDataXY(x,y,checkBatchAxis=!0,batchSize){if(this.optimizer_==null)throw new RuntimeError("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let outputShapes=[];for(let i=0;i0&&x[0].shape[0]%batchSize!=0)throw new ValueError(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${batchSize}. Found: ${x[0].shape[0]} sample(s).`);return[x,y]}async standardizeUserData(x,y,sampleWeight,classWeight,checkBatchAxis=!0,batchSize){let[standardXs,standardYs]=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);if(sampleWeight!=null)throw new Error("sample weight is not supported yet.");let standardSampleWeights=null;if(classWeight!=null){let classWeights=standardizeClassWeights(classWeight,this.outputNames);standardSampleWeights=[];for(let i=0;i{let numSamples=this.checkNumSamples(ins,batchSize,steps,"steps"),outs=[];if(verbose>0)throw new NotImplementedError("Verbose mode is not implemented yet.");if(steps!=null)throw new NotImplementedError("steps mode in testLoop() is not implemented yet");{let batches=makeBatches(numSamples,batchSize),indexArray=tensor1d(range5(0,numSamples));for(let batchIndex=0;batchIndex1&&(newLabel+=`_${count(outLabels.slice(0,i),label)}`),dedupedOutLabels.push(newLabel)}return dedupedOutLabels}makeTrainFunction(){return data2=>{let lossValues=[],inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),sampleWeights=data2.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),metricsValues=[],totalLossFunction=()=>{let feeds=[];for(let i=0;i1&&i{totalLoss=add2(totalLoss,regularizerLoss)}),totalLoss},variables=this.collectedTrainableWeights.map(param=>param.read()),returnCost=!0;return[this.optimizer_.minimize(totalLossFunction,returnCost,variables)].concat(metricsValues)}}makeTestFunction(){this.testFunction=data2=>tidy(()=>{let valOutputs=[],totalLoss,inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),feeds=[];for(let i=0;itoSnakeCase(name))}else{let outputNames=Object.keys(this.loss);lossNames={};let losses4=this.loss;for(let outputName of outputNames)if(typeof losses4[outputName]=="string")lossNames[outputName]=toSnakeCase(losses4[outputName]);else throw new Error("Serialization of non-string loss is not supported.")}return lossNames}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[toSnakeCase(getLossOrMetricName(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(metric=>toSnakeCase(getLossOrMetricName(metric)));{let metricsIdentifiers={};for(let key in this.metrics)metricsIdentifiers[key]=toSnakeCase(getLossOrMetricName(this.metrics[key]));return metricsIdentifiers}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(trainingConfig){if(trainingConfig.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(trainingConfig.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(trainingConfig.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let tsConfig=convertPythonicToTs(trainingConfig.optimizer_config),optimizer=deserialize(tsConfig),loss;if(typeof trainingConfig.loss=="string")loss=toCamelCase(trainingConfig.loss);else if(Array.isArray(trainingConfig.loss))loss=trainingConfig.loss.map(lossEntry=>toCamelCase(lossEntry));else if(trainingConfig.loss!=null){loss={};for(let key in trainingConfig.loss)loss[key]=toCamelCase(trainingConfig.loss[key])}let metrics2;if(Array.isArray(trainingConfig.metrics))metrics2=trainingConfig.metrics.map(metric=>toCamelCase(metric));else if(trainingConfig.metrics!=null){metrics2={};for(let key in trainingConfig.metrics)metrics2[key]=toCamelCase(trainingConfig.metrics[key])}this.compile({loss,metrics:metrics2,optimizer})}async save(handlerOrURL,config3){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new ValueError(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new ValueError("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let weightDataAndSpecs=await io_exports.encodeWeights(this.getNamedWeights(config3)),returnString=!1,unusedArg=null,modelArtifacts={modelTopology:this.toJSON(unusedArg,returnString),format:LAYERS_MODEL_FORMAT_NAME,generatedBy:`TensorFlow.js tfjs-layers v${version10}`,convertedBy:null};if((config3==null?!1:config3.includeOptimizer)&&this.optimizer!=null){modelArtifacts.trainingConfig=this.getTrainingConfig();let weightType="optimizer",{data:optimizerWeightData,specs:optimizerWeightSpecs}=await io_exports.encodeWeights(await this.optimizer.getWeights(),weightType);weightDataAndSpecs.specs.push(...optimizerWeightSpecs),weightDataAndSpecs.data=io_exports.concatenateArrayBuffers([weightDataAndSpecs.data,optimizerWeightData])}if(this.userDefinedMetadata!=null){let checkSize=!0;checkUserDefinedMetadata(this.userDefinedMetadata,this.name,checkSize),modelArtifacts.userDefinedMetadata=this.userDefinedMetadata}return modelArtifacts.weightData=weightDataAndSpecs.data,modelArtifacts.weightSpecs=weightDataAndSpecs.specs,handlerOrURL.save(modelArtifacts)}setUserDefinedMetadata(userDefinedMetadata){checkUserDefinedMetadata(userDefinedMetadata,this.name),this.userDefinedMetadata=userDefinedMetadata}getUserDefinedMetadata(){return this.userDefinedMetadata}};LayersModel.className="Model";serialization_exports.registerClass(LayersModel);var Functional=class extends LayersModel{};Functional.className="Functional";serialization_exports.registerClass(Functional);async function modelFromJSON(modelAndWeightsConfig,customObjects){"modelTopology"in modelAndWeightsConfig||(modelAndWeightsConfig={modelTopology:modelAndWeightsConfig}),modelAndWeightsConfig=modelAndWeightsConfig;let modelTopology=modelAndWeightsConfig.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let tsConfig=convertPythonicToTs(modelTopology),model2=deserialize(tsConfig,customObjects);if(modelAndWeightsConfig.weightsManifest!=null){let weightValues=await io_exports.loadWeights(modelAndWeightsConfig.weightsManifest,modelAndWeightsConfig.pathPrefix,model2.weights.map(weight=>weight.originalName)),uniqueWeightValues={};for(let weight of model2.weights)uniqueWeightValues[weight.originalName]=weightValues[weight.originalName];model2.loadWeights(uniqueWeightValues),dispose(weightValues)}return model2}async function loadLayersModelInternal(pathOrIOHandler,options){if(options==null&&(options={}),typeof pathOrIOHandler=="string"){let handlers=io_exports.getLoadHandlers(pathOrIOHandler,options);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(pathOrIOHandler,options));else if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) load handlers for URL '${pathOrIOHandler}'`);pathOrIOHandler=handlers[0]}return loadLayersModelFromIOHandler(pathOrIOHandler,void 0,options)}async function loadLayersModelFromIOHandler(handler,customObjects,options){if(options==null&&(options={}),handler.load==null)throw new ValueError("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await handler.load(),modelTopology=artifacts.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let strict=options.strict==null?!0:options.strict,fastWeightInit=artifacts.weightData!=null&&artifacts.weightSpecs!=null&&strict,model2=deserialize(convertPythonicToTs(modelTopology),customObjects,fastWeightInit),trainingConfig=artifacts.trainingConfig;if(trainingConfig!=null&&model2.loadTrainingConfig(trainingConfig),artifacts.userDefinedMetadata!=null&&model2.setUserDefinedMetadata(artifacts.userDefinedMetadata),artifacts.weightData!=null){if(artifacts.weightSpecs==null)throw new ValueError("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights,optimizerWeights}=decodeModelAndOptimizerWeights(artifacts.weightData,artifacts.weightSpecs);model2.loadWeights(modelWeights,strict),model2.optimizer!=null&&optimizerWeights.length>0&&await model2.optimizer.setWeights(optimizerWeights),dispose(modelWeights),dispose(optimizerWeights.map(w=>w.tensor))}return model2}function decodeModelAndOptimizerWeights(buffer2,specs){let name2Tensor=io_exports.decodeWeights(buffer2,specs),modelWeights={},optimizerWeights=[];return specs.forEach(spec=>{spec.group==="optimizer"?optimizerWeights.push({name:spec.name,tensor:name2Tensor[spec.name]}):modelWeights[spec.name]=name2Tensor[spec.name]}),{modelWeights,optimizerWeights}}var Sequential=class extends LayersModel{constructor(args){super({inputs:[],outputs:[]});if(args=args||{},this.trainable=!0,this.built=!1,this.name=args.name!=null?args.name:getUid("sequential_"),args.layers!=null)for(let layer of args.layers)this.add(layer)}checkShape(layer){if(layer.inboundNodes[0].outputTensors[0].shape.some(x=>x<0))throw new ValueError(`Negative dimension size caused by adding layer ${layer.name} with input shape [${layer.inboundNodes[0].inputTensors[0].shape}]`)}add(layer){let isLayerModelInstance=layer instanceof Sequential||layer instanceof LayersModel,modelLayer;if(isLayerModelInstance){if(modelLayer=layer,modelLayer.outputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(modelLayer.inputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(layer.inboundNodes.length===0){if(layer.batchInputShape==null)throw new ValueError("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let x=Input({batchShape:layer.batchInputShape,dtype:layer.dtype,name:layer.name+"_input"});layer.apply(x)}if(isLayerModelInstance)this.outputs=modelLayer.outputs,this.inputs=modelLayer.inputs;else{if(layer.inboundNodes.length!==1)throw new ValueError(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${layer.name} which has ${layer.inboundNodes.length} pre-existing inbound connections.`);if(layer.inboundNodes[0].outputTensors.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[layer.inboundNodes[0].outputTensors[0]],this.inputs=getSourceInputs(this.outputs[0])}this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:pyListRepeat(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs[0].shape})}else{let outputTensor=layer.apply(this.outputs[0]);if(Array.isArray(outputTensor))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[outputTensor],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(layer),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let lastLayerIndex=this.layers.length-1;this.layers[lastLayerIndex].outboundNodes=[],this.outputs=[this.layers[lastLayerIndex].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(inputs,kwargs){return this.model==null&&this.build(),this.model.call(inputs,kwargs)}build(inputShape){if(getExactlyOneShape(inputShape),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new LayersModel({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(lineLength,positions,printFn=console.log){this.built||this.build(),super.summary(lineLength,positions,printFn)}setWeights(weights){this.model==null&&this.build(),this.model.setWeights(weights)}evaluate(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluate(x,y,args)}async evaluateDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluateDataset(dataset,args)}predict(x,args={}){return this.model==null&&this.build(),this.model.predict(x,args)}predictOnBatch(x){return this.model==null&&this.build(),this.model.predictOnBatch(x)}compile(args){this.build(),this.model.compile(args),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(optimizer){this.model.optimizer=optimizer}async fit(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fit(x,y,args)}async fitDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fitDataset(dataset,args)}async trainOnBatch(x,y){return this.model.trainOnBatch(x,y)}static fromConfig(cls,config3,customObjects={},fastWeightInit=!1){let configArray,extraModelConfig={};if(config3 instanceof Array){if(config3[0].className==null||config3[0].className==="Merge")throw new ValueError("Legacy serialization format not supported yet.");configArray=config3}else util_exports.assert(config3.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),configArray=config3.layers,delete config3.layers,extraModelConfig=config3;let model2=new cls(extraModelConfig);if(!(model2 instanceof Sequential))throw new NotImplementedError(`Sequential.fromConfig called on non-Sequential input: ${model2}`);for(let conf of configArray){let layer=deserialize(conf,void 0,fastWeightInit);fastWeightInit&&layer.setFastWeightInitDuringBuild(!0),model2.add(layer)}return model2}set stopTraining(stop){if(this.model==null)throw new ValueError("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=stop}get stopTraining(){if(this.model==null)throw new ValueError("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let layers=[];for(let layer of this.layers){let dict={};dict.className=layer.getClassName(),dict.config=layer.getConfig(),layers.push(dict)}return{name:this.name,layers}}};Sequential.className="Sequential";serialization_exports.registerClass(Sequential);function model(args){return new LayersModel(args)}function sequential(config3){return new Sequential(config3)}function loadLayersModel(pathOrIOHandler,options){return options==null&&(options={}),loadLayersModelInternal(pathOrIOHandler,options)}function input(config3){return Input(config3)}function registerCallbackConstructor(verbosityLevel,callbackConstructor){CallbackConstructorRegistry.registerCallbackConstructor(verbosityLevel,callbackConstructor)}var Activation=class extends serialization_exports.Serializable{getConfig(){return{}}},Elu2=class extends Activation{apply(x,alpha=1){return elu4(x,alpha)}};Elu2.className="elu";serialization_exports.registerClass(Elu2);var Selu2=class extends Activation{apply(x){return selu(x)}};Selu2.className="selu";serialization_exports.registerClass(Selu2);var Relu2=class extends Activation{apply(x){return relu(x)}};Relu2.className="relu";serialization_exports.registerClass(Relu2);var Relu62=class extends Activation{apply(x){return tidy(()=>minimum(6,relu(x)))}};Relu62.className="relu6";serialization_exports.registerClass(Relu62);var Linear=class extends Activation{apply(x){return x}};Linear.className="linear";serialization_exports.registerClass(Linear);var Sigmoid2=class extends Activation{apply(x){return sigmoid(x)}};Sigmoid2.className="sigmoid";serialization_exports.registerClass(Sigmoid2);var HardSigmoid=class extends Activation{apply(x){return hardSigmoid(x)}};HardSigmoid.className="hardSigmoid";serialization_exports.registerClass(HardSigmoid);var Softplus2=class extends Activation{apply(x){return softplus(x)}};Softplus2.className="softplus";serialization_exports.registerClass(Softplus2);var Softsign=class extends Activation{apply(x){return softsign(x)}};Softsign.className="softsign";serialization_exports.registerClass(Softsign);var Tanh2=class extends Activation{apply(x){return tanh2(x)}};Tanh2.className="tanh";serialization_exports.registerClass(Tanh2);var Softmax2=class extends Activation{apply(x,axis=-1){return softmax(x,axis)}};Softmax2.className="softmax";serialization_exports.registerClass(Softmax2);var LogSoftmax2=class extends Activation{apply(x,axis=-1){return logSoftmax(x,axis)}};LogSoftmax2.className="logSoftmax";serialization_exports.registerClass(LogSoftmax2);var Swish=class extends Activation{apply(x,alpha=1){return tidy(()=>sigmoid(x.mul(alpha)).mul(x))}};Swish.className="swish";serialization_exports.registerClass(Swish);function serializeActivation(activation2){return activation2.getClassName()}function deserializeActivation(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"activation")}function getActivation(identifier){if(identifier==null){let config3={};return config3.className="linear",config3.config={},deserializeActivation(config3)}if(typeof identifier=="string"){let config3={};return config3.className=identifier,config3.config={},deserializeActivation(config3)}else return identifier instanceof Activation?identifier:deserializeActivation(identifier)}function assertObjectArgs(args){if(args!=null&&typeof args!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${args}`)}var Regularizer=class extends serialization_exports.Serializable{},L1L2=class extends Regularizer{constructor(args){super();assertObjectArgs(args),this.l1=args==null||args.l1==null?.01:args.l1,this.l2=args==null||args.l2==null?.01:args.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(x){return tidy(()=>{let regularization=zeros([1]);return this.hasL1&&(regularization=add2(regularization,sum2(mul(this.l1,abs(x))))),this.hasL2&&(regularization=add2(regularization,sum2(mul(this.l2,square3(x))))),regularization.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(cls,config3){return new cls({l1:config3.l1,l2:config3.l2})}};L1L2.className="L1L2";serialization_exports.registerClass(L1L2);function l1(args){return assertObjectArgs(args),new L1L2({l1:args!=null?args.l1:null,l2:0})}function l2(args){return assertObjectArgs(args),new L1L2({l2:args!=null?args.l2:null,l1:0})}var REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={l1l2:"L1L2"};function serializeRegularizer(constraint){return serializeKerasObject(constraint)}function deserializeRegularizer(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"regularizer")}function getRegularizer(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config3={className:identifier in REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeRegularizer(config3)}else return identifier instanceof Regularizer?identifier:deserializeRegularizer(identifier)}var ReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null&&(this.maxValue=args.maxValue)}call(inputs,kwargs){inputs=getExactlyOneTensor(inputs);let output=relu(inputs);return this.maxValue!=null&&(output=clipByValue(output,0,this.maxValue)),output}computeOutputShape(inputShape){return inputShape}getConfig(){let config3={maxValue:this.maxValue},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};ReLU.className="ReLU";serialization_exports.registerClass(ReLU);var LeakyReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.DEFAULT_ALPHA=.3,args==null&&(args={}),this.alpha=args.alpha==null?this.DEFAULT_ALPHA:args.alpha}call(inputs,kwargs){let x=getExactlyOneTensor(inputs);return leakyRelu(x,this.alpha)}computeOutputShape(inputShape){return inputShape}getConfig(){let config3={alpha:this.alpha},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};LeakyReLU.className="LeakyReLU";serialization_exports.registerClass(LeakyReLU);var PReLU=class extends Layer{constructor(args){super(args==null?{}:args);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",args==null&&(args={}),this.supportsMasking=!0,this.alphaInitializer=getInitializer(args.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=getRegularizer(args.alphaRegularizer),this.alphaConstraint=getConstraint(args.alphaConstraint),args.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(args.sharedAxes))this.sharedAxes=args.sharedAxes;else if(typeof args.sharedAxes=="number")this.sharedAxes=[args.sharedAxes];else throw new ValueError(`Expected sharedAxes to be a number or an array of numbers, but got ${args.sharedAxes}`)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let paramShape=inputShape.slice(1);if(this.sharedAxes!=null)for(let i of this.sharedAxes)paramShape[i-1]=1;this.alpha=this.addWeight("alpha",paramShape,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let axes={};if(this.sharedAxes!=null)for(let i=1;i(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,1]):x))}function preprocessConv3DInput(x,dataFormat){return tidy(()=>(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,4,1]):x))}function conv1dWithBias(x,kernel,bias,strides=1,padding="valid",dataFormat,dilationRate=1){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.shape.length!==3)throw new ValueError(`The input of a conv1dWithBias operation should be 3, but is ${x.shape.length} instead.`);if(kernel.shape.length!==3)throw new ValueError(`The kernel for a conv1dWithBias operation should be 3, but is ${kernel.shape.length} instead`);if(bias!=null&&bias.shape.length!==1)throw new ValueError(`The bias for a conv1dWithBias operation should be 1, but is ${kernel.shape.length} instead`);if(dataFormat==="channelsFirst"&&(x=transpose(x,[0,2,1])),padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let y=conv1d(x,kernel,strides,padding==="same"?"same":"valid","NWC",dilationRate);return bias!=null&&(y=biasAdd(y,bias)),y})}function conv2dWithBiasActivation(x,kernel,bias,strides=[1,1],padding="valid",dataFormat,dilationRate,activation2=null){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==3&&x.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${x.rank}.`);if(kernel.rank!==3&&kernel.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${x.rank}.`);let y=preprocessConv2DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return y=fused_ops_exports.conv2d({x:y,filter:kernel,strides,pad:padding==="same"?"same":"valid",dilations:dilationRate,dataFormat:"NHWC",bias,activation:activation2}),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function conv3dWithBias(x,kernel,bias,strides=[1,1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==4&&x.rank!==5)throw new ValueError(`conv3dWithBias expects input to be of rank 4 or 5, but received ${x.rank}.`);if(kernel.rank!==4&&kernel.rank!==5)throw new ValueError(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${x.rank}.`);let y=preprocessConv3DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return y=conv3d(y,kernel,strides,padding==="same"?"same":"valid","NDHWC",dilationRate),bias!=null&&(y=biasAdd(y,bias)),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var BaseConv=class extends Layer{constructor(rank,args){super(args);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",BaseConv.verifyArgs(args),this.rank=rank,assertPositiveInteger(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new NotImplementedError(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=normalizeArray(args.kernelSize,rank,"kernelSize"),this.strides=normalizeArray(args.strides==null?1:args.strides,rank,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.activation=getActivation(args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=getConstraint(args.biasConstraint),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.dilationRate=normalizeArray(args.dilationRate==null?1:args.dilationRate,rank,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new ValueError(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new ValueError(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new ValueError(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(args){if(assert2("kernelSize"in args,"required key 'kernelSize' not in config"),typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,3))throw new ValueError(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(args.kernelSize)}.`)}getConfig(){let config3={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:serializeActivation(this.activation),useBias:this.useBias,biasInitializer:serializeInitializer(this.biasInitializer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},Conv=class extends BaseConv{constructor(rank,args){super(rank,args);this.kernel=null,Conv.verifyArgs(args),this.filters=args.filters,assertPositiveInteger(this.filters,"filters"),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([inputDim,this.filters]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[channelAxis]:inputDim}}],this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs,biasValue=this.bias==null?null:this.bias.read(),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName());if(fusedActivationName!=null&&this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate,fusedActivationName);else{if(this.rank===1)outputs=conv1dWithBias(inputs,this.kernel.read(),biasValue,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)outputs=conv3dWithBias(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new NotImplementedError("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(outputs=this.activation.apply(outputs))}return outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let newSpace=[],space=this.dataFormat==="channelsLast"?inputShape.slice(1,inputShape.length-1):inputShape.slice(2);for(let i=0;i 0 but got ${JSON.stringify(args.filters)}`)}},Conv2D2=class extends Conv{constructor(args){super(2,args);Conv2D2.verifyArgs(args)}getConfig(){let config3=super.getConfig();return delete config3.rank,config3}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,2))throw new ValueError(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv2D2.className="Conv2D";serialization_exports.registerClass(Conv2D2);var Conv3D2=class extends Conv{constructor(args){super(3,args);Conv3D2.verifyArgs(args)}getConfig(){let config3=super.getConfig();return delete config3.rank,config3}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!(Array.isArray(args.kernelSize)&&(args.kernelSize.length===1||args.kernelSize.length===3)))throw new ValueError(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(args.kernelSize)}.`)}};Conv3D2.className="Conv3D";serialization_exports.registerClass(Conv3D2);var Conv2DTranspose=class extends Conv2D2{constructor(args){super(args);if(this.inputSpec=[new InputSpec({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new ValueError(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length!==4)throw new ValueError("Input should have rank 4; Received input shape: "+JSON.stringify(inputShape));let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError("The channel dimension of the inputs should be defined. Found `None`.");let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([this.filters,inputDim]);this.kernel=this.addWeight("kernel",kernelShape,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new InputSpec({ndim:4,axes:{[channelAxis]:inputDim}})],this.built=!0}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);if(input2.shape.length!==4)throw new ValueError(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${input2.shape.length}`);let inputShape=input2.shape,batchSize=inputShape[0],hAxis,wAxis;this.dataFormat==="channelsFirst"?(hAxis=2,wAxis=3):(hAxis=1,wAxis=2);let height=inputShape[hAxis],width=inputShape[wAxis],kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1],outHeight=deconvLength(height,strideH,kernelH,this.padding),outWidth=deconvLength(width,strideW,kernelW,this.padding),outputShape=[batchSize,outHeight,outWidth,this.filters];this.dataFormat!=="channelsLast"&&(input2=transpose(input2,[0,2,3,1]));let outputs=conv2dTranspose(input2,this.kernel.read(),outputShape,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(outputs=transpose(outputs,[0,3,1,2])),this.bias!=null&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice(),channelAxis,heightAxis,widthAxis;this.dataFormat==="channelsFirst"?(channelAxis=1,heightAxis=2,widthAxis=3):(channelAxis=3,heightAxis=1,widthAxis=2);let kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1];return outputShape[channelAxis]=this.filters,outputShape[heightAxis]=deconvLength(outputShape[heightAxis],strideH,kernelH,this.padding),outputShape[widthAxis]=deconvLength(outputShape[widthAxis],strideW,kernelW,this.padding),outputShape}getConfig(){let config3=super.getConfig();return delete config3.dilationRate,config3}};Conv2DTranspose.className="Conv2DTranspose";serialization_exports.registerClass(Conv2DTranspose);var SeparableConv=class extends Conv{constructor(rank,config3){super(rank,config3);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,config3.filters==null)throw new ValueError("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(config3.kernelInitializer!=null||config3.kernelRegularizer!=null||config3.kernelConstraint!=null)throw new ValueError("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(config3.padding!=null&&config3.padding!=="same"&&config3.padding!=="valid")throw new ValueError(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(config3.padding)}`);this.depthMultiplier=config3.depthMultiplier==null?1:config3.depthMultiplier,this.depthwiseInitializer=getInitializer(config3.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=getRegularizer(config3.depthwiseRegularizer),this.depthwiseConstraint=getConstraint(config3.depthwiseConstraint),this.pointwiseInitializer=getInitializer(config3.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=getRegularizer(config3.pointwiseRegularizer),this.pointwiseConstraint=getConstraint(config3.pointwiseConstraint)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length{inputs=getExactlyOneTensor(inputs);let output;if(this.rank===1)throw new NotImplementedError("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(inputs=transpose(inputs,[0,2,3,1])),output=separableConv2d(inputs,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(output=biasAdd(output,this.bias.read(),this.dataFormat)),this.activation!=null&&(output=this.activation.apply(output)),this.dataFormat==="channelsFirst"&&(output=transpose(output,[0,3,1,2])),output})}getConfig(){let config3=super.getConfig();return delete config3.rank,delete config3.kernelInitializer,delete config3.kernelRegularizer,delete config3.kernelConstraint,config3.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config3.pointwiseInitializer=serializeInitializer(this.pointwiseInitializer),config3.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config3.pointwiseRegularizer=serializeRegularizer(this.pointwiseRegularizer),config3.depthwiseConstraint=serializeConstraint(this.depthwiseConstraint),config3.pointwiseConstraint=serializeConstraint(this.pointwiseConstraint),config3}};SeparableConv.className="SeparableConv";var SeparableConv2D=class extends SeparableConv{constructor(args){super(2,args)}};SeparableConv2D.className="SeparableConv2D";serialization_exports.registerClass(SeparableConv2D);var Conv1D=class extends Conv{constructor(args){super(1,args);Conv1D.verifyArgs(args),this.inputSpec=[{ndim:3}]}getConfig(){let config3=super.getConfig();return delete config3.rank,delete config3.dataFormat,config3}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,1))throw new ValueError(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv1D.className="Conv1D";serialization_exports.registerClass(Conv1D);var Cropping2D=class extends Layer{constructor(args){super(args);typeof args.cropping=="number"?this.cropping=[[args.cropping,args.cropping],[args.cropping,args.cropping]]:typeof args.cropping[0]=="number"?this.cropping=[[args.cropping[0],args.cropping[0]],[args.cropping[1],args.cropping[1]]]:this.cropping=args.cropping,this.dataFormat=args.dataFormat===void 0?"channelsLast":args.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(inputShape){return this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],inputShape[2]-this.cropping[0][0]-this.cropping[0][1],inputShape[3]-this.cropping[1][0]-this.cropping[1][1]]:[inputShape[0],inputShape[1]-this.cropping[0][0]-this.cropping[0][1],inputShape[2]-this.cropping[1][0]-this.cropping[1][1],inputShape[3]]}call(inputs,kwargs){return tidy(()=>{if(inputs=getExactlyOneTensor(inputs),this.dataFormat==="channelsLast"){let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let config3={cropping:this.cropping,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Cropping2D.className="Cropping2D";serialization_exports.registerClass(Cropping2D);var UpSampling2D=class extends Layer{constructor(args){super(args);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=args.size==null?this.DEFAULT_SIZE:args.size,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.interpolation=args.interpolation==null?"nearest":args.interpolation,checkInterpolationFormat(this.interpolation)}computeOutputShape(inputShape){if(this.dataFormat==="channelsFirst"){let height=inputShape[2]==null?null:this.size[0]*inputShape[2],width=inputShape[3]==null?null:this.size[1]*inputShape[3];return[inputShape[0],inputShape[1],height,width]}else{let height=inputShape[1]==null?null:this.size[0]*inputShape[1],width=inputShape[2]==null?null:this.size[1]*inputShape[2];return[inputShape[0],height,width,inputShape[3]]}}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs),inputShape=input2.shape;if(this.dataFormat==="channelsFirst"){input2=transpose(input2,[0,2,3,1]);let height=this.size[0]*inputShape[2],width=this.size[1]*inputShape[3],resized=this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width]);return transpose(resized,[0,3,1,2])}else{let height=this.size[0]*inputShape[1],width=this.size[1]*inputShape[2];return this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width])}})}getConfig(){let config3={size:this.size,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};UpSampling2D.className="UpSampling2D";serialization_exports.registerClass(UpSampling2D);function depthwiseConv2d4(x,depthwiseKernel,strides=[1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat);let y=preprocessConv2DInput(x,dataFormat);if(x.rank!==4)throw new ValueError(`Input for depthwiseConv2d is required to be 4-D, but is instead ${x.rank}-D`);if(depthwiseKernel.rank!==4)throw new ValueError(`depthwiseKernel is required to be 4-D, but is instead ${depthwiseKernel.rank}-D`);return y=depthwiseConv2d(y,depthwiseKernel,strides,padding==="same"?"same":"valid","NHWC",dilationRate),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}var DepthwiseConv2D=class extends BaseConv{constructor(args){super(2,args);this.depthwiseKernel=null,this.depthMultiplier=args.depthMultiplier==null?1:args.depthMultiplier,this.depthwiseInitializer=getInitializer(args.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=getConstraint(args.depthwiseConstraint),this.depthwiseRegularizer=getRegularizer(args.depthwiseRegularizer)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<4)throw new ValueError(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(inputShape)}.`);let channelAxis=this.dataFormat==="channelsFirst"?1:3;if(inputShape[channelAxis]==null||inputShape[channelAxis]<0)throw new ValueError(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${inputShape[channelAxis]}).`);let inputDim=inputShape[channelAxis],depthwiseKernelShape=[this.kernelSize[0],this.kernelSize[1],inputDim,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",depthwiseKernelShape,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[inputDim*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs=depthwiseConv2d4(inputs,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],outFilters=this.dataFormat==="channelsFirst"?inputShape[1]*this.depthMultiplier:inputShape[3]*this.depthMultiplier,outRows=convOutputLength(rows,this.kernelSize[0],this.padding,this.strides[0]),outCols=convOutputLength(cols,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[inputShape[0],outFilters,outRows,outCols]:[inputShape[0],outRows,outCols,outFilters]}getConfig(){let config3=super.getConfig();return config3.depthMultiplier=this.depthMultiplier,config3.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config3.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config3.depthwiseConstraint=serializeConstraint(this.depthwiseRegularizer),config3}};DepthwiseConv2D.className="DepthwiseConv2D";serialization_exports.registerClass(DepthwiseConv2D);function standardizeArgs(inputs,initialState,constants,numConstants){if(Array.isArray(inputs)){if(initialState!=null||constants!=null)throw new ValueError("When inputs is an array, neither initialState or constants should be provided");numConstants!=null&&(constants=inputs.slice(inputs.length-numConstants,inputs.length),inputs=inputs.slice(0,inputs.length-numConstants)),inputs.length>1&&(initialState=inputs.slice(1,inputs.length)),inputs=inputs[0]}function toListOrNull(x){return x==null||Array.isArray(x)?x:[x]}return initialState=toListOrNull(initialState),constants=toListOrNull(constants),{inputs,initialState,constants}}function rnn(stepFunction,inputs,initialStates,goBackwards=!1,mask,constants,unroll=!1,needPerStepOutputs=!1){return tidy(()=>{let ndim=inputs.shape.length;if(ndim<3)throw new ValueError(`Input should be at least 3D, but is ${ndim}D.`);let axes=[1,0].concat(range5(2,ndim));if(inputs=transpose(inputs,axes),constants!=null)throw new NotImplementedError("The rnn() functoin of the deeplearn.js backend does not support constants yet.");unroll&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),mask!=null&&(mask=mask.asType("bool").asType("float32"),mask.rank===ndim-1&&(mask=expandDims(mask,-1)),mask=transpose(mask,axes)),goBackwards&&(inputs=reverse(inputs,0),mask!=null&&(mask=reverse(mask,0)));let perStepOutputs=[],lastOutput,states=initialStates,timeSteps=inputs.shape[0],perStepInputs=unstack(inputs),perStepMasks;mask!=null&&(perStepMasks=unstack(mask));for(let t=0;tstepFunction(currentInput,states));if(mask==null)lastOutput=stepOutputs[0],states=stepOutputs[1];else{let maskedOutputs=tidy(()=>{let stepMask=perStepMasks[t],negStepMask=onesLike(stepMask).sub(stepMask),output=stepOutputs[0].mul(stepMask).add(states[0].mul(negStepMask)),newStates=states.map((state,i)=>stepOutputs[1][i].mul(stepMask).add(state.mul(negStepMask)));return{output,newStates}});lastOutput=maskedOutputs.output,states=maskedOutputs.newStates}needPerStepOutputs&&perStepOutputs.push(lastOutput)}let outputs;return needPerStepOutputs&&(outputs=stack(perStepOutputs,1)),[lastOutput,outputs,states]})}var RNN=class extends Layer{constructor(args){super(args);let cell;if(args.cell==null)throw new ValueError("cell property is missing for the constructor of RNN.");if(Array.isArray(args.cell)?cell=new StackedRNNCells({cells:args.cell}):cell=args.cell,cell.stateSize==null)throw new ValueError("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=cell,this.returnSequences=args.returnSequences==null?!1:args.returnSequences,this.returnState=args.returnState==null?!1:args.returnState,this.goBackwards=args.goBackwards==null?!1:args.goBackwards,this._stateful=args.stateful==null?!1:args.stateful,this.unroll=args.unroll==null?!1:args.unroll,this.supportsMasking=!0,this.inputSpec=[new InputSpec({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return range5(0,numStates).map(x=>null)}else return this.states_}setStates(states){this.states_=states}computeOutputShape(inputShape){isArrayOfShapes(inputShape)&&(inputShape=inputShape[0]),inputShape=inputShape;let stateSize=this.cell.stateSize;Array.isArray(stateSize)||(stateSize=[stateSize]);let outputDim=stateSize[0],outputShape;if(this.returnSequences?outputShape=[inputShape[0],inputShape[1],outputDim]:outputShape=[inputShape[0],outputDim],this.returnState){let stateShape=[];for(let dim of stateSize)stateShape.push([inputShape[0],dim]);return[outputShape].concat(stateShape)}else return outputShape}computeMask(inputs,mask){return tidy(()=>{Array.isArray(mask)&&(mask=mask[0]);let outputMask=this.returnSequences?mask:null;if(this.returnState){let stateMask=this.states.map(s=>null);return[outputMask].concat(stateMask)}else return outputMask})}get states(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,output=[];for(let i=0;ispec.shape[spec.shape.length-1]),stateSize))throw new ValueError(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=stateSize.map(dim=>new InputSpec({shape:[null,dim]}));this.stateful&&this.resetStates()}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let batchSize=this.inputSpec[0].shape[0];if(batchSize==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_=[zeros([batchSize,this.cell.stateSize])];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_[0]=zeros([batchSize,this.cell.stateSize]);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training===!0?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants;let additionalInputs=[],additionalSpecs=[];if(initialState!=null){kwargs.initialState=initialState,additionalInputs=additionalInputs.concat(initialState),this.stateSpec=[];for(let state of initialState)this.stateSpec.push(new InputSpec({shape:state.shape}));additionalSpecs=additionalSpecs.concat(this.stateSpec)}if(constants!=null&&(kwargs.constants=constants,additionalInputs=additionalInputs.concat(constants),this.numConstants=constants.length),additionalInputs[0]instanceof SymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;inputs=getExactlyOneTensor(inputs),initialState==null&&(this.stateful?initialState=this.states_:initialState=this.getInitialState(inputs));let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(initialState.length!==numStates)throw new ValueError(`RNN Layer has ${numStates} state(s) but was passed ${initialState.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let cellCallKwargs={training},rnnOutputs=rnn((inputs2,states2)=>{let outputs2=this.cell.call([inputs2].concat(states2),cellCallKwargs);return[outputs2[0],outputs2.slice(1)]},inputs,initialState,this.goBackwards,mask,null,this.unroll,this.returnSequences),lastOutput=rnnOutputs[0],outputs=rnnOutputs[1],states=rnnOutputs[2];this.stateful&&this.resetStates(states,training);let output=this.returnSequences?outputs:lastOutput;return this.returnState?[output].concat(states):output})}getInitialState(inputs){return tidy(()=>{let initialState=zeros(inputs.shape);return initialState=sum2(initialState,[1,2]),initialState=expandDims5(initialState),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(dim=>dim>1?tile5(initialState,[1,dim]):initialState):this.cell.stateSize>1?[tile5(initialState,[1,this.cell.stateSize])]:[initialState]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(value)}getConfig(){let baseConfig=super.getConfig(),config3={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(config3.numConstants=this.numConstants);let cellConfig=this.cell.getConfig();return this.getClassName()===RNN.className&&(config3.cell={className:this.cell.getClassName(),config:cellConfig}),Object.assign({},cellConfig,baseConfig,config3)}static fromConfig(cls,config3,customObjects={}){let cellConfig=config3.cell,cell=deserialize(cellConfig,customObjects);return new cls(Object.assign(config3,{cell}))}};RNN.className="RNN";serialization_exports.registerClass(RNN);var RNNCell=class extends Layer{},SimpleRNNCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation==null?this.DEFAULT_ACTIVATION:args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape),this.kernel=this.addWeight("kernel",[inputShape[inputShape.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`SimpleRNNCell expects 2 input Tensors, got ${inputs.length}.`);let prevOutput=inputs[1];inputs=inputs[0];let training=kwargs.training==null?!1:kwargs.training;0onesLike(inputs),rate:this.dropout,training})),0onesLike(prevOutput),rate:this.recurrentDropout,training}));let h,dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask;dpMask!=null?h=dot2(mul(inputs,dpMask),this.kernel.read()):h=dot2(inputs,this.kernel.read()),this.bias!=null&&(h=biasAdd(h,this.bias.read())),recDpMask!=null&&(prevOutput=mul(prevOutput,recDpMask));let output=add2(h,dot2(prevOutput,this.recurrentKernel.read()));return this.activation!=null&&(output=this.activation.apply(output)),[output,output]})}getConfig(){let baseConfig=super.getConfig(),config3={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),recurrentInitializer:serializeInitializer(this.recurrentInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),recurrentRegularizer:serializeRegularizer(this.recurrentRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),recurrentConstraint:serializeConstraint(this.recurrentConstraint),biasConstraint:serializeConstraint(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},baseConfig,config3)}};SimpleRNNCell.className="SimpleRNNCell";serialization_exports.registerClass(SimpleRNNCell);var SimpleRNN=class extends RNN{constructor(args){args.cell=new SimpleRNNCell(args),super(args)}call(inputs,kwargs){return tidy(()=>{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config3){return new cls(config3)}};SimpleRNN.className="SimpleRNN";serialization_exports.registerClass(SimpleRNN);var GRUCell=class extends RNNCell{constructor(args){super(args);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.resetAfter)throw new ValueError("GRUCell does not support reset_after parameter set to true.");this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`GRUCell expects 2 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training==null?!1:kwargs.training,hTMinus1=inputs[1];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:3})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:3}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,z,r,hh;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config3){return config3.implmentation===0&&(config3.implementation=1),new cls(config3)}};GRU.className="GRU";serialization_exports.registerClass(GRU);var LSTMCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=args.unitForgetBias,this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let biasInitializer;if(this.useBias){if(this.unitForgetBias){let capturedBiasInit=this.biasInitializer,capturedUnits=this.units;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let bI=capturedBiasInit.apply([capturedUnits]),bF=new Ones().apply([capturedUnits]),bCAndH=capturedBiasInit.apply([capturedUnits*2]);return concatAlongFirstAxis(concatAlongFirstAxis(bI,bF),bCAndH)}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training;if(inputs=inputs,inputs.length!==3)throw new ValueError(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let hTMinus1=inputs[1],cTMinus1=inputs[2];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:4})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:4}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,i,f,c,o;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config3){return config3.implmentation===0&&(config3.implementation=1),new cls(config3)}};LSTM.className="LSTM";serialization_exports.registerClass(LSTM);var StackedRNNCells=class extends RNNCell{constructor(args){super(args);this.cells=args.cells}get stateSize(){let stateSize=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?stateSize.push(...cell.stateSize):stateSize.push(cell.stateSize);return stateSize}call(inputs,kwargs){return tidy(()=>{inputs=inputs;let states=inputs.slice(1),nestedStates=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?nestedStates.push(states.splice(0,cell.stateSize.length)):nestedStates.push(states.splice(0,1));nestedStates.reverse();let newNestedStates=[],callInputs;for(let i=0;i{nameScope(`RNNCell_${i}`,()=>{cell.build(inputShape),Array.isArray(cell.stateSize)?outputDim=cell.stateSize[0]:outputDim=cell.stateSize,inputShape=[inputShape[0],outputDim]})}),this.built=!0}getConfig(){let baseConfig=super.getConfig(),getCellConfig=cell=>({className:cell.getClassName(),config:cell.getConfig()}),config3={cells:this.cells.map(getCellConfig)};return Object.assign({},baseConfig,config3)}static fromConfig(cls,config3,customObjects={}){let cells=[];for(let cellConfig of config3.cells)cells.push(deserialize(cellConfig,customObjects));return new cls({cells})}get trainableWeights(){if(!this.trainable)return[];let weights=[];for(let cell of this.cells)weights.push(...cell.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let cell of this.cells)trainableWeights.push(...cell.trainableWeights);return trainableWeights.concat(weights)}return weights}getWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.weights);return batchGetValue(weights)}setWeights(weights){let tuples=[];for(let cell of this.cells){let numParams=cell.weights.length,inputWeights=weights.splice(numParams);for(let i=0;idropout2(ones4(),rate),createMask=()=>inTrainPhase(droppedInputs,ones4,training);return!count2||count2<=1?keep(createMask().clone()):Array(count2).fill(void 0).map(createMask).map(m=>keep(m.clone()))}var __rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i{if(this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),kwargs&&kwargs.constants)throw new ValueError("ConvRNN2D cell does not support constants");let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}computeOutputShape(inputShape){let outShape=this.computeSingleOutputShape(inputShape);return this.returnSequences||(outShape=[outShape[0],...outShape.slice(2)]),this.returnState&&(outShape=[outShape,...Array(2).fill([inputShape[0],...outShape.slice(-3)])]),outShape}getInitialState(inputs){return tidy(()=>{let{stateSize}=this.cell,inputShape=inputs.shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)],initialState=zeros(stateShape);return Array.isArray(stateSize)?Array(stateSize.length).fill(initialState):[initialState]})}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let inputShape=this.inputSpec[0].shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)];if(inputShape[0]==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_=[zeros(stateShape)];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_[0]=zeros(stateShape);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}computeSingleOutputShape(inputShape){let{dataFormat,filters,kernelSize,padding,strides,dilationRate}=this.cell,isChannelsFirst=dataFormat==="channelsFirst",h=inputShape[isChannelsFirst?3:2],w=inputShape[isChannelsFirst?4:3],hOut=convOutputLength(h,kernelSize[0],padding,strides[0],dilationRate[0]),wOut=convOutputLength(w,kernelSize[1],padding,strides[1],dilationRate[1]);return[...inputShape.slice(0,2),...isChannelsFirst?[filters,hOut,wOut]:[hOut,wOut,filters]]}};ConvRNN2D.className="ConvRNN2D";var ConvLSTM2DCell=class extends LSTMCell{constructor(args){let{filters,kernelSize,strides,padding,dataFormat,dilationRate}=args;super(Object.assign({},args,{units:filters}));this.filters=filters,assertPositiveInteger(this.filters,"filters"),this.kernelSize=normalizeArray(kernelSize,2,"kernelSize"),this.kernelSize.forEach(size=>assertPositiveInteger(size,"kernelSize")),this.strides=normalizeArray(strides||1,2,"strides"),this.strides.forEach(stride=>assertPositiveInteger(stride,"strides")),this.padding=padding||"valid",checkPaddingMode(this.padding),this.dataFormat=dataFormat||"channelsLast",checkDataFormat(this.dataFormat),this.dilationRate=normalizeArray(dilationRate||1,2,"dilationRate"),this.dilationRate.forEach(rate=>assertPositiveInteger(rate,"dilationRate"))}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],numOfKernels=4,kernelShape=this.kernelSize.concat([inputDim,this.filters*numOfKernels]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let recurrentKernelShape=this.kernelSize.concat([this.filters,this.filters*numOfKernels]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",recurrentKernelShape,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let biasInitializer;if(this.unitForgetBias){let init2=this.biasInitializer,filters=this.filters;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let biasI=init2.apply([filters]),biasF=ones2([filters]),biasCAndO=init2.apply([filters*2]);return concatenate([biasI,biasF,biasCAndO])}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*numOfKernels],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs.length!==3)throw new ValueError(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training||!1,x=inputs[0],hTMinus1=inputs[1],cTMinus1=inputs[2],numOfKernels=4;0onesLike(x),rate:this.dropout,training,count:numOfKernels}));let dropoutMask=this.dropoutMask,applyDropout=(x2,mask,index)=>!mask||!mask[index]?x2:mul(mask[index],x2),xI=applyDropout(x,dropoutMask,0),xF=applyDropout(x,dropoutMask,1),xC=applyDropout(x,dropoutMask,2),xO=applyDropout(x,dropoutMask,3);0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:numOfKernels}));let recDropoutMask=this.recurrentDropoutMask,hI=applyDropout(hTMinus1,recDropoutMask,0),hF=applyDropout(hTMinus1,recDropoutMask,1),hC=applyDropout(hTMinus1,recDropoutMask,2),hO=applyDropout(hTMinus1,recDropoutMask,3),kernelChannelAxis=3,[kernelI,kernelF,kernelC,kernelO]=split(this.kernel.read(),numOfKernels,kernelChannelAxis),[biasI,biasF,biasC,biasO]=this.useBias?split(this.bias.read(),numOfKernels):[null,null,null,null];xI=this.inputConv(xI,kernelI,biasI,this.padding),xF=this.inputConv(xF,kernelF,biasF,this.padding),xC=this.inputConv(xC,kernelC,biasC,this.padding),xO=this.inputConv(xO,kernelO,biasO,this.padding);let[recKernelI,recKernelF,recKernelC,recKernelO]=split(this.recurrentKernel.read(),numOfKernels,kernelChannelAxis);hI=this.recurrentConv(hI,recKernelI),hF=this.recurrentConv(hF,recKernelF),hC=this.recurrentConv(hC,recKernelC),hO=this.recurrentConv(hO,recKernelO);let i=this.recurrentActivation.apply(add2(xI,hI)),f=this.recurrentActivation.apply(add2(xF,hF)),c=add2(mul(f,cTMinus1),mul(i,this.activation.apply(add2(xC,hC)))),h=mul(this.recurrentActivation.apply(add2(xO,hO)),this.activation.apply(c));return[h,h,c]})}getConfig(){let _a=super.getConfig(),{units:_}=_a,baseConfig=__rest(_a,["units"]),config3={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},baseConfig,config3)}inputConv(x,w,b,padding){let out=conv2d(x,w,this.strides,padding||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return b?biasAdd(out,b,this.dataFormat):out}recurrentConv(x,w){return conv2d(x,w,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};ConvLSTM2DCell.className="ConvLSTM2DCell";serialization_exports.registerClass(ConvLSTM2DCell);var ConvLSTM2D=class extends ConvRNN2D{constructor(args){let cell=new ConvLSTM2DCell(args);super(Object.assign({},args,{cell}))}static fromConfig(cls,config3){return new cls(config3)}};ConvLSTM2D.className="ConvLSTM2D";serialization_exports.registerClass(ConvLSTM2D);var Dropout=class extends Layer{constructor(args){super(args);this.rate=Math.max(Math.min(args.rate,1),0),this.noiseShape=args.noiseShape,this.seed=args.seed,this.supportsMasking=!0}getNoiseShape(input2){if(this.noiseShape==null)return this.noiseShape;let inputShape=input2.shape,noiseShape=[];for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(0dropout2(input2,this.rate,noiseShape,this.seed),()=>input2,training)}return inputs})}getConfig(){let config3={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}dispose(){return super.dispose()}};Dropout.className="Dropout";serialization_exports.registerClass(Dropout);var SpatialDropout1D=class extends Dropout{constructor(args){super(args);this.inputSpec=[{ndim:3}]}getNoiseShape(input2){let inputShape=input2.shape;return[inputShape[0],1,inputShape[2]]}};SpatialDropout1D.className="SpatialDropout1D";serialization_exports.registerClass(SpatialDropout1D);var Dense=class extends Layer{constructor(args){super(args);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.batchInputShape==null&&args.inputShape==null&&args.inputDim!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),this.batchInputShape=[batchSize,args.inputDim]}this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation),args.useBias!=null&&(this.useBias=args.useBias),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputLastDim=inputShape[inputShape.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[inputLastDim,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:inputLastDim}}],this.built=!0}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return outputShape[outputShape.length-1]=this.units,outputShape}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName()),output;return fusedActivationName!=null?output=dot2(input2,this.kernel.read(),fusedActivationName,this.bias?this.bias.read():null):(output=dot2(input2,this.kernel.read()),this.bias!=null&&(output=biasAdd(output,this.bias.read())),this.activation!=null&&(output=this.activation.apply(output))),output})}getConfig(){let config3={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Dense.className="Dense";serialization_exports.registerClass(Dense);var Flatten=class extends Layer{constructor(args){args=args||{},super(args),this.inputSpec=[{minNDim:3}],this.dataFormat=args.dataFormat}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);for(let dim of inputShape.slice(1))if(dim==null)throw new ValueError(`The shape of the input to "Flatten" is not fully defined (got ${inputShape.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[inputShape[0],arrayProd(inputShape,1)]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(this.dataFormat==="channelsFirst"&&input2.rank>1){let permutation=[0];for(let i=2;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.activation.apply(input2)})}getConfig(){let config3={activation:serializeActivation(this.activation)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Activation2.className="Activation";serialization_exports.registerClass(Activation2);var RepeatVector=class extends Layer{constructor(args){super(args);this.n=args.n,this.inputSpec=[{ndim:2}]}computeOutputShape(inputShape){return[inputShape[0],this.n,inputShape[1]]}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),repeat(inputs,this.n)))}getConfig(){let config3={n:this.n},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};RepeatVector.className="RepeatVector";serialization_exports.registerClass(RepeatVector);var Reshape2=class extends Layer{constructor(args){super(args);this.targetShape=args.targetShape;for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,outputShape=inputShape.slice(0,1).concat(this.fixUnknownDimension(inputShape.slice(1),this.targetShape));return input2.reshape(outputShape)})}getConfig(){let config3={targetShape:this.targetShape},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Reshape2.className="Reshape";serialization_exports.registerClass(Reshape2);var Permute=class extends Layer{constructor(args){super(args);if(args.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(args.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${args.dims} instead.`);let expectedSortedIndices=range5(1,args.dims.length+1);if(!util_exports.arraysEqual(args.dims.slice().sort(),expectedSortedIndices))throw new Error("Invalid permutation `dims`: "+JSON.stringify(args.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=args.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new InputSpec({ndim:this.dims.length+1})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return this.dims.forEach((dim,i)=>{outputShape[i+1]=inputShape[dim]}),outputShape}call(inputs,kwargs){return transpose(getExactlyOneTensor(inputs),this.dimsIncludingBatch)}getConfig(){let config3={dims:this.dims},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Permute.className="Permute";serialization_exports.registerClass(Permute);var Masking=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null?this.maskValue=args.maskValue==null?0:args.maskValue:this.maskValue=0}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={maskValue:this.maskValue};return Object.assign(config3,baseConfig),config3}computeMask(inputs,mask){let input2=getExactlyOneTensor(inputs),axis=-1;return any(notEqual(input2,this.maskValue),axis)}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),axis=-1,keepDims=!0,booleanMask=any(notEqual(input2,this.maskValue),axis,keepDims);return input2.mul(booleanMask.asType(input2.dtype))})}};Masking.className="Masking";serialization_exports.registerClass(Masking);var Embedding=class extends Layer{constructor(args){super(args);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",args.batchInputShape==null&&args.inputShape==null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),args.inputLength==null?this.batchInputShape=[batchSize,null]:this.batchInputShape=[batchSize].concat(toList(args.inputLength))}this.inputDim=args.inputDim,assertPositiveInteger(this.inputDim,"inputDim"),this.outputDim=args.outputDim,assertPositiveInteger(this.outputDim,"outputDim"),this.embeddingsInitializer=getInitializer(args.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=getRegularizer(args.embeddingsRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.embeddingsConstraint=getConstraint(args.embeddingsConstraint),this.maskZero=args.maskZero,this.supportsMasking=args.maskZero,this.inputLength=args.inputLength}build(inputShape){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(inputShape){}computeMask(inputs,mask){return tidy(()=>this.maskZero?(inputs=getExactlyOneTensor(inputs),notEqual(inputs,zerosLike(inputs))):null)}computeOutputShape(inputShape){if(inputShape=getExactlyOneShape(inputShape),this.inputLength==null)return[...inputShape,this.outputDim];let inLens=toList(this.inputLength);if(inLens.length!==inputShape.length-1)throw new ValueError(`"inputLength" is ${this.inputLength}, but received input shape has shape ${inputShape}`);{let i=0;for(let k=0;k{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return input2.dtype!=="int32"&&(input2=cast5(input2,"int32")),gather2(this.embeddings.read(),input2.as1D()).reshape(getExactlyOneShape(this.computeOutputShape(input2.shape)))})}getConfig(){let config3={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:serializeInitializer(this.embeddingsInitializer),embeddingsRegularizer:serializeRegularizer(this.embeddingsRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),embeddingsConstraint:serializeConstraint(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Embedding.className="Embedding";serialization_exports.registerClass(Embedding);var Merge=class extends Layer{constructor(args){super(args||{});this.supportsMasking=!0}mergeFunction(inputs){throw new NotImplementedError}computeElementwiseOpOutputShape(shape1,shape2){if(shape1==null||shape2==null)return null;if(shape1.length1)throw new ValueError(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(inputShape)}.`);let outputShape=inputShape[0]==null?null:inputShape[0].slice(1);for(let i=1;ishape.length);inputShape.indexOf(null)===-1&&unique4(allRanks).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,this.reshapeRequired){let reshapedInputs=[],inputDims=inputs.map(input2=>input2.rank);if(inputDims.indexOf(null)===-1){let maxNDim=max5(inputDims);for(let x of inputs){let xNDim=x.rank;for(let k=0;k1){let dims=range5(1,xNDim).concat([0]);reshapedInputs.push(transpose(x,dims)),transposed=!0}else reshapedInputs.push(x)}let y=this.mergeFunction(reshapedInputs),yNDim=y.rank;if(transposed){if(yNDim==null){let yShape=y.shape,yNDim2=yShape.length,batchSize=yShape[yNDim2-1],newShape=[batchSize].concat(yShape.slice(0,yShape.length-1));y=transpose(y.reshape([-1,batchSize]),[1,0]).reshape(newShape)}else if(yNDim>1){let dims=[yNDim-1].concat(range5(0,yNDim-1));y=transpose(y,dims)}}return y}}else return this.mergeFunction(inputs)})}computeOutputShape(inputShape){inputShape=inputShape;let outputShape;inputShape[0]==null?outputShape=null:outputShape=inputShape[0].slice(1);for(let i=1;i{if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an Array");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an Array");if(mask.length!==inputs.length)throw new ValueError(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${inputs.length} vs ${mask.length})`);if(mask.every(m=>m==null))return null;mask=mask.map(m=>m==null?m:expandDims(m,0));let output=mask[0];for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0];for(let i=1;i{let output=inputs[0];for(let i=1;i1)throw new ValueError("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(inputShape))}mergeFunction(inputs){return tidy(()=>concatenate(inputs,this.axis))}computeOutputShape(inputShape){if(!(Array.isArray(inputShape)&&Array.isArray(inputShape[0])))throw new ValueError("A `Concatenate` layer should be called on a list of inputs.");let inputShapes=inputShape,outputShape=inputShapes[0].slice(),axis=this.axis<0?outputShape.length+this.axis:this.axis;for(let shape of inputShapes.slice(1)){if(outputShape[axis]==null||shape[axis]==null){outputShape[axis]=null;break}outputShape[axis]+=shape[axis]}return outputShape}computeMask(inputs,mask){if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an array for Concatenate");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an array for Concatenate");if(mask.length!==inputs.length)throw new ValueError(`Mismatch in the length of mask (${mask.length}) and the legnth of inputs (${inputs.length})`);return tidy(()=>{let allNullMasks=!0;if(mask.forEach(m=>{if(m!=null){allNullMasks=!1;return}}),allNullMasks)return null;let outputMasks=[];for(let i=0;i3||y.shape.length>3)throw new NotImplementedError("batchDot is not implemented for tensors of 4D or higher rank yet");if(util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${x.shape.length}`),util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${y.shape.length}`),typeof axes=="number"&&(axes=[axes,axes]),x.dtype==="complex64"||y.dtype==="complex64")throw new NotImplementedError("batchDot is not implemented for complex64-type Tensors yet.");let xNDim=x.shape.length,yNDim=y.shape.length;axes==null&&(axes=[xNDim-1,yNDim-2]);let axesArray=axes;return tidy(()=>{let diff;if(xNDim>yNDim){diff=xNDim-yNDim;let diffShape=[];for(let i=0;ixNDim){diff=yNDim-xNDim;let diffShape=[];for(let i=0;i0){let idx;xNDim>yNDim?idx=xNDim+yNDim-3:idx=xNDim-1;let squeezeAxes=[];for(let i=idx;i"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0],shape2=inputShape[1];if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);if(shape1[axes[0]]!==shape2[axes[1]])throw new ValueError(`Dimension incompatibility: ${shape1[axes[0]]} !== ${shape2[axes[1]]}`)}mergeFunction(inputs){if(inputs.length!==2)throw new ValueError(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${inputs.length} input(s).`);let x1=inputs[0],x2=inputs[1],axes;return Array.isArray(this.axes)?axes=this.axes.map((axis,i)=>interpretAxis(axis,inputs[i].shape.length)):axes=[interpretAxis(this.axes,x1.shape.length),interpretAxis(this.axes,x2.shape.length)],this.normalize&&(x1=l2Normalize(x1,axes[0]),x2=l2Normalize(x2,axes[1])),batchDot(x1,x2,axes)}interpretAxes(shape1,shape2){let axes;return Array.isArray(this.axes)?axes=this.axes:axes=[interpretAxis(this.axes,shape1.length),interpretAxis(this.axes,shape2.length)],axes}computeOutputShape(inputShape){util_exports.assert(Array.isArray(inputShape)&&inputShape.length===2&&Array.isArray(inputShape[0])&&Array.isArray(inputShape[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0].slice(),shape2=inputShape[1].slice();if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);shape1.splice(axes[0],1),shape2.splice(axes[1],1),shape2.splice(0,1);let outputShape=shape1.concat(shape2);return outputShape.length===1&&outputShape.push(1),outputShape}computeMask(inputs,mask){return null}getConfig(){let config3={axes:this.axes,normalize:this.normalize},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Dot.className="Dot";serialization_exports.registerClass(Dot);var GaussianNoise=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.stddev=args.stddev}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={stddev:this.stddev};return Object.assign(config3,baseConfig),config3}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return inTrainPhase(()=>randomNormal2(input2.shape,0,this.stddev).add(input2),()=>input2,kwargs.training||!1)})}};GaussianNoise.className="GaussianNoise";serialization_exports.registerClass(GaussianNoise);var GaussianDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={rate:this.rate};return Object.assign(config3,baseConfig),config3}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.rate>0&&this.rate<1?inTrainPhase(()=>{let stddev=Math.sqrt(this.rate/(1-this.rate));return input2.mul(randomNormal2(input2.shape,1,stddev))},()=>input2,kwargs.training||!1):input2})}};GaussianDropout.className="GaussianDropout";serialization_exports.registerClass(GaussianDropout);var AlphaDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate,this.noiseShape=args.noiseShape}_getNoiseShape(inputs){return this.noiseShape||getExactlyOneTensor(inputs).shape}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={rate:this.rate};return Object.assign(config3,baseConfig),config3}call(inputs,kwargs){return tidy(()=>{if(this.rate<1&&this.rate>0){let noiseShape=this._getNoiseShape(inputs);return inTrainPhase(()=>{let input2=getExactlyOneTensor(inputs),alpha=1.6732632423543772,scale2=1.0507009873554805,alphaP=-alpha*scale2,keptIdx=greaterEqual(randomUniform(noiseShape),this.rate);keptIdx=cast5(keptIdx,"float32");let a=((1-this.rate)*(1+this.rate*alphaP**2))**-.5,b=-a*alphaP*this.rate;return input2.mul(keptIdx).add(keptIdx.add(-1).mul(alphaP)).mul(a).add(b)},()=>getExactlyOneTensor(inputs),kwargs.training||!1)}return inputs})}};AlphaDropout.className="AlphaDropout";serialization_exports.registerClass(AlphaDropout);function batchNormalization(x,mean4,variance,beta,gamma,epsilon3=.001){let out;if(x.rank===2)out=batchNorm2d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===3)out=batchNorm3d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===4)out=batchNorm4d(x,mean4,variance,beta,gamma,epsilon3);else throw new NotImplementedError(`batchNormalization is not implemented for array of rank ${x.rank} yet`);return out}function regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance;return[batchNormalization(x,mean4,variance,beta,gamma,epsilon3),mean4,variance]})}function broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance,targetShape=[];for(let axis of range5(0,x.rank))reductionAxes.indexOf(axis)!==-1?targetShape.push(1):targetShape.push(x.shape[axis]);let broadcastMean=mean4.reshape(targetShape),broadcastVariance=variance.reshape(targetShape),broadcastGamma=gamma==null?null:gamma.reshape(targetShape),broadcastBeta=beta==null?null:beta.reshape(targetShape);return[batchNormalization(x,broadcastMean,broadcastVariance,broadcastBeta,broadcastGamma,epsilon3),mean4,variance]})}function normalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return util_exports.arraysEqual(reductionAxes.slice().sort(),range5(0,x.rank-1))?regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3):broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3)}var BatchNormalization=class extends Layer{constructor(args){args==null&&(args={}),super(args),this.supportsMasking=!0,this.axis=args.axis==null?-1:args.axis,this.momentum=args.momentum==null?.99:args.momentum,this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.movingMeanInitializer=getInitializer(args.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=getInitializer(args.movingVarianceInitializer||"ones"),this.betaConstraint=getConstraint(args.betaConstraint),this.gammaConstraint=getConstraint(args.gammaConstraint),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let axis=this.axis>=0?this.axis:this.axis+inputShape.length,dim=inputShape[axis];if(dim==null)throw new ValueError(`Axis ${axis} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(inputShape)}.`);this.inputSpec=[new InputSpec({ndim:inputShape.length,axes:{[axis]:dim}})];let shape=[dim];this.scale&&(this.gamma=this.addWeight("gamma",shape,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",shape,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",shape,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",shape,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training,input2=getExactlyOneTensor(inputs),inputShape=input2.shape,ndim=inputShape.length,reductionAxes=range5(0,ndim),axis=this.axis>=0?this.axis:this.axis+ndim;reductionAxes.splice(axis,1);let broadcastShape=pyListRepeat(1,ndim);broadcastShape[axis]=inputShape[axis];let sortedReductionAxes=reductionAxes.slice();sortedReductionAxes.sort();let needsBroadcasting=!util_exports.arraysEqual(sortedReductionAxes,range5(0,ndim).slice(0,ndim-1)),normalizeInference=()=>{if(needsBroadcasting){let broadcastMovingMean=this.movingMean.read().reshape(broadcastShape),broadcastMovingVariance=this.movingVariance.read().reshape(broadcastShape),broadcastBeta=this.center?this.beta.read().reshape(broadcastShape):null,broadcastGamma=this.scale?this.gamma.read().reshape(broadcastShape):null;return batchNormalization(input2,broadcastMovingMean,broadcastMovingVariance,broadcastBeta,broadcastGamma,this.epsilon)}else return batchNormalization(input2,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!training)return normalizeInference();let[normedTraining,mean4,variance]=normalizeBatchInTraining(input2,this.gamma.read(),this.beta.read(),reductionAxes,this.epsilon),doMovingAverage=(variable2,value,momentum)=>{tidy(()=>{let decay=1-momentum,origValue=variable2.read(),updateDelta=origValue.sub(value).mul(decay);variable2.write(origValue.sub(updateDelta))})};return(()=>{doMovingAverage(this.movingMean,mean4,this.momentum),doMovingAverage(this.movingVariance,variance,this.momentum)})(),normedTraining})}getConfig(){let config3={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:serializeInitializer(this.betaInitializer),gammaInitializer:serializeInitializer(this.gammaInitializer),movingMeanInitializer:serializeInitializer(this.movingMeanInitializer),movingVarianceInitializer:serializeInitializer(this.movingVarianceInitializer),betaRegularizer:serializeRegularizer(this.betaRegularizer),gammaRegularizer:serializeRegularizer(this.gammaRegularizer),betaConstraint:serializeConstraint(this.betaConstraint),gammaConstraint:serializeConstraint(this.gammaConstraint)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};BatchNormalization.className="BatchNormalization";serialization_exports.registerClass(BatchNormalization);var LayerNormalization=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.axis=args.axis==null?-1:args.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let axis of this.axis)if(!Number.isInteger(axis))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer),this.supportsMasking=!0}build(inputShape){inputShape=getExactlyOneShape(inputShape);let nDims=inputShape.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=nDims)throw new Error(`Invalid axis: ${axis}`);if(this.axis.length!==unique4(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let paramShape=this.axis.map(axis=>inputShape[axis]),trainable=!0;this.scale?this.gamma=this.addWeight("gamma",paramShape,"float32",this.gammaInitializer,this.gammaRegularizer,trainable):this.gamma=null,this.center?this.beta=this.addWeight("beta",paramShape,"float32",this.betaInitializer,this.betaRegularizer,trainable):this.beta=null,this.built=!0}call(inputs,kwargs){let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,nDims=inputShape.length;return tidy(()=>{let keepDims=!0,{mean:mean4,variance}=moments(input2,this.axis,keepDims),broadcastShape=pyListRepeat(1,nDims);for(let dim of this.axis)broadcastShape[dim]=inputShape[dim];let broadcast=v=>v!=null&&v.shape.length!==nDims&&this.axis!==[nDims-1]?v.reshape(broadcastShape):v,scale2=broadcast(this.gamma.read()),offset=broadcast(this.beta.read()),momentsTiling=[],scaleOffsetTiling=[];for(let i=0;i{if(x.rank!==4)throw new ValueError(`temporalPadding expects input tensor to be 4-D, but received a ${x.rank}-D tensor.`);if(padding==null&&(padding=[[1,1],[1,1]]),padding.length!==2||padding[0].length!==2||padding[1].length!==2)throw new ValueError("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(dataFormat==null&&(dataFormat=imageDataFormat()),dataFormat!=="channelsLast"&&dataFormat!=="channelsFirst")throw new ValueError(`Unknown data format: ${dataFormat}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let pattern;return dataFormat==="channelsFirst"?pattern=[[0,0],[0,0],padding[0],padding[1]]:pattern=[[0,0],padding[0],padding[1],[0,0]],pad(x,pattern)})}var ZeroPadding2D=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.dataFormat=args.dataFormat==null?imageDataFormat():args.dataFormat,args.padding==null)this.padding=[[1,1],[1,1]];else if(typeof args.padding=="number")this.padding=[[args.padding,args.padding],[args.padding,args.padding]];else{if(args.padding=args.padding,args.padding.length!==2)throw new ValueError(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${args.padding.length} array.`);let heightPadding,widthPadding;if(typeof args.padding[0]=="number")heightPadding=[args.padding[0],args.padding[0]],widthPadding=[args.padding[1],args.padding[1]];else{if(args.padding=args.padding,args.padding[0].length!==2)throw new ValueError(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${args.padding[0].length} array.`);if(heightPadding=args.padding[0],args.padding[1].length!==2)throw new ValueError(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${args.padding[1].length} array.`);widthPadding=args.padding[1]}this.padding=[heightPadding,widthPadding]}this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows,cols;return this.dataFormat==="channelsFirst"?(inputShape[2]!=null&&inputShape[2]>=0?rows=inputShape[2]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[3]!=null&&inputShape[3]>=0?cols=inputShape[3]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],inputShape[1],rows,cols]):(inputShape[1]!=null&&inputShape[1]>=0?rows=inputShape[1]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[2]!=null&&inputShape[2]>=0?cols=inputShape[2]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],rows,cols,inputShape[3]])}call(inputs,kwargs){return tidy(()=>spatial2dPadding(getExactlyOneTensor(inputs),this.padding,this.dataFormat))}getConfig(){let config3={padding:this.padding,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};ZeroPadding2D.className="ZeroPadding2D";serialization_exports.registerClass(ZeroPadding2D);function pool2d(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv2DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool(x,poolSize,strides,paddingString):y=avgPool(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function pool3d2(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv3DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool3d(x,poolSize,strides,paddingString):y=avgPool3d(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var Pooling1D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=2),super(args),typeof args.poolSize=="number")this.poolSize=[args.poolSize];else if(Array.isArray(args.poolSize)&&args.poolSize.length===1&&typeof args.poolSize[0]=="number")this.poolSize=args.poolSize;else throw new ValueError(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.poolSize)}`);if(assertPositiveInteger(this.poolSize,"poolSize"),args.strides==null)this.strides=this.poolSize;else if(typeof args.strides=="number")this.strides=[args.strides];else if(Array.isArray(args.strides)&&args.strides.length===1&&typeof args.strides[0]=="number")this.strides=args.strides;else throw new ValueError(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.strides)}`);assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let length=convOutputLength(inputShape[1],this.poolSize[0],this.padding,this.strides[0]);return[inputShape[0],length,inputShape[2]]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs),inputs=expandDims5(getExactlyOneTensor(inputs),2);let output=this.poolingFunction(getExactlyOneTensor(inputs),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return squeeze(output,[2])})}getConfig(){let config3={poolSize:this.poolSize,padding:this.padding,strides:this.strides},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},MaxPooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling1D.className="MaxPooling1D";serialization_exports.registerClass(MaxPooling1D);var AveragePooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling1D.className="AveragePooling1D";serialization_exports.registerClass(AveragePooling1D);var Pooling2D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==2)throw new ValueError(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2];return rows=convOutputLength(rows,this.poolSize[0],this.padding,this.strides[0]),cols=convOutputLength(cols,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],rows,cols]:[inputShape[0],rows,cols,inputShape[3]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config3={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},MaxPooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling2D.className="MaxPooling2D";serialization_exports.registerClass(MaxPooling2D);var AveragePooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling2D.className="AveragePooling2D";serialization_exports.registerClass(AveragePooling2D);var Pooling3D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==3)throw new ValueError(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:5})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let depths=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],rows=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],cols=this.dataFormat==="channelsFirst"?inputShape[4]:inputShape[3];return depths=convOutputLength(depths,this.poolSize[0],this.padding,this.strides[0]),rows=convOutputLength(rows,this.poolSize[1],this.padding,this.strides[1]),cols=convOutputLength(cols,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],depths,rows,cols]:[inputShape[0],depths,rows,cols,inputShape[4]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config3={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},MaxPooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling3D.className="MaxPooling3D";serialization_exports.registerClass(MaxPooling3D);var AveragePooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling3D.className="AveragePooling3D";serialization_exports.registerClass(AveragePooling3D);var GlobalPooling1D=class extends Layer{constructor(args){super(args);this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){return[inputShape[0],inputShape[2]]}call(inputs,kwargs){throw new NotImplementedError}},GlobalAveragePooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return mean(input2,1)})}};GlobalAveragePooling1D.className="GlobalAveragePooling1D";serialization_exports.registerClass(GlobalAveragePooling1D);var GlobalMaxPooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return max(input2,1)})}};GlobalMaxPooling1D.className="GlobalMaxPooling1D";serialization_exports.registerClass(GlobalMaxPooling1D);var GlobalPooling2D=class extends Layer{constructor(args){super(args);this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){return inputShape=inputShape,this.dataFormat==="channelsLast"?[inputShape[0],inputShape[3]]:[inputShape[0],inputShape[1]]}call(inputs,kwargs){throw new NotImplementedError}getConfig(){let config3={dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},GlobalAveragePooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?mean(input2,[1,2]):mean(input2,[2,3])})}};GlobalAveragePooling2D.className="GlobalAveragePooling2D";serialization_exports.registerClass(GlobalAveragePooling2D);var GlobalMaxPooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?max(input2,[1,2]):max(input2,[2,3])})}};GlobalMaxPooling2D.className="GlobalMaxPooling2D";serialization_exports.registerClass(GlobalMaxPooling2D);var Wrapper=class extends Layer{constructor(args){super(args);this.layer=args.layer}build(inputShape){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(value){this.layer!=null&&(this.layer.trainable=value)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(weights){this.layer.setWeights(weights)}getConfig(){let config3={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(value)}static fromConfig(cls,config3,customObjects={}){let layerConfig=config3.layer,layer=deserialize(layerConfig,customObjects);delete config3.layer;let newConfig={layer};return Object.assign(newConfig,config3),new cls(newConfig)}},TimeDistributed=class extends Wrapper{constructor(args){super(args);this.supportsMasking=!0}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<3)throw new ValueError(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(inputShape)}`);this.inputSpec=[{shape:inputShape}];let childInputShape=[inputShape[0]].concat(inputShape.slice(2));this.layer.built||(this.layer.build(childInputShape),this.layer.built=!0),super.build(inputShape)}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let childInputShape=[inputShape[0]].concat(inputShape.slice(2)),childOutputShape=this.layer.computeOutputShape(childInputShape),timesteps=inputShape[1];return[childOutputShape[0],timesteps].concat(childOutputShape.slice(1))}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),rnn((inputs2,states)=>[getExactlyOneTensor(this.layer.call(inputs2,kwargs)),[]],inputs,[],!1,null,null,!1,!0)[1]))}};TimeDistributed.className="TimeDistributed";serialization_exports.registerClass(TimeDistributed);function checkBidirectionalMergeMode(value){checkStringTypeUnionValue(VALID_BIDIRECTIONAL_MERGE_MODES,"BidirectionalMergeMode",value)}var DEFAULT_BIDIRECTIONAL_MERGE_MODE="concat",Bidirectional=class extends Wrapper{constructor(args){super(args);let layerConfig=args.layer.getConfig(),forwDict={};forwDict.className=args.layer.getClassName(),forwDict.config=layerConfig,this.forwardLayer=deserialize(forwDict),layerConfig.goBackwards=layerConfig.goBackwards!==!0;let backDict={};if(backDict.className=args.layer.getClassName(),backDict.config=layerConfig,this.backwardLayer=deserialize(backDict),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=args.mergeMode===void 0?DEFAULT_BIDIRECTIONAL_MERGE_MODE:args.mergeMode,checkBidirectionalMergeMode(this.mergeMode),args.weights)throw new NotImplementedError("weights support is not implemented for Bidirectional layer yet.");this._stateful=args.layer.stateful,this.returnSequences=args.layer.returnSequences,this.returnState=args.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=args.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(value){this._trainable=value,this.forwardLayer!=null&&(this.forwardLayer.trainable=value),this.backwardLayer!=null&&(this.backwardLayer.trainable=value)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(weights){let numWeights=weights.length,numeightsOver2=Math.floor(numWeights/2);this.forwardLayer.setWeights(weights.slice(0,numeightsOver2)),this.backwardLayer.setWeights(weights.slice(numeightsOver2))}computeOutputShape(inputShape){let layerShapes=this.forwardLayer.computeOutputShape(inputShape);Array.isArray(layerShapes)&&Array.isArray(layerShapes[0])||(layerShapes=[layerShapes]),layerShapes=layerShapes;let outputShape,outputShapes,stateShape;return this.returnState&&(stateShape=layerShapes.slice(1)),outputShape=layerShapes[0],outputShape=outputShape,this.mergeMode==="concat"?(outputShape[outputShape.length-1]*=2,outputShapes=[outputShape]):this.mergeMode==null?outputShapes=[outputShape,outputShape.slice()]:outputShapes=[outputShape],this.returnState?this.mergeMode==null?outputShapes.concat(stateShape).concat(stateShape.slice()):[outputShape].concat(stateShape).concat(stateShape.slice()):singletonOrArray(outputShapes)}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);if(inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants,Array.isArray(inputs)&&(initialState=inputs.slice(1),inputs=inputs[0]),(initialState==null||initialState.length===0)&&constants==null)return super.apply(inputs,kwargs);let additionalInputs=[],additionalSpecs=[];if(initialState!=null){let numStates=initialState.length;if(numStates%2>0)throw new ValueError("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");kwargs.initialState=initialState,additionalInputs.push(...initialState);let stateSpecs=initialState.map(state=>new InputSpec({shape:state.shape}));this.forwardLayer.stateSpec=stateSpecs.slice(0,numStates/2),this.backwardLayer.stateSpec=stateSpecs.slice(numStates/2),additionalSpecs.push(...stateSpecs)}if(constants!=null)throw new NotImplementedError("Support for constants in Bidirectional layers is not implemented yet.");let isSymbolicTensor=additionalInputs[0]instanceof SymbolicTensor;for(let tensor2 of additionalInputs)if(tensor2 instanceof SymbolicTensor!==isSymbolicTensor)throw new ValueError("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(isSymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let initialState=kwargs.initialState,y,yRev;if(initialState==null)y=this.forwardLayer.call(inputs,kwargs),yRev=this.backwardLayer.call(inputs,kwargs);else{let forwardState=initialState.slice(0,initialState.length/2),backwardState=initialState.slice(initialState.length/2);y=this.forwardLayer.call(inputs,Object.assign(kwargs,{initialState:forwardState})),yRev=this.backwardLayer.call(inputs,Object.assign(kwargs,{initialState:backwardState}))}let states;this.returnState&&(Array.isArray(y)&&(states=y.slice(1).concat(yRev.slice(1))),y=y[0],yRev=yRev[0]),this.returnSequences&&(yRev=reverse(yRev,1));let output;return this.mergeMode==="concat"?output=concatenate([y,yRev]):this.mergeMode==="sum"?output=add2(y,yRev):this.mergeMode==="ave"?output=mul(.5,add2(y,yRev)):this.mergeMode==="mul"?output=mul(y,yRev):this.mergeMode==null&&(output=[y,yRev]),this.returnState?this.mergeMode==null?output.concat(states):[output].concat(states):output})}resetStates(states){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(inputShape){nameScope(this.forwardLayer.name,()=>{this.forwardLayer.build(inputShape)}),nameScope(this.backwardLayer.name,()=>{this.backwardLayer.build(inputShape)}),this.built=!0}computeMask(inputs,mask){Array.isArray(mask)&&(mask=mask[0]);let outputMask;if(this.returnSequences?this.mergeMode==null?outputMask=[mask,mask]:outputMask=mask:this.mergeMode==null?outputMask=[null,null]:outputMask=null,this.returnState){let stateMask=this.forwardLayer.states.map(state=>null);return Array.isArray(outputMask)?outputMask.concat(stateMask).concat(stateMask):[outputMask].concat(stateMask).concat(stateMask)}else return outputMask}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(value),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(value)}getConfig(){let config3={mergeMode:this.mergeMode},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}static fromConfig(cls,config3){let rnnLayer=deserialize(config3.layer);if(delete config3.layer,config3.numConstants!=null)throw new NotImplementedError("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let newConfig=config3;return newConfig.layer=rnnLayer,new cls(newConfig)}};Bidirectional.className="Bidirectional";serialization_exports.registerClass(Bidirectional);function inputLayer(args){return new InputLayer(args)}function elu5(args){return new ELU4(args)}function reLU(args){return new ReLU(args)}function leakyReLU(args){return new LeakyReLU(args)}function prelu5(args){return new PReLU(args)}function softmax5(args){return new Softmax3(args)}function thresholdedReLU(args){return new ThresholdedReLU(args)}function conv1d2(args){return new Conv1D(args)}function conv2d5(args){return new Conv2D2(args)}function conv2dTranspose2(args){return new Conv2DTranspose(args)}function conv3d2(args){return new Conv3D2(args)}function separableConv2d2(args){return new SeparableConv2D(args)}function cropping2D(args){return new Cropping2D(args)}function upSampling2d(args){return new UpSampling2D(args)}function depthwiseConv2d5(args){return new DepthwiseConv2D(args)}function activation(args){return new Activation2(args)}function dense(args){return new Dense(args)}function dropout3(args){return new Dropout(args)}function spatialDropout1d(args){return new SpatialDropout1D(args)}function flatten3(args){return new Flatten(args)}function repeatVector(args){return new RepeatVector(args)}function reshape5(args){return new Reshape2(args)}function permute(args){return new Permute(args)}function embedding(args){return new Embedding(args)}function add4(args){return new Add2(args)}function average(args){return new Average(args)}function concatenate2(args){return new Concatenate(args)}function maximum4(args){return new Maximum2(args)}function minimum4(args){return new Minimum2(args)}function multiply3(args){return new Multiply2(args)}function dot3(args){return new Dot(args)}function batchNormalization2(args){return new BatchNormalization(args)}function layerNormalization(args){return new LayerNormalization(args)}function zeroPadding2d(args){return new ZeroPadding2D(args)}function averagePooling1d(args){return new AveragePooling1D(args)}function avgPool1d(args){return averagePooling1d(args)}function avgPooling1d(args){return averagePooling1d(args)}function averagePooling2d(args){return new AveragePooling2D(args)}function avgPool2d(args){return averagePooling2d(args)}function avgPooling2d(args){return averagePooling2d(args)}function averagePooling3d(args){return new AveragePooling3D(args)}function avgPool3d2(args){return averagePooling3d(args)}function avgPooling3d(args){return averagePooling3d(args)}function globalAveragePooling1d(args){return new GlobalAveragePooling1D(args)}function globalAveragePooling2d(args){return new GlobalAveragePooling2D(args)}function globalMaxPooling1d(args){return new GlobalMaxPooling1D(args)}function globalMaxPooling2d(args){return new GlobalMaxPooling2D(args)}function maxPooling1d(args){return new MaxPooling1D(args)}function maxPooling2d(args){return new MaxPooling2D(args)}function maxPooling3d(args){return new MaxPooling3D(args)}function gru(args){return new GRU(args)}function gruCell(args){return new GRUCell(args)}function lstm(args){return new LSTM(args)}function lstmCell(args){return new LSTMCell(args)}function simpleRNN(args){return new SimpleRNN(args)}function simpleRNNCell(args){return new SimpleRNNCell(args)}function convLstm2d(args){return new ConvLSTM2D(args)}function convLstm2dCell(args){return new ConvLSTM2DCell(args)}function rnn2(args){return new RNN(args)}function stackedRNNCells(args){return new StackedRNNCells(args)}function bidirectional(args){return new Bidirectional(args)}function timeDistributed(args){return new TimeDistributed(args)}var globalMaxPool1d=globalMaxPooling1d,globalMaxPool2d=globalMaxPooling2d,maxPool1d=maxPooling1d,maxPool2d=maxPooling2d;function gaussianNoise(args){return new GaussianNoise(args)}function gaussianDropout(args){return new GaussianDropout(args)}function alphaDropout(args){return new AlphaDropout(args)}function masking(args){return new Masking(args)}var exports_metrics_exports={};__export2(exports_metrics_exports,{MAPE:()=>MAPE2,MSE:()=>MSE2,binaryAccuracy:()=>binaryAccuracy2,binaryCrossentropy:()=>binaryCrossentropy3,categoricalAccuracy:()=>categoricalAccuracy2,categoricalCrossentropy:()=>categoricalCrossentropy3,cosineProximity:()=>cosineProximity2,mape:()=>mape2,meanAbsoluteError:()=>meanAbsoluteError2,meanAbsolutePercentageError:()=>meanAbsolutePercentageError2,meanSquaredError:()=>meanSquaredError3,mse:()=>mse2,precision:()=>precision2,recall:()=>recall2,sparseCategoricalAccuracy:()=>sparseCategoricalAccuracy2});function binaryAccuracy2(yTrue,yPred){return binaryAccuracy(yTrue,yPred)}function binaryCrossentropy3(yTrue,yPred){return binaryCrossentropy2(yTrue,yPred)}function sparseCategoricalAccuracy2(yTrue,yPred){return sparseCategoricalAccuracy(yTrue,yPred)}function categoricalAccuracy2(yTrue,yPred){return categoricalAccuracy(yTrue,yPred)}function categoricalCrossentropy3(yTrue,yPred){return categoricalCrossentropy2(yTrue,yPred)}function precision2(yTrue,yPred){return precision(yTrue,yPred)}function recall2(yTrue,yPred){return recall(yTrue,yPred)}function cosineProximity2(yTrue,yPred){return cosineProximity(yTrue,yPred)}function meanAbsoluteError2(yTrue,yPred){return meanAbsoluteError(yTrue,yPred)}function meanAbsolutePercentageError2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function MAPE2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function mape2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function meanSquaredError3(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function MSE2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function mse2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}var exports_models_exports={};__export2(exports_models_exports,{modelFromJSON:()=>modelFromJSON});var exports_regularizers_exports={};__export2(exports_regularizers_exports,{l1:()=>l12,l1l2:()=>l1l2,l2:()=>l22});function l1l2(config3){return new L1L2(config3)}function l12(config3){return l1(config3)}function l22(config3){return l2(config3)}var Callback=class extends BaseCallback{constructor(){super(...arguments);this.model=null}setModel(model2){if(!(model2 instanceof LayersModel))throw new Error("model must be a LayersModel, not some other Container");this.model=model2}};function less4(currVal,prevVal){return currValprevVal}var EarlyStopping=class extends Callback{constructor(args){super();if(args==null&&(args={}),args.restoreBestWeights)throw new NotImplementedError("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=args.monitor||"val_loss",this.minDelta=Math.abs(args.minDelta||0),this.patience=args.patience||0,this.verbose=args.verbose||0,this.mode=args.mode||"auto",this.baseline=args.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=less4:this.mode==="max"?this.monitorFunc=greater4:this.monitor.indexOf("acc")!==-1?this.monitorFunc=greater4:this.monitorFunc=less4,this.monitorFunc===less4&&(this.minDelta*=-1)}async onTrainBegin(logs){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===less4?Infinity:-Infinity}async onEpochEnd(epoch,logs){await resolveScalarsInLogs(logs);let current=this.getMonitorValue(logs);current!=null&&(this.monitorFunc(current-this.minDelta,this.best)?(this.best=current,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=epoch,this.model.stopTraining=!0)))}async onTrainEnd(logs){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(logs){logs==null&&(logs={});let monitorValue=logs[this.monitor];return monitorValue==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(logs)}`),monitorValue}};function earlyStopping(args){return new EarlyStopping(args)}var callbacks={earlyStopping},DataType;(function(DataType2){DataType2[DataType2.DT_INVALID=0]="DT_INVALID",DataType2[DataType2.DT_FLOAT=1]="DT_FLOAT",DataType2[DataType2.DT_DOUBLE=2]="DT_DOUBLE",DataType2[DataType2.DT_INT32=3]="DT_INT32",DataType2[DataType2.DT_UINT8=4]="DT_UINT8",DataType2[DataType2.DT_INT16=5]="DT_INT16",DataType2[DataType2.DT_INT8=6]="DT_INT8",DataType2[DataType2.DT_STRING=7]="DT_STRING",DataType2[DataType2.DT_COMPLEX64=8]="DT_COMPLEX64",DataType2[DataType2.DT_INT64=9]="DT_INT64",DataType2[DataType2.DT_BOOL=10]="DT_BOOL",DataType2[DataType2.DT_QINT8=11]="DT_QINT8",DataType2[DataType2.DT_QUINT8=12]="DT_QUINT8",DataType2[DataType2.DT_QINT32=13]="DT_QINT32",DataType2[DataType2.DT_BFLOAT16=14]="DT_BFLOAT16",DataType2[DataType2.DT_FLOAT_REF=101]="DT_FLOAT_REF",DataType2[DataType2.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",DataType2[DataType2.DT_INT32_REF=103]="DT_INT32_REF",DataType2[DataType2.DT_UINT8_REF=104]="DT_UINT8_REF",DataType2[DataType2.DT_INT16_REF=105]="DT_INT16_REF",DataType2[DataType2.DT_INT8_REF=106]="DT_INT8_REF",DataType2[DataType2.DT_STRING_REF=107]="DT_STRING_REF",DataType2[DataType2.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",DataType2[DataType2.DT_INT64_REF=109]="DT_INT64_REF",DataType2[DataType2.DT_BOOL_REF=110]="DT_BOOL_REF",DataType2[DataType2.DT_QINT8_REF=111]="DT_QINT8_REF",DataType2[DataType2.DT_QUINT8_REF=112]="DT_QUINT8_REF",DataType2[DataType2.DT_QINT32_REF=113]="DT_QINT32_REF",DataType2[DataType2.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(DataType||(DataType={}));var SaverDef;(function(SaverDef2){let CheckpointFormatVersion;(function(CheckpointFormatVersion2){CheckpointFormatVersion2[CheckpointFormatVersion2.LEGACY=0]="LEGACY",CheckpointFormatVersion2[CheckpointFormatVersion2.V1=1]="V1",CheckpointFormatVersion2[CheckpointFormatVersion2.V2=2]="V2"})(CheckpointFormatVersion=SaverDef2.CheckpointFormatVersion||(SaverDef2.CheckpointFormatVersion={}))})(SaverDef||(SaverDef={}));var CUSTOM_OPS={};function registerOp(name,opFunc){let opMapper={tfOpName:name,category:"custom",inputs:[],attrs:[],customExecutor:opFunc};CUSTOM_OPS[name]=opMapper}function getRegisteredOp(name){return CUSTOM_OPS[name]}function deregisterOp(name){delete CUSTOM_OPS[name]}function getParamValue(paramName,node,tensorMap,context,resourceManager){let inputParam=node.inputParams[paramName];if(inputParam&&inputParam.inputIndexStart!==void 0){let start=inputParam.inputIndexStart,end=inputParam.inputIndexEnd===0?void 0:inputParam.inputIndexEnd===void 0?start+1:inputParam.inputIndexEnd;if(inputParam.type==="tensor")return getTensor(node.inputNames[inputParam.inputIndexStart],tensorMap,context,resourceManager);if(inputParam.type==="tensors")return node.inputNames.slice(start,end).map(name=>getTensor(name,tensorMap,context,resourceManager));let tensor2=getTensor(node.inputNames.slice(start)[0],tensorMap,context,resourceManager),data2=tensor2.dataSync();return inputParam.type==="number"?data2[0]:util_exports.toNestedArray(tensor2.shape,data2)}let attrParam=node.attrParams[paramName];return attrParam&&attrParam.value}function getTensor(name,tensorsMap,context,resourceManager){let[nodeName,index]=parseNodeName(name);if(resourceManager!=null){let tensor2=resourceManager.getHashTableHandleByName(nodeName);if(tensor2!=null)return tensor2}let contextId=context.currentContextIds.find(contextId2=>!!tensorsMap[getNodeNameWithContextId(nodeName,contextId2)]);return contextId!==void 0?tensorsMap[getNodeNameWithContextId(nodeName,contextId)][index]:void 0}function getTensorsForCurrentContenxt(name,tensorsMap,context){return tensorsMap[getNodeNameWithContextId(name,context.currentContextId)]}function getNodeNameAndIndex(inputName,context){let[nodeName,index]=parseNodeName(inputName);return[getNodeNameWithContextId(nodeName,context&&context.currentContextId),index]}function getNodeNameWithContextId(name,contextId){return contextId?`${name}-${contextId}`:name}function parseNodeName(name){let parts=name.split(":");return parts.length===1?[name,0]:[parts[0],Number(parts[parts.length-1])]}function getPadding(node,tensorMap,context){let pad3=getParamValue("pad",node,tensorMap,context);if(pad3==="explicit"){pad3=getParamValue("explicitPaddings",node,tensorMap,context);let explicitPadding=[[0,0],[0,0],[0,0],[0,0]];for(let i=0;i<4;i++)explicitPadding[i][0]=pad3[i*2],explicitPadding[i][1]=pad3[i*2+1];return explicitPadding}return pad3}function cloneTensor(tensor2){return tensor2.kept?tensor2:clone(tensor2)}var arithmetic_exports={};__export2(arithmetic_exports,{json:()=>json});var json=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],basic_math_exports={};__export2(basic_math_exports,{json:()=>json2});var json2=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],control_exports={};__export2(control_exports,{json:()=>json3});var json3=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],convolution_exports={};__export2(convolution_exports,{json:()=>json4});var json4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],creation_exports={};__export2(creation_exports,{json:()=>json5});var json5=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],dynamic_exports={};__export2(dynamic_exports,{json:()=>json6});var json6=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],evaluation_exports={};__export2(evaluation_exports,{json:()=>json7});var json7=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],graph_exports={};__export2(graph_exports,{json:()=>json8});var json8=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],hash_table_exports={};__export2(hash_table_exports,{json:()=>json9});var json9=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],image_exports={};__export2(image_exports,{json:()=>json10});var json10=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],logical_exports={};__export2(logical_exports,{json:()=>json11});var json11=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],matrices_exports={};__export2(matrices_exports,{json:()=>json12});var json12=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],normalization_exports={};__export2(normalization_exports,{json:()=>json13});var json13=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],reduction_exports={};__export2(reduction_exports,{json:()=>json14});var json14=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],slice_join_exports={};__export2(slice_join_exports,{json:()=>json15});var json15=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],spectral_exports={};__export2(spectral_exports,{json:()=>json16});var json16=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],transformation_exports={};__export2(transformation_exports,{json:()=>json17});var json17=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],OperationMapper=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let ops=[arithmetic_exports,basic_math_exports,control_exports,convolution_exports,creation_exports,dynamic_exports,evaluation_exports,logical_exports,image_exports,graph_exports,matrices_exports,normalization_exports,reduction_exports,slice_join_exports,spectral_exports,transformation_exports,hash_table_exports],mappersJson=[].concat(...ops.map(op2=>op2.json));this.opMappers=mappersJson.reduce((map,mapper)=>(map[mapper.tfOpName]=mapper,map),{})}transformGraph(graph2,signature={}){let tfNodes=graph2.node,placeholders=[],weights=[],initNodes=[],nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op.startsWith("Placeholder")?placeholders.push(map[node.name]):node.op==="Const"?weights.push(map[node.name]):(node.input==null||node.input.length===0)&&initNodes.push(map[node.name]),map),{}),inputs=[],outputs=[],inputNodeNameToKey={},outputNodeNameToKey={};signature!=null&&(inputNodeNameToKey=this.mapSignatureEntries(signature.inputs),outputNodeNameToKey=this.mapSignatureEntries(signature.outputs));let allNodes=Object.keys(nodes);allNodes.forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})}),Object.keys(outputNodeNameToKey).length===0?allNodes.forEach(key=>{let node=nodes[key];node.children.length===0&&outputs.push(node)}):Object.keys(outputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node!=null&&(node.signatureKey=outputNodeNameToKey[name],outputs.push(node))}),Object.keys(inputNodeNameToKey).length>0?Object.keys(inputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node&&(node.signatureKey=inputNodeNameToKey[name],inputs.push(node))}):inputs=placeholders;let functions={};graph2.library!=null&&graph2.library.function!=null&&(functions=graph2.library.function.reduce((functions2,func2)=>(functions2[func2.signature.name]=this.mapFunction(func2),functions2),{}));let result={nodes,inputs,outputs,weights,placeholders,signature,functions};return initNodes.length>0&&(result.initNodes=initNodes),result}mapSignatureEntries(entries){return Object.keys(entries||{}).reduce((prev,curr)=>(prev[entries[curr].name]=curr,prev),{})}mapNode(node){let mapper=getRegisteredOp(node.op)||this.opMappers[node.op]||{};node.attr==null&&(node.attr={});let newNode={name:node.name,op:node.op,category:mapper.category,inputNames:(node.input||[]).map(input2=>input2.startsWith("^")?input2.substr(1):input2),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:node.attr};return mapper.inputs!=null&&(newNode.inputParams=mapper.inputs.reduce((map,param)=>(map[param.name]={type:param.type,inputIndexStart:param.start,inputIndexEnd:param.end},map),{})),mapper.attrs!=null&&(newNode.attrParams=mapper.attrs.reduce((map,param)=>{let type=param.type,value;switch(param.type){case"string":value=getStringParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"string[]":value=getStringArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number":value=getNumberParam(node.attr,param.tfName,param.defaultValue||0),value===void 0&&!!param.tfDeprecatedName&&(value=getNumberParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number[]":value=getNumericArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getNumericArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool":value=getBoolParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool[]":value=getBoolArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape":value=getTensorShapeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape[]":value=getTensorShapeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype":value=getDtypeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype[]":value=getDtypeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"func":value=getFuncParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getFuncParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${param.type} for op: ${node.op}`)}return map[param.name]={value,type},map},{})),newNode}mapFunction(functionDef){let tfNodes=functionDef.nodeDef,placeholders=[],weights=[],nodes={};tfNodes!=null&&(nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op==="Const"&&weights.push(map[node.name]),map),{}));let inputs=[],outputs=[];functionDef.signature.inputArg.forEach(arg=>{let[nodeName]=getNodeNameAndIndex(arg.name),node={name:nodeName,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:parseDtypeParam(arg.type),type:"dtype"}},children:[]};node.signatureKey=arg.name,inputs.push(node),nodes[nodeName]=node}),Object.keys(nodes).forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})});let returnNodeMap=functionDef.ret;functionDef.signature.outputArg.forEach(output=>{let[nodeName,index]=getNodeNameAndIndex(returnNodeMap[output.name]),node=nodes[nodeName];node!=null&&(node.defaultOutput=index,outputs.push(node))});let signature=this.mapArgsToSignature(functionDef);return{nodes,inputs,outputs,weights,placeholders,signature}}mapArgsToSignature(functionDef){return{methodName:functionDef.signature.name,inputs:functionDef.signature.inputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg),map),{}),outputs:functionDef.signature.outputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg,functionDef.ret),map),{})}}mapArgToTensorInfo(arg,nameMap2){let name=arg.name;return nameMap2!=null&&(name=nameMap2[name]),{name,dtype:arg.type}}};function decodeBase64(text){let global2=env().global;if(typeof global2.atob!="undefined")return global2.atob(text);if(typeof Buffer!="undefined")return new Buffer(text,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function parseStringParam(s,keepCase){let value=Array.isArray(s)?String.fromCharCode.apply(null,s):decodeBase64(s);return keepCase?value:value.toLowerCase()}function getStringParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param!=null?parseStringParam(param.s,keepCase):def}function getBoolParam(attrs,name,def){let param=attrs[name];return param?param.b:def}function getNumberParam(attrs,name,def){let param=attrs[name]||{},value=param.i!=null?param.i:param.f!=null?param.f:def;return typeof value=="number"?value:parseInt(value,10)}function parseDtypeParam(value){switch(typeof value=="string"&&(value=DataType[value]),value){case DataType.DT_FLOAT:return"float32";case DataType.DT_INT32:case DataType.DT_INT64:case DataType.DT_INT8:case DataType.DT_UINT8:return"int32";case DataType.DT_BOOL:return"bool";case DataType.DT_DOUBLE:return"float32";case DataType.DT_STRING:return"string";default:return null}}function getFuncParam(attrs,name,def){let param=attrs[name];return param&¶m.func?param.func.name:def}function getDtypeParam(attrs,name,def){let param=attrs[name];return param&¶m.type?parseDtypeParam(param.type):def}function getDtypeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.type?param.list.type.map(v=>parseDtypeParam(v)):def}function parseTensorShapeParam(shape){if(!shape.unknownRank)return shape.dim!=null?shape.dim.map(dim=>typeof dim.size=="number"?dim.size:parseInt(dim.size,10)):[]}function getTensorShapeParam(attrs,name,def){let param=attrs[name];return param&¶m.shape?parseTensorShapeParam(param.shape):def}function getNumericArrayParam(attrs,name,def){let param=attrs[name];return param?((param.list.f&¶m.list.f.length?param.list.f:param.list.i)||[]).map(v=>typeof v=="number"?v:parseInt(v,10)):def}function getStringArrayParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param&¶m.list&¶m.list.s?param.list.s.map(v=>parseStringParam(v,keepCase)):def}function getTensorShapeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.shape?param.list.shape.map(v=>parseTensorShapeParam(v)):def}function getBoolArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.b?param.list.b:def}var NodeValueImpl=class{constructor(node,tensorMap,context){this.node=node,this.tensorMap=tensorMap,this.context=context,this.inputs=[],this.attrs={},this.inputs=node.inputNames.map(name=>this.getInput(name)),node.rawAttrs!=null&&(this.attrs=Object.keys(node.rawAttrs).reduce((attrs,key)=>(attrs[key]=this.getAttr(key),attrs),{}))}getInput(name){return getTensor(name,this.tensorMap,this.context)}getAttr(name,defaultValue){let value=this.node.rawAttrs[name];if(value.tensor!=null)return getTensor(name,this.tensorMap,this.context);if(value.i!=null||value.f!=null)return getNumberParam(this.node.rawAttrs,name,defaultValue);if(value.s!=null)return getStringParam(this.node.rawAttrs,name,defaultValue);if(value.b!=null)return getBoolParam(this.node.rawAttrs,name,defaultValue);if(value.shape!=null)return getTensorShapeParam(this.node.rawAttrs,name,defaultValue);if(value.type!=null)return getDtypeParam(this.node.rawAttrs,name,defaultValue);if(value.list!=null){if(value.list.i!=null||value.list.f!=null)return getNumericArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.s!=null)return getStringArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.shape!=null)return getTensorShapeArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.b!=null)return getBoolArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.type!=null)return getDtypeArrayParam(this.node.rawAttrs,name,defaultValue)}return defaultValue}},executeOp=(node,tensorMap,context)=>{switch(node.op){case"BiasAdd":case"AddV2":case"Add":return[add2(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"AddN":return[addN(getParamValue("tensors",node,tensorMap,context))];case"FloorMod":case"Mod":return[mod(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Mul":return[mul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"RealDiv":case"Div":return[div(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"DivNoNan":return[divNoNan(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"FloorDiv":return[floorDiv(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Sub":return[sub(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Minimum":return[minimum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Maximum":return[maximum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Pow":return[pow(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"SquaredDifference":return[squaredDifference(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp2=(node,tensorMap,context)=>{switch(node.op){case"Abs":case"ComplexAbs":return[abs(getParamValue("x",node,tensorMap,context))];case"Acos":return[acos(getParamValue("x",node,tensorMap,context))];case"Acosh":return[acosh(getParamValue("x",node,tensorMap,context))];case"Asin":return[asin(getParamValue("x",node,tensorMap,context))];case"Asinh":return[asinh(getParamValue("x",node,tensorMap,context))];case"Atan":return[atan(getParamValue("x",node,tensorMap,context))];case"Atan2":return[atan2(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context))];case"Atanh":return[atanh(getParamValue("x",node,tensorMap,context))];case"Ceil":return[ceil(getParamValue("x",node,tensorMap,context))];case"Complex":return[complex(getParamValue("real",node,tensorMap,context),getParamValue("imag",node,tensorMap,context))];case"Cos":return[cos(getParamValue("x",node,tensorMap,context))];case"Cosh":return[cosh(getParamValue("x",node,tensorMap,context))];case"Elu":return[elu(getParamValue("x",node,tensorMap,context))];case"Erf":return[erf(getParamValue("x",node,tensorMap,context))];case"Exp":return[exp(getParamValue("x",node,tensorMap,context))];case"Expm1":return[expm1(getParamValue("x",node,tensorMap,context))];case"Floor":return[floor(getParamValue("x",node,tensorMap,context))];case"Log":return[log2(getParamValue("x",node,tensorMap,context))];case"Log1p":return[log1p(getParamValue("x",node,tensorMap,context))];case"Imag":return[imag(getParamValue("x",node,tensorMap,context))];case"Neg":return[neg(getParamValue("x",node,tensorMap,context))];case"Reciprocal":return[reciprocal(getParamValue("x",node,tensorMap,context))];case"Real":return[real(getParamValue("x",node,tensorMap,context))];case"Relu":return[relu(getParamValue("x",node,tensorMap,context))];case"Round":return[round2(getParamValue("x",node,tensorMap,context))];case"Selu":return[selu(getParamValue("x",node,tensorMap,context))];case"Sigmoid":return[sigmoid(getParamValue("x",node,tensorMap,context))];case"Sin":return[sin(getParamValue("x",node,tensorMap,context))];case"Sign":return[sign(getParamValue("x",node,tensorMap,context))];case"Sinh":return[sinh(getParamValue("x",node,tensorMap,context))];case"Softplus":return[softplus(getParamValue("x",node,tensorMap,context))];case"Sqrt":return[sqrt(getParamValue("x",node,tensorMap,context))];case"Square":return[square(getParamValue("x",node,tensorMap,context))];case"Tanh":return[tanh2(getParamValue("x",node,tensorMap,context))];case"Tan":return[tan(getParamValue("x",node,tensorMap,context))];case"ClipByValue":return[clipByValue(getParamValue("x",node,tensorMap,context),getParamValue("clipValueMin",node,tensorMap,context),getParamValue("clipValueMax",node,tensorMap,context))];case"Relu6":return[relu6(getParamValue("x",node,tensorMap,context))];case"Rsqrt":return[rsqrt(getTensor(node.inputNames[0],tensorMap,context))];case"Prod":return[prod(getParamValue("x",node,tensorMap,context),getParamValue("axes",node,tensorMap,context))];case"LeakyRelu":return[leakyRelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];case"Prelu":return[prelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function assertShapesMatchAllowUndefinedSize(shapeA,shapeB,errorMessagePrefix=""){util_exports.assert(shapesEqualAllowUndefinedSize(shapeA,shapeB),()=>errorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function shapesEqualAllowUndefinedSize(n1,n2){if(n1.length!==n2.length)return!1;for(let i=0;i{(keepIds==null||!keepIds.has(tensor2.tensor.id))&&tensor2.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(index){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||index>=this.size())throw new Error(`Tried to read from index ${index}, but array size is: ${this.size()}`);let tensorWithState=this.tensors[index];if(tensorWithState.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${index} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(tensorWithState.cleared=!0),tensorWithState.read=!0,tensorWithState.tensor}readMany(indices){return indices.map(index=>this.read(index))}write(index,tensor2){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||!this.dynamicSize&&index>=this.maxSize)throw new Error(`Tried to write to index ${index}, but array is not resizeable and size is: ${this.maxSize}`);let t=this.tensors[index]||{};if(tensor2.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, +2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(fromConfig!=null){let customObjectsCombined={};for(let key of Object.keys(_GLOBAL_CUSTOM_OBJECTS))customObjectsCombined[key]=_GLOBAL_CUSTOM_OBJECTS[key];for(let key of Object.keys(customObjects))customObjectsCombined[key]=customObjects[key];let nestedConfig=config2.config;nestedConfig.customObjects=customObjectsCombined;let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];convertNDArrayScalarsInConfig(config2.config);let returnObj=fromConfig(cls,config2.config,customObjects,fastWeightInit);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}else{let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];let returnObj=new cls(config2.config);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}}}function numberCompare(a,b){return ab?1:0}function reverseNumberCompare(a,b){return-1*numberCompare(a,b)}function unique4(xs){if(xs==null)return xs;let out=[];for(let x of xs)out.indexOf(x)===-1&&out.push(x);return out}function isObjectEmpty(obj){if(obj==null)throw new ValueError(`Invalid value in obj: ${JSON.stringify(obj)}`);for(let key in obj)if(obj.hasOwnProperty(key))return!1;return!0}function checkStringTypeUnionValue(values,label,value){if(value!=null&&values.indexOf(value)<0)throw new ValueError(`${value} is not a valid ${label}. Valid values are ${values} or null/undefined.`)}function checkArrayTypeAndLength(x,expectedType,minLength=0,maxLength=Infinity){return assert2(minLength>=0),assert2(maxLength>=minLength),Array.isArray(x)&&x.length>=minLength&&x.length<=maxLength&&x.every(e=>typeof e===expectedType)}function assertPositiveInteger(value,name){Array.isArray(value)?(util_exports.assert(value.length>0,()=>`${name} is unexpectedly an empty array.`),value.forEach((v,i)=>assertPositiveInteger(v,`element ${i+1} of ${name}`))):util_exports.assert(Number.isInteger(value)&&value>0,()=>`Expected ${name} to be a positive integer, but got ${formatAsFriendlyString(value)}.`)}function formatAsFriendlyString(value){return value===null?"null":Array.isArray(value)?"["+value.map(v=>formatAsFriendlyString(v)).join(",")+"]":typeof value=="string"?`"${value}"`:`${value}`}function debounce(f,waitMs){let lastTime=util_exports.now(),lastResult;return(...args)=>{let now22=util_exports.now();return now22-lastTimesqrt(sum2(mul(w,w),axis,!0)))}var Constraint=class extends serialization_exports.Serializable{getConfig(){return{}}},MaxNorm=class extends Constraint{constructor(args){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=clipByValue(norms,0,this.maxValue);return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};MaxNorm.className="MaxNorm";serialization_exports.registerClass(MaxNorm);var UnitNorm=class extends Constraint{constructor(args){super();this.defaultAxis=0,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>div(w,add2(epsilon2(),calcL2Norms(w,this.axis))))}getConfig(){return{axis:this.axis}}};UnitNorm.className="UnitNorm";serialization_exports.registerClass(UnitNorm);var NonNeg=class extends Constraint{apply(w){return relu(w)}};NonNeg.className="NonNeg";serialization_exports.registerClass(NonNeg);var MinMaxNorm=class extends Constraint{constructor(args){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=args.minValue!=null?args.minValue:this.defaultMinValue,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.rate=args.rate!=null?args.rate:this.defaultRate,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=add2(mul(this.rate,clipByValue(norms,this.minValue,this.maxValue)),mul(1-this.rate,norms));return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};MinMaxNorm.className="MinMaxNorm";serialization_exports.registerClass(MinMaxNorm);var CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function serializeConstraint(constraint){return serializeKerasObject(constraint)}function deserializeConstraint(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"constraint")}function getConstraint(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config2={className:identifier in CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP?CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeConstraint(config2)}else return identifier instanceof Constraint?identifier:deserializeConstraint(identifier)}function maxNorm(args){return new MaxNorm(args)}function unitNorm(args){return new UnitNorm(args)}function nonNeg(){return new NonNeg}function minMaxNorm(config2){return new MinMaxNorm(config2)}var exports_initializers_exports={};__export2(exports_initializers_exports,{constant:()=>constant,glorotNormal:()=>glorotNormal,glorotUniform:()=>glorotUniform,heNormal:()=>heNormal,heUniform:()=>heUniform,identity:()=>identity4,leCunNormal:()=>leCunNormal,leCunUniform:()=>leCunUniform,ones:()=>ones3,orthogonal:()=>orthogonal,randomNormal:()=>randomNormal3,randomUniform:()=>randomUniform2,truncatedNormal:()=>truncatedNormal2,varianceScaling:()=>varianceScaling,zeros:()=>zeros3});var VALID_DATA_FORMAT_VALUES=["channelsFirst","channelsLast"],VALID_INTERPOLATION_FORMAT_VALUES=["nearest","bilinear"],VALID_PADDING_MODE_VALUES=["valid","same","causal"],VALID_POOL_MODE_VALUES=["max","avg"],VALID_BIDIRECTIONAL_MERGE_MODES=["sum","mul","concat","ave"],nameMap=new Map;function checkDataFormat(value){checkStringTypeUnionValue(VALID_DATA_FORMAT_VALUES,"DataFormat",value)}function checkInterpolationFormat(value){checkStringTypeUnionValue(VALID_INTERPOLATION_FORMAT_VALUES,"InterpolationFormat",value)}function checkPaddingMode(value){checkStringTypeUnionValue(VALID_PADDING_MODE_VALUES,"PaddingMode",value)}function checkPoolMode(value){checkStringTypeUnionValue(VALID_POOL_MODE_VALUES,"PoolMode",value)}var _nameScopeStack=[],_nameScopeDivider="/";function nameScope(name,fn){_nameScopeStack.push(name);try{let val=fn();return _nameScopeStack.pop(),val}catch(e){throw _nameScopeStack.pop(),e}}function currentNameScopePrefix(){return _nameScopeStack.length===0?"":_nameScopeStack.join(_nameScopeDivider)+_nameScopeDivider}function getScopedTensorName(tensorName){if(!isValidTensorName(tensorName))throw new Error("Not a valid tensor name: '"+tensorName+"'");return currentNameScopePrefix()+tensorName}function getUniqueTensorName(scopedName){if(!isValidTensorName(scopedName))throw new Error("Not a valid tensor name: '"+scopedName+"'");nameMap.has(scopedName)||nameMap.set(scopedName,0);let index=nameMap.get(scopedName);if(nameMap.set(scopedName,nameMap.get(scopedName)+1),index>0){let result=`${scopedName}_${index}`;return nameMap.set(result,1),result}else return scopedName}var tensorNameRegex=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function isValidTensorName(name){return!!name.match(tensorNameRegex)}function isInteger(x){return x===parseInt(x.toString(),10)}function arrayProd(array2,begin,end){begin==null&&(begin=0),end==null&&(end=array2.length);let prod5=1;for(let i=begin;i{if(x.shape.length!==2)throw new ValueError(`repeat() expects a rank-2 tensor, but received a rank-${x.shape.length} tensor.`);let y=expandDims5(x,1);return tile5(y,[1,n,1])})}function flatten2(x){let newShape=[arrayProd(x.shape)];return x.reshape(newShape)}function batchFlatten(x){if(x.rank<=1)throw new ValueError(`batchFlatten requires a minimum rank of 2. Got rank: ${x.rank}.`);let newShape=[x.shape[0],arrayProd(x.shape,1)];return x.reshape(newShape)}function sliceAlongFirstAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[start,0],[size,array2.shape[1]]);case 3:return slice3d(array2,[start,0,0],[size,array2.shape[1],array2.shape[2]]);case 4:return slice4d(array2,[start,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3]]);case 5:return slice(array2,[start,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4]]);case 6:return slice(array2,[start,0,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4],array2.shape[5]]);default:throw new ValueError(`sliceAlongFirstAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongLastAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[0,start],[array2.shape[0],size]);case 3:return slice3d(array2,[0,0,start],[array2.shape[0],array2.shape[1],size]);case 4:return slice4d(array2,[0,0,0,start],[array2.shape[0],array2.shape[1],array2.shape[2],size]);default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongAxis(array2,start,size,axis){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 3:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice3d(array2,[0,start,0],[array2.shape[0],size,array2.shape[2]]);case 3:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 4:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice4d(array2,[0,start,0,0],[array2.shape[0],size,array2.shape[2],array2.shape[3]]);case 3:return slice4d(array2,[0,0,start,0],[array2.shape[0],array2.shape[1],size,array2.shape[3]]);case 4:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function concatenate(tensors,axis=-1){let rank;return axis<0&&(rank=tensors[0].rank,rank!==0?axis=rank:axis=0),axis===tensors[0].rank&&(axis=-1),concat(tensors,axis)}function concatAlongFirstAxis(a,b){switch(a.rank){case 1:return concat1d([a,b]);case 2:return concat2d([a,b],0);case 3:return concat3d([a,b],0);case 4:return concat4d([a,b],0);default:throw new ValueError(`concatAlongFirstAxis() received an unsupported tensor rank: ${a.rank}`)}}function tile5(x,n){if(Array.isArray(n)||(n=[n]),x.rank!==n.length)throw new ValueError(`The length of input n (${n.length}) does not match the number of dimensions in input x (${x.rank})`);return tile(x,n)}function randomNormal2(shape,mean4=0,stddev=1,dtype,seed){return randomNormal(shape,mean4,stddev,dtype,seed)}function dot2(a,b,activation2,bias){if(a.rank<2||b.rank<2)throw new NotImplementedError(`dot requires both inputs to be rank >= 2 but got x shape = ${a.shape} and y shape = ${b.shape}`);if(b.rank>=3){let xLastDim=a.shape.slice(-1)[0],ySecondLastDim=b.shape.slice(-2)[0];if(xLastDim!==ySecondLastDim)throw new NotImplementedError(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${a.shape} and y shape = ${b.shape}`)}if(a.rank===2&&b.rank===2){let transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2})}else{let aFirstDims=a.shape.slice(),aLastDim=aFirstDims.pop();a=a.reshape([-1,aLastDim]);let bShape=b.shape.slice(),bLastDim=bShape.pop(),ySecondLastDim=bShape.pop(),yOtherDims=[...bShape,bLastDim],perm=Array.from({length:b.rank},(_,i)=>i===0?b.rank-2:i<=b.rank-2?i-1:i);b=b.transpose(perm).reshape([ySecondLastDim,-1]);let outputShape=[...aFirstDims,...yOtherDims],transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2}).reshape(outputShape)}}function gather2(reference,indices,axis){return tidy(()=>(Array.isArray(indices)?indices=tensor1d(indices,"int32"):indices=indices.toInt(),gather(reference,indices,axis)))}function square3(x){return mul(x,x)}function reshapeBias(xRank,bias,dataFormat){let biasShape=bias.shape;if(bias.rank!==1&&bias.rank!==xRank)throw new ValueError(`Unexpected bias dimensions: ${bias.rank}; expected it to be 1 or ${xRank}`);if(xRank===5){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1,1]):bias.reshape([1,biasShape[3],biasShape[0],biasShape[1],biasShape[2]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===4){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1]):bias.reshape([1,biasShape[2],biasShape[0],biasShape[1]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===3){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1]):bias.reshape([1,biasShape[1],biasShape[0]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank<3)return bias;throw new ValueError(`Unsupported input rank by biasAdd: ${bias.rank}`)}function biasAdd(x,bias,dataFormat){return tidy(()=>(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.add(reshapeBias(x.rank,bias,dataFormat))))}function elu4(x,alpha=1){if(alpha!==1)throw new NotImplementedError(`Support for alpha values other than 1 (${alpha}) is not implemented yet.`);return elu(x)}function softsign(x){return tidy(()=>div(x,abs(x).add(1)))}function dropout2(x,level,noiseShape,seed){return tidy(()=>dropout(x,level,noiseShape,seed))}function hardSigmoid(x){return tidy(()=>{let y=add2(.5,mul(.2,x));return clipByValue(y,0,1)})}function inTrainPhase(x,alt,training=!1){return training?x():alt()}var VALID_FAN_MODE_VALUES=["fanIn","fanOut","fanAvg"],VALID_DISTRIBUTION_VALUES=["normal","uniform","truncatedNormal"];function checkFanMode(value){checkStringTypeUnionValue(VALID_FAN_MODE_VALUES,"FanMode",value)}function checkDistribution(value){checkStringTypeUnionValue(VALID_DISTRIBUTION_VALUES,"Distribution",value)}var Initializer=class extends serialization_exports.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Zeros=class extends Initializer{apply(shape,dtype){return zeros(shape,dtype)}};Zeros.className="Zeros";serialization_exports.registerClass(Zeros);var Ones=class extends Initializer{apply(shape,dtype){return ones2(shape,dtype)}};Ones.className="Ones";serialization_exports.registerClass(Ones);var Constant=class extends Initializer{constructor(args){super();if(typeof args!="object")throw new ValueError(`Expected argument of type ConstantConfig but got ${args}`);if(args.value===void 0)throw new ValueError(`config must have value set but got ${args}`);this.value=args.value}apply(shape,dtype){return tidy(()=>mul(scalar(this.value),ones2(shape,dtype)))}getConfig(){return{value:this.value}}};Constant.className="Constant";serialization_exports.registerClass(Constant);var RandomUniform=class extends Initializer{constructor(args){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=args.minval||this.DEFAULT_MINVAL,this.maxval=args.maxval||this.DEFAULT_MAXVAL,this.seed=args.seed}apply(shape,dtype){return randomUniform(shape,this.minval,this.maxval,dtype)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};RandomUniform.className="RandomUniform";serialization_exports.registerClass(RandomUniform);var RandomNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`randomNormal does not support dType ${dtype}.`);return randomNormal2(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};RandomNormal.className="RandomNormal";serialization_exports.registerClass(RandomNormal);var TruncatedNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`truncatedNormal does not support dType ${dtype}.`);return truncatedNormal(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};TruncatedNormal.className="TruncatedNormal";serialization_exports.registerClass(TruncatedNormal);var Identity2=class extends Initializer{constructor(args){super();this.gain=args.gain!=null?args.gain:1}apply(shape,dtype){return tidy(()=>{if(shape.length!==2||shape[0]!==shape[1])throw new ValueError("Identity matrix initializer can only be used for 2D square matrices.");return mul(this.gain,eye(shape[0]))})}getConfig(){return{gain:this.gain}}};Identity2.className="Identity";serialization_exports.registerClass(Identity2);function computeFans(shape,dataFormat="channelsLast"){let fanIn,fanOut;if(checkDataFormat(dataFormat),shape.length===2)fanIn=shape[0],fanOut=shape[1];else if([3,4,5].indexOf(shape.length)!==-1){if(dataFormat==="channelsFirst"){let receptiveFieldSize=arrayProd(shape,2);fanIn=shape[1]*receptiveFieldSize,fanOut=shape[0]*receptiveFieldSize}else if(dataFormat==="channelsLast"){let receptiveFieldSize=arrayProd(shape,0,shape.length-2);fanIn=shape[shape.length-2]*receptiveFieldSize,fanOut=shape[shape.length-1]*receptiveFieldSize}}else{let shapeProd=arrayProd(shape);fanIn=Math.sqrt(shapeProd),fanOut=Math.sqrt(shapeProd)}return[fanIn,fanOut]}var VarianceScaling=class extends Initializer{constructor(args){super();if(args.scale<0)throw new ValueError(`scale must be a positive float. Got: ${args.scale}`);this.scale=args.scale==null?1:args.scale,this.mode=args.mode==null?"fanIn":args.mode,checkFanMode(this.mode),this.distribution=args.distribution==null?"normal":args.distribution,checkDistribution(this.distribution),this.seed=args.seed}apply(shape,dtype){let fans=computeFans(shape),fanIn=fans[0],fanOut=fans[1],scale2=this.scale;if(this.mode==="fanIn"?scale2/=Math.max(1,fanIn):this.mode==="fanOut"?scale2/=Math.max(1,fanOut):scale2/=Math.max(1,(fanIn+fanOut)/2),this.distribution==="normal"){let stddev=Math.sqrt(scale2);if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`${this.getClassName()} does not support dType ${dtype}.`);return truncatedNormal(shape,0,stddev,dtype,this.seed)}else{let limit=Math.sqrt(3*scale2);return randomUniform(shape,-limit,limit,dtype)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};VarianceScaling.className="VarianceScaling";serialization_exports.registerClass(VarianceScaling);var GlorotUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotUniform.className="GlorotUniform";serialization_exports.registerClass(GlorotUniform);var GlorotNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotNormal.className="GlorotNormal";serialization_exports.registerClass(GlorotNormal);var HeNormal=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeNormal.className="HeNormal";serialization_exports.registerClass(HeNormal);var HeUniform=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeUniform.className="HeUniform";serialization_exports.registerClass(HeUniform);var LeCunNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunNormal.className="LeCunNormal";serialization_exports.registerClass(LeCunNormal);var LeCunUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunUniform.className="LeCunNormal";serialization_exports.registerClass(LeCunUniform);var Orthogonal=class extends Initializer{constructor(args){super();if(this.DEFAULT_GAIN=1,this.gain=args.gain==null?this.DEFAULT_GAIN:args.gain,this.seed=args.seed,this.seed!=null)throw new NotImplementedError("Random seed is not implemented for Orthogonal Initializer yet.")}apply(shape,dtype){return tidy(()=>{if(shape.length<2)throw new NotImplementedError("Shape must be at least 2D.");shape[0]*shape[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${shape[0]*shape[1]}) elements: Slowness may result.`);let normalizedShape=shape[0]>shape[1]?[shape[1],shape[0]]:shape,a=randomNormal2(normalizedShape,0,1,"float32"),q=linalg.gramSchmidt(a);return shape[0]>shape[1]&&(q=q.transpose()),mul(this.gain,q)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Orthogonal.className="Orthogonal";serialization_exports.registerClass(Orthogonal);var INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function deserializeInitializer(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"initializer")}function serializeInitializer(initializer){return serializeKerasObject(initializer)}function getInitializer(identifier){if(typeof identifier=="string"){let className=identifier in INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier;if(className==="GlorotNormal")return new GlorotNormal;if(className==="GlorotUniform")return new GlorotUniform;if(className==="HeNormal")return new HeNormal;if(className==="HeUniform")return new HeUniform;if(className==="LeCunNormal")return new LeCunNormal;if(className==="LeCunUniform")return new LeCunUniform;{let config2={};return config2.className=className,config2.config={},deserializeInitializer(config2)}}else return identifier instanceof Initializer?identifier:deserializeInitializer(identifier)}function zeros3(){return new Zeros}function ones3(){return new Ones}function constant(args){return new Constant(args)}function randomUniform2(args){return new RandomUniform(args)}function randomNormal3(args){return new RandomNormal(args)}function truncatedNormal2(args){return new TruncatedNormal(args)}function identity4(args){return new Identity2(args)}function varianceScaling(config2){return new VarianceScaling(config2)}function glorotUniform(args){return new GlorotUniform(args)}function glorotNormal(args){return new GlorotNormal(args)}function heNormal(args){return new HeNormal(args)}function heUniform(args){return new HeUniform(args)}function leCunNormal(args){return new LeCunNormal(args)}function leCunUniform(args){return new LeCunUniform(args)}function orthogonal(args){return new Orthogonal(args)}var exports_layers_exports={};__export2(exports_layers_exports,{Layer:()=>Layer,RNN:()=>RNN,RNNCell:()=>RNNCell,activation:()=>activation,add:()=>add4,alphaDropout:()=>alphaDropout,average:()=>average,averagePooling1d:()=>averagePooling1d,averagePooling2d:()=>averagePooling2d,averagePooling3d:()=>averagePooling3d,avgPool1d:()=>avgPool1d,avgPool2d:()=>avgPool2d,avgPool3d:()=>avgPool3d2,avgPooling1d:()=>avgPooling1d,avgPooling2d:()=>avgPooling2d,avgPooling3d:()=>avgPooling3d,batchNormalization:()=>batchNormalization2,bidirectional:()=>bidirectional,concatenate:()=>concatenate2,conv1d:()=>conv1d2,conv2d:()=>conv2d5,conv2dTranspose:()=>conv2dTranspose2,conv3d:()=>conv3d2,convLstm2d:()=>convLstm2d,convLstm2dCell:()=>convLstm2dCell,cropping2D:()=>cropping2D,dense:()=>dense,depthwiseConv2d:()=>depthwiseConv2d5,dot:()=>dot3,dropout:()=>dropout3,elu:()=>elu5,embedding:()=>embedding,flatten:()=>flatten3,gaussianDropout:()=>gaussianDropout,gaussianNoise:()=>gaussianNoise,globalAveragePooling1d:()=>globalAveragePooling1d,globalAveragePooling2d:()=>globalAveragePooling2d,globalMaxPool1d:()=>globalMaxPool1d,globalMaxPool2d:()=>globalMaxPool2d,globalMaxPooling1d:()=>globalMaxPooling1d,globalMaxPooling2d:()=>globalMaxPooling2d,gru:()=>gru,gruCell:()=>gruCell,input:()=>input,inputLayer:()=>inputLayer,layerNormalization:()=>layerNormalization,leakyReLU:()=>leakyReLU,lstm:()=>lstm,lstmCell:()=>lstmCell,masking:()=>masking,maxPool1d:()=>maxPool1d,maxPool2d:()=>maxPool2d,maxPooling1d:()=>maxPooling1d,maxPooling2d:()=>maxPooling2d,maxPooling3d:()=>maxPooling3d,maximum:()=>maximum4,minimum:()=>minimum4,multiply:()=>multiply3,permute:()=>permute,prelu:()=>prelu5,reLU:()=>reLU,repeatVector:()=>repeatVector,reshape:()=>reshape5,rnn:()=>rnn2,separableConv2d:()=>separableConv2d2,simpleRNN:()=>simpleRNN,simpleRNNCell:()=>simpleRNNCell,softmax:()=>softmax5,spatialDropout1d:()=>spatialDropout1d,stackedRNNCells:()=>stackedRNNCells,thresholdedReLU:()=>thresholdedReLU,timeDistributed:()=>timeDistributed,upSampling2d:()=>upSampling2d,zeroPadding2d:()=>zeroPadding2d});var _nextUniqueTensorId=0;function getNextUniqueTensorId(){return _nextUniqueTensorId++}var _uidPrefixes={};function getUid(prefix=""){return prefix in _uidPrefixes||(_uidPrefixes[prefix]=0),_uidPrefixes[prefix]+=1,prefix+_uidPrefixes[prefix].toString()}function isArrayOfShapes(x){return Array.isArray(x)&&Array.isArray(x[0])}function normalizeShapeList(x){return x.length===0?[]:Array.isArray(x[0])?x:[x]}function getExactlyOneTensor(xs){let x;if(Array.isArray(xs)){if(xs.length!==1)throw new ValueError(`Expected Tensor length to be 1; got ${xs.length}`);x=xs[0]}else x=xs;return x}function getExactlyOneShape(shapes){if(Array.isArray(shapes)&&Array.isArray(shapes[0])){if(shapes.length===1)return shapes=shapes,shapes[0];throw new ValueError(`Expected exactly 1 Shape; got ${shapes.length}`)}else return shapes}function countParamsInWeights(weights){let count2=0;for(let weight of weights)weight.shape.length===0?count2+=1:count2+=weight.shape.reduce((a,b)=>a*b);return count2}var DEFAULT_VARIABLE_NAME_PREFIX="Variable",LayerVariable=class{constructor(val,dtype="float32",name=DEFAULT_VARIABLE_NAME_PREFIX,trainable=!0,constraint=null){this.dtype=dtype==null?"float32":dtype,this.shape=val.shape,this.id=getNextUniqueTensorId(),name=name==null?DEFAULT_VARIABLE_NAME_PREFIX:name,this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName),this.trainable_=trainable,this.constraint=constraint,this.val=variable(val,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(newVal){return this.assertNotDisposed(),checkShapesMatch(this.val,newVal),this.val.id!==newVal.id&&(this.val.assign(newVal),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(trainable){this.trainable_=trainable,this.val.trainable=trainable}};function checkShapesMatch(x,y){if(x.shape.toString()!==y.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(x.shape)+" vs. "+JSON.stringify(y.shape))}function batchGetValue(xs){return xs.map(x=>x.read())}function batchSetValue(variablesAndValues){variablesAndValues.forEach(variableAndValue=>{variableAndValue[0].write(variableAndValue[1])})}var InputSpec=class{constructor(args){this.dtype=args.dtype,this.shape=args.shape,args.shape!=null?this.ndim=args.shape.length:this.ndim=args.ndim,this.maxNDim=args.maxNDim,this.minNDim=args.minNDim,this.axes=args.axes||{}}},SymbolicTensor=class{constructor(dtype,shape,sourceLayer,inputs,callArgs,name,outputTensorIndex){this.dtype=dtype,this.shape=shape,this.sourceLayer=sourceLayer,this.inputs=inputs,this.callArgs=callArgs,this.outputTensorIndex=outputTensorIndex,this.id=getNextUniqueTensorId(),name!=null&&(this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName)),this.rank=shape.length}},_nextNodeID=0,Node=class{constructor(args,callArgs){this.callArgs=callArgs,this.id=_nextNodeID++,this.outboundLayer=args.outboundLayer,this.inboundLayers=args.inboundLayers,this.nodeIndices=args.nodeIndices,this.tensorIndices=args.tensorIndices,this.inputTensors=args.inputTensors,this.outputTensors=args.outputTensors,this.inputMasks=args.inputMasks,this.outputMasks=args.outputMasks,this.inputShapes=args.inputShapes,this.outputShapes=args.outputShapes;for(let layer of args.inboundLayers)layer!=null&&layer.outboundNodes.push(this);args.outboundLayer.inboundNodes.push(this)}getConfig(){let inboundNames=[];for(let layer of this.inboundLayers)layer!=null?inboundNames.push(layer.name):inboundNames.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:inboundNames,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},_nextLayerID=0,Layer=class extends serialization_exports.Serializable{constructor(args={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=_nextLayerID++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let name=args.name;if(!name){let prefix=this.getClassName();name=toSnakeCase(prefix)+"_"+getUid(prefix)}if(this.name=name,this.trainable_=args.trainable==null?!0:args.trainable,args.inputShape!=null||args.batchInputShape!=null){let batchInputShape;if(args.batchInputShape!=null)batchInputShape=args.batchInputShape;else if(args.inputShape!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),batchInputShape=[batchSize].concat(args.inputShape)}this.batchInputShape=batchInputShape;let dtype=args.dtype;dtype==null&&(dtype=args.inputDType),dtype==null&&(dtype="float32"),this.dtype=dtype}args.weights!=null?this.initialWeights=args.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(layer,nodeIndex){return layer.name+"_ib-"+nodeIndex.toString()}getNodeAtIndex(nodeIndex,attrName){if(this.inboundNodes.length===0)throw new RuntimeError(`The layer has never been called and thus has no defined ${attrName}.`);if(this.inboundNodes.length<=nodeIndex)throw new ValueError(`Asked to get ${attrName} at node ${nodeIndex}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[nodeIndex]}getInputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"input").inputTensors)}getOutputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} is not connected, no input to return.`);return singletonOrArray(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return singletonOrArray(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(lossFn=>lossFn())}get updates(){return this._updates}get built(){return this._built}set built(built){this._built=built}get trainable(){return this.trainable_}set trainable(trainable){this._trainableWeights.forEach(w=>w.trainable=trainable),this.trainable_=trainable}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(w=>w.trainable):[]}set trainableWeights(weights){this._trainableWeights=weights}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(w=>!w.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(weights){this._nonTrainableWeights=weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(inputs){if(inputs=toList(inputs),this.inputSpec==null||this.inputSpec.length===0)return;let inputSpec=toList(this.inputSpec);if(inputs.length!==inputSpec.length)throw new ValueError(`Layer ${this.name} expects ${inputSpec.length} inputs, but it received ${inputs.length} input tensors. Input received: ${inputs}`);for(let inputIndex=0;inputIndexspec.maxNDim)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected max_ndim=${spec.maxNDim}, found ndim=${ndim}`);if(spec.minNDim!=null&&ndim=0?xShape[axis]:xShape[xShape.length+axis];if(value!=null&&[value,null].indexOf(xShapeAtAxis)===-1)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected axis ${axis} of input shape to have value ${value} but got shape ${xShape}.`)}}if(spec.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(inputs);let inputShapes=[];for(let xElem of toList(inputs))inputShapes.push(xElem.shape);this.build(singletonOrArray(inputShapes)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&noneAreSymbolic&&(this._refCount=1)}if(this.assertInputCompatibility(inputs),noneAreSymbolic){let output=this.call(inputs,kwargs),outputList=toList(output),outputListCopy=[];for(let x of outputList)inputsList.indexOf(x)!==-1&&(x=x.clone()),outputListCopy.push(x);if(output=singletonOrArray(outputListCopy),this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}else{let inputShape=collectInputShape(inputs),outputShape=this.computeOutputShape(inputShape),output,outputDType=guessOutputDType(inputs);if(this.warnOnIncompatibleInputShape(Array.isArray(inputs)?inputShape[0]:inputShape),outputShape!=null&&outputShape.length>0&&Array.isArray(outputShape[0])?output=outputShape.map((shape,index)=>new SymbolicTensor(outputDType,shape,this,toList(inputs),kwargs,this.name,index)):output=new SymbolicTensor(outputDType,outputShape,this,toList(inputs),kwargs,this.name),this.addInboundNode(inputs,output,null,null,inputShape,outputShape,kwargs),this._refCount++,this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}})}warnOnIncompatibleInputShape(inputShape){if(this.batchInputShape!=null)if(inputShape.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(inputShape)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let dimMismatch=!1;this.batchInputShape.forEach((dimension,i)=>{dimension!=null&&inputShape[i]!=null&&inputShape[i]!==dimension&&(dimMismatch=!0)}),dimMismatch&&console.warn(`The shape of the input tensor (${JSON.stringify(inputShape)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new AttributeError(`The layer ${this.name} has never been called and thus has no defined output shape.`);let allOutputShapes=[];for(let node of this.inboundNodes){let shapeString=JSON.stringify(node.outputShapes);allOutputShapes.indexOf(shapeString)===-1&&allOutputShapes.push(shapeString)}if(allOutputShapes.length===1){let outputShapes=this.inboundNodes[0].outputShapes;return Array.isArray(outputShapes)&&Array.isArray(outputShapes[0])&&outputShapes.length===1?outputShapes[0]:outputShapes}else throw new AttributeError(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new RuntimeError(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return countParamsInWeights(this.weights)}build(inputShape){this.built=!0}getWeights(trainableOnly=!1){return batchGetValue(trainableOnly?this.trainableWeights:this.weights)}setWeights(weights){tidy(()=>{let params=this.weights;if(params.length!==weights.length)throw new ValueError(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${weights.length}, but the layer was expecting ${params.length} weights. Provided weights: ${weights}...`);if(params.length===0)return;let weightValueTuples=[],paramValues=batchGetValue(params);for(let i=0;iregularizer.apply(weight.read())),trainable==null&&(trainable=!0),trainable?this._trainableWeights.push(weight):this._nonTrainableWeights.push(weight),weight}setFastWeightInitDuringBuild(value){this.fastWeightInitDuringBuild=value}addLoss(losses4){losses4==null||Array.isArray(losses4)&&losses4.length===0||(losses4=toList(losses4),this._losses!==void 0&&this._losses!==null&&this.losses.push(...losses4))}computeOutputShape(inputShape){return inputShape}computeMask(inputs,mask){if(!this.supportsMasking){if(mask!=null)if(Array.isArray(mask))mask.forEach(maskElement=>{if(maskElement!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return mask}addInboundNode(inputTensors,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes,kwargs=null){let inputTensorList=toList(inputTensors);outputTensors=toList(outputTensors),inputMasks=toList(inputMasks),outputMasks=toList(outputMasks),inputShapes=normalizeShapeList(inputShapes),outputShapes=normalizeShapeList(outputShapes);let inboundLayers=[],nodeIndices=[],tensorIndices=[];for(let x of inputTensorList)inboundLayers.push(x.sourceLayer),nodeIndices.push(x.nodeIndex),tensorIndices.push(x.tensorIndex);new Node({outboundLayer:this,inboundLayers,nodeIndices,tensorIndices,inputTensors:inputTensorList,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes},kwargs);for(let i=0;iweight.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let numDisposedVariables=0;return--this._refCount==0&&(numDisposedVariables=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables}}};function collectInputShape(inputTensors){inputTensors=toList(inputTensors);let shapes=[];for(let x of inputTensors)shapes.push(x.shape);return singletonOrArray(shapes)}function guessOutputDType(inputTensors){return"float32"}function getSourceInputs(tensor2,layer,nodeIndex){if((layer==null||nodeIndex!=null&&nodeIndex>0)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex),layer.inboundNodes.length===0)return[tensor2];{let node=layer.inboundNodes[nodeIndex];if(node.inboundLayers.length===0)return node.inputTensors;{let sourceTensors=[];for(let i=0;i0){let values=await Promise.all(promises);for(let i=0;iadd2(this.totals[key],mul(value,batchSize)));this.totals[key]=total,oldTotalsToDispose!=null&&oldTotalsToDispose.dispose()}}}async onEpochEnd(epoch,logs){if(logs!=null)for(let key of this.params.metrics)this.totals[key]!=null&&(typeof this.totals[key]=="number"?logs[key]=this.totals[key]/this.seen:tidy(()=>{let log52=mul(div(1,this.seen),this.totals[key]);logs[key]=log52,this.totals[key].dispose(),keep(logs[key])}))}},History=class extends BaseCallback{async onTrainBegin(logs){this.epoch=[],this.history={}}async onEpochEnd(epoch,logs){logs==null&&(logs={}),this.epoch.push(epoch);for(let key in logs)this.history[key]==null&&(this.history[key]=[]),this.history[key].push(logs[key])}async syncData(){let promises=[],keys=[],indices=[];for(let key in this.history){let valueArray=this.history[key];for(let i=0;inew CustomCallback(callbackConfig,yieldEvery))}var CallbackConstructorRegistry=class{constructor(){}static registerCallbackConstructor(verbosityLevel,callbackConstructor){util_exports.assert(verbosityLevel>=0&&Number.isInteger(verbosityLevel),()=>`Verbosity level is expected to be an integer >= 0, but got ${verbosityLevel}`),CallbackConstructorRegistry.checkForDuplicate(callbackConstructor),CallbackConstructorRegistry.constructors[verbosityLevel]==null&&(CallbackConstructorRegistry.constructors[verbosityLevel]=[]),CallbackConstructorRegistry.constructors[verbosityLevel].push(callbackConstructor)}static checkForDuplicate(callbackConstructor){for(let levelName in CallbackConstructorRegistry.constructors)CallbackConstructorRegistry.constructors[+levelName].forEach(ctor=>{if(ctor===callbackConstructor)throw new ValueError("Duplicate callback constructor.")})}static clear(){CallbackConstructorRegistry.constructors={}}static createCallbacks(verbosityLevel){let constructors=[];for(let levelName in CallbackConstructorRegistry.constructors){let level=+levelName;verbosityLevel>=level&&constructors.push(...CallbackConstructorRegistry.constructors[level])}return constructors.map(ctor=>new ctor)}};CallbackConstructorRegistry.constructors={};function configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics){let history=new History,actualCallbacks=[new BaseLogger,...CallbackConstructorRegistry.createCallbacks(verbose)];callbacks2!=null&&actualCallbacks.push(...callbacks2),actualCallbacks.push(history);let callbackList=new CallbackList(actualCallbacks);return callbackList.setParams({epochs,initialEpoch,samples:numTrainSamples,steps:stepsPerEpoch,batchSize,verbose,doValidation,metrics:callbackMetrics}),{callbackList,history}}function deserialize(config2,customObjects={},fastWeightInit=!1){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"layer",fastWeightInit)}function l2Normalize(x,axis){return tidy(()=>{x.dtype!=="float32"&&(x=x.asType("float32"));let squareSum=sum2(square3(x),axis,!0),epsilonTensor=fill(squareSum.shape,epsilon2()),norm2=sqrt(maximum(squareSum,epsilonTensor));return div(x,norm2)})}function meanSquaredError2(yTrue,yPred){return tidy(()=>mean(square3(sub(yPred,yTrue)),-1))}function meanAbsoluteError(yTrue,yPred){return tidy(()=>mean(abs(sub(yPred,yTrue)),-1))}function meanAbsolutePercentageError(yTrue,yPred){return tidy(()=>{let diff=sub(yTrue,yPred),clippedTrue=clipByValue(abs(yTrue),epsilon2(),Number.MAX_VALUE),absResult=abs(div(diff,clippedTrue));return mul(100,mean(absResult,-1))})}function meanSquaredLogarithmicError(yTrue,yPred){return tidy(()=>{let clippedPred=clipByValue(yPred,epsilon2(),Number.MAX_VALUE),firstLog=log2(add2(1,clippedPred)),clippedTrue=clipByValue(yTrue,epsilon2(),Number.MAX_VALUE),secondLog=log2(add2(1,clippedTrue));return mean(square3(sub(firstLog,secondLog)),-1)})}function squaredHinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(square3(maxResult),-1)})}function hinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(maxResult,-1)})}function categoricalHinge(yTrue,yPred){return tidy(()=>{let pos=sum2(mul(yTrue,yPred),-1),neg4=max(mul(sub(1,yTrue),yPred),-1);return maximum(0,add2(1,sub(neg4,pos)))})}function logcosh(yTrue,yPred){return tidy(()=>{let log222=Math.log(2),predictionDiff=sub(yPred,yTrue),logcoshResult=sub(add2(predictionDiff,softplus(mul(-2,predictionDiff))),log222);return mean(logcoshResult,-1)})}function categoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{if(fromLogits)output=softmax(output);else{let outputSum=sum2(output,output.shape.length-1,!0);output=div(output,outputSum)}return output=clipByValue(output,epsilon2(),1-epsilon2()),neg(sum2(mul(target.toFloat(),log2(output)),output.shape.length-1))})}function sparseCategoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{let flatTarget=floor(flatten2(target)).toInt();output=clipByValue(output,epsilon2(),1-epsilon2());let outputShape=output.shape,oneHotTarget=oneHot(flatTarget,outputShape[outputShape.length-1]).reshape(outputShape);return categoricalCrossentropy(oneHotTarget,output,fromLogits)})}function sigmoidCrossEntropyWithLogits(labels,logits){if(!util_exports.arraysEqual(labels.shape,logits.shape))throw new ValueError(`logits and labels must have the same shape, but got shapes ${JSON.stringify(labels.shape)} and ${JSON.stringify(logits.shape)}`);return tidy(()=>{let reluLogits=logits.relu(),negAbsLogits=logits.abs().neg();return reluLogits.sub(logits.mul(labels)).add(negAbsLogits.exp().log1p())})}function binaryCrossentropy(yTrue,yPred){return tidy(()=>{let y;return y=clipByValue(yPred,epsilon2(),1-epsilon2()),y=log2(div(y,sub(1,y))),mean(sigmoidCrossEntropyWithLogits(yTrue,y),-1)})}function kullbackLeiblerDivergence(yTrue,yPred){return tidy(()=>{let clippedTrue=clipByValue(yTrue,epsilon2(),1),clippedPred=clipByValue(yPred,epsilon2(),1);return sum2(mul(yTrue,log2(div(clippedTrue,clippedPred))),-1)})}function poisson(yTrue,yPred){return tidy(()=>{let logPred=log2(add2(epsilon2(),yPred));return mean(sub(yPred,mul(yTrue,logPred)),-1)})}function cosineProximity(yTrue,yPred){return tidy(()=>{let trueNormalized=l2Normalize(yTrue,-1),predNormalized=l2Normalize(yPred,-1),trueXPred=mul(trueNormalized,predNormalized);return neg(sum2(trueXPred,-1))})}var lossesMap={meanSquaredError:meanSquaredError2,meanAbsoluteError,meanAbsolutePercentageError,meanSquaredLogarithmicError,squaredHinge,hinge,categoricalHinge,logcosh,categoricalCrossentropy,sparseCategoricalCrossentropy,binaryCrossentropy,kullbackLeiblerDivergence,poisson,cosineProximity};function get(identifierOrFn){if(typeof identifierOrFn=="string"){if(identifierOrFn in lossesMap)return lossesMap[identifierOrFn];let errMsg=`Unknown loss ${identifierOrFn}`;throw identifierOrFn.toLowerCase().includes("softmaxcrossentropy")&&(errMsg=`Unknown loss ${identifierOrFn}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new ValueError(errMsg)}else return identifierOrFn}function binaryAccuracy(yTrue,yPred){return tidy(()=>{let threshold2=mul(.5,onesLike(yPred)),yPredThresholded=cast5(greater(yPred,threshold2),yTrue.dtype);return mean(equal(yTrue,yPredThresholded),-1)})}function categoricalAccuracy(yTrue,yPred){return tidy(()=>cast5(equal(argMax(yTrue,-1),argMax(yPred,-1)),"float32"))}function truePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(1)).sum().cast("float32"))}function falseNegatives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(0)).sum().cast("float32"))}function falsePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(0),yPred.equal(1)).sum().cast("float32"))}function precision(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fp=falsePositives(yTrue,yPred),denominator=tp.add(fp);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function recall(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fn=falseNegatives(yTrue,yPred),denominator=tp.add(fn);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function binaryCrossentropy2(yTrue,yPred){return binaryCrossentropy(yTrue,yPred)}function sparseCategoricalAccuracy(yTrue,yPred){return yTrue.rank===yPred.rank&&(yTrue=yTrue.squeeze([yTrue.rank-1])),yPred=yPred.argMax(-1),yPred.dtype!==yTrue.dtype&&(yPred=yPred.asType(yTrue.dtype)),equal(yTrue,yPred).asType("float32")}var mse=meanSquaredError2,MSE=meanSquaredError2,mae=meanAbsoluteError,MAE=meanAbsoluteError,mape=meanAbsolutePercentageError,MAPE=meanAbsolutePercentageError,categoricalCrossentropy2=categoricalCrossentropy,cosine=cosineProximity,sparseCategoricalCrossentropy2=sparseCategoricalCrossentropy,metricsMap={binaryAccuracy,categoricalAccuracy,precision,categoricalCrossentropy:categoricalCrossentropy2,sparseCategoricalCrossentropy:sparseCategoricalCrossentropy2,mse,MSE,mae,MAE,mape,MAPE,cosine};function get2(identifier){if(typeof identifier=="string"&&identifier in metricsMap)return metricsMap[identifier];if(typeof identifier!="string"&&identifier!=null)return identifier;throw new ValueError(`Unknown metric ${identifier}`)}function getLossOrMetricName(fn){if(assert2(fn!==null,`Unknown LossOrMetricFn ${fn}`),typeof fn=="string")return fn;{let fnName;for(let key of Object.keys(lossesMap))if(lossesMap[key]===fn){fnName=key;break}if(fnName!==void 0)return fnName;for(let key of Object.keys(metricsMap))if(metricsMap[key]===fn){fnName=key;break}return fnName!==void 0?fnName:fn.name}}function getOptimizer(identifier){let optimizerMap={Adagrad:()=>train.adagrad(.01),Adadelta:()=>train.adadelta(1,.95,epsilon2()),Adam:()=>train.adam(.001,.9,.999,epsilon2()),Adamax:()=>train.adamax(.002,.9,.999,epsilon2(),0),RMSProp:()=>train.rmsprop(.001,.9,0,epsilon2()),SGD:()=>train.sgd(.01)};if(optimizerMap.adagrad=optimizerMap.Adagrad,optimizerMap.adadelta=optimizerMap.Adadelta,optimizerMap.adam=optimizerMap.Adam,optimizerMap.adamax=optimizerMap.Adamax,optimizerMap.rmsprop=optimizerMap.RMSProp,optimizerMap.sgd=optimizerMap.SGD,identifier in optimizerMap)return optimizerMap[identifier]();throw new ValueError(`Unknown Optimizer ${identifier}`)}var MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH=1*1024*1024;function checkUserDefinedMetadata(userDefinedMetadata,modelName,checkSize=!1){if(userDefinedMetadata==null||typeof userDefinedMetadata!="object"||Object.getPrototypeOf(userDefinedMetadata)!==Object.prototype||!plainObjectCheck(userDefinedMetadata))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(checkSize){let out=JSON.stringify(userDefinedMetadata);out.length>MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH&&console.warn(`User-defined metadata of model "${modelName}" is too large in size (length=${out.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH}.`)}}function plainObjectCheck(x){if(x===null)return!0;if(typeof x=="object")if(Object.getPrototypeOf(x)===Object.prototype){let keys=Object.keys(x);for(let key of keys)if(typeof key!="string"||!plainObjectCheck(x[key]))return!1;return!0}else if(Array.isArray(x)){for(let item of x)if(!plainObjectCheck(item))return!1;return!0}else return!1;else{let xType=typeof x;return xType==="string"||xType==="number"||xType==="boolean"}}function printSummary(model2,lineLength,positions,printFn=console.log){let sequentialLike=isModelSequentialLike(model2),toDisplay=["Layer (type)","Output shape","Param #"];sequentialLike?(lineLength=lineLength||65,positions=positions||[.45,.85,1]):(lineLength=lineLength||98,positions=positions||[.33,.55,.67,1]),positions[positions.length-1]<=1&&(positions=positions.map(p2=>Math.floor(lineLength*p2)));let relevantNodes;if(!sequentialLike){toDisplay.push("Receives inputs"),relevantNodes=[];for(let depth in model2.nodesByDepth)relevantNodes.push(...model2.nodesByDepth[depth])}printFn("_".repeat(lineLength)),printRow(toDisplay,positions,printFn),printFn("=".repeat(lineLength));let layers=model2.layers;for(let i=0;i1||depthNodes.length===1&&depthNodes[0].inboundLayers.length>1){sequentialLike=!1;break}nodes.push(...depthNodes)}if(sequentialLike)for(let layer of model2.layers){let flag=!1;for(let node of layer.inboundNodes)if(nodes.indexOf(node)!==-1)if(flag){sequentialLike=!1;break}else flag=!0;if(!sequentialLike)break}return sequentialLike}function printRow(fields,positions,printFn=console.log){let line="";for(let i=0;i0&&(line=line.slice(0,line.length-1)+" "),line+=fields[i],line=line.slice(0,positions[i]),line+=" ".repeat(positions[i]-line.length);printFn(line)}function printLayerSummary(layer,positions,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let name=layer.name,className=layer.getClassName(),fields=[`${name} (${className})`,outputShape,layer.countParams().toString()];printRow(fields,positions,printFn)}function printLayerSummaryWithConnections(layer,positions,relevantNodes,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let connections=[];for(let node of layer.inboundNodes)if(!(relevantNodes!=null&&relevantNodes.length>0&&relevantNodes.indexOf(node)===-1))for(let i=0;it.name),finalOutputs=[],feedNames=feedDict.names();for(let outputName of outputNames)feedNames.indexOf(outputName)!==-1?finalOutputs.push(feedDict.getValue(outputName)):finalOutputs.push(null);probe!=null&&(probe.maxNumTensors=-Infinity,probe.minNumTensors=Infinity);let fetchAndFeedKey=outputNames.join(",")+"|"+feedDict.names().join(","),sorted,recipientCounts;if(cachedSorted[fetchAndFeedKey]==null){let out=getTopologicalSortAndRecipientCounts(fetchArray,feedDict);sorted=out.sorted,recipientCounts=out.recipientCounts,cachedSorted[fetchAndFeedKey]=sorted,cachedRecipientCounts[fetchAndFeedKey]=recipientCounts}sorted=cachedSorted[fetchAndFeedKey],recipientCounts={},training||Object.assign(recipientCounts,cachedRecipientCounts[fetchAndFeedKey]);let internalFeedDict=new FeedDict(feedDict);for(let i=0;iprobe.maxNumTensors&&(probe.maxNumTensors=numTensors),numTensors0,()=>"Expected at least one fetch, got none");let finalSorted=[],finalRecipientMap={};if(fetches.length===1){let out=getTopologicalSortAndRecipientCountsForOneFetch(fetches[0],feedDict);finalSorted=out.sorted,finalRecipientMap=out.recipientMap}else{let visited=new Set;for(let fetch3 of fetches){let{sorted,recipientMap}=getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict);for(let symbolicTensor of sorted)visited.has(symbolicTensor.name)||(finalSorted.push(symbolicTensor),visited.add(symbolicTensor.name));for(let name in recipientMap)finalRecipientMap[name]==null&&(finalRecipientMap[name]=new Set),recipientMap[name].forEach(recipient=>finalRecipientMap[name].add(recipient))}}return{sorted:finalSorted,recipientCounts:recipientMap2Counts(finalRecipientMap)}}function recipientMap2Counts(recipientMap){let recipientCounts={};for(let name in recipientMap)recipientCounts[name]=recipientMap[name].size;return recipientCounts}function getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict){let visited=new Set,sorted=[],recipientMap={};for(let key of feedDict.names())visited.add(key);let stack2=[],marks=[];for(stack2.push(fetch3);stack2.length>0;){let top=stack2[stack2.length-1];if(visited.has(top.name)){stack2.pop();continue}let topIsMarked=marks[marks.length-1]===stack2.length-1;if(top.inputs.length===0||topIsMarked)stack2.pop(),sorted.push(top),visited.add(top.name),topIsMarked&&marks.pop();else{marks.push(stack2.length-1);for(let input2 of top.inputs)recipientMap[input2.name]==null&&(recipientMap[input2.name]=new Set),recipientMap[input2.name].add(top.name),!visited.has(input2.name)&&stack2.push(input2)}}return{sorted,recipientMap}}function getNodeOutputs(fetch3){let layerOutputs;if(fetch3.sourceLayer.inboundNodes.length===1)layerOutputs=fetch3.sourceLayer.output;else{let nodeIndex=null;for(let i=0;ix.name)}`);unique4(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(x=>x.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let x of this.outputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;this.outputLayers.push(layer),this.outputLayersNodeIndices.push(nodeIndex),this.outputLayersTensorIndices.push(tensorIndex)}for(let x of this.inputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;assert2(nodeIndex===0,"input layer has >1 nodes"),assert2(tensorIndex===0,"input layer has >1 tensors"),this.inputLayers.push(layer),this.inputLayersNodeIndices.push(nodeIndex),this.inputLayersTensorIndices.push(tensorIndex)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let i=0;ix.shape),this.internalOutputShapes=this.outputs.map(x=>x.shape);let nodesDepths={},nodeIDToNode={},layersDepths={},layerIDToLayer={},layerIndices={},nodesInDecreasingDepth=[],buildMapOfGraph=(tensor2,finishedNodes2,nodesInProgress2,layer,nodeIndex,tensorIndex)=>{(layer==null||nodeIndex==null||tensorIndex==null)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex,tensorIndex=tensor2.tensorIndex);let node=layer.inboundNodes[nodeIndex];if(nodesInProgress2.indexOf(node)!==-1)throw new RuntimeError(`The tensor ${tensor2.name} at layer "${layer.name}" is part of a cycle.`);if(finishedNodes2.indexOf(node)!==-1)return;this.containerNodes.add(Container.nodeKey(layer,nodeIndex)),layer.id in layerIndices||(layerIndices[layer.id]=Object.keys(layerIndices).length),nodesInProgress2.indexOf(node)===-1&&nodesInProgress2.push(node);let numInboundLayers=node.inboundLayers.length;for(let i=0;i=0;)nodesInProgress2.splice(nodesInProgress2.indexOf(node),1);nodesInDecreasingDepth.push(node)},finishedNodes=[],nodesInProgress=[];for(let x of this.outputs)buildMapOfGraph(x,finishedNodes,nodesInProgress);let reversedNodesInDecreasingDepth=nodesInDecreasingDepth.slice().reverse();for(let node of reversedNodesInDecreasingDepth){nodeIDToNode[node.id]=node,node.id in nodesDepths||(nodesDepths[node.id]=0);let depth=nodesDepths[node.id],previousDepth=layersDepths[node.outboundLayer.id]==null?0:layersDepths[node.outboundLayer.id];depth=Math.max(depth,previousDepth),layersDepths[node.outboundLayer.id]=depth,layerIDToLayer[node.outboundLayer.id]=node.outboundLayer,nodesDepths[node.id]=depth;for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);this.layers=[];for(let depth of depthKeys){let layersForDepth=layersByDepth[depth];layersForDepth.sort((a,b)=>{let aIndex=layerIndices[a.id],bIndex=layerIndices[b.id];return aIndexbIndex?1:0});for(let layer of layersForDepth)layer instanceof Container&&this.internalContainerRefs.push(layer),this.layers.push(layer)}this.layersByDepth=layersByDepth,depthKeys=Object.keys(nodesByDepth).map(x=>parseInt(x,10)).sort(reverseNumberCompare);let computableTensors=this.inputs.slice(),layersWithCompleteInput=[];for(let depth of depthKeys)for(let node of nodesByDepth[depth]){let layer=node.outboundLayer;if(layer!=null){for(let x of node.inputTensors)if(computableTensors.indexOf(x)===-1)throw new RuntimeError(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${layer.name}". The following previous layers were accessed without issue: ${layersWithCompleteInput}`);for(let x of node.outputTensors)computableTensors.push(x);layersWithCompleteInput.push(layer.name)}}this.nodesByDepth=nodesByDepth;let allNames=this.layers.map(x=>x.name);for(let name of allNames){let numOccurrences=allNames.filter(x=>x===name).length;if(numOccurrences!==1)throw new RuntimeError(`The name "${name}" is used ${numOccurrences} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(allNames))}this.outboundNodes=[],this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(x=>null),outputMasks:this.outputs.map(x=>null),inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs.map(x=>x.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let result={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let layer of this.layers)result.numDisposedVariables+=layer.dispose().numDisposedVariables;for(let container of this.internalContainerRefs)result.numDisposedVariables+=container.dispose().numDisposedVariables}return result.refCountAfterDispose=this._refCount,result}get trainable(){return this.trainable_}set trainable(trainable){this.layers.forEach(layer=>{layer._trainableWeights.forEach(w=>w.trainable=trainable)}),this.trainable_=trainable}get trainableWeights(){if(this._trainableWeights.length>0)throw new ValueError("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let weights=[];for(let layer of this.layers)weights=weights.concat(layer.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let layer of this.layers)weights.push(...layer.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let layer of this.layers)trainableWeights.push(...layer.trainableWeights);return trainableWeights.concat(weights)}return weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(weights,strict=!0){let nameToWeight={},totalWeightsCount=0;for(let layer of this.layers)for(let weight of layer.weights){if(nameToWeight[weight.originalName]!=null)throw new ValueError(`Duplicate weight name: ${weight.originalName}`);nameToWeight[weight.originalName]=weight,totalWeightsCount++}let weightValueTuples=[];for(let name in weights){let validatedName=name;if(nameToWeight[name]==null){let tokens=name.split("/");validatedName=tokens.slice(0,-2).concat([tokens[tokens.length-1]]).join("/")}if(nameToWeight[validatedName]!=null)weightValueTuples.push([nameToWeight[validatedName],weights[name]]);else if(strict)throw new ValueError(`Provided weight data has no target variable: ${name}`);delete nameToWeight[validatedName]}if(strict){let unsetNames=[];for(let name in nameToWeight)unsetNames.push(name);if(unsetNames.length>0)throw new ValueError(`${unsetNames.length} of ${totalWeightsCount} weights are not set: ${unsetNames}`)}batchSetValue(weightValueTuples)}updatedConfig(){let theConfig=this.getConfig(),modelConfig={};return modelConfig.className=this.getClassName(),modelConfig.config=theConfig,modelConfig.kerasVersion=`tfjs-layers ${version10}`,modelConfig.backend="TensorFlow.js",modelConfig}toJSON(unused,returnString=!0){let modelConfig=convertTsToPythonic(this.updatedConfig());return returnString?JSON.stringify(modelConfig):modelConfig}call(inputs,kwargs){return tidy(()=>{inputs=toList(inputs);let feedDict=new FeedDict;for(let i=0;i{inputs=toList(inputs);let masks;return mask==null?masks=pyListRepeat(null,inputs.length):masks=toList(mask),this.runInternalGraph(inputs,masks)[1]})}computeOutputShape(inputShape){let inputShapes=normalizeShapeList(inputShape);if(inputShapes.length!==this.inputLayers.length)throw new ValueError(`Invalid inputShape argument ${inputShape}: model has ${this.inputLayers.length} tensor inputs.`);let layersToOutputShapes={};for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);if(depthKeys.length>1)for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer;if(this.inputLayers.map(x=>x.id).indexOf(layer.id)!==-1)continue;let inputShapes2=[];for(let j=0;jparseInt(x,10)).sort(reverseNumberCompare);for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer,referenceInputTensors=node.inputTensors,referenceOutputTensors=node.outputTensors,computedData=new Array;for(let x of referenceInputTensors)x.id in tensorMap&&computedData.push(tensorMap[x.id]);if(computedData.length===referenceInputTensors.length){let kwargs={},computedTensors,computedMasks,outputTensors2,outputMasks2;if(node.callArgs!=null&&(kwargs=node.callArgs),computedData.length===1){let[computedTensor,computedMask]=computedData[0];kwargs.mask==null&&(kwargs.mask=computedMask),outputTensors2=toList(layer.call(computedTensor,kwargs)),outputMasks2=toList(layer.computeMask(computedTensor,computedMask)),computedTensors=[computedTensor],computedMasks=[computedMask]}else computedTensors=computedData.map(x=>x[0]),computedMasks=computedData.map(x=>x[1]),kwargs.mask==null&&(kwargs.mask=computedMasks),outputTensors2=toList(layer.call(computedTensors,kwargs)),outputMasks2=toList(layer.computeMask(computedTensors,computedMasks));if(layer.activityRegularizer)throw new NotImplementedError("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let i=0;i{let losses4=[];for(let layer of this.layers)for(let nodeIndex=0;nodeIndex0){let nodeData=[];for(let i=0;i0&&layer.apply(singletonOrArray(inputTensors2),kwargs)}function processLayer(layerData){let layerName=layerData.name,layer=deserialize(layerData,config2.customObjects!=null?config2.customObjects:{});layer.setFastWeightInitDuringBuild(fastWeightInit),createdLayers[layerName]=layer,layerData.inboundNodes.forEach(nodeData=>{if(!(nodeData instanceof Array))throw new ValueError(`Corrupted configuration, expected array for nodeData: ${nodeData}`);addUnprocessedNode(layer,nodeData)})}let name=config2.name,layersFromConfig=config2.layers;for(let layerData of layersFromConfig)processLayer(layerData);for(;!isObjectEmpty(unprocessedNodes);)for(let layerData of layersFromConfig){let layer=createdLayers[layerData.name];if(layer.name in unprocessedNodes){let currentUnprocessedNodesForLayer=unprocessedNodes[layer.name];delete unprocessedNodes[layer.name];for(let nodeData of currentUnprocessedNodesForLayer)processNode(layer,nodeData)}}let inputTensors=[],outputTensors=[],inputLayersFromConfig=config2.inputLayers;for(let layerData of inputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;inputTensors.push(layerOutputTensors[tensorIndex])}let outputLayersFromConfig=config2.outputLayers;for(let layerData of outputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;outputTensors.push(layerOutputTensors[tensorIndex])}return new cls({inputs:inputTensors,outputs:outputTensors,name})}get stateful(){if(this._stateful)throw new ValueError("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let layer of this.layers)if(layer.stateful)return!0;return!1}resetStates(){tidy(()=>{this.layers.forEach(layer=>{layer.stateful&&layer.resetStates()})})}};function standardizeSampleOrClassWeights(xWeight,outputNames,weightType){let numOutputs=outputNames.length;if(xWeight==null||Array.isArray(xWeight)&&xWeight.length===0)return outputNames.map(name=>null);if(numOutputs===1)return Array.isArray(xWeight)&&xWeight.length===1?xWeight:typeof xWeight=="object"&&outputNames[0]in xWeight?[xWeight[outputNames[0]]]:[xWeight];if(Array.isArray(xWeight)){if(xWeight.length!==numOutputs)throw new Error(`Provided ${weightType} is an array of ${xWeight.length} element(s), but the model has ${numOutputs} outputs. Make sure a set of weights is provided for each model output.`);return xWeight}else if(typeof xWeight=="object"&&Object.keys(xWeight).length>0&&typeof xWeight[Object.keys(xWeight)[0]]=="object"){let output=[];return outputNames.forEach(outputName=>{outputName in xWeight?output.push(xWeight[outputName]):output.push(null)}),output}else throw new Error(`The model has multiple (${numOutputs}) outputs, so ${weightType} must be either an array with ${numOutputs} elements or an object with ${outputNames} keys. Provided ${weightType} not understood: ${JSON.stringify(xWeight)}`)}function standardizeClassWeights(classWeight,outputNames){return standardizeSampleOrClassWeights(classWeight,outputNames,"classWeight")}async function standardizeWeights(y,sampleWeight,classWeight,sampleWeightMode){if(sampleWeight!=null||sampleWeightMode!=null)throw new Error("Support sampleWeight is not implemented yet");if(classWeight!=null){let yClasses=tidy(()=>{if(y.shape.length===1)return y.clone();if(y.shape.length===2)if(y.shape[1]>1){let axis=1;return y.argMax(axis)}else{if(y.shape[1]===1)return y.reshape([y.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${y.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${y.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),yClassIndices=Array.from(await yClasses.data());dispose(yClasses);let classSampleWeight=[];return yClassIndices.forEach(classIndex=>{if(classWeight[classIndex]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${classIndex} exists in the data but not in classWeight`);classSampleWeight.push(classWeight[classIndex])}),tensor1d(classSampleWeight,"float32")}else return null}function computeWeightedLoss2(losses4,sampleWeights){return mul(losses4,sampleWeights)}var DEFAULT_VALIDATION_BATCH_SIZE=32;function standardizeDataIteratorOutput(model2,iteratorOut){let xs,ys,iteratorOutObj=iteratorOut;xs=iteratorOutObj.xs,ys=iteratorOutObj.ys,util_exports.assert(xs!=null&&ys!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${iteratorOut}`);let flattenedXs=flattenTensorOrArrayOrMap("input",model2.inputNames,xs),flattenedYs=flattenTensorOrArrayOrMap("output",model2.outputNames,ys),batchSize=flattenedXs[0].shape[0];util_exports.assert(flattenedXs.length===model2.inputs.length,()=>`LayersModel has ${model2.inputs.length} inputs, but the dataset provides ${flattenedXs.length} inputs. (Expected input keys: ${JSON.stringify(model2.inputNames)})`),util_exports.assert(flattenedYs.length===model2.outputs.length,()=>`LayersModel has ${model2.outputs.length} outputs, but the dataset provides ${flattenedYs.length} outputs. (Expected output keys: ${JSON.stringify(model2.outputNames)})`);for(let xIndex=0;xIndex`Batch size mismatch: input ${model2.inputNames[xIndex]} has ${flattenedXs[xIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);for(let yIndex=0;yIndex`Batch size mismatch: output ${model2.outputNames[yIndex]} has ${flattenedYs[yIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);return{xs:flattenedXs,ys:flattenedYs}}function flattenTensorOrArrayOrMap(inputOrOutput,names,values){if(values instanceof Tensor)return[values];if(Array.isArray(values))return util_exports.assert(values.length===names.length,()=>`Received an array of ${values.length} Tensors, but expected ${names.length} to match the ${inputOrOutput} keys ${names}.`),values;{let result=[];for(let name of names){if(values[name]==null)throw new ValueError(`The feature data generated by the dataset lacks the required ${inputOrOutput} key '${name}'.`);result.push(values[name])}return result}}function standardizeTensorValidationData(data2){if(data2.length===3)throw new NotImplementedError("Validation with sample weights is not implemented yet.");return{xs:data2[0],ys:data2[1]}}async function fitDataset(model2,dataset,args){let hasBatchesPerEpoch=args.batchesPerEpoch!=null;if(util_exports.assert(model2.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),util_exports.assert(args!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),util_exports.assert(args.epochs!=null&&args.epochs>0&&Number.isInteger(args.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${args.epochs}`),util_exports.assert(!hasBatchesPerEpoch||args.batchesPerEpoch>0&&Number.isInteger(args.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${args.batchesPerEpoch}`),util_exports.assert(args.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),model2.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");model2.isTraining=!0;try{let doValidation=args.validationData!=null,valXs,valYs;if(doValidation)if(isDatasetObject(args.validationData))util_exports.assert(args.validationBatches==null||args.validationBatches>0&&Number.isInteger(args.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${args.validationBatches}`);else{let validationData=standardizeTensorValidationData(args.validationData);valXs=validationData.xs,valYs=validationData.ys}let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),callbackMetrics;doValidation?callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n)):callbackMetrics=outLabels.slice();let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery),verbose=args.verbose==null?1:args.verbose,{callbackList,history}=configureCallbacks(callbacks2,verbose,args.epochs,null,null,getStepsPerEpoch(dataset,args),null,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;let epoch=args.initialEpoch==null?0:args.initialEpoch,dataIterator=await dataset.iterator();for(;epoch=args.batchesPerEpoch:iteratorOut.done){if(doValidation){let valOuts;isDatasetObject(args.validationData)?valOuts=toList(await model2.evaluateDataset(args.validationData,{batches:args.validationBatches})):valOuts=toList(model2.evaluate(valXs,valYs,{batchSize:args.validationBatchSize==null?DEFAULT_VALIDATION_BATCH_SIZE:args.validationBatchSize,verbose:0}));for(let i=0;i0)throw new NotImplementedError("Verbose mode is not implemented yet.");util_exports.assert(!hasBatches||args.batches>0&&Number.isInteger(args.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(args.batches)}`);let dataIterator=isLazyIteratorObject(dataset)?dataset:await dataset.iterator(),numExamples=0,batch=0;for(;hasBatches?batch{if(iteratorOut.value){let{xs,ys}=standardizeDataIteratorOutput(model2,iteratorOut.value),xsAndYs=xs.concat(ys),batchOuts=tidy(()=>f(xsAndYs));if(dispose(xsAndYs),batch===0)for(let i=0;iadd2(outs[i],mul(batchSize,batchOut))),batch>0&&dispose(oldScalar)}dispose(batchOuts),numExamples+=batchSize,++batch}return outs}),iteratorOut.done){hasBatches&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${args.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let i=0;i0&&Number.isInteger(batchSize),()=>`batchSize is required to be a positive integer, but got ${batchSize}`)}function sliceArrays(arrays,start,stop){return arrays==null?[null]:Array.isArray(arrays)?arrays.map(array2=>sliceAlongFirstAxis(array2,start,stop-start)):sliceAlongFirstAxis(arrays,start,stop-start)}function sliceArraysByIndices(arrays,indices){return tidy(()=>arrays==null?null:Array.isArray(arrays)?arrays.map(array2=>sliceArraysByIndices(array2,indices)):gather2(arrays,indices.dtype==="int32"?indices:indices.toInt()))}function makeBatches(size,batchSize){let output=[],batchStart=0,batchEnd=null;for(;batchStart=size&&(batchEnd=size),output.push([batchStart,batchEnd]),batchStart=batchEnd;return output}async function fitLoop(model2,f,ins,outLabels,batchSize,epochs,verbose,callbacks2,valF,valIns,shuffle2,callbackMetrics,initialEpoch,stepsPerEpoch,validationSteps){batchSize==null&&(batchSize=32),epochs==null&&(epochs=1),shuffle2==null&&(shuffle2=!0),initialEpoch==null&&(initialEpoch=0);let doValidation=!1;if(valF!=null&&valIns!=null&&(doValidation=!0),validationSteps!=null&&(doValidation=!0,stepsPerEpoch==null))throw new ValueError("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let numTrainSamples=model2.checkNumSamples(ins,batchSize,stepsPerEpoch,"steps_per_epoch"),indexArray;numTrainSamples!=null&&(indexArray=range5(0,numTrainSamples)),verbose==null&&(verbose=1);let{callbackList,history}=configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;for(let epoch=initialEpoch;epoch{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],batchIds=sliceAlongFirstAxis(epochIndexArray1D,batchStart,batchEnd-batchStart);batchLogs.batch=batchIndex,batchLogs.size=batchEnd-batchStart;let insBatch=sliceArraysByIndices(ins,batchIds),outs=f(insBatch);for(let i=0;i0){if(doValidation=!0,args.validationData.length===2)inputValX=args.validationData[0],inputValY=args.validationData[1];else throw args.validationData.length===3?new NotImplementedError("validationData including sample weights is not supported yet."):new ValueError(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${args.validationData} is invalid.`);let checkBatchAxis2=!0,valStandardized=await model2.standardizeUserData(inputValX,inputValY,null,null,checkBatchAxis2,batchSize);valX=valStandardized[0],valY=valStandardized[1],valIns=valX.concat(valY)}else if(args.validationSplit!=null&&args.validationSplit>0&&args.validationSplit<1){doValidation=!0;let splitAt=Math.floor(inputs[0].shape[0]*(1-args.validationSplit)),originalBatchSize=inputs[0].shape[0];valX=sliceArrays(inputs,splitAt,originalBatchSize),inputs=sliceArrays(inputs,0,splitAt),valY=sliceArrays(targets,splitAt,originalBatchSize),targets=sliceArrays(targets,0,splitAt),valIns=valX.concat(valY)}else args.validationSteps!=null&&(doValidation=!0);let ins=inputs.concat(targets).concat(sampleWeights);model2.checkTrainableWeightsConsistency();let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),valFunction,callbackMetrics;doValidation?(model2.makeTestFunction(),valFunction=model2.testFunction,callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n))):(valFunction=null,valIns=[],callbackMetrics=outLabels.slice());let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery);return await fitLoop(model2,trainFunction,ins,outLabels,batchSize,args.epochs,args.verbose,callbacks2,valFunction,valIns,args.shuffle,callbackMetrics,args.initialEpoch,null,null)}finally{model2.isTraining=!1,disposeNewTensors(inputs,x),disposeNewTensors(targets,y),disposeNewTensors(valX,inputValX),disposeNewTensors(valY,inputValY),sampleWeights!=null&&dispose(sampleWeights)}}function ensureTensorsRank2OrHigher(tensors){let outs=[];tensors instanceof Tensor&&(tensors=[tensors]);for(let i=0;ioldTensorIds.push(t.id));else if(refTensors!=null)for(let name in refTensors){let oldTensor=refTensors[name];oldTensorIds.push(oldTensor.id)}let tensorsToDispose=[];if(tensors instanceof Tensor)oldTensorIds.indexOf(tensors.id)===-1&&tensorsToDispose.push(tensors);else if(Array.isArray(tensors))tensors.forEach(t=>{oldTensorIds.indexOf(t.id)===-1&&tensorsToDispose.push(t)});else if(tensors!=null)for(let name in tensors){let tensor2=tensors[name];oldTensorIds.indexOf(tensor2.id)===-1&&tensorsToDispose.push(tensor2)}tensorsToDispose.forEach(t=>{t.isDisposed||t.dispose()})}function isDataTensor(x){return x instanceof Tensor}function isDataArray(x){return Array.isArray(x)}function isDataDict(x){return!isDataTensor(x)&&!isDataArray(x)}function standardizeInputData(data2,names,shapes,checkBatchAxis=!0,exceptionPrefix=""){if(names==null||names.length===0){if(data2!=null){let gotUnexpectedData=!1;if(isDataArray(data2)&&data2.length>0)gotUnexpectedData=!0;else if(isDataDict(data2)){for(let key in data2)if(data2.hasOwnProperty(key)){gotUnexpectedData=!0;break}}else gotUnexpectedData=!0;if(gotUnexpectedData)throw new ValueError(`Error when checking model ${exceptionPrefix} expected no data, but got ${data2}`)}return[]}if(data2==null)return names.map(name=>null);let arrays;if(isDataDict(data2)){data2=data2,arrays=[];for(let name of names){if(data2[name]==null)throw new ValueError(`No data provided for "${name}". Need data for each key in: ${names}`);arrays.push(data2[name])}}else if(isDataArray(data2)){if(data2=data2,data2.length!==names.length)throw new ValueError(`Error when checking model ${exceptionPrefix}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${names.length} Tensor(s), but instead got the following list of Tensor(s): ${data2}`);arrays=data2}else{if(data2=data2,names.length>1)throw new ValueError(`The model ${exceptionPrefix} expects ${names.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${data2.shape}`);arrays=[data2]}if(arrays=ensureTensorsRank2OrHigher(arrays),shapes!=null)for(let i=0;i=0&&dim!==refDim)throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have shape [${shapes[i]}], but got array with shape [${array2.shape}].`)}}return arrays}function checkArrayLengths(inputs,targets,weights){let setX=unique4(inputs.map(input2=>input2.shape[0]));setX.sort();let setY=unique4(targets.map(target=>target.shape[0]));if(setY.sort(),setX.length>1)throw new ValueError(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(inputs.map(input2=>input2.shape))}`);if(setY.length>1)throw new ValueError(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(targets.map(target=>target.shape))}`);if(setX.length>0&&setY.length>0&&!util_exports.arraysEqual(setX,setY))throw new ValueError(`Input Tensors should have the same number of samples as target Tensors. Found ${setX[0]} input sample(s) and ${setY[0]} target sample(s).`)}function checkLossAndTargetCompatibility(targets,lossFns,outputShapes){let keyLosses=[meanSquaredError2,binaryCrossentropy,categoricalCrossentropy];for(let i=0;i1)throw new ValueError(`The model expects ${names.length} ${exceptionPrefix} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(data2.shape)}.`);arrays=[data2]}if(shapes!=null)for(let i=0;i[]);let wrappedMetrics;if(typeof metrics2=="string"||typeof metrics2=="function")wrappedMetrics=[metrics2];else if(Array.isArray(metrics2)||typeof metrics2=="object")wrappedMetrics=metrics2;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${metrics2}`);if(Array.isArray(wrappedMetrics))return outputNames.map(name=>wrappedMetrics);{let nestedMetrics=[];for(let name of outputNames){let outputMetrics=wrappedMetrics.hasOwnProperty(name)?wrappedMetrics[name]:[];Array.isArray(outputMetrics)||(outputMetrics=[outputMetrics]),nestedMetrics.push(outputMetrics)}return nestedMetrics}}var LAYERS_MODEL_FORMAT_NAME="layers-model",LayersModel=class extends Container{constructor(args){super(args);this.isTraining=!1}summary(lineLength,positions,printFn=console.log){if(!this.built)throw new ValueError("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");printSummary(this,lineLength,positions,printFn)}compile(args){if(args.loss==null&&(args.loss=[]),this.loss=args.loss,typeof args.optimizer=="string")this.optimizer_=getOptimizer(args.optimizer),this.isOptimizerOwned=!0;else{if(!(args.optimizer instanceof Optimizer))throw new ValueError("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=args.optimizer,this.isOptimizerOwned=!1}let lossFunctions=[];if(!Array.isArray(args.loss)&&typeof args.loss!="string"&&typeof args.loss!="function"){args.loss=args.loss;for(let name in args.loss)if(this.outputNames.indexOf(name)===-1)throw new ValueError(`Unknown entry in loss dictionary: "${name}". Only expected the following keys: ${this.outputNames}`);for(let name of this.outputNames)args.loss[name]==null&&console.warn(`Output "${name}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${name} during training`),lossFunctions.push(get(args.loss[name]))}else if(Array.isArray(args.loss)){if(args.loss.length!==this.outputs.length)throw new ValueError(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${args.loss}.`);lossFunctions=args.loss.map(l=>get(l))}else{let lossFunction=get(args.loss);this.outputs.forEach(_=>{lossFunctions.push(lossFunction)})}this.lossFunctions=lossFunctions,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([weightedLoss,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let nestedMetrics=collectMetrics(args.metrics,this.outputNames),appendMetric=(outputIndex,metricName,metricTensor)=>{this.outputNames.length>1&&(metricName=this.outputNames[outputIndex]+"_"+metricName),this.metricsNames.push(metricName),this.metricsTensors.push([metricTensor,outputIndex])};nameScope("metric",()=>{for(let i=0;i{let metricNamePrefix="",metricName,accFn,weightedMetricFn;for(let metric of metrics2){if(typeof metric=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(metric)!==-1){let outputShape=this.internalOutputShapes[i];outputShape[outputShape.length-1]===1||this.lossFunctions[i]===binaryCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=binaryAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=binaryCrossentropy2):this.lossFunctions[i]===sparseCategoricalCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=sparseCategoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=sparseCategoricalCrossentropy2):["accuracy","acc"].indexOf(metric)!==-1?accFn=categoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=categoricalCrossentropy2);let suffix;["accuracy","acc"].indexOf(metric)!==-1?suffix="acc":["crossentropy","ce"].indexOf(metric)!==-1&&(suffix="ce"),weightedMetricFn=accFn,metricName=metricNamePrefix+suffix}else weightedMetricFn=get2(metric),metricName=metricNamePrefix+getLossOrMetricName(metric);let metricResult;nameScope(metricName,()=>{metricResult=weightedMetricFn}),appendMetric(i,metricName,metricResult)}})(outputMetrics)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(x,y,args={}){let batchSize=args.batchSize==null?32:args.batchSize;checkBatchSize(batchSize);let checkBatchAxis=!0,standardizedOuts=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);try{let ins=standardizedOuts[0].concat(standardizedOuts[1]);this.makeTestFunction();let f=this.testFunction,testOuts=this.testLoop(f,ins,batchSize,args.verbose,args.steps);return singletonOrArray(testOuts)}finally{disposeNewTensors(standardizedOuts[0],x),disposeNewTensors(standardizedOuts[1],y)}}async evaluateDataset(dataset,args){return this.makeTestFunction(),evaluateDataset(this,dataset,args)}checkNumSamples(ins,batchSize,steps,stepsName="steps"){let numSamples;if(steps!=null){if(numSamples=null,batchSize!=null)throw new ValueError(`If ${stepsName} is set, batchSize must be null or undefined.Got batchSize = ${batchSize}`)}else if(ins!=null)Array.isArray(ins)?numSamples=ins[0].shape[0]:numSamples=ins.shape[0];else throw new ValueError(`Either the input data should have a defined shape, or ${stepsName} shoud be specified.`);return numSamples}execute(inputs,outputs){if(Array.isArray(outputs)&&outputs.length===0)throw new ValueError("`outputs` is an empty Array, which is not allowed.");let outputsIsArray=Array.isArray(outputs),outputNames=outputsIsArray?outputs:[outputs],outputSymbolicTensors=this.retrieveSymbolicTensors(outputNames),feedDict=new FeedDict;if(inputs instanceof Tensor&&(inputs=[inputs]),Array.isArray(inputs)){if(inputs.length!==this.inputs.length)throw new ValueError(`The number of inputs provided (${inputs.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let i=0;ioutput.name);for(let i=0;i0){let remainingNames=[];throw outputSymbolicTensors.forEach((tensor2,i)=>{tensor2==null&&remainingNames.push(symbolicTensorNames[i])}),new ValueError(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(remainingNames)}`)}return outputSymbolicTensors}predictLoop(ins,batchSize=32,verbose=!1){return tidy(()=>{let numSamples=this.checkNumSamples(ins);if(verbose)throw new NotImplementedError("Verbose predictLoop() is not implemented yet.");let batches=makeBatches(numSamples,batchSize),outsBatches=this.outputs.map(output=>[]);for(let batchIndex=0;batchIndex{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],insBatch=sliceArrays(ins,batchStart,batchEnd),feeds=[];if(Array.isArray(insBatch))for(let i=0;ioutsBatches[i].push(batchOut));return singletonOrArray(outsBatches.map(batches2=>concat(batches2,0)))})}predict(x,args={}){let xsRank2OrHigher=ensureTensorsRank2OrHigher(x);checkInputData(xsRank2OrHigher,this.inputNames,this.feedInputShapes,!1);try{let batchSize=args.batchSize==null?32:args.batchSize;return checkBatchSize(batchSize),this.predictLoop(xsRank2OrHigher,batchSize)}finally{disposeNewTensors(xsRank2OrHigher,x)}}predictOnBatch(x){checkInputData(x,this.inputNames,this.feedInputShapes,!0);let batchSize=(Array.isArray(x)?x[0]:x).shape[0];return this.predictLoop(x,batchSize)}standardizeUserDataXY(x,y,checkBatchAxis=!0,batchSize){if(this.optimizer_==null)throw new RuntimeError("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let outputShapes=[];for(let i=0;i0&&x[0].shape[0]%batchSize!=0)throw new ValueError(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${batchSize}. Found: ${x[0].shape[0]} sample(s).`);return[x,y]}async standardizeUserData(x,y,sampleWeight,classWeight,checkBatchAxis=!0,batchSize){let[standardXs,standardYs]=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);if(sampleWeight!=null)throw new Error("sample weight is not supported yet.");let standardSampleWeights=null;if(classWeight!=null){let classWeights=standardizeClassWeights(classWeight,this.outputNames);standardSampleWeights=[];for(let i=0;i{let numSamples=this.checkNumSamples(ins,batchSize,steps,"steps"),outs=[];if(verbose>0)throw new NotImplementedError("Verbose mode is not implemented yet.");if(steps!=null)throw new NotImplementedError("steps mode in testLoop() is not implemented yet");{let batches=makeBatches(numSamples,batchSize),indexArray=tensor1d(range5(0,numSamples));for(let batchIndex=0;batchIndex1&&(newLabel+=`_${count(outLabels.slice(0,i),label)}`),dedupedOutLabels.push(newLabel)}return dedupedOutLabels}makeTrainFunction(){return data2=>{let lossValues=[],inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),sampleWeights=data2.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),metricsValues=[],totalLossFunction=()=>{let feeds=[];for(let i=0;i1&&i{totalLoss=add2(totalLoss,regularizerLoss)}),totalLoss},variables=this.collectedTrainableWeights.map(param=>param.read()),returnCost=!0;return[this.optimizer_.minimize(totalLossFunction,returnCost,variables)].concat(metricsValues)}}makeTestFunction(){this.testFunction=data2=>tidy(()=>{let valOutputs=[],totalLoss,inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),feeds=[];for(let i=0;itoSnakeCase(name))}else{let outputNames=Object.keys(this.loss);lossNames={};let losses4=this.loss;for(let outputName of outputNames)if(typeof losses4[outputName]=="string")lossNames[outputName]=toSnakeCase(losses4[outputName]);else throw new Error("Serialization of non-string loss is not supported.")}return lossNames}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[toSnakeCase(getLossOrMetricName(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(metric=>toSnakeCase(getLossOrMetricName(metric)));{let metricsIdentifiers={};for(let key in this.metrics)metricsIdentifiers[key]=toSnakeCase(getLossOrMetricName(this.metrics[key]));return metricsIdentifiers}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(trainingConfig){if(trainingConfig.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(trainingConfig.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(trainingConfig.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let tsConfig=convertPythonicToTs(trainingConfig.optimizer_config),optimizer=deserialize(tsConfig),loss;if(typeof trainingConfig.loss=="string")loss=toCamelCase(trainingConfig.loss);else if(Array.isArray(trainingConfig.loss))loss=trainingConfig.loss.map(lossEntry=>toCamelCase(lossEntry));else if(trainingConfig.loss!=null){loss={};for(let key in trainingConfig.loss)loss[key]=toCamelCase(trainingConfig.loss[key])}let metrics2;if(Array.isArray(trainingConfig.metrics))metrics2=trainingConfig.metrics.map(metric=>toCamelCase(metric));else if(trainingConfig.metrics!=null){metrics2={};for(let key in trainingConfig.metrics)metrics2[key]=toCamelCase(trainingConfig.metrics[key])}this.compile({loss,metrics:metrics2,optimizer})}async save(handlerOrURL,config2){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new ValueError(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new ValueError("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let weightDataAndSpecs=await io_exports.encodeWeights(this.getNamedWeights(config2)),returnString=!1,unusedArg=null,modelArtifacts={modelTopology:this.toJSON(unusedArg,returnString),format:LAYERS_MODEL_FORMAT_NAME,generatedBy:`TensorFlow.js tfjs-layers v${version10}`,convertedBy:null};if((config2==null?!1:config2.includeOptimizer)&&this.optimizer!=null){modelArtifacts.trainingConfig=this.getTrainingConfig();let weightType="optimizer",{data:optimizerWeightData,specs:optimizerWeightSpecs}=await io_exports.encodeWeights(await this.optimizer.getWeights(),weightType);weightDataAndSpecs.specs.push(...optimizerWeightSpecs),weightDataAndSpecs.data=io_exports.concatenateArrayBuffers([weightDataAndSpecs.data,optimizerWeightData])}if(this.userDefinedMetadata!=null){let checkSize=!0;checkUserDefinedMetadata(this.userDefinedMetadata,this.name,checkSize),modelArtifacts.userDefinedMetadata=this.userDefinedMetadata}return modelArtifacts.weightData=weightDataAndSpecs.data,modelArtifacts.weightSpecs=weightDataAndSpecs.specs,handlerOrURL.save(modelArtifacts)}setUserDefinedMetadata(userDefinedMetadata){checkUserDefinedMetadata(userDefinedMetadata,this.name),this.userDefinedMetadata=userDefinedMetadata}getUserDefinedMetadata(){return this.userDefinedMetadata}};LayersModel.className="Model";serialization_exports.registerClass(LayersModel);var Functional=class extends LayersModel{};Functional.className="Functional";serialization_exports.registerClass(Functional);async function modelFromJSON(modelAndWeightsConfig,customObjects){"modelTopology"in modelAndWeightsConfig||(modelAndWeightsConfig={modelTopology:modelAndWeightsConfig}),modelAndWeightsConfig=modelAndWeightsConfig;let modelTopology=modelAndWeightsConfig.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let tsConfig=convertPythonicToTs(modelTopology),model2=deserialize(tsConfig,customObjects);if(modelAndWeightsConfig.weightsManifest!=null){let weightValues=await io_exports.loadWeights(modelAndWeightsConfig.weightsManifest,modelAndWeightsConfig.pathPrefix,model2.weights.map(weight=>weight.originalName)),uniqueWeightValues={};for(let weight of model2.weights)uniqueWeightValues[weight.originalName]=weightValues[weight.originalName];model2.loadWeights(uniqueWeightValues),dispose(weightValues)}return model2}async function loadLayersModelInternal(pathOrIOHandler,options){if(options==null&&(options={}),typeof pathOrIOHandler=="string"){let handlers=io_exports.getLoadHandlers(pathOrIOHandler,options);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(pathOrIOHandler,options));else if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) load handlers for URL '${pathOrIOHandler}'`);pathOrIOHandler=handlers[0]}return loadLayersModelFromIOHandler(pathOrIOHandler,void 0,options)}async function loadLayersModelFromIOHandler(handler,customObjects,options){if(options==null&&(options={}),handler.load==null)throw new ValueError("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await handler.load(),modelTopology=artifacts.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let strict=options.strict==null?!0:options.strict,fastWeightInit=artifacts.weightData!=null&&artifacts.weightSpecs!=null&&strict,model2=deserialize(convertPythonicToTs(modelTopology),customObjects,fastWeightInit),trainingConfig=artifacts.trainingConfig;if(trainingConfig!=null&&model2.loadTrainingConfig(trainingConfig),artifacts.userDefinedMetadata!=null&&model2.setUserDefinedMetadata(artifacts.userDefinedMetadata),artifacts.weightData!=null){if(artifacts.weightSpecs==null)throw new ValueError("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights,optimizerWeights}=decodeModelAndOptimizerWeights(artifacts.weightData,artifacts.weightSpecs);model2.loadWeights(modelWeights,strict),model2.optimizer!=null&&optimizerWeights.length>0&&await model2.optimizer.setWeights(optimizerWeights),dispose(modelWeights),dispose(optimizerWeights.map(w=>w.tensor))}return model2}function decodeModelAndOptimizerWeights(buffer2,specs){let name2Tensor=io_exports.decodeWeights(buffer2,specs),modelWeights={},optimizerWeights=[];return specs.forEach(spec=>{spec.group==="optimizer"?optimizerWeights.push({name:spec.name,tensor:name2Tensor[spec.name]}):modelWeights[spec.name]=name2Tensor[spec.name]}),{modelWeights,optimizerWeights}}var Sequential=class extends LayersModel{constructor(args){super({inputs:[],outputs:[]});if(args=args||{},this.trainable=!0,this.built=!1,this.name=args.name!=null?args.name:getUid("sequential_"),args.layers!=null)for(let layer of args.layers)this.add(layer)}checkShape(layer){if(layer.inboundNodes[0].outputTensors[0].shape.some(x=>x<0))throw new ValueError(`Negative dimension size caused by adding layer ${layer.name} with input shape [${layer.inboundNodes[0].inputTensors[0].shape}]`)}add(layer){let isLayerModelInstance=layer instanceof Sequential||layer instanceof LayersModel,modelLayer;if(isLayerModelInstance){if(modelLayer=layer,modelLayer.outputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(modelLayer.inputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(layer.inboundNodes.length===0){if(layer.batchInputShape==null)throw new ValueError("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let x=Input({batchShape:layer.batchInputShape,dtype:layer.dtype,name:layer.name+"_input"});layer.apply(x)}if(isLayerModelInstance)this.outputs=modelLayer.outputs,this.inputs=modelLayer.inputs;else{if(layer.inboundNodes.length!==1)throw new ValueError(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${layer.name} which has ${layer.inboundNodes.length} pre-existing inbound connections.`);if(layer.inboundNodes[0].outputTensors.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[layer.inboundNodes[0].outputTensors[0]],this.inputs=getSourceInputs(this.outputs[0])}this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:pyListRepeat(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs[0].shape})}else{let outputTensor=layer.apply(this.outputs[0]);if(Array.isArray(outputTensor))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[outputTensor],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(layer),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let lastLayerIndex=this.layers.length-1;this.layers[lastLayerIndex].outboundNodes=[],this.outputs=[this.layers[lastLayerIndex].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(inputs,kwargs){return this.model==null&&this.build(),this.model.call(inputs,kwargs)}build(inputShape){if(getExactlyOneShape(inputShape),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new LayersModel({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(lineLength,positions,printFn=console.log){this.built||this.build(),super.summary(lineLength,positions,printFn)}setWeights(weights){this.model==null&&this.build(),this.model.setWeights(weights)}evaluate(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluate(x,y,args)}async evaluateDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluateDataset(dataset,args)}predict(x,args={}){return this.model==null&&this.build(),this.model.predict(x,args)}predictOnBatch(x){return this.model==null&&this.build(),this.model.predictOnBatch(x)}compile(args){this.build(),this.model.compile(args),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(optimizer){this.model.optimizer=optimizer}async fit(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fit(x,y,args)}async fitDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fitDataset(dataset,args)}async trainOnBatch(x,y){return this.model.trainOnBatch(x,y)}static fromConfig(cls,config2,customObjects={},fastWeightInit=!1){let configArray,extraModelConfig={};if(config2 instanceof Array){if(config2[0].className==null||config2[0].className==="Merge")throw new ValueError("Legacy serialization format not supported yet.");configArray=config2}else util_exports.assert(config2.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),configArray=config2.layers,delete config2.layers,extraModelConfig=config2;let model2=new cls(extraModelConfig);if(!(model2 instanceof Sequential))throw new NotImplementedError(`Sequential.fromConfig called on non-Sequential input: ${model2}`);for(let conf of configArray){let layer=deserialize(conf,void 0,fastWeightInit);fastWeightInit&&layer.setFastWeightInitDuringBuild(!0),model2.add(layer)}return model2}set stopTraining(stop){if(this.model==null)throw new ValueError("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=stop}get stopTraining(){if(this.model==null)throw new ValueError("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let layers=[];for(let layer of this.layers){let dict={};dict.className=layer.getClassName(),dict.config=layer.getConfig(),layers.push(dict)}return{name:this.name,layers}}};Sequential.className="Sequential";serialization_exports.registerClass(Sequential);function model(args){return new LayersModel(args)}function sequential(config2){return new Sequential(config2)}function loadLayersModel(pathOrIOHandler,options){return options==null&&(options={}),loadLayersModelInternal(pathOrIOHandler,options)}function input(config2){return Input(config2)}function registerCallbackConstructor(verbosityLevel,callbackConstructor){CallbackConstructorRegistry.registerCallbackConstructor(verbosityLevel,callbackConstructor)}var Activation=class extends serialization_exports.Serializable{getConfig(){return{}}},Elu2=class extends Activation{apply(x,alpha=1){return elu4(x,alpha)}};Elu2.className="elu";serialization_exports.registerClass(Elu2);var Selu2=class extends Activation{apply(x){return selu(x)}};Selu2.className="selu";serialization_exports.registerClass(Selu2);var Relu2=class extends Activation{apply(x){return relu(x)}};Relu2.className="relu";serialization_exports.registerClass(Relu2);var Relu62=class extends Activation{apply(x){return tidy(()=>minimum(6,relu(x)))}};Relu62.className="relu6";serialization_exports.registerClass(Relu62);var Linear=class extends Activation{apply(x){return x}};Linear.className="linear";serialization_exports.registerClass(Linear);var Sigmoid2=class extends Activation{apply(x){return sigmoid(x)}};Sigmoid2.className="sigmoid";serialization_exports.registerClass(Sigmoid2);var HardSigmoid=class extends Activation{apply(x){return hardSigmoid(x)}};HardSigmoid.className="hardSigmoid";serialization_exports.registerClass(HardSigmoid);var Softplus2=class extends Activation{apply(x){return softplus(x)}};Softplus2.className="softplus";serialization_exports.registerClass(Softplus2);var Softsign=class extends Activation{apply(x){return softsign(x)}};Softsign.className="softsign";serialization_exports.registerClass(Softsign);var Tanh2=class extends Activation{apply(x){return tanh2(x)}};Tanh2.className="tanh";serialization_exports.registerClass(Tanh2);var Softmax2=class extends Activation{apply(x,axis=-1){return softmax(x,axis)}};Softmax2.className="softmax";serialization_exports.registerClass(Softmax2);var LogSoftmax2=class extends Activation{apply(x,axis=-1){return logSoftmax(x,axis)}};LogSoftmax2.className="logSoftmax";serialization_exports.registerClass(LogSoftmax2);var Swish=class extends Activation{apply(x,alpha=1){return tidy(()=>sigmoid(x.mul(alpha)).mul(x))}};Swish.className="swish";serialization_exports.registerClass(Swish);function serializeActivation(activation2){return activation2.getClassName()}function deserializeActivation(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"activation")}function getActivation(identifier){if(identifier==null){let config2={};return config2.className="linear",config2.config={},deserializeActivation(config2)}if(typeof identifier=="string"){let config2={};return config2.className=identifier,config2.config={},deserializeActivation(config2)}else return identifier instanceof Activation?identifier:deserializeActivation(identifier)}function assertObjectArgs(args){if(args!=null&&typeof args!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${args}`)}var Regularizer=class extends serialization_exports.Serializable{},L1L2=class extends Regularizer{constructor(args){super();assertObjectArgs(args),this.l1=args==null||args.l1==null?.01:args.l1,this.l2=args==null||args.l2==null?.01:args.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(x){return tidy(()=>{let regularization=zeros([1]);return this.hasL1&&(regularization=add2(regularization,sum2(mul(this.l1,abs(x))))),this.hasL2&&(regularization=add2(regularization,sum2(mul(this.l2,square3(x))))),regularization.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(cls,config2){return new cls({l1:config2.l1,l2:config2.l2})}};L1L2.className="L1L2";serialization_exports.registerClass(L1L2);function l1(args){return assertObjectArgs(args),new L1L2({l1:args!=null?args.l1:null,l2:0})}function l2(args){return assertObjectArgs(args),new L1L2({l2:args!=null?args.l2:null,l1:0})}var REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={l1l2:"L1L2"};function serializeRegularizer(constraint){return serializeKerasObject(constraint)}function deserializeRegularizer(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"regularizer")}function getRegularizer(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config2={className:identifier in REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeRegularizer(config2)}else return identifier instanceof Regularizer?identifier:deserializeRegularizer(identifier)}var ReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null&&(this.maxValue=args.maxValue)}call(inputs,kwargs){inputs=getExactlyOneTensor(inputs);let output=relu(inputs);return this.maxValue!=null&&(output=clipByValue(output,0,this.maxValue)),output}computeOutputShape(inputShape){return inputShape}getConfig(){let config2={maxValue:this.maxValue},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};ReLU.className="ReLU";serialization_exports.registerClass(ReLU);var LeakyReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.DEFAULT_ALPHA=.3,args==null&&(args={}),this.alpha=args.alpha==null?this.DEFAULT_ALPHA:args.alpha}call(inputs,kwargs){let x=getExactlyOneTensor(inputs);return leakyRelu(x,this.alpha)}computeOutputShape(inputShape){return inputShape}getConfig(){let config2={alpha:this.alpha},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};LeakyReLU.className="LeakyReLU";serialization_exports.registerClass(LeakyReLU);var PReLU=class extends Layer{constructor(args){super(args==null?{}:args);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",args==null&&(args={}),this.supportsMasking=!0,this.alphaInitializer=getInitializer(args.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=getRegularizer(args.alphaRegularizer),this.alphaConstraint=getConstraint(args.alphaConstraint),args.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(args.sharedAxes))this.sharedAxes=args.sharedAxes;else if(typeof args.sharedAxes=="number")this.sharedAxes=[args.sharedAxes];else throw new ValueError(`Expected sharedAxes to be a number or an array of numbers, but got ${args.sharedAxes}`)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let paramShape=inputShape.slice(1);if(this.sharedAxes!=null)for(let i of this.sharedAxes)paramShape[i-1]=1;this.alpha=this.addWeight("alpha",paramShape,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let axes={};if(this.sharedAxes!=null)for(let i=1;i(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,1]):x))}function preprocessConv3DInput(x,dataFormat){return tidy(()=>(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,4,1]):x))}function conv1dWithBias(x,kernel,bias,strides=1,padding="valid",dataFormat,dilationRate=1){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.shape.length!==3)throw new ValueError(`The input of a conv1dWithBias operation should be 3, but is ${x.shape.length} instead.`);if(kernel.shape.length!==3)throw new ValueError(`The kernel for a conv1dWithBias operation should be 3, but is ${kernel.shape.length} instead`);if(bias!=null&&bias.shape.length!==1)throw new ValueError(`The bias for a conv1dWithBias operation should be 1, but is ${kernel.shape.length} instead`);if(dataFormat==="channelsFirst"&&(x=transpose(x,[0,2,1])),padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let y=conv1d(x,kernel,strides,padding==="same"?"same":"valid","NWC",dilationRate);return bias!=null&&(y=biasAdd(y,bias)),y})}function conv2dWithBiasActivation(x,kernel,bias,strides=[1,1],padding="valid",dataFormat,dilationRate,activation2=null){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==3&&x.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${x.rank}.`);if(kernel.rank!==3&&kernel.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${x.rank}.`);let y=preprocessConv2DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return y=fused_ops_exports.conv2d({x:y,filter:kernel,strides,pad:padding==="same"?"same":"valid",dilations:dilationRate,dataFormat:"NHWC",bias,activation:activation2}),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function conv3dWithBias(x,kernel,bias,strides=[1,1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==4&&x.rank!==5)throw new ValueError(`conv3dWithBias expects input to be of rank 4 or 5, but received ${x.rank}.`);if(kernel.rank!==4&&kernel.rank!==5)throw new ValueError(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${x.rank}.`);let y=preprocessConv3DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return y=conv3d(y,kernel,strides,padding==="same"?"same":"valid","NDHWC",dilationRate),bias!=null&&(y=biasAdd(y,bias)),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var BaseConv=class extends Layer{constructor(rank,args){super(args);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",BaseConv.verifyArgs(args),this.rank=rank,assertPositiveInteger(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new NotImplementedError(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=normalizeArray(args.kernelSize,rank,"kernelSize"),this.strides=normalizeArray(args.strides==null?1:args.strides,rank,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.activation=getActivation(args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=getConstraint(args.biasConstraint),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.dilationRate=normalizeArray(args.dilationRate==null?1:args.dilationRate,rank,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new ValueError(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new ValueError(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new ValueError(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(args){if(assert2("kernelSize"in args,"required key 'kernelSize' not in config"),typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,3))throw new ValueError(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(args.kernelSize)}.`)}getConfig(){let config2={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:serializeActivation(this.activation),useBias:this.useBias,biasInitializer:serializeInitializer(this.biasInitializer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},Conv=class extends BaseConv{constructor(rank,args){super(rank,args);this.kernel=null,Conv.verifyArgs(args),this.filters=args.filters,assertPositiveInteger(this.filters,"filters"),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([inputDim,this.filters]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[channelAxis]:inputDim}}],this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs,biasValue=this.bias==null?null:this.bias.read(),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName());if(fusedActivationName!=null&&this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate,fusedActivationName);else{if(this.rank===1)outputs=conv1dWithBias(inputs,this.kernel.read(),biasValue,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)outputs=conv3dWithBias(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new NotImplementedError("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(outputs=this.activation.apply(outputs))}return outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let newSpace=[],space=this.dataFormat==="channelsLast"?inputShape.slice(1,inputShape.length-1):inputShape.slice(2);for(let i=0;i 0 but got ${JSON.stringify(args.filters)}`)}},Conv2D2=class extends Conv{constructor(args){super(2,args);Conv2D2.verifyArgs(args)}getConfig(){let config2=super.getConfig();return delete config2.rank,config2}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,2))throw new ValueError(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv2D2.className="Conv2D";serialization_exports.registerClass(Conv2D2);var Conv3D2=class extends Conv{constructor(args){super(3,args);Conv3D2.verifyArgs(args)}getConfig(){let config2=super.getConfig();return delete config2.rank,config2}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!(Array.isArray(args.kernelSize)&&(args.kernelSize.length===1||args.kernelSize.length===3)))throw new ValueError(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(args.kernelSize)}.`)}};Conv3D2.className="Conv3D";serialization_exports.registerClass(Conv3D2);var Conv2DTranspose=class extends Conv2D2{constructor(args){super(args);if(this.inputSpec=[new InputSpec({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new ValueError(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length!==4)throw new ValueError("Input should have rank 4; Received input shape: "+JSON.stringify(inputShape));let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError("The channel dimension of the inputs should be defined. Found `None`.");let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([this.filters,inputDim]);this.kernel=this.addWeight("kernel",kernelShape,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new InputSpec({ndim:4,axes:{[channelAxis]:inputDim}})],this.built=!0}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);if(input2.shape.length!==4)throw new ValueError(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${input2.shape.length}`);let inputShape=input2.shape,batchSize=inputShape[0],hAxis,wAxis;this.dataFormat==="channelsFirst"?(hAxis=2,wAxis=3):(hAxis=1,wAxis=2);let height=inputShape[hAxis],width=inputShape[wAxis],kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1],outHeight=deconvLength(height,strideH,kernelH,this.padding),outWidth=deconvLength(width,strideW,kernelW,this.padding),outputShape=[batchSize,outHeight,outWidth,this.filters];this.dataFormat!=="channelsLast"&&(input2=transpose(input2,[0,2,3,1]));let outputs=conv2dTranspose(input2,this.kernel.read(),outputShape,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(outputs=transpose(outputs,[0,3,1,2])),this.bias!=null&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice(),channelAxis,heightAxis,widthAxis;this.dataFormat==="channelsFirst"?(channelAxis=1,heightAxis=2,widthAxis=3):(channelAxis=3,heightAxis=1,widthAxis=2);let kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1];return outputShape[channelAxis]=this.filters,outputShape[heightAxis]=deconvLength(outputShape[heightAxis],strideH,kernelH,this.padding),outputShape[widthAxis]=deconvLength(outputShape[widthAxis],strideW,kernelW,this.padding),outputShape}getConfig(){let config2=super.getConfig();return delete config2.dilationRate,config2}};Conv2DTranspose.className="Conv2DTranspose";serialization_exports.registerClass(Conv2DTranspose);var SeparableConv=class extends Conv{constructor(rank,config2){super(rank,config2);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,config2.filters==null)throw new ValueError("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(config2.kernelInitializer!=null||config2.kernelRegularizer!=null||config2.kernelConstraint!=null)throw new ValueError("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(config2.padding!=null&&config2.padding!=="same"&&config2.padding!=="valid")throw new ValueError(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(config2.padding)}`);this.depthMultiplier=config2.depthMultiplier==null?1:config2.depthMultiplier,this.depthwiseInitializer=getInitializer(config2.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=getRegularizer(config2.depthwiseRegularizer),this.depthwiseConstraint=getConstraint(config2.depthwiseConstraint),this.pointwiseInitializer=getInitializer(config2.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=getRegularizer(config2.pointwiseRegularizer),this.pointwiseConstraint=getConstraint(config2.pointwiseConstraint)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length{inputs=getExactlyOneTensor(inputs);let output;if(this.rank===1)throw new NotImplementedError("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(inputs=transpose(inputs,[0,2,3,1])),output=separableConv2d(inputs,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(output=biasAdd(output,this.bias.read(),this.dataFormat)),this.activation!=null&&(output=this.activation.apply(output)),this.dataFormat==="channelsFirst"&&(output=transpose(output,[0,3,1,2])),output})}getConfig(){let config2=super.getConfig();return delete config2.rank,delete config2.kernelInitializer,delete config2.kernelRegularizer,delete config2.kernelConstraint,config2.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config2.pointwiseInitializer=serializeInitializer(this.pointwiseInitializer),config2.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config2.pointwiseRegularizer=serializeRegularizer(this.pointwiseRegularizer),config2.depthwiseConstraint=serializeConstraint(this.depthwiseConstraint),config2.pointwiseConstraint=serializeConstraint(this.pointwiseConstraint),config2}};SeparableConv.className="SeparableConv";var SeparableConv2D=class extends SeparableConv{constructor(args){super(2,args)}};SeparableConv2D.className="SeparableConv2D";serialization_exports.registerClass(SeparableConv2D);var Conv1D=class extends Conv{constructor(args){super(1,args);Conv1D.verifyArgs(args),this.inputSpec=[{ndim:3}]}getConfig(){let config2=super.getConfig();return delete config2.rank,delete config2.dataFormat,config2}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,1))throw new ValueError(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv1D.className="Conv1D";serialization_exports.registerClass(Conv1D);var Cropping2D=class extends Layer{constructor(args){super(args);typeof args.cropping=="number"?this.cropping=[[args.cropping,args.cropping],[args.cropping,args.cropping]]:typeof args.cropping[0]=="number"?this.cropping=[[args.cropping[0],args.cropping[0]],[args.cropping[1],args.cropping[1]]]:this.cropping=args.cropping,this.dataFormat=args.dataFormat===void 0?"channelsLast":args.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(inputShape){return this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],inputShape[2]-this.cropping[0][0]-this.cropping[0][1],inputShape[3]-this.cropping[1][0]-this.cropping[1][1]]:[inputShape[0],inputShape[1]-this.cropping[0][0]-this.cropping[0][1],inputShape[2]-this.cropping[1][0]-this.cropping[1][1],inputShape[3]]}call(inputs,kwargs){return tidy(()=>{if(inputs=getExactlyOneTensor(inputs),this.dataFormat==="channelsLast"){let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let config2={cropping:this.cropping,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Cropping2D.className="Cropping2D";serialization_exports.registerClass(Cropping2D);var UpSampling2D=class extends Layer{constructor(args){super(args);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=args.size==null?this.DEFAULT_SIZE:args.size,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.interpolation=args.interpolation==null?"nearest":args.interpolation,checkInterpolationFormat(this.interpolation)}computeOutputShape(inputShape){if(this.dataFormat==="channelsFirst"){let height=inputShape[2]==null?null:this.size[0]*inputShape[2],width=inputShape[3]==null?null:this.size[1]*inputShape[3];return[inputShape[0],inputShape[1],height,width]}else{let height=inputShape[1]==null?null:this.size[0]*inputShape[1],width=inputShape[2]==null?null:this.size[1]*inputShape[2];return[inputShape[0],height,width,inputShape[3]]}}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs),inputShape=input2.shape;if(this.dataFormat==="channelsFirst"){input2=transpose(input2,[0,2,3,1]);let height=this.size[0]*inputShape[2],width=this.size[1]*inputShape[3],resized=this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width]);return transpose(resized,[0,3,1,2])}else{let height=this.size[0]*inputShape[1],width=this.size[1]*inputShape[2];return this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width])}})}getConfig(){let config2={size:this.size,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};UpSampling2D.className="UpSampling2D";serialization_exports.registerClass(UpSampling2D);function depthwiseConv2d4(x,depthwiseKernel,strides=[1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat);let y=preprocessConv2DInput(x,dataFormat);if(x.rank!==4)throw new ValueError(`Input for depthwiseConv2d is required to be 4-D, but is instead ${x.rank}-D`);if(depthwiseKernel.rank!==4)throw new ValueError(`depthwiseKernel is required to be 4-D, but is instead ${depthwiseKernel.rank}-D`);return y=depthwiseConv2d(y,depthwiseKernel,strides,padding==="same"?"same":"valid","NHWC",dilationRate),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}var DepthwiseConv2D=class extends BaseConv{constructor(args){super(2,args);this.depthwiseKernel=null,this.depthMultiplier=args.depthMultiplier==null?1:args.depthMultiplier,this.depthwiseInitializer=getInitializer(args.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=getConstraint(args.depthwiseConstraint),this.depthwiseRegularizer=getRegularizer(args.depthwiseRegularizer)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<4)throw new ValueError(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(inputShape)}.`);let channelAxis=this.dataFormat==="channelsFirst"?1:3;if(inputShape[channelAxis]==null||inputShape[channelAxis]<0)throw new ValueError(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${inputShape[channelAxis]}).`);let inputDim=inputShape[channelAxis],depthwiseKernelShape=[this.kernelSize[0],this.kernelSize[1],inputDim,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",depthwiseKernelShape,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[inputDim*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs=depthwiseConv2d4(inputs,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],outFilters=this.dataFormat==="channelsFirst"?inputShape[1]*this.depthMultiplier:inputShape[3]*this.depthMultiplier,outRows=convOutputLength(rows,this.kernelSize[0],this.padding,this.strides[0]),outCols=convOutputLength(cols,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[inputShape[0],outFilters,outRows,outCols]:[inputShape[0],outRows,outCols,outFilters]}getConfig(){let config2=super.getConfig();return config2.depthMultiplier=this.depthMultiplier,config2.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config2.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config2.depthwiseConstraint=serializeConstraint(this.depthwiseRegularizer),config2}};DepthwiseConv2D.className="DepthwiseConv2D";serialization_exports.registerClass(DepthwiseConv2D);function standardizeArgs(inputs,initialState,constants,numConstants){if(Array.isArray(inputs)){if(initialState!=null||constants!=null)throw new ValueError("When inputs is an array, neither initialState or constants should be provided");numConstants!=null&&(constants=inputs.slice(inputs.length-numConstants,inputs.length),inputs=inputs.slice(0,inputs.length-numConstants)),inputs.length>1&&(initialState=inputs.slice(1,inputs.length)),inputs=inputs[0]}function toListOrNull(x){return x==null||Array.isArray(x)?x:[x]}return initialState=toListOrNull(initialState),constants=toListOrNull(constants),{inputs,initialState,constants}}function rnn(stepFunction,inputs,initialStates,goBackwards=!1,mask,constants,unroll=!1,needPerStepOutputs=!1){return tidy(()=>{let ndim=inputs.shape.length;if(ndim<3)throw new ValueError(`Input should be at least 3D, but is ${ndim}D.`);let axes=[1,0].concat(range5(2,ndim));if(inputs=transpose(inputs,axes),constants!=null)throw new NotImplementedError("The rnn() functoin of the deeplearn.js backend does not support constants yet.");unroll&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),mask!=null&&(mask=mask.asType("bool").asType("float32"),mask.rank===ndim-1&&(mask=expandDims(mask,-1)),mask=transpose(mask,axes)),goBackwards&&(inputs=reverse(inputs,0),mask!=null&&(mask=reverse(mask,0)));let perStepOutputs=[],lastOutput,states=initialStates,timeSteps=inputs.shape[0],perStepInputs=unstack(inputs),perStepMasks;mask!=null&&(perStepMasks=unstack(mask));for(let t=0;tstepFunction(currentInput,states));if(mask==null)lastOutput=stepOutputs[0],states=stepOutputs[1];else{let maskedOutputs=tidy(()=>{let stepMask=perStepMasks[t],negStepMask=onesLike(stepMask).sub(stepMask),output=stepOutputs[0].mul(stepMask).add(states[0].mul(negStepMask)),newStates=states.map((state,i)=>stepOutputs[1][i].mul(stepMask).add(state.mul(negStepMask)));return{output,newStates}});lastOutput=maskedOutputs.output,states=maskedOutputs.newStates}needPerStepOutputs&&perStepOutputs.push(lastOutput)}let outputs;return needPerStepOutputs&&(outputs=stack(perStepOutputs,1)),[lastOutput,outputs,states]})}var RNN=class extends Layer{constructor(args){super(args);let cell;if(args.cell==null)throw new ValueError("cell property is missing for the constructor of RNN.");if(Array.isArray(args.cell)?cell=new StackedRNNCells({cells:args.cell}):cell=args.cell,cell.stateSize==null)throw new ValueError("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=cell,this.returnSequences=args.returnSequences==null?!1:args.returnSequences,this.returnState=args.returnState==null?!1:args.returnState,this.goBackwards=args.goBackwards==null?!1:args.goBackwards,this._stateful=args.stateful==null?!1:args.stateful,this.unroll=args.unroll==null?!1:args.unroll,this.supportsMasking=!0,this.inputSpec=[new InputSpec({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return range5(0,numStates).map(x=>null)}else return this.states_}setStates(states){this.states_=states}computeOutputShape(inputShape){isArrayOfShapes(inputShape)&&(inputShape=inputShape[0]),inputShape=inputShape;let stateSize=this.cell.stateSize;Array.isArray(stateSize)||(stateSize=[stateSize]);let outputDim=stateSize[0],outputShape;if(this.returnSequences?outputShape=[inputShape[0],inputShape[1],outputDim]:outputShape=[inputShape[0],outputDim],this.returnState){let stateShape=[];for(let dim of stateSize)stateShape.push([inputShape[0],dim]);return[outputShape].concat(stateShape)}else return outputShape}computeMask(inputs,mask){return tidy(()=>{Array.isArray(mask)&&(mask=mask[0]);let outputMask=this.returnSequences?mask:null;if(this.returnState){let stateMask=this.states.map(s=>null);return[outputMask].concat(stateMask)}else return outputMask})}get states(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,output=[];for(let i=0;ispec.shape[spec.shape.length-1]),stateSize))throw new ValueError(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=stateSize.map(dim=>new InputSpec({shape:[null,dim]}));this.stateful&&this.resetStates()}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let batchSize=this.inputSpec[0].shape[0];if(batchSize==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_=[zeros([batchSize,this.cell.stateSize])];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_[0]=zeros([batchSize,this.cell.stateSize]);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training===!0?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants;let additionalInputs=[],additionalSpecs=[];if(initialState!=null){kwargs.initialState=initialState,additionalInputs=additionalInputs.concat(initialState),this.stateSpec=[];for(let state of initialState)this.stateSpec.push(new InputSpec({shape:state.shape}));additionalSpecs=additionalSpecs.concat(this.stateSpec)}if(constants!=null&&(kwargs.constants=constants,additionalInputs=additionalInputs.concat(constants),this.numConstants=constants.length),additionalInputs[0]instanceof SymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;inputs=getExactlyOneTensor(inputs),initialState==null&&(this.stateful?initialState=this.states_:initialState=this.getInitialState(inputs));let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(initialState.length!==numStates)throw new ValueError(`RNN Layer has ${numStates} state(s) but was passed ${initialState.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let cellCallKwargs={training},rnnOutputs=rnn((inputs2,states2)=>{let outputs2=this.cell.call([inputs2].concat(states2),cellCallKwargs);return[outputs2[0],outputs2.slice(1)]},inputs,initialState,this.goBackwards,mask,null,this.unroll,this.returnSequences),lastOutput=rnnOutputs[0],outputs=rnnOutputs[1],states=rnnOutputs[2];this.stateful&&this.resetStates(states,training);let output=this.returnSequences?outputs:lastOutput;return this.returnState?[output].concat(states):output})}getInitialState(inputs){return tidy(()=>{let initialState=zeros(inputs.shape);return initialState=sum2(initialState,[1,2]),initialState=expandDims5(initialState),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(dim=>dim>1?tile5(initialState,[1,dim]):initialState):this.cell.stateSize>1?[tile5(initialState,[1,this.cell.stateSize])]:[initialState]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(value)}getConfig(){let baseConfig=super.getConfig(),config2={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(config2.numConstants=this.numConstants);let cellConfig=this.cell.getConfig();return this.getClassName()===RNN.className&&(config2.cell={className:this.cell.getClassName(),config:cellConfig}),Object.assign({},cellConfig,baseConfig,config2)}static fromConfig(cls,config2,customObjects={}){let cellConfig=config2.cell,cell=deserialize(cellConfig,customObjects);return new cls(Object.assign(config2,{cell}))}};RNN.className="RNN";serialization_exports.registerClass(RNN);var RNNCell=class extends Layer{},SimpleRNNCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation==null?this.DEFAULT_ACTIVATION:args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape),this.kernel=this.addWeight("kernel",[inputShape[inputShape.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`SimpleRNNCell expects 2 input Tensors, got ${inputs.length}.`);let prevOutput=inputs[1];inputs=inputs[0];let training=kwargs.training==null?!1:kwargs.training;0onesLike(inputs),rate:this.dropout,training})),0onesLike(prevOutput),rate:this.recurrentDropout,training}));let h,dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask;dpMask!=null?h=dot2(mul(inputs,dpMask),this.kernel.read()):h=dot2(inputs,this.kernel.read()),this.bias!=null&&(h=biasAdd(h,this.bias.read())),recDpMask!=null&&(prevOutput=mul(prevOutput,recDpMask));let output=add2(h,dot2(prevOutput,this.recurrentKernel.read()));return this.activation!=null&&(output=this.activation.apply(output)),[output,output]})}getConfig(){let baseConfig=super.getConfig(),config2={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),recurrentInitializer:serializeInitializer(this.recurrentInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),recurrentRegularizer:serializeRegularizer(this.recurrentRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),recurrentConstraint:serializeConstraint(this.recurrentConstraint),biasConstraint:serializeConstraint(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},baseConfig,config2)}};SimpleRNNCell.className="SimpleRNNCell";serialization_exports.registerClass(SimpleRNNCell);var SimpleRNN=class extends RNN{constructor(args){args.cell=new SimpleRNNCell(args),super(args)}call(inputs,kwargs){return tidy(()=>{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config2){return new cls(config2)}};SimpleRNN.className="SimpleRNN";serialization_exports.registerClass(SimpleRNN);var GRUCell=class extends RNNCell{constructor(args){super(args);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.resetAfter)throw new ValueError("GRUCell does not support reset_after parameter set to true.");this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`GRUCell expects 2 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training==null?!1:kwargs.training,hTMinus1=inputs[1];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:3})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:3}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,z,r,hh;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config2){return config2.implmentation===0&&(config2.implementation=1),new cls(config2)}};GRU.className="GRU";serialization_exports.registerClass(GRU);var LSTMCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=args.unitForgetBias,this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let biasInitializer;if(this.useBias){if(this.unitForgetBias){let capturedBiasInit=this.biasInitializer,capturedUnits=this.units;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let bI=capturedBiasInit.apply([capturedUnits]),bF=new Ones().apply([capturedUnits]),bCAndH=capturedBiasInit.apply([capturedUnits*2]);return concatAlongFirstAxis(concatAlongFirstAxis(bI,bF),bCAndH)}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training;if(inputs=inputs,inputs.length!==3)throw new ValueError(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let hTMinus1=inputs[1],cTMinus1=inputs[2];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:4})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:4}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,i,f,c,o;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config2){return config2.implmentation===0&&(config2.implementation=1),new cls(config2)}};LSTM.className="LSTM";serialization_exports.registerClass(LSTM);var StackedRNNCells=class extends RNNCell{constructor(args){super(args);this.cells=args.cells}get stateSize(){let stateSize=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?stateSize.push(...cell.stateSize):stateSize.push(cell.stateSize);return stateSize}call(inputs,kwargs){return tidy(()=>{inputs=inputs;let states=inputs.slice(1),nestedStates=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?nestedStates.push(states.splice(0,cell.stateSize.length)):nestedStates.push(states.splice(0,1));nestedStates.reverse();let newNestedStates=[],callInputs;for(let i=0;i{nameScope(`RNNCell_${i}`,()=>{cell.build(inputShape),Array.isArray(cell.stateSize)?outputDim=cell.stateSize[0]:outputDim=cell.stateSize,inputShape=[inputShape[0],outputDim]})}),this.built=!0}getConfig(){let baseConfig=super.getConfig(),getCellConfig=cell=>({className:cell.getClassName(),config:cell.getConfig()}),config2={cells:this.cells.map(getCellConfig)};return Object.assign({},baseConfig,config2)}static fromConfig(cls,config2,customObjects={}){let cells=[];for(let cellConfig of config2.cells)cells.push(deserialize(cellConfig,customObjects));return new cls({cells})}get trainableWeights(){if(!this.trainable)return[];let weights=[];for(let cell of this.cells)weights.push(...cell.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let cell of this.cells)trainableWeights.push(...cell.trainableWeights);return trainableWeights.concat(weights)}return weights}getWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.weights);return batchGetValue(weights)}setWeights(weights){let tuples=[];for(let cell of this.cells){let numParams=cell.weights.length,inputWeights=weights.splice(numParams);for(let i=0;idropout2(ones4(),rate),createMask=()=>inTrainPhase(droppedInputs,ones4,training);return!count2||count2<=1?keep(createMask().clone()):Array(count2).fill(void 0).map(createMask).map(m=>keep(m.clone()))}var __rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i{if(this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),kwargs&&kwargs.constants)throw new ValueError("ConvRNN2D cell does not support constants");let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}computeOutputShape(inputShape){let outShape=this.computeSingleOutputShape(inputShape);return this.returnSequences||(outShape=[outShape[0],...outShape.slice(2)]),this.returnState&&(outShape=[outShape,...Array(2).fill([inputShape[0],...outShape.slice(-3)])]),outShape}getInitialState(inputs){return tidy(()=>{let{stateSize}=this.cell,inputShape=inputs.shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)],initialState=zeros(stateShape);return Array.isArray(stateSize)?Array(stateSize.length).fill(initialState):[initialState]})}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let inputShape=this.inputSpec[0].shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)];if(inputShape[0]==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_=[zeros(stateShape)];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_[0]=zeros(stateShape);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}computeSingleOutputShape(inputShape){let{dataFormat,filters,kernelSize,padding,strides,dilationRate}=this.cell,isChannelsFirst=dataFormat==="channelsFirst",h=inputShape[isChannelsFirst?3:2],w=inputShape[isChannelsFirst?4:3],hOut=convOutputLength(h,kernelSize[0],padding,strides[0],dilationRate[0]),wOut=convOutputLength(w,kernelSize[1],padding,strides[1],dilationRate[1]);return[...inputShape.slice(0,2),...isChannelsFirst?[filters,hOut,wOut]:[hOut,wOut,filters]]}};ConvRNN2D.className="ConvRNN2D";var ConvLSTM2DCell=class extends LSTMCell{constructor(args){let{filters,kernelSize,strides,padding,dataFormat,dilationRate}=args;super(Object.assign({},args,{units:filters}));this.filters=filters,assertPositiveInteger(this.filters,"filters"),this.kernelSize=normalizeArray(kernelSize,2,"kernelSize"),this.kernelSize.forEach(size=>assertPositiveInteger(size,"kernelSize")),this.strides=normalizeArray(strides||1,2,"strides"),this.strides.forEach(stride=>assertPositiveInteger(stride,"strides")),this.padding=padding||"valid",checkPaddingMode(this.padding),this.dataFormat=dataFormat||"channelsLast",checkDataFormat(this.dataFormat),this.dilationRate=normalizeArray(dilationRate||1,2,"dilationRate"),this.dilationRate.forEach(rate=>assertPositiveInteger(rate,"dilationRate"))}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],numOfKernels=4,kernelShape=this.kernelSize.concat([inputDim,this.filters*numOfKernels]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let recurrentKernelShape=this.kernelSize.concat([this.filters,this.filters*numOfKernels]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",recurrentKernelShape,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let biasInitializer;if(this.unitForgetBias){let init2=this.biasInitializer,filters=this.filters;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let biasI=init2.apply([filters]),biasF=ones2([filters]),biasCAndO=init2.apply([filters*2]);return concatenate([biasI,biasF,biasCAndO])}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*numOfKernels],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs.length!==3)throw new ValueError(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training||!1,x=inputs[0],hTMinus1=inputs[1],cTMinus1=inputs[2],numOfKernels=4;0onesLike(x),rate:this.dropout,training,count:numOfKernels}));let dropoutMask=this.dropoutMask,applyDropout=(x2,mask,index)=>!mask||!mask[index]?x2:mul(mask[index],x2),xI=applyDropout(x,dropoutMask,0),xF=applyDropout(x,dropoutMask,1),xC=applyDropout(x,dropoutMask,2),xO=applyDropout(x,dropoutMask,3);0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:numOfKernels}));let recDropoutMask=this.recurrentDropoutMask,hI=applyDropout(hTMinus1,recDropoutMask,0),hF=applyDropout(hTMinus1,recDropoutMask,1),hC=applyDropout(hTMinus1,recDropoutMask,2),hO=applyDropout(hTMinus1,recDropoutMask,3),kernelChannelAxis=3,[kernelI,kernelF,kernelC,kernelO]=split(this.kernel.read(),numOfKernels,kernelChannelAxis),[biasI,biasF,biasC,biasO]=this.useBias?split(this.bias.read(),numOfKernels):[null,null,null,null];xI=this.inputConv(xI,kernelI,biasI,this.padding),xF=this.inputConv(xF,kernelF,biasF,this.padding),xC=this.inputConv(xC,kernelC,biasC,this.padding),xO=this.inputConv(xO,kernelO,biasO,this.padding);let[recKernelI,recKernelF,recKernelC,recKernelO]=split(this.recurrentKernel.read(),numOfKernels,kernelChannelAxis);hI=this.recurrentConv(hI,recKernelI),hF=this.recurrentConv(hF,recKernelF),hC=this.recurrentConv(hC,recKernelC),hO=this.recurrentConv(hO,recKernelO);let i=this.recurrentActivation.apply(add2(xI,hI)),f=this.recurrentActivation.apply(add2(xF,hF)),c=add2(mul(f,cTMinus1),mul(i,this.activation.apply(add2(xC,hC)))),h=mul(this.recurrentActivation.apply(add2(xO,hO)),this.activation.apply(c));return[h,h,c]})}getConfig(){let _a=super.getConfig(),{units:_}=_a,baseConfig=__rest(_a,["units"]),config2={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},baseConfig,config2)}inputConv(x,w,b,padding){let out=conv2d(x,w,this.strides,padding||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return b?biasAdd(out,b,this.dataFormat):out}recurrentConv(x,w){return conv2d(x,w,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};ConvLSTM2DCell.className="ConvLSTM2DCell";serialization_exports.registerClass(ConvLSTM2DCell);var ConvLSTM2D=class extends ConvRNN2D{constructor(args){let cell=new ConvLSTM2DCell(args);super(Object.assign({},args,{cell}))}static fromConfig(cls,config2){return new cls(config2)}};ConvLSTM2D.className="ConvLSTM2D";serialization_exports.registerClass(ConvLSTM2D);var Dropout=class extends Layer{constructor(args){super(args);this.rate=Math.max(Math.min(args.rate,1),0),this.noiseShape=args.noiseShape,this.seed=args.seed,this.supportsMasking=!0}getNoiseShape(input2){if(this.noiseShape==null)return this.noiseShape;let inputShape=input2.shape,noiseShape=[];for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(0dropout2(input2,this.rate,noiseShape,this.seed),()=>input2,training)}return inputs})}getConfig(){let config2={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}dispose(){return super.dispose()}};Dropout.className="Dropout";serialization_exports.registerClass(Dropout);var SpatialDropout1D=class extends Dropout{constructor(args){super(args);this.inputSpec=[{ndim:3}]}getNoiseShape(input2){let inputShape=input2.shape;return[inputShape[0],1,inputShape[2]]}};SpatialDropout1D.className="SpatialDropout1D";serialization_exports.registerClass(SpatialDropout1D);var Dense=class extends Layer{constructor(args){super(args);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.batchInputShape==null&&args.inputShape==null&&args.inputDim!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),this.batchInputShape=[batchSize,args.inputDim]}this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation),args.useBias!=null&&(this.useBias=args.useBias),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputLastDim=inputShape[inputShape.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[inputLastDim,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:inputLastDim}}],this.built=!0}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return outputShape[outputShape.length-1]=this.units,outputShape}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName()),output;return fusedActivationName!=null?output=dot2(input2,this.kernel.read(),fusedActivationName,this.bias?this.bias.read():null):(output=dot2(input2,this.kernel.read()),this.bias!=null&&(output=biasAdd(output,this.bias.read())),this.activation!=null&&(output=this.activation.apply(output))),output})}getConfig(){let config2={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Dense.className="Dense";serialization_exports.registerClass(Dense);var Flatten=class extends Layer{constructor(args){args=args||{},super(args),this.inputSpec=[{minNDim:3}],this.dataFormat=args.dataFormat}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);for(let dim of inputShape.slice(1))if(dim==null)throw new ValueError(`The shape of the input to "Flatten" is not fully defined (got ${inputShape.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[inputShape[0],arrayProd(inputShape,1)]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(this.dataFormat==="channelsFirst"&&input2.rank>1){let permutation=[0];for(let i=2;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.activation.apply(input2)})}getConfig(){let config2={activation:serializeActivation(this.activation)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Activation2.className="Activation";serialization_exports.registerClass(Activation2);var RepeatVector=class extends Layer{constructor(args){super(args);this.n=args.n,this.inputSpec=[{ndim:2}]}computeOutputShape(inputShape){return[inputShape[0],this.n,inputShape[1]]}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),repeat(inputs,this.n)))}getConfig(){let config2={n:this.n},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};RepeatVector.className="RepeatVector";serialization_exports.registerClass(RepeatVector);var Reshape2=class extends Layer{constructor(args){super(args);this.targetShape=args.targetShape;for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,outputShape=inputShape.slice(0,1).concat(this.fixUnknownDimension(inputShape.slice(1),this.targetShape));return input2.reshape(outputShape)})}getConfig(){let config2={targetShape:this.targetShape},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Reshape2.className="Reshape";serialization_exports.registerClass(Reshape2);var Permute=class extends Layer{constructor(args){super(args);if(args.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(args.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${args.dims} instead.`);let expectedSortedIndices=range5(1,args.dims.length+1);if(!util_exports.arraysEqual(args.dims.slice().sort(),expectedSortedIndices))throw new Error("Invalid permutation `dims`: "+JSON.stringify(args.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=args.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new InputSpec({ndim:this.dims.length+1})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return this.dims.forEach((dim,i)=>{outputShape[i+1]=inputShape[dim]}),outputShape}call(inputs,kwargs){return transpose(getExactlyOneTensor(inputs),this.dimsIncludingBatch)}getConfig(){let config2={dims:this.dims},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Permute.className="Permute";serialization_exports.registerClass(Permute);var Masking=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null?this.maskValue=args.maskValue==null?0:args.maskValue:this.maskValue=0}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={maskValue:this.maskValue};return Object.assign(config2,baseConfig),config2}computeMask(inputs,mask){let input2=getExactlyOneTensor(inputs),axis=-1;return any(notEqual(input2,this.maskValue),axis)}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),axis=-1,keepDims=!0,booleanMask=any(notEqual(input2,this.maskValue),axis,keepDims);return input2.mul(booleanMask.asType(input2.dtype))})}};Masking.className="Masking";serialization_exports.registerClass(Masking);var Embedding=class extends Layer{constructor(args){super(args);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",args.batchInputShape==null&&args.inputShape==null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),args.inputLength==null?this.batchInputShape=[batchSize,null]:this.batchInputShape=[batchSize].concat(toList(args.inputLength))}this.inputDim=args.inputDim,assertPositiveInteger(this.inputDim,"inputDim"),this.outputDim=args.outputDim,assertPositiveInteger(this.outputDim,"outputDim"),this.embeddingsInitializer=getInitializer(args.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=getRegularizer(args.embeddingsRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.embeddingsConstraint=getConstraint(args.embeddingsConstraint),this.maskZero=args.maskZero,this.supportsMasking=args.maskZero,this.inputLength=args.inputLength}build(inputShape){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(inputShape){}computeMask(inputs,mask){return tidy(()=>this.maskZero?(inputs=getExactlyOneTensor(inputs),notEqual(inputs,zerosLike(inputs))):null)}computeOutputShape(inputShape){if(inputShape=getExactlyOneShape(inputShape),this.inputLength==null)return[...inputShape,this.outputDim];let inLens=toList(this.inputLength);if(inLens.length!==inputShape.length-1)throw new ValueError(`"inputLength" is ${this.inputLength}, but received input shape has shape ${inputShape}`);{let i=0;for(let k=0;k{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return input2.dtype!=="int32"&&(input2=cast5(input2,"int32")),gather2(this.embeddings.read(),input2.as1D()).reshape(getExactlyOneShape(this.computeOutputShape(input2.shape)))})}getConfig(){let config2={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:serializeInitializer(this.embeddingsInitializer),embeddingsRegularizer:serializeRegularizer(this.embeddingsRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),embeddingsConstraint:serializeConstraint(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Embedding.className="Embedding";serialization_exports.registerClass(Embedding);var Merge=class extends Layer{constructor(args){super(args||{});this.supportsMasking=!0}mergeFunction(inputs){throw new NotImplementedError}computeElementwiseOpOutputShape(shape1,shape2){if(shape1==null||shape2==null)return null;if(shape1.length1)throw new ValueError(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(inputShape)}.`);let outputShape=inputShape[0]==null?null:inputShape[0].slice(1);for(let i=1;ishape.length);inputShape.indexOf(null)===-1&&unique4(allRanks).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,this.reshapeRequired){let reshapedInputs=[],inputDims=inputs.map(input2=>input2.rank);if(inputDims.indexOf(null)===-1){let maxNDim=max5(inputDims);for(let x of inputs){let xNDim=x.rank;for(let k=0;k1){let dims=range5(1,xNDim).concat([0]);reshapedInputs.push(transpose(x,dims)),transposed=!0}else reshapedInputs.push(x)}let y=this.mergeFunction(reshapedInputs),yNDim=y.rank;if(transposed){if(yNDim==null){let yShape=y.shape,yNDim2=yShape.length,batchSize=yShape[yNDim2-1],newShape=[batchSize].concat(yShape.slice(0,yShape.length-1));y=transpose(y.reshape([-1,batchSize]),[1,0]).reshape(newShape)}else if(yNDim>1){let dims=[yNDim-1].concat(range5(0,yNDim-1));y=transpose(y,dims)}}return y}}else return this.mergeFunction(inputs)})}computeOutputShape(inputShape){inputShape=inputShape;let outputShape;inputShape[0]==null?outputShape=null:outputShape=inputShape[0].slice(1);for(let i=1;i{if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an Array");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an Array");if(mask.length!==inputs.length)throw new ValueError(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${inputs.length} vs ${mask.length})`);if(mask.every(m=>m==null))return null;mask=mask.map(m=>m==null?m:expandDims(m,0));let output=mask[0];for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0];for(let i=1;i{let output=inputs[0];for(let i=1;i1)throw new ValueError("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(inputShape))}mergeFunction(inputs){return tidy(()=>concatenate(inputs,this.axis))}computeOutputShape(inputShape){if(!(Array.isArray(inputShape)&&Array.isArray(inputShape[0])))throw new ValueError("A `Concatenate` layer should be called on a list of inputs.");let inputShapes=inputShape,outputShape=inputShapes[0].slice(),axis=this.axis<0?outputShape.length+this.axis:this.axis;for(let shape of inputShapes.slice(1)){if(outputShape[axis]==null||shape[axis]==null){outputShape[axis]=null;break}outputShape[axis]+=shape[axis]}return outputShape}computeMask(inputs,mask){if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an array for Concatenate");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an array for Concatenate");if(mask.length!==inputs.length)throw new ValueError(`Mismatch in the length of mask (${mask.length}) and the legnth of inputs (${inputs.length})`);return tidy(()=>{let allNullMasks=!0;if(mask.forEach(m=>{if(m!=null){allNullMasks=!1;return}}),allNullMasks)return null;let outputMasks=[];for(let i=0;i3||y.shape.length>3)throw new NotImplementedError("batchDot is not implemented for tensors of 4D or higher rank yet");if(util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${x.shape.length}`),util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${y.shape.length}`),typeof axes=="number"&&(axes=[axes,axes]),x.dtype==="complex64"||y.dtype==="complex64")throw new NotImplementedError("batchDot is not implemented for complex64-type Tensors yet.");let xNDim=x.shape.length,yNDim=y.shape.length;axes==null&&(axes=[xNDim-1,yNDim-2]);let axesArray=axes;return tidy(()=>{let diff;if(xNDim>yNDim){diff=xNDim-yNDim;let diffShape=[];for(let i=0;ixNDim){diff=yNDim-xNDim;let diffShape=[];for(let i=0;i0){let idx;xNDim>yNDim?idx=xNDim+yNDim-3:idx=xNDim-1;let squeezeAxes=[];for(let i=idx;i"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0],shape2=inputShape[1];if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);if(shape1[axes[0]]!==shape2[axes[1]])throw new ValueError(`Dimension incompatibility: ${shape1[axes[0]]} !== ${shape2[axes[1]]}`)}mergeFunction(inputs){if(inputs.length!==2)throw new ValueError(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${inputs.length} input(s).`);let x1=inputs[0],x2=inputs[1],axes;return Array.isArray(this.axes)?axes=this.axes.map((axis,i)=>interpretAxis(axis,inputs[i].shape.length)):axes=[interpretAxis(this.axes,x1.shape.length),interpretAxis(this.axes,x2.shape.length)],this.normalize&&(x1=l2Normalize(x1,axes[0]),x2=l2Normalize(x2,axes[1])),batchDot(x1,x2,axes)}interpretAxes(shape1,shape2){let axes;return Array.isArray(this.axes)?axes=this.axes:axes=[interpretAxis(this.axes,shape1.length),interpretAxis(this.axes,shape2.length)],axes}computeOutputShape(inputShape){util_exports.assert(Array.isArray(inputShape)&&inputShape.length===2&&Array.isArray(inputShape[0])&&Array.isArray(inputShape[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0].slice(),shape2=inputShape[1].slice();if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);shape1.splice(axes[0],1),shape2.splice(axes[1],1),shape2.splice(0,1);let outputShape=shape1.concat(shape2);return outputShape.length===1&&outputShape.push(1),outputShape}computeMask(inputs,mask){return null}getConfig(){let config2={axes:this.axes,normalize:this.normalize},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Dot.className="Dot";serialization_exports.registerClass(Dot);var GaussianNoise=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.stddev=args.stddev}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={stddev:this.stddev};return Object.assign(config2,baseConfig),config2}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return inTrainPhase(()=>randomNormal2(input2.shape,0,this.stddev).add(input2),()=>input2,kwargs.training||!1)})}};GaussianNoise.className="GaussianNoise";serialization_exports.registerClass(GaussianNoise);var GaussianDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={rate:this.rate};return Object.assign(config2,baseConfig),config2}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.rate>0&&this.rate<1?inTrainPhase(()=>{let stddev=Math.sqrt(this.rate/(1-this.rate));return input2.mul(randomNormal2(input2.shape,1,stddev))},()=>input2,kwargs.training||!1):input2})}};GaussianDropout.className="GaussianDropout";serialization_exports.registerClass(GaussianDropout);var AlphaDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate,this.noiseShape=args.noiseShape}_getNoiseShape(inputs){return this.noiseShape||getExactlyOneTensor(inputs).shape}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={rate:this.rate};return Object.assign(config2,baseConfig),config2}call(inputs,kwargs){return tidy(()=>{if(this.rate<1&&this.rate>0){let noiseShape=this._getNoiseShape(inputs);return inTrainPhase(()=>{let input2=getExactlyOneTensor(inputs),alpha=1.6732632423543772,scale2=1.0507009873554805,alphaP=-alpha*scale2,keptIdx=greaterEqual(randomUniform(noiseShape),this.rate);keptIdx=cast5(keptIdx,"float32");let a=((1-this.rate)*(1+this.rate*alphaP**2))**-.5,b=-a*alphaP*this.rate;return input2.mul(keptIdx).add(keptIdx.add(-1).mul(alphaP)).mul(a).add(b)},()=>getExactlyOneTensor(inputs),kwargs.training||!1)}return inputs})}};AlphaDropout.className="AlphaDropout";serialization_exports.registerClass(AlphaDropout);function batchNormalization(x,mean4,variance,beta,gamma,epsilon3=.001){let out;if(x.rank===2)out=batchNorm2d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===3)out=batchNorm3d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===4)out=batchNorm4d(x,mean4,variance,beta,gamma,epsilon3);else throw new NotImplementedError(`batchNormalization is not implemented for array of rank ${x.rank} yet`);return out}function regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance;return[batchNormalization(x,mean4,variance,beta,gamma,epsilon3),mean4,variance]})}function broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance,targetShape=[];for(let axis of range5(0,x.rank))reductionAxes.indexOf(axis)!==-1?targetShape.push(1):targetShape.push(x.shape[axis]);let broadcastMean=mean4.reshape(targetShape),broadcastVariance=variance.reshape(targetShape),broadcastGamma=gamma==null?null:gamma.reshape(targetShape),broadcastBeta=beta==null?null:beta.reshape(targetShape);return[batchNormalization(x,broadcastMean,broadcastVariance,broadcastBeta,broadcastGamma,epsilon3),mean4,variance]})}function normalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return util_exports.arraysEqual(reductionAxes.slice().sort(),range5(0,x.rank-1))?regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3):broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3)}var BatchNormalization=class extends Layer{constructor(args){args==null&&(args={}),super(args),this.supportsMasking=!0,this.axis=args.axis==null?-1:args.axis,this.momentum=args.momentum==null?.99:args.momentum,this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.movingMeanInitializer=getInitializer(args.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=getInitializer(args.movingVarianceInitializer||"ones"),this.betaConstraint=getConstraint(args.betaConstraint),this.gammaConstraint=getConstraint(args.gammaConstraint),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let axis=this.axis>=0?this.axis:this.axis+inputShape.length,dim=inputShape[axis];if(dim==null)throw new ValueError(`Axis ${axis} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(inputShape)}.`);this.inputSpec=[new InputSpec({ndim:inputShape.length,axes:{[axis]:dim}})];let shape=[dim];this.scale&&(this.gamma=this.addWeight("gamma",shape,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",shape,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",shape,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",shape,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training,input2=getExactlyOneTensor(inputs),inputShape=input2.shape,ndim=inputShape.length,reductionAxes=range5(0,ndim),axis=this.axis>=0?this.axis:this.axis+ndim;reductionAxes.splice(axis,1);let broadcastShape=pyListRepeat(1,ndim);broadcastShape[axis]=inputShape[axis];let sortedReductionAxes=reductionAxes.slice();sortedReductionAxes.sort();let needsBroadcasting=!util_exports.arraysEqual(sortedReductionAxes,range5(0,ndim).slice(0,ndim-1)),normalizeInference=()=>{if(needsBroadcasting){let broadcastMovingMean=this.movingMean.read().reshape(broadcastShape),broadcastMovingVariance=this.movingVariance.read().reshape(broadcastShape),broadcastBeta=this.center?this.beta.read().reshape(broadcastShape):null,broadcastGamma=this.scale?this.gamma.read().reshape(broadcastShape):null;return batchNormalization(input2,broadcastMovingMean,broadcastMovingVariance,broadcastBeta,broadcastGamma,this.epsilon)}else return batchNormalization(input2,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!training)return normalizeInference();let[normedTraining,mean4,variance]=normalizeBatchInTraining(input2,this.gamma.read(),this.beta.read(),reductionAxes,this.epsilon),doMovingAverage=(variable2,value,momentum)=>{tidy(()=>{let decay=1-momentum,origValue=variable2.read(),updateDelta=origValue.sub(value).mul(decay);variable2.write(origValue.sub(updateDelta))})};return(()=>{doMovingAverage(this.movingMean,mean4,this.momentum),doMovingAverage(this.movingVariance,variance,this.momentum)})(),normedTraining})}getConfig(){let config2={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:serializeInitializer(this.betaInitializer),gammaInitializer:serializeInitializer(this.gammaInitializer),movingMeanInitializer:serializeInitializer(this.movingMeanInitializer),movingVarianceInitializer:serializeInitializer(this.movingVarianceInitializer),betaRegularizer:serializeRegularizer(this.betaRegularizer),gammaRegularizer:serializeRegularizer(this.gammaRegularizer),betaConstraint:serializeConstraint(this.betaConstraint),gammaConstraint:serializeConstraint(this.gammaConstraint)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};BatchNormalization.className="BatchNormalization";serialization_exports.registerClass(BatchNormalization);var LayerNormalization=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.axis=args.axis==null?-1:args.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let axis of this.axis)if(!Number.isInteger(axis))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer),this.supportsMasking=!0}build(inputShape){inputShape=getExactlyOneShape(inputShape);let nDims=inputShape.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=nDims)throw new Error(`Invalid axis: ${axis}`);if(this.axis.length!==unique4(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let paramShape=this.axis.map(axis=>inputShape[axis]),trainable=!0;this.scale?this.gamma=this.addWeight("gamma",paramShape,"float32",this.gammaInitializer,this.gammaRegularizer,trainable):this.gamma=null,this.center?this.beta=this.addWeight("beta",paramShape,"float32",this.betaInitializer,this.betaRegularizer,trainable):this.beta=null,this.built=!0}call(inputs,kwargs){let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,nDims=inputShape.length;return tidy(()=>{let keepDims=!0,{mean:mean4,variance}=moments(input2,this.axis,keepDims),broadcastShape=pyListRepeat(1,nDims);for(let dim of this.axis)broadcastShape[dim]=inputShape[dim];let broadcast=v=>v!=null&&v.shape.length!==nDims&&this.axis!==[nDims-1]?v.reshape(broadcastShape):v,scale2=broadcast(this.gamma.read()),offset=broadcast(this.beta.read()),momentsTiling=[],scaleOffsetTiling=[];for(let i=0;i{if(x.rank!==4)throw new ValueError(`temporalPadding expects input tensor to be 4-D, but received a ${x.rank}-D tensor.`);if(padding==null&&(padding=[[1,1],[1,1]]),padding.length!==2||padding[0].length!==2||padding[1].length!==2)throw new ValueError("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(dataFormat==null&&(dataFormat=imageDataFormat()),dataFormat!=="channelsLast"&&dataFormat!=="channelsFirst")throw new ValueError(`Unknown data format: ${dataFormat}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let pattern;return dataFormat==="channelsFirst"?pattern=[[0,0],[0,0],padding[0],padding[1]]:pattern=[[0,0],padding[0],padding[1],[0,0]],pad(x,pattern)})}var ZeroPadding2D=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.dataFormat=args.dataFormat==null?imageDataFormat():args.dataFormat,args.padding==null)this.padding=[[1,1],[1,1]];else if(typeof args.padding=="number")this.padding=[[args.padding,args.padding],[args.padding,args.padding]];else{if(args.padding=args.padding,args.padding.length!==2)throw new ValueError(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${args.padding.length} array.`);let heightPadding,widthPadding;if(typeof args.padding[0]=="number")heightPadding=[args.padding[0],args.padding[0]],widthPadding=[args.padding[1],args.padding[1]];else{if(args.padding=args.padding,args.padding[0].length!==2)throw new ValueError(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${args.padding[0].length} array.`);if(heightPadding=args.padding[0],args.padding[1].length!==2)throw new ValueError(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${args.padding[1].length} array.`);widthPadding=args.padding[1]}this.padding=[heightPadding,widthPadding]}this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows,cols;return this.dataFormat==="channelsFirst"?(inputShape[2]!=null&&inputShape[2]>=0?rows=inputShape[2]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[3]!=null&&inputShape[3]>=0?cols=inputShape[3]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],inputShape[1],rows,cols]):(inputShape[1]!=null&&inputShape[1]>=0?rows=inputShape[1]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[2]!=null&&inputShape[2]>=0?cols=inputShape[2]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],rows,cols,inputShape[3]])}call(inputs,kwargs){return tidy(()=>spatial2dPadding(getExactlyOneTensor(inputs),this.padding,this.dataFormat))}getConfig(){let config2={padding:this.padding,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};ZeroPadding2D.className="ZeroPadding2D";serialization_exports.registerClass(ZeroPadding2D);function pool2d(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv2DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool(x,poolSize,strides,paddingString):y=avgPool(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function pool3d2(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv3DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool3d(x,poolSize,strides,paddingString):y=avgPool3d(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var Pooling1D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=2),super(args),typeof args.poolSize=="number")this.poolSize=[args.poolSize];else if(Array.isArray(args.poolSize)&&args.poolSize.length===1&&typeof args.poolSize[0]=="number")this.poolSize=args.poolSize;else throw new ValueError(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.poolSize)}`);if(assertPositiveInteger(this.poolSize,"poolSize"),args.strides==null)this.strides=this.poolSize;else if(typeof args.strides=="number")this.strides=[args.strides];else if(Array.isArray(args.strides)&&args.strides.length===1&&typeof args.strides[0]=="number")this.strides=args.strides;else throw new ValueError(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.strides)}`);assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let length=convOutputLength(inputShape[1],this.poolSize[0],this.padding,this.strides[0]);return[inputShape[0],length,inputShape[2]]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs),inputs=expandDims5(getExactlyOneTensor(inputs),2);let output=this.poolingFunction(getExactlyOneTensor(inputs),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return squeeze(output,[2])})}getConfig(){let config2={poolSize:this.poolSize,padding:this.padding,strides:this.strides},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},MaxPooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling1D.className="MaxPooling1D";serialization_exports.registerClass(MaxPooling1D);var AveragePooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling1D.className="AveragePooling1D";serialization_exports.registerClass(AveragePooling1D);var Pooling2D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==2)throw new ValueError(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2];return rows=convOutputLength(rows,this.poolSize[0],this.padding,this.strides[0]),cols=convOutputLength(cols,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],rows,cols]:[inputShape[0],rows,cols,inputShape[3]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config2={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},MaxPooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling2D.className="MaxPooling2D";serialization_exports.registerClass(MaxPooling2D);var AveragePooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling2D.className="AveragePooling2D";serialization_exports.registerClass(AveragePooling2D);var Pooling3D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==3)throw new ValueError(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:5})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let depths=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],rows=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],cols=this.dataFormat==="channelsFirst"?inputShape[4]:inputShape[3];return depths=convOutputLength(depths,this.poolSize[0],this.padding,this.strides[0]),rows=convOutputLength(rows,this.poolSize[1],this.padding,this.strides[1]),cols=convOutputLength(cols,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],depths,rows,cols]:[inputShape[0],depths,rows,cols,inputShape[4]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config2={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},MaxPooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling3D.className="MaxPooling3D";serialization_exports.registerClass(MaxPooling3D);var AveragePooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling3D.className="AveragePooling3D";serialization_exports.registerClass(AveragePooling3D);var GlobalPooling1D=class extends Layer{constructor(args){super(args);this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){return[inputShape[0],inputShape[2]]}call(inputs,kwargs){throw new NotImplementedError}},GlobalAveragePooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return mean(input2,1)})}};GlobalAveragePooling1D.className="GlobalAveragePooling1D";serialization_exports.registerClass(GlobalAveragePooling1D);var GlobalMaxPooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return max(input2,1)})}};GlobalMaxPooling1D.className="GlobalMaxPooling1D";serialization_exports.registerClass(GlobalMaxPooling1D);var GlobalPooling2D=class extends Layer{constructor(args){super(args);this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){return inputShape=inputShape,this.dataFormat==="channelsLast"?[inputShape[0],inputShape[3]]:[inputShape[0],inputShape[1]]}call(inputs,kwargs){throw new NotImplementedError}getConfig(){let config2={dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},GlobalAveragePooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?mean(input2,[1,2]):mean(input2,[2,3])})}};GlobalAveragePooling2D.className="GlobalAveragePooling2D";serialization_exports.registerClass(GlobalAveragePooling2D);var GlobalMaxPooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?max(input2,[1,2]):max(input2,[2,3])})}};GlobalMaxPooling2D.className="GlobalMaxPooling2D";serialization_exports.registerClass(GlobalMaxPooling2D);var Wrapper=class extends Layer{constructor(args){super(args);this.layer=args.layer}build(inputShape){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(value){this.layer!=null&&(this.layer.trainable=value)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(weights){this.layer.setWeights(weights)}getConfig(){let config2={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(value)}static fromConfig(cls,config2,customObjects={}){let layerConfig=config2.layer,layer=deserialize(layerConfig,customObjects);delete config2.layer;let newConfig={layer};return Object.assign(newConfig,config2),new cls(newConfig)}},TimeDistributed=class extends Wrapper{constructor(args){super(args);this.supportsMasking=!0}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<3)throw new ValueError(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(inputShape)}`);this.inputSpec=[{shape:inputShape}];let childInputShape=[inputShape[0]].concat(inputShape.slice(2));this.layer.built||(this.layer.build(childInputShape),this.layer.built=!0),super.build(inputShape)}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let childInputShape=[inputShape[0]].concat(inputShape.slice(2)),childOutputShape=this.layer.computeOutputShape(childInputShape),timesteps=inputShape[1];return[childOutputShape[0],timesteps].concat(childOutputShape.slice(1))}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),rnn((inputs2,states)=>[getExactlyOneTensor(this.layer.call(inputs2,kwargs)),[]],inputs,[],!1,null,null,!1,!0)[1]))}};TimeDistributed.className="TimeDistributed";serialization_exports.registerClass(TimeDistributed);function checkBidirectionalMergeMode(value){checkStringTypeUnionValue(VALID_BIDIRECTIONAL_MERGE_MODES,"BidirectionalMergeMode",value)}var DEFAULT_BIDIRECTIONAL_MERGE_MODE="concat",Bidirectional=class extends Wrapper{constructor(args){super(args);let layerConfig=args.layer.getConfig(),forwDict={};forwDict.className=args.layer.getClassName(),forwDict.config=layerConfig,this.forwardLayer=deserialize(forwDict),layerConfig.goBackwards=layerConfig.goBackwards!==!0;let backDict={};if(backDict.className=args.layer.getClassName(),backDict.config=layerConfig,this.backwardLayer=deserialize(backDict),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=args.mergeMode===void 0?DEFAULT_BIDIRECTIONAL_MERGE_MODE:args.mergeMode,checkBidirectionalMergeMode(this.mergeMode),args.weights)throw new NotImplementedError("weights support is not implemented for Bidirectional layer yet.");this._stateful=args.layer.stateful,this.returnSequences=args.layer.returnSequences,this.returnState=args.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=args.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(value){this._trainable=value,this.forwardLayer!=null&&(this.forwardLayer.trainable=value),this.backwardLayer!=null&&(this.backwardLayer.trainable=value)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(weights){let numWeights=weights.length,numeightsOver2=Math.floor(numWeights/2);this.forwardLayer.setWeights(weights.slice(0,numeightsOver2)),this.backwardLayer.setWeights(weights.slice(numeightsOver2))}computeOutputShape(inputShape){let layerShapes=this.forwardLayer.computeOutputShape(inputShape);Array.isArray(layerShapes)&&Array.isArray(layerShapes[0])||(layerShapes=[layerShapes]),layerShapes=layerShapes;let outputShape,outputShapes,stateShape;return this.returnState&&(stateShape=layerShapes.slice(1)),outputShape=layerShapes[0],outputShape=outputShape,this.mergeMode==="concat"?(outputShape[outputShape.length-1]*=2,outputShapes=[outputShape]):this.mergeMode==null?outputShapes=[outputShape,outputShape.slice()]:outputShapes=[outputShape],this.returnState?this.mergeMode==null?outputShapes.concat(stateShape).concat(stateShape.slice()):[outputShape].concat(stateShape).concat(stateShape.slice()):singletonOrArray(outputShapes)}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);if(inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants,Array.isArray(inputs)&&(initialState=inputs.slice(1),inputs=inputs[0]),(initialState==null||initialState.length===0)&&constants==null)return super.apply(inputs,kwargs);let additionalInputs=[],additionalSpecs=[];if(initialState!=null){let numStates=initialState.length;if(numStates%2>0)throw new ValueError("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");kwargs.initialState=initialState,additionalInputs.push(...initialState);let stateSpecs=initialState.map(state=>new InputSpec({shape:state.shape}));this.forwardLayer.stateSpec=stateSpecs.slice(0,numStates/2),this.backwardLayer.stateSpec=stateSpecs.slice(numStates/2),additionalSpecs.push(...stateSpecs)}if(constants!=null)throw new NotImplementedError("Support for constants in Bidirectional layers is not implemented yet.");let isSymbolicTensor=additionalInputs[0]instanceof SymbolicTensor;for(let tensor2 of additionalInputs)if(tensor2 instanceof SymbolicTensor!==isSymbolicTensor)throw new ValueError("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(isSymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let initialState=kwargs.initialState,y,yRev;if(initialState==null)y=this.forwardLayer.call(inputs,kwargs),yRev=this.backwardLayer.call(inputs,kwargs);else{let forwardState=initialState.slice(0,initialState.length/2),backwardState=initialState.slice(initialState.length/2);y=this.forwardLayer.call(inputs,Object.assign(kwargs,{initialState:forwardState})),yRev=this.backwardLayer.call(inputs,Object.assign(kwargs,{initialState:backwardState}))}let states;this.returnState&&(Array.isArray(y)&&(states=y.slice(1).concat(yRev.slice(1))),y=y[0],yRev=yRev[0]),this.returnSequences&&(yRev=reverse(yRev,1));let output;return this.mergeMode==="concat"?output=concatenate([y,yRev]):this.mergeMode==="sum"?output=add2(y,yRev):this.mergeMode==="ave"?output=mul(.5,add2(y,yRev)):this.mergeMode==="mul"?output=mul(y,yRev):this.mergeMode==null&&(output=[y,yRev]),this.returnState?this.mergeMode==null?output.concat(states):[output].concat(states):output})}resetStates(states){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(inputShape){nameScope(this.forwardLayer.name,()=>{this.forwardLayer.build(inputShape)}),nameScope(this.backwardLayer.name,()=>{this.backwardLayer.build(inputShape)}),this.built=!0}computeMask(inputs,mask){Array.isArray(mask)&&(mask=mask[0]);let outputMask;if(this.returnSequences?this.mergeMode==null?outputMask=[mask,mask]:outputMask=mask:this.mergeMode==null?outputMask=[null,null]:outputMask=null,this.returnState){let stateMask=this.forwardLayer.states.map(state=>null);return Array.isArray(outputMask)?outputMask.concat(stateMask).concat(stateMask):[outputMask].concat(stateMask).concat(stateMask)}else return outputMask}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(value),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(value)}getConfig(){let config2={mergeMode:this.mergeMode},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}static fromConfig(cls,config2){let rnnLayer=deserialize(config2.layer);if(delete config2.layer,config2.numConstants!=null)throw new NotImplementedError("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let newConfig=config2;return newConfig.layer=rnnLayer,new cls(newConfig)}};Bidirectional.className="Bidirectional";serialization_exports.registerClass(Bidirectional);function inputLayer(args){return new InputLayer(args)}function elu5(args){return new ELU4(args)}function reLU(args){return new ReLU(args)}function leakyReLU(args){return new LeakyReLU(args)}function prelu5(args){return new PReLU(args)}function softmax5(args){return new Softmax3(args)}function thresholdedReLU(args){return new ThresholdedReLU(args)}function conv1d2(args){return new Conv1D(args)}function conv2d5(args){return new Conv2D2(args)}function conv2dTranspose2(args){return new Conv2DTranspose(args)}function conv3d2(args){return new Conv3D2(args)}function separableConv2d2(args){return new SeparableConv2D(args)}function cropping2D(args){return new Cropping2D(args)}function upSampling2d(args){return new UpSampling2D(args)}function depthwiseConv2d5(args){return new DepthwiseConv2D(args)}function activation(args){return new Activation2(args)}function dense(args){return new Dense(args)}function dropout3(args){return new Dropout(args)}function spatialDropout1d(args){return new SpatialDropout1D(args)}function flatten3(args){return new Flatten(args)}function repeatVector(args){return new RepeatVector(args)}function reshape5(args){return new Reshape2(args)}function permute(args){return new Permute(args)}function embedding(args){return new Embedding(args)}function add4(args){return new Add2(args)}function average(args){return new Average(args)}function concatenate2(args){return new Concatenate(args)}function maximum4(args){return new Maximum2(args)}function minimum4(args){return new Minimum2(args)}function multiply3(args){return new Multiply2(args)}function dot3(args){return new Dot(args)}function batchNormalization2(args){return new BatchNormalization(args)}function layerNormalization(args){return new LayerNormalization(args)}function zeroPadding2d(args){return new ZeroPadding2D(args)}function averagePooling1d(args){return new AveragePooling1D(args)}function avgPool1d(args){return averagePooling1d(args)}function avgPooling1d(args){return averagePooling1d(args)}function averagePooling2d(args){return new AveragePooling2D(args)}function avgPool2d(args){return averagePooling2d(args)}function avgPooling2d(args){return averagePooling2d(args)}function averagePooling3d(args){return new AveragePooling3D(args)}function avgPool3d2(args){return averagePooling3d(args)}function avgPooling3d(args){return averagePooling3d(args)}function globalAveragePooling1d(args){return new GlobalAveragePooling1D(args)}function globalAveragePooling2d(args){return new GlobalAveragePooling2D(args)}function globalMaxPooling1d(args){return new GlobalMaxPooling1D(args)}function globalMaxPooling2d(args){return new GlobalMaxPooling2D(args)}function maxPooling1d(args){return new MaxPooling1D(args)}function maxPooling2d(args){return new MaxPooling2D(args)}function maxPooling3d(args){return new MaxPooling3D(args)}function gru(args){return new GRU(args)}function gruCell(args){return new GRUCell(args)}function lstm(args){return new LSTM(args)}function lstmCell(args){return new LSTMCell(args)}function simpleRNN(args){return new SimpleRNN(args)}function simpleRNNCell(args){return new SimpleRNNCell(args)}function convLstm2d(args){return new ConvLSTM2D(args)}function convLstm2dCell(args){return new ConvLSTM2DCell(args)}function rnn2(args){return new RNN(args)}function stackedRNNCells(args){return new StackedRNNCells(args)}function bidirectional(args){return new Bidirectional(args)}function timeDistributed(args){return new TimeDistributed(args)}var globalMaxPool1d=globalMaxPooling1d,globalMaxPool2d=globalMaxPooling2d,maxPool1d=maxPooling1d,maxPool2d=maxPooling2d;function gaussianNoise(args){return new GaussianNoise(args)}function gaussianDropout(args){return new GaussianDropout(args)}function alphaDropout(args){return new AlphaDropout(args)}function masking(args){return new Masking(args)}var exports_metrics_exports={};__export2(exports_metrics_exports,{MAPE:()=>MAPE2,MSE:()=>MSE2,binaryAccuracy:()=>binaryAccuracy2,binaryCrossentropy:()=>binaryCrossentropy3,categoricalAccuracy:()=>categoricalAccuracy2,categoricalCrossentropy:()=>categoricalCrossentropy3,cosineProximity:()=>cosineProximity2,mape:()=>mape2,meanAbsoluteError:()=>meanAbsoluteError2,meanAbsolutePercentageError:()=>meanAbsolutePercentageError2,meanSquaredError:()=>meanSquaredError3,mse:()=>mse2,precision:()=>precision2,recall:()=>recall2,sparseCategoricalAccuracy:()=>sparseCategoricalAccuracy2});function binaryAccuracy2(yTrue,yPred){return binaryAccuracy(yTrue,yPred)}function binaryCrossentropy3(yTrue,yPred){return binaryCrossentropy2(yTrue,yPred)}function sparseCategoricalAccuracy2(yTrue,yPred){return sparseCategoricalAccuracy(yTrue,yPred)}function categoricalAccuracy2(yTrue,yPred){return categoricalAccuracy(yTrue,yPred)}function categoricalCrossentropy3(yTrue,yPred){return categoricalCrossentropy2(yTrue,yPred)}function precision2(yTrue,yPred){return precision(yTrue,yPred)}function recall2(yTrue,yPred){return recall(yTrue,yPred)}function cosineProximity2(yTrue,yPred){return cosineProximity(yTrue,yPred)}function meanAbsoluteError2(yTrue,yPred){return meanAbsoluteError(yTrue,yPred)}function meanAbsolutePercentageError2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function MAPE2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function mape2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function meanSquaredError3(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function MSE2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function mse2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}var exports_models_exports={};__export2(exports_models_exports,{modelFromJSON:()=>modelFromJSON});var exports_regularizers_exports={};__export2(exports_regularizers_exports,{l1:()=>l12,l1l2:()=>l1l2,l2:()=>l22});function l1l2(config2){return new L1L2(config2)}function l12(config2){return l1(config2)}function l22(config2){return l2(config2)}var Callback=class extends BaseCallback{constructor(){super(...arguments);this.model=null}setModel(model2){if(!(model2 instanceof LayersModel))throw new Error("model must be a LayersModel, not some other Container");this.model=model2}};function less4(currVal,prevVal){return currValprevVal}var EarlyStopping=class extends Callback{constructor(args){super();if(args==null&&(args={}),args.restoreBestWeights)throw new NotImplementedError("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=args.monitor||"val_loss",this.minDelta=Math.abs(args.minDelta||0),this.patience=args.patience||0,this.verbose=args.verbose||0,this.mode=args.mode||"auto",this.baseline=args.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=less4:this.mode==="max"?this.monitorFunc=greater4:this.monitor.indexOf("acc")!==-1?this.monitorFunc=greater4:this.monitorFunc=less4,this.monitorFunc===less4&&(this.minDelta*=-1)}async onTrainBegin(logs){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===less4?Infinity:-Infinity}async onEpochEnd(epoch,logs){await resolveScalarsInLogs(logs);let current=this.getMonitorValue(logs);current!=null&&(this.monitorFunc(current-this.minDelta,this.best)?(this.best=current,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=epoch,this.model.stopTraining=!0)))}async onTrainEnd(logs){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(logs){logs==null&&(logs={});let monitorValue=logs[this.monitor];return monitorValue==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(logs)}`),monitorValue}};function earlyStopping(args){return new EarlyStopping(args)}var callbacks={earlyStopping},DataType;(function(DataType2){DataType2[DataType2.DT_INVALID=0]="DT_INVALID",DataType2[DataType2.DT_FLOAT=1]="DT_FLOAT",DataType2[DataType2.DT_DOUBLE=2]="DT_DOUBLE",DataType2[DataType2.DT_INT32=3]="DT_INT32",DataType2[DataType2.DT_UINT8=4]="DT_UINT8",DataType2[DataType2.DT_INT16=5]="DT_INT16",DataType2[DataType2.DT_INT8=6]="DT_INT8",DataType2[DataType2.DT_STRING=7]="DT_STRING",DataType2[DataType2.DT_COMPLEX64=8]="DT_COMPLEX64",DataType2[DataType2.DT_INT64=9]="DT_INT64",DataType2[DataType2.DT_BOOL=10]="DT_BOOL",DataType2[DataType2.DT_QINT8=11]="DT_QINT8",DataType2[DataType2.DT_QUINT8=12]="DT_QUINT8",DataType2[DataType2.DT_QINT32=13]="DT_QINT32",DataType2[DataType2.DT_BFLOAT16=14]="DT_BFLOAT16",DataType2[DataType2.DT_FLOAT_REF=101]="DT_FLOAT_REF",DataType2[DataType2.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",DataType2[DataType2.DT_INT32_REF=103]="DT_INT32_REF",DataType2[DataType2.DT_UINT8_REF=104]="DT_UINT8_REF",DataType2[DataType2.DT_INT16_REF=105]="DT_INT16_REF",DataType2[DataType2.DT_INT8_REF=106]="DT_INT8_REF",DataType2[DataType2.DT_STRING_REF=107]="DT_STRING_REF",DataType2[DataType2.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",DataType2[DataType2.DT_INT64_REF=109]="DT_INT64_REF",DataType2[DataType2.DT_BOOL_REF=110]="DT_BOOL_REF",DataType2[DataType2.DT_QINT8_REF=111]="DT_QINT8_REF",DataType2[DataType2.DT_QUINT8_REF=112]="DT_QUINT8_REF",DataType2[DataType2.DT_QINT32_REF=113]="DT_QINT32_REF",DataType2[DataType2.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(DataType||(DataType={}));var SaverDef;(function(SaverDef2){let CheckpointFormatVersion;(function(CheckpointFormatVersion2){CheckpointFormatVersion2[CheckpointFormatVersion2.LEGACY=0]="LEGACY",CheckpointFormatVersion2[CheckpointFormatVersion2.V1=1]="V1",CheckpointFormatVersion2[CheckpointFormatVersion2.V2=2]="V2"})(CheckpointFormatVersion=SaverDef2.CheckpointFormatVersion||(SaverDef2.CheckpointFormatVersion={}))})(SaverDef||(SaverDef={}));var CUSTOM_OPS={};function registerOp(name,opFunc){let opMapper={tfOpName:name,category:"custom",inputs:[],attrs:[],customExecutor:opFunc};CUSTOM_OPS[name]=opMapper}function getRegisteredOp(name){return CUSTOM_OPS[name]}function deregisterOp(name){delete CUSTOM_OPS[name]}function getParamValue(paramName,node,tensorMap,context,resourceManager){let inputParam=node.inputParams[paramName];if(inputParam&&inputParam.inputIndexStart!==void 0){let start=inputParam.inputIndexStart,end=inputParam.inputIndexEnd===0?void 0:inputParam.inputIndexEnd===void 0?start+1:inputParam.inputIndexEnd;if(inputParam.type==="tensor")return getTensor(node.inputNames[inputParam.inputIndexStart],tensorMap,context,resourceManager);if(inputParam.type==="tensors")return node.inputNames.slice(start,end).map(name=>getTensor(name,tensorMap,context,resourceManager));let tensor2=getTensor(node.inputNames.slice(start)[0],tensorMap,context,resourceManager),data2=tensor2.dataSync();return inputParam.type==="number"?data2[0]:util_exports.toNestedArray(tensor2.shape,data2)}let attrParam=node.attrParams[paramName];return attrParam&&attrParam.value}function getTensor(name,tensorsMap,context,resourceManager){let[nodeName,index]=parseNodeName(name);if(resourceManager!=null){let tensor2=resourceManager.getHashTableHandleByName(nodeName);if(tensor2!=null)return tensor2}let contextId=context.currentContextIds.find(contextId2=>!!tensorsMap[getNodeNameWithContextId(nodeName,contextId2)]);return contextId!==void 0?tensorsMap[getNodeNameWithContextId(nodeName,contextId)][index]:void 0}function getTensorsForCurrentContenxt(name,tensorsMap,context){return tensorsMap[getNodeNameWithContextId(name,context.currentContextId)]}function getNodeNameAndIndex(inputName,context){let[nodeName,index]=parseNodeName(inputName);return[getNodeNameWithContextId(nodeName,context&&context.currentContextId),index]}function getNodeNameWithContextId(name,contextId){return contextId?`${name}-${contextId}`:name}function parseNodeName(name){let parts=name.split(":");return parts.length===1?[name,0]:[parts[0],Number(parts[parts.length-1])]}function getPadding(node,tensorMap,context){let pad3=getParamValue("pad",node,tensorMap,context);if(pad3==="explicit"){pad3=getParamValue("explicitPaddings",node,tensorMap,context);let explicitPadding=[[0,0],[0,0],[0,0],[0,0]];for(let i=0;i<4;i++)explicitPadding[i][0]=pad3[i*2],explicitPadding[i][1]=pad3[i*2+1];return explicitPadding}return pad3}function cloneTensor(tensor2){return tensor2.kept?tensor2:clone(tensor2)}var arithmetic_exports={};__export2(arithmetic_exports,{json:()=>json});var json=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],basic_math_exports={};__export2(basic_math_exports,{json:()=>json2});var json2=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],control_exports={};__export2(control_exports,{json:()=>json3});var json3=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],convolution_exports={};__export2(convolution_exports,{json:()=>json4});var json4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],creation_exports={};__export2(creation_exports,{json:()=>json5});var json5=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],dynamic_exports={};__export2(dynamic_exports,{json:()=>json6});var json6=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],evaluation_exports={};__export2(evaluation_exports,{json:()=>json7});var json7=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],graph_exports={};__export2(graph_exports,{json:()=>json8});var json8=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],hash_table_exports={};__export2(hash_table_exports,{json:()=>json9});var json9=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],image_exports={};__export2(image_exports,{json:()=>json10});var json10=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],logical_exports={};__export2(logical_exports,{json:()=>json11});var json11=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],matrices_exports={};__export2(matrices_exports,{json:()=>json12});var json12=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],normalization_exports={};__export2(normalization_exports,{json:()=>json13});var json13=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],reduction_exports={};__export2(reduction_exports,{json:()=>json14});var json14=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],slice_join_exports={};__export2(slice_join_exports,{json:()=>json15});var json15=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],spectral_exports={};__export2(spectral_exports,{json:()=>json16});var json16=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],transformation_exports={};__export2(transformation_exports,{json:()=>json17});var json17=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],OperationMapper=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let ops=[arithmetic_exports,basic_math_exports,control_exports,convolution_exports,creation_exports,dynamic_exports,evaluation_exports,logical_exports,image_exports,graph_exports,matrices_exports,normalization_exports,reduction_exports,slice_join_exports,spectral_exports,transformation_exports,hash_table_exports],mappersJson=[].concat(...ops.map(op2=>op2.json));this.opMappers=mappersJson.reduce((map,mapper)=>(map[mapper.tfOpName]=mapper,map),{})}transformGraph(graph2,signature={}){let tfNodes=graph2.node,placeholders=[],weights=[],initNodes=[],nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op.startsWith("Placeholder")?placeholders.push(map[node.name]):node.op==="Const"?weights.push(map[node.name]):(node.input==null||node.input.length===0)&&initNodes.push(map[node.name]),map),{}),inputs=[],outputs=[],inputNodeNameToKey={},outputNodeNameToKey={};signature!=null&&(inputNodeNameToKey=this.mapSignatureEntries(signature.inputs),outputNodeNameToKey=this.mapSignatureEntries(signature.outputs));let allNodes=Object.keys(nodes);allNodes.forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})}),Object.keys(outputNodeNameToKey).length===0?allNodes.forEach(key=>{let node=nodes[key];node.children.length===0&&outputs.push(node)}):Object.keys(outputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node!=null&&(node.signatureKey=outputNodeNameToKey[name],outputs.push(node))}),Object.keys(inputNodeNameToKey).length>0?Object.keys(inputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node&&(node.signatureKey=inputNodeNameToKey[name],inputs.push(node))}):inputs=placeholders;let functions={};graph2.library!=null&&graph2.library.function!=null&&(functions=graph2.library.function.reduce((functions2,func2)=>(functions2[func2.signature.name]=this.mapFunction(func2),functions2),{}));let result={nodes,inputs,outputs,weights,placeholders,signature,functions};return initNodes.length>0&&(result.initNodes=initNodes),result}mapSignatureEntries(entries){return Object.keys(entries||{}).reduce((prev,curr)=>(prev[entries[curr].name]=curr,prev),{})}mapNode(node){let mapper=getRegisteredOp(node.op)||this.opMappers[node.op]||{};node.attr==null&&(node.attr={});let newNode={name:node.name,op:node.op,category:mapper.category,inputNames:(node.input||[]).map(input2=>input2.startsWith("^")?input2.substr(1):input2),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:node.attr};return mapper.inputs!=null&&(newNode.inputParams=mapper.inputs.reduce((map,param)=>(map[param.name]={type:param.type,inputIndexStart:param.start,inputIndexEnd:param.end},map),{})),mapper.attrs!=null&&(newNode.attrParams=mapper.attrs.reduce((map,param)=>{let type=param.type,value;switch(param.type){case"string":value=getStringParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"string[]":value=getStringArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number":value=getNumberParam(node.attr,param.tfName,param.defaultValue||0),value===void 0&&!!param.tfDeprecatedName&&(value=getNumberParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number[]":value=getNumericArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getNumericArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool":value=getBoolParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool[]":value=getBoolArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape":value=getTensorShapeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape[]":value=getTensorShapeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype":value=getDtypeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype[]":value=getDtypeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"func":value=getFuncParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getFuncParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${param.type} for op: ${node.op}`)}return map[param.name]={value,type},map},{})),newNode}mapFunction(functionDef){let tfNodes=functionDef.nodeDef,placeholders=[],weights=[],nodes={};tfNodes!=null&&(nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op==="Const"&&weights.push(map[node.name]),map),{}));let inputs=[],outputs=[];functionDef.signature.inputArg.forEach(arg=>{let[nodeName]=getNodeNameAndIndex(arg.name),node={name:nodeName,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:parseDtypeParam(arg.type),type:"dtype"}},children:[]};node.signatureKey=arg.name,inputs.push(node),nodes[nodeName]=node}),Object.keys(nodes).forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})});let returnNodeMap=functionDef.ret;functionDef.signature.outputArg.forEach(output=>{let[nodeName,index]=getNodeNameAndIndex(returnNodeMap[output.name]),node=nodes[nodeName];node!=null&&(node.defaultOutput=index,outputs.push(node))});let signature=this.mapArgsToSignature(functionDef);return{nodes,inputs,outputs,weights,placeholders,signature}}mapArgsToSignature(functionDef){return{methodName:functionDef.signature.name,inputs:functionDef.signature.inputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg),map),{}),outputs:functionDef.signature.outputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg,functionDef.ret),map),{})}}mapArgToTensorInfo(arg,nameMap2){let name=arg.name;return nameMap2!=null&&(name=nameMap2[name]),{name,dtype:arg.type}}};function decodeBase64(text){let global2=env().global;if(typeof global2.atob!="undefined")return global2.atob(text);if(typeof Buffer!="undefined")return new Buffer(text,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function parseStringParam(s,keepCase){let value=Array.isArray(s)?String.fromCharCode.apply(null,s):decodeBase64(s);return keepCase?value:value.toLowerCase()}function getStringParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param!=null?parseStringParam(param.s,keepCase):def}function getBoolParam(attrs,name,def){let param=attrs[name];return param?param.b:def}function getNumberParam(attrs,name,def){let param=attrs[name]||{},value=param.i!=null?param.i:param.f!=null?param.f:def;return typeof value=="number"?value:parseInt(value,10)}function parseDtypeParam(value){switch(typeof value=="string"&&(value=DataType[value]),value){case DataType.DT_FLOAT:return"float32";case DataType.DT_INT32:case DataType.DT_INT64:case DataType.DT_INT8:case DataType.DT_UINT8:return"int32";case DataType.DT_BOOL:return"bool";case DataType.DT_DOUBLE:return"float32";case DataType.DT_STRING:return"string";default:return null}}function getFuncParam(attrs,name,def){let param=attrs[name];return param&¶m.func?param.func.name:def}function getDtypeParam(attrs,name,def){let param=attrs[name];return param&¶m.type?parseDtypeParam(param.type):def}function getDtypeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.type?param.list.type.map(v=>parseDtypeParam(v)):def}function parseTensorShapeParam(shape){if(!shape.unknownRank)return shape.dim!=null?shape.dim.map(dim=>typeof dim.size=="number"?dim.size:parseInt(dim.size,10)):[]}function getTensorShapeParam(attrs,name,def){let param=attrs[name];return param&¶m.shape?parseTensorShapeParam(param.shape):def}function getNumericArrayParam(attrs,name,def){let param=attrs[name];return param?((param.list.f&¶m.list.f.length?param.list.f:param.list.i)||[]).map(v=>typeof v=="number"?v:parseInt(v,10)):def}function getStringArrayParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param&¶m.list&¶m.list.s?param.list.s.map(v=>parseStringParam(v,keepCase)):def}function getTensorShapeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.shape?param.list.shape.map(v=>parseTensorShapeParam(v)):def}function getBoolArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.b?param.list.b:def}var NodeValueImpl=class{constructor(node,tensorMap,context){this.node=node,this.tensorMap=tensorMap,this.context=context,this.inputs=[],this.attrs={},this.inputs=node.inputNames.map(name=>this.getInput(name)),node.rawAttrs!=null&&(this.attrs=Object.keys(node.rawAttrs).reduce((attrs,key)=>(attrs[key]=this.getAttr(key),attrs),{}))}getInput(name){return getTensor(name,this.tensorMap,this.context)}getAttr(name,defaultValue){let value=this.node.rawAttrs[name];if(value.tensor!=null)return getTensor(name,this.tensorMap,this.context);if(value.i!=null||value.f!=null)return getNumberParam(this.node.rawAttrs,name,defaultValue);if(value.s!=null)return getStringParam(this.node.rawAttrs,name,defaultValue);if(value.b!=null)return getBoolParam(this.node.rawAttrs,name,defaultValue);if(value.shape!=null)return getTensorShapeParam(this.node.rawAttrs,name,defaultValue);if(value.type!=null)return getDtypeParam(this.node.rawAttrs,name,defaultValue);if(value.list!=null){if(value.list.i!=null||value.list.f!=null)return getNumericArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.s!=null)return getStringArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.shape!=null)return getTensorShapeArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.b!=null)return getBoolArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.type!=null)return getDtypeArrayParam(this.node.rawAttrs,name,defaultValue)}return defaultValue}},executeOp=(node,tensorMap,context)=>{switch(node.op){case"BiasAdd":case"AddV2":case"Add":return[add2(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"AddN":return[addN(getParamValue("tensors",node,tensorMap,context))];case"FloorMod":case"Mod":return[mod(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Mul":return[mul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"RealDiv":case"Div":return[div(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"DivNoNan":return[divNoNan(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"FloorDiv":return[floorDiv(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Sub":return[sub(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Minimum":return[minimum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Maximum":return[maximum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Pow":return[pow(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"SquaredDifference":return[squaredDifference(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp2=(node,tensorMap,context)=>{switch(node.op){case"Abs":case"ComplexAbs":return[abs(getParamValue("x",node,tensorMap,context))];case"Acos":return[acos(getParamValue("x",node,tensorMap,context))];case"Acosh":return[acosh(getParamValue("x",node,tensorMap,context))];case"Asin":return[asin(getParamValue("x",node,tensorMap,context))];case"Asinh":return[asinh(getParamValue("x",node,tensorMap,context))];case"Atan":return[atan(getParamValue("x",node,tensorMap,context))];case"Atan2":return[atan2(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context))];case"Atanh":return[atanh(getParamValue("x",node,tensorMap,context))];case"Ceil":return[ceil(getParamValue("x",node,tensorMap,context))];case"Complex":return[complex(getParamValue("real",node,tensorMap,context),getParamValue("imag",node,tensorMap,context))];case"Cos":return[cos(getParamValue("x",node,tensorMap,context))];case"Cosh":return[cosh(getParamValue("x",node,tensorMap,context))];case"Elu":return[elu(getParamValue("x",node,tensorMap,context))];case"Erf":return[erf(getParamValue("x",node,tensorMap,context))];case"Exp":return[exp(getParamValue("x",node,tensorMap,context))];case"Expm1":return[expm1(getParamValue("x",node,tensorMap,context))];case"Floor":return[floor(getParamValue("x",node,tensorMap,context))];case"Log":return[log2(getParamValue("x",node,tensorMap,context))];case"Log1p":return[log1p(getParamValue("x",node,tensorMap,context))];case"Imag":return[imag(getParamValue("x",node,tensorMap,context))];case"Neg":return[neg(getParamValue("x",node,tensorMap,context))];case"Reciprocal":return[reciprocal(getParamValue("x",node,tensorMap,context))];case"Real":return[real(getParamValue("x",node,tensorMap,context))];case"Relu":return[relu(getParamValue("x",node,tensorMap,context))];case"Round":return[round2(getParamValue("x",node,tensorMap,context))];case"Selu":return[selu(getParamValue("x",node,tensorMap,context))];case"Sigmoid":return[sigmoid(getParamValue("x",node,tensorMap,context))];case"Sin":return[sin(getParamValue("x",node,tensorMap,context))];case"Sign":return[sign(getParamValue("x",node,tensorMap,context))];case"Sinh":return[sinh(getParamValue("x",node,tensorMap,context))];case"Softplus":return[softplus(getParamValue("x",node,tensorMap,context))];case"Sqrt":return[sqrt(getParamValue("x",node,tensorMap,context))];case"Square":return[square(getParamValue("x",node,tensorMap,context))];case"Tanh":return[tanh2(getParamValue("x",node,tensorMap,context))];case"Tan":return[tan(getParamValue("x",node,tensorMap,context))];case"ClipByValue":return[clipByValue(getParamValue("x",node,tensorMap,context),getParamValue("clipValueMin",node,tensorMap,context),getParamValue("clipValueMax",node,tensorMap,context))];case"Relu6":return[relu6(getParamValue("x",node,tensorMap,context))];case"Rsqrt":return[rsqrt(getTensor(node.inputNames[0],tensorMap,context))];case"Prod":return[prod(getParamValue("x",node,tensorMap,context),getParamValue("axes",node,tensorMap,context))];case"LeakyRelu":return[leakyRelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];case"Prelu":return[prelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function assertShapesMatchAllowUndefinedSize(shapeA,shapeB,errorMessagePrefix=""){util_exports.assert(shapesEqualAllowUndefinedSize(shapeA,shapeB),()=>errorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function shapesEqualAllowUndefinedSize(n1,n2){if(n1.length!==n2.length)return!1;for(let i=0;i{(keepIds==null||!keepIds.has(tensor2.tensor.id))&&tensor2.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(index){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||index>=this.size())throw new Error(`Tried to read from index ${index}, but array size is: ${this.size()}`);let tensorWithState=this.tensors[index];if(tensorWithState.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${index} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(tensorWithState.cleared=!0),tensorWithState.read=!0,tensorWithState.tensor}readMany(indices){return indices.map(index=>this.read(index))}write(index,tensor2){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||!this.dynamicSize&&index>=this.maxSize)throw new Error(`Tried to write to index ${index}, but array is not resizeable and size is: ${this.maxSize}`);let t=this.tensors[index]||{};if(tensor2.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because the value dtype is ${tensor2.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=tensor2.shape),assertShapesMatchAllowUndefinedSize(this.elementShape,tensor2.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${index}.`),t.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been read.`);if(t.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been written.`);t.tensor=tensor2,keep(tensor2),t.written=!0,this.tensors[index]=t}writeMany(indices,tensors){if(indices.length!==tensors.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${indices.length} is not the same as tensors size: ${tensors.length}.`);indices.forEach((i,index)=>this.write(i,tensors[index]))}gather(indices,dtype){if(!!dtype&&dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${dtype}`);if(indices)indices=indices.slice(0,this.size());else{indices=[];for(let i=0;i=this.maxSize)throw new Error(`Max index must be < array size (${maxIndex} vs. ${this.maxSize})`);this.writeMany(indices,unstack(tensor2,0))}split(length,tensor2){if(tensor2.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${tensor2.dtype}`);let totalLength=0,cumulativeLengths=length.map(len=>(totalLength+=len,totalLength));if(totalLength!==tensor2.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is ${totalLength}, and tensor's shape is: ${tensor2.shape}`);if(!this.dynamicSize&&length.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${length.length}), and the TensorArray is not marked as dynamically resizeable`);let elementPerRow=totalLength===0?0:tensor2.size/totalLength,tensors=[];tidy(()=>{tensor2=reshape(tensor2,[1,totalLength,elementPerRow]);for(let i=0;i{if(elementDtype!==tensor2.dtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${tensor2.dtype}`);assertShapesMatchAllowUndefinedSize(elementShape,tensor2.shape,"TensorList shape mismatch: "),keep(tensor2)}),this.idTensor=scalar(0),this.maxNumElements=maxNumElements,keep(this.idTensor)}get id(){return this.idTensor.id}copy(){return new TensorList([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(keepIds){this.tensors.forEach(tensor2=>{(keepIds==null||!keepIds.has(tensor2.id))&&tensor2.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(elementShape,elementDtype,numElements=-1){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);if(numElements!==-1&&this.tensors.length!==numElements)throw new Error(`Operation expected a list with ${numElements} elements but got a list with ${this.tensors.length} elements.`);return assertShapesMatchAllowUndefinedSize(elementShape,this.elementShape,"TensorList shape mismatch: "),tidy(()=>{let reshapedTensors=this.tensors.map(tensor2=>reshape(tensor2,elementShape));return stack(reshapedTensors,0)})}popBack(elementShape,elementDtype){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let tensor2=this.tensors.pop();return assertShapesMatchAllowUndefinedSize(tensor2.shape,elementShape,"TensorList shape mismatch: "),reshape(tensor2,elementShape)}pushBack(tensor2){if(tensor2.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${tensor2.dtype}, but list elements ${this.elementDtype}`);if(assertShapesMatchAllowUndefinedSize(tensor2.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");keep(tensor2),this.tensors.push(tensor2)}resize(size){if(size<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${size}`);if(this.maxNumElements!==-1&&size>this.maxNumElements)throw new Error(`TensorListResize input size ${size} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=size}getItem(elementIndex,elementShape,elementDtype){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);if(elementIndex<0||elementIndex>this.tensors.length)throw new Error(`Trying to access element ${elementIndex} in a list with ${this.tensors.length} elements.`);if(this.tensors[elementIndex]==null)throw new Error(`element at index ${elementIndex} is null.`);return assertShapesMatchAllowUndefinedSize(this.tensors[elementIndex].shape,elementShape,"TensorList shape mismatch: "),this.tensors[elementIndex]}setItem(elementIndex,tensor2){if(tensor2.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${tensor2.dtype}, but list elements ${this.elementDtype}`);if(elementIndex<0||this.maxNumElements!==-1&&elementIndex>=this.maxNumElements)throw new Error(`Trying to set element ${elementIndex} in a list with max ${this.maxNumElements} elements.`);assertShapesMatchAllowUndefinedSize(this.elementShape,tensor2.shape,"TensorList shape mismatch: "),keep(tensor2),this.tensors[elementIndex]=tensor2}gather(indices,elementDtype,elementShape){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);return assertShapesMatchAllowUndefinedSize(this.elementShape,elementShape,"TensorList shape mismatch: "),indices=indices.slice(0,this.size()),indices.length===0?tensor([],[0].concat(this.elementShape)):tidy(()=>{let tensors=indices.map(i=>reshape(this.tensors[i],elementShape));return stack(tensors,0)})}concat(elementDtype,elementShape){if(!!elementDtype&&elementDtype!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${elementDtype}`);return assertShapesMatchAllowUndefinedSize(this.elementShape,elementShape,"TensorList shape mismatch: "),this.size()===0?tensor([],[0].concat(this.elementShape)):tidy(()=>{let tensors=this.tensors.map(t=>reshape(t,elementShape));return concat(tensors,0)})}};function fromTensor(tensor2,elementShape,elementDtype){let dtype=tensor2.dtype;if(tensor2.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${tensor2.shape}`);if(tensor2.dtype!==elementDtype)throw new Error(`Invalid data types; op elements ${tensor2.dtype}, but list elements ${elementDtype}`);let outputShape=tensor2.shape.slice(1);assertShapesMatchAllowUndefinedSize(outputShape,elementShape,"TensorList shape mismatch: ");let tensorList=unstack(tensor2);return new TensorList(tensorList,elementShape,dtype)}function reserve(elementShape,elementDtype,numElements){return new TensorList([],elementShape,elementDtype,numElements)}function scatter(tensor2,indices,elementShape,numElements){if(indices.length!==tensor2.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${indices.length} vs. ${tensor2.shape[0]}`);let maxIndex=Math.max(...indices);if(numElements!=null&&numElements!==-1&&maxIndex>=numElements)throw new Error(`Max index must be < array size (${maxIndex} vs. ${numElements})`);let list=new TensorList([],elementShape,tensor2.dtype,numElements),tensors=unstack(tensor2,0);return indices.forEach((value,index)=>{list.setItem(value,tensors[index])}),list}function split2(tensor2,length,elementShape){let totalLength=0,cumulativeLengths=length.map(len=>(totalLength+=len,totalLength));if(totalLength!==tensor2.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${totalLength}, and tensor's shape is: ${tensor2.shape}`);let elementPerRow=totalLength===0?0:tensor2.size/totalLength,tensors=tidy(()=>{let tensors2=[];tensor2=reshape(tensor2,[1,totalLength,elementPerRow]);for(let i=0;i{switch(node.op){case"If":case"StatelessIf":{let thenFunc=getParamValue("thenBranch",node,tensorMap,context),elseFunc=getParamValue("elseBranch",node,tensorMap,context),cond=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context);return(await cond.data())[0]?context.functionMap[thenFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap):context.functionMap[elseFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap)}case"While":case"StatelessWhile":{let bodyFunc=getParamValue("body",node,tensorMap,context),condFunc=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context),condResult=await context.functionMap[condFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap),argIds=args.map(tensor2=>tensor2.id),condValue=await condResult[0].data();condResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let result=args;for(;condValue[0];){let origResult=result;result=await context.functionMap[bodyFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);let resultIds=result.map(tensor2=>tensor2.id);origResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let condResult2=await context.functionMap[condFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);condValue=await condResult2[0].data(),condResult2.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()})}return result}case"LoopCond":{let pred=getParamValue("pred",node,tensorMap,context);return[cloneTensor(pred)]}case"Switch":{let pred=getParamValue("pred",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context);return data2.kept||(data2=cloneTensor(data2)),(await pred.data())[0]?[void 0,data2]:[data2,void 0]}case"Merge":{let inputName=node.inputNames.find(name=>getTensor(name,tensorMap,context)!==void 0);if(inputName){let data2=getTensor(inputName,tensorMap,context);return[cloneTensor(data2)]}return}case"Enter":{let frameId=getParamValue("frameName",node,tensorMap,context),data2=getParamValue("tensor",node,tensorMap,context);return context.enterFrame(frameId),[cloneTensor(data2)]}case"Exit":{let data2=getParamValue("tensor",node,tensorMap,context);return context.exitFrame(),[cloneTensor(data2)]}case"NextIteration":{let data2=getParamValue("tensor",node,tensorMap,context);return context.nextIteration(),[cloneTensor(data2)]}case"TensorArrayV3":{let size=getParamValue("size",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),dynamicSize=getParamValue("dynamicSize",node,tensorMap,context),clearAfterRead=getParamValue("clearAfterRead",node,tensorMap,context),identicalElementShapes=getParamValue("identicalElementShapes",node,tensorMap,context),name=getParamValue("name",node,tensorMap,context),tensorArray=new TensorArray(name,dtype,size,elementShape,identicalElementShapes,dynamicSize,clearAfterRead);return context.addTensorArray(tensorArray),[tensorArray.idTensor,scalar(1)]}case"TensorArrayWriteV3":{let id=getParamValue("tensorArrayId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),writeTensorArray=context.getTensorArray(id.id);return writeTensorArray.write(index,writeTensor),[writeTensorArray.idTensor]}case"TensorArrayReadV3":{let readId=getParamValue("tensorArrayId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context);return[context.getTensorArray(readId.id).read(readIndex)]}case"TensorArrayGatherV3":{let gatherId=getParamValue("tensorArrayId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),gatherDtype=getParamValue("dtype",node,tensorMap,context);return[context.getTensorArray(gatherId.id).gather(gatherIndices,gatherDtype)]}case"TensorArrayScatterV3":{let scatterId=getParamValue("tensorArrayId",node,tensorMap,context),scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),scatterTensorArray=context.getTensorArray(scatterId.id);return scatterTensorArray.scatter(scatterIndices,scatterTensor),[scatterTensorArray.idTensor]}case"TensorArrayConcatV3":{let concatId=getParamValue("tensorArrayId",node,tensorMap,context),concatTensorArray=context.getTensorArray(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context);return[concatTensorArray.concat(concatDtype)]}case"TensorArraySplitV3":{let splitId=getParamValue("tensorArrayId",node,tensorMap,context),splitTensor=getParamValue("tensor",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),splitTensorArray=context.getTensorArray(splitId.id);return splitTensorArray.split(lengths,splitTensor),[splitTensorArray.idTensor]}case"TensorArraySizeV3":{let sizeId=getParamValue("tensorArrayId",node,tensorMap,context),sizeTensorArray=context.getTensorArray(sizeId.id);return[scalar(sizeTensorArray.size(),"int32")]}case"TensorArrayCloseV3":{let closeId=getParamValue("tensorArrayId",node,tensorMap,context),closeTensorArray=context.getTensorArray(closeId.id);return closeTensorArray.clearAndClose(),[closeTensorArray.idTensor]}case"TensorListSetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.setItem(index,writeTensor),[tensorList.idTensor]}case"TensorListGetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).getItem(readIndex,elementShape,elementDType)]}case"TensorListScatterV2":case"TensorListScatter":{let scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context),tensorList=scatter(scatterTensor,scatterIndices,elementShape,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElementsParam;node.op==="TensorListReserve"?numElementsParam="numElements":numElementsParam="maxNumElements";let numElements=getParamValue(numElementsParam,node,tensorMap,context),tensorList=reserve(elementShape,elementDtype,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListGather":{let gatherId=getParamValue("tensorListId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(gatherId.id).gather(gatherIndices,elementDtype,elementShape)]}case"TensorListStack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context);return[context.getTensorList(idTensor.id).stack(elementShape,elementDtype,numElements)]}case"TensorListFromTensor":{let tensor2=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),tensorList=fromTensor(tensor2,elementShape,elementDtype);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListConcat":{let concatId=getParamValue("tensorListId",node,tensorMap,context),tensorList=context.getTensorList(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context);return[tensorList.concat(concatDtype,elementShape)]}case"TensorListPushBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.pushBack(writeTensor),[tensorList.idTensor]}case"TensorListPopBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).popBack(elementShape,elementDType)]}case"TensorListSplit":{let splitTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),tensorList=split2(splitTensor,lengths,elementShape);return context.addTensorList(tensorList),[tensorList.idTensor]}default:throw TypeError(`Node type ${node.op} is not implemented`)}};function fusedConvAndDepthWiseParams(node,tensorMap,context){let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",isBatchNorm=extraOp==="fusedbatchnorm",numArgs=getParamValue("numArgs",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(isBatchNorm)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context),[biasArg,preluArg]=getParamValue("args",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);return{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}}var executeOp4=(node,tensorMap,context)=>{switch(node.op){case"Conv1D":{let stride=getParamValue("stride",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilation=getParamValue("dilation",node,tensorMap,context);return[conv1d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),stride,pad3,dataFormat,dilation)]}case"Conv2D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"_FusedConv2D":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.conv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"FusedDepthwiseConv2dNative":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.depthwiseConv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let shape=getParamValue("outputShape",node,tensorMap,context),stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context);return[conv2dTranspose(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),shape,[stride[1],stride[2]],pad3)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthwiseConv2d(getParamValue("input",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"Conv3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv3d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2],stride[3]],pad3,dataFormat,[dilations[1],dilations[2],dilations[3]])]}case"AvgPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPoolWithArgmax":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context),includeBatchInIndex=getParamValue("includeBatchInIndex",node,tensorMap,context),{result,indexes}=maxPoolWithArgmax(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3,includeBatchInIndex);return[result,indexes]}case"AvgPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"MaxPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"Dilation2D":{let strides=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),strideHeight=strides[1],strideWidth=strides[2],dilationHeight=dilations[1],dilationWidth=dilations[2];return[dilation2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[strideHeight,strideWidth],pad3,[dilationHeight,dilationWidth],"NHWC")]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp5=(node,tensorMap,context)=>{switch(node.op){case"Fill":{let shape=getParamValue("shape",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),value=getParamValue("value",node,tensorMap,context);return[fill(shape,value,dtype)]}case"LinSpace":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),num=getParamValue("num",node,tensorMap,context);return[linspace(start,stop,num)]}case"Multinomial":{let logits=getParamValue("logits",node,tensorMap,context),numSamples=getParamValue("numSamples",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[multinomial(logits,numSamples,seed)]}case"OneHot":{let indices=getParamValue("indices",node,tensorMap,context),depth=getParamValue("depth",node,tensorMap,context),onValue=getParamValue("onValue",node,tensorMap,context),offValue=getParamValue("offValue",node,tensorMap,context);return[oneHot(indices,depth,onValue,offValue)]}case"Ones":return[ones2(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"OnesLike":return[onesLike(getParamValue("x",node,tensorMap,context))];case"RandomUniform":return[randomUniform(getParamValue("shape",node,tensorMap,context),getParamValue("minval",node,tensorMap,context),getParamValue("maxval",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"Range":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),step4=getParamValue("step",node,tensorMap,context);return[range(start,stop,step4,getParamValue("dtype",node,tensorMap,context))]}case"TruncatedNormal":{let shape=getParamValue("shape",node,tensorMap,context),mean4=getParamValue("mean",node,tensorMap,context),stdDev=getParamValue("stdDev",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[truncatedNormal(shape,mean4,stdDev,getParamValue("dtype",node,tensorMap,context),seed)]}case"Zeros":return[zeros(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ZerosLike":return[zerosLike(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function nmsParams(node,tensorMap,context){let boxes=getParamValue("boxes",node,tensorMap,context),scores=getParamValue("scores",node,tensorMap,context),maxOutputSize=getParamValue("maxOutputSize",node,tensorMap,context),iouThreshold=getParamValue("iouThreshold",node,tensorMap,context),scoreThreshold=getParamValue("scoreThreshold",node,tensorMap,context),softNmsSigma=getParamValue("softNmsSigma",node,tensorMap,context);return{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}var executeOp6=async(node,tensorMap,context)=>{switch(node.op){case"NonMaxSuppressionV5":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}=nmsParams(node,tensorMap,context),result=await image.nonMaxSuppressionWithScoreAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return[result.selectedIndices,result.selectedScores]}case"NonMaxSuppressionV4":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context),padToMaxOutputSize=getParamValue("padToMaxOutputSize",node,tensorMap,context),result=await image.nonMaxSuppressionPaddedAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize);return[result.selectedIndices,result.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context);return[await image.nonMaxSuppressionAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold)]}case"Where":{let condition=cast(getParamValue("condition",node,tensorMap,context),"bool"),result=[await whereAsync(condition)];return condition.dispose(),result}case"ListDiff":return setdiff1dAsync(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context));default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp7=(node,tensorMap,context)=>{switch(node.op){case"TopKV2":{let x=getParamValue("x",node,tensorMap,context),k=getParamValue("k",node,tensorMap,context),sorted=getParamValue("sorted",node,tensorMap,context),result=topk(x,k,sorted);return[result.values,result.indices]}case"Unique":{let x=getParamValue("x",node,tensorMap,context),result=unique(x);return[result.values,result.indices]}case"UniqueV2":{let x=getParamValue("x",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),result=unique(x,axis);return[result.values,result.indices]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp8=(node,tensorMap,context)=>{switch(node.op){case"Const":return tensorMap[node.name];case"PlaceholderWithDefault":let def=getParamValue("default",node,tensorMap,context);return[getTensor(node.name,tensorMap,context)||def];case"Placeholder":return[getTensor(node.name,tensorMap,context)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let data22=getParamValue("x",node,tensorMap,context);return[cloneTensor(data22)]}case"IdentityN":return getParamValue("x",node,tensorMap,context).map(t=>cloneTensor(t));case"Snapshot":let snapshot=getParamValue("x",node,tensorMap,context);return[cloneTensor(snapshot)];case"Shape":return[tensor1d(getParamValue("x",node,tensorMap,context).shape,"int32")];case"ShapeN":return getParamValue("x",node,tensorMap,context).map(t=>tensor1d(t.shape));case"Size":return[scalar(getParamValue("x",node,tensorMap,context).size,"int32")];case"Rank":return[scalar(getParamValue("x",node,tensorMap,context).rank,"int32")];case"NoOp":return[scalar(1)];case"Print":let input2=getParamValue("x",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context),message=getParamValue("message",node,tensorMap,context),summarize=getParamValue("summarize",node,tensorMap,context);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(message);for(let i=0;ivalue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(keys,values){this.checkKeyAndValueTensor(keys,values);let $keys=await keys.data();return this.tensorMap.forEach(value=>value.dispose()),this.tensorMap.clear(),tidy(()=>{let $values=unstack(values),keysLength=$keys.length,valuesLength=$values.length;util_exports.assert(keysLength===valuesLength,()=>`The number of elements doesn't match, keys has ${keysLength} elements, the values has ${valuesLength} elements.`);for(let i=0;i{let result=[];for(let i=0;i<$keys.length;i++){let key=$keys[i],value=this.findWithDefault(key,defaultValue);result.push(value)}return stack(result)})}findWithDefault(key,defaultValue){let result=this.tensorMap.get(key);return result!=null?result:defaultValue}checkKeyAndValueTensor(key,value){if(key.dtype!==this.keyDType)throw new Error(`Expect key dtype ${this.keyDType}, but got ${key.dtype}`);if(value.dtype!==this.valueDType)throw new Error(`Expect value dtype ${this.valueDType}, but got ${value.dtype}`)}},executeOp9=async(node,tensorMap,context,resourceManager)=>{switch(node.op){case"HashTable":case"HashTableV2":{let keyDType=getParamValue("keyDType",node,tensorMap,context),valueDType=getParamValue("valueDType",node,tensorMap,context),hashTable2=new HashTable(keyDType,valueDType);return resourceManager.addHashTable(node.name,hashTable2),[hashTable2.handle]}case"LookupTableImport":case"LookupTableImportV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).import(keys,values)]}case"LookupTableFind":case"LookupTableFindV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).find(keys,defaultValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp10=(node,tensorMap,context)=>{switch(node.op){case"ResizeBilinear":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeBilinear(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"ResizeNearestNeighbor":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeNearestNeighbor(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"CropAndResize":{let image3=getParamValue("image",node,tensorMap,context),boxes=getParamValue("boxes",node,tensorMap,context),boxInd=getParamValue("boxInd",node,tensorMap,context),cropSize=getParamValue("cropSize",node,tensorMap,context),method=getParamValue("method",node,tensorMap,context),extrapolationValue=getParamValue("extrapolationValue",node,tensorMap,context);return[image.cropAndResize(image3,boxes,boxInd,cropSize,method,extrapolationValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp11=(node,tensorMap,context)=>{switch(node.op){case"Equal":return[equal(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"NotEqual":return[notEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Greater":return[greater(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"GreaterEqual":return[greaterEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Less":return[less(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LessEqual":return[lessEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalAnd":return[logicalAnd(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalNot":return[logicalNot(getParamValue("a",node,tensorMap,context))];case"LogicalOr":return[logicalOr(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Select":case"SelectV2":return[where(getParamValue("condition",node,tensorMap,context),getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp12=(node,tensorMap,context)=>{switch(node.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[matMul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context),getParamValue("transposeA",node,tensorMap,context),getParamValue("transposeB",node,tensorMap,context))];case"Transpose":return[transpose(getParamValue("x",node,tensorMap,context),getParamValue("perm",node,tensorMap,context))];case"_FusedMatMul":let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",numArgs=getParamValue("numArgs",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[biasArg,preluArg]=getParamValue("args",node,tensorMap,context);return[fused_ops_exports.matMul({a:getParamValue("a",node,tensorMap,context),b:getParamValue("b",node,tensorMap,context),transposeA:getParamValue("transposeA",node,tensorMap,context),transposeB:getParamValue("transposeB",node,tensorMap,context),bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp13=(node,tensorMap,context)=>{switch(node.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"FusedBatchNormV3":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"LRN":return[localResponseNormalization(getParamValue("x",node,tensorMap,context),getParamValue("radius",node,tensorMap,context),getParamValue("bias",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context),getParamValue("beta",node,tensorMap,context))];case"Softmax":return[softmax(getParamValue("x",node,tensorMap,context))];case"LogSoftmax":return[logSoftmax(getParamValue("x",node,tensorMap,context))];case"SparseToDense":return[sparseToDense(getParamValue("sparseIndices",node,tensorMap,context),getParamValue("outputShape",node,tensorMap,context),getParamValue("sparseValues",node,tensorMap,context),getParamValue("defaultValue",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp14=(node,tensorMap,context)=>{switch(node.op){case"Max":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[max(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Mean":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[mean(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Min":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[min(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Sum":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[sum2(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"All":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[all(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Any":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[any(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"ArgMax":{let axis=getParamValue("axis",node,tensorMap,context);return[argMax(getParamValue("x",node,tensorMap,context),axis)]}case"ArgMin":{let axis=getParamValue("axis",node,tensorMap,context);return[argMin(getParamValue("x",node,tensorMap,context),axis)]}case"Prod":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[prod(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Cumsum":{let axis=getParamValue("axis",node,tensorMap,context),exclusive=getParamValue("exclusive",node,tensorMap,context),reverse5=getParamValue("reverse",node,tensorMap,context);return[cumsum(getParamValue("x",node,tensorMap,context),axis,exclusive,reverse5)]}case"Bincount":let x=getParamValue("x",node,tensorMap,context),weights=getParamValue("weights",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context);return[bincount(x,weights,size)];case"DenseBincount":{let x2=getParamValue("x",node,tensorMap,context),weights2=getParamValue("weights",node,tensorMap,context),size2=getParamValue("size",node,tensorMap,context),binaryOutput=getParamValue("binaryOutput",node,tensorMap,context);return[denseBincount(x2,weights2,size2,binaryOutput)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp15=(node,tensorMap,context)=>{switch(node.op){case"ConcatV2":case"Concat":{let n=getParamValue("n",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),inputs=getParamValue("tensors",node,tensorMap,context);return inputs=inputs.slice(0,n),[concat(inputs,axis)]}case"Gather":{let input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),0)]}case"GatherV2":{let axis=getParamValue("axis",node,tensorMap,context),batchDims=getParamValue("batchDims",node,tensorMap,context),input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),axis,batchDims)]}case"Reverse":{let dims=getParamValue("dims",node,tensorMap,context),axis=[];for(let i=0;i{let axis=getParamValue("axis",node,tensorMap,context),tensors=getParamValue("tensors",node,tensorMap,context),shape=tensors[0].shape,squeezedShape=squeeze(tensors[0]).shape,mapped=tensors.map(tensor2=>{let sameShape=util_exports.arraysEqual(tensor2.shape,shape);if(!sameShape&&!util_exports.arraysEqual(squeeze(tensor2).shape,squeezedShape))throw new Error("the input tensors shape does not match");return sameShape?tensor2:reshape(tensor2,shape)});return[stack(mapped,axis)]});case"Unpack":{let axis=getParamValue("axis",node,tensorMap,context),tensor2=getParamValue("tensor",node,tensorMap,context);return unstack(tensor2,axis)}case"Tile":{let reps=getParamValue("reps",node,tensorMap,context);return[tile(getParamValue("x",node,tensorMap,context),reps)]}case"Split":case"SplitV":{let axis=getParamValue("axis",node,tensorMap,context),numOrSizeSplits=getParamValue("numOrSizeSplits",node,tensorMap,context),tensor2=getParamValue("x",node,tensorMap,context);return split(tensor2,numOrSizeSplits,axis)}case"ScatterNd":{let indices=getParamValue("indices",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context),shape=getParamValue("shape",node,tensorMap,context);return[scatterND(indices,values,shape)]}case"GatherNd":{let x=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gatherND(x,indices)]}case"SparseToDense":{let indices=getParamValue("sparseIndices",node,tensorMap,context),shape=getParamValue("outputShape",node,tensorMap,context),sparseValues=getParamValue("sparseValues",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[sparseToDense(indices,sparseValues,shape,sparseValues.dtype===defaultValue.dtype?defaultValue:cast(defaultValue,sparseValues.dtype))]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp16=(node,tensorMap,context)=>{switch(node.op){case"FFT":return[fft(getParamValue("x",node,tensorMap,context))];case"IFFT":return[ifft(getParamValue("x",node,tensorMap,context))];case"RFFT":return[rfft(getParamValue("x",node,tensorMap,context))];case"IRFFT":return[irfft(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp17=(node,tensorMap,context)=>{switch(node.op){case"Cast":return[cast(getParamValue("x",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ExpandDims":{let axis=getParamValue("axis",node,tensorMap,context);return[expandDims(getParamValue("x",node,tensorMap,context),axis)]}case"Squeeze":{let axis=getParamValue("axis",node,tensorMap,context);return[squeeze(getParamValue("x",node,tensorMap,context),axis)]}case"Reshape":return[reshape(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];case"MirrorPad":return[mirrorPad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("mode",node,tensorMap,context))];case"PadV2":case"Pad":return[pad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("constantValue",node,tensorMap,context))];case"SpaceToBatchND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),paddings=getParamValue("paddings",node,tensorMap,context);return[spaceToBatchND(getParamValue("x",node,tensorMap,context),blockShape,paddings)]}case"BatchToSpaceND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),crops=getParamValue("crops",node,tensorMap,context);return[batchToSpaceND(getParamValue("x",node,tensorMap,context),blockShape,crops)]}case"DepthToSpace":{let blockSize=getParamValue("blockSize",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthToSpace(getParamValue("x",node,tensorMap,context),blockSize,dataFormat)]}case"BroadcastTo":return[broadcastTo(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function executeOp18(node,tensorMap,context,resourceManager){let value=((node2,tensorMap2,context2)=>{switch(node2.category){case"arithmetic":return tidy(()=>executeOp(node2,tensorMap2,context2));case"basic_math":return tidy(()=>executeOp2(node2,tensorMap2,context2));case"control":return executeOp3(node2,tensorMap2,context2);case"convolution":return tidy(()=>executeOp4(node2,tensorMap2,context2));case"creation":return tidy(()=>executeOp5(node2,tensorMap2,context2));case"dynamic":return executeOp6(node2,tensorMap2,context2);case"evaluation":return tidy(()=>executeOp7(node2,tensorMap2,context2));case"image":return tidy(()=>executeOp10(node2,tensorMap2,context2));case"graph":return tidy(()=>executeOp8(node2,tensorMap2,context2));case"logical":return tidy(()=>executeOp11(node2,tensorMap2,context2));case"matrices":return tidy(()=>executeOp12(node2,tensorMap2,context2));case"normalization":return tidy(()=>executeOp13(node2,tensorMap2,context2));case"reduction":return tidy(()=>executeOp14(node2,tensorMap2,context2));case"slice_join":return tidy(()=>executeOp15(node2,tensorMap2,context2));case"spectral":return tidy(()=>executeOp16(node2,tensorMap2,context2));case"transformation":return tidy(()=>executeOp17(node2,tensorMap2,context2));case"hash_table":return executeOp9(node2,tensorMap2,context2,resourceManager);case"custom":let opMapper=getRegisteredOp(node2.op);if(opMapper&&opMapper.customExecutor)return opMapper.customExecutor(new NodeValueImpl(node2,tensorMap2,context2));throw TypeError(`Custom op ${node2.op} is not registered.`);default:throw TypeError(`Unknown op '${node2.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(node,tensorMap,context);return util_exports.isPromise(value)?value.then(data2=>[].concat(data2)):[].concat(value)}var ExecutionContext=class{constructor(weightMap={},tensorArrayMap={},tensorListMap={},functionMap={}){this.weightMap=weightMap,this.tensorArrayMap=tensorArrayMap,this.tensorListMap=tensorListMap,this.functionMap=functionMap,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(id,frameName){return{id,frameName,iterationId:0}}set currentContext(contexts2){this.contexts!==contexts2&&(this.contexts=contexts2,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let names=[];for(let i=0;icontext.id===0&&context.iterationId===0?"":`${context.frameName}-${context.iterationId}`).join("/"):""}enterFrame(frameId){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,frameId)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let context=Object.assign({},this.contexts[this.contexts.length-1]);context.iterationId+=1,context.id=this.lastId,this.contexts.splice(-1,1,context),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(name){return this.weightMap[name]}addTensorArray(tensorArray){this.tensorArrayMap[tensorArray.id]=tensorArray}getTensorArray(id){return this.tensorArrayMap[id]}addTensorList(tensorList){this.tensorListMap[tensorList.id]=tensorList}getTensorList(id){return this.tensorListMap[id]}dispose(keepIds){for(let key in this.tensorArrayMap)this.tensorArrayMap[key].clearAndClose(keepIds);for(let key in this.tensorListMap)this.tensorListMap[key].clearAndClose(keepIds)}};function getExecutionSubgraph(inputs,outputs,weightMap,initNodes){let usedNodes=new Set,missingInputs=[],dynamicNode=null,syncInputs=null,seen=new Set,inputNodeNames=Object.keys(inputs).map(name=>parseNodeName(name)[0]),initNodeNames=[];initNodes!=null&&(initNodeNames=initNodes.map(node=>parseNodeName(node.name)[0]));let frontier=[...outputs];for(;frontier.length>0;){let node=frontier.pop();if((isControlFlow(node)||isDynamicShape(node)||isHashTable(node))&&dynamicNode==null&&(dynamicNode=node,syncInputs=dynamicNode.children.map(child=>child.name).filter(name=>usedNodes.has(name))),usedNodes.add(node.name),weightMap[node.name]==null&&inputNodeNames.indexOf(node.name)===-1&&initNodeNames.indexOf(node.name)===-1){if(node.inputs.length===0){missingInputs.push(node.name);continue}node.inputs.forEach(input2=>{seen.has(input2.name)||(seen.add(input2.name),frontier.push(input2))})}}return{inputs,outputs,usedNodes,missingInputs,dynamicNode,syncInputs}}function getNodesInTopologicalOrder(graph2,weightMap,executionInfo){let{usedNodes,inputs}=executionInfo,frontier=[],inputNodes=Object.keys(inputs).map(name=>parseNodeName(name)[0]).map(name=>graph2.nodes[name]),initNodes=graph2.initNodes;inputNodes.forEach(input2=>{usedNodes.has(input2.name)&&frontier.push(input2)}),graph2.weights.forEach(weight=>{usedNodes.has(weight.name)&&frontier.push(weight)}),initNodes!=null&&initNodes.forEach(node=>{usedNodes.has(node.name)&&frontier.push(node)});let seen=new Set,orderedNodes=[];for(;frontier.length>0;){let node=frontier.pop();seen.add(node.name),weightMap[node.name]||orderedNodes.push(node),node.children.forEach(child=>{!seen.has(child.name)&&usedNodes.has(child.name)&&child.inputs.every(input2=>seen.has(input2.name))&&frontier.push(child)})}return orderedNodes}var CONTROL_FLOW_OPS=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],DYNAMIC_SHAPE_OPS=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],HASH_TABLE_OPS=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function isControlFlow(node){return CONTROL_FLOW_OPS.indexOf(node.op)>=0}function isDynamicShape(node){return DYNAMIC_SHAPE_OPS.indexOf(node.op)>=0}function isHashTable(node){return HASH_TABLE_OPS.indexOf(node.op)>=0}var GraphExecutor=class{constructor(graph2,parent){this.graph=graph2,this.parent=parent,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=graph2.outputs,this._inputs=graph2.inputs,this._initNodes=graph2.initNodes,this._signature=graph2.signature,this._functions=graph2.functions,graph2.functions!=null&&Object.keys(graph2.functions).forEach(name=>{this._functionExecutorMap[name]=new GraphExecutor(graph2.functions[name],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(weightMap){let weightIds=Object.keys(weightMap).map(key=>weightMap[key].map(tensor2=>tensor2.id));this._weightIds=[].concat(...weightIds),this._weightMap=weightMap}set resourceManager(resourceManager){this._resourceManager=resourceManager}get inputs(){return this._inputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(node=>node.signatureKey||node.name)}get outputNodes(){return this._outputs.map(node=>{let name=node.signatureKey||node.name;return node.defaultOutput?`${name}:${node.defaultOutput}`:name})}get functions(){return Object.keys(this._functions).reduce((map,key)=>(map[key]=this._functions[key].signature,map),{})}getCompilationKey(inputs,outputs){let sortedInputs=inputs.map(node=>node.name).sort(),sortedOutputs=outputs.map(node=>node.name).sort();return sortedInputs.join(this.SEPERATOR)+"--"+sortedOutputs.join(this.SEPERATOR)}compile(inputs,outputs){let executionInfo=getExecutionSubgraph(inputs,outputs,this.weightMap,this._initNodes),{missingInputs,dynamicNode,syncInputs}=executionInfo;if(dynamicNode!=null)throw new Error(`This execution contains the node '${dynamicNode.name}', which has the dynamic op '${dynamicNode.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${syncInputs}]`);if(missingInputs.length>0){let outNames=outputs.map(n=>n.name),inNames=Object.keys(inputs);throw new Error(`Cannot compute the outputs [${outNames}] from the provided inputs [${inNames}]. Missing the following inputs: [${missingInputs}]`)}return getNodesInTopologicalOrder(this.graph,this.weightMap,executionInfo)}execute(inputs,outputs){inputs=this.mapInputs(inputs);let names=Object.keys(inputs).sort();this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs);let inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputs.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let compilationKey=this.getCompilationKey(inputNodes,outputNodes),orderedNodes=this.compiledMap.get(compilationKey);orderedNodes==null&&(orderedNodes=this.compile(inputs,outputNodes),this.compiledMap.set(compilationKey,orderedNodes));let tensorArrayMap={},tensorListMap={};return tidy(()=>{let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let tensorsToKeep=this.getFrozenTensorIds(tensorsMap),intermediateTensorConsumerCount={};for(let i=0;igetTensor(name,tensorsMap,context))})}getFrozenTensorIds(tensorMap){let ids=[].concat.apply([],Object.keys(tensorMap).map(key=>tensorMap[key]).map(tensors=>tensors.map(tensor2=>tensor2.id)));return new Set(ids)}checkTensorForDisposal(nodeName,node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount){node.category==="control"||outputNames.indexOf(nodeName)!==-1||(tensorMap[nodeName].forEach(tensor2=>{tensor2!=null&&(intermediateTensorConsumerCount[tensor2.id]=(intermediateTensorConsumerCount[tensor2.id]||0)+node.children.length)}),node.inputs.forEach(input2=>{if(input2.category!=="control"){let tensors=getTensorsForCurrentContenxt(input2.name,tensorMap,context);tensors!=null&&tensors.forEach(tensor2=>{if(tensor2&&!tensorsToKeep.has(tensor2.id)){let count2=intermediateTensorConsumerCount[tensor2.id];count2===1?(tensor2.dispose(),delete intermediateTensorConsumerCount[tensor2.id]):count2!=null&&intermediateTensorConsumerCount[tensor2.id]--}})}}))}async executeAsync(inputs,outputs){return this._executeAsync(inputs,outputs)}async _executeAsync(inputs,outputs,isFunctionExecution=!1,tensorArrayMap={},tensorListMap={}){isFunctionExecution||(inputs=this.mapInputs(inputs),this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs));let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorMap=await this.executeWithControlFlow(inputs,context,outputs,isFunctionExecution),results=outputs.map(name=>getTensor(name,tensorMap,context)),outputIds=results.map(t=>t.id),inputIds=Object.keys(inputs).map(name=>inputs[name].id),keepIds=new Set([...outputIds,...inputIds,...this.weightIds]);return Object.keys(tensorMap).forEach(key=>{tensorMap[key].forEach(tensor2=>{tensor2&&!tensor2.isDisposed&&!keepIds.has(tensor2.id)&&tensor2.dispose()})}),this.parent==null&&context.dispose(keepIds),results}async executeFunctionAsync(inputs,tensorArrayMap,tensorListMap){let mappedInputs=inputs.reduce((map,tensor2,index)=>(map[this.inputs[index].name]=tensor2,map),{});return this._executeAsync(mappedInputs,this.outputNodes,!0,tensorArrayMap,tensorListMap)}async executeWithControlFlow(inputs,context,outputNames,isFunctionExecution){let names=Object.keys(inputs),inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputNames.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let{usedNodes,missingInputs,dynamicNode,syncInputs}=getExecutionSubgraph(inputs,outputNodes,this.weightMap,this._initNodes),stack2=[...inputNodes,...this.graph.weights,...this._initNodes||[]].map(node=>({node,contexts:context.currentContext})),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let intermediateTensorConsumerCount={},tensorsToKeep=this.getFrozenTensorIds(tensorsMap),added={};for(;stack2.length>0;){let promises=this.processStack(inputNodes,stack2,context,tensorsMap,added,tensorsToKeep,outputNodeNames,intermediateTensorConsumerCount,usedNodes);await Promise.all(promises)}dynamicNode==null&&!isFunctionExecution&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let missingOutputs=outputNodes.filter(node=>!isControlFlow(node)&&!getTensor(node.name,tensorsMap,context)).map(node=>node.name);if(missingOutputs.length>0){let alternativeMsg="";throw dynamicNode!=null&&(alternativeMsg=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${syncInputs}]`),new Error(`Cannot compute the outputs [${missingOutputs}] from the provided inputs [${names}]. Consider providing the following inputs: [${missingInputs}]. ${alternativeMsg}`)}return tensorsMap}processStack(inputNodes,stack2,context,tensorMap,added,tensorsToKeep,outputNames,intermediateTensorConsumerCount,usedNodes){let promises=[];for(;stack2.length>0;){let item=stack2.pop();context.currentContext=item.contexts;let nodeName="";if(item.node.op==="Enter"&&getParamValue("isConstant",item.node,tensorMap,context)&&([nodeName]=getNodeNameAndIndex(item.node.name,context)),tensorMap[item.node.name]==null){let tensors=executeOp18(item.node,tensorMap,context,this._resourceManager);nodeName||([nodeName]=getNodeNameAndIndex(item.node.name,context));let currentContext=context.currentContext;util_exports.isPromise(tensors)?promises.push(tensors.then(t=>(tensorMap[nodeName]=t,context.currentContext=currentContext,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes),t))):(tensorMap[nodeName]=tensors,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes))}else this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes)}return promises}processChildNodes(node,stack2,context,tensorMap,added,usedNodes){node.children.forEach(childNode=>{let[nodeName]=getNodeNameAndIndex(childNode.name,context);added[nodeName]||!usedNodes.has(childNode.name)||(childNode.op==="Merge"?childNode.inputNames.some(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})):childNode.inputNames.every(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})))})}dispose(){Object.keys(this.weightMap).forEach(key=>this.weightMap[key].forEach(tensor2=>tensor2.dispose()))}checkInputShapeAndType(inputs){Object.keys(inputs).forEach(name=>{let input2=inputs[name],[nodeName]=parseNodeName(name),node=this.graph.nodes[nodeName];if(node.attrParams.shape&&node.attrParams.shape.value){let shape=node.attrParams.shape.value,match=shape.length===input2.shape.length&&input2.shape.every((dim,index)=>shape[index]===-1||shape[index]===dim);util_exports.assert(match,()=>`The shape of dict['${node.name}'] provided in model.execute(dict) must be [${shape}], but was [${input2.shape}]`)}node.attrParams.dtype&&node.attrParams.dtype.value&&util_exports.assert(input2.dtype===node.attrParams.dtype.value,()=>`The dtype of dict['${node.name}'] provided in model.execute(dict) must be ${node.attrParams.dtype.value}, but was ${input2.dtype}`)})}mapInputs(inputs){let result={};for(let inputName in inputs)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[inputName]!=null){let tensor2=this._signature.inputs[inputName];result[tensor2.name]=inputs[inputName]}else result[inputName]=inputs[inputName];return result}checkInputs(inputs){let notInGraph=Object.keys(inputs).filter(name=>{let[nodeName]=parseNodeName(name);return this.graph.nodes[nodeName]==null});if(notInGraph.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${notInGraph}] that are not part of graph`)}mapOutputs(outputs){return outputs.map(name=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[name]!=null?this._signature.outputs[name].name:name,{})}checkOutputs(outputs){outputs.forEach(name=>{let[normalizedName]=parseNodeName(name);if(!this.graph.nodes[normalizedName])throw new Error(`The output '${name}' is not found in the graph`)})}},ResourceManager=class{constructor(hashTableNameToHandle={},hashTableMap={}){this.hashTableNameToHandle=hashTableNameToHandle,this.hashTableMap=hashTableMap}addHashTable(name,hashTable2){this.hashTableNameToHandle[name]=hashTable2.handle,this.hashTableMap[hashTable2.id]=hashTable2}getHashTableHandleByName(name){return this.hashTableNameToHandle[name]}getHashTableById(id){return this.hashTableMap[id]}dispose(){for(let key in this.hashTableMap)this.hashTableMap[key].clearAndClose(),delete this.hashTableMap[key];for(let name in this.hashTableNameToHandle)this.hashTableNameToHandle[name].dispose(),delete this.hashTableNameToHandle[name]}},TFHUB_SEARCH_PARAM="?tfjs-format=file",DEFAULT_MODEL_NAME="model.json",GraphModel=class{constructor(modelUrl,loadOptions={}){this.modelUrl=modelUrl,this.loadOptions=loadOptions,this.version="n/a",loadOptions==null&&(this.loadOptions={}),this.resourceManager=new ResourceManager}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let path=this.modelUrl;if(path.load!=null)this.handler=path;else if(this.loadOptions.requestInit!=null)this.handler=io_exports.browserHTTPRequest(path,this.loadOptions);else{let handlers=io_exports.getLoadHandlers(path,this.loadOptions);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(path,this.loadOptions));else if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) load handlers for URL '${[path]}'`);this.handler=handlers[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await this.handler.load();return this.loadSync(artifacts)}loadSync(artifacts){this.artifacts=artifacts;let graph2=this.artifacts.modelTopology,signature;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?signature=this.artifacts.userDefinedMetadata.signature:signature=this.artifacts.signature,this.signature=signature,this.version=`${graph2.versions.producer}.${graph2.versions.minConsumer}`;let weightMap=io_exports.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new GraphExecutor(OperationMapper.Instance.transformGraph(graph2,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(weightMap),this.executor.resourceManager=this.resourceManager,artifacts.modelInitializer!=null&&artifacts.modelInitializer.node!=null){let initializer=OperationMapper.Instance.transformGraph(artifacts.modelInitializer);this.initializer=new GraphExecutor(initializer),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(handlerOrURL,config3){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new Error(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return handlerOrURL.save(this.artifacts)}predict(inputs,config3){return this.execute(inputs,this.outputNodes)}normalizeInputs(inputs){if(!(inputs instanceof Tensor)&&!Array.isArray(inputs))return inputs;if(inputs=Array.isArray(inputs)?inputs:[inputs],inputs.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${inputs.length} input tensors.`);return this.inputNodes.reduce((map,inputName,i)=>(map[inputName]=inputs[i],map),{})}normalizeOutputs(outputs){return outputs=outputs||this.outputNodes,Array.isArray(outputs)?outputs:[outputs]}execute(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=this.executor.execute(inputs,outputs);return result.length>1?result:result[0]}async executeAsync(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=await this.executor.executeAsync(inputs,outputs);return result.length>1?result:result[0]}convertTensorMapToTensorsMap(map){return Object.keys(map).reduce((newMap,key)=>(newMap[key]=[map[key]],newMap),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function loadGraphModel(modelUrl,options={}){if(modelUrl==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");options==null&&(options={}),options.fromTFHub&&modelUrl.load==null&&(modelUrl.endsWith("/")||(modelUrl=modelUrl+"/"),modelUrl=`${modelUrl}${DEFAULT_MODEL_NAME}${TFHUB_SEARCH_PARAM}`);let model2=new GraphModel(modelUrl,options);return await model2.load(),model2}var version11="2.8.3",dist_exports={};__export2(dist_exports,{CSVDataset:()=>CSVDataset,Dataset:()=>Dataset,FileDataSource:()=>FileDataSource,TextLineDataset:()=>TextLineDataset,URLDataSource:()=>URLDataSource,array:()=>array,csv:()=>csv,func:()=>func,generator:()=>generator,microphone:()=>microphone,version_data:()=>version12,webcam:()=>webcam,zip:()=>zip});var seedrandom4=__toModule2(require_seedrandom6()),seedrandom3=__toModule2(require_seedrandom6());function deepMap(input2,mapFn){return deepMapInternal(input2,mapFn)}function deepMapInternal(input2,mapFn,seen=new Map,containedIn=new Set){if(input2==null)return null;if(containedIn.has(input2))throw new Error("Circular references are not supported.");if(seen.has(input2))return seen.get(input2);let result=mapFn(input2);if(result.recurse&&result.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let child=input2[k],childResult=deepMapInternal(child,mapFn,seen,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return seen.set(input2,result.value),result.value}function deepZip(inputs,zipFn=zipToList){return deepZipInternal(inputs,zipFn)}function deepZipInternal(inputs,zipFn,containedIn=new Set){let input2=inputs[0];if(containedIn.has(input2))throw new Error("Circular references are not supported.");let result=zipFn(inputs);if(result.recurse&&result.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let children=inputs.map(x=>x[k]),childResult=deepZipInternal(children,zipFn,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return result.value}function zipToList(x){return x===null?null:isIterable2(x[0])?{value:null,recurse:!0}:{value:x,recurse:!1}}async function deepMapAndAwaitAll(input2,mapFn){let seen=new Map;deepMapInternal(input2,mapFn,seen);for(let key of Array.from(seen.keys())){let value=seen.get(key);if(util_exports.isPromise(value)){let mappedValue=await value;seen.set(key,mappedValue)}}return deepMapInternal(input2,mapFn,seen)}function isIterable2(obj){return obj!=null&&!ArrayBuffer.isView(obj)&&(Array.isArray(obj)||typeof obj=="object"&&!(obj instanceof Tensor))}function canTensorify(obj){return obj==null||isPrimitive(obj)||Array.isArray(obj)||typeof obj=="object"&&obj instanceof Tensor||util_exports.isTypedArray(obj)}function isPrimitive(value){return value===null||typeof value!="object"&&typeof value!="function"}function deepClone(container){return deepMap(container,cloneIfTensor)}function cloneIfTensor(item){return item instanceof Tensor?{value:item.clone(),recurse:!1}:isIterable2(item)?{value:null,recurse:!0}:{value:item,recurse:!1}}var RingBuffer=class{constructor(capacity){if(this.capacity=capacity,this.begin=0,this.end=0,capacity==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(capacity<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(capacity),this.doubledCapacity=2*capacity}wrap(index){for(;index<0;)index+=this.doubledCapacity;return index%this.doubledCapacity}get(index){if(index<0)throw new RangeError("Can't get item at a negative index.");return this.data[index%this.capacity]}set(index,value){if(index<0)throw new RangeError("Can't set item at a negative index.");this.data[index%this.capacity]=value}length(){let length=this.end-this.begin;return length<0&&(length=this.doubledCapacity+length),length}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,value),this.end=this.wrap(this.end+1)}pushAll(values){for(let value of values)this.push(value)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let result=this.get(this.end);return this.set(this.end,void 0),result}unshift(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,value)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let result=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),result}shuffleExcise(relativeIndex){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let index=this.wrap(this.begin+relativeIndex),result=this.get(index);return this.set(index,this.pop()),result}},GrowingRingBuffer=class extends RingBuffer{constructor(){super(GrowingRingBuffer.INITIAL_CAPACITY)}isFull(){return!1}push(value){super.isFull()&&this.expand(),super.push(value)}unshift(value){super.isFull()&&this.expand(),super.unshift(value)}expand(){let newCapacity=this.capacity*2,newData=new Array(newCapacity),len=this.length();for(let i=0;ix===!0)}rowMajorBatch(batchSize,smallLastBatch=!0){return new RowMajorBatchIterator(this,batchSize,smallLastBatch)}columnMajorBatch(batchSize,smallLastBatch=!0,zipFn=zipToList){return this.rowMajorBatch(batchSize,smallLastBatch).map(x=>deepZip(x,zipFn))}concatenate(iterator,baseErrorHandler){return new ChainedIterator(iteratorFromItems([this,iterator]),baseErrorHandler)}take(count2){return count2<0||count2==null?this:new TakeIterator(this,count2)}skip(count2){return count2<0||count2==null?this:new SkipIterator(this,count2)}prefetch(bufferSize){return new PrefetchIterator(this,bufferSize)}shuffle(windowSize,seed){return new ShuffleIterator(this,windowSize,seed)}serial(){return new SerialIterator(this)}},ArrayIterator=class extends LazyIterator{constructor(items){super();this.items=items,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let item=this.items[this.trav];return this.trav++,{value:deepClone(item),done:!1}}},FunctionCallIterator=class extends LazyIterator{constructor(nextFn){super();this.nextFn=nextFn}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},SerialIterator=class extends LazyIterator{constructor(upstream){super();this.upstream=upstream,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},SkipIterator=class extends LazyIterator{constructor(upstream,maxCount){super();this.upstream=upstream,this.maxCount=maxCount,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},RowMajorBatchIterator=class extends LazyIterator{constructor(upstream,batchSize,enableSmallLastBatch=!0){super();this.upstream=upstream,this.batchSize=batchSize,this.enableSmallLastBatch=enableSmallLastBatch,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let batch=[];for(;batch.length0?{value:batch,done:!1}:{value:null,done:!0};batch.push(item.value)}return{value:batch,done:!1}}},FilterIterator=class extends LazyIterator{constructor(upstream,predicate){super();this.upstream=upstream,this.predicate=predicate,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let item=await this.upstream.next();if(item.done||this.predicate(item.value))return item;dispose(item.value)}}},MapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Map`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},ErrorHandlingLazyIterator=class extends LazyIterator{constructor(upstream,handler){super();this.upstream=upstream,this.handler=handler,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},AsyncMapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=await this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},OneToManyIterator=class extends LazyIterator{constructor(){super();this.outputQueue=new GrowingRingBuffer,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},FlatmapIterator=class extends OneToManyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let item=await this.upstream.next();if(item.done)return!1;let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mappedArray=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mappedArray);this.outputQueue.pushAll(mappedArray);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return!0}},ChainedIterator=class extends LazyIterator{constructor(iterators,baseErrorHandler){super();this.baseErrorHandler=baseErrorHandler,this.lastRead=null,this.iterator=null,this.moreIterators=iterators}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(lastRead){if(await lastRead,this.iterator==null){let iteratorResult=await this.moreIterators.next();if(iteratorResult.done)return{value:null,done:!0};this.iterator=iteratorResult.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let itemResult=await this.iterator.next();return itemResult.done?(this.iterator=null,this.readFromChain(lastRead)):itemResult}},ZipMismatchMode;(function(ZipMismatchMode2){ZipMismatchMode2[ZipMismatchMode2.FAIL=0]="FAIL",ZipMismatchMode2[ZipMismatchMode2.SHORTEST=1]="SHORTEST",ZipMismatchMode2[ZipMismatchMode2.LONGEST=2]="LONGEST"})(ZipMismatchMode||(ZipMismatchMode={}));var ZipIterator=class extends LazyIterator{constructor(iterators,mismatchMode=ZipMismatchMode.FAIL){super();this.iterators=iterators,this.mismatchMode=mismatchMode,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(afterState){await afterState;let numIterators=0,iteratorsDone=0;function getNext(container){return container instanceof LazyIterator?{value:container.next().then(x=>(numIterators++,x.done&&iteratorsDone++,x.value)),recurse:!1}:{value:null,recurse:!0}}let mapped=await deepMapAndAwaitAll(this.iterators,getNext);if(numIterators===iteratorsDone)return{value:null,done:!0};if(iteratorsDone>0)switch(this.mismatchMode){case ZipMismatchMode.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ZipMismatchMode.SHORTEST:return{value:null,done:!0};case ZipMismatchMode.LONGEST:default:}return this.count++,{value:mapped,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},PrefetchIterator=class extends LazyIterator{constructor(upstream,bufferSize){super();this.upstream=upstream,this.bufferSize=bufferSize,this.buffer=new RingBuffer(bufferSize)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let v=this.upstream.next();this.buffer.push(v)}}next(){return this.refill(),this.buffer.shift()}},ShuffleIterator=class extends PrefetchIterator{constructor(upstream,windowSize,seed){super(upstream,windowSize);this.upstream=upstream,this.windowSize=windowSize,this.upstreamExhausted=!1,this.random=seedrandom3.alea(seed||util_exports.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(max6){return Math.floor(this.random()*max6)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let chosenIndex=this.chooseIndex(),result=await this.buffer.shuffleExcise(chosenIndex);if(result.done)this.upstreamExhausted=!0;else return this.refill(),result}return{value:null,done:!0}}},Dataset=class{constructor(){this.size=null}batch(batchSize,smallLastBatch=!0){let base2=this;util_exports.assert(batchSize>0,()=>`batchSize needs to be positive, but it is + ${totalLength}, and tensor's shape is: ${tensor2.shape}`);let elementPerRow=totalLength===0?0:tensor2.size/totalLength,tensors=tidy(()=>{let tensors2=[];tensor2=reshape(tensor2,[1,totalLength,elementPerRow]);for(let i=0;i{switch(node.op){case"If":case"StatelessIf":{let thenFunc=getParamValue("thenBranch",node,tensorMap,context),elseFunc=getParamValue("elseBranch",node,tensorMap,context),cond=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context);return(await cond.data())[0]?context.functionMap[thenFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap):context.functionMap[elseFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap)}case"While":case"StatelessWhile":{let bodyFunc=getParamValue("body",node,tensorMap,context),condFunc=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context),condResult=await context.functionMap[condFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap),argIds=args.map(tensor2=>tensor2.id),condValue=await condResult[0].data();condResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let result=args;for(;condValue[0];){let origResult=result;result=await context.functionMap[bodyFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);let resultIds=result.map(tensor2=>tensor2.id);origResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let condResult2=await context.functionMap[condFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);condValue=await condResult2[0].data(),condResult2.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()})}return result}case"LoopCond":{let pred=getParamValue("pred",node,tensorMap,context);return[cloneTensor(pred)]}case"Switch":{let pred=getParamValue("pred",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context);return data2.kept||(data2=cloneTensor(data2)),(await pred.data())[0]?[void 0,data2]:[data2,void 0]}case"Merge":{let inputName=node.inputNames.find(name=>getTensor(name,tensorMap,context)!==void 0);if(inputName){let data2=getTensor(inputName,tensorMap,context);return[cloneTensor(data2)]}return}case"Enter":{let frameId=getParamValue("frameName",node,tensorMap,context),data2=getParamValue("tensor",node,tensorMap,context);return context.enterFrame(frameId),[cloneTensor(data2)]}case"Exit":{let data2=getParamValue("tensor",node,tensorMap,context);return context.exitFrame(),[cloneTensor(data2)]}case"NextIteration":{let data2=getParamValue("tensor",node,tensorMap,context);return context.nextIteration(),[cloneTensor(data2)]}case"TensorArrayV3":{let size=getParamValue("size",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),dynamicSize=getParamValue("dynamicSize",node,tensorMap,context),clearAfterRead=getParamValue("clearAfterRead",node,tensorMap,context),identicalElementShapes=getParamValue("identicalElementShapes",node,tensorMap,context),name=getParamValue("name",node,tensorMap,context),tensorArray=new TensorArray(name,dtype,size,elementShape,identicalElementShapes,dynamicSize,clearAfterRead);return context.addTensorArray(tensorArray),[tensorArray.idTensor,scalar(1)]}case"TensorArrayWriteV3":{let id=getParamValue("tensorArrayId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),writeTensorArray=context.getTensorArray(id.id);return writeTensorArray.write(index,writeTensor),[writeTensorArray.idTensor]}case"TensorArrayReadV3":{let readId=getParamValue("tensorArrayId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context);return[context.getTensorArray(readId.id).read(readIndex)]}case"TensorArrayGatherV3":{let gatherId=getParamValue("tensorArrayId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),gatherDtype=getParamValue("dtype",node,tensorMap,context);return[context.getTensorArray(gatherId.id).gather(gatherIndices,gatherDtype)]}case"TensorArrayScatterV3":{let scatterId=getParamValue("tensorArrayId",node,tensorMap,context),scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),scatterTensorArray=context.getTensorArray(scatterId.id);return scatterTensorArray.scatter(scatterIndices,scatterTensor),[scatterTensorArray.idTensor]}case"TensorArrayConcatV3":{let concatId=getParamValue("tensorArrayId",node,tensorMap,context),concatTensorArray=context.getTensorArray(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context);return[concatTensorArray.concat(concatDtype)]}case"TensorArraySplitV3":{let splitId=getParamValue("tensorArrayId",node,tensorMap,context),splitTensor=getParamValue("tensor",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),splitTensorArray=context.getTensorArray(splitId.id);return splitTensorArray.split(lengths,splitTensor),[splitTensorArray.idTensor]}case"TensorArraySizeV3":{let sizeId=getParamValue("tensorArrayId",node,tensorMap,context),sizeTensorArray=context.getTensorArray(sizeId.id);return[scalar(sizeTensorArray.size(),"int32")]}case"TensorArrayCloseV3":{let closeId=getParamValue("tensorArrayId",node,tensorMap,context),closeTensorArray=context.getTensorArray(closeId.id);return closeTensorArray.clearAndClose(),[closeTensorArray.idTensor]}case"TensorListSetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.setItem(index,writeTensor),[tensorList.idTensor]}case"TensorListGetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).getItem(readIndex,elementShape,elementDType)]}case"TensorListScatterV2":case"TensorListScatter":{let scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context),tensorList=scatter(scatterTensor,scatterIndices,elementShape,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElementsParam;node.op==="TensorListReserve"?numElementsParam="numElements":numElementsParam="maxNumElements";let numElements=getParamValue(numElementsParam,node,tensorMap,context),tensorList=reserve(elementShape,elementDtype,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListGather":{let gatherId=getParamValue("tensorListId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(gatherId.id).gather(gatherIndices,elementDtype,elementShape)]}case"TensorListStack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context);return[context.getTensorList(idTensor.id).stack(elementShape,elementDtype,numElements)]}case"TensorListFromTensor":{let tensor2=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),tensorList=fromTensor(tensor2,elementShape,elementDtype);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListConcat":{let concatId=getParamValue("tensorListId",node,tensorMap,context),tensorList=context.getTensorList(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context);return[tensorList.concat(concatDtype,elementShape)]}case"TensorListPushBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.pushBack(writeTensor),[tensorList.idTensor]}case"TensorListPopBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).popBack(elementShape,elementDType)]}case"TensorListSplit":{let splitTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),tensorList=split2(splitTensor,lengths,elementShape);return context.addTensorList(tensorList),[tensorList.idTensor]}default:throw TypeError(`Node type ${node.op} is not implemented`)}};function fusedConvAndDepthWiseParams(node,tensorMap,context){let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",isBatchNorm=extraOp==="fusedbatchnorm",numArgs=getParamValue("numArgs",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(isBatchNorm)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context),[biasArg,preluArg]=getParamValue("args",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);return{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}}var executeOp4=(node,tensorMap,context)=>{switch(node.op){case"Conv1D":{let stride=getParamValue("stride",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilation=getParamValue("dilation",node,tensorMap,context);return[conv1d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),stride,pad3,dataFormat,dilation)]}case"Conv2D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"_FusedConv2D":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.conv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"FusedDepthwiseConv2dNative":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.depthwiseConv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let shape=getParamValue("outputShape",node,tensorMap,context),stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context);return[conv2dTranspose(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),shape,[stride[1],stride[2]],pad3)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthwiseConv2d(getParamValue("input",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"Conv3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv3d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2],stride[3]],pad3,dataFormat,[dilations[1],dilations[2],dilations[3]])]}case"AvgPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPoolWithArgmax":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context),includeBatchInIndex=getParamValue("includeBatchInIndex",node,tensorMap,context),{result,indexes}=maxPoolWithArgmax(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3,includeBatchInIndex);return[result,indexes]}case"AvgPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"MaxPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"Dilation2D":{let strides=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),strideHeight=strides[1],strideWidth=strides[2],dilationHeight=dilations[1],dilationWidth=dilations[2];return[dilation2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[strideHeight,strideWidth],pad3,[dilationHeight,dilationWidth],"NHWC")]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp5=(node,tensorMap,context)=>{switch(node.op){case"Fill":{let shape=getParamValue("shape",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),value=getParamValue("value",node,tensorMap,context);return[fill(shape,value,dtype)]}case"LinSpace":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),num=getParamValue("num",node,tensorMap,context);return[linspace(start,stop,num)]}case"Multinomial":{let logits=getParamValue("logits",node,tensorMap,context),numSamples=getParamValue("numSamples",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[multinomial(logits,numSamples,seed)]}case"OneHot":{let indices=getParamValue("indices",node,tensorMap,context),depth=getParamValue("depth",node,tensorMap,context),onValue=getParamValue("onValue",node,tensorMap,context),offValue=getParamValue("offValue",node,tensorMap,context);return[oneHot(indices,depth,onValue,offValue)]}case"Ones":return[ones2(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"OnesLike":return[onesLike(getParamValue("x",node,tensorMap,context))];case"RandomUniform":return[randomUniform(getParamValue("shape",node,tensorMap,context),getParamValue("minval",node,tensorMap,context),getParamValue("maxval",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"Range":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),step4=getParamValue("step",node,tensorMap,context);return[range(start,stop,step4,getParamValue("dtype",node,tensorMap,context))]}case"TruncatedNormal":{let shape=getParamValue("shape",node,tensorMap,context),mean4=getParamValue("mean",node,tensorMap,context),stdDev=getParamValue("stdDev",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[truncatedNormal(shape,mean4,stdDev,getParamValue("dtype",node,tensorMap,context),seed)]}case"Zeros":return[zeros(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ZerosLike":return[zerosLike(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function nmsParams(node,tensorMap,context){let boxes=getParamValue("boxes",node,tensorMap,context),scores=getParamValue("scores",node,tensorMap,context),maxOutputSize=getParamValue("maxOutputSize",node,tensorMap,context),iouThreshold=getParamValue("iouThreshold",node,tensorMap,context),scoreThreshold=getParamValue("scoreThreshold",node,tensorMap,context),softNmsSigma=getParamValue("softNmsSigma",node,tensorMap,context);return{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}var executeOp6=async(node,tensorMap,context)=>{switch(node.op){case"NonMaxSuppressionV5":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}=nmsParams(node,tensorMap,context),result=await image.nonMaxSuppressionWithScoreAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return[result.selectedIndices,result.selectedScores]}case"NonMaxSuppressionV4":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context),padToMaxOutputSize=getParamValue("padToMaxOutputSize",node,tensorMap,context),result=await image.nonMaxSuppressionPaddedAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize);return[result.selectedIndices,result.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context);return[await image.nonMaxSuppressionAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold)]}case"Where":{let condition=cast(getParamValue("condition",node,tensorMap,context),"bool"),result=[await whereAsync(condition)];return condition.dispose(),result}case"ListDiff":return setdiff1dAsync(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context));default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp7=(node,tensorMap,context)=>{switch(node.op){case"TopKV2":{let x=getParamValue("x",node,tensorMap,context),k=getParamValue("k",node,tensorMap,context),sorted=getParamValue("sorted",node,tensorMap,context),result=topk(x,k,sorted);return[result.values,result.indices]}case"Unique":{let x=getParamValue("x",node,tensorMap,context),result=unique(x);return[result.values,result.indices]}case"UniqueV2":{let x=getParamValue("x",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),result=unique(x,axis);return[result.values,result.indices]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp8=(node,tensorMap,context)=>{switch(node.op){case"Const":return tensorMap[node.name];case"PlaceholderWithDefault":let def=getParamValue("default",node,tensorMap,context);return[getTensor(node.name,tensorMap,context)||def];case"Placeholder":return[getTensor(node.name,tensorMap,context)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let data22=getParamValue("x",node,tensorMap,context);return[cloneTensor(data22)]}case"IdentityN":return getParamValue("x",node,tensorMap,context).map(t=>cloneTensor(t));case"Snapshot":let snapshot=getParamValue("x",node,tensorMap,context);return[cloneTensor(snapshot)];case"Shape":return[tensor1d(getParamValue("x",node,tensorMap,context).shape,"int32")];case"ShapeN":return getParamValue("x",node,tensorMap,context).map(t=>tensor1d(t.shape));case"Size":return[scalar(getParamValue("x",node,tensorMap,context).size,"int32")];case"Rank":return[scalar(getParamValue("x",node,tensorMap,context).rank,"int32")];case"NoOp":return[scalar(1)];case"Print":let input2=getParamValue("x",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context),message=getParamValue("message",node,tensorMap,context),summarize=getParamValue("summarize",node,tensorMap,context);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(message);for(let i=0;ivalue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(keys,values){this.checkKeyAndValueTensor(keys,values);let $keys=await keys.data();return this.tensorMap.forEach(value=>value.dispose()),this.tensorMap.clear(),tidy(()=>{let $values=unstack(values),keysLength=$keys.length,valuesLength=$values.length;util_exports.assert(keysLength===valuesLength,()=>`The number of elements doesn't match, keys has ${keysLength} elements, the values has ${valuesLength} elements.`);for(let i=0;i{let result=[];for(let i=0;i<$keys.length;i++){let key=$keys[i],value=this.findWithDefault(key,defaultValue);result.push(value)}return stack(result)})}findWithDefault(key,defaultValue){let result=this.tensorMap.get(key);return result!=null?result:defaultValue}checkKeyAndValueTensor(key,value){if(key.dtype!==this.keyDType)throw new Error(`Expect key dtype ${this.keyDType}, but got ${key.dtype}`);if(value.dtype!==this.valueDType)throw new Error(`Expect value dtype ${this.valueDType}, but got ${value.dtype}`)}},executeOp9=async(node,tensorMap,context,resourceManager)=>{switch(node.op){case"HashTable":case"HashTableV2":{let keyDType=getParamValue("keyDType",node,tensorMap,context),valueDType=getParamValue("valueDType",node,tensorMap,context),hashTable2=new HashTable(keyDType,valueDType);return resourceManager.addHashTable(node.name,hashTable2),[hashTable2.handle]}case"LookupTableImport":case"LookupTableImportV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).import(keys,values)]}case"LookupTableFind":case"LookupTableFindV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).find(keys,defaultValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp10=(node,tensorMap,context)=>{switch(node.op){case"ResizeBilinear":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeBilinear(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"ResizeNearestNeighbor":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeNearestNeighbor(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"CropAndResize":{let image3=getParamValue("image",node,tensorMap,context),boxes=getParamValue("boxes",node,tensorMap,context),boxInd=getParamValue("boxInd",node,tensorMap,context),cropSize=getParamValue("cropSize",node,tensorMap,context),method=getParamValue("method",node,tensorMap,context),extrapolationValue=getParamValue("extrapolationValue",node,tensorMap,context);return[image.cropAndResize(image3,boxes,boxInd,cropSize,method,extrapolationValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp11=(node,tensorMap,context)=>{switch(node.op){case"Equal":return[equal(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"NotEqual":return[notEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Greater":return[greater(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"GreaterEqual":return[greaterEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Less":return[less(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LessEqual":return[lessEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalAnd":return[logicalAnd(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalNot":return[logicalNot(getParamValue("a",node,tensorMap,context))];case"LogicalOr":return[logicalOr(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Select":case"SelectV2":return[where(getParamValue("condition",node,tensorMap,context),getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp12=(node,tensorMap,context)=>{switch(node.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[matMul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context),getParamValue("transposeA",node,tensorMap,context),getParamValue("transposeB",node,tensorMap,context))];case"Transpose":return[transpose(getParamValue("x",node,tensorMap,context),getParamValue("perm",node,tensorMap,context))];case"_FusedMatMul":let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",numArgs=getParamValue("numArgs",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[biasArg,preluArg]=getParamValue("args",node,tensorMap,context);return[fused_ops_exports.matMul({a:getParamValue("a",node,tensorMap,context),b:getParamValue("b",node,tensorMap,context),transposeA:getParamValue("transposeA",node,tensorMap,context),transposeB:getParamValue("transposeB",node,tensorMap,context),bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp13=(node,tensorMap,context)=>{switch(node.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"FusedBatchNormV3":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"LRN":return[localResponseNormalization(getParamValue("x",node,tensorMap,context),getParamValue("radius",node,tensorMap,context),getParamValue("bias",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context),getParamValue("beta",node,tensorMap,context))];case"Softmax":return[softmax(getParamValue("x",node,tensorMap,context))];case"LogSoftmax":return[logSoftmax(getParamValue("x",node,tensorMap,context))];case"SparseToDense":return[sparseToDense(getParamValue("sparseIndices",node,tensorMap,context),getParamValue("outputShape",node,tensorMap,context),getParamValue("sparseValues",node,tensorMap,context),getParamValue("defaultValue",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp14=(node,tensorMap,context)=>{switch(node.op){case"Max":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[max(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Mean":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[mean(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Min":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[min(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Sum":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[sum2(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"All":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[all(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Any":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[any(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"ArgMax":{let axis=getParamValue("axis",node,tensorMap,context);return[argMax(getParamValue("x",node,tensorMap,context),axis)]}case"ArgMin":{let axis=getParamValue("axis",node,tensorMap,context);return[argMin(getParamValue("x",node,tensorMap,context),axis)]}case"Prod":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[prod(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Cumsum":{let axis=getParamValue("axis",node,tensorMap,context),exclusive=getParamValue("exclusive",node,tensorMap,context),reverse5=getParamValue("reverse",node,tensorMap,context);return[cumsum(getParamValue("x",node,tensorMap,context),axis,exclusive,reverse5)]}case"Bincount":let x=getParamValue("x",node,tensorMap,context),weights=getParamValue("weights",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context);return[bincount(x,weights,size)];case"DenseBincount":{let x2=getParamValue("x",node,tensorMap,context),weights2=getParamValue("weights",node,tensorMap,context),size2=getParamValue("size",node,tensorMap,context),binaryOutput=getParamValue("binaryOutput",node,tensorMap,context);return[denseBincount(x2,weights2,size2,binaryOutput)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp15=(node,tensorMap,context)=>{switch(node.op){case"ConcatV2":case"Concat":{let n=getParamValue("n",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),inputs=getParamValue("tensors",node,tensorMap,context);return inputs=inputs.slice(0,n),[concat(inputs,axis)]}case"Gather":{let input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),0)]}case"GatherV2":{let axis=getParamValue("axis",node,tensorMap,context),batchDims=getParamValue("batchDims",node,tensorMap,context),input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),axis,batchDims)]}case"Reverse":{let dims=getParamValue("dims",node,tensorMap,context),axis=[];for(let i=0;i{let axis=getParamValue("axis",node,tensorMap,context),tensors=getParamValue("tensors",node,tensorMap,context),shape=tensors[0].shape,squeezedShape=squeeze(tensors[0]).shape,mapped=tensors.map(tensor2=>{let sameShape=util_exports.arraysEqual(tensor2.shape,shape);if(!sameShape&&!util_exports.arraysEqual(squeeze(tensor2).shape,squeezedShape))throw new Error("the input tensors shape does not match");return sameShape?tensor2:reshape(tensor2,shape)});return[stack(mapped,axis)]});case"Unpack":{let axis=getParamValue("axis",node,tensorMap,context),tensor2=getParamValue("tensor",node,tensorMap,context);return unstack(tensor2,axis)}case"Tile":{let reps=getParamValue("reps",node,tensorMap,context);return[tile(getParamValue("x",node,tensorMap,context),reps)]}case"Split":case"SplitV":{let axis=getParamValue("axis",node,tensorMap,context),numOrSizeSplits=getParamValue("numOrSizeSplits",node,tensorMap,context),tensor2=getParamValue("x",node,tensorMap,context);return split(tensor2,numOrSizeSplits,axis)}case"ScatterNd":{let indices=getParamValue("indices",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context),shape=getParamValue("shape",node,tensorMap,context);return[scatterND(indices,values,shape)]}case"GatherNd":{let x=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gatherND(x,indices)]}case"SparseToDense":{let indices=getParamValue("sparseIndices",node,tensorMap,context),shape=getParamValue("outputShape",node,tensorMap,context),sparseValues=getParamValue("sparseValues",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[sparseToDense(indices,sparseValues,shape,sparseValues.dtype===defaultValue.dtype?defaultValue:cast(defaultValue,sparseValues.dtype))]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp16=(node,tensorMap,context)=>{switch(node.op){case"FFT":return[fft(getParamValue("x",node,tensorMap,context))];case"IFFT":return[ifft(getParamValue("x",node,tensorMap,context))];case"RFFT":return[rfft(getParamValue("x",node,tensorMap,context))];case"IRFFT":return[irfft(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp17=(node,tensorMap,context)=>{switch(node.op){case"Cast":return[cast(getParamValue("x",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ExpandDims":{let axis=getParamValue("axis",node,tensorMap,context);return[expandDims(getParamValue("x",node,tensorMap,context),axis)]}case"Squeeze":{let axis=getParamValue("axis",node,tensorMap,context);return[squeeze(getParamValue("x",node,tensorMap,context),axis)]}case"Reshape":return[reshape(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];case"MirrorPad":return[mirrorPad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("mode",node,tensorMap,context))];case"PadV2":case"Pad":return[pad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("constantValue",node,tensorMap,context))];case"SpaceToBatchND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),paddings=getParamValue("paddings",node,tensorMap,context);return[spaceToBatchND(getParamValue("x",node,tensorMap,context),blockShape,paddings)]}case"BatchToSpaceND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),crops=getParamValue("crops",node,tensorMap,context);return[batchToSpaceND(getParamValue("x",node,tensorMap,context),blockShape,crops)]}case"DepthToSpace":{let blockSize=getParamValue("blockSize",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthToSpace(getParamValue("x",node,tensorMap,context),blockSize,dataFormat)]}case"BroadcastTo":return[broadcastTo(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function executeOp18(node,tensorMap,context,resourceManager){let value=((node2,tensorMap2,context2)=>{switch(node2.category){case"arithmetic":return tidy(()=>executeOp(node2,tensorMap2,context2));case"basic_math":return tidy(()=>executeOp2(node2,tensorMap2,context2));case"control":return executeOp3(node2,tensorMap2,context2);case"convolution":return tidy(()=>executeOp4(node2,tensorMap2,context2));case"creation":return tidy(()=>executeOp5(node2,tensorMap2,context2));case"dynamic":return executeOp6(node2,tensorMap2,context2);case"evaluation":return tidy(()=>executeOp7(node2,tensorMap2,context2));case"image":return tidy(()=>executeOp10(node2,tensorMap2,context2));case"graph":return tidy(()=>executeOp8(node2,tensorMap2,context2));case"logical":return tidy(()=>executeOp11(node2,tensorMap2,context2));case"matrices":return tidy(()=>executeOp12(node2,tensorMap2,context2));case"normalization":return tidy(()=>executeOp13(node2,tensorMap2,context2));case"reduction":return tidy(()=>executeOp14(node2,tensorMap2,context2));case"slice_join":return tidy(()=>executeOp15(node2,tensorMap2,context2));case"spectral":return tidy(()=>executeOp16(node2,tensorMap2,context2));case"transformation":return tidy(()=>executeOp17(node2,tensorMap2,context2));case"hash_table":return executeOp9(node2,tensorMap2,context2,resourceManager);case"custom":let opMapper=getRegisteredOp(node2.op);if(opMapper&&opMapper.customExecutor)return opMapper.customExecutor(new NodeValueImpl(node2,tensorMap2,context2));throw TypeError(`Custom op ${node2.op} is not registered.`);default:throw TypeError(`Unknown op '${node2.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(node,tensorMap,context);return util_exports.isPromise(value)?value.then(data2=>[].concat(data2)):[].concat(value)}var ExecutionContext=class{constructor(weightMap={},tensorArrayMap={},tensorListMap={},functionMap={}){this.weightMap=weightMap,this.tensorArrayMap=tensorArrayMap,this.tensorListMap=tensorListMap,this.functionMap=functionMap,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(id,frameName){return{id,frameName,iterationId:0}}set currentContext(contexts2){this.contexts!==contexts2&&(this.contexts=contexts2,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let names=[];for(let i=0;icontext.id===0&&context.iterationId===0?"":`${context.frameName}-${context.iterationId}`).join("/"):""}enterFrame(frameId){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,frameId)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let context=Object.assign({},this.contexts[this.contexts.length-1]);context.iterationId+=1,context.id=this.lastId,this.contexts.splice(-1,1,context),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(name){return this.weightMap[name]}addTensorArray(tensorArray){this.tensorArrayMap[tensorArray.id]=tensorArray}getTensorArray(id){return this.tensorArrayMap[id]}addTensorList(tensorList){this.tensorListMap[tensorList.id]=tensorList}getTensorList(id){return this.tensorListMap[id]}dispose(keepIds){for(let key in this.tensorArrayMap)this.tensorArrayMap[key].clearAndClose(keepIds);for(let key in this.tensorListMap)this.tensorListMap[key].clearAndClose(keepIds)}};function getExecutionSubgraph(inputs,outputs,weightMap,initNodes){let usedNodes=new Set,missingInputs=[],dynamicNode=null,syncInputs=null,seen=new Set,inputNodeNames=Object.keys(inputs).map(name=>parseNodeName(name)[0]),initNodeNames=[];initNodes!=null&&(initNodeNames=initNodes.map(node=>parseNodeName(node.name)[0]));let frontier=[...outputs];for(;frontier.length>0;){let node=frontier.pop();if((isControlFlow(node)||isDynamicShape(node)||isHashTable(node))&&dynamicNode==null&&(dynamicNode=node,syncInputs=dynamicNode.children.map(child=>child.name).filter(name=>usedNodes.has(name))),usedNodes.add(node.name),weightMap[node.name]==null&&inputNodeNames.indexOf(node.name)===-1&&initNodeNames.indexOf(node.name)===-1){if(node.inputs.length===0){missingInputs.push(node.name);continue}node.inputs.forEach(input2=>{seen.has(input2.name)||(seen.add(input2.name),frontier.push(input2))})}}return{inputs,outputs,usedNodes,missingInputs,dynamicNode,syncInputs}}function getNodesInTopologicalOrder(graph2,weightMap,executionInfo){let{usedNodes,inputs}=executionInfo,frontier=[],inputNodes=Object.keys(inputs).map(name=>parseNodeName(name)[0]).map(name=>graph2.nodes[name]),initNodes=graph2.initNodes;inputNodes.forEach(input2=>{usedNodes.has(input2.name)&&frontier.push(input2)}),graph2.weights.forEach(weight=>{usedNodes.has(weight.name)&&frontier.push(weight)}),initNodes!=null&&initNodes.forEach(node=>{usedNodes.has(node.name)&&frontier.push(node)});let seen=new Set,orderedNodes=[];for(;frontier.length>0;){let node=frontier.pop();seen.add(node.name),weightMap[node.name]||orderedNodes.push(node),node.children.forEach(child=>{!seen.has(child.name)&&usedNodes.has(child.name)&&child.inputs.every(input2=>seen.has(input2.name))&&frontier.push(child)})}return orderedNodes}var CONTROL_FLOW_OPS=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],DYNAMIC_SHAPE_OPS=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],HASH_TABLE_OPS=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function isControlFlow(node){return CONTROL_FLOW_OPS.indexOf(node.op)>=0}function isDynamicShape(node){return DYNAMIC_SHAPE_OPS.indexOf(node.op)>=0}function isHashTable(node){return HASH_TABLE_OPS.indexOf(node.op)>=0}var GraphExecutor=class{constructor(graph2,parent){this.graph=graph2,this.parent=parent,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=graph2.outputs,this._inputs=graph2.inputs,this._initNodes=graph2.initNodes,this._signature=graph2.signature,this._functions=graph2.functions,graph2.functions!=null&&Object.keys(graph2.functions).forEach(name=>{this._functionExecutorMap[name]=new GraphExecutor(graph2.functions[name],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(weightMap){let weightIds=Object.keys(weightMap).map(key=>weightMap[key].map(tensor2=>tensor2.id));this._weightIds=[].concat(...weightIds),this._weightMap=weightMap}set resourceManager(resourceManager){this._resourceManager=resourceManager}get inputs(){return this._inputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(node=>node.signatureKey||node.name)}get outputNodes(){return this._outputs.map(node=>{let name=node.signatureKey||node.name;return node.defaultOutput?`${name}:${node.defaultOutput}`:name})}get functions(){return Object.keys(this._functions).reduce((map,key)=>(map[key]=this._functions[key].signature,map),{})}getCompilationKey(inputs,outputs){let sortedInputs=inputs.map(node=>node.name).sort(),sortedOutputs=outputs.map(node=>node.name).sort();return sortedInputs.join(this.SEPERATOR)+"--"+sortedOutputs.join(this.SEPERATOR)}compile(inputs,outputs){let executionInfo=getExecutionSubgraph(inputs,outputs,this.weightMap,this._initNodes),{missingInputs,dynamicNode,syncInputs}=executionInfo;if(dynamicNode!=null)throw new Error(`This execution contains the node '${dynamicNode.name}', which has the dynamic op '${dynamicNode.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${syncInputs}]`);if(missingInputs.length>0){let outNames=outputs.map(n=>n.name),inNames=Object.keys(inputs);throw new Error(`Cannot compute the outputs [${outNames}] from the provided inputs [${inNames}]. Missing the following inputs: [${missingInputs}]`)}return getNodesInTopologicalOrder(this.graph,this.weightMap,executionInfo)}execute(inputs,outputs){inputs=this.mapInputs(inputs);let names=Object.keys(inputs).sort();this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs);let inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputs.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let compilationKey=this.getCompilationKey(inputNodes,outputNodes),orderedNodes=this.compiledMap.get(compilationKey);orderedNodes==null&&(orderedNodes=this.compile(inputs,outputNodes),this.compiledMap.set(compilationKey,orderedNodes));let tensorArrayMap={},tensorListMap={};return tidy(()=>{let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let tensorsToKeep=this.getFrozenTensorIds(tensorsMap),intermediateTensorConsumerCount={};for(let i=0;igetTensor(name,tensorsMap,context))})}getFrozenTensorIds(tensorMap){let ids=[].concat.apply([],Object.keys(tensorMap).map(key=>tensorMap[key]).map(tensors=>tensors.map(tensor2=>tensor2.id)));return new Set(ids)}checkTensorForDisposal(nodeName,node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount){node.category==="control"||outputNames.indexOf(nodeName)!==-1||(tensorMap[nodeName].forEach(tensor2=>{tensor2!=null&&(intermediateTensorConsumerCount[tensor2.id]=(intermediateTensorConsumerCount[tensor2.id]||0)+node.children.length)}),node.inputs.forEach(input2=>{if(input2.category!=="control"){let tensors=getTensorsForCurrentContenxt(input2.name,tensorMap,context);tensors!=null&&tensors.forEach(tensor2=>{if(tensor2&&!tensorsToKeep.has(tensor2.id)){let count2=intermediateTensorConsumerCount[tensor2.id];count2===1?(tensor2.dispose(),delete intermediateTensorConsumerCount[tensor2.id]):count2!=null&&intermediateTensorConsumerCount[tensor2.id]--}})}}))}async executeAsync(inputs,outputs){return this._executeAsync(inputs,outputs)}async _executeAsync(inputs,outputs,isFunctionExecution=!1,tensorArrayMap={},tensorListMap={}){isFunctionExecution||(inputs=this.mapInputs(inputs),this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs));let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorMap=await this.executeWithControlFlow(inputs,context,outputs,isFunctionExecution),results=outputs.map(name=>getTensor(name,tensorMap,context)),outputIds=results.map(t=>t.id),inputIds=Object.keys(inputs).map(name=>inputs[name].id),keepIds=new Set([...outputIds,...inputIds,...this.weightIds]);return Object.keys(tensorMap).forEach(key=>{tensorMap[key].forEach(tensor2=>{tensor2&&!tensor2.isDisposed&&!keepIds.has(tensor2.id)&&tensor2.dispose()})}),this.parent==null&&context.dispose(keepIds),results}async executeFunctionAsync(inputs,tensorArrayMap,tensorListMap){let mappedInputs=inputs.reduce((map,tensor2,index)=>(map[this.inputs[index].name]=tensor2,map),{});return this._executeAsync(mappedInputs,this.outputNodes,!0,tensorArrayMap,tensorListMap)}async executeWithControlFlow(inputs,context,outputNames,isFunctionExecution){let names=Object.keys(inputs),inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputNames.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let{usedNodes,missingInputs,dynamicNode,syncInputs}=getExecutionSubgraph(inputs,outputNodes,this.weightMap,this._initNodes),stack2=[...inputNodes,...this.graph.weights,...this._initNodes||[]].map(node=>({node,contexts:context.currentContext})),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let intermediateTensorConsumerCount={},tensorsToKeep=this.getFrozenTensorIds(tensorsMap),added={};for(;stack2.length>0;){let promises=this.processStack(inputNodes,stack2,context,tensorsMap,added,tensorsToKeep,outputNodeNames,intermediateTensorConsumerCount,usedNodes);await Promise.all(promises)}dynamicNode==null&&!isFunctionExecution&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let missingOutputs=outputNodes.filter(node=>!isControlFlow(node)&&!getTensor(node.name,tensorsMap,context)).map(node=>node.name);if(missingOutputs.length>0){let alternativeMsg="";throw dynamicNode!=null&&(alternativeMsg=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${syncInputs}]`),new Error(`Cannot compute the outputs [${missingOutputs}] from the provided inputs [${names}]. Consider providing the following inputs: [${missingInputs}]. ${alternativeMsg}`)}return tensorsMap}processStack(inputNodes,stack2,context,tensorMap,added,tensorsToKeep,outputNames,intermediateTensorConsumerCount,usedNodes){let promises=[];for(;stack2.length>0;){let item=stack2.pop();context.currentContext=item.contexts;let nodeName="";if(item.node.op==="Enter"&&getParamValue("isConstant",item.node,tensorMap,context)&&([nodeName]=getNodeNameAndIndex(item.node.name,context)),tensorMap[item.node.name]==null){let tensors=executeOp18(item.node,tensorMap,context,this._resourceManager);nodeName||([nodeName]=getNodeNameAndIndex(item.node.name,context));let currentContext=context.currentContext;util_exports.isPromise(tensors)?promises.push(tensors.then(t=>(tensorMap[nodeName]=t,context.currentContext=currentContext,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes),t))):(tensorMap[nodeName]=tensors,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes))}else this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes)}return promises}processChildNodes(node,stack2,context,tensorMap,added,usedNodes){node.children.forEach(childNode=>{let[nodeName]=getNodeNameAndIndex(childNode.name,context);added[nodeName]||!usedNodes.has(childNode.name)||(childNode.op==="Merge"?childNode.inputNames.some(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})):childNode.inputNames.every(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})))})}dispose(){Object.keys(this.weightMap).forEach(key=>this.weightMap[key].forEach(tensor2=>tensor2.dispose()))}checkInputShapeAndType(inputs){Object.keys(inputs).forEach(name=>{let input2=inputs[name],[nodeName]=parseNodeName(name),node=this.graph.nodes[nodeName];if(node.attrParams.shape&&node.attrParams.shape.value){let shape=node.attrParams.shape.value,match=shape.length===input2.shape.length&&input2.shape.every((dim,index)=>shape[index]===-1||shape[index]===dim);util_exports.assert(match,()=>`The shape of dict['${node.name}'] provided in model.execute(dict) must be [${shape}], but was [${input2.shape}]`)}node.attrParams.dtype&&node.attrParams.dtype.value&&util_exports.assert(input2.dtype===node.attrParams.dtype.value,()=>`The dtype of dict['${node.name}'] provided in model.execute(dict) must be ${node.attrParams.dtype.value}, but was ${input2.dtype}`)})}mapInputs(inputs){let result={};for(let inputName in inputs)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[inputName]!=null){let tensor2=this._signature.inputs[inputName];result[tensor2.name]=inputs[inputName]}else result[inputName]=inputs[inputName];return result}checkInputs(inputs){let notInGraph=Object.keys(inputs).filter(name=>{let[nodeName]=parseNodeName(name);return this.graph.nodes[nodeName]==null});if(notInGraph.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${notInGraph}] that are not part of graph`)}mapOutputs(outputs){return outputs.map(name=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[name]!=null?this._signature.outputs[name].name:name,{})}checkOutputs(outputs){outputs.forEach(name=>{let[normalizedName]=parseNodeName(name);if(!this.graph.nodes[normalizedName])throw new Error(`The output '${name}' is not found in the graph`)})}},ResourceManager=class{constructor(hashTableNameToHandle={},hashTableMap={}){this.hashTableNameToHandle=hashTableNameToHandle,this.hashTableMap=hashTableMap}addHashTable(name,hashTable2){this.hashTableNameToHandle[name]=hashTable2.handle,this.hashTableMap[hashTable2.id]=hashTable2}getHashTableHandleByName(name){return this.hashTableNameToHandle[name]}getHashTableById(id){return this.hashTableMap[id]}dispose(){for(let key in this.hashTableMap)this.hashTableMap[key].clearAndClose(),delete this.hashTableMap[key];for(let name in this.hashTableNameToHandle)this.hashTableNameToHandle[name].dispose(),delete this.hashTableNameToHandle[name]}},TFHUB_SEARCH_PARAM="?tfjs-format=file",DEFAULT_MODEL_NAME="model.json",GraphModel=class{constructor(modelUrl,loadOptions={}){this.modelUrl=modelUrl,this.loadOptions=loadOptions,this.version="n/a",loadOptions==null&&(this.loadOptions={}),this.resourceManager=new ResourceManager}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let path=this.modelUrl;if(path.load!=null)this.handler=path;else if(this.loadOptions.requestInit!=null)this.handler=io_exports.browserHTTPRequest(path,this.loadOptions);else{let handlers=io_exports.getLoadHandlers(path,this.loadOptions);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(path,this.loadOptions));else if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) load handlers for URL '${[path]}'`);this.handler=handlers[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await this.handler.load();return this.loadSync(artifacts)}loadSync(artifacts){this.artifacts=artifacts;let graph2=this.artifacts.modelTopology,signature;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?signature=this.artifacts.userDefinedMetadata.signature:signature=this.artifacts.signature,this.signature=signature,this.version=`${graph2.versions.producer}.${graph2.versions.minConsumer}`;let weightMap=io_exports.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new GraphExecutor(OperationMapper.Instance.transformGraph(graph2,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(weightMap),this.executor.resourceManager=this.resourceManager,artifacts.modelInitializer!=null&&artifacts.modelInitializer.node!=null){let initializer=OperationMapper.Instance.transformGraph(artifacts.modelInitializer);this.initializer=new GraphExecutor(initializer),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(handlerOrURL,config2){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new Error(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return handlerOrURL.save(this.artifacts)}predict(inputs,config2){return this.execute(inputs,this.outputNodes)}normalizeInputs(inputs){if(!(inputs instanceof Tensor)&&!Array.isArray(inputs))return inputs;if(inputs=Array.isArray(inputs)?inputs:[inputs],inputs.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${inputs.length} input tensors.`);return this.inputNodes.reduce((map,inputName,i)=>(map[inputName]=inputs[i],map),{})}normalizeOutputs(outputs){return outputs=outputs||this.outputNodes,Array.isArray(outputs)?outputs:[outputs]}execute(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=this.executor.execute(inputs,outputs);return result.length>1?result:result[0]}async executeAsync(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=await this.executor.executeAsync(inputs,outputs);return result.length>1?result:result[0]}convertTensorMapToTensorsMap(map){return Object.keys(map).reduce((newMap,key)=>(newMap[key]=[map[key]],newMap),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function loadGraphModel(modelUrl,options={}){if(modelUrl==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");options==null&&(options={}),options.fromTFHub&&modelUrl.load==null&&(modelUrl.endsWith("/")||(modelUrl=modelUrl+"/"),modelUrl=`${modelUrl}${DEFAULT_MODEL_NAME}${TFHUB_SEARCH_PARAM}`);let model2=new GraphModel(modelUrl,options);return await model2.load(),model2}var version11="2.8.3",dist_exports={};__export2(dist_exports,{CSVDataset:()=>CSVDataset,Dataset:()=>Dataset,FileDataSource:()=>FileDataSource,TextLineDataset:()=>TextLineDataset,URLDataSource:()=>URLDataSource,array:()=>array,csv:()=>csv,func:()=>func,generator:()=>generator,microphone:()=>microphone,version_data:()=>version12,webcam:()=>webcam,zip:()=>zip});var seedrandom4=__toModule2(require_seedrandom6()),seedrandom3=__toModule2(require_seedrandom6());function deepMap(input2,mapFn){return deepMapInternal(input2,mapFn)}function deepMapInternal(input2,mapFn,seen=new Map,containedIn=new Set){if(input2==null)return null;if(containedIn.has(input2))throw new Error("Circular references are not supported.");if(seen.has(input2))return seen.get(input2);let result=mapFn(input2);if(result.recurse&&result.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let child=input2[k],childResult=deepMapInternal(child,mapFn,seen,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return seen.set(input2,result.value),result.value}function deepZip(inputs,zipFn=zipToList){return deepZipInternal(inputs,zipFn)}function deepZipInternal(inputs,zipFn,containedIn=new Set){let input2=inputs[0];if(containedIn.has(input2))throw new Error("Circular references are not supported.");let result=zipFn(inputs);if(result.recurse&&result.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let children=inputs.map(x=>x[k]),childResult=deepZipInternal(children,zipFn,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return result.value}function zipToList(x){return x===null?null:isIterable2(x[0])?{value:null,recurse:!0}:{value:x,recurse:!1}}async function deepMapAndAwaitAll(input2,mapFn){let seen=new Map;deepMapInternal(input2,mapFn,seen);for(let key of Array.from(seen.keys())){let value=seen.get(key);if(util_exports.isPromise(value)){let mappedValue=await value;seen.set(key,mappedValue)}}return deepMapInternal(input2,mapFn,seen)}function isIterable2(obj){return obj!=null&&!ArrayBuffer.isView(obj)&&(Array.isArray(obj)||typeof obj=="object"&&!(obj instanceof Tensor))}function canTensorify(obj){return obj==null||isPrimitive(obj)||Array.isArray(obj)||typeof obj=="object"&&obj instanceof Tensor||util_exports.isTypedArray(obj)}function isPrimitive(value){return value===null||typeof value!="object"&&typeof value!="function"}function deepClone(container){return deepMap(container,cloneIfTensor)}function cloneIfTensor(item){return item instanceof Tensor?{value:item.clone(),recurse:!1}:isIterable2(item)?{value:null,recurse:!0}:{value:item,recurse:!1}}var RingBuffer=class{constructor(capacity){if(this.capacity=capacity,this.begin=0,this.end=0,capacity==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(capacity<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(capacity),this.doubledCapacity=2*capacity}wrap(index){for(;index<0;)index+=this.doubledCapacity;return index%this.doubledCapacity}get(index){if(index<0)throw new RangeError("Can't get item at a negative index.");return this.data[index%this.capacity]}set(index,value){if(index<0)throw new RangeError("Can't set item at a negative index.");this.data[index%this.capacity]=value}length(){let length=this.end-this.begin;return length<0&&(length=this.doubledCapacity+length),length}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,value),this.end=this.wrap(this.end+1)}pushAll(values){for(let value of values)this.push(value)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let result=this.get(this.end);return this.set(this.end,void 0),result}unshift(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,value)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let result=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),result}shuffleExcise(relativeIndex){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let index=this.wrap(this.begin+relativeIndex),result=this.get(index);return this.set(index,this.pop()),result}},GrowingRingBuffer=class extends RingBuffer{constructor(){super(GrowingRingBuffer.INITIAL_CAPACITY)}isFull(){return!1}push(value){super.isFull()&&this.expand(),super.push(value)}unshift(value){super.isFull()&&this.expand(),super.unshift(value)}expand(){let newCapacity=this.capacity*2,newData=new Array(newCapacity),len=this.length();for(let i=0;ix===!0)}rowMajorBatch(batchSize,smallLastBatch=!0){return new RowMajorBatchIterator(this,batchSize,smallLastBatch)}columnMajorBatch(batchSize,smallLastBatch=!0,zipFn=zipToList){return this.rowMajorBatch(batchSize,smallLastBatch).map(x=>deepZip(x,zipFn))}concatenate(iterator,baseErrorHandler){return new ChainedIterator(iteratorFromItems([this,iterator]),baseErrorHandler)}take(count2){return count2<0||count2==null?this:new TakeIterator(this,count2)}skip(count2){return count2<0||count2==null?this:new SkipIterator(this,count2)}prefetch(bufferSize){return new PrefetchIterator(this,bufferSize)}shuffle(windowSize,seed){return new ShuffleIterator(this,windowSize,seed)}serial(){return new SerialIterator(this)}},ArrayIterator=class extends LazyIterator{constructor(items){super();this.items=items,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let item=this.items[this.trav];return this.trav++,{value:deepClone(item),done:!1}}},FunctionCallIterator=class extends LazyIterator{constructor(nextFn){super();this.nextFn=nextFn}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},SerialIterator=class extends LazyIterator{constructor(upstream){super();this.upstream=upstream,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},SkipIterator=class extends LazyIterator{constructor(upstream,maxCount){super();this.upstream=upstream,this.maxCount=maxCount,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},RowMajorBatchIterator=class extends LazyIterator{constructor(upstream,batchSize,enableSmallLastBatch=!0){super();this.upstream=upstream,this.batchSize=batchSize,this.enableSmallLastBatch=enableSmallLastBatch,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let batch=[];for(;batch.length0?{value:batch,done:!1}:{value:null,done:!0};batch.push(item.value)}return{value:batch,done:!1}}},FilterIterator=class extends LazyIterator{constructor(upstream,predicate){super();this.upstream=upstream,this.predicate=predicate,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let item=await this.upstream.next();if(item.done||this.predicate(item.value))return item;dispose(item.value)}}},MapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Map`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},ErrorHandlingLazyIterator=class extends LazyIterator{constructor(upstream,handler){super();this.upstream=upstream,this.handler=handler,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},AsyncMapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=await this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},OneToManyIterator=class extends LazyIterator{constructor(){super();this.outputQueue=new GrowingRingBuffer,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},FlatmapIterator=class extends OneToManyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let item=await this.upstream.next();if(item.done)return!1;let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mappedArray=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mappedArray);this.outputQueue.pushAll(mappedArray);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return!0}},ChainedIterator=class extends LazyIterator{constructor(iterators,baseErrorHandler){super();this.baseErrorHandler=baseErrorHandler,this.lastRead=null,this.iterator=null,this.moreIterators=iterators}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(lastRead){if(await lastRead,this.iterator==null){let iteratorResult=await this.moreIterators.next();if(iteratorResult.done)return{value:null,done:!0};this.iterator=iteratorResult.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let itemResult=await this.iterator.next();return itemResult.done?(this.iterator=null,this.readFromChain(lastRead)):itemResult}},ZipMismatchMode;(function(ZipMismatchMode2){ZipMismatchMode2[ZipMismatchMode2.FAIL=0]="FAIL",ZipMismatchMode2[ZipMismatchMode2.SHORTEST=1]="SHORTEST",ZipMismatchMode2[ZipMismatchMode2.LONGEST=2]="LONGEST"})(ZipMismatchMode||(ZipMismatchMode={}));var ZipIterator=class extends LazyIterator{constructor(iterators,mismatchMode=ZipMismatchMode.FAIL){super();this.iterators=iterators,this.mismatchMode=mismatchMode,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(afterState){await afterState;let numIterators=0,iteratorsDone=0;function getNext(container){return container instanceof LazyIterator?{value:container.next().then(x=>(numIterators++,x.done&&iteratorsDone++,x.value)),recurse:!1}:{value:null,recurse:!0}}let mapped=await deepMapAndAwaitAll(this.iterators,getNext);if(numIterators===iteratorsDone)return{value:null,done:!0};if(iteratorsDone>0)switch(this.mismatchMode){case ZipMismatchMode.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ZipMismatchMode.SHORTEST:return{value:null,done:!0};case ZipMismatchMode.LONGEST:default:}return this.count++,{value:mapped,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},PrefetchIterator=class extends LazyIterator{constructor(upstream,bufferSize){super();this.upstream=upstream,this.bufferSize=bufferSize,this.buffer=new RingBuffer(bufferSize)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let v=this.upstream.next();this.buffer.push(v)}}next(){return this.refill(),this.buffer.shift()}},ShuffleIterator=class extends PrefetchIterator{constructor(upstream,windowSize,seed){super(upstream,windowSize);this.upstream=upstream,this.windowSize=windowSize,this.upstreamExhausted=!1,this.random=seedrandom3.alea(seed||util_exports.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(max6){return Math.floor(this.random()*max6)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let chosenIndex=this.chooseIndex(),result=await this.buffer.shuffleExcise(chosenIndex);if(result.done)this.upstreamExhausted=!0;else return this.refill(),result}return{value:null,done:!0}}},Dataset=class{constructor(){this.size=null}batch(batchSize,smallLastBatch=!0){let base2=this;util_exports.assert(batchSize>0,()=>`batchSize needs to be positive, but it is ${batchSize}`);let size;return this.size===Infinity||this.size==null?size=this.size:smallLastBatch?size=Math.ceil(this.size/batchSize):size=Math.floor(this.size/batchSize),datasetFromIteratorFn(async()=>(await base2.iterator()).columnMajorBatch(batchSize,smallLastBatch,deepBatchConcat),size)}concatenate(dataset){let base2=this,size;return this.size===Infinity||dataset.size===Infinity?size=Infinity:this.size!=null&&dataset.size!=null?size=this.size+dataset.size:size=null,datasetFromIteratorFn(async()=>(await base2.iterator()).concatenate(await dataset.iterator()),size)}filter(predicate){let base2=this,size;return this.size===Infinity?size=Infinity:size=null,datasetFromIteratorFn(async()=>(await base2.iterator()).filter(x=>tidy(()=>predicate(x))),size)}async forEachAsync(f){return(await this.iterator()).forEachAsync(f)}map(transform){let base2=this;return datasetFromIteratorFn(async()=>(await base2.iterator()).map(x=>tidy(()=>transform(x))),this.size)}mapAsync(transform){let base2=this;return datasetFromIteratorFn(async()=>(await base2.iterator()).mapAsync(transform),this.size)}prefetch(bufferSize){if(bufferSize==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let base2=this;return datasetFromIteratorFn(async()=>(await base2.iterator()).prefetch(bufferSize),this.size)}repeat(count2){let base2=this,size;return this.size!=null&&count2>0?size=this.size*count2:count2===0?size=0:this.size!=null&&(count2===void 0||count2<0)?size=Infinity:size=null,datasetFromIteratorFn(async()=>{let iteratorIterator=iteratorFromFunction(async()=>({value:await base2.iterator(),done:!1}));return iteratorFromConcatenated(iteratorIterator.take(count2))},size)}skip(count2){let base2=this,size;return this.size!=null&&count2>=0&&this.size>=count2?size=this.size-count2:this.size!=null&&(this.size(await base2.iterator()).skip(count2),size)}shuffle(bufferSize,seed,reshuffleEachIteration=!0){if(bufferSize==null||bufferSize<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let base2=this,random=seedrandom4.alea(seed||util_exports.now().toString());return datasetFromIteratorFn(async()=>{let seed2=random.int32();return reshuffleEachIteration&&(seed2+=random.int32()),(await base2.iterator()).shuffle(bufferSize,seed2.toString())},this.size)}take(count2){let base2=this,size;return this.size!=null&&this.size>count2?size=count2:this.size!=null&&this.size<=count2?size=this.size:size=null,datasetFromIteratorFn(async()=>(await base2.iterator()).take(count2),size)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Dataset.MAX_BUFFER_SIZE=1e4;function datasetFromIteratorFn(iteratorFn,size=null){return new class extends Dataset{constructor(){super(...arguments);this.size=size}async iterator(){return iteratorFn()}}}function array(items){return datasetFromIteratorFn(async()=>iteratorFromItems(items),items.length)}function zip(datasets){if(!isIterable2(datasets))throw new Error("The argument to zip() must be an object or array.");let size;if(Array.isArray(datasets))for(let i=0;i{let streams=await deepMapAndAwaitAll(datasets,d=>{if(d instanceof Dataset)return{value:d.iterator(),recurse:!1};if(isIterable2(d))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return iteratorFromZipped(streams,ZipMismatchMode.SHORTEST)},size)}function deepBatchConcat(rows){if(rows===null)return null;let exampleRow=rows[0];return canTensorify(exampleRow)?{value:batchConcat(rows),recurse:!1}:{value:null,recurse:!0}}function batchConcat(arrays){if(arrays.length===0)throw new Error("Can't make a batch of zero elements.");return arrays[0]instanceof Tensor?stack(arrays):tensor(arrays)}var TextLineDataset=class extends Dataset{constructor(input2){super();this.input=input2}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(line=>(line.endsWith("\r")&&(line=line.slice(0,-1)),line))}},CODE_QUOTE='"',STATE_OUT=Symbol("out"),STATE_FIELD=Symbol("field"),STATE_QUOTE=Symbol("quote"),STATE_QUOTE_AFTER_QUOTE=Symbol("quoteafterquote"),STATE_WITHIN_QUOTE_IN_QUOTE=Symbol("quoteinquote"),CSVDataset=class extends Dataset{constructor(input2,csvConfig){super();this.input=input2,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new TextLineDataset(input2),csvConfig||(csvConfig={}),this.hasHeader=csvConfig.hasHeader!==!1,this.fullColumnNames=csvConfig.columnNames,this.columnConfigs=csvConfig.columnConfigs,this.configuredColumnsOnly=csvConfig.configuredColumnsOnly,csvConfig.delimWhitespace?(util_exports.assert(csvConfig.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=csvConfig.delimiter?csvConfig.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let columnNamesFromFile=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!columnNamesFromFile)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&columnNamesFromFile&&util_exports.assert(columnNamesFromFile.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+columnNamesFromFile.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=columnNamesFromFile);let counts=this.fullColumnNames.reduce((countAcc,name)=>(countAcc[name]=countAcc[name]+1||1,countAcc),{}),duplicateNames=Object.keys(counts).filter(name=>counts[name]>1);if(util_exports.assert(duplicateNames.length===0,()=>"Duplicate column names found: "+duplicateNames.toString()),this.columnConfigs){for(let key of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(key)===-1)throw new Error('The key "'+key+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let firstElement=await(await this.base.iterator()).next();if(firstElement.done)throw new Error("No data was found for CSV parsing.");let firstLine=firstElement.value;return this.parseRow(firstLine,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let lines=await this.base.iterator();return this.hasHeader&&(lines=lines.skip(1)),lines.map(x=>this.makeDataElement(x))}makeDataElement(line){let values=this.parseRow(line),features={},labels={};for(let i=0;i14||!Number.isInteger(fftSizeLog2))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=microphoneConfig.numFramesPerSpectrogram||43,this.sampleRateHz=microphoneConfig.sampleRateHz,this.columnTruncateLength=microphoneConfig.columnTruncateLength||this.fftSize,this.audioTrackConstraints=microphoneConfig.audioTrackConstraints,this.smoothingTimeConstant=microphoneConfig.smoothingTimeConstant||0,this.includeSpectrogram=microphoneConfig.includeSpectrogram!==!1,this.includeWaveform=microphoneConfig.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(microphoneConfig={}){if(env().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let microphoneIterator=new MicrophoneIterator(microphoneConfig);return await microphoneIterator.start(),microphoneIterator}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let ctxConstructor=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new ctxConstructor,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let streamSource=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,streamSource.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let spectrogramTensor,waveformTensor,audioDataQueue=await this.getAudioData();if(this.includeSpectrogram){let freqData=this.flattenQueue(audioDataQueue.freqDataQueue);spectrogramTensor=this.getTensorFromAudioDataArray(freqData,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let timeData=this.flattenQueue(audioDataQueue.timeDataQueue);waveformTensor=this.getTensorFromAudioDataArray(timeData,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:spectrogramTensor,waveform:waveformTensor},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let freqDataQueue=[],timeDataQueue=[],currentFrames=0;return new Promise(resolve=>{let intervalID=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&resolve({freqDataQueue,timeDataQueue}),freqDataQueue.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),timeDataQueue.push(this.timeData.slice())),++currentFrames===this.numFrames&&(clearInterval(intervalID),resolve({freqDataQueue,timeDataQueue}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(queue){let frameSize=queue[0].length,freqData=new Float32Array(queue.length*frameSize);return queue.forEach((data2,i)=>freqData.set(data2,i*frameSize)),freqData}getTensorFromAudioDataArray(freqData,shape){let vals=new Float32Array(util_exports.sizeFromShape(shape));return vals.set(freqData,vals.length-freqData.length),tensor(vals,shape)}},WebcamIterator=class extends LazyIterator{constructor(webcamVideoElement,webcamConfig){super();if(this.webcamVideoElement=webcamVideoElement,this.webcamConfig=webcamConfig,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=tensor1d([0],"int32"),this.webcamConfig.centerCrop){let widthCroppingRatio=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,heightCroppingRatio=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,widthCropStart=(1-widthCroppingRatio)/2,heightCropStart=(1-heightCroppingRatio)/2,widthCropEnd=widthCropStart+widthCroppingRatio,heightCropEnd=heightCroppingRatio+heightCropStart;this.cropBox=tensor2d([heightCropStart,widthCropStart,heightCropEnd,widthCropEnd],[1,4])}else this.cropBox=tensor2d([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(webcamVideoElement,webcamConfig={}){if(env().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!webcamVideoElement){if(webcamVideoElement=document.createElement("video"),!webcamConfig.resizeWidth||!webcamConfig.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");webcamVideoElement.width=webcamConfig.resizeWidth,webcamVideoElement.height=webcamConfig.resizeHeight}let webcamIterator=new WebcamIterator(webcamVideoElement,webcamConfig);return await webcamIterator.start(),webcamIterator}async start(){this.webcamConfig.facingMode&&util_exports.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(error){console.log(error),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(resolve=>{this.webcamVideoElement.onloadedmetadata=()=>{resolve()}})}async next(){if(this.isClosed)return{value:null,done:!0};let img;try{img=browser_exports.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(img),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{img.dispose()}else return{value:img,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(img){return tidy(()=>{let expandedImage=img.toFloat().expandDims(0),resizedImage;resizedImage=image.cropAndResize(expandedImage,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let shape=resizedImage.shape;return resizedImage.reshape(shape.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(track=>track.stop());try{this.webcamVideoElement.srcObject=null}catch(error){console.log(error),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},DataSource=class{},StringIterator=class extends LazyIterator{split(separator){return new SplitIterator(this,separator)}},SplitIterator=class extends StringIterator{constructor(upstream,separator){super();this.upstream=upstream,this.impl=new SplitIteratorImpl(upstream,separator)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},SplitIteratorImpl=class extends OneToManyIterator{constructor(upstream,separator){super();this.upstream=upstream,this.separator=separator,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let chunkResult=await this.upstream.next();if(chunkResult.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let lines=chunkResult.value.split(this.separator);lines[0]=this.carryover+lines[0];for(let line of lines.slice(0,-1))this.outputQueue.push(line);return this.carryover=lines[lines.length-1],!0}},ByteChunkIterator=class extends LazyIterator{decodeUTF8(){return new Utf8Iterator(this)}},Utf8Iterator=class extends StringIterator{constructor(upstream){super();this.upstream=upstream,this.impl=new Utf8IteratorImpl(upstream)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Utf8IteratorImpl=class extends OneToManyIterator{constructor(upstream){super();if(this.upstream=upstream,env().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder}=require_string_decoder();this.decoder=new StringDecoder("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let chunkResult=await this.upstream.next(),chunk;if(chunkResult.done)return!1;chunk=chunkResult.value;let text;return env().get("IS_BROWSER")?text=this.decoder.decode(chunk,{stream:!0}):text=this.decoder.write(Buffer.from(chunk.buffer)),this.outputQueue.push(text),!0}},FileChunkIterator=class extends ByteChunkIterator{constructor(file,options={}){super();this.file=file,this.options=options,util_exports.assert(file instanceof Uint8Array||(env().get("IS_BROWSER")?file instanceof File||file instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=options.offset||0,this.chunkSize=options.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((resolve,reject)=>{let end=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)resolve(new Uint8Array(this.file.slice(this.offset,end)));else{let fileReader=new FileReader;fileReader.onload=event=>{let data2=fileReader.result;if(data2 instanceof ArrayBuffer&&(data2=new Uint8Array(data2)),!(data2 instanceof Uint8Array))return reject(new TypeError("FileReader returned unknown type."));resolve(data2)},fileReader.onabort=event=>reject(new Error("Aborted")),fileReader.onerror=event=>reject(new Error(event.type));let slice5=this.file.slice(this.offset,end);fileReader.readAsArrayBuffer(slice5)}this.offset=end}),done:!1}}};async function urlChunkIterator(url,options={}){let urlString,requestInit;typeof url=="string"?urlString=url:(urlString=url.url,requestInit=getRequestInitFromRequest(url));let response=await util_exports.fetch(urlString,requestInit);if(response.ok){let uint8Array=new Uint8Array(await response.arrayBuffer());return new FileChunkIterator(uint8Array,options)}else throw new Error(response.statusText)}var getRequestInitFromRequest=request=>({method:request.method,headers:request.headers,body:request.body,mode:request.mode,credentials:request.credentials,cache:request.cache,redirect:request.redirect,referrer:request.referrer,integrity:request.integrity});function isLocalPath(source){return typeof source=="string"&&source.substr(0,7)==="file://"}var FileDataSource=class extends DataSource{constructor(input2,options={}){super();this.input=input2,this.options=options}async iterator(){if(isLocalPath(this.input)&&env().get("IS_NODE")){let fs=require("fs");this.input=fs.readFileSync(this.input.substr(7))}return new FileChunkIterator(this.input,this.options)}},URLDataSource=class extends DataSource{constructor(url,fileOptions={}){super();this.url=url,this.fileOptions=fileOptions}async iterator(){return isLocalPath(this.url)?new FileDataSource(this.url,this.fileOptions).iterator():urlChunkIterator(this.url,this.fileOptions)}};function csv(source,csvConfig={}){return new CSVDataset(new URLDataSource(source),csvConfig)}function func(f){let iter=iteratorFromFunction(f);return datasetFromIteratorFn(async()=>iter)}function generator(generator2){return datasetFromIteratorFn(async()=>{let gen=await generator2();return iteratorFromFunction(()=>gen.next())})}async function webcam(webcamVideoElement,webcamConfig){return WebcamIterator.create(webcamVideoElement,webcamConfig)}async function microphone(microphoneConfig){return MicrophoneIterator.create(microphoneConfig)}var version12="2.8.3",version13={tfjs:version,"tfjs-core":version2,"tfjs-data":version3,"tfjs-layers":version4,"tfjs-converter":version5,"tfjs-backend-cpu":version7,"tfjs-backend-webgl":version8,"tfjs-backend-wasm":version9},config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);setWebGLContext(2,gl);let ctx=new GPGPUContext(gl);registerBackend(config.name,()=>new MathBackendWebGL(ctx),config.priority),getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};registerKernel(newKernelConfig)}),ENV.set("WEBGL_VERSION",2),ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet()),models={},config2={},anchors=[],kMidHipCenter=0,kPoseDetectKeyNum=2,kFullBodySizeRot=1;function calculateScale(min_scale,max_scale,stride_index,num_strides){return num_strides===1?(min_scale+max_scale)*.5:min_scale+(max_scale-min_scale)*1*stride_index/(num_strides-1)}function generateAnchors(){let options={};options.strides=[],options.aspect_ratios=[],options.feature_map_height=[],options.num_layers=4,options.min_scale=.1484375,options.max_scale=.75,options.input_size_height=128,options.input_size_width=128,options.anchor_offset_x=.5,options.anchor_offset_y=.5,options.strides.push(8),options.strides.push(16),options.strides.push(16),options.strides.push(16),options.aspect_ratios.push(1),options.reduce_boxes_in_lowest_layer=!1,options.interpolated_scale_aspect_ratio=1,options.fixed_anchor_size=!0;let layer_id=0;for(;layer_id0){let scale_next=last_same_stride_layer===options.strides.length-1?1:calculateScale(options.min_scale,options.max_scale,last_same_stride_layer+1,options.strides.length);scales.push(Math.sqrt(scale2*scale_next)),aspect_ratios.push(options.interpolated_scale_aspect_ratio)}}last_same_stride_layer++}for(let i=0;iconfig2.pose.scoreThreshold){let idx=(4+2*kPoseDetectKeyNum)*i,sx=boxes[idx+0],sy=boxes[idx+1],w=boxes[idx+2]/config2.pose.inputSize,h=boxes[idx+3]/config2.pose.inputSize,cx=(sx+anchors[i].x_center*config2.pose.inputSize)/config2.pose.inputSize,cy=(sy+anchors[i].y_center*config2.pose.inputSize)/config2.pose.inputSize;region.score=Math.round(1e3*score)/1e3,region.box=[cx-w*.5,cy-h*.5,w*.5,h*.5];let keys=new Array(kPoseDetectKeyNum);for(let j=0;j{config2=cfg;let resize=image.resizeBilinear(image3,[config2.pose.inputSize,config2.pose.inputSize],!1),enhance=div(resize,127.5).sub(1);dispose(resize);let logits=await models.blazepose.predict(enhance);dispose(enhance);let regions=await decode(logits);logits[0].dispose(),logits[1].dispose(),log("poses",regions),resolve(regions)}):null}function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot4(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},pose:{enabled:!1,scoreThreshold:.6,iouThreshold:.3,modelPath:"../models/blazepose.json",inputSize:128},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}},face=` +`).map(line=>(line.endsWith("\r")&&(line=line.slice(0,-1)),line))}},CODE_QUOTE='"',STATE_OUT=Symbol("out"),STATE_FIELD=Symbol("field"),STATE_QUOTE=Symbol("quote"),STATE_QUOTE_AFTER_QUOTE=Symbol("quoteafterquote"),STATE_WITHIN_QUOTE_IN_QUOTE=Symbol("quoteinquote"),CSVDataset=class extends Dataset{constructor(input2,csvConfig){super();this.input=input2,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new TextLineDataset(input2),csvConfig||(csvConfig={}),this.hasHeader=csvConfig.hasHeader!==!1,this.fullColumnNames=csvConfig.columnNames,this.columnConfigs=csvConfig.columnConfigs,this.configuredColumnsOnly=csvConfig.configuredColumnsOnly,csvConfig.delimWhitespace?(util_exports.assert(csvConfig.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=csvConfig.delimiter?csvConfig.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let columnNamesFromFile=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!columnNamesFromFile)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&columnNamesFromFile&&util_exports.assert(columnNamesFromFile.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+columnNamesFromFile.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=columnNamesFromFile);let counts=this.fullColumnNames.reduce((countAcc,name)=>(countAcc[name]=countAcc[name]+1||1,countAcc),{}),duplicateNames=Object.keys(counts).filter(name=>counts[name]>1);if(util_exports.assert(duplicateNames.length===0,()=>"Duplicate column names found: "+duplicateNames.toString()),this.columnConfigs){for(let key of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(key)===-1)throw new Error('The key "'+key+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let firstElement=await(await this.base.iterator()).next();if(firstElement.done)throw new Error("No data was found for CSV parsing.");let firstLine=firstElement.value;return this.parseRow(firstLine,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let lines=await this.base.iterator();return this.hasHeader&&(lines=lines.skip(1)),lines.map(x=>this.makeDataElement(x))}makeDataElement(line){let values=this.parseRow(line),features={},labels={};for(let i=0;i14||!Number.isInteger(fftSizeLog2))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=microphoneConfig.numFramesPerSpectrogram||43,this.sampleRateHz=microphoneConfig.sampleRateHz,this.columnTruncateLength=microphoneConfig.columnTruncateLength||this.fftSize,this.audioTrackConstraints=microphoneConfig.audioTrackConstraints,this.smoothingTimeConstant=microphoneConfig.smoothingTimeConstant||0,this.includeSpectrogram=microphoneConfig.includeSpectrogram!==!1,this.includeWaveform=microphoneConfig.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(microphoneConfig={}){if(env().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let microphoneIterator=new MicrophoneIterator(microphoneConfig);return await microphoneIterator.start(),microphoneIterator}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let ctxConstructor=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new ctxConstructor,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let streamSource=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,streamSource.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let spectrogramTensor,waveformTensor,audioDataQueue=await this.getAudioData();if(this.includeSpectrogram){let freqData=this.flattenQueue(audioDataQueue.freqDataQueue);spectrogramTensor=this.getTensorFromAudioDataArray(freqData,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let timeData=this.flattenQueue(audioDataQueue.timeDataQueue);waveformTensor=this.getTensorFromAudioDataArray(timeData,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:spectrogramTensor,waveform:waveformTensor},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let freqDataQueue=[],timeDataQueue=[],currentFrames=0;return new Promise(resolve=>{let intervalID=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&resolve({freqDataQueue,timeDataQueue}),freqDataQueue.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),timeDataQueue.push(this.timeData.slice())),++currentFrames===this.numFrames&&(clearInterval(intervalID),resolve({freqDataQueue,timeDataQueue}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(queue){let frameSize=queue[0].length,freqData=new Float32Array(queue.length*frameSize);return queue.forEach((data2,i)=>freqData.set(data2,i*frameSize)),freqData}getTensorFromAudioDataArray(freqData,shape){let vals=new Float32Array(util_exports.sizeFromShape(shape));return vals.set(freqData,vals.length-freqData.length),tensor(vals,shape)}},WebcamIterator=class extends LazyIterator{constructor(webcamVideoElement,webcamConfig){super();if(this.webcamVideoElement=webcamVideoElement,this.webcamConfig=webcamConfig,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=tensor1d([0],"int32"),this.webcamConfig.centerCrop){let widthCroppingRatio=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,heightCroppingRatio=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,widthCropStart=(1-widthCroppingRatio)/2,heightCropStart=(1-heightCroppingRatio)/2,widthCropEnd=widthCropStart+widthCroppingRatio,heightCropEnd=heightCroppingRatio+heightCropStart;this.cropBox=tensor2d([heightCropStart,widthCropStart,heightCropEnd,widthCropEnd],[1,4])}else this.cropBox=tensor2d([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(webcamVideoElement,webcamConfig={}){if(env().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!webcamVideoElement){if(webcamVideoElement=document.createElement("video"),!webcamConfig.resizeWidth||!webcamConfig.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");webcamVideoElement.width=webcamConfig.resizeWidth,webcamVideoElement.height=webcamConfig.resizeHeight}let webcamIterator=new WebcamIterator(webcamVideoElement,webcamConfig);return await webcamIterator.start(),webcamIterator}async start(){this.webcamConfig.facingMode&&util_exports.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(error){console.log(error),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(resolve=>{this.webcamVideoElement.onloadedmetadata=()=>{resolve()}})}async next(){if(this.isClosed)return{value:null,done:!0};let img;try{img=browser_exports.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(img),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{img.dispose()}else return{value:img,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(img){return tidy(()=>{let expandedImage=img.toFloat().expandDims(0),resizedImage;resizedImage=image.cropAndResize(expandedImage,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let shape=resizedImage.shape;return resizedImage.reshape(shape.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(track=>track.stop());try{this.webcamVideoElement.srcObject=null}catch(error){console.log(error),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},DataSource=class{},StringIterator=class extends LazyIterator{split(separator){return new SplitIterator(this,separator)}},SplitIterator=class extends StringIterator{constructor(upstream,separator){super();this.upstream=upstream,this.impl=new SplitIteratorImpl(upstream,separator)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},SplitIteratorImpl=class extends OneToManyIterator{constructor(upstream,separator){super();this.upstream=upstream,this.separator=separator,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let chunkResult=await this.upstream.next();if(chunkResult.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let lines=chunkResult.value.split(this.separator);lines[0]=this.carryover+lines[0];for(let line of lines.slice(0,-1))this.outputQueue.push(line);return this.carryover=lines[lines.length-1],!0}},ByteChunkIterator=class extends LazyIterator{decodeUTF8(){return new Utf8Iterator(this)}},Utf8Iterator=class extends StringIterator{constructor(upstream){super();this.upstream=upstream,this.impl=new Utf8IteratorImpl(upstream)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Utf8IteratorImpl=class extends OneToManyIterator{constructor(upstream){super();if(this.upstream=upstream,env().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder}=require_string_decoder();this.decoder=new StringDecoder("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let chunkResult=await this.upstream.next(),chunk;if(chunkResult.done)return!1;chunk=chunkResult.value;let text;return env().get("IS_BROWSER")?text=this.decoder.decode(chunk,{stream:!0}):text=this.decoder.write(Buffer.from(chunk.buffer)),this.outputQueue.push(text),!0}},FileChunkIterator=class extends ByteChunkIterator{constructor(file,options={}){super();this.file=file,this.options=options,util_exports.assert(file instanceof Uint8Array||(env().get("IS_BROWSER")?file instanceof File||file instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=options.offset||0,this.chunkSize=options.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((resolve,reject)=>{let end=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)resolve(new Uint8Array(this.file.slice(this.offset,end)));else{let fileReader=new FileReader;fileReader.onload=event=>{let data2=fileReader.result;if(data2 instanceof ArrayBuffer&&(data2=new Uint8Array(data2)),!(data2 instanceof Uint8Array))return reject(new TypeError("FileReader returned unknown type."));resolve(data2)},fileReader.onabort=event=>reject(new Error("Aborted")),fileReader.onerror=event=>reject(new Error(event.type));let slice5=this.file.slice(this.offset,end);fileReader.readAsArrayBuffer(slice5)}this.offset=end}),done:!1}}};async function urlChunkIterator(url,options={}){let urlString,requestInit;typeof url=="string"?urlString=url:(urlString=url.url,requestInit=getRequestInitFromRequest(url));let response=await util_exports.fetch(urlString,requestInit);if(response.ok){let uint8Array=new Uint8Array(await response.arrayBuffer());return new FileChunkIterator(uint8Array,options)}else throw new Error(response.statusText)}var getRequestInitFromRequest=request=>({method:request.method,headers:request.headers,body:request.body,mode:request.mode,credentials:request.credentials,cache:request.cache,redirect:request.redirect,referrer:request.referrer,integrity:request.integrity});function isLocalPath(source){return typeof source=="string"&&source.substr(0,7)==="file://"}var FileDataSource=class extends DataSource{constructor(input2,options={}){super();this.input=input2,this.options=options}async iterator(){if(isLocalPath(this.input)&&env().get("IS_NODE")){let fs=require("fs");this.input=fs.readFileSync(this.input.substr(7))}return new FileChunkIterator(this.input,this.options)}},URLDataSource=class extends DataSource{constructor(url,fileOptions={}){super();this.url=url,this.fileOptions=fileOptions}async iterator(){return isLocalPath(this.url)?new FileDataSource(this.url,this.fileOptions).iterator():urlChunkIterator(this.url,this.fileOptions)}};function csv(source,csvConfig={}){return new CSVDataset(new URLDataSource(source),csvConfig)}function func(f){let iter=iteratorFromFunction(f);return datasetFromIteratorFn(async()=>iter)}function generator(generator2){return datasetFromIteratorFn(async()=>{let gen=await generator2();return iteratorFromFunction(()=>gen.next())})}async function webcam(webcamVideoElement,webcamConfig){return WebcamIterator.create(webcamVideoElement,webcamConfig)}async function microphone(microphoneConfig){return MicrophoneIterator.create(microphoneConfig)}var version12="2.8.3",version13={tfjs:version,"tfjs-core":version2,"tfjs-data":version3,"tfjs-layers":version4,"tfjs-converter":version5,"tfjs-backend-cpu":version7,"tfjs-backend-webgl":version8,"tfjs-backend-wasm":version9},config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);setWebGLContext(2,gl);let ctx=new GPGPUContext(gl);registerBackend(config.name,()=>new MathBackendWebGL(ctx),config.priority),getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};registerKernel(newKernelConfig)}),ENV.set("WEBGL_VERSION",2),ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet()),models={};async function load(config2){return models.blazepose||(models.blazepose=await loadGraphModel(config2.pose.modelPath),log(`load model: ${config2.pose.modelPath.match(/\/(.*)\./)[1]}`)),models.blazepose}async function predict(image3,config2){return models.blazepose?new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.pose.inputSize,config2.pose.inputSize],!1),enhance=div(resize,127.5).sub(1);dispose(resize);let logits=await models.blazepose.predict(enhance);dispose(enhance),logits.map(logit=>logit.dispose()),resolve(logits)}):null}function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot4(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},pose:{enabled:!1,scoreThreshold:.6,iouThreshold:.3,modelPath:"../models/blazepose.json",inputSize:256},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}},face=` /9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu bmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob @@ -4771,7 +4771,7 @@ AAAAAAJAAAAAAAAAAAAAABAJEAAAAAAAAAAAAAAAIEoBKAAAAAAAAAAAAAAABAlAAAAAAAIAAAAA BAkBAkBAkBAlACEgMZjdjbFW8bWrEx8YWANb6Fp+bfwab+vLDKMFK9qxH5L0bAr8OPRPKz2AY7J2 SbAjYZAI2E7AIEgIEgIEgMdkSy2NgY7MdlmyNoBXsxmFuyNgVTVjNV3KjlBRNTlXTVHKCrlIqt5T lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/ -2Q==`,version14="0.9.23",now2=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig2={}){this.tf=tfjs_esm_exports,this.version=version14,this.config=mergeDeep(config_default,userConfig2),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig2){this.state="load";let timeStamp=now2();userConfig2&&(this.config=mergeDeep(this.config,userConfig2)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${version6}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose,this.models.blazepose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null),this.models.blazepose||(this.config.pose.enabled?load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)),this.config.pose.enabled&&!this.models.blazepose&&(this.models.blazepose=await load(this.config)));let current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){let timeStamp=now2();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath),await env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now2();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input2,this.config));this.perf.face=Math.trunc(now2()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig2={}){this.state="image",this.config=mergeDeep(this.config,userConfig2);let process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig2={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig2),this.state="check";let error=this.sanity(input2);error&&(log(error,input2),resolve({error}));let poseRes,blazeposeRes,handRes,faceRes,timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine().startScope(),this.analyze("Start Scope:"),timeStamp=now2();let process3=image2.process(input2,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Pose:"),this.config.async?(blazeposeRes=this.config.pose.enabled?predict(process3.tensor,this.config):[],this.perf.pose&&delete this.perf.pose):(this.state="run:pose",timeStamp=now2(),blazeposeRes=this.config.pose.enabled?await predict(process3.tensor,this.config):[],this.perf.pose=Math.trunc(now2()-timeStamp)),this.analyze("End Pose:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.analyze("End Hand:"),this.config.async&&([faceRes,poseRes,blazeposeRes,handRes]=await Promise.all([faceRes,poseRes,blazeposeRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,pose:blazeposeRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig2){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res=>res.blob());userConfig2&&(this.config=mergeDeep(this.config,userConfig2));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let blob;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(!blob)return null;let bitmap=await createImageBitmap(blob),t0=now2(),warmup=await this.detect(bitmap,config_exports),t1=now2();return bitmap.close(),log("Warmup",this.config.warmup,t1-t0,warmup),this.config.videoOptimized=video,warmup}};async function drawGesture(result,canvas,ui2){if(!result)return;let ctx=canvas.getContext("2d");ctx.font=ui2.baseFont,ctx.fillStyle=ui2.baseLabel;let i=1;for(let gesture2=0;gesture21&&what[1].length>0){let person=where2[1]>0?`#${where2[1]}`:"",label=`${where2[0]} ${person}: ${what[1]}`;ctx.fillStyle="black",ctx.fillText(label,8,2+i*ui2.baseLineHeight),ctx.fillStyle=ui2.baseLabel,ctx.fillText(label,6,0+i*ui2.baseLineHeight),i+=1}}}async function drawFace(result,canvas,ui2,triangulation){if(!result)return;let ctx=canvas.getContext("2d");for(let face2 of result){ctx.font=ui2.baseFont,ctx.strokeStyle=ui2.baseColor,ctx.fillStyle=ui2.baseColor,ctx.lineWidth=ui2.baseLineWidth,ctx.beginPath(),ui2.drawBoxes&&ctx.rect(face2.box[0],face2.box[1],face2.box[2],face2.box[3]);let labels=[];if(face2.genderConfidence&&labels.push(`${face2.gender||""} ${Math.trunc(100*face2.genderConfidence)}% confident`),face2.age&&labels.push(`age: ${face2.age||""}`),face2.iris&&labels.push(`iris distance: ${face2.iris}`),face2.emotion&&face2.emotion.length>0){let emotion2=face2.emotion.map(a=>`${Math.trunc(100*a.score)}% ${a.emotion}`);labels.push(emotion2.join(" "))}ctx.fillStyle=ui2.baseLabel;for(let i=0;iface2.mesh[index]),path=new Path2D;path.moveTo(points[0][0],points[0][1]);for(let point of points)path.lineTo(point[0],point[1]);path.closePath(),ctx.strokeStyle=ui2.useDepth?`rgba(${127.5+2*points[0][2]}, ${127.5-2*points[0][2]}, 255, 0.3)`:ui2.baseColor,ctx.stroke(path),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?`rgba(${127.5+2*points[0][2]}, ${127.5-2*points[0][2]}, 255, 0.3)`:ui2.baseColor,ctx.fill(path))}if(face2.annotations&&face2.annotations.leftEyeIris){ctx.strokeStyle=ui2.useDepth?"rgba(255, 200, 255, 0.3)":ui2.baseColor,ctx.beginPath();let sizeX=Math.abs(face2.annotations.leftEyeIris[3][0]-face2.annotations.leftEyeIris[1][0])/2,sizeY=Math.abs(face2.annotations.leftEyeIris[4][1]-face2.annotations.leftEyeIris[2][1])/2;ctx.ellipse(face2.annotations.leftEyeIris[0][0],face2.annotations.leftEyeIris[0][1],sizeX,sizeY,0,0,2*Math.PI),ctx.stroke(),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?"rgba(255, 255, 200, 0.3)":ui2.baseColor,ctx.fill())}if(face2.annotations&&face2.annotations.rightEyeIris){ctx.strokeStyle=ui2.useDepth?"rgba(255, 200, 255, 0.3)":ui2.baseColor,ctx.beginPath();let sizeX=Math.abs(face2.annotations.rightEyeIris[3][0]-face2.annotations.rightEyeIris[1][0])/2,sizeY=Math.abs(face2.annotations.rightEyeIris[4][1]-face2.annotations.rightEyeIris[2][1])/2;ctx.ellipse(face2.annotations.rightEyeIris[0][0],face2.annotations.rightEyeIris[0][1],sizeX,sizeY,0,0,2*Math.PI),ctx.stroke(),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?"rgba(255, 255, 200, 0.3)":ui2.baseColor,ctx.fill())}}}}}var lastDrawnPose=[];async function drawBody(result,canvas,ui2){if(!result)return;let ctx=canvas.getContext("2d");ctx.lineJoin="round";for(let i=0;ia.part==="leftShoulder"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="rightShoulder"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightHip"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftHip"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftShoulder"),part&&path.lineTo(part.position.x,part.position.y)),root=result[i].keypoints.find(a=>a.part==="leftHip"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="leftKnee"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftAnkle"),part&&path.lineTo(part.position.x,part.position.y)),root=result[i].keypoints.find(a=>a.part==="rightHip"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="rightKnee"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightAnkle"),part&&path.lineTo(part.position.x,part.position.y)),root=result[i].keypoints.find(a=>a.part==="leftShoulder"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="leftElbow"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftWrist"),part&&path.lineTo(part.position.x,part.position.y)),root=result[i].keypoints.find(a=>a.part==="rightShoulder"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="rightElbow"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightWrist"),part&&path.lineTo(part.position.x,part.position.y)),ctx.stroke(path)}}}async function drawHand(result,canvas,ui2){if(!result)return;let ctx=canvas.getContext("2d");ctx.lineJoin="round";for(let hand of result){if(ctx.font=ui2.baseFont,ctx.lineWidth=ui2.baseLineWidth,ui2.drawBoxes&&(ctx.lineWidth=ui2.baseLineWidth,ctx.beginPath(),ctx.strokeStyle=ui2.baseColor,ctx.fillStyle=ui2.baseColor,ctx.rect(hand.box[0],hand.box[1],hand.box[2],hand.box[3]),ctx.fillStyle="black",ctx.fillText("hand",hand.box[0]+3,1+hand.box[1]+ui2.baseLineHeight,hand.box[2]),ctx.fillStyle=ui2.baseLabel,ctx.fillText("hand",hand.box[0]+2,0+hand.box[1]+ui2.baseLineHeight,hand.box[2]),ctx.stroke()),ui2.drawPoints&&hand.landmarks&&hand.landmarks.length>0)for(let point of hand.landmarks)ctx.fillStyle=ui2.useDepth?`rgba(${127.5+2*point[2]}, ${127.5-2*point[2]}, 255, 0.5)`:ui2.baseColor,ctx.beginPath(),ctx.arc(point[0],point[1],2,0,2*Math.PI),ctx.fill();if(ui2.drawPolygons){let addPart=part=>{if(!!part)for(let i=0;i0?i-1:0][0],part[i>0?i-1:0][1]),ctx.lineTo(part[i][0],part[i][1]),ctx.stroke()};addPart(hand.annotations.indexFinger),addPart(hand.annotations.middleFinger),addPart(hand.annotations.ringFinger),addPart(hand.annotations.pinky),addPart(hand.annotations.thumb)}}}var draw_default={face:drawFace,body:drawBody,hand:drawHand,gesture:drawGesture};var instance=0,CSScreated=!1,theme={background:"darkslategray",hover:"lightgray",itemBackground:"black",itemColor:"white",buttonBackground:"lightblue",buttonHover:"lightgreen",checkboxOn:"lightgreen",checkboxOff:"lightcoral",rangeBackground:"lightblue",rangeLabel:"white",chartColor:"lightblue"};function createCSS(){if(CSScreated)return;let css=` +2Q==`,version14="0.9.24",now2=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig2={}){this.tf=tfjs_esm_exports,this.version=version14,this.config=mergeDeep(config_default,userConfig2),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig2){this.state="load";let timeStamp=now2();userConfig2&&(this.config=mergeDeep(this.config,userConfig2)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${version6}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose,this.models.blazepose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null),this.models.blazepose||(this.config.pose.enabled?load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)),this.config.pose.enabled&&!this.models.blazepose&&(this.models.blazepose=await load(this.config)));let current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){let timeStamp=now2();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath),await env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now2();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input2,this.config));this.perf.face=Math.trunc(now2()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig2={}){this.state="image",this.config=mergeDeep(this.config,userConfig2);let process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig2={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig2),this.state="check";let error=this.sanity(input2);error&&(log(error,input2),resolve({error}));let poseRes,blazeposeRes,handRes,faceRes,timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine().startScope(),this.analyze("Start Scope:"),timeStamp=now2();let process3=image2.process(input2,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Pose:"),this.config.async?(blazeposeRes=this.config.pose.enabled?predict(process3.tensor,this.config):[],this.perf.pose&&delete this.perf.pose):(this.state="run:pose",timeStamp=now2(),blazeposeRes=this.config.pose.enabled?await predict(process3.tensor,this.config):[],this.perf.pose=Math.trunc(now2()-timeStamp)),this.analyze("End Pose:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.analyze("End Hand:"),this.config.async&&([faceRes,poseRes,blazeposeRes,handRes]=await Promise.all([faceRes,poseRes,blazeposeRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,pose:blazeposeRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmupBitmap(){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res2=>res2.blob()),blob,res;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(blob){let bitmap=await createImageBitmap(blob);res=await this.detect(bitmap,config_exports),bitmap.close()}return res}async warmupCanvas(){return new Promise(resolve=>{let src,size=0;switch(this.config.warmup){case"face":size=256,src="data:image/jpeg;base64,"+face;break;case"full":size=1200,src="data:image/jpeg;base64,"+body;break;default:src=null}let img=new Image(size,size);img.onload=()=>{let canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(size,size):document.createElement("canvas");canvas.width=size,canvas.height=size;let ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);let data2=ctx.getImageData(0,0,size,size);this.detect(data2,config_exports).then(res=>resolve(res))},src?img.src=src:resolve(null)})}async warmup(userConfig2){let t0=now2();userConfig2&&(this.config=mergeDeep(this.config,userConfig2));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let res;typeof createImageBitmap=="function"?res=await this.warmupBitmap():res=await this.warmupCanvas(),this.config.videoOptimized=video;let t1=now2();return log("Warmup",this.config.warmup,t1-t0,res),res}};async function drawGesture(result,canvas,ui2){if(!result)return;let ctx=canvas.getContext("2d");ctx.font=ui2.baseFont,ctx.fillStyle=ui2.baseLabel;let i=1;for(let gesture2=0;gesture21&&what[1].length>0){let person=where2[1]>0?`#${where2[1]}`:"",label=`${where2[0]} ${person}: ${what[1]}`;ctx.fillStyle="black",ctx.fillText(label,8,2+i*ui2.baseLineHeight),ctx.fillStyle=ui2.baseLabel,ctx.fillText(label,6,0+i*ui2.baseLineHeight),i+=1}}}async function drawFace(result,canvas,ui2,triangulation){if(!result)return;let ctx=canvas.getContext("2d");for(let face2 of result){ctx.font=ui2.baseFont,ctx.strokeStyle=ui2.baseColor,ctx.fillStyle=ui2.baseColor,ctx.lineWidth=ui2.baseLineWidth,ctx.beginPath(),ui2.drawBoxes&&ctx.rect(face2.box[0],face2.box[1],face2.box[2],face2.box[3]);let labels=[];if(face2.genderConfidence&&labels.push(`${face2.gender||""} ${Math.trunc(100*face2.genderConfidence)}% confident`),face2.age&&labels.push(`age: ${face2.age||""}`),face2.iris&&labels.push(`iris distance: ${face2.iris}`),face2.emotion&&face2.emotion.length>0){let emotion2=face2.emotion.map(a=>`${Math.trunc(100*a.score)}% ${a.emotion}`);labels.push(emotion2.join(" "))}ctx.fillStyle=ui2.baseLabel;for(let i=0;iface2.mesh[index]),path=new Path2D;path.moveTo(points[0][0],points[0][1]);for(let point of points)path.lineTo(point[0],point[1]);path.closePath(),ctx.strokeStyle=ui2.useDepth?`rgba(${127.5+2*points[0][2]}, ${127.5-2*points[0][2]}, 255, 0.3)`:ui2.baseColor,ctx.stroke(path),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?`rgba(${127.5+2*points[0][2]}, ${127.5-2*points[0][2]}, 255, 0.3)`:ui2.baseColor,ctx.fill(path))}if(face2.annotations&&face2.annotations.leftEyeIris){ctx.strokeStyle=ui2.useDepth?"rgba(255, 200, 255, 0.3)":ui2.baseColor,ctx.beginPath();let sizeX=Math.abs(face2.annotations.leftEyeIris[3][0]-face2.annotations.leftEyeIris[1][0])/2,sizeY=Math.abs(face2.annotations.leftEyeIris[4][1]-face2.annotations.leftEyeIris[2][1])/2;ctx.ellipse(face2.annotations.leftEyeIris[0][0],face2.annotations.leftEyeIris[0][1],sizeX,sizeY,0,0,2*Math.PI),ctx.stroke(),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?"rgba(255, 255, 200, 0.3)":ui2.baseColor,ctx.fill())}if(face2.annotations&&face2.annotations.rightEyeIris){ctx.strokeStyle=ui2.useDepth?"rgba(255, 200, 255, 0.3)":ui2.baseColor,ctx.beginPath();let sizeX=Math.abs(face2.annotations.rightEyeIris[3][0]-face2.annotations.rightEyeIris[1][0])/2,sizeY=Math.abs(face2.annotations.rightEyeIris[4][1]-face2.annotations.rightEyeIris[2][1])/2;ctx.ellipse(face2.annotations.rightEyeIris[0][0],face2.annotations.rightEyeIris[0][1],sizeX,sizeY,0,0,2*Math.PI),ctx.stroke(),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?"rgba(255, 255, 200, 0.3)":ui2.baseColor,ctx.fill())}}}}}var lastDrawnPose=[];async function drawBody(result,canvas,ui2){if(!result)return;let ctx=canvas.getContext("2d");ctx.lineJoin="round";for(let i=0;ia.part==="leftShoulder"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="rightShoulder"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightHip"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftHip"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftShoulder"),part&&path.lineTo(part.position.x,part.position.y)),root=result[i].keypoints.find(a=>a.part==="leftHip"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="leftKnee"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftAnkle"),part&&path.lineTo(part.position.x,part.position.y)),root=result[i].keypoints.find(a=>a.part==="rightHip"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="rightKnee"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightAnkle"),part&&path.lineTo(part.position.x,part.position.y)),root=result[i].keypoints.find(a=>a.part==="leftShoulder"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="leftElbow"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftWrist"),part&&path.lineTo(part.position.x,part.position.y)),root=result[i].keypoints.find(a=>a.part==="rightShoulder"),root&&(path.moveTo(root.position.x,root.position.y),part=result[i].keypoints.find(a=>a.part==="rightElbow"),part&&path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightWrist"),part&&path.lineTo(part.position.x,part.position.y)),ctx.stroke(path)}}}async function drawHand(result,canvas,ui2){if(!result)return;let ctx=canvas.getContext("2d");ctx.lineJoin="round";for(let hand of result){if(ctx.font=ui2.baseFont,ctx.lineWidth=ui2.baseLineWidth,ui2.drawBoxes&&(ctx.lineWidth=ui2.baseLineWidth,ctx.beginPath(),ctx.strokeStyle=ui2.baseColor,ctx.fillStyle=ui2.baseColor,ctx.rect(hand.box[0],hand.box[1],hand.box[2],hand.box[3]),ctx.fillStyle="black",ctx.fillText("hand",hand.box[0]+3,1+hand.box[1]+ui2.baseLineHeight,hand.box[2]),ctx.fillStyle=ui2.baseLabel,ctx.fillText("hand",hand.box[0]+2,0+hand.box[1]+ui2.baseLineHeight,hand.box[2]),ctx.stroke()),ui2.drawPoints&&hand.landmarks&&hand.landmarks.length>0)for(let point of hand.landmarks)ctx.fillStyle=ui2.useDepth?`rgba(${127.5+2*point[2]}, ${127.5-2*point[2]}, 255, 0.5)`:ui2.baseColor,ctx.beginPath(),ctx.arc(point[0],point[1],2,0,2*Math.PI),ctx.fill();if(ui2.drawPolygons){let addPart=part=>{if(!!part)for(let i=0;i0?i-1:0][0],part[i>0?i-1:0][1]),ctx.lineTo(part[i][0],part[i][1]),ctx.stroke()};addPart(hand.annotations.indexFinger),addPart(hand.annotations.middleFinger),addPart(hand.annotations.ringFinger),addPart(hand.annotations.pinky),addPart(hand.annotations.thumb)}}}var draw_default={face:drawFace,body:drawBody,hand:drawHand,gesture:drawGesture};var instance=0,CSScreated=!1,theme={background:"darkslategray",hover:"lightgray",itemBackground:"black",itemColor:"white",buttonBackground:"lightblue",buttonHover:"lightgreen",checkboxOn:"lightgreen",checkboxOff:"lightcoral",rangeBackground:"lightblue",rangeLabel:"white",chartColor:"lightblue"};function createCSS(){if(CSScreated)return;let css=` :root { --rounded: 0.2rem; } .menu { position: absolute; top: 0rem; right: 0; width: max-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10; box-shadow: 0 0 8px dimgrey; background: ${theme.background}; border-radius: var(--rounded); border-color: black; border-style: solid; border-width: thin; } diff --git a/dist/demo-browser-index.js.map b/dist/demo-browser-index.js.map index 6699d560..1546dbd6 100644 --- a/dist/demo-browser-index.js.map +++ b/dist/demo-browser-index.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/blazeface/blazeface.js", "../src/blazeface/box.js", "../src/blazeface/util.js", "../src/blazeface/coords.js", "../src/blazeface/facepipeline.js", "../src/blazeface/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/posenet/modelBase.js", "../src/posenet/heapSort.js", "../src/posenet/buildParts.js", "../src/posenet/keypoints.js", "../src/posenet/vectors.js", "../src/posenet/decoders.js", "../src/posenet/decodePose.js", "../src/posenet/decodeMultiple.js", "../src/posenet/util.js", "../src/posenet/modelPoseNet.js", "../src/posenet/posenet.js", "../src/handpose/handdetector.js", "../src/handpose/handpipeline.js", "../src/handpose/anchors.js", "../src/handpose/handpose.js", "../src/gesture/gesture.js", "../src/imagefx.js", "../src/image.js", "../src/log.js", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../src/tfjs/tf-browser.js", "../src/tfjs/backend.js", "../src/human.js", "../src/blazepose/blazepose.js", "../src/handpose/box.js", "../src/handpose/util.js", "../config.js", "../src/sample.js", "../demo/draw.js", "../demo/menu.js", "../demo/gl-bench.js", "../demo/browser.js"], - "sourcesContent": ["import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var _scriptDir=undefined;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":169,\"maximum\":169+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13056;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":151,\"maximum\":151+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport { version as tfjs } from '@tensorflow/tfjs/package.json';\nimport { version as versionCore } from '@tensorflow/tfjs-core/package.json';\nimport { version as versionData } from '@tensorflow/tfjs-data/package.json';\nimport { version as versionLayers } from '@tensorflow/tfjs-layers/package.json';\nimport { version as versionConverter } from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs,\n 'tfjs-core': versionCore,\n 'tfjs-data': versionData,\n 'tfjs-layers': versionLayers,\n 'tfjs-converter': versionConverter,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './blazeface/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './posenet/posenet.js';\nimport * as blazepose from './blazepose/blazepose.js';\nimport * as handpose from './handpose/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.blazepose || (this.config.pose.enabled ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.pose.enabled && !this.models.blazepose) this.models.blazepose = await blazepose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let blazeposeRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run posenet\n this.analyze('Start Pose:');\n if (this.config.async) {\n blazeposeRes = this.config.pose.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.perf.pose) delete this.perf.pose;\n } else {\n this.state = 'run:pose';\n timeStamp = now();\n blazeposeRes = this.config.pose.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.perf.pose = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Pose:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, blazeposeRes, handRes] = await Promise.all([faceRes, poseRes, blazeposeRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, pose: blazeposeRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig) {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let blob;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (!blob) return null;\n const bitmap = await createImageBitmap(blob);\n const t0 = now();\n const warmup = await this.detect(bitmap, config);\n const t1 = now();\n bitmap.close();\n log('Warmup', this.config.warmup, (t1 - t0), warmup);\n this.config.videoOptimized = video;\n return warmup;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n// import * as helpers from './helpers.js';\n// import * as profile from '../profile.js';\n\nconst models = {};\nlet config = {};\nconst anchors = [];\nconst kMidHipCenter = 0;\nconst kPoseDetectKeyNum = 2;\nconst kFullBodySizeRot = 1;\n\nfunction calculateScale(min_scale, max_scale, stride_index, num_strides) {\n if (num_strides === 1) return (min_scale + max_scale) * 0.5;\n return min_scale + (max_scale - min_scale) * 1.0 * stride_index / (num_strides - 1.0);\n}\n\nexport function generateAnchors() {\n const options = {};\n options.strides = [];\n options.aspect_ratios = [];\n options.feature_map_height = [];\n options.num_layers = 4;\n options.min_scale = 0.1484375;\n options.max_scale = 0.75;\n options.input_size_height = 128;\n options.input_size_width = 128;\n options.anchor_offset_x = 0.5;\n options.anchor_offset_y = 0.5;\n options.strides.push(8);\n options.strides.push(16);\n options.strides.push(16);\n options.strides.push(16);\n options.aspect_ratios.push(1.0);\n options.reduce_boxes_in_lowest_layer = false;\n options.interpolated_scale_aspect_ratio = 1.0;\n options.fixed_anchor_size = true;\n let layer_id = 0;\n while (layer_id < options.strides.length) {\n const anchor_height = [];\n const anchor_width = [];\n const aspect_ratios = [];\n const scales = [];\n // For same strides, we merge the anchors in the same order.\n let last_same_stride_layer = layer_id;\n while (last_same_stride_layer < options.strides.length && options.strides[last_same_stride_layer] === options.strides[layer_id]) {\n const scale = calculateScale(options.min_scale, options.max_scale, last_same_stride_layer, options.strides.length);\n if (last_same_stride_layer === 0 && options.reduce_boxes_in_lowest_layer) {\n // For first layer, it can be specified to use predefined anchors.\n aspect_ratios.push(1.0);\n aspect_ratios.push(2.0);\n aspect_ratios.push(0.5);\n scales.push(0.1);\n scales.push(scale);\n scales.push(scale);\n } else {\n for (let aspect_ratio_id = 0; aspect_ratio_id < options.aspect_ratios.length; ++aspect_ratio_id) {\n aspect_ratios.push(options.aspect_ratios[aspect_ratio_id]);\n scales.push(scale);\n }\n if (options.interpolated_scale_aspect_ratio > 0.0) {\n const scale_next = last_same_stride_layer === options.strides.length - 1 ? 1.0 : calculateScale(options.min_scale, options.max_scale, last_same_stride_layer + 1, options.strides.length);\n scales.push(Math.sqrt(scale * scale_next));\n aspect_ratios.push(options.interpolated_scale_aspect_ratio);\n }\n }\n last_same_stride_layer++;\n }\n for (let i = 0; i < aspect_ratios.length; ++i) {\n const ratio_sqrts = Math.sqrt(aspect_ratios[i]);\n anchor_height.push(scales[i] / ratio_sqrts);\n anchor_width.push(scales[i] * ratio_sqrts);\n }\n let feature_map_height = 0;\n let feature_map_width = 0;\n if (options.feature_map_height.length) {\n feature_map_height = options.feature_map_height[layer_id];\n feature_map_width = options.feature_map_width[layer_id];\n } else {\n const stride = options.strides[layer_id];\n feature_map_height = Math.ceil(1.0 * options.input_size_height / stride);\n feature_map_width = Math.ceil(1.0 * options.input_size_width / stride);\n }\n for (let y = 0; y < feature_map_height; ++y) {\n for (let x = 0; x < feature_map_width; ++x) {\n for (let anchor_id = 0; anchor_id < anchor_height.length; ++anchor_id) {\n const x_center = (x + options.anchor_offset_x) * 1.0 / feature_map_width;\n const y_center = (y + options.anchor_offset_y) * 1.0 / feature_map_height;\n const new_anchor = {};\n new_anchor.x_center = x_center;\n new_anchor.y_center = y_center;\n if (options.fixed_anchor_size) {\n new_anchor.w = 1.0;\n new_anchor.h = 1.0;\n } else {\n new_anchor.w = anchor_width[anchor_id];\n new_anchor.h = anchor_height[anchor_id];\n }\n anchors.push(new_anchor);\n }\n }\n }\n layer_id = last_same_stride_layer;\n }\n}\n\nexport async function load(cfg) {\n config = cfg;\n if (!models.blazepose) {\n models.blazepose = await tf.loadGraphModel(config.pose.modelPath);\n log(`load model: ${config.pose.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n generateAnchors();\n return models.blazepose;\n}\n\nfunction rotateRegion(region) {\n const x0 = region.keys[kMidHipCenter].x;\n const y0 = region.keys[kMidHipCenter].y;\n const x1 = (region.box[0] + region.box[2]) * 0.5;\n const y1 = (region.box[1] + region.box[3]) * 0.5;\n const target_angle = Math.PI * 0.5;\n const angle = target_angle - Math.atan2(-(y1 - y0), x1 - x0);\n return Math.round(1000 * (angle - 2 * Math.PI * Math.floor((angle - (-Math.PI)) / (2 * Math.PI)))) / 1000;\n}\n\nfunction rotateVecor(vec, rotation) {\n const sx = vec.x;\n const sy = vec.y;\n vec.x = sx * Math.cos(rotation) - sy * Math.sin(rotation);\n vec.y = sx * Math.sin(rotation) + sy * Math.cos(rotation);\n}\n\nasync function decode(logits) {\n const scores = await logits[0].data();\n const boxes = await logits[1].data();\n // todo: add nms\n // todo scale output with image.shape\n const regions = [];\n for (let i = 0; i < anchors.length; i++) {\n const region = {};\n const score = 1.0 / (1.0 + Math.exp(-scores[i]));\n if (score > config.pose.scoreThreshold) {\n const idx = (4 + 2 * kPoseDetectKeyNum) * i;\n /* boundary box */\n const sx = boxes[idx + 0];\n const sy = boxes[idx + 1];\n const w = boxes[idx + 2] / config.pose.inputSize;\n const h = boxes[idx + 3] / config.pose.inputSize;\n const cx = (sx + anchors[i].x_center * config.pose.inputSize) / config.pose.inputSize;\n const cy = (sy + anchors[i].y_center * config.pose.inputSize) / config.pose.inputSize;\n region.score = Math.round(1000 * score) / 1000;\n region.box = [cx - w * 0.5, cy - h * 0.5, w * 0.5, h * 0.5];\n /* landmark positions (6 keys) */\n const keys = new Array(kPoseDetectKeyNum);\n for (let j = 0; j < kPoseDetectKeyNum; j++) {\n const lx = (boxes[idx + 4 + (2 * j) + 0] + anchors[i].x_center * config.pose.inputSize) / config.pose.inputSize;\n const ly = (boxes[idx + 4 + (2 * j) + 1] + anchors[i].y_center * config.pose.inputSize) / config.pose.inputSize;\n keys[j] = { x: lx, y: ly };\n }\n region.keys = keys;\n region.angle = rotateRegion(region);\n // add points\n const x_center = region.keys[kMidHipCenter].x * config.pose.inputSize;\n const y_center = region.keys[kMidHipCenter].y * config.pose.inputSize;\n const x_scale = region.keys[kFullBodySizeRot].x * config.pose.inputSize;\n const y_scale = region.keys[kFullBodySizeRot].y * config.pose.inputSize;\n // Bounding box size as double distance from center to scale point.\n const box_size = Math.sqrt((x_scale - x_center) * (x_scale - x_center) + (y_scale - y_center) * (y_scale - y_center)) * 2.0;\n /* RectTransformationCalculator::TransformNormalizedRect() */\n const roi_cx = region.angle === 0.0 ? x_center + box_size : x_center + box_size * Math.cos(region.angle) - box_size * Math.sin(region.angle);\n const roi_cy = region.angle === 0.0 ? y_center + box_size : y_center + box_size * Math.sin(region.angle) + box_size * Math.cos(region.angle);\n const long_side = Math.max(box_size, box_size);\n const roi_w = long_side * 1.5;\n const roi_h = long_side * 1.5;\n region.center = { x: roi_cx / config.pose.inputSize, y: roi_cy / config.pose.inputSize };\n region.size = { x: roi_w / config.pose.inputSize, y: roi_h / config.pose.inputSize };\n /* calculate ROI coordinates */\n const dx = roi_w * 0.5;\n const dy = roi_h * 0.5;\n region.coords = [];\n region.coords[0] = { x: -dx, y: -dy };\n region.coords[1] = { x: +dx, y: -dy };\n region.coords[2] = { x: +dx, y: +dy };\n region.coords[3] = { x: -dx, y: +dy };\n for (let j = 0; j < 4; j++) {\n rotateVecor(region.coords[i], region.angle);\n region.coords[j].x = (region.coords[j].x + roi_cx) / config.pose.inputSize;\n region.coords[j].y = (region.coords[j].y + roi_cy) / config.pose.inputSize;\n }\n\n regions.push(region);\n }\n }\n return regions;\n}\n\nexport async function predict(image, cfg) {\n if (!models.blazepose) return null;\n return new Promise(async (resolve) => {\n config = cfg;\n const resize = tf.image.resizeBilinear(image, [config.pose.inputSize, config.pose.inputSize], false);\n const enhance = tf.div(resize, 127.5).sub(1);\n tf.dispose(resize);\n const logits = await models.blazepose.predict(enhance);\n // todo: add landmarks model\n tf.dispose(enhance);\n const regions = await decode(logits);\n logits[0].dispose();\n logits[1].dispose();\n log('poses', regions);\n resolve(regions);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n pose: {\n enabled: false,\n scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n modelPath: '../models/blazepose.json',\n inputSize: 128, // fixed value\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA\nAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu\nbmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob\nIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgo\nKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgBAAEAAwEhAAIRAQMRAf/E\nAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE\nEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZH\nSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1\ntre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEB\nAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET\nIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla\nY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG\nx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+qaKACigApGOKAML\nXp8xlF5A7V4X8RtYs7PzfNImnx8sa8Kp9z3q2tEgp6angWs62ZZ5CTGoJ6DArGNz5p+UrID6EUrF\nPUlW1EuN0XNW7PQ2L5j3JnoKXN0KijqNP0eYoqXBdgPuuo+ZPeupisWn2Jd4+0r924XgsQOCff3/\nAJ1FzRKxDqGii6m3siiQ8F1XGfXI6YNWLfRbiRQMkcZI9fpTDluT2/h6Qy8gDPbtmtG38JeY480Z\n5zSLUTZg8M28YwYxjAArXtdPt402qgHbpSaLWhma3o0Uqk7Nx9DWLaaVblgPs6qRyds2M/gRSQp9\nzZOni2iWS2hlQ+kjYz9OMGrdjq89vIPPVhj+8M/lQyDq9P1WOYBlMZz1AOD+VdDaTiReOKulK0jO\ntHmi0WDTlr0TyxRVhT8tJjIX+9SUxHXUV553BRQAVBcPhSBTSuxPY86+IGti0s5I7dsORy9fM3i6\n8e8mfDO5P90ZrWWiJicNPpZZtxV/xrW0jQt4DOv6Vk2dEEdTY6BHuB25rpbPSo0QARjP0qTRI17W\nwA/hFaMWmoQMgflQXYsDS142rU9tpqqenfNA7GgtihxkdKuRW6qMY/GkDZY8sY4Ap4hXbyB+VArk\nEtuH4wPyrk/EGkOm+a3jw3suRQLc5i38SX9hJ9nnY+XnBUdPyNdFY6pa3KkkAE9l6f8AfJ/pSJT6\nGhDmI+Zb4ZRycdv6ium0nUhKFydrelTsNnS2829RnrVgV6NKXNG55lWPLIM81Op+WrZkRMfmNNzT\nA7GivPO4KKAEY4XNYWt3vkwPg4OK0giJdjw/xrqhm87Zs8tc7pX5A+leSajf6aHYJ50kn4AZpTep\nrBWRm2Vobm4BXfyehPFdnpmnBFUY5rI2SN63tlToK0YI+KZpFF+3QdavwoKTLtoW0Toaswpk5pCb\nLCxipAhoIuP2dKevHXoaYDylRyxhlwRQI4nxVoCXWZI1GfpXGtbSWjYPGP73+NIGupt6TqMsLruZ\nih4xnP5V09mQ+JLd8gn0xSYJnVaVdkook69K34zuUGunDS3Rx4qOzHVIp4rrOMY3NJQI7GivPO8K\nKAILt9kZrz3xlebYiu8KCCWb0XvW0NFch6ysfO3jLVjfXLIn+pQkKorl7WxNxIPl71g2dUUdpo+l\npBGvHPet23iC8ihFosrxirkHQUFo0IF4FXI1O726CpKLacCrMJoJLYHAPpTwucHpSRJJ5e4AZI9x\nUqpxzVpCuOC8cUpQUMRnXttuB4rjNdsYyeVwfXpmpGmcvcQyafMCFJjPY10eg34BUg4DcZP8jUO4\nHaRq3lLNF+IHet7R7jz7c56rwa2wz9+xhiVeFy/T1PFegeaNPWigDsc0ZrzzvDNIaAM7VpNqdegr\nxL4l6kywyRhseZ19lrdfAZL4jxYg3Fw20d63tJsdrDI5rm3Z3R0R0Mce1eKnQYAplIkWrMJ45oZS\nNO3PHbNXIyfpSGWowSOasxLUiZdjFSqtNEMkUemKlAGKsRJjAppFAiORMjmsTVrNZEO4cfSoZSOD\n1eJ7WXBUzQZ+7nkfSo7e2Ei+ZaMzxntjBX2NSU1Y6/wxqojiEFzkA8KTXYaUoWRyv3W5rSjpNHPX\n+BmpSg8V6J5gUUAdhRXnneFFAGHrTfu5PpXzj8S70/aZtxzztXFbv4DKHxHI+H4GZiz9zxXXW8G3\nGBXMjvLRXAx0oPGPSmMVeOnWrMTYpFI0bcg1fh54xmgovRcD3qxETSIZcRvzp+/BpEkqsBUqsM9K\nq4Em4Gkxk0yRGXrVW6i8yFhkg+tJjRxGsWrxllkUMh9eK5uMz6bcebbnfG33kPcVkay2OntPKuo0\nnhXI67c8qa7Lw3c+adjcEDGK1paSRhVV4s6A0or0jyRRQ1AHX0V553hRQBz+vNtt5z3xXzX8Qbdm\nuic5YnOMdK3l8JnTXvlbwpYl+WySOgrp5YfLOOB9O1c62O7qQkc+9RsKChFPWp4DluOlSykaNruH\nArUgHShFNF2NT1qxGO3NBmyxGcE1N2560CFzjrUysO9JAPDDjFOVuKoQuSRTWouBkazbCa3cd8cV\nwF7IISQccHBzUSWpV9C3o1x5b5GAjdQD1rs9DjC3kckbEhqKfxIzn8LOupRXqnkPccBSkUAzraK8\n87wooA5rxMSI3HqK8B8bQl9Q8sffY5b/AAraXwkUviNrw9pH2W1ViMMRTdRjw4HpWNtDti9TPc4P\nFQs2M5qdyyMHLcfjV63HTAoBGtap0wK0YxigpsuRDtVhVYd6GQydVwwIqdRnqKCR23I5pCMUW6gD\nYNKuetAEise9KTxQBWuFyhrznxNZkXjFeN3I+tTIZg2OqmzmxNF0PO3vXp/g2+hukVl4zyPanTXv\nJmVR+60dpThXpnlPceopWFAbnV0V553hSGgRynjC5FujOey14Ssp1HxNmTnc+a3kvcIpv37HoEYQ\nQmMdVHSsnVbYJF5jVk0dsNzlruVIsl2wKxbjWrVHILjg1CRbZJb+ILHPzyhfStODWLQgFJFYd+el\nUJM27HUIXxhga1Y5lLVLKLkMnoauxnPPrSEx7ShF+Y/n2qrc6xBbhizDAqkK1zJuvG9nbg8ZA681\nly/Ei052RO3uKAsZlx8QGd8xxvt9Aa1NH8dK7AXMcip64zigdkdrZX8F7EJLdwwNXMkrz1qRMRly\nCK4TxmpidWI49felPYSOMmi80NIoOV6qRzXYeA5SskYPfirpfEjGr8LPWVHyD6U4CvQPL3ZItOYc\nUDOoNFeed4Uhpks4H4iE/Z5MeleMeGULeLgjds10S+BGdL+Jc9OSBU2Huc5Nc74yvUtrcDBrJnZF\n63PJdXvLy/lKWw46bvQVz82jXhkLO5Y+9ZlsYthcRnbIjY9R3q3awTRkEM3WmJI6C0ea3dGRsr1x\nXY6TqW9FLHnjrUs0izpLK5DDjofSta3ckH09KRUkZuuTvFGdvPauE1Y3U6Mqbssf/rUxHPTaJPK2\nZmJPbBqzY6DCZh5xJC9s9aBJHU6dpemJjfEmfetJtI0+VPkUr/unFOxdiextHs33W07YHQHk11mk\nXb3KbZ1xIvcd6LEyWho4Nct41sTPYb16ipexCPPZN+wYGCvH1rrPAEJmvkPoc1VL4kZVvgZ6yFwK\ncBXoHkkqinFaVyzo80GuE7WJRQSziPiGdthK5HQV4x4J/wBI8WPIewNdEvgRNL42emO/yj1UHNef\neNpRczbC+I17DvWT2OqJxc0sMK4TCisy41q0hfEkqj8aixdwTXNOlwvmqD9anS9tXH7uVG+hosO4\n/wC0oOhrR0+6G4YNIEzsNEuCxAPNdjZruA4xxUmjINSjURksOlcbqFykbnjFA1sYGoassaknCqO5\nrl7rxhGm7yBnBxuJq0rkSlYpw+NLlsfd5P8AerVsvHEqSBHwPVgcgVpyMyVXU3rXxcHYETAk+hru\n/DWti6ZSTyOKzZqndHaxvvUGq2rQ+dYyqR24qWI8dvbr7LqDxyDAzXpvw6FvIxePGSM06Xxoyr/A\nzviKFHNegeX1J41zUhXioGbuaSuM6wpCaBHG/EcA6HN/exxXjXw2jL67cv8A3Qa6H8CFR+NnoWpO\nI4XI44rxLxrqjQzSEsQM1gdSPM9U1uR1YbmWIdXHf2rmpIb67YS28UrRlsLI3c/jW0VZGUpO5pW1\njfLNOjahawzwReYI5cjzMkDavHJ5/SrVv9uhtPtVxCPLBwzxnlT9KGghLU3tKvvPjHzbl7EGuisJ\nGRxWLOg7nRXJEbDjmvSNK+aFSfSoZr0KutRkphc4NcRrdkVjL9aVio7Hk3iqS8ubhrWzUlsZY9kG\ncZNc5D4aee5MclzJIFTzHAO0MfatqSOWu7bFS1srDUZEis0vIZoUxPvfcC+4/dx2xjr712XiTwXb\nWmlQ6hol3cRhoFd4rlg3zY5wR0GelavQwjq7GD4etdVvSnk2wAB+9v8A8mvcfA2kXiRo0/UdcDis\nZnTTulqeoWqbUAJqWUb42X1FZlnjfjSwlGrr5S/eNdD4RkvLAAQ4yRyaUZcruVKl7TQ9I0G+mnzH\nckFwM8VuIK7ac3KF2eXiKapz5UWYxipNtMyNejNch0jSar3cjR27uoyQCRVRWom9DxTx54gu5fMi\nlbKdMVjfCZPNlv5v9rFbVHpYqjGzbOn8SzFI9o715L4u0r7arYzk+lYdTqSujy7U/C0u4vHk+WwO\nxuh9q3J9dgvbdVukMV1EwbDDgn04rZMwlHoZ+orZ6hfQ3RWVnQYCgZAq+8U0ln5NtBsV2yxYcfgK\nJtW0CnB31LlroVwJ1nQLGDjeP7w+lb0dsFxjrWB0tHS6NuWPJ6A16ToUm63T3Gallr4S7cxiTjrX\nPaxaF7dlVeSMUhxZ5jd+H7qCa4eF3DSE5x3zXN3Wk6jbyeaiFWUY6ZyPStYS5SalPmVipFbX0E4c\nW0alvmPHJrag0rVvEE6LdljGpG2NRtQD+tW5XMI0uU9M8NeFo9PiQhecDIIrtrOMIoG3H4VlJm9t\nC6CB06VPGM1IHLeItGS6uw+ORT7e3jsbQvj7gzUNam0JaWE+HN7NqOqX80n3FO1RXo8YzXdS+BHk\n4z+KyzGPapcU2YIv7qQtiuaxvcaWqG4O6FwfSrS1JbPnrxoxkv7qIfejcitj4V2f2exumI+8+aKn\nxHTT+G5d8Txlm4rjLxMsQwzWT3OiK0Mm6sEkVsAcjFc1d+FEmlGwEDPQVopaEuOpr6f4ZWNAu3tW\nvHpAj5ZQcUFIWaDjGMVUMQ3cVDBmvbhY7QAV2nh+T/R1yeKhlrY31+b61FcQK6nIoJMi401WblRi\nqr6PCw5UYq9y+YgOgWzNkRrx3xWjp+nx2v3FQcelAbmko9anQ4GBUNisPHWr1qMrQhS2K11HvmYV\nhamcxSRZ5xRIqluS/DKAQQXZxyXrvo2FdlL4EeZjH+/ZbjNSZpswLNBrE1Gt7VE4ODVIlnh/j61F\nj4lmeTGyUbq6LwdEqWbeX0YbhSqfEddP4Bddj4JIrhL5d8h7VjI6oLQqKNzelWre3yc4/ClFjaL6\nwqBxxUUxwCKu5BmXRA6c+9ZjP83FSBoQuPs4BrsNBlUW659KmRrDY6G1lyQtW3Hy0lqQ1qVJnAbm\noy3b9KYJCqRj3o4zRctIlhjLHmpSuOBRbQOpLGpPFaES7UqkZzKN1KsEc87/AHUUmvPLTVGv72aQ\nk7WJwKmRrQ3ud74Ltilgz4++2a6iNDXdS0gjyMU71my7GpqTbxSbMki3SViajTTHqkSeR/GeyZmg\nnQHkEE1S+F+oPPavBL96I4/Cia1udVF+4dVrkW+Fq8+v4tjMDWUkdVJ6WM0cNV+F+MVmjUcZgqnP\n1qpNNnkcVRLiZtxIS1UzzIF7mghlxUZpVQdq6nTVdAoAOKzkbQWhvwM6gMM1twOJYx3NOJE11Kt1\nH1/pVVlwBkk+9NocXoOQ45FPj+fkUJFF2NSB700v/hTEty5ZpkjvVyUgcCq6GM9zC14/8Se6GcZQ\n1574Xs5WkI2HBPHFQ1dm1KSSZ7Rotn9l0+KPHIHNacae1dy0Vjxaj5ptlhVp+2s2CJ9ppCKzuWNx\nzSFc1SYrHNeNdIGpaYw25ZeRXmvheyk0jVpEdcLJ0q3ZxNKTa0O3vQHg/DNcHrsJDmsmjspnNzNt\nfFIJ24GazOhC+azDmgZIOOKBsp3J2qSaZodubq58yQ4QAnmhGT3NO18pb7BORmu205LfYpyKVkWp\nOxr5gKYWoIZWgfGfloFq1qTPLubnGO1RPtxg4P0oBAkY/hBz6VNDDkZ6AU0W2WSdqkdKr9ZOaGSj\nVtcLHmnOcgmmYvcz7mBLy3MbdD1q9ouiRK6bUAVeelOC1InPlidSsWMDFOCEdq3uefykqrinYqGy\nrFvApMVka2DAowKAsMkRXQqwyDXn/iWyitNQ3qPl6itIvRoF8RXinW4tQ6HI6GuW8SIVBPalc6qe\n5x9x97r3qruwTjrWZ0ksZ9TUmcDNAmZ9/wAoao63rR0+w22MLPtAzt6mghmfofiB76LdJBJBIp5D\nd/oa7bSdWLIPnpDi9TM8TeKdas51XTbIyxd3J/pXS+E/EFxqNoFu7do5OmD60maHWrnZyDRkn/69\nMlEyOR0xntVoNx+FUgYjPxg4FLCuWDZyKQr2RoRnP0qO+nEFpJITgAUzLqZnhu6+0rknOTXpOmwJ\nFbrt5yMmnHYyr6Oxb2ijaKLnPYMClwKQWK3n0hn+lachHOJ9pNNN0apQFzsY10a4v4hXQh0xpieQ\nMA1XLZNjhK80cT8OdV+3Wl3A7ZZJCw+hrR1qLcjZ/CsbnfHRnFXseHJArOYYbrUs1uPhYbuatqFP\nByfSkMq3UIINYkto+87Tx6GkSxfsDbflGD7CtTw/pk4nzITtPIFMFudsukh4Rxz71paTpKwP5jcn\n0qTRy0NORMDgVCqewoJTJgAoxjntTiTu7fWmFxAcnn1q3EPl+X8KZMi4gKqB1Peob/Tv7Us5bfeU\nyOoq4R5nYxqT5I8xieH9J1DTbvyJELRg8ODwa9Ms5mSFV9BWiptbnNVrKdmif7Q1KLg96XIZc5Is\npNL5pqeUrmMtZs0jzV08phchaY00zH1p2ZNxjS1g+LdJOt6U9ssmxjyGp2urDjLlaZzng/wUPDqz\nTSTmWeTrjpVjVk3Rvjr2rnqQ5dDvo1XUd2cTqSNk9OKxXGCeKxZ1DAxHTr2q5C/y8GokUhsz54qu\nuCxzSQjQ0+FZblR2ro4bZYiMVQ0dBb7Qi5x0qzuG5QOh71LYErDufpSeWrHnimIXbjkUjLkH1Hem\ngGxryc+tXI19KYmWegq9YLiLJ7mtqS945cS7QsWehqxA9dEjz4krPSxyZqbFFhGxUm6smjRM55Lk\nHvSvNxXTY57kLT+9MNwKdhXGm5FIbkU7Bca1wMEVhaiuQcVhXWiZ14R6tHGanGBI2OtYkqEHjgVy\ns9ErEeo6UBsHipKEZs5qpPdRxcbhx70NCSuybTNWihc5brW9Fq6vjMnFSdEIdDRi8RRKygZbHFbu\nm6nb3RA3gMegNJhOm0jbXGOoxTuCc1Rz3FyoGKawz9KaAVcZqeMgCmIkB4FaUTbYwB6V00Fuzixb\n0SFMuDU8Mlbs4UPeXHeiOXkUrDuXYnyKk3cVk0ap6HMxxketSMhrcwRC0dMMZFMQ3yzSeVQAeUaz\n9Vj8uPd271nVV4m+GdpnHX67pCeKyLtBtNcR6xlk9RVeWTb3qRnO6trgttyIfm71z7ai8j7/AJmN\nDNqUVa5Yi1AnjynHuBV+11YJhWWXcP8AZNSzqgmaEerSsf3NtIQP4mGKtRavdRgMIpVI9KjU0a7n\nR6T43uYQI7qN2Tpkqciu503VVuQGAYZHQjFVc4alPlZrpKGAznpTwxOc9+lWjIlUACnM4XApiLNk\nnmvnsK0NvpXZRVonmYqV52GsmanhXitTmFkSiJTSAvwrxUxXIrJ7miOfjf1pzNWxkRlqYWpgJupu\n6gQbuahvIxPA6eo4pNXVioS5WmefakGhndH4INZs5DJXA10PaTurmLO21uKpSZqGMoXGnRzBiyjd\n9Kx5rcQS428fSkjanLoaOliHGZFB56VswW+mtPufcBsGOAfmxz+tFkd8HpoaUx09FAtFY8DO71qb\nSms/Nb7RbecG6AEjFLS5c78t+p0djpVs9wsyQiJAdyr1rW+zqjErzSe559Sbk9S3C+MA1bjbgE1S\nMSXzMVG0vNUI2tPKrAuCMnrVzNd0PhR49W/O2xrHmp4TxVMzQshpIzzQBehqesnuaI5VGzT2bitz\nFEbNTC1ADS1JupgG6l3UAc14s04yR/aYRll+8BXCtLncDXFWjys9TCz5oW7GddH5qqNzWDOgQnC8\nVSuo1kHzAGkPYopEY2+RWxV23Vzj5G/Kg3jWaNazhZuqNXS6TaKhB2c0jR1nJWOlhOxRxU4YkCgx\nY0OQatQyDbyaaFYe8uF4NY3iC9ltbVGj43NTIL3h7WzMihjzXVQXYYDdW9Cf2WcOJpfaRZ3g9KsQ\nmupnCLIabGeaAL0LcVY3cVmzRHIxtUhetzEjZqjLUAIWpN1ArhupwagAfDKQ3Q1594v0c2bm6tx+\n5Y8j+6ayrR5onThp8s7dzkZjuqAAmuBnqC7c0iwgtzSA0rWzjfGRW3ZadDu4AoNYo2rfS4v7orSh\n05UA2r0pDbsTm29KRottBNyJ0wpJ9KhD7f6U0ikNWffIFBz60zVUW52ow4UcUN6EPcx44WsbgOmd\nua7TT5Bd24KHnFKnLlZFSN4koluLdueRWvp14swweG9DXoxldHlTjYtzGoo25qzEvwtUxas2jRPQ\n5CNqkLVsYoYzUzdQA3dSFqBBmnqaBhuqhriCXTpVIzxUz+Fl03aSPI9QTypW2/dz0qKNw3SvOPZR\nMqin8VLKRcs3O4Cuk0w/MDjt1NBtHY6O2IIHY1pxgFaETIRwMkjtVSUEk4570MlFW5bap6dKzWm8\n1tqH8aY+hp2FvGoGayNevVt7/ap4xzUvYjqTLtvLPcvJxSaVcyWsxTnFZlnT2t15xHmCtOBYwQy4\nB9q7cPO+jPPxFO2qLEj5HWo42+aus4HpoX4W4FTF+KlotbHII9SFuK0MUNZqiLUDE3UbqBBupwag\nBc1DefPbyD/ZND2KjujyPWlKzuPesRZjHJXms9lMuw3StjnmphKDSLTJ7OfE3JrpbO4GQc9qlnRA\n3LO82k5NbFvdADkjBoCSHyXIIIzgVQvdRigT7wzjgUzO1jHknlvG7qnp61etYFQDIpCZoqVijzXn\n3iC8EmsOuaCGb/heR/s0ijkVv6fbxy3QMg5xmsnuX0Ldzut3+UYTPWk+2GJSe+M1pFtamcldalmx\n1eO4XaThhWnC+TXqR2PHqL3maUJ4qRjxSEjj42qXdxVmaGs1MJoATfSbqBAG5p6mgAzTJTmNvpQU\ntzzHXY83D/U1zF5FhjgV5r3Pa6FMsV5HWnLe7RhqBRdmTwagN2d2K2rPU1C5LAnPrUs6Iysbdrq6\nf3gK0BrUKj/WClY05iM6xLOcQAj3NT29uznfKSzHuadzNu7NSBFjHNSm5VO9IRnajqoWMhTzXFtA\nbvUfMduSeg702Qz0rS7FbTToQFwzjJqaGTFyfK5PQViyzUuFmuIdgGABya5u/vTaN5cnUHFUmLoZ\nzyskwlgJweSK6zQdUEwVJeGr0aUrxPLxEfe0OrhPAqVjxWhznGRtUwatDK4jNxURbmkAm6jNABup\n6tQAFqhupNtu59qUnZFwV5JHnWsHdIx96w5lz15rzT2uhRmt85xWbcxMnUGmZlB0bdxmrNvFIcfM\n350mWjbs7YkDJY/jW5ZWW4jikWkdNp9mqYJFaJdEHHakUULu/VB1rLn1Ld/FgetMGYd/qWSQmSa0\n/AemS32pfa7piLeLkg9z6UmQtz0W7uQ2cZx0A9BVzR7cAea6j2rPqX0L99KRat5A6Dk1wOoKZ52a\nYfMORTYRLujiGWEq6/NWza2yKQVHNdOHerRy4laJo6TTnbbtb8KuM3Fdh5z3OJjbmpt3FaMxAtUZ\nagBN1GaQBzTwaAAms3VbjERUGsa07RsdeFpuUuY4jUjljWTKK4j02RE4IpJYFk6imQkVl0xWarsO\nmAEcUi0bNnZBR0rWtoguMCkUi21wI161mXuocEKaYXMS4u+pY/hVCSWSY4HT0pEmlouiSahdpEBl\nmOceleiwWcNjClvHgJH97Hc1EmVFFi3Czy7mwIl/WtJbjP7uLgd/apQ2VNVvtsBhiPzdK5S4nAuR\nnqOCaTGi9pcytPlU+XpmumtWII44rah8ZjiNIXRuWeNvvViQ/LXpJWPJbu7nCRvVkNxVsxBmqJmo\nEPiXca0YLMuOlJsuKuPlsSi5IrNuG8s4HWs5VEkbwoOTKsk+FJY4rC1K53k1xTk5O7PSpwVNWRzt\n4cms+WpKICtSLTETQj5q0YeBSGiys23pUguGxQMq3E59ayrm4x3yaAKiRtO2WPHcmhruKFxFajzZ\nScA44qRHoXhuMaLpxaUg6hcDLMf4F9KlhuDeXGASIl+8azZslYma68y48m1+7nFW5rtbRNhb5z1p\niMKbUg0zuW4A4rPgb7VdKXOMmpA7HRbMS7nUYiUda0lkQOBngVrS+JGdbWLRt2bAx5BqeQ/LXpnj\nPQ4GJ+ashuK0MhWaoWcA0AaOmASMK7jRNPWYBmHyiuepO2x10qfcv6vYxCzYqoGK4HVYVTJrmb5l\nc6oaM5TUJ8EgGsG4kLNUHT0M64OaqMMikSRsuKbnFMRLG3zVehOaGNE445NNlnVFpDMu6uie9Vo1\n8z5mOAOST2pDK91cNN+5tsrH3PrW54a06KxT7fdrlh/q1Pc+tJ6IUdZGvHPLezMcnBOWbsPap5r3\nylFtbdT1xUWNWzU0/Zbwlgfmx8zGsHWtRHmMqE59aAMyNifvHPc1f0gtPdqkY5JosJHeNci2tktY\neuPnNY+oXWZEVJNrZ9aun8SIq/CzodHuriIokhDIR1ronbKZr0o6o8ipoz//2Q==`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "async function drawGesture(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.font = ui.baseFont;\n ctx.fillStyle = ui.baseLabel;\n let i = 1;\n for (let gesture = 0; gesture < result.length; gesture++) {\n const [where, what] = Object.entries(result[gesture]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n ctx.fillStyle = 'black';\n ctx.fillText(label, 8, 2 + (i * ui.baseLineHeight));\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText(label, 6, 0 + (i * ui.baseLineHeight));\n i += 1;\n }\n }\n}\n\nasync function drawFace(result, canvas, ui, triangulation) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n for (const face of result) {\n ctx.font = ui.baseFont;\n ctx.strokeStyle = ui.baseColor;\n ctx.fillStyle = ui.baseColor;\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n if (ui.drawBoxes) {\n ctx.rect(face.box[0], face.box[1], face.box[2], face.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels = [];\n // labels.push(`${Math.trunc(100 * face.confidence)}% face`);\n if (face.genderConfidence) labels.push(`${face.gender || ''} ${Math.trunc(100 * face.genderConfidence)}% confident`);\n // if (face.genderConfidence) labels.push(face.gender);\n if (face.age) labels.push(`age: ${face.age || ''}`);\n if (face.iris) labels.push(`iris distance: ${face.iris}`);\n if (face.emotion && face.emotion.length > 0) {\n const emotion = face.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n ctx.fillStyle = ui.baseLabel;\n for (let i = 0; i < labels.length; i++) {\n ctx.fillStyle = 'black';\n ctx.fillText(labels[i], face.box[0] + 1, face.box[1] - ((labels.length - i) * ui.baseLineHeight) + 6);\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText(labels[i], face.box[0] + 0, face.box[1] - ((labels.length - i) * ui.baseLineHeight) + 5);\n }\n ctx.fillStyle = ui.baseColor;\n ctx.stroke();\n ctx.lineWidth = 1;\n if (face.mesh) {\n if (ui.drawPoints) {\n for (const point of face.mesh) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * point[2])}, ${127.5 - (2 * point[2])}, 255, 0.5)` : ui.baseColor;\n ctx.beginPath();\n ctx.arc(point[0], point[1], 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n if (ui.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => face.mesh[index]);\n const path = new Path2D();\n path.moveTo(points[0][0], points[0][1]);\n for (const point of points) {\n path.lineTo(point[0], point[1]);\n }\n path.closePath();\n ctx.strokeStyle = ui.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : ui.baseColor;\n ctx.stroke(path);\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : ui.baseColor;\n ctx.fill(path);\n }\n }\n // iris: array[center, left, top, right, bottom]\n if (face.annotations && face.annotations.leftEyeIris) {\n ctx.strokeStyle = ui.useDepth ? 'rgba(255, 200, 255, 0.3)' : ui.baseColor;\n ctx.beginPath();\n const sizeX = Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(face.annotations.leftEyeIris[4][1] - face.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(face.annotations.leftEyeIris[0][0], face.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? 'rgba(255, 255, 200, 0.3)' : ui.baseColor;\n ctx.fill();\n }\n }\n if (face.annotations && face.annotations.rightEyeIris) {\n ctx.strokeStyle = ui.useDepth ? 'rgba(255, 200, 255, 0.3)' : ui.baseColor;\n ctx.beginPath();\n const sizeX = Math.abs(face.annotations.rightEyeIris[3][0] - face.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(face.annotations.rightEyeIris[0][0], face.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? 'rgba(255, 255, 200, 0.3)' : ui.baseColor;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose = [];\nasync function drawBody(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n if (!lastDrawnPose[i] && ui.buffered) lastDrawnPose[i] = { ...result[i] };\n ctx.fillStyle = ui.baseColor;\n ctx.strokeStyle = ui.baseColor;\n ctx.font = ui.baseFont;\n ctx.lineWidth = ui.baseLineWidth;\n if (ui.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.beginPath();\n if (ui.buffered) {\n lastDrawnPose[i].keypoints[pt].position.x = (lastDrawnPose[i].keypoints[pt].position.x + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt].position.y = (lastDrawnPose[i].keypoints[pt].position.y + result[i].keypoints[pt].position.y) / 2;\n ctx.arc(lastDrawnPose[i].keypoints[pt].position.x, lastDrawnPose[i].keypoints[pt].position.y, 2, 0, 2 * Math.PI);\n } else {\n ctx.arc(result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y, 2, 0, 2 * Math.PI);\n }\n ctx.fill();\n }\n }\n if (ui.drawPolygons) {\n const path = new Path2D();\n let root;\n let part;\n // torso\n root = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // leg left\n root = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // leg right\n root = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // arm left\n root = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // arm right\n root = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // draw all\n ctx.stroke(path);\n }\n }\n}\n\nasync function drawHand(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.lineJoin = 'round';\n for (const hand of result) {\n ctx.font = ui.baseFont;\n ctx.lineWidth = ui.baseLineWidth;\n if (ui.drawBoxes) {\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n ctx.strokeStyle = ui.baseColor;\n ctx.fillStyle = ui.baseColor;\n ctx.rect(hand.box[0], hand.box[1], hand.box[2], hand.box[3]);\n ctx.fillStyle = 'black';\n ctx.fillText('hand', hand.box[0] + 3, 1 + hand.box[1] + ui.baseLineHeight, hand.box[2]);\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText('hand', hand.box[0] + 2, 0 + hand.box[1] + ui.baseLineHeight, hand.box[2]);\n ctx.stroke();\n }\n if (ui.drawPoints) {\n if (hand.landmarks && hand.landmarks.length > 0) {\n for (const point of hand.landmarks) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * point[2])}, ${127.5 - (2 * point[2])}, 255, 0.5)` : ui.baseColor;\n ctx.beginPath();\n ctx.arc(point[0], point[1], 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n }\n if (ui.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n ctx.strokeStyle = ui.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : ui.baseColor;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(hand.annotations.indexFinger);\n addPart(hand.annotations.middleFinger);\n addPart(hand.annotations.ringFinger);\n addPart(hand.annotations.pinky);\n addPart(hand.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport default {\n face: drawFace,\n body: drawBody,\n hand: drawHand,\n gesture: drawGesture,\n};\n", "// @ts-nocheck\n\nlet instance = 0;\nlet CSScreated = false;\n\nlet theme = {\n background: 'darkslategray',\n hover: 'lightgray',\n itemBackground: 'black',\n itemColor: 'white',\n buttonBackground: 'lightblue',\n buttonHover: 'lightgreen',\n checkboxOn: 'lightgreen',\n checkboxOff: 'lightcoral',\n rangeBackground: 'lightblue',\n rangeLabel: 'white',\n chartColor: 'lightblue',\n};\n\nfunction createCSS() {\n if (CSScreated) return;\n const css = `\n :root { --rounded: 0.2rem; }\n .menu { position: absolute; top: 0rem; right: 0; width: max-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;\n box-shadow: 0 0 8px dimgrey; background: ${theme.background}; border-radius: var(--rounded); border-color: black; border-style: solid; border-width: thin; }\n\n .menu:hover { box-shadow: 0 0 8px ${theme.hover}; }\n .menu-container { display: block; max-height: 100vh; }\n .menu-container-fadeout { max-height: 0; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-container-fadein { max-height: 100vh; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-item { display: flex; white-space: nowrap; padding: 0.2rem; cursor: default; width: 100%; }\n .menu-title { cursor: pointer; }\n .menu-hr { margin: 0.2rem; border: 1px solid rgba(0, 0, 0, 0.5) }\n .menu-label { padding: 0; font-weight: 800; }\n\n .menu-list { margin-right: 0.8rem; }\n select:focus { outline: none; }\n .menu-list-item { background: ${theme.itemBackground}; color: ${theme.itemColor}; border: none; padding: 0.2rem; font-family: inherit;\n font-variant: inherit; border-radius: var(--rounded); font-weight: 800; }\n\n .menu-chart-title { padding: 0; font-size: 0.8rem; font-weight: 800; align-items: center}\n .menu-chart-canvas { background: transparent; margin: 0.2rem 0 0.2rem 0.6rem; }\n \n .menu-button { border: 0; background: ${theme.buttonBackground}; width: -webkit-fill-available; padding: 8px; margin: 8px; cursor: pointer; box-shadow: 4px 4px 4px 0 dimgrey;\n border-radius: var(--rounded); justify-content: center; font-family: inherit; font-variant: inherit; font-size: 1rem; font-weight: 800; }\n .menu-button:hover { background: ${theme.buttonHover}; box-shadow: 4px 4px 4px 0 black; }\n .menu-button:focus { outline: none; }\n\n .menu-checkbox { width: 2.8rem; height: 1rem; background: ${theme.itemBackground}; margin: 0.5rem 0.5rem 0 0; position: relative; border-radius: var(--rounded); }\n .menu-checkbox:after { content: 'OFF'; color: ${theme.checkboxOff}; position: absolute; right: 0.2rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox:before { content: 'ON'; color: ${theme.checkboxOn}; position: absolute; left: 0.3rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox-label { width: 1.3rem; height: 0.8rem; cursor: pointer; position: absolute; top: 0.1rem; left: 0.1rem; z-index: 1; background: ${theme.checkboxOff};\n border-radius: var(--rounded); transition: left 0.6s ease; }\n\n input[type=checkbox] { visibility: hidden; }\n input[type=checkbox]:checked + label { left: 1.4rem; background: ${theme.checkboxOn}; }\n\n .menu-range { margin: 0.2rem 0.5rem 0 0; width: 3.5rem; background: transparent; color: ${theme.rangeBackground}; }\n .menu-range:before { color: ${theme.rangeLabel}; margin: 0 0.4rem 0 0; font-weight: 800; font-size: 0.6rem; position: relative; top: 0.3rem; content: attr(value); }\n\n input[type=range] { -webkit-appearance: none; }\n input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-moz-range-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-webkit-slider-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n input[type=range]::-moz-range-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n\n .svg-background { fill:darkslategrey; cursor:pointer; opacity: 0.6; }\n .svg-foreground { fill:white; cursor:pointer; opacity: 0.8; }\n `;\n const el = document.createElement('style');\n el.innerHTML = css;\n document.getElementsByTagName('head')[0].appendChild(el);\n CSScreated = true;\n}\n\nclass Menu {\n constructor(parent, title, position, userTheme) {\n if (userTheme) theme = { ...theme, ...userTheme };\n createCSS();\n this.createMenu(parent, title, position);\n this.id = 0;\n this.instance = instance;\n instance++;\n this._maxFPS = 0;\n this.hidden = 0;\n }\n\n createMenu(parent, title = '', position = { top: null, left: null, bottom: null, right: null }) {\n this.menu = document.createElement('div');\n this.menu.id = `menu-${instance}`;\n this.menu.className = 'menu';\n if (position) {\n if (position.top) this.menu.style.top = position.top;\n if (position.bottom) this.menu.style.bottom = position.bottom;\n if (position.left) this.menu.style.left = position.left;\n if (position.right) this.menu.style.right = position.right;\n }\n\n this.container = document.createElement('div');\n this.container.id = `menu-container-${instance}`;\n this.container.className = 'menu-container menu-container-fadein';\n\n // set menu title with pulldown arrow\n const elTitle = document.createElement('div');\n elTitle.className = 'menu-title';\n elTitle.id = `menu-title-${instance}`;\n const svg = `\n \n \n `;\n if (title) elTitle.innerHTML = `${title}${svg}`;\n this.menu.appendChild(elTitle);\n elTitle.addEventListener('click', () => {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n this.menu.style.borderStyle = this.container.classList.contains('menu-container-fadeout') ? 'none' : 'solid';\n });\n\n this.menu.appendChild(this.container);\n if (typeof parent === 'object') parent.appendChild(this.menu);\n else document.getElementById(parent).appendChild(this.menu);\n }\n\n get newID() {\n this.id++;\n return `menu-${this.instance}-${this.id}`;\n }\n\n get ID() {\n return `menu-${this.instance}-${this.id}`;\n }\n\n get width() {\n return this.menu.offsetWidth;\n }\n\n get height() {\n return this.menu.offsetHeight;\n }\n\n hide() {\n if (this.container.classList.contains('menu-container-fadein')) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n }\n }\n\n visible() {\n return (this.container.classList.contains('menu-container-fadein'));\n }\n\n toggle(evt) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n if (this.container.classList.contains('menu-container-fadein') && evt) {\n const x = evt.x || (evt.touches && evt.touches[0] ? evt.touches[0].pageX : null);\n // const y = evt.y || (evt.touches && evt.touches[0] ? evt.touches[0].pageY : null);\n if (x) this.menu.style.left = `${x - (this.menu.offsetWidth / 2)}px`;\n // if (y) this.menu.style.top = '5.5rem'; // `${evt.y + 55}px`;\n if (this.menu.offsetLeft < 0) this.menu.style.left = 0;\n if ((this.menu.offsetLeft + this.menu.offsetWidth) > window.innerWidth) {\n this.menu.style.left = null;\n this.menu.style.right = 0;\n }\n this.menu.style.borderStyle = 'solid';\n } else {\n this.menu.style.borderStyle = 'none';\n }\n }\n\n addTitle(title) {\n const el = document.createElement('div');\n el.className = 'menu-title';\n el.id = this.newID;\n el.innerHTML = title;\n this.menu.appendChild(el);\n el.addEventListener('click', () => {\n this.hidden = !this.hidden;\n const all = document.getElementsByClassName('menu');\n for (const item of all) {\n item.style.display = this.hidden ? 'none' : 'block';\n }\n });\n return el;\n }\n\n addLabel(title) {\n const el = document.createElement('div');\n el.className = 'menu-item menu-label';\n el.id = this.newID;\n el.innerHTML = title;\n this.container.appendChild(el);\n return el;\n }\n\n addBool(title, object, variable, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `
${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = evt.target.checked;\n if (callback) callback(evt.target.checked);\n });\n return el;\n }\n\n async addList(title, items, selected, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n let options = '';\n for (const item of items) {\n const def = item === selected ? 'selected' : '';\n options += ``;\n }\n el.innerHTML = `
${title}`;\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n if (callback) callback(items[evt.target.selectedIndex]);\n });\n return el;\n }\n\n addRange(title, object, variable, min, max, step, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = parseInt(evt.target.value) === parseFloat(evt.target.value) ? parseInt(evt.target.value) : parseFloat(evt.target.value);\n evt.target.setAttribute('value', evt.target.value);\n if (callback) callback(evt.target.value);\n });\n el.input = el.children[0];\n return el;\n }\n\n addHTML(html) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = this.newID;\n if (html) el.innerHTML = html;\n this.container.appendChild(el);\n return el;\n }\n\n addButton(titleOn, titleOff, callback) {\n const el = document.createElement('button');\n el.className = 'menu-item menu-button';\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n el.type = 'button';\n el.id = this.newID;\n el.innerText = titleOn;\n this.container.appendChild(el);\n el.addEventListener('click', () => {\n if (el.innerText === titleOn) el.innerText = titleOff;\n else el.innerText = titleOn;\n if (callback) callback(el.innerText !== titleOn);\n });\n return el;\n }\n\n addValue(title, val, suffix = '') {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = `menu-val-${title}`;\n el.innerText = `${title}: ${val}${suffix}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n updateValue(title, val, suffix = '') {\n const el = document.getElementById(`menu-val-${title}`);\n if (el) el.innerText = `${title}: ${val}${suffix}`;\n else this.addValue(title, val);\n }\n\n addChart(title, id, width = 150, height = 40, color) {\n if (color) theme.chartColor = color;\n const el = document.createElement('div');\n el.className = 'menu-item menu-chart-title';\n el.id = this.newID;\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n async updateChart(id, values) {\n if (!values || (values.length === 0)) return;\n const canvas = document.getElementById(`menu-canvas-${id}`);\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = theme.background;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const width = canvas.width / values.length;\n const max = 1 + Math.max(...values);\n const height = canvas.height / max;\n for (let i = 0; i < values.length; i++) {\n const gradient = ctx.createLinearGradient(0, (max - values[i]) * height, 0, 0);\n gradient.addColorStop(0.1, theme.chartColor);\n gradient.addColorStop(0.4, theme.background);\n ctx.fillStyle = gradient;\n ctx.fillRect(i * width, 0, width - 4, canvas.height);\n ctx.fillStyle = theme.background;\n ctx.font = `${width / 1.5}px \"Segoe UI\"`;\n ctx.fillText(Math.round(values[i]), i * width + 1, canvas.height - 1, width - 1);\n }\n }\n}\n\nexport default Menu;\n", "// @ts-nocheck\n/* eslint-disable max-len */\n\n// based on: https://github.com/munrocket/gl-bench\n\nconst UICSS = `\n #gl-bench { position: absolute; right: 1rem; bottom: 1rem; z-index:1000; -webkit-user-select: none; -moz-user-select: none; user-select: none; }\n #gl-bench div { position: relative; display: block; margin: 4px; padding: 0 7px 0 10px; background: darkslategray; border-radius: 0.2rem; cursor: pointer; opacity: 0.9; }\n #gl-bench svg { height: 60px; margin: 0 0px 0px 4px; }\n #gl-bench text { font-size: 16px; font-family: 'Lato', 'Segoe UI'; dominant-baseline: middle; text-anchor: middle; }\n #gl-bench .gl-mem { font-size: 12px; fill: white; }\n #gl-bench .gl-fps { font-size: 13px; fill: white; }\n #gl-bench line { stroke-width: 5; stroke: white; stroke-linecap: round; }\n #gl-bench polyline { fill: none; stroke: white; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3.5; }\n #gl-bench rect { fill: black; }\n #gl-bench .opacity { stroke: black; }\n `;\n\nconst UISVG = `\n
\n \n 00 FPS\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n `;\n\nclass GLBench {\n /** GLBench constructor\n * @param { WebGLRenderingContext | WebGL2RenderingContext } gl context\n * @param { Object | undefined } settings additional settings\n */\n constructor(gl, settings = {}) {\n this.css = UICSS;\n this.svg = UISVG;\n this.paramLogger = () => {};\n this.chartLogger = () => {};\n this.chartLen = 20;\n this.chartHz = 20;\n\n this.names = [];\n this.cpuAccums = [];\n this.gpuAccums = [];\n this.activeAccums = [];\n this.chart = new Array(this.chartLen);\n this.now = () => ((performance && performance.now) ? performance.now() : Date.now());\n this.updateUI = () => {\n [].forEach.call(this.nodes['gl-gpu-svg'], (node) => node.style.display = this.trackGPU ? 'inline' : 'none');\n };\n\n Object.assign(this, settings);\n this.detected = 0;\n this.finished = [];\n this.isFramebuffer = 0;\n this.frameId = 0;\n\n // 120hz device detection\n let rafId; let n = 0; let\n t0;\n const loop = (t) => {\n if (++n < 20) {\n rafId = requestAnimationFrame(loop);\n } else {\n this.detected = Math.ceil(1e3 * n / (t - t0) / 70);\n cancelAnimationFrame(rafId);\n }\n if (!t0) t0 = t;\n };\n requestAnimationFrame(loop);\n\n // attach gpu profilers\n if (gl) {\n const glFinish = async (t, activeAccums) => Promise.resolve(setTimeout(() => {\n gl.getError();\n const dt = this.now() - t;\n activeAccums.forEach((active, i) => {\n if (active) this.gpuAccums[i] += dt;\n });\n }, 0));\n\n const addProfiler = (fn, self, target) => {\n const t = self.now();\n // eslint-disable-next-line prefer-rest-params\n fn.apply(target, arguments);\n if (self.trackGPU) self.finished.push(glFinish(t, self.activeAccums.slice(0)));\n };\n\n /* ['drawArrays', 'drawElements', 'drawArraysInstanced', 'drawBuffers', 'drawElementsInstanced', 'drawRangeElements'].forEach((fn) => {\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n }\n });\n */\n const fn = 'drawElements';\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n } else {\n // eslint-disable-next-line no-console\n console.log('bench: cannot attach to webgl function');\n }\n\n /*\n gl.getExtension = ((fn, self) => {\n // eslint-disable-next-line prefer-rest-params\n const ext = fn.apply(gl, arguments);\n if (ext) {\n ['drawElementsInstancedANGLE', 'drawBuffersWEBGL'].forEach((fn2) => {\n if (ext[fn2]) {\n ext[fn2] = addProfiler(ext[fn2], self, ext);\n }\n });\n }\n return ext;\n })(gl.getExtension, this);\n */\n }\n\n // init ui and ui loggers\n if (!this.withoutUI) {\n if (!this.dom) this.dom = document.body;\n const elm = document.createElement('div');\n elm.id = 'gl-bench';\n this.dom.appendChild(elm);\n this.dom.insertAdjacentHTML('afterbegin', '');\n this.dom = elm;\n this.dom.addEventListener('click', () => {\n this.trackGPU = !this.trackGPU;\n this.updateUI();\n });\n\n this.paramLogger = ((logger, dom, names) => {\n const classes = ['gl-cpu', 'gl-gpu', 'gl-mem', 'gl-fps', 'gl-gpu-svg', 'gl-chart'];\n const nodes = { ...classes };\n classes.forEach((c) => nodes[c] = dom.getElementsByClassName(c));\n this.nodes = nodes;\n return (i, cpu, gpu, mem, fps, totalTime, frameId) => {\n nodes['gl-cpu'][i].style.strokeDasharray = (cpu * 0.27).toFixed(0) + ' 100';\n nodes['gl-gpu'][i].style.strokeDasharray = (gpu * 0.27).toFixed(0) + ' 100';\n // eslint-disable-next-line no-nested-ternary\n nodes['gl-mem'][i].innerHTML = names[i] ? names[i] : (mem ? 'mem: ' + mem.toFixed(0) + 'mb' : '');\n nodes['gl-fps'][i].innerHTML = 'FPS: ' + fps.toFixed(1);\n logger(names[i], cpu, gpu, mem, fps, totalTime, frameId);\n };\n })(this.paramLogger, this.dom, this.names);\n\n this.chartLogger = ((logger, dom) => {\n const nodes = { 'gl-chart': dom.getElementsByClassName('gl-chart') };\n return (i, chart, circularId) => {\n let points = '';\n const len = chart.length;\n for (let j = 0; j < len; j++) {\n const id = (circularId + j + 1) % len;\n if (chart[id] !== undefined) points = points + ' ' + (55 * j / (len - 1)).toFixed(1) + ',' + (45 - chart[id] * 22 / 60 / this.detected).toFixed(1);\n }\n nodes['gl-chart'][i].setAttribute('points', points);\n logger(this.names[i], chart, circularId);\n };\n })(this.chartLogger, this.dom);\n }\n }\n\n /**\n * Explicit UI add\n * @param { string | undefined } name\n */\n addUI(name) {\n if (this.names.indexOf(name) === -1) {\n this.names.push(name);\n if (this.dom) {\n this.dom.insertAdjacentHTML('beforeend', this.svg);\n this.updateUI();\n }\n this.cpuAccums.push(0);\n this.gpuAccums.push(0);\n this.activeAccums.push(false);\n }\n }\n\n /**\n * Increase frameID\n * @param { number | undefined } now\n */\n nextFrame(now) {\n this.frameId++;\n const t = now || this.now();\n\n // params\n if (this.frameId <= 1) {\n this.paramFrame = this.frameId;\n this.paramTime = t;\n } else {\n const duration = t - this.paramTime;\n if (duration >= 1e3) {\n const frameCount = this.frameId - this.paramFrame;\n const fps = frameCount / duration * 1e3;\n for (let i = 0; i < this.names.length; i++) {\n const cpu = this.cpuAccums[i] / duration * 100;\n const gpu = this.gpuAccums[i] / duration * 100;\n const mem = (performance && performance.memory) ? performance.memory.usedJSHeapSize / (1 << 20) : 0;\n this.paramLogger(i, cpu, gpu, mem, fps, duration, frameCount);\n this.cpuAccums[i] = 0;\n Promise.all(this.finished).then(() => {\n this.gpuAccums[i] = 0;\n this.finished = [];\n });\n }\n this.paramFrame = this.frameId;\n this.paramTime = t;\n }\n }\n\n // chart\n if (!this.detected || !this.chartFrame) {\n this.chartFrame = this.frameId;\n this.chartTime = t;\n this.circularId = 0;\n } else {\n const timespan = t - this.chartTime;\n let hz = this.chartHz * timespan / 1e3;\n while (--hz > 0 && this.detected) {\n const frameCount = this.frameId - this.chartFrame;\n const fps = frameCount / timespan * 1e3;\n this.chart[this.circularId % this.chartLen] = fps;\n for (let i = 0; i < this.names.length; i++) this.chartLogger(i, this.chart, this.circularId);\n this.circularId++;\n this.chartFrame = this.frameId;\n this.chartTime = t;\n }\n }\n }\n\n /**\n * Begin named measurement\n * @param { string | undefined } name\n */\n begin(name) {\n this.updateAccums(name);\n }\n\n /**\n * End named measure\n * @param { string | undefined } name\n */\n end(name) {\n this.updateAccums(name);\n }\n\n updateAccums(name) {\n let nameId = this.names.indexOf(name);\n if (nameId === -1) {\n nameId = this.names.length;\n this.addUI(name);\n }\n\n const t = this.now();\n const dt = t - this.t0;\n for (let i = 0; i < nameId + 1; i++) {\n if (this.activeAccums[i]) this.cpuAccums[i] += dt;\n }\n this.activeAccums[nameId] = !this.activeAccums[nameId];\n this.t0 = t;\n }\n}\n\nexport default GLBench;\n", "import Human from '../dist/human.esm.js';\nimport draw from './draw.js';\nimport Menu from './menu.js';\nimport GLBench from './gl-bench.js';\n\nconst userConfig = {}; // add any user configuration overrides\n\n/*\nconst userConfig = {\n face: { enabled: false, iris: { enabled: false } },\n body: { enabled: false },\n hand: { enabled: false },\n pose: { enabled: true },\n};\n*/\n\nconst human = new Human(userConfig);\n\n// ui options\nconst ui = {\n baseColor: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n baseBackground: 'rgba(50, 50, 50, 1)', // 'grey'\n baseLabel: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n baseFontProto: 'small-caps {size} \"Segoe UI\"',\n baseLineWidth: 12,\n crop: true,\n columns: 2,\n busy: false,\n facing: true,\n useWorker: false,\n worker: 'worker.js',\n samples: ['../assets/sample6.jpg', '../assets/sample1.jpg', '../assets/sample4.jpg', '../assets/sample5.jpg', '../assets/sample3.jpg', '../assets/sample2.jpg'],\n compare: '../assets/sample-me.jpg',\n drawBoxes: true,\n drawPoints: false,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n console: true,\n maxFPSframes: 10,\n modelsPreload: true,\n menuWidth: 0,\n menuHeight: 0,\n camera: {},\n detectFPS: [],\n drawFPS: [],\n buffered: false,\n drawThread: null,\n detectThread: null,\n framesDraw: 0,\n framesDetect: 0,\n bench: false,\n};\n\n// global variables\nconst menu = {};\nlet worker;\nlet bench;\nlet lastDetectedResult = {};\n\n// helper function: translates json to human readable string\nfunction str(...msg) {\n if (!Array.isArray(msg)) return msg;\n let line = '';\n for (const entry of msg) {\n if (typeof entry === 'object') line += JSON.stringify(entry).replace(/{|}|\"|\\[|\\]/g, '').replace(/,/g, ', ');\n else line += entry;\n }\n return line;\n}\n\n// helper function: wrapper around console output\nfunction log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (ui.console) console.log(ts, ...msg);\n}\n\nfunction status(msg) {\n // eslint-disable-next-line no-console\n document.getElementById('status').innerText = msg;\n}\n\nlet original;\nasync function calcSimmilariry(result) {\n document.getElementById('compare-container').style.display = human.config.face.embedding.enabled ? 'block' : 'none';\n if (!human.config.face.embedding.enabled) return;\n if ((result?.face?.length > 0) && (result?.face[0].embedding?.length !== 192)) return;\n if (!original) {\n original = result;\n document.getElementById('compare-canvas').getContext('2d').drawImage(original.canvas, 0, 0, 200, 200);\n }\n const simmilarity = human.simmilarity(original?.face[0]?.embedding, result?.face[0]?.embedding);\n document.getElementById('simmilarity').innerText = `simmilarity: ${Math.trunc(1000 * simmilarity) / 10}%`;\n}\n\n// draws processed results and starts processing of a next frame\nlet lastDraw = performance.now();\nasync function drawResults(input) {\n const result = lastDetectedResult;\n const canvas = document.getElementById('canvas');\n\n // update draw fps data\n ui.drawFPS.push(1000 / (performance.now() - lastDraw));\n if (ui.drawFPS.length > ui.maxFPSframes) ui.drawFPS.shift();\n lastDraw = performance.now();\n\n // enable for continous performance monitoring\n // console.log(result.performance);\n\n // draw fps chart\n await menu.process.updateChart('FPS', ui.detectFPS);\n\n // get updated canvas\n if (ui.buffered || !result.canvas) result.canvas = await human.image(input, userConfig);\n\n // draw image from video\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = ui.baseBackground;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (result.canvas) {\n if (result.canvas.width !== canvas.width) canvas.width = result.canvas.width;\n if (result.canvas.height !== canvas.height) canvas.height = result.canvas.height;\n ctx.drawImage(result.canvas, 0, 0, result.canvas.width, result.canvas.height, 0, 0, result.canvas.width, result.canvas.height);\n } else {\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n }\n\n // draw all results\n await draw.face(result.face, canvas, ui, human.facemesh.triangulation);\n await draw.body(result.body, canvas, ui);\n await draw.hand(result.hand, canvas, ui);\n await draw.gesture(result.gesture, canvas, ui);\n await calcSimmilariry(result);\n\n // update log\n const engine = human.tf.engine();\n const gpu = engine.backendInstance ? `gpu: ${(engine.backendInstance.numBytesInGPU ? engine.backendInstance.numBytesInGPU : 0).toLocaleString()} bytes` : '';\n const memory = `system: ${engine.state.numBytes.toLocaleString()} bytes ${gpu} | tensors: ${engine.state.numTensors.toLocaleString()}`;\n const processing = result.canvas ? `processing: ${result.canvas.width} x ${result.canvas.height}` : '';\n const avgDetect = Math.trunc(10 * ui.detectFPS.reduce((a, b) => a + b, 0) / ui.detectFPS.length) / 10;\n const avgDraw = Math.trunc(10 * ui.drawFPS.reduce((a, b) => a + b, 0) / ui.drawFPS.length) / 10;\n const warning = (ui.detectFPS.length > 5) && (avgDetect < 5) ? 'warning: your performance is low: try switching to higher performance backend, lowering resolution or disabling some models' : '';\n document.getElementById('log').innerHTML = `\n video: ${ui.camera.name} | facing: ${ui.camera.facing} | screen: ${window.innerWidth} x ${window.innerHeight} camera: ${ui.camera.width} x ${ui.camera.height} ${processing}
\n backend: ${human.tf.getBackend()} | ${memory}
\n performance: ${str(result.performance)}ms FPS process:${avgDetect} refresh:${avgDraw}
\n ${warning}
\n `;\n\n ui.framesDraw++;\n ui.lastFrame = performance.now();\n // if buffered, immediate loop but limit frame rate although it's going to run slower as JS is singlethreaded\n if (ui.buffered) {\n ui.drawThread = requestAnimationFrame(() => drawResults(input, canvas));\n } else if (!ui.buffered && ui.drawThread) {\n log('stopping buffered refresh');\n cancelAnimationFrame(ui.drawThread);\n ui.drawThread = null;\n }\n}\n\n// setup webcam\nasync function setupCamera() {\n if (ui.busy) return null;\n ui.busy = true;\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n const output = document.getElementById('log');\n const live = video.srcObject ? ((video.srcObject.getVideoTracks()[0].readyState === 'live') && (video.readyState > 2) && (!video.paused)) : false;\n let msg = '';\n status('setting up camera');\n // setup webcam. note that navigator.mediaDevices requires that page is accessed via https\n if (!navigator.mediaDevices) {\n msg = 'camera access not supported';\n output.innerText += `\\n${msg}`;\n log(msg);\n status(msg);\n ui.busy = false;\n return msg;\n }\n let stream;\n const constraints = {\n audio: false,\n video: { facingMode: ui.facing ? 'user' : 'environment', resizeMode: ui.crop ? 'crop-and-scale' : 'none' },\n };\n if (window.innerWidth > window.innerHeight) constraints.video.width = { ideal: window.innerWidth };\n else constraints.video.height = { ideal: (window.innerHeight - document.getElementById('menubar').offsetHeight) };\n try {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n } catch (err) {\n if (err.name === 'PermissionDeniedError' || err.name === 'NotAllowedError') msg = 'camera permission denied';\n else if (err.name === 'SourceUnavailableError') msg = 'camera not available';\n else msg = `camera error: ${err.message || err}`;\n output.innerText += `\\n${msg}`;\n status(msg);\n log('camera error:', err);\n ui.busy = false;\n return msg;\n }\n if (stream) video.srcObject = stream;\n else {\n ui.busy = false;\n return 'camera stream empty';\n }\n const track = stream.getVideoTracks()[0];\n const settings = track.getSettings();\n // log('camera constraints:', constraints, 'window:', { width: window.innerWidth, height: window.innerHeight }, 'settings:', settings, 'track:', track);\n ui.camera = { name: track.label?.toLowerCase(), width: settings.width, height: settings.height, facing: settings.facingMode === 'user' ? 'front' : 'back' };\n return new Promise((resolve) => {\n video.onloadeddata = async () => {\n video.width = video.videoWidth;\n video.height = video.videoHeight;\n canvas.width = video.width;\n canvas.height = video.height;\n canvas.style.width = canvas.width > canvas.height ? '100vw' : '';\n canvas.style.height = canvas.width > canvas.height ? '' : '100vh';\n ui.menuWidth.input.setAttribute('value', video.width);\n ui.menuHeight.input.setAttribute('value', video.height);\n // silly font resizing for paint-on-canvas since viewport can be zoomed\n const size = Math.trunc(window.devicePixelRatio * (8 + (4 * canvas.width / window.innerWidth)));\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n ui.baseLineHeight = size + 2;\n if (live) video.play();\n // eslint-disable-next-line no-use-before-define\n if (live && !ui.detectThread) runHumanDetect(video, canvas);\n ui.busy = false;\n // do once more because onresize events can be delayed or skipped\n // if (video.width > window.innerWidth) await setupCamera();\n status('');\n resolve();\n };\n });\n}\n\nfunction initPerfMonitor() {\n if (!bench) {\n const gl = null;\n // cosnt gl = human.tf.engine().backend.gpgpu.gl;\n // if (!gl) log('bench cannot get tensorflow webgl context');\n bench = new GLBench(gl, {\n trackGPU: false, // this is really slow\n chartHz: 20,\n chartLen: 20,\n });\n bench.begin();\n }\n}\n\n// wrapper for worker.postmessage that creates worker if one does not exist\nfunction webWorker(input, image, canvas, timestamp) {\n if (!worker) {\n // create new webworker and add event handler only once\n log('creating worker thread');\n worker = new Worker(ui.worker, { type: 'module' });\n // after receiving message from webworker, parse&draw results and send new frame for processing\n worker.addEventListener('message', (msg) => {\n if (msg.data.result.performance && msg.data.result.performance.total) ui.detectFPS.push(1000 / msg.data.result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n lastDetectedResult = msg.data.result;\n ui.framesDetect++;\n if (!ui.drawThread) drawResults(input);\n // eslint-disable-next-line no-use-before-define\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n });\n }\n // pass image data as arraybuffer to worker by reference to avoid copy\n worker.postMessage({ image: image.data.buffer, width: canvas.width, height: canvas.height, userConfig }, [image.data.buffer]);\n}\n\n// main processing function when input is webcam, can use direct invocation or web worker\nfunction runHumanDetect(input, canvas, timestamp) {\n // if live video\n const live = input.srcObject && (input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState > 2) && (!input.paused);\n if (!live && input.srcObject) {\n // stop ui refresh\n if (ui.drawThread) cancelAnimationFrame(ui.drawThread);\n if (ui.detectThread) cancelAnimationFrame(ui.detectThread);\n ui.drawThread = null;\n ui.detectThread = null;\n // if we want to continue and camera not ready, retry in 0.5sec, else just give up\n if (input.paused) log('camera paused');\n else if ((input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState <= 2)) setTimeout(() => runHumanDetect(input, canvas), 500);\n else log(`camera not ready: track state: ${input.srcObject?.getVideoTracks()[0].readyState} stream state: ${input.readyState}`);\n clearTimeout(ui.drawThread);\n ui.drawThread = null;\n log('frame statistics: process:', ui.framesDetect, 'refresh:', ui.framesDraw);\n log('memory', human.tf.engine().memory());\n return;\n }\n status('');\n if (ui.useWorker) {\n // get image data from video as we cannot send html objects to webworker\n const offscreen = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(canvas.width, canvas.height) : document.createElement('canvas');\n offscreen.width = canvas.width;\n offscreen.height = canvas.height;\n const ctx = offscreen.getContext('2d');\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n const data = ctx.getImageData(0, 0, canvas.width, canvas.height);\n // perform detection in worker\n webWorker(input, data, canvas, userConfig, timestamp);\n } else {\n human.detect(input, userConfig).then((result) => {\n if (result.performance && result.performance.total) ui.detectFPS.push(1000 / result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n if (result.error) {\n log(result.error);\n document.getElementById('log').innerText += `\\nHuman error: ${result.error}`;\n } else {\n lastDetectedResult = result;\n if (!ui.drawThread) drawResults(input);\n ui.framesDetect++;\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n }\n });\n }\n}\n\n// main processing function when input is image, can use direct invocation or web worker\nasync function processImage(input) {\n return new Promise((resolve) => {\n const image = new Image();\n image.onload = async () => {\n log('Processing image:', image.src);\n const canvas = document.getElementById('canvas');\n image.width = image.naturalWidth;\n image.height = image.naturalHeight;\n canvas.width = human.config.filter.width && human.config.filter.width > 0 ? human.config.filter.width : image.naturalWidth;\n canvas.height = human.config.filter.height && human.config.filter.height > 0 ? human.config.filter.height : image.naturalHeight;\n const result = await human.detect(image, userConfig);\n lastDetectedResult = result;\n await drawResults(image);\n const thumb = document.createElement('canvas');\n thumb.className = 'thumbnail';\n thumb.width = window.innerWidth / (ui.columns + 0.1);\n thumb.height = canvas.height / (window.innerWidth / thumb.width);\n const ctx = thumb.getContext('2d');\n ctx.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, thumb.width, thumb.height);\n document.getElementById('samples-container').appendChild(thumb);\n image.src = '';\n resolve(true);\n };\n image.src = input;\n });\n}\n\n// just initialize everything and call main function\nasync function detectVideo() {\n userConfig.videoOptimized = true;\n document.getElementById('samples-container').style.display = 'none';\n document.getElementById('canvas').style.display = 'block';\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n if ((video.srcObject !== null) && !video.paused) {\n document.getElementById('play').style.display = 'block';\n document.getElementById('btnStart').className = 'button button-start';\n document.getElementById('btnStart').innerHTML = 'start
video';\n status('paused');\n video.pause();\n } else {\n const cameraError = await setupCamera();\n if (!cameraError) {\n document.getElementById('play').style.display = 'none';\n for (const m of Object.values(menu)) m.hide();\n status('');\n document.getElementById('btnStart').className = 'button button-stop';\n document.getElementById('btnStart').innerHTML = 'pause
video';\n await video.play();\n if (!ui.detectThread) runHumanDetect(video, canvas);\n } else {\n status(cameraError);\n }\n }\n}\n\n// just initialize everything and call main function\nasync function detectSampleImages() {\n document.getElementById('play').style.display = 'none';\n userConfig.videoOptimized = false;\n const size = Math.trunc(window.devicePixelRatio * (8 + (4 * ui.columns)));\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n ui.baseLineHeight = size + 2;\n document.getElementById('canvas').style.display = 'none';\n document.getElementById('samples-container').style.display = 'block';\n log('Running detection of sample images');\n status('processing images');\n document.getElementById('samples-container').innerHTML = '';\n for (const image of ui.samples) await processImage(image);\n status('');\n}\n\nfunction setupMenu() {\n let x = [];\n if (window.innerWidth > 800) {\n // initial position of menu items, later it's calculated based on mouse coordinates\n x = [`${document.getElementById('btnDisplay').offsetLeft - 50}px`, `${document.getElementById('btnImage').offsetLeft - 50}px`, `${document.getElementById('btnProcess').offsetLeft - 50}px`, `${document.getElementById('btnModel').offsetLeft - 50}px`];\n } else {\n // absolute minimum spacing for menus\n x = ['0rem', '11rem', '21.1rem', '33rem'];\n }\n\n menu.display = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[0] });\n menu.display.addBool('perf monitor', ui, 'bench', (val) => ui.bench = val);\n menu.display.addBool('buffered output', ui, 'buffered', (val) => ui.buffered = val);\n menu.display.addBool('crop & scale', ui, 'crop', () => setupCamera());\n menu.display.addBool('camera facing', ui, 'facing', () => setupCamera());\n menu.display.addHTML('
');\n menu.display.addBool('use 3D depth', ui, 'useDepth');\n menu.display.addBool('draw boxes', ui, 'drawBoxes');\n menu.display.addBool('draw polygons', ui, 'drawPolygons');\n menu.display.addBool('Fill Polygons', ui, 'fillPolygons');\n menu.display.addBool('draw points', ui, 'drawPoints');\n\n menu.image = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[1] });\n menu.image.addBool('enabled', human.config.filter, 'enabled');\n ui.menuWidth = menu.image.addRange('image width', human.config.filter, 'width', 0, 3840, 10, (val) => human.config.filter.width = parseInt(val));\n ui.menuHeight = menu.image.addRange('image height', human.config.filter, 'height', 0, 2160, 10, (val) => human.config.filter.height = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addRange('brightness', human.config.filter, 'brightness', -1.0, 1.0, 0.05, (val) => human.config.filter.brightness = parseFloat(val));\n menu.image.addRange('contrast', human.config.filter, 'contrast', -1.0, 1.0, 0.05, (val) => human.config.filter.contrast = parseFloat(val));\n menu.image.addRange('sharpness', human.config.filter, 'sharpness', 0, 1.0, 0.05, (val) => human.config.filter.sharpness = parseFloat(val));\n menu.image.addRange('blur', human.config.filter, 'blur', 0, 20, 1, (val) => human.config.filter.blur = parseInt(val));\n menu.image.addRange('saturation', human.config.filter, 'saturation', -1.0, 1.0, 0.05, (val) => human.config.filter.saturation = parseFloat(val));\n menu.image.addRange('hue', human.config.filter, 'hue', 0, 360, 5, (val) => human.config.filter.hue = parseInt(val));\n menu.image.addRange('pixelate', human.config.filter, 'pixelate', 0, 32, 1, (val) => human.config.filter.pixelate = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addBool('negative', human.config.filter, 'negative');\n menu.image.addBool('sepia', human.config.filter, 'sepia');\n menu.image.addBool('vintage', human.config.filter, 'vintage');\n menu.image.addBool('kodachrome', human.config.filter, 'kodachrome');\n menu.image.addBool('technicolor', human.config.filter, 'technicolor');\n menu.image.addBool('polaroid', human.config.filter, 'polaroid');\n\n menu.process = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[2] });\n menu.process.addList('backend', ['cpu', 'webgl', 'wasm', 'humangl'], human.config.backend, (val) => human.config.backend = val);\n menu.process.addBool('async operations', human.config, 'async', (val) => human.config.async = val);\n menu.process.addBool('enable profiler', human.config, 'profile', (val) => human.config.profile = val);\n menu.process.addBool('memory shield', human.config, 'deallocate', (val) => human.config.deallocate = val);\n menu.process.addBool('use web worker', ui, 'useWorker');\n menu.process.addHTML('
');\n menu.process.addLabel('model parameters');\n menu.process.addRange('max objects', human.config.face.detector, 'maxFaces', 1, 50, 1, (val) => {\n human.config.face.detector.maxFaces = parseInt(val);\n human.config.body.maxDetections = parseInt(val);\n human.config.hand.maxHands = parseInt(val);\n });\n menu.process.addRange('skip frames', human.config.face.detector, 'skipFrames', 0, 50, 1, (val) => {\n human.config.face.detector.skipFrames = parseInt(val);\n human.config.face.emotion.skipFrames = parseInt(val);\n human.config.face.age.skipFrames = parseInt(val);\n human.config.hand.skipFrames = parseInt(val);\n });\n menu.process.addRange('min confidence', human.config.face.detector, 'minConfidence', 0.0, 1.0, 0.05, (val) => {\n human.config.face.detector.minConfidence = parseFloat(val);\n human.config.face.gender.minConfidence = parseFloat(val);\n human.config.face.emotion.minConfidence = parseFloat(val);\n human.config.hand.minConfidence = parseFloat(val);\n });\n menu.process.addRange('score threshold', human.config.face.detector, 'scoreThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.scoreThreshold = parseFloat(val);\n human.config.hand.scoreThreshold = parseFloat(val);\n human.config.body.scoreThreshold = parseFloat(val);\n });\n menu.process.addRange('overlap', human.config.face.detector, 'iouThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.iouThreshold = parseFloat(val);\n human.config.hand.iouThreshold = parseFloat(val);\n });\n menu.process.addBool('detection rotation', human.config.face.detector, 'rotation', (val) => {\n human.config.face.detector.rotation = val;\n human.config.hand.rotation = val;\n });\n menu.process.addHTML('
');\n menu.process.addButton('process sample images', 'process images', () => detectSampleImages());\n menu.process.addHTML('
');\n menu.process.addChart('FPS', 'FPS');\n\n menu.models = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[3] });\n menu.models.addBool('face detect', human.config.face, 'enabled');\n menu.models.addBool('face mesh', human.config.face.mesh, 'enabled');\n menu.models.addBool('face iris', human.config.face.iris, 'enabled');\n menu.models.addBool('face age', human.config.face.age, 'enabled');\n menu.models.addBool('face gender', human.config.face.gender, 'enabled');\n menu.models.addBool('face emotion', human.config.face.emotion, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('body pose', human.config.body, 'enabled');\n menu.models.addBool('hand pose', human.config.hand, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('gestures', human.config.gesture, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('face compare', human.config.face.embedding, 'enabled', (val) => {\n original = null;\n human.config.face.embedding.enabled = val;\n });\n\n document.getElementById('btnDisplay').addEventListener('click', (evt) => menu.display.toggle(evt));\n document.getElementById('btnImage').addEventListener('click', (evt) => menu.image.toggle(evt));\n document.getElementById('btnProcess').addEventListener('click', (evt) => menu.process.toggle(evt));\n document.getElementById('btnModel').addEventListener('click', (evt) => menu.models.toggle(evt));\n document.getElementById('btnStart').addEventListener('click', () => detectVideo());\n document.getElementById('play').addEventListener('click', () => detectVideo());\n}\n\nasync function main() {\n log('demo starting ...');\n setupMenu();\n document.getElementById('log').innerText = `Human: version ${human.version}`;\n if (ui.modelsPreload && !ui.useWorker) {\n status('loading');\n await human.load(userConfig); // this is not required, just pre-loads all models\n }\n if (!ui.useWorker) {\n status('initializing');\n await human.warmup(userConfig); // this is not required, just pre-warms all models for faster initial inference\n }\n status('human: ready');\n document.getElementById('loader').style.display = 'none';\n document.getElementById('play').style.display = 'block';\n log('ready');\n}\n\nwindow.onload = main;\nwindow.onresize = setupCamera;\n"], - "mappings": "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B,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAClJ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,G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AAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,CACC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EACnC,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EA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EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,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,GAAM,oBAAqB,QAAQ,QAAS,UAAU,UAChD,SAAW,OAAO,EAAG,oBACvB,WAAa,aAAa,QAAS,OAAO,EAAG,UAC3C,SAAW,SAAS,KAAO,WAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,SAAU,EAAE,EAC9B,WAAa,WAAW,WAAY,EAAI,GAE1C,WAAa,WAAW,WAAY,MAAK,SAAS,MAAO,SACzD,GAAM,WAAY,UAAU,UAC5B,MAAO,OAAM,WAAY,SAAU,WClC9B,GAAM,qBAAkC,CAC7C,WAAY,UACZ,SAAW,IACF,EAAC,EAAG,IAAM,UAAU,OC+FzB,YAA4B,CAChC,cACA,eACA,gBACA,cACA,eACA,iBACA,iBACA,eACA,gBACA,gBACA,eACA,gBACA,oBACA,kBACA,sBACA,yBACA,sBACA,eACA,eACA,sBACA,qBACA,iBACA,8BACA,iBACA,iBACA,cACA,eACA,iBACA,gCACA,qBACA,cACA,cACA,cACA,cACA,qBACA,gBACA,mBACA,gBACA,yBACA,iBACA,uBACA,mBACA,mBACA,gBACA,gBACA,oBACA,gBACA,cACA,qBACA,cACA,cACA,cACA,kBACA,oBACA,kBACA,eACA,cACA,kBACA,oBACA,cACA,mBACA,cACA,iBACA,mBACA,eACA,gBACA,gBACA,cACA,gBACA,qBACA,gBACA,eACA,kBACA,yBACA,gCACA,kBACA,gBACA,gBACA,iBACA,eACA,kBACA,eACA,cACA,eACA,gBACA,kBACA,mBACA,yBACA,yBACA,iBACA,iBACA,eACA,4BACA,iBACA,eACA,cACA,cACA,cACA,eACA,eACA,oBACA,iBACA,6BACA,qBAGF,OAAW,kBAAkB,aAC3B,iBAAiB,gBCxMnB,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCFb,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCCf,OAAO,UAAU,UAAY,SAChB,GACX,MAAA,MAAK,kBACE,UAAU,KAAM,ICRzB,OAAO,UAAU,IAAM,SAA2B,GAChD,MAAA,MAAK,kBACE,K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AAI,KAAK,eACT,cAAc,KAAK,WACnB,cAAc,KAAK,MACnB,cAAc,KAAK,YACnB,cAAc,KAAK,MACnB,cAAc,KAAK,eAGrB,GAAM,QAAS,KAAK,CAAC,OAAQ,IAAK,QAAA,UAAS,MAAO,CAAC,KAAM,KAEzD,MAAA,eAAc,QAAQ,GAAK,UAAQ,8BAA8B,IAE1D,OAGF,GAAM,0BAAyC,CACpD,WAAY,mBACZ,YAAa,MACb,WAAY,qBC2FR,cAAgC,CACpC,mBACA,UACA,WACA,YACA,UACA,WACA,UACA,UACA,aACA,aACA,WACA,YACA,WACA,YACA,YACA,cACA,gBACA,qBACA,mBACA,kBACA,gBACA,qBACA,eACA,WACA,WACA,WACA,cACA,iBACA,aACA,2BACA,0BACA,aACA,6BACA,4BACA,aACA,UACA,WACA,oBACA,aACA,oBACA,mBACA,4BACA,0CACA,yCACA,WACA,iBACA,8BACA,+BACA,cACA,UACA,eACA,YACA,UACA,UACA,iBACA,YACA,UACA,WACA,oBACA,YACA,eACA,kBACA,2BACA,eACA,eACA,cACA,mBACA,eACA,WACA,WACA,eACA,YACA,YACA,gBACA,WACA,gBACA,eACA,UACA,YACA,iBACA,iBACA,gBACA,UACA,cACA,cACA,cACA,gBACA,qBACA,mBACA,wBACA,UACA,WACA,UACA,cACA,gBACA,UACA,kBACA,eACA,UACA,0BACA,0BACA,0BACA,eACA,aACA,eACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,iBACA,WACA,YACA,cACA,qBACA,0BACA,4BACA,iCACA,cACA,uBACA,YACA,YACA,gBACA,aACA,WACA,cACA,WACA,UACA,WACA,YACA,cACA,eACA,qBACA,oBACA,aACA,WACA,aACA,wBACA,WACA,mBACA,UACA,UACA,UACA,WACA,WACA,WACA,gBACA,aACA,aACA,yBACA,iBAGF,OAAW,gBAAgB,eACzB,eAAe,cE7UjB,GAAA,oBAAA,GAAA,UAAA,mBAAA,CAAA,iBAAA,IAAA,kBAAA,wBAAA,IAAA,wBAAA,8BAAA,IAAA,8BAAA,mCAAA,I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oBACA,mBACA,mBACA,iBACA,sBACA,gBACA,YACA,YACA,kBACA,kBACA,eACA,cACA,4BACA,2BACA,cACA,8BACA,0BACA,cACA,WACA,YACA,qBACA,cACA,qBACA,oBACA,2CACA,0CACA,6BACA,YACA,iBACA,WACA,eACA,aACA,WACA,WACA,kBACA,aACA,WACA,YACA,qBACA,aACA,gBACA,iBACA,mBACA,4BACA,gBACA,gBACA,eACA,oBACA,gBACA,YACA,YACA,gBACA,aACA,aACA,iBACA,YACA,iBACA,gBACA,aACA,WACA,kBACA,kBACA,iBACA,WACA,iBACA,eACA,oBACA,mBACA,yBACA,eACA,YACA,WACA,eACA,iBACA,WACA,mBACA,gBACA,WACA,2BACA,2BACA,2BACA,gBACA,cACA,gBACA,YACA,aACA,WACA,aACA,YACA,aACA,YACA,eACA,kBACA,aACA,YACA,eACA,sBACA,0BACA,6BACA,iCACA,eACA,wBACA,aACA,aACA,iBACA,cACA,YACA,eACA,YACA,WACA,YACA,aACA,eACA,gBACA,sBACA,qBACA,cACA,YACA,cACA,yBACA,YACA,oBACA,WACA,WACA,WACA,YACA,YACA,YACA,iBACA,cACA,cACA,0BACA,kBAGF,OAAW,gBAAgB,gBACzB,eAAe,cEtTjB,GAAY,UAAZ,AAAA,UAAY,WACV,UAAA,UAAA,QAAA,GAAA,UACA,UAAA,UAAA,MAAA,GAAA,QACA,UAAA,UAAA,KAAA,GAAA,OACA,UAAA,UAAA,OAAA,GAAA,SACA,UAAA,UAAA,UAAA,GAAA,cALU,UAAA,UAAQ,KASpB,GAAY,mBAAZ,AAAA,UAAY,oBACV,mBAAA,mBAAA,OAAA,GAAA,SACA,mBAAA,mBAAA,KAAA,GAAA,OACA,mBAAA,mBAAA,MAAA,GAAA,QACA,mBAAA,mBAAA,MAAA,GAAA,QACA,mBAAA,mBAAA,UAAA,GAAA,cALU,mBAAA,mBAAiB,KCJ7B,GAAI,iBAOJ,eAAe,WACb,gBAAkB,UAAQ,KAAK,MAAM,aAAc,KAAiB,CAClE,SACA,QACA,SACA,SACA,QACA,SACA,SACA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", + "sourcesContent": ["import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var _scriptDir=undefined;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":169,\"maximum\":169+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13056;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":151,\"maximum\":151+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport { version as tfjs } from '@tensorflow/tfjs/package.json';\nimport { version as versionCore } from '@tensorflow/tfjs-core/package.json';\nimport { version as versionData } from '@tensorflow/tfjs-data/package.json';\nimport { version as versionLayers } from '@tensorflow/tfjs-layers/package.json';\nimport { version as versionConverter } from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs,\n 'tfjs-core': versionCore,\n 'tfjs-data': versionData,\n 'tfjs-layers': versionLayers,\n 'tfjs-converter': versionConverter,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './blazeface/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './posenet/posenet.js';\nimport * as blazepose from './blazepose/blazepose.js';\nimport * as handpose from './handpose/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.blazepose || (this.config.pose.enabled ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.pose.enabled && !this.models.blazepose) this.models.blazepose = await blazepose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let blazeposeRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run posenet\n this.analyze('Start Pose:');\n if (this.config.async) {\n blazeposeRes = this.config.pose.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.perf.pose) delete this.perf.pose;\n } else {\n this.state = 'run:pose';\n timeStamp = now();\n blazeposeRes = this.config.pose.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.perf.pose = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Pose:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, blazeposeRes, handRes] = await Promise.all([faceRes, poseRes, blazeposeRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, pose: blazeposeRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmupBitmap() {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, config);\n bitmap.close();\n }\n return res;\n }\n\n async warmupCanvas() {\n return new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n const img = new Image(size, size);\n img.onload = () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = size;\n canvas.height = size;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const data = ctx.getImageData(0, 0, size, size);\n this.detect(data, config).then((res) => resolve(res));\n };\n if (src) img.src = src;\n else resolve(null);\n });\n }\n\n async warmup(userConfig) {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.warmupBitmap();\n else res = await this.warmupCanvas();\n this.config.videoOptimized = video;\n const t1 = now();\n log('Warmup', this.config.warmup, (t1 - t0), res);\n return res;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n// import * as profile from '../profile.js';\n\nconst models = {};\n\nexport async function load(config) {\n if (!models.blazepose) {\n models.blazepose = await tf.loadGraphModel(config.pose.modelPath);\n log(`load model: ${config.pose.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.blazepose;\n}\n\nexport async function predict(image, config) {\n if (!models.blazepose) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.pose.inputSize, config.pose.inputSize], false);\n const enhance = tf.div(resize, 127.5).sub(1);\n tf.dispose(resize);\n const logits = await models.blazepose.predict(enhance);\n //\n tf.dispose(enhance);\n logits.map((logit) => logit.dispose());\n resolve(logits);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n pose: { // TBD: not currently in use\n enabled: false,\n scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n modelPath: '../models/blazepose.json',\n inputSize: 256, // fixed value\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA\nAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu\nbmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob\nIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgo\nKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgBAAEAAwEhAAIRAQMRAf/E\nAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE\nEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZH\nSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1\ntre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEB\nAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET\nIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla\nY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG\nx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+qaKACigApGOKAML\nXp8xlF5A7V4X8RtYs7PzfNImnx8sa8Kp9z3q2tEgp6angWs62ZZ5CTGoJ6DArGNz5p+UrID6EUrF\nPUlW1EuN0XNW7PQ2L5j3JnoKXN0KijqNP0eYoqXBdgPuuo+ZPeupisWn2Jd4+0r924XgsQOCff3/\nAJ1FzRKxDqGii6m3siiQ8F1XGfXI6YNWLfRbiRQMkcZI9fpTDluT2/h6Qy8gDPbtmtG38JeY480Z\n5zSLUTZg8M28YwYxjAArXtdPt402qgHbpSaLWhma3o0Uqk7Nx9DWLaaVblgPs6qRyds2M/gRSQp9\nzZOni2iWS2hlQ+kjYz9OMGrdjq89vIPPVhj+8M/lQyDq9P1WOYBlMZz1AOD+VdDaTiReOKulK0jO\ntHmi0WDTlr0TyxRVhT8tJjIX+9SUxHXUV553BRQAVBcPhSBTSuxPY86+IGti0s5I7dsORy9fM3i6\n8e8mfDO5P90ZrWWiJicNPpZZtxV/xrW0jQt4DOv6Vk2dEEdTY6BHuB25rpbPSo0QARjP0qTRI17W\nwA/hFaMWmoQMgflQXYsDS142rU9tpqqenfNA7GgtihxkdKuRW6qMY/GkDZY8sY4Ap4hXbyB+VArk\nEtuH4wPyrk/EGkOm+a3jw3suRQLc5i38SX9hJ9nnY+XnBUdPyNdFY6pa3KkkAE9l6f8AfJ/pSJT6\nGhDmI+Zb4ZRycdv6ium0nUhKFydrelTsNnS2829RnrVgV6NKXNG55lWPLIM81Op+WrZkRMfmNNzT\nA7GivPO4KKAEY4XNYWt3vkwPg4OK0giJdjw/xrqhm87Zs8tc7pX5A+leSajf6aHYJ50kn4AZpTep\nrBWRm2Vobm4BXfyehPFdnpmnBFUY5rI2SN63tlToK0YI+KZpFF+3QdavwoKTLtoW0Toaswpk5pCb\nLCxipAhoIuP2dKevHXoaYDylRyxhlwRQI4nxVoCXWZI1GfpXGtbSWjYPGP73+NIGupt6TqMsLruZ\nih4xnP5V09mQ+JLd8gn0xSYJnVaVdkook69K34zuUGunDS3Rx4qOzHVIp4rrOMY3NJQI7GivPO8K\nKAILt9kZrz3xlebYiu8KCCWb0XvW0NFch6ysfO3jLVjfXLIn+pQkKorl7WxNxIPl71g2dUUdpo+l\npBGvHPet23iC8ihFosrxirkHQUFo0IF4FXI1O726CpKLacCrMJoJLYHAPpTwucHpSRJJ5e4AZI9x\nUqpxzVpCuOC8cUpQUMRnXttuB4rjNdsYyeVwfXpmpGmcvcQyafMCFJjPY10eg34BUg4DcZP8jUO4\nHaRq3lLNF+IHet7R7jz7c56rwa2wz9+xhiVeFy/T1PFegeaNPWigDsc0ZrzzvDNIaAM7VpNqdegr\nxL4l6kywyRhseZ19lrdfAZL4jxYg3Fw20d63tJsdrDI5rm3Z3R0R0Mce1eKnQYAplIkWrMJ45oZS\nNO3PHbNXIyfpSGWowSOasxLUiZdjFSqtNEMkUemKlAGKsRJjAppFAiORMjmsTVrNZEO4cfSoZSOD\n1eJ7WXBUzQZ+7nkfSo7e2Ei+ZaMzxntjBX2NSU1Y6/wxqojiEFzkA8KTXYaUoWRyv3W5rSjpNHPX\n+BmpSg8V6J5gUUAdhRXnneFFAGHrTfu5PpXzj8S70/aZtxzztXFbv4DKHxHI+H4GZiz9zxXXW8G3\nGBXMjvLRXAx0oPGPSmMVeOnWrMTYpFI0bcg1fh54xmgovRcD3qxETSIZcRvzp+/BpEkqsBUqsM9K\nq4Em4Gkxk0yRGXrVW6i8yFhkg+tJjRxGsWrxllkUMh9eK5uMz6bcebbnfG33kPcVkay2OntPKuo0\nnhXI67c8qa7Lw3c+adjcEDGK1paSRhVV4s6A0or0jyRRQ1AHX0V553hRQBz+vNtt5z3xXzX8Qbdm\nuic5YnOMdK3l8JnTXvlbwpYl+WySOgrp5YfLOOB9O1c62O7qQkc+9RsKChFPWp4DluOlSykaNruH\nArUgHShFNF2NT1qxGO3NBmyxGcE1N2560CFzjrUysO9JAPDDjFOVuKoQuSRTWouBkazbCa3cd8cV\nwF7IISQccHBzUSWpV9C3o1x5b5GAjdQD1rs9DjC3kckbEhqKfxIzn8LOupRXqnkPccBSkUAzraK8\n87wooA5rxMSI3HqK8B8bQl9Q8sffY5b/AAraXwkUviNrw9pH2W1ViMMRTdRjw4HpWNtDti9TPc4P\nFQs2M5qdyyMHLcfjV63HTAoBGtap0wK0YxigpsuRDtVhVYd6GQydVwwIqdRnqKCR23I5pCMUW6gD\nYNKuetAEise9KTxQBWuFyhrznxNZkXjFeN3I+tTIZg2OqmzmxNF0PO3vXp/g2+hukVl4zyPanTXv\nJmVR+60dpThXpnlPceopWFAbnV0V553hSGgRynjC5FujOey14Ssp1HxNmTnc+a3kvcIpv37HoEYQ\nQmMdVHSsnVbYJF5jVk0dsNzlruVIsl2wKxbjWrVHILjg1CRbZJb+ILHPzyhfStODWLQgFJFYd+el\nUJM27HUIXxhga1Y5lLVLKLkMnoauxnPPrSEx7ShF+Y/n2qrc6xBbhizDAqkK1zJuvG9nbg8ZA681\nly/Ei052RO3uKAsZlx8QGd8xxvt9Aa1NH8dK7AXMcip64zigdkdrZX8F7EJLdwwNXMkrz1qRMRly\nCK4TxmpidWI49felPYSOMmi80NIoOV6qRzXYeA5SskYPfirpfEjGr8LPWVHyD6U4CvQPL3ZItOYc\nUDOoNFeed4Uhpks4H4iE/Z5MeleMeGULeLgjds10S+BGdL+Jc9OSBU2Huc5Nc74yvUtrcDBrJnZF\n63PJdXvLy/lKWw46bvQVz82jXhkLO5Y+9ZlsYthcRnbIjY9R3q3awTRkEM3WmJI6C0ea3dGRsr1x\nXY6TqW9FLHnjrUs0izpLK5DDjofSta3ckH09KRUkZuuTvFGdvPauE1Y3U6Mqbssf/rUxHPTaJPK2\nZmJPbBqzY6DCZh5xJC9s9aBJHU6dpemJjfEmfetJtI0+VPkUr/unFOxdiextHs33W07YHQHk11mk\nXb3KbZ1xIvcd6LEyWho4Nct41sTPYb16ipexCPPZN+wYGCvH1rrPAEJmvkPoc1VL4kZVvgZ6yFwK\ncBXoHkkqinFaVyzo80GuE7WJRQSziPiGdthK5HQV4x4J/wBI8WPIewNdEvgRNL42emO/yj1UHNef\neNpRczbC+I17DvWT2OqJxc0sMK4TCisy41q0hfEkqj8aixdwTXNOlwvmqD9anS9tXH7uVG+hosO4\n/wC0oOhrR0+6G4YNIEzsNEuCxAPNdjZruA4xxUmjINSjURksOlcbqFykbnjFA1sYGoassaknCqO5\nrl7rxhGm7yBnBxuJq0rkSlYpw+NLlsfd5P8AerVsvHEqSBHwPVgcgVpyMyVXU3rXxcHYETAk+hru\n/DWti6ZSTyOKzZqndHaxvvUGq2rQ+dYyqR24qWI8dvbr7LqDxyDAzXpvw6FvIxePGSM06Xxoyr/A\nzviKFHNegeX1J41zUhXioGbuaSuM6wpCaBHG/EcA6HN/exxXjXw2jL67cv8A3Qa6H8CFR+NnoWpO\nI4XI44rxLxrqjQzSEsQM1gdSPM9U1uR1YbmWIdXHf2rmpIb67YS28UrRlsLI3c/jW0VZGUpO5pW1\njfLNOjahawzwReYI5cjzMkDavHJ5/SrVv9uhtPtVxCPLBwzxnlT9KGghLU3tKvvPjHzbl7EGuisJ\nGRxWLOg7nRXJEbDjmvSNK+aFSfSoZr0KutRkphc4NcRrdkVjL9aVio7Hk3iqS8ubhrWzUlsZY9kG\ncZNc5D4aee5MclzJIFTzHAO0MfatqSOWu7bFS1srDUZEis0vIZoUxPvfcC+4/dx2xjr712XiTwXb\nWmlQ6hol3cRhoFd4rlg3zY5wR0GelavQwjq7GD4etdVvSnk2wAB+9v8A8mvcfA2kXiRo0/UdcDis\nZnTTulqeoWqbUAJqWUb42X1FZlnjfjSwlGrr5S/eNdD4RkvLAAQ4yRyaUZcruVKl7TQ9I0G+mnzH\nckFwM8VuIK7ac3KF2eXiKapz5UWYxipNtMyNejNch0jSar3cjR27uoyQCRVRWom9DxTx54gu5fMi\nlbKdMVjfCZPNlv5v9rFbVHpYqjGzbOn8SzFI9o715L4u0r7arYzk+lYdTqSujy7U/C0u4vHk+WwO\nxuh9q3J9dgvbdVukMV1EwbDDgn04rZMwlHoZ+orZ6hfQ3RWVnQYCgZAq+8U0ln5NtBsV2yxYcfgK\nJtW0CnB31LlroVwJ1nQLGDjeP7w+lb0dsFxjrWB0tHS6NuWPJ6A16ToUm63T3Gallr4S7cxiTjrX\nPaxaF7dlVeSMUhxZ5jd+H7qCa4eF3DSE5x3zXN3Wk6jbyeaiFWUY6ZyPStYS5SalPmVipFbX0E4c\nW0alvmPHJrag0rVvEE6LdljGpG2NRtQD+tW5XMI0uU9M8NeFo9PiQhecDIIrtrOMIoG3H4VlJm9t\nC6CB06VPGM1IHLeItGS6uw+ORT7e3jsbQvj7gzUNam0JaWE+HN7NqOqX80n3FO1RXo8YzXdS+BHk\n4z+KyzGPapcU2YIv7qQtiuaxvcaWqG4O6FwfSrS1JbPnrxoxkv7qIfejcitj4V2f2exumI+8+aKn\nxHTT+G5d8Txlm4rjLxMsQwzWT3OiK0Mm6sEkVsAcjFc1d+FEmlGwEDPQVopaEuOpr6f4ZWNAu3tW\nvHpAj5ZQcUFIWaDjGMVUMQ3cVDBmvbhY7QAV2nh+T/R1yeKhlrY31+b61FcQK6nIoJMi401WblRi\nqr6PCw5UYq9y+YgOgWzNkRrx3xWjp+nx2v3FQcelAbmko9anQ4GBUNisPHWr1qMrQhS2K11HvmYV\nhamcxSRZ5xRIqluS/DKAQQXZxyXrvo2FdlL4EeZjH+/ZbjNSZpswLNBrE1Gt7VE4ODVIlnh/j61F\nj4lmeTGyUbq6LwdEqWbeX0YbhSqfEddP4Bddj4JIrhL5d8h7VjI6oLQqKNzelWre3yc4/ClFjaL6\nwqBxxUUxwCKu5BmXRA6c+9ZjP83FSBoQuPs4BrsNBlUW659KmRrDY6G1lyQtW3Hy0lqQ1qVJnAbm\noy3b9KYJCqRj3o4zRctIlhjLHmpSuOBRbQOpLGpPFaES7UqkZzKN1KsEc87/AHUUmvPLTVGv72aQ\nk7WJwKmRrQ3ud74Ltilgz4++2a6iNDXdS0gjyMU71my7GpqTbxSbMki3SViajTTHqkSeR/GeyZmg\nnQHkEE1S+F+oPPavBL96I4/Cia1udVF+4dVrkW+Fq8+v4tjMDWUkdVJ6WM0cNV+F+MVmjUcZgqnP\n1qpNNnkcVRLiZtxIS1UzzIF7mghlxUZpVQdq6nTVdAoAOKzkbQWhvwM6gMM1twOJYx3NOJE11Kt1\nH1/pVVlwBkk+9NocXoOQ45FPj+fkUJFF2NSB700v/hTEty5ZpkjvVyUgcCq6GM9zC14/8Se6GcZQ\n1574Xs5WkI2HBPHFQ1dm1KSSZ7Rotn9l0+KPHIHNacae1dy0Vjxaj5ptlhVp+2s2CJ9ppCKzuWNx\nzSFc1SYrHNeNdIGpaYw25ZeRXmvheyk0jVpEdcLJ0q3ZxNKTa0O3vQHg/DNcHrsJDmsmjspnNzNt\nfFIJ24GazOhC+azDmgZIOOKBsp3J2qSaZodubq58yQ4QAnmhGT3NO18pb7BORmu205LfYpyKVkWp\nOxr5gKYWoIZWgfGfloFq1qTPLubnGO1RPtxg4P0oBAkY/hBz6VNDDkZ6AU0W2WSdqkdKr9ZOaGSj\nVtcLHmnOcgmmYvcz7mBLy3MbdD1q9ouiRK6bUAVeelOC1InPlidSsWMDFOCEdq3uefykqrinYqGy\nrFvApMVka2DAowKAsMkRXQqwyDXn/iWyitNQ3qPl6itIvRoF8RXinW4tQ6HI6GuW8SIVBPalc6qe\n5x9x97r3qruwTjrWZ0ksZ9TUmcDNAmZ9/wAoao63rR0+w22MLPtAzt6mghmfofiB76LdJBJBIp5D\nd/oa7bSdWLIPnpDi9TM8TeKdas51XTbIyxd3J/pXS+E/EFxqNoFu7do5OmD60maHWrnZyDRkn/69\nMlEyOR0xntVoNx+FUgYjPxg4FLCuWDZyKQr2RoRnP0qO+nEFpJITgAUzLqZnhu6+0rknOTXpOmwJ\nFbrt5yMmnHYyr6Oxb2ijaKLnPYMClwKQWK3n0hn+lachHOJ9pNNN0apQFzsY10a4v4hXQh0xpieQ\nMA1XLZNjhK80cT8OdV+3Wl3A7ZZJCw+hrR1qLcjZ/CsbnfHRnFXseHJArOYYbrUs1uPhYbuatqFP\nByfSkMq3UIINYkto+87Tx6GkSxfsDbflGD7CtTw/pk4nzITtPIFMFudsukh4Rxz71paTpKwP5jcn\n0qTRy0NORMDgVCqewoJTJgAoxjntTiTu7fWmFxAcnn1q3EPl+X8KZMi4gKqB1Peob/Tv7Us5bfeU\nyOoq4R5nYxqT5I8xieH9J1DTbvyJELRg8ODwa9Ms5mSFV9BWiptbnNVrKdmif7Q1KLg96XIZc5Is\npNL5pqeUrmMtZs0jzV08phchaY00zH1p2ZNxjS1g+LdJOt6U9ssmxjyGp2urDjLlaZzng/wUPDqz\nTSTmWeTrjpVjVk3Rvjr2rnqQ5dDvo1XUd2cTqSNk9OKxXGCeKxZ1DAxHTr2q5C/y8GokUhsz54qu\nuCxzSQjQ0+FZblR2ro4bZYiMVQ0dBb7Qi5x0qzuG5QOh71LYErDufpSeWrHnimIXbjkUjLkH1Hem\ngGxryc+tXI19KYmWegq9YLiLJ7mtqS945cS7QsWehqxA9dEjz4krPSxyZqbFFhGxUm6smjRM55Lk\nHvSvNxXTY57kLT+9MNwKdhXGm5FIbkU7Bca1wMEVhaiuQcVhXWiZ14R6tHGanGBI2OtYkqEHjgVy\ns9ErEeo6UBsHipKEZs5qpPdRxcbhx70NCSuybTNWihc5brW9Fq6vjMnFSdEIdDRi8RRKygZbHFbu\nm6nb3RA3gMegNJhOm0jbXGOoxTuCc1Rz3FyoGKawz9KaAVcZqeMgCmIkB4FaUTbYwB6V00Fuzixb\n0SFMuDU8Mlbs4UPeXHeiOXkUrDuXYnyKk3cVk0ap6HMxxketSMhrcwRC0dMMZFMQ3yzSeVQAeUaz\n9Vj8uPd271nVV4m+GdpnHX67pCeKyLtBtNcR6xlk9RVeWTb3qRnO6trgttyIfm71z7ai8j7/AJmN\nDNqUVa5Yi1AnjynHuBV+11YJhWWXcP8AZNSzqgmaEerSsf3NtIQP4mGKtRavdRgMIpVI9KjU0a7n\nR6T43uYQI7qN2Tpkqciu503VVuQGAYZHQjFVc4alPlZrpKGAznpTwxOc9+lWjIlUACnM4XApiLNk\nnmvnsK0NvpXZRVonmYqV52GsmanhXitTmFkSiJTSAvwrxUxXIrJ7miOfjf1pzNWxkRlqYWpgJupu\n6gQbuahvIxPA6eo4pNXVioS5WmefakGhndH4INZs5DJXA10PaTurmLO21uKpSZqGMoXGnRzBiyjd\n9Kx5rcQS428fSkjanLoaOliHGZFB56VswW+mtPufcBsGOAfmxz+tFkd8HpoaUx09FAtFY8DO71qb\nSms/Nb7RbecG6AEjFLS5c78t+p0djpVs9wsyQiJAdyr1rW+zqjErzSe559Sbk9S3C+MA1bjbgE1S\nMSXzMVG0vNUI2tPKrAuCMnrVzNd0PhR49W/O2xrHmp4TxVMzQshpIzzQBehqesnuaI5VGzT2bitz\nFEbNTC1ADS1JupgG6l3UAc14s04yR/aYRll+8BXCtLncDXFWjys9TCz5oW7GddH5qqNzWDOgQnC8\nVSuo1kHzAGkPYopEY2+RWxV23Vzj5G/Kg3jWaNazhZuqNXS6TaKhB2c0jR1nJWOlhOxRxU4YkCgx\nY0OQatQyDbyaaFYe8uF4NY3iC9ltbVGj43NTIL3h7WzMihjzXVQXYYDdW9Cf2WcOJpfaRZ3g9KsQ\nmupnCLIabGeaAL0LcVY3cVmzRHIxtUhetzEjZqjLUAIWpN1ArhupwagAfDKQ3Q1594v0c2bm6tx+\n5Y8j+6ayrR5onThp8s7dzkZjuqAAmuBnqC7c0iwgtzSA0rWzjfGRW3ZadDu4AoNYo2rfS4v7orSh\n05UA2r0pDbsTm29KRottBNyJ0wpJ9KhD7f6U0ikNWffIFBz60zVUW52ow4UcUN6EPcx44WsbgOmd\nua7TT5Bd24KHnFKnLlZFSN4koluLdueRWvp14swweG9DXoxldHlTjYtzGoo25qzEvwtUxas2jRPQ\n5CNqkLVsYoYzUzdQA3dSFqBBmnqaBhuqhriCXTpVIzxUz+Fl03aSPI9QTypW2/dz0qKNw3SvOPZR\nMqin8VLKRcs3O4Cuk0w/MDjt1NBtHY6O2IIHY1pxgFaETIRwMkjtVSUEk4570MlFW5bap6dKzWm8\n1tqH8aY+hp2FvGoGayNevVt7/ap4xzUvYjqTLtvLPcvJxSaVcyWsxTnFZlnT2t15xHmCtOBYwQy4\nB9q7cPO+jPPxFO2qLEj5HWo42+aus4HpoX4W4FTF+KlotbHII9SFuK0MUNZqiLUDE3UbqBBupwag\nBc1DefPbyD/ZND2KjujyPWlKzuPesRZjHJXms9lMuw3StjnmphKDSLTJ7OfE3JrpbO4GQc9qlnRA\n3LO82k5NbFvdADkjBoCSHyXIIIzgVQvdRigT7wzjgUzO1jHknlvG7qnp61etYFQDIpCZoqVijzXn\n3iC8EmsOuaCGb/heR/s0ijkVv6fbxy3QMg5xmsnuX0Ldzut3+UYTPWk+2GJSe+M1pFtamcldalmx\n1eO4XaThhWnC+TXqR2PHqL3maUJ4qRjxSEjj42qXdxVmaGs1MJoATfSbqBAG5p6mgAzTJTmNvpQU\ntzzHXY83D/U1zF5FhjgV5r3Pa6FMsV5HWnLe7RhqBRdmTwagN2d2K2rPU1C5LAnPrUs6Iysbdrq6\nf3gK0BrUKj/WClY05iM6xLOcQAj3NT29uznfKSzHuadzNu7NSBFjHNSm5VO9IRnajqoWMhTzXFtA\nbvUfMduSeg702Qz0rS7FbTToQFwzjJqaGTFyfK5PQViyzUuFmuIdgGABya5u/vTaN5cnUHFUmLoZ\nzyskwlgJweSK6zQdUEwVJeGr0aUrxPLxEfe0OrhPAqVjxWhznGRtUwatDK4jNxURbmkAm6jNABup\n6tQAFqhupNtu59qUnZFwV5JHnWsHdIx96w5lz15rzT2uhRmt85xWbcxMnUGmZlB0bdxmrNvFIcfM\n350mWjbs7YkDJY/jW5ZWW4jikWkdNp9mqYJFaJdEHHakUULu/VB1rLn1Ld/FgetMGYd/qWSQmSa0\n/AemS32pfa7piLeLkg9z6UmQtz0W7uQ2cZx0A9BVzR7cAea6j2rPqX0L99KRat5A6Dk1wOoKZ52a\nYfMORTYRLujiGWEq6/NWza2yKQVHNdOHerRy4laJo6TTnbbtb8KuM3Fdh5z3OJjbmpt3FaMxAtUZ\nagBN1GaQBzTwaAAms3VbjERUGsa07RsdeFpuUuY4jUjljWTKK4j02RE4IpJYFk6imQkVl0xWarsO\nmAEcUi0bNnZBR0rWtoguMCkUi21wI161mXuocEKaYXMS4u+pY/hVCSWSY4HT0pEmlouiSahdpEBl\nmOceleiwWcNjClvHgJH97Hc1EmVFFi3Czy7mwIl/WtJbjP7uLgd/apQ2VNVvtsBhiPzdK5S4nAuR\nnqOCaTGi9pcytPlU+XpmumtWII44rah8ZjiNIXRuWeNvvViQ/LXpJWPJbu7nCRvVkNxVsxBmqJmo\nEPiXca0YLMuOlJsuKuPlsSi5IrNuG8s4HWs5VEkbwoOTKsk+FJY4rC1K53k1xTk5O7PSpwVNWRzt\n4cms+WpKICtSLTETQj5q0YeBSGiys23pUguGxQMq3E59ayrm4x3yaAKiRtO2WPHcmhruKFxFajzZ\nScA44qRHoXhuMaLpxaUg6hcDLMf4F9KlhuDeXGASIl+8azZslYma68y48m1+7nFW5rtbRNhb5z1p\niMKbUg0zuW4A4rPgb7VdKXOMmpA7HRbMS7nUYiUda0lkQOBngVrS+JGdbWLRt2bAx5BqeQ/LXpnj\nPQ4GJ+ashuK0MhWaoWcA0AaOmASMK7jRNPWYBmHyiuepO2x10qfcv6vYxCzYqoGK4HVYVTJrmb5l\nc6oaM5TUJ8EgGsG4kLNUHT0M64OaqMMikSRsuKbnFMRLG3zVehOaGNE445NNlnVFpDMu6uie9Vo1\n8z5mOAOST2pDK91cNN+5tsrH3PrW54a06KxT7fdrlh/q1Pc+tJ6IUdZGvHPLezMcnBOWbsPap5r3\nylFtbdT1xUWNWzU0/Zbwlgfmx8zGsHWtRHmMqE59aAMyNifvHPc1f0gtPdqkY5JosJHeNci2tktY\neuPnNY+oXWZEVJNrZ9aun8SIq/CzodHuriIokhDIR1ronbKZr0o6o8ipoz//2Q==`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n", "async function drawGesture(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.font = ui.baseFont;\n ctx.fillStyle = ui.baseLabel;\n let i = 1;\n for (let gesture = 0; gesture < result.length; gesture++) {\n const [where, what] = Object.entries(result[gesture]);\n if ((what.length > 1) && (what[1].length > 0)) {\n const person = where[1] > 0 ? `#${where[1]}` : '';\n const label = `${where[0]} ${person}: ${what[1]}`;\n ctx.fillStyle = 'black';\n ctx.fillText(label, 8, 2 + (i * ui.baseLineHeight));\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText(label, 6, 0 + (i * ui.baseLineHeight));\n i += 1;\n }\n }\n}\n\nasync function drawFace(result, canvas, ui, triangulation) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n for (const face of result) {\n ctx.font = ui.baseFont;\n ctx.strokeStyle = ui.baseColor;\n ctx.fillStyle = ui.baseColor;\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n if (ui.drawBoxes) {\n ctx.rect(face.box[0], face.box[1], face.box[2], face.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels = [];\n // labels.push(`${Math.trunc(100 * face.confidence)}% face`);\n if (face.genderConfidence) labels.push(`${face.gender || ''} ${Math.trunc(100 * face.genderConfidence)}% confident`);\n // if (face.genderConfidence) labels.push(face.gender);\n if (face.age) labels.push(`age: ${face.age || ''}`);\n if (face.iris) labels.push(`iris distance: ${face.iris}`);\n if (face.emotion && face.emotion.length > 0) {\n const emotion = face.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n ctx.fillStyle = ui.baseLabel;\n for (let i = 0; i < labels.length; i++) {\n ctx.fillStyle = 'black';\n ctx.fillText(labels[i], face.box[0] + 1, face.box[1] - ((labels.length - i) * ui.baseLineHeight) + 6);\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText(labels[i], face.box[0] + 0, face.box[1] - ((labels.length - i) * ui.baseLineHeight) + 5);\n }\n ctx.fillStyle = ui.baseColor;\n ctx.stroke();\n ctx.lineWidth = 1;\n if (face.mesh) {\n if (ui.drawPoints) {\n for (const point of face.mesh) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * point[2])}, ${127.5 - (2 * point[2])}, 255, 0.5)` : ui.baseColor;\n ctx.beginPath();\n ctx.arc(point[0], point[1], 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n if (ui.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => face.mesh[index]);\n const path = new Path2D();\n path.moveTo(points[0][0], points[0][1]);\n for (const point of points) {\n path.lineTo(point[0], point[1]);\n }\n path.closePath();\n ctx.strokeStyle = ui.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : ui.baseColor;\n ctx.stroke(path);\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : ui.baseColor;\n ctx.fill(path);\n }\n }\n // iris: array[center, left, top, right, bottom]\n if (face.annotations && face.annotations.leftEyeIris) {\n ctx.strokeStyle = ui.useDepth ? 'rgba(255, 200, 255, 0.3)' : ui.baseColor;\n ctx.beginPath();\n const sizeX = Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(face.annotations.leftEyeIris[4][1] - face.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(face.annotations.leftEyeIris[0][0], face.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? 'rgba(255, 255, 200, 0.3)' : ui.baseColor;\n ctx.fill();\n }\n }\n if (face.annotations && face.annotations.rightEyeIris) {\n ctx.strokeStyle = ui.useDepth ? 'rgba(255, 200, 255, 0.3)' : ui.baseColor;\n ctx.beginPath();\n const sizeX = Math.abs(face.annotations.rightEyeIris[3][0] - face.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(face.annotations.rightEyeIris[0][0], face.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? 'rgba(255, 255, 200, 0.3)' : ui.baseColor;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose = [];\nasync function drawBody(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.lineJoin = 'round';\n for (let i = 0; i < result.length; i++) {\n if (!lastDrawnPose[i] && ui.buffered) lastDrawnPose[i] = { ...result[i] };\n ctx.fillStyle = ui.baseColor;\n ctx.strokeStyle = ui.baseColor;\n ctx.font = ui.baseFont;\n ctx.lineWidth = ui.baseLineWidth;\n if (ui.drawPoints) {\n for (let pt = 0; pt < result[i].keypoints.length; pt++) {\n ctx.beginPath();\n if (ui.buffered) {\n lastDrawnPose[i].keypoints[pt].position.x = (lastDrawnPose[i].keypoints[pt].position.x + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt].position.y = (lastDrawnPose[i].keypoints[pt].position.y + result[i].keypoints[pt].position.y) / 2;\n ctx.arc(lastDrawnPose[i].keypoints[pt].position.x, lastDrawnPose[i].keypoints[pt].position.y, 2, 0, 2 * Math.PI);\n } else {\n ctx.arc(result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y, 2, 0, 2 * Math.PI);\n }\n ctx.fill();\n }\n }\n if (ui.drawPolygons) {\n const path = new Path2D();\n let root;\n let part;\n // torso\n root = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // leg left\n root = result[i].keypoints.find((a) => a.part === 'leftHip');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // leg right\n root = result[i].keypoints.find((a) => a.part === 'rightHip');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // arm left\n root = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // arm right\n root = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n if (root) {\n path.moveTo(root.position.x, root.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n if (part) path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n if (part) path.lineTo(part.position.x, part.position.y);\n }\n // draw all\n ctx.stroke(path);\n }\n }\n}\n\nasync function drawHand(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.lineJoin = 'round';\n for (const hand of result) {\n ctx.font = ui.baseFont;\n ctx.lineWidth = ui.baseLineWidth;\n if (ui.drawBoxes) {\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n ctx.strokeStyle = ui.baseColor;\n ctx.fillStyle = ui.baseColor;\n ctx.rect(hand.box[0], hand.box[1], hand.box[2], hand.box[3]);\n ctx.fillStyle = 'black';\n ctx.fillText('hand', hand.box[0] + 3, 1 + hand.box[1] + ui.baseLineHeight, hand.box[2]);\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText('hand', hand.box[0] + 2, 0 + hand.box[1] + ui.baseLineHeight, hand.box[2]);\n ctx.stroke();\n }\n if (ui.drawPoints) {\n if (hand.landmarks && hand.landmarks.length > 0) {\n for (const point of hand.landmarks) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * point[2])}, ${127.5 - (2 * point[2])}, 255, 0.5)` : ui.baseColor;\n ctx.beginPath();\n ctx.arc(point[0], point[1], 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n }\n if (ui.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n ctx.strokeStyle = ui.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : ui.baseColor;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(hand.annotations.indexFinger);\n addPart(hand.annotations.middleFinger);\n addPart(hand.annotations.ringFinger);\n addPart(hand.annotations.pinky);\n addPart(hand.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport default {\n face: drawFace,\n body: drawBody,\n hand: drawHand,\n gesture: drawGesture,\n};\n", "// @ts-nocheck\n\nlet instance = 0;\nlet CSScreated = false;\n\nlet theme = {\n background: 'darkslategray',\n hover: 'lightgray',\n itemBackground: 'black',\n itemColor: 'white',\n buttonBackground: 'lightblue',\n buttonHover: 'lightgreen',\n checkboxOn: 'lightgreen',\n checkboxOff: 'lightcoral',\n rangeBackground: 'lightblue',\n rangeLabel: 'white',\n chartColor: 'lightblue',\n};\n\nfunction createCSS() {\n if (CSScreated) return;\n const css = `\n :root { --rounded: 0.2rem; }\n .menu { position: absolute; top: 0rem; right: 0; width: max-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;\n box-shadow: 0 0 8px dimgrey; background: ${theme.background}; border-radius: var(--rounded); border-color: black; border-style: solid; border-width: thin; }\n\n .menu:hover { box-shadow: 0 0 8px ${theme.hover}; }\n .menu-container { display: block; max-height: 100vh; }\n .menu-container-fadeout { max-height: 0; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-container-fadein { max-height: 100vh; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-item { display: flex; white-space: nowrap; padding: 0.2rem; cursor: default; width: 100%; }\n .menu-title { cursor: pointer; }\n .menu-hr { margin: 0.2rem; border: 1px solid rgba(0, 0, 0, 0.5) }\n .menu-label { padding: 0; font-weight: 800; }\n\n .menu-list { margin-right: 0.8rem; }\n select:focus { outline: none; }\n .menu-list-item { background: ${theme.itemBackground}; color: ${theme.itemColor}; border: none; padding: 0.2rem; font-family: inherit;\n font-variant: inherit; border-radius: var(--rounded); font-weight: 800; }\n\n .menu-chart-title { padding: 0; font-size: 0.8rem; font-weight: 800; align-items: center}\n .menu-chart-canvas { background: transparent; margin: 0.2rem 0 0.2rem 0.6rem; }\n \n .menu-button { border: 0; background: ${theme.buttonBackground}; width: -webkit-fill-available; padding: 8px; margin: 8px; cursor: pointer; box-shadow: 4px 4px 4px 0 dimgrey;\n border-radius: var(--rounded); justify-content: center; font-family: inherit; font-variant: inherit; font-size: 1rem; font-weight: 800; }\n .menu-button:hover { background: ${theme.buttonHover}; box-shadow: 4px 4px 4px 0 black; }\n .menu-button:focus { outline: none; }\n\n .menu-checkbox { width: 2.8rem; height: 1rem; background: ${theme.itemBackground}; margin: 0.5rem 0.5rem 0 0; position: relative; border-radius: var(--rounded); }\n .menu-checkbox:after { content: 'OFF'; color: ${theme.checkboxOff}; position: absolute; right: 0.2rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox:before { content: 'ON'; color: ${theme.checkboxOn}; position: absolute; left: 0.3rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox-label { width: 1.3rem; height: 0.8rem; cursor: pointer; position: absolute; top: 0.1rem; left: 0.1rem; z-index: 1; background: ${theme.checkboxOff};\n border-radius: var(--rounded); transition: left 0.6s ease; }\n\n input[type=checkbox] { visibility: hidden; }\n input[type=checkbox]:checked + label { left: 1.4rem; background: ${theme.checkboxOn}; }\n\n .menu-range { margin: 0.2rem 0.5rem 0 0; width: 3.5rem; background: transparent; color: ${theme.rangeBackground}; }\n .menu-range:before { color: ${theme.rangeLabel}; margin: 0 0.4rem 0 0; font-weight: 800; font-size: 0.6rem; position: relative; top: 0.3rem; content: attr(value); }\n\n input[type=range] { -webkit-appearance: none; }\n input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-moz-range-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-webkit-slider-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n input[type=range]::-moz-range-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n\n .svg-background { fill:darkslategrey; cursor:pointer; opacity: 0.6; }\n .svg-foreground { fill:white; cursor:pointer; opacity: 0.8; }\n `;\n const el = document.createElement('style');\n el.innerHTML = css;\n document.getElementsByTagName('head')[0].appendChild(el);\n CSScreated = true;\n}\n\nclass Menu {\n constructor(parent, title, position, userTheme) {\n if (userTheme) theme = { ...theme, ...userTheme };\n createCSS();\n this.createMenu(parent, title, position);\n this.id = 0;\n this.instance = instance;\n instance++;\n this._maxFPS = 0;\n this.hidden = 0;\n }\n\n createMenu(parent, title = '', position = { top: null, left: null, bottom: null, right: null }) {\n this.menu = document.createElement('div');\n this.menu.id = `menu-${instance}`;\n this.menu.className = 'menu';\n if (position) {\n if (position.top) this.menu.style.top = position.top;\n if (position.bottom) this.menu.style.bottom = position.bottom;\n if (position.left) this.menu.style.left = position.left;\n if (position.right) this.menu.style.right = position.right;\n }\n\n this.container = document.createElement('div');\n this.container.id = `menu-container-${instance}`;\n this.container.className = 'menu-container menu-container-fadein';\n\n // set menu title with pulldown arrow\n const elTitle = document.createElement('div');\n elTitle.className = 'menu-title';\n elTitle.id = `menu-title-${instance}`;\n const svg = `\n \n \n `;\n if (title) elTitle.innerHTML = `${title}${svg}`;\n this.menu.appendChild(elTitle);\n elTitle.addEventListener('click', () => {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n this.menu.style.borderStyle = this.container.classList.contains('menu-container-fadeout') ? 'none' : 'solid';\n });\n\n this.menu.appendChild(this.container);\n if (typeof parent === 'object') parent.appendChild(this.menu);\n else document.getElementById(parent).appendChild(this.menu);\n }\n\n get newID() {\n this.id++;\n return `menu-${this.instance}-${this.id}`;\n }\n\n get ID() {\n return `menu-${this.instance}-${this.id}`;\n }\n\n get width() {\n return this.menu.offsetWidth;\n }\n\n get height() {\n return this.menu.offsetHeight;\n }\n\n hide() {\n if (this.container.classList.contains('menu-container-fadein')) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n }\n }\n\n visible() {\n return (this.container.classList.contains('menu-container-fadein'));\n }\n\n toggle(evt) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n if (this.container.classList.contains('menu-container-fadein') && evt) {\n const x = evt.x || (evt.touches && evt.touches[0] ? evt.touches[0].pageX : null);\n // const y = evt.y || (evt.touches && evt.touches[0] ? evt.touches[0].pageY : null);\n if (x) this.menu.style.left = `${x - (this.menu.offsetWidth / 2)}px`;\n // if (y) this.menu.style.top = '5.5rem'; // `${evt.y + 55}px`;\n if (this.menu.offsetLeft < 0) this.menu.style.left = 0;\n if ((this.menu.offsetLeft + this.menu.offsetWidth) > window.innerWidth) {\n this.menu.style.left = null;\n this.menu.style.right = 0;\n }\n this.menu.style.borderStyle = 'solid';\n } else {\n this.menu.style.borderStyle = 'none';\n }\n }\n\n addTitle(title) {\n const el = document.createElement('div');\n el.className = 'menu-title';\n el.id = this.newID;\n el.innerHTML = title;\n this.menu.appendChild(el);\n el.addEventListener('click', () => {\n this.hidden = !this.hidden;\n const all = document.getElementsByClassName('menu');\n for (const item of all) {\n item.style.display = this.hidden ? 'none' : 'block';\n }\n });\n return el;\n }\n\n addLabel(title) {\n const el = document.createElement('div');\n el.className = 'menu-item menu-label';\n el.id = this.newID;\n el.innerHTML = title;\n this.container.appendChild(el);\n return el;\n }\n\n addBool(title, object, variable, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `
${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = evt.target.checked;\n if (callback) callback(evt.target.checked);\n });\n return el;\n }\n\n async addList(title, items, selected, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n let options = '';\n for (const item of items) {\n const def = item === selected ? 'selected' : '';\n options += ``;\n }\n el.innerHTML = `
${title}`;\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n if (callback) callback(items[evt.target.selectedIndex]);\n });\n return el;\n }\n\n addRange(title, object, variable, min, max, step, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = parseInt(evt.target.value) === parseFloat(evt.target.value) ? parseInt(evt.target.value) : parseFloat(evt.target.value);\n evt.target.setAttribute('value', evt.target.value);\n if (callback) callback(evt.target.value);\n });\n el.input = el.children[0];\n return el;\n }\n\n addHTML(html) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = this.newID;\n if (html) el.innerHTML = html;\n this.container.appendChild(el);\n return el;\n }\n\n addButton(titleOn, titleOff, callback) {\n const el = document.createElement('button');\n el.className = 'menu-item menu-button';\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n el.type = 'button';\n el.id = this.newID;\n el.innerText = titleOn;\n this.container.appendChild(el);\n el.addEventListener('click', () => {\n if (el.innerText === titleOn) el.innerText = titleOff;\n else el.innerText = titleOn;\n if (callback) callback(el.innerText !== titleOn);\n });\n return el;\n }\n\n addValue(title, val, suffix = '') {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = `menu-val-${title}`;\n el.innerText = `${title}: ${val}${suffix}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n updateValue(title, val, suffix = '') {\n const el = document.getElementById(`menu-val-${title}`);\n if (el) el.innerText = `${title}: ${val}${suffix}`;\n else this.addValue(title, val);\n }\n\n addChart(title, id, width = 150, height = 40, color) {\n if (color) theme.chartColor = color;\n const el = document.createElement('div');\n el.className = 'menu-item menu-chart-title';\n el.id = this.newID;\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n async updateChart(id, values) {\n if (!values || (values.length === 0)) return;\n const canvas = document.getElementById(`menu-canvas-${id}`);\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = theme.background;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const width = canvas.width / values.length;\n const max = 1 + Math.max(...values);\n const height = canvas.height / max;\n for (let i = 0; i < values.length; i++) {\n const gradient = ctx.createLinearGradient(0, (max - values[i]) * height, 0, 0);\n gradient.addColorStop(0.1, theme.chartColor);\n gradient.addColorStop(0.4, theme.background);\n ctx.fillStyle = gradient;\n ctx.fillRect(i * width, 0, width - 4, canvas.height);\n ctx.fillStyle = theme.background;\n ctx.font = `${width / 1.5}px \"Segoe UI\"`;\n ctx.fillText(Math.round(values[i]), i * width + 1, canvas.height - 1, width - 1);\n }\n }\n}\n\nexport default Menu;\n", "// @ts-nocheck\n/* eslint-disable max-len */\n\n// based on: https://github.com/munrocket/gl-bench\n\nconst UICSS = `\n #gl-bench { position: absolute; right: 1rem; bottom: 1rem; z-index:1000; -webkit-user-select: none; -moz-user-select: none; user-select: none; }\n #gl-bench div { position: relative; display: block; margin: 4px; padding: 0 7px 0 10px; background: darkslategray; border-radius: 0.2rem; cursor: pointer; opacity: 0.9; }\n #gl-bench svg { height: 60px; margin: 0 0px 0px 4px; }\n #gl-bench text { font-size: 16px; font-family: 'Lato', 'Segoe UI'; dominant-baseline: middle; text-anchor: middle; }\n #gl-bench .gl-mem { font-size: 12px; fill: white; }\n #gl-bench .gl-fps { font-size: 13px; fill: white; }\n #gl-bench line { stroke-width: 5; stroke: white; stroke-linecap: round; }\n #gl-bench polyline { fill: none; stroke: white; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3.5; }\n #gl-bench rect { fill: black; }\n #gl-bench .opacity { stroke: black; }\n `;\n\nconst UISVG = `\n
\n \n 00 FPS\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n `;\n\nclass GLBench {\n /** GLBench constructor\n * @param { WebGLRenderingContext | WebGL2RenderingContext } gl context\n * @param { Object | undefined } settings additional settings\n */\n constructor(gl, settings = {}) {\n this.css = UICSS;\n this.svg = UISVG;\n this.paramLogger = () => {};\n this.chartLogger = () => {};\n this.chartLen = 20;\n this.chartHz = 20;\n\n this.names = [];\n this.cpuAccums = [];\n this.gpuAccums = [];\n this.activeAccums = [];\n this.chart = new Array(this.chartLen);\n this.now = () => ((performance && performance.now) ? performance.now() : Date.now());\n this.updateUI = () => {\n [].forEach.call(this.nodes['gl-gpu-svg'], (node) => node.style.display = this.trackGPU ? 'inline' : 'none');\n };\n\n Object.assign(this, settings);\n this.detected = 0;\n this.finished = [];\n this.isFramebuffer = 0;\n this.frameId = 0;\n\n // 120hz device detection\n let rafId; let n = 0; let\n t0;\n const loop = (t) => {\n if (++n < 20) {\n rafId = requestAnimationFrame(loop);\n } else {\n this.detected = Math.ceil(1e3 * n / (t - t0) / 70);\n cancelAnimationFrame(rafId);\n }\n if (!t0) t0 = t;\n };\n requestAnimationFrame(loop);\n\n // attach gpu profilers\n if (gl) {\n const glFinish = async (t, activeAccums) => Promise.resolve(setTimeout(() => {\n gl.getError();\n const dt = this.now() - t;\n activeAccums.forEach((active, i) => {\n if (active) this.gpuAccums[i] += dt;\n });\n }, 0));\n\n const addProfiler = (fn, self, target) => {\n const t = self.now();\n // eslint-disable-next-line prefer-rest-params\n fn.apply(target, arguments);\n if (self.trackGPU) self.finished.push(glFinish(t, self.activeAccums.slice(0)));\n };\n\n /* ['drawArrays', 'drawElements', 'drawArraysInstanced', 'drawBuffers', 'drawElementsInstanced', 'drawRangeElements'].forEach((fn) => {\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n }\n });\n */\n const fn = 'drawElements';\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n } else {\n // eslint-disable-next-line no-console\n console.log('bench: cannot attach to webgl function');\n }\n\n /*\n gl.getExtension = ((fn, self) => {\n // eslint-disable-next-line prefer-rest-params\n const ext = fn.apply(gl, arguments);\n if (ext) {\n ['drawElementsInstancedANGLE', 'drawBuffersWEBGL'].forEach((fn2) => {\n if (ext[fn2]) {\n ext[fn2] = addProfiler(ext[fn2], self, ext);\n }\n });\n }\n return ext;\n })(gl.getExtension, this);\n */\n }\n\n // init ui and ui loggers\n if (!this.withoutUI) {\n if (!this.dom) this.dom = document.body;\n const elm = document.createElement('div');\n elm.id = 'gl-bench';\n this.dom.appendChild(elm);\n this.dom.insertAdjacentHTML('afterbegin', '');\n this.dom = elm;\n this.dom.addEventListener('click', () => {\n this.trackGPU = !this.trackGPU;\n this.updateUI();\n });\n\n this.paramLogger = ((logger, dom, names) => {\n const classes = ['gl-cpu', 'gl-gpu', 'gl-mem', 'gl-fps', 'gl-gpu-svg', 'gl-chart'];\n const nodes = { ...classes };\n classes.forEach((c) => nodes[c] = dom.getElementsByClassName(c));\n this.nodes = nodes;\n return (i, cpu, gpu, mem, fps, totalTime, frameId) => {\n nodes['gl-cpu'][i].style.strokeDasharray = (cpu * 0.27).toFixed(0) + ' 100';\n nodes['gl-gpu'][i].style.strokeDasharray = (gpu * 0.27).toFixed(0) + ' 100';\n // eslint-disable-next-line no-nested-ternary\n nodes['gl-mem'][i].innerHTML = names[i] ? names[i] : (mem ? 'mem: ' + mem.toFixed(0) + 'mb' : '');\n nodes['gl-fps'][i].innerHTML = 'FPS: ' + fps.toFixed(1);\n logger(names[i], cpu, gpu, mem, fps, totalTime, frameId);\n };\n })(this.paramLogger, this.dom, this.names);\n\n this.chartLogger = ((logger, dom) => {\n const nodes = { 'gl-chart': dom.getElementsByClassName('gl-chart') };\n return (i, chart, circularId) => {\n let points = '';\n const len = chart.length;\n for (let j = 0; j < len; j++) {\n const id = (circularId + j + 1) % len;\n if (chart[id] !== undefined) points = points + ' ' + (55 * j / (len - 1)).toFixed(1) + ',' + (45 - chart[id] * 22 / 60 / this.detected).toFixed(1);\n }\n nodes['gl-chart'][i].setAttribute('points', points);\n logger(this.names[i], chart, circularId);\n };\n })(this.chartLogger, this.dom);\n }\n }\n\n /**\n * Explicit UI add\n * @param { string | undefined } name\n */\n addUI(name) {\n if (this.names.indexOf(name) === -1) {\n this.names.push(name);\n if (this.dom) {\n this.dom.insertAdjacentHTML('beforeend', this.svg);\n this.updateUI();\n }\n this.cpuAccums.push(0);\n this.gpuAccums.push(0);\n this.activeAccums.push(false);\n }\n }\n\n /**\n * Increase frameID\n * @param { number | undefined } now\n */\n nextFrame(now) {\n this.frameId++;\n const t = now || this.now();\n\n // params\n if (this.frameId <= 1) {\n this.paramFrame = this.frameId;\n this.paramTime = t;\n } else {\n const duration = t - this.paramTime;\n if (duration >= 1e3) {\n const frameCount = this.frameId - this.paramFrame;\n const fps = frameCount / duration * 1e3;\n for (let i = 0; i < this.names.length; i++) {\n const cpu = this.cpuAccums[i] / duration * 100;\n const gpu = this.gpuAccums[i] / duration * 100;\n const mem = (performance && performance.memory) ? performance.memory.usedJSHeapSize / (1 << 20) : 0;\n this.paramLogger(i, cpu, gpu, mem, fps, duration, frameCount);\n this.cpuAccums[i] = 0;\n Promise.all(this.finished).then(() => {\n this.gpuAccums[i] = 0;\n this.finished = [];\n });\n }\n this.paramFrame = this.frameId;\n this.paramTime = t;\n }\n }\n\n // chart\n if (!this.detected || !this.chartFrame) {\n this.chartFrame = this.frameId;\n this.chartTime = t;\n this.circularId = 0;\n } else {\n const timespan = t - this.chartTime;\n let hz = this.chartHz * timespan / 1e3;\n while (--hz > 0 && this.detected) {\n const frameCount = this.frameId - this.chartFrame;\n const fps = frameCount / timespan * 1e3;\n this.chart[this.circularId % this.chartLen] = fps;\n for (let i = 0; i < this.names.length; i++) this.chartLogger(i, this.chart, this.circularId);\n this.circularId++;\n this.chartFrame = this.frameId;\n this.chartTime = t;\n }\n }\n }\n\n /**\n * Begin named measurement\n * @param { string | undefined } name\n */\n begin(name) {\n this.updateAccums(name);\n }\n\n /**\n * End named measure\n * @param { string | undefined } name\n */\n end(name) {\n this.updateAccums(name);\n }\n\n updateAccums(name) {\n let nameId = this.names.indexOf(name);\n if (nameId === -1) {\n nameId = this.names.length;\n this.addUI(name);\n }\n\n const t = this.now();\n const dt = t - this.t0;\n for (let i = 0; i < nameId + 1; i++) {\n if (this.activeAccums[i]) this.cpuAccums[i] += dt;\n }\n this.activeAccums[nameId] = !this.activeAccums[nameId];\n this.t0 = t;\n }\n}\n\nexport default GLBench;\n", "import Human from '../dist/human.esm.js';\nimport draw from './draw.js';\nimport Menu from './menu.js';\nimport GLBench from './gl-bench.js';\n\nconst userConfig = {}; // add any user configuration overrides\n\n/*\nconst userConfig = {\n face: { enabled: false, iris: { enabled: false } },\n body: { enabled: false },\n hand: { enabled: false },\n pose: { enabled: true },\n};\n*/\n\nconst human = new Human(userConfig);\n\n// ui options\nconst ui = {\n baseColor: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n baseBackground: 'rgba(50, 50, 50, 1)', // 'grey'\n baseLabel: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n baseFontProto: 'small-caps {size} \"Segoe UI\"',\n baseLineWidth: 12,\n crop: true,\n columns: 2,\n busy: false,\n facing: true,\n useWorker: false,\n worker: 'worker.js',\n samples: ['../assets/sample6.jpg', '../assets/sample1.jpg', '../assets/sample4.jpg', '../assets/sample5.jpg', '../assets/sample3.jpg', '../assets/sample2.jpg'],\n compare: '../assets/sample-me.jpg',\n drawBoxes: true,\n drawPoints: false,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n console: true,\n maxFPSframes: 10,\n modelsPreload: true,\n menuWidth: 0,\n menuHeight: 0,\n camera: {},\n detectFPS: [],\n drawFPS: [],\n buffered: false,\n drawThread: null,\n detectThread: null,\n framesDraw: 0,\n framesDetect: 0,\n bench: false,\n};\n\n// global variables\nconst menu = {};\nlet worker;\nlet bench;\nlet lastDetectedResult = {};\n\n// helper function: translates json to human readable string\nfunction str(...msg) {\n if (!Array.isArray(msg)) return msg;\n let line = '';\n for (const entry of msg) {\n if (typeof entry === 'object') line += JSON.stringify(entry).replace(/{|}|\"|\\[|\\]/g, '').replace(/,/g, ', ');\n else line += entry;\n }\n return line;\n}\n\n// helper function: wrapper around console output\nfunction log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (ui.console) console.log(ts, ...msg);\n}\n\nfunction status(msg) {\n // eslint-disable-next-line no-console\n document.getElementById('status').innerText = msg;\n}\n\nlet original;\nasync function calcSimmilariry(result) {\n document.getElementById('compare-container').style.display = human.config.face.embedding.enabled ? 'block' : 'none';\n if (!human.config.face.embedding.enabled) return;\n if ((result?.face?.length > 0) && (result?.face[0].embedding?.length !== 192)) return;\n if (!original) {\n original = result;\n document.getElementById('compare-canvas').getContext('2d').drawImage(original.canvas, 0, 0, 200, 200);\n }\n const simmilarity = human.simmilarity(original?.face[0]?.embedding, result?.face[0]?.embedding);\n document.getElementById('simmilarity').innerText = `simmilarity: ${Math.trunc(1000 * simmilarity) / 10}%`;\n}\n\n// draws processed results and starts processing of a next frame\nlet lastDraw = performance.now();\nasync function drawResults(input) {\n const result = lastDetectedResult;\n const canvas = document.getElementById('canvas');\n\n // update draw fps data\n ui.drawFPS.push(1000 / (performance.now() - lastDraw));\n if (ui.drawFPS.length > ui.maxFPSframes) ui.drawFPS.shift();\n lastDraw = performance.now();\n\n // enable for continous performance monitoring\n // console.log(result.performance);\n\n // draw fps chart\n await menu.process.updateChart('FPS', ui.detectFPS);\n\n // get updated canvas\n if (ui.buffered || !result.canvas) result.canvas = await human.image(input, userConfig);\n\n // draw image from video\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = ui.baseBackground;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (result.canvas) {\n if (result.canvas.width !== canvas.width) canvas.width = result.canvas.width;\n if (result.canvas.height !== canvas.height) canvas.height = result.canvas.height;\n ctx.drawImage(result.canvas, 0, 0, result.canvas.width, result.canvas.height, 0, 0, result.canvas.width, result.canvas.height);\n } else {\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n }\n\n // draw all results\n await draw.face(result.face, canvas, ui, human.facemesh.triangulation);\n await draw.body(result.body, canvas, ui);\n await draw.hand(result.hand, canvas, ui);\n await draw.gesture(result.gesture, canvas, ui);\n await calcSimmilariry(result);\n\n // update log\n const engine = human.tf.engine();\n const gpu = engine.backendInstance ? `gpu: ${(engine.backendInstance.numBytesInGPU ? engine.backendInstance.numBytesInGPU : 0).toLocaleString()} bytes` : '';\n const memory = `system: ${engine.state.numBytes.toLocaleString()} bytes ${gpu} | tensors: ${engine.state.numTensors.toLocaleString()}`;\n const processing = result.canvas ? `processing: ${result.canvas.width} x ${result.canvas.height}` : '';\n const avgDetect = Math.trunc(10 * ui.detectFPS.reduce((a, b) => a + b, 0) / ui.detectFPS.length) / 10;\n const avgDraw = Math.trunc(10 * ui.drawFPS.reduce((a, b) => a + b, 0) / ui.drawFPS.length) / 10;\n const warning = (ui.detectFPS.length > 5) && (avgDetect < 5) ? 'warning: your performance is low: try switching to higher performance backend, lowering resolution or disabling some models' : '';\n document.getElementById('log').innerHTML = `\n video: ${ui.camera.name} | facing: ${ui.camera.facing} | screen: ${window.innerWidth} x ${window.innerHeight} camera: ${ui.camera.width} x ${ui.camera.height} ${processing}
\n backend: ${human.tf.getBackend()} | ${memory}
\n performance: ${str(result.performance)}ms FPS process:${avgDetect} refresh:${avgDraw}
\n ${warning}
\n `;\n\n ui.framesDraw++;\n ui.lastFrame = performance.now();\n // if buffered, immediate loop but limit frame rate although it's going to run slower as JS is singlethreaded\n if (ui.buffered) {\n ui.drawThread = requestAnimationFrame(() => drawResults(input, canvas));\n } else if (!ui.buffered && ui.drawThread) {\n log('stopping buffered refresh');\n cancelAnimationFrame(ui.drawThread);\n ui.drawThread = null;\n }\n}\n\n// setup webcam\nasync function setupCamera() {\n if (ui.busy) return null;\n ui.busy = true;\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n const output = document.getElementById('log');\n const live = video.srcObject ? ((video.srcObject.getVideoTracks()[0].readyState === 'live') && (video.readyState > 2) && (!video.paused)) : false;\n let msg = '';\n status('setting up camera');\n // setup webcam. note that navigator.mediaDevices requires that page is accessed via https\n if (!navigator.mediaDevices) {\n msg = 'camera access not supported';\n output.innerText += `\\n${msg}`;\n log(msg);\n status(msg);\n ui.busy = false;\n return msg;\n }\n let stream;\n const constraints = {\n audio: false,\n video: { facingMode: ui.facing ? 'user' : 'environment', resizeMode: ui.crop ? 'crop-and-scale' : 'none' },\n };\n if (window.innerWidth > window.innerHeight) constraints.video.width = { ideal: window.innerWidth };\n else constraints.video.height = { ideal: (window.innerHeight - document.getElementById('menubar').offsetHeight) };\n try {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n } catch (err) {\n if (err.name === 'PermissionDeniedError' || err.name === 'NotAllowedError') msg = 'camera permission denied';\n else if (err.name === 'SourceUnavailableError') msg = 'camera not available';\n else msg = `camera error: ${err.message || err}`;\n output.innerText += `\\n${msg}`;\n status(msg);\n log('camera error:', err);\n ui.busy = false;\n return msg;\n }\n if (stream) video.srcObject = stream;\n else {\n ui.busy = false;\n return 'camera stream empty';\n }\n const track = stream.getVideoTracks()[0];\n const settings = track.getSettings();\n // log('camera constraints:', constraints, 'window:', { width: window.innerWidth, height: window.innerHeight }, 'settings:', settings, 'track:', track);\n ui.camera = { name: track.label?.toLowerCase(), width: settings.width, height: settings.height, facing: settings.facingMode === 'user' ? 'front' : 'back' };\n return new Promise((resolve) => {\n video.onloadeddata = async () => {\n video.width = video.videoWidth;\n video.height = video.videoHeight;\n canvas.width = video.width;\n canvas.height = video.height;\n canvas.style.width = canvas.width > canvas.height ? '100vw' : '';\n canvas.style.height = canvas.width > canvas.height ? '' : '100vh';\n ui.menuWidth.input.setAttribute('value', video.width);\n ui.menuHeight.input.setAttribute('value', video.height);\n // silly font resizing for paint-on-canvas since viewport can be zoomed\n const size = Math.trunc(window.devicePixelRatio * (8 + (4 * canvas.width / window.innerWidth)));\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n ui.baseLineHeight = size + 2;\n if (live) video.play();\n // eslint-disable-next-line no-use-before-define\n if (live && !ui.detectThread) runHumanDetect(video, canvas);\n ui.busy = false;\n // do once more because onresize events can be delayed or skipped\n // if (video.width > window.innerWidth) await setupCamera();\n status('');\n resolve();\n };\n });\n}\n\nfunction initPerfMonitor() {\n if (!bench) {\n const gl = null;\n // cosnt gl = human.tf.engine().backend.gpgpu.gl;\n // if (!gl) log('bench cannot get tensorflow webgl context');\n bench = new GLBench(gl, {\n trackGPU: false, // this is really slow\n chartHz: 20,\n chartLen: 20,\n });\n bench.begin();\n }\n}\n\n// wrapper for worker.postmessage that creates worker if one does not exist\nfunction webWorker(input, image, canvas, timestamp) {\n if (!worker) {\n // create new webworker and add event handler only once\n log('creating worker thread');\n worker = new Worker(ui.worker, { type: 'module' });\n // after receiving message from webworker, parse&draw results and send new frame for processing\n worker.addEventListener('message', (msg) => {\n if (msg.data.result.performance && msg.data.result.performance.total) ui.detectFPS.push(1000 / msg.data.result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n lastDetectedResult = msg.data.result;\n ui.framesDetect++;\n if (!ui.drawThread) drawResults(input);\n // eslint-disable-next-line no-use-before-define\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n });\n }\n // pass image data as arraybuffer to worker by reference to avoid copy\n worker.postMessage({ image: image.data.buffer, width: canvas.width, height: canvas.height, userConfig }, [image.data.buffer]);\n}\n\n// main processing function when input is webcam, can use direct invocation or web worker\nfunction runHumanDetect(input, canvas, timestamp) {\n // if live video\n const live = input.srcObject && (input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState > 2) && (!input.paused);\n if (!live && input.srcObject) {\n // stop ui refresh\n if (ui.drawThread) cancelAnimationFrame(ui.drawThread);\n if (ui.detectThread) cancelAnimationFrame(ui.detectThread);\n ui.drawThread = null;\n ui.detectThread = null;\n // if we want to continue and camera not ready, retry in 0.5sec, else just give up\n if (input.paused) log('camera paused');\n else if ((input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState <= 2)) setTimeout(() => runHumanDetect(input, canvas), 500);\n else log(`camera not ready: track state: ${input.srcObject?.getVideoTracks()[0].readyState} stream state: ${input.readyState}`);\n clearTimeout(ui.drawThread);\n ui.drawThread = null;\n log('frame statistics: process:', ui.framesDetect, 'refresh:', ui.framesDraw);\n log('memory', human.tf.engine().memory());\n return;\n }\n status('');\n if (ui.useWorker) {\n // get image data from video as we cannot send html objects to webworker\n const offscreen = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(canvas.width, canvas.height) : document.createElement('canvas');\n offscreen.width = canvas.width;\n offscreen.height = canvas.height;\n const ctx = offscreen.getContext('2d');\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n const data = ctx.getImageData(0, 0, canvas.width, canvas.height);\n // perform detection in worker\n webWorker(input, data, canvas, userConfig, timestamp);\n } else {\n human.detect(input, userConfig).then((result) => {\n if (result.performance && result.performance.total) ui.detectFPS.push(1000 / result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n if (result.error) {\n log(result.error);\n document.getElementById('log').innerText += `\\nHuman error: ${result.error}`;\n } else {\n lastDetectedResult = result;\n if (!ui.drawThread) drawResults(input);\n ui.framesDetect++;\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n }\n });\n }\n}\n\n// main processing function when input is image, can use direct invocation or web worker\nasync function processImage(input) {\n return new Promise((resolve) => {\n const image = new Image();\n image.onload = async () => {\n log('Processing image:', image.src);\n const canvas = document.getElementById('canvas');\n image.width = image.naturalWidth;\n image.height = image.naturalHeight;\n canvas.width = human.config.filter.width && human.config.filter.width > 0 ? human.config.filter.width : image.naturalWidth;\n canvas.height = human.config.filter.height && human.config.filter.height > 0 ? human.config.filter.height : image.naturalHeight;\n const result = await human.detect(image, userConfig);\n lastDetectedResult = result;\n await drawResults(image);\n const thumb = document.createElement('canvas');\n thumb.className = 'thumbnail';\n thumb.width = window.innerWidth / (ui.columns + 0.1);\n thumb.height = canvas.height / (window.innerWidth / thumb.width);\n const ctx = thumb.getContext('2d');\n ctx.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, thumb.width, thumb.height);\n document.getElementById('samples-container').appendChild(thumb);\n image.src = '';\n resolve(true);\n };\n image.src = input;\n });\n}\n\n// just initialize everything and call main function\nasync function detectVideo() {\n userConfig.videoOptimized = true;\n document.getElementById('samples-container').style.display = 'none';\n document.getElementById('canvas').style.display = 'block';\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n if ((video.srcObject !== null) && !video.paused) {\n document.getElementById('play').style.display = 'block';\n document.getElementById('btnStart').className = 'button button-start';\n document.getElementById('btnStart').innerHTML = 'start
video';\n status('paused');\n video.pause();\n } else {\n const cameraError = await setupCamera();\n if (!cameraError) {\n document.getElementById('play').style.display = 'none';\n for (const m of Object.values(menu)) m.hide();\n status('');\n document.getElementById('btnStart').className = 'button button-stop';\n document.getElementById('btnStart').innerHTML = 'pause
video';\n await video.play();\n if (!ui.detectThread) runHumanDetect(video, canvas);\n } else {\n status(cameraError);\n }\n }\n}\n\n// just initialize everything and call main function\nasync function detectSampleImages() {\n document.getElementById('play').style.display = 'none';\n userConfig.videoOptimized = false;\n const size = Math.trunc(window.devicePixelRatio * (8 + (4 * ui.columns)));\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n ui.baseLineHeight = size + 2;\n document.getElementById('canvas').style.display = 'none';\n document.getElementById('samples-container').style.display = 'block';\n log('Running detection of sample images');\n status('processing images');\n document.getElementById('samples-container').innerHTML = '';\n for (const image of ui.samples) await processImage(image);\n status('');\n}\n\nfunction setupMenu() {\n let x = [];\n if (window.innerWidth > 800) {\n // initial position of menu items, later it's calculated based on mouse coordinates\n x = [`${document.getElementById('btnDisplay').offsetLeft - 50}px`, `${document.getElementById('btnImage').offsetLeft - 50}px`, `${document.getElementById('btnProcess').offsetLeft - 50}px`, `${document.getElementById('btnModel').offsetLeft - 50}px`];\n } else {\n // absolute minimum spacing for menus\n x = ['0rem', '11rem', '21.1rem', '33rem'];\n }\n\n menu.display = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[0] });\n menu.display.addBool('perf monitor', ui, 'bench', (val) => ui.bench = val);\n menu.display.addBool('buffered output', ui, 'buffered', (val) => ui.buffered = val);\n menu.display.addBool('crop & scale', ui, 'crop', () => setupCamera());\n menu.display.addBool('camera facing', ui, 'facing', () => setupCamera());\n menu.display.addHTML('
');\n menu.display.addBool('use 3D depth', ui, 'useDepth');\n menu.display.addBool('draw boxes', ui, 'drawBoxes');\n menu.display.addBool('draw polygons', ui, 'drawPolygons');\n menu.display.addBool('Fill Polygons', ui, 'fillPolygons');\n menu.display.addBool('draw points', ui, 'drawPoints');\n\n menu.image = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[1] });\n menu.image.addBool('enabled', human.config.filter, 'enabled');\n ui.menuWidth = menu.image.addRange('image width', human.config.filter, 'width', 0, 3840, 10, (val) => human.config.filter.width = parseInt(val));\n ui.menuHeight = menu.image.addRange('image height', human.config.filter, 'height', 0, 2160, 10, (val) => human.config.filter.height = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addRange('brightness', human.config.filter, 'brightness', -1.0, 1.0, 0.05, (val) => human.config.filter.brightness = parseFloat(val));\n menu.image.addRange('contrast', human.config.filter, 'contrast', -1.0, 1.0, 0.05, (val) => human.config.filter.contrast = parseFloat(val));\n menu.image.addRange('sharpness', human.config.filter, 'sharpness', 0, 1.0, 0.05, (val) => human.config.filter.sharpness = parseFloat(val));\n menu.image.addRange('blur', human.config.filter, 'blur', 0, 20, 1, (val) => human.config.filter.blur = parseInt(val));\n menu.image.addRange('saturation', human.config.filter, 'saturation', -1.0, 1.0, 0.05, (val) => human.config.filter.saturation = parseFloat(val));\n menu.image.addRange('hue', human.config.filter, 'hue', 0, 360, 5, (val) => human.config.filter.hue = parseInt(val));\n menu.image.addRange('pixelate', human.config.filter, 'pixelate', 0, 32, 1, (val) => human.config.filter.pixelate = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addBool('negative', human.config.filter, 'negative');\n menu.image.addBool('sepia', human.config.filter, 'sepia');\n menu.image.addBool('vintage', human.config.filter, 'vintage');\n menu.image.addBool('kodachrome', human.config.filter, 'kodachrome');\n menu.image.addBool('technicolor', human.config.filter, 'technicolor');\n menu.image.addBool('polaroid', human.config.filter, 'polaroid');\n\n menu.process = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[2] });\n menu.process.addList('backend', ['cpu', 'webgl', 'wasm', 'humangl'], human.config.backend, (val) => human.config.backend = val);\n menu.process.addBool('async operations', human.config, 'async', (val) => human.config.async = val);\n menu.process.addBool('enable profiler', human.config, 'profile', (val) => human.config.profile = val);\n menu.process.addBool('memory shield', human.config, 'deallocate', (val) => human.config.deallocate = val);\n menu.process.addBool('use web worker', ui, 'useWorker');\n menu.process.addHTML('
');\n menu.process.addLabel('model parameters');\n menu.process.addRange('max objects', human.config.face.detector, 'maxFaces', 1, 50, 1, (val) => {\n human.config.face.detector.maxFaces = parseInt(val);\n human.config.body.maxDetections = parseInt(val);\n human.config.hand.maxHands = parseInt(val);\n });\n menu.process.addRange('skip frames', human.config.face.detector, 'skipFrames', 0, 50, 1, (val) => {\n human.config.face.detector.skipFrames = parseInt(val);\n human.config.face.emotion.skipFrames = parseInt(val);\n human.config.face.age.skipFrames = parseInt(val);\n human.config.hand.skipFrames = parseInt(val);\n });\n menu.process.addRange('min confidence', human.config.face.detector, 'minConfidence', 0.0, 1.0, 0.05, (val) => {\n human.config.face.detector.minConfidence = parseFloat(val);\n human.config.face.gender.minConfidence = parseFloat(val);\n human.config.face.emotion.minConfidence = parseFloat(val);\n human.config.hand.minConfidence = parseFloat(val);\n });\n menu.process.addRange('score threshold', human.config.face.detector, 'scoreThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.scoreThreshold = parseFloat(val);\n human.config.hand.scoreThreshold = parseFloat(val);\n human.config.body.scoreThreshold = parseFloat(val);\n });\n menu.process.addRange('overlap', human.config.face.detector, 'iouThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.iouThreshold = parseFloat(val);\n human.config.hand.iouThreshold = parseFloat(val);\n });\n menu.process.addBool('detection rotation', human.config.face.detector, 'rotation', (val) => {\n human.config.face.detector.rotation = val;\n human.config.hand.rotation = val;\n });\n menu.process.addHTML('
');\n menu.process.addButton('process sample images', 'process images', () => detectSampleImages());\n menu.process.addHTML('
');\n menu.process.addChart('FPS', 'FPS');\n\n menu.models = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[3] });\n menu.models.addBool('face detect', human.config.face, 'enabled');\n menu.models.addBool('face mesh', human.config.face.mesh, 'enabled');\n menu.models.addBool('face iris', human.config.face.iris, 'enabled');\n menu.models.addBool('face age', human.config.face.age, 'enabled');\n menu.models.addBool('face gender', human.config.face.gender, 'enabled');\n menu.models.addBool('face emotion', human.config.face.emotion, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('body pose', human.config.body, 'enabled');\n menu.models.addBool('hand pose', human.config.hand, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('gestures', human.config.gesture, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('face compare', human.config.face.embedding, 'enabled', (val) => {\n original = null;\n human.config.face.embedding.enabled = val;\n });\n\n document.getElementById('btnDisplay').addEventListener('click', (evt) => menu.display.toggle(evt));\n document.getElementById('btnImage').addEventListener('click', (evt) => menu.image.toggle(evt));\n document.getElementById('btnProcess').addEventListener('click', (evt) => menu.process.toggle(evt));\n document.getElementById('btnModel').addEventListener('click', (evt) => menu.models.toggle(evt));\n document.getElementById('btnStart').addEventListener('click', () => detectVideo());\n document.getElementById('play').addEventListener('click', () => detectVideo());\n}\n\nasync function main() {\n log('demo starting ...');\n setupMenu();\n document.getElementById('log').innerText = `Human: version ${human.version}`;\n if (ui.modelsPreload && !ui.useWorker) {\n status('loading');\n await human.load(userConfig); // this is not required, just pre-loads all models\n }\n if (!ui.useWorker) {\n status('initializing');\n await human.warmup(userConfig); // this is not required, just pre-warms all models for faster initial inference\n }\n status('human: ready');\n document.getElementById('loader').style.display = 'none';\n document.getElementById('play').style.display = 'block';\n log('ready');\n}\n\nwindow.onload = main;\nwindow.onresize = setupCamera;\n"], + "mappings": ";;;;;;;ghCAAA,kBAAA,WAAA,UAGA,GAAM,eAAgB,EAEtB,yBAAyB,WACvB,GAAM,MAAO,CAAE,QAAS,CAAC,UAAY,GAAI,UAAY,GAAI,QAAS,CAAC,EAAG,IAChE,QAAU,GAChB,OAAS,GAAI,EAAG,EAAI,KAAK,QAAQ,OAAQ,KACvC,GAAM,QAAS,KAAK,QAAQ,GACtB,SAAW,KAAK,MAAO,WAAY,OAAS,GAAK,QACjD,SAAW,KAAK,MAAO,WAAY,OAAS,GAAK,QACjD,WAAa,KAAK,QAAQ,GAChC,OAAS,OAAQ,EAAG,MAAQ,SAAU,SACpC,GAAM,SAAU,OAAU,OAAQ,IAClC,OAAS,OAAQ,EAAG,MAAQ,SAAU,SACpC,GAAM,SAAU,OAAU,OAAQ,IAClC,OAAS,GAAI,EAAG,EAAI,WAAY,IAC9B,QAAQ,KAAK,CAAC,QAAS,YAK/B,MAAO,SAGT,GAAM,YAAc,MAClB,IAAI,eAAe,UACnB,IAAI,WAAW,UACf,IAAI,SAAS,WAGT,UAAa,gBAAoB,EACrC,eACA,WAAe,MAAM,eAAgB,CAAC,EAAG,GAAI,CAAC,GAAI,IAClD,SAAa,MAAM,eAAgB,CAAC,EAAG,GAAI,CAAC,GAAI,MAG5C,SAAW,CAAC,IAAK,WACrB,GAAM,QAAY,IAAI,IAAI,WAAY,SAChC,KAAU,IAAI,IAAI,SAAU,SAC5B,eAAoB,SAAS,CAAC,OAAQ,MAAO,GACnD,MAAO,WAAU,iBAGnB,sBAAsB,WAAY,QAAS,WACzC,GAAM,WAAe,MAAM,WAAY,CAAC,EAAG,GAAI,CAAC,GAAI,IAC9C,QAAa,KAAI,UAAW,SAC5B,SAAc,MAAM,WAAY,CAAC,EAAG,GAAI,CAAC,GAAI,IAC7C,mBAAwB,IAAI,SAAU,WACtC,kBAAuB,IAAI,QAAS,WACpC,YAAiB,IAAI,mBAAoB,GACzC,OAAY,IAAI,kBAAmB,aACnC,KAAU,KAAI,kBAAmB,aACjC,gBAAqB,IAAI,OAAQ,WACjC,cAAmB,IAAI,KAAM,WAEnC,MAAU,UAAS,CAAC,gBAAiB,eADlB,GAIrB,gCAAgC,MAAM,aACpC,MAAU,MAAK,KACb,GAAM,KAAM,MAAK,IAAS,MAAK,IAAS,MACxC,MAAO,UAAS,IAAK,aAAa,eAAe,YA/DrD,GAAA,gBAAA,MAoEE,YAAY,OAAO,SACjB,KAAK,eAAiB,OACtB,KAAK,MAAQ,QAAO,KAAK,SAAS,UAClC,KAAK,OAAS,QAAO,KAAK,SAAS,UACnC,KAAK,YAAc,gBAAgB,QAAO,KAAK,SAAS,WACxD,KAAK,QAAa,SAAS,KAAK,aAChC,KAAK,UAAe,SAAS,CAAC,KAAK,MAAO,KAAK,SAC/C,KAAK,OAAS,QACd,KAAK,WAAa,QAGd,kBAAiB,YAErB,GAAK,CAAC,YAAgB,WAAW,oBAAwB,WAAW,MAAM,SAAW,GAAO,WAAW,MAAM,GAAK,GAAO,WAAW,MAAM,GAAK,EAAI,MAAO,MAC1J,GAAM,CAAC,gBAAiB,MAAO,QAAa,KAAK,KAC/C,GAAM,cAAe,WAAW,eAAe,CAAC,KAAK,MAAO,KAAK,SAE3D,gBAAqB,IAAI,aAAa,IAAI,OAAQ,GAClD,kBAAoB,KAAK,eAAe,QAAQ,iBAClD,WAEJ,GAAI,MAAM,QAAQ,oBAChB,GAAM,QAAS,kBAAkB,KAAK,CAAC,EAAG,IAAM,EAAE,KAAO,EAAE,MACrD,UAAe,OAAO,CAAC,OAAO,GAAI,OAAO,IAAK,GAC9C,UAAe,OAAO,CAAC,OAAO,GAAI,OAAO,IAAK,GAEpD,WADkB,OAAO,CAAC,UAAW,WAAY,GAC7B,QAAQ,OAE5B,YAAa,kBAAkB,UAEjC,GAAM,eAAgB,aAAa,WAAY,KAAK,QAAS,KAAK,WAC5D,OAAY,MAAM,WAAY,CAAC,EAAG,GAAI,CAAC,GAAI,IAC3C,UAAe,QAAQ,QAAQ,UACrC,MAAO,CAAC,WAAY,cAAe,aAE/B,iBAAmB,KAAS,OAAM,uBAAuB,MAAO,OAAQ,KAAK,OAAO,KAAK,SAAS,SAAU,KAAK,OAAO,KAAK,SAAS,aAAc,KAAK,OAAO,KAAK,SAAS,gBAC9K,WAAa,iBAAiB,YACpC,iBAAiB,UAEjB,GAAM,eADmB,WAAW,IAAK,UAAgB,MAAM,MAAO,CAAC,SAAU,GAAI,CAAC,EAAG,MAClD,IAAK,cAC1C,GAAM,MAAO,YAAY,YACzB,MAAA,aAAY,UACL,OAGH,UAAY,OAAO,WACnB,eAAiB,GACvB,OAAS,GAAI,EAAG,EAAI,cAAc,OAAQ,KACxC,GAAM,UAAW,WAAW,GACtB,WAAa,UAAU,UAC7B,GAAI,WAAa,KAAK,OAAO,KAAK,SAAS,eACzC,GAAM,KAAM,UAAU,cAAc,IAC9B,OAAS,KAAK,YAAY,UAC1B,UAAe,KAAK,IAAS,MAAM,gBAAiB,CAAC,SAAU,cAAgB,GAAI,CAAC,EAAG,KAAK,UAAU,QAAQ,CAAC,cAAe,MACpI,eAAe,KAAK,CAAE,IAAK,UAAW,OAAQ,cAGlD,MAAA,iBAAgB,UAChB,MAAM,UACN,OAAO,UACP,gBAAgB,UACT,CACL,MAAO,eACP,YAAa,CAAC,WAAW,MAAM,GAAK,KAAK,MAAO,WAAW,MAAM,GAAK,KAAK,cAIzE,eAAc,QAElB,GAAM,CAAE,MAAO,aAAgB,KAAM,MAAK,iBAAiB,QACrD,MAAQ,GACd,OAAW,SAAQ,QACjB,GAAM,cAAe,MAAK,UAAU,YAC9B,UAAY,uBAAuB,MAAM,aAEzC,QAAU,SAAS,YACnB,gBAAkB,MAAK,YAAY,YACnC,OAAS,MAAK,OACd,CAAC,aAAc,cAAgB,YAC/B,gBAAkB,aACrB,IAAK,UAAc,CACjB,UAAS,GAAK,OAAO,IAAM,aAC3B,UAAS,GAAK,OAAO,IAAM,eAE1B,eAAiB,CACrB,QAAS,QAAQ,MAAM,EAAG,GAC1B,YAAa,QAAQ,MAAM,GAC3B,UAAW,gBACX,YAAa,iBAEf,WAAW,MAAK,KAChB,MAAK,UAAU,UACf,MAAK,YAAY,UACjB,UAAU,UACV,MAAM,KAAK,gBAEb,MAAO,SAIX,qBAAoB,SAClB,GAAM,WAAY,KAAS,gBAAe,QAAO,KAAK,SAAS,UAAW,CAAE,UAAW,QAAO,KAAK,SAAS,UAAU,SAAS,eACzH,OAAQ,GAAI,gBAAe,UAAW,SAC5C,MAAA,KAAI,eAAe,QAAO,KAAK,SAAS,UAAU,MAAM,YAAY,MAC7D,OAGT,QAAQ,KAAO,MACf,QAAQ,eAAiB,eACzB,QAAQ,WAAa,aCjLrB,YAAA,WAAA,UAEA,8BAA6B,IAAK,QAChC,GAAM,YAAa,CAAC,IAAI,WAAW,GAAK,OAAO,GAAI,IAAI,WAAW,GAAK,OAAO,IACxE,SAAW,CAAC,IAAI,SAAS,GAAK,OAAO,GAAI,IAAI,SAAS,GAAK,OAAO,IACxE,MAAO,CAAE,WAAY,UAEvB,QAAQ,oBAAsB,qBAE9B,qBAAoB,KAClB,MAAO,CACL,KAAK,IAAI,IAAI,SAAS,GAAK,IAAI,WAAW,IAC1C,KAAK,IAAI,IAAI,SAAS,GAAK,IAAI,WAAW,KAG9C,QAAQ,WAAa,YAErB,uBAAsB,KACpB,MAAO,CACL,IAAI,WAAW,GAAM,KAAI,SAAS,GAAK,IAAI,WAAW,IAAM,EAC5D,IAAI,WAAW,GAAM,KAAI,SAAS,GAAK,IAAI,WAAW,IAAM,GAGhE,QAAQ,aAAe,cAEvB,mCAAkC,IAAK,OAAO,UAC5C,GAAM,GAAI,OAAM,MAAM,GAChB,EAAI,OAAM,MAAM,GAChB,MAAQ,CAAC,CACb,IAAI,WAAW,GAAK,EAAG,IAAI,WAAW,GAAK,EAAG,IAAI,SAAS,GAAK,EAChE,IAAI,SAAS,GAAK,IAEpB,MAAU,OAAM,cAAc,OAAO,MAAO,CAAC,GAAI,UAEnD,QAAQ,yBAA2B,0BAEnC,qBAAoB,IAAK,OAAS,KAChC,GAAM,QAAS,cAAa,KACtB,KAAO,YAAW,KAClB,YAAc,CAAC,OAAS,KAAK,GAAK,EAAG,OAAS,KAAK,GAAK,GACxD,WAAa,CAAC,OAAO,GAAK,YAAY,GAAI,OAAO,GAAK,YAAY,IAClE,SAAW,CAAC,OAAO,GAAK,YAAY,GAAI,OAAO,GAAK,YAAY,IACtE,MAAO,CAAE,WAAY,SAAU,UAAW,IAAI,WAEhD,QAAQ,WAAa,YAErB,sBAAqB,KACnB,GAAM,SAAU,cAAa,KACvB,KAAO,YAAW,KAElB,SADU,KAAK,IAAI,GAAG,MACD,EACrB,WAAa,CAAC,QAAQ,GAAK,SAAU,QAAQ,GAAK,UAClD,SAAW,CAAC,QAAQ,GAAK,SAAU,QAAQ,GAAK,UACtD,MAAO,CAAE,WAAY,SAAU,UAAW,IAAI,WAEhD,QAAQ,YAAc,eCvDtB,aAAA,WAAA,UAAA,QAAQ,gBAAkB,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IAKxD,2BAA0B,OACxB,MAAO,OAAQ,EAAI,KAAK,GAAK,KAAK,MAAO,OAAQ,KAAK,IAAO,GAAI,KAAK,KAExE,QAAQ,iBAAmB,kBAO3B,0BAAyB,OAAQ,QAC/B,GAAM,SAAU,KAAK,GAAK,EAAI,KAAK,MAAM,CAAE,QAAO,GAAK,OAAO,IAAK,OAAO,GAAK,OAAO,IACtF,MAAO,mBAAiB,SAE1B,QAAQ,gBAAkB,iBAE1B,sBAAsB,KACpB,MAAO,KAAM,IAAM,KAAK,GAE1B,QAAQ,aAAe,aAEvB,iCAAgC,EAAG,GACjC,MAAO,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IAGvC,cAAa,GAAI,IACf,GAAI,SAAU,EACd,OAAS,GAAI,EAAG,EAAI,GAAG,OAAQ,IAC7B,SAAW,GAAG,GAAK,GAAG,GAExB,MAAO,SAET,QAAQ,IAAM,KAEd,6BAA4B,IAAK,aAC/B,GAAM,QAAS,GACf,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,IAC9B,OAAO,KAAK,IAAI,GAAG,cAErB,MAAO,QAET,QAAQ,mBAAqB,oBAE7B,oCAAmC,KAAM,MACvC,GAAM,SAAU,GACV,KAAO,KAAK,OAClB,OAAS,KAAM,EAAG,IAAM,KAAM,OAC5B,QAAQ,KAAK,IACb,OAAS,KAAM,EAAG,IAAM,KAAM,MAC5B,QAAQ,KAAK,KAAK,KAAI,KAAK,KAAM,oBAAmB,KAAM,OAG9D,MAAO,SAET,8BAA6B,SAAU,QACrC,GAAM,MAAO,KAAK,IAAI,UAChB,KAAO,KAAK,IAAI,UAChB,eAAiB,CAAC,CAAC,KAAM,CAAC,KAAM,GAAI,CAAC,KAAM,KAAM,GAAI,CAAC,EAAG,EAAG,IAC5D,kBAAoB,wBAAuB,OAAO,GAAI,OAAO,IAC7D,yBAA2B,2BAA0B,kBAAmB,gBACxE,0BAA4B,wBAAuB,CAAC,OAAO,GAAI,CAAC,OAAO,IAC7E,MAAO,4BAA0B,yBAA0B,2BAE7D,QAAQ,oBAAsB,qBAE9B,gCAA+B,QAC7B,GAAM,mBAAoB,CAAC,CAAC,OAAO,GAAG,GAAI,OAAO,GAAG,IAAK,CAAC,OAAO,GAAG,GAAI,OAAO,GAAG,KAC5E,qBAAuB,CAAC,OAAO,GAAG,GAAI,OAAO,GAAG,IAChD,oBAAsB,CAC1B,CAAC,KAAI,kBAAkB,GAAI,sBAC3B,CAAC,KAAI,kBAAkB,GAAI,uBAE7B,MAAO,CACL,kBAAkB,GAAG,OAAO,oBAAoB,IAChD,kBAAkB,GAAG,OAAO,oBAAoB,IAChD,CAAC,EAAG,EAAG,IAGX,QAAQ,sBAAwB,uBAEhC,sBAAqB,sBAAuB,gBAC1C,MAAO,CACL,KAAI,sBAAuB,eAAe,IAC1C,KAAI,sBAAuB,eAAe,KAG9C,QAAQ,YAAc,aAEtB,iCAAiC,EAAG,GAClC,MAAO,MAAK,KAAO,GAAE,GAAK,EAAE,KAAO,EAAO,GAAE,GAAK,EAAE,KAAO,GAE5D,QAAQ,wBAA0B,0BChGlC,eAAA,WAAA,UAAA,GAAM,kBAAmB,CACvB,WAAY,CACV,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACvD,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,KAEpD,eAAgB,CAAC,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,KAC7D,eAAgB,CAAC,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAC3D,eAAgB,CAAC,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAC9D,eAAgB,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAC9D,eAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/C,eAAgB,CAAC,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACtD,eAAgB,CAAC,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,KAC1C,eAAgB,CAAC,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,KACpD,eAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/C,eAAgB,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,eAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzD,kBAAmB,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,KACnD,kBAAmB,CAAC,GAAI,IAAK,GAAI,GAAI,GAAI,IACzC,aAAc,CAAC,IAAK,IAAK,IAAK,IAAK,KACnC,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,iBAAkB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACtD,iBAAkB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC5C,YAAa,CAAC,IAAK,IAAK,IAAK,IAAK,KAClC,kBAAmB,CAAC,KACpB,QAAS,CAAC,GACV,WAAY,CAAC,GACb,gBAAiB,CAAC,IAClB,eAAgB,CAAC,KACjB,WAAY,CAAC,KACb,UAAW,CAAC,MAGR,yBAA2B,CAC/B,CAAE,IAAK,YAAa,QAAS,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,KACrD,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KACtD,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KACtD,CAAE,IAAK,YAAa,QAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACtD,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAC9D,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAC9D,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,MAK1D,MAAQ,CACZ,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAClJ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,G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AAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,CACC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EACnC,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EA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EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,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,GAAM,oBAAqB,QAAQ,QAAS,UAAU,UAChD,SAAW,OAAO,EAAG,oBACvB,WAAa,aAAa,QAAS,OAAO,EAAG,UAC3C,SAAW,SAAS,KAAO,WAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,SAAU,EAAE,EAC9B,WAAa,WAAW,WAAY,EAAI,GAE1C,WAAa,WAAW,WAAY,MAAK,SAAS,MAAO,SACzD,GAAM,WAAY,UAAU,UAC5B,MAAO,OAAM,WAAY,SAAU,WClC9B,GAAM,qBAAkC,CAC7C,WAAY,UACZ,SAAW,IACF,EAAC,EAAG,IAAM,UAAU,OC+FzB,YAA4B,CAChC,cACA,eACA,gBACA,cACA,eACA,iBACA,iBACA,eACA,gBACA,gBACA,eACA,gBACA,oBACA,kBACA,sBACA,yBACA,sBACA,eACA,eACA,sBACA,qBACA,iBACA,8BACA,iBACA,iBACA,cACA,eACA,iBACA,gCACA,qBACA,cACA,cACA,cACA,cACA,qBACA,gBACA,mBACA,gBACA,yBACA,iBACA,uBACA,mBACA,mBACA,gBACA,gBACA,oBACA,gBACA,cACA,qBACA,cACA,cACA,cACA,kBACA,oBACA,kBACA,eACA,cACA,kBACA,oBACA,cACA,mBACA,cACA,iBACA,mBACA,eACA,gBACA,gBACA,cACA,gBACA,qBACA,gBACA,eACA,kBACA,yBACA,gCACA,kBACA,gBACA,gBACA,iBACA,eACA,kBACA,eACA,cACA,eACA,gBACA,kBACA,mBACA,yBACA,yBACA,iBACA,iBACA,eACA,4BACA,iBACA,eACA,cACA,cACA,cACA,eACA,eACA,oBACA,iBACA,6BACA,qBAGF,OAAW,kBAAkB,aAC3B,iBAAiB,gBCxMnB,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCFb,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCCf,OAAO,UAAU,UAAY,SAChB,GACX,MAAA,MAAK,kBACE,UAAU,KAAM,ICRzB,OAAO,UAAU,IAAM,SAA2B,GAChD,MAAA,MAAK,kBACE,K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AAI,KAAK,eACT,cAAc,KAAK,WACnB,cAAc,KAAK,MACnB,cAAc,KAAK,YACnB,cAAc,KAAK,MACnB,cAAc,KAAK,eAGrB,GAAM,QAAS,KAAK,CAAC,OAAQ,IAAK,QAAA,UAAS,MAAO,CAAC,KAAM,KAEzD,MAAA,eAAc,QAAQ,GAAK,UAAQ,8BAA8B,IAE1D,OAGF,GAAM,0BAAyC,CACpD,WAAY,mBACZ,YAAa,MACb,WAAY,qBC2FR,cAAgC,CACpC,mBACA,UACA,WACA,YACA,UACA,WACA,UACA,UACA,aACA,aACA,WACA,YACA,WACA,YACA,YACA,cACA,gBACA,qBACA,mBACA,kBACA,gBACA,qBACA,eACA,WACA,WACA,WACA,cACA,iBACA,aACA,2BACA,0BACA,aACA,6BACA,4BACA,aACA,UACA,WACA,oBACA,aACA,oBACA,mBACA,4BACA,0CACA,yCACA,WACA,iBACA,8BACA,+BACA,cACA,UACA,eACA,YACA,UACA,UACA,iBACA,YACA,UACA,WACA,oBACA,YACA,eACA,kBACA,2BACA,eACA,eACA,cACA,mBACA,eACA,WACA,WACA,eACA,YACA,YACA,gBACA,WACA,gBACA,eACA,UACA,YACA,iBACA,iBACA,gBACA,UACA,cACA,cACA,cACA,gBACA,qBACA,mBACA,wBACA,UACA,WACA,UACA,cACA,gBACA,UACA,kBACA,eACA,UACA,0BACA,0BACA,0BACA,eACA,aACA,eACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,iBACA,WACA,YACA,cACA,qBACA,0BACA,4BACA,iCACA,cACA,uBACA,YACA,YACA,gBACA,aACA,WACA,cACA,WACA,UACA,WACA,YACA,cACA,eACA,qBACA,oBACA,aACA,WACA,aACA,wBACA,WACA,mBACA,UACA,UACA,UACA,WACA,WACA,WACA,gBACA,aACA,aACA,yBACA,iBAGF,OAAW,gBAAgB,eACzB,eAAe,cE7UjB,GAAA,oBAAA,GAAA,UAAA,mBAAA,CAAA,iBAAA,IAAA,kBAAA,wBAAA,IAAA,wBAAA,8BAAA,IAAA,8BAAA,mCAAA,I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oBACA,mBACA,mBACA,iBACA,sBACA,gBACA,YACA,YACA,kBACA,kBACA,eACA,cACA,4BACA,2BACA,cACA,8BACA,0BACA,cACA,WACA,YACA,qBACA,cACA,qBACA,oBACA,2CACA,0CACA,6BACA,YACA,iBACA,WACA,eACA,aACA,WACA,WACA,kBACA,aACA,WACA,YACA,qBACA,aACA,gBACA,iBACA,mBACA,4BACA,gBACA,gBACA,eACA,oBACA,gBACA,YACA,YACA,gBACA,aACA,aACA,iBACA,YACA,iBACA,gBACA,aACA,WACA,kBACA,kBACA,iBACA,WACA,iBACA,eACA,oBACA,mBACA,yBACA,eACA,YACA,WACA,eACA,iBACA,WACA,mBACA,gBACA,WACA,2BACA,2BACA,2BACA,gBACA,cACA,gBACA,YACA,aACA,WACA,aACA,YACA,aACA,YACA,eACA,kBACA,aACA,YACA,eACA,sBACA,0BACA,6BACA,iCACA,eACA,wBACA,aACA,aACA,iBACA,cACA,YACA,eACA,YACA,WACA,YACA,aACA,eACA,gBACA,sBACA,qBACA,cACA,YACA,cACA,yBACA,YACA,oBACA,WACA,WACA,WACA,YACA,YACA,YACA,iBACA,cACA,cACA,0BACA,kBAGF,OAAW,gBAAgB,gBACzB,eAAe,cEtTjB,GAAY,UAAZ,AAAA,UAAY,WACV,UAAA,UAAA,QAAA,GAAA,UACA,UAAA,UAAA,MAAA,GAAA,QACA,UAAA,UAAA,KAAA,GAAA,OACA,UAAA,UAAA,OAAA,GAAA,SACA,UAAA,UAAA,UAAA,GAAA,cALU,UAAA,UAAQ,KASpB,GAAY,mBAAZ,AAAA,UAAY,oBACV,mBAAA,mBAAA,OAAA,GAAA,SACA,mBAAA,mBAAA,KAAA,GAAA,OACA,mBAAA,mBAAA,MAAA,GAAA,QACA,mBAAA,mBAAA,MAAA,GAAA,QACA,mBAAA,mBAAA,UAAA,GAAA,cALU,mBAAA,mBAAiB,KCJ7B,GAAI,iBAOJ,eAAe,WACb,gBAAkB,UAAQ,KAAK,MAAM,aAAc,KAAiB,CAClE,SACA,QACA,SACA,SACA,QACA,SACA,SACA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", "names": [] } diff --git a/dist/demo-browser-index.json b/dist/demo-browser-index.json index 05b3035a..237b09c6 100644 --- a/dist/demo-browser-index.json +++ b/dist/demo-browser-index.json @@ -1,7 +1,7 @@ { "inputs": { "dist/human.esm.js": { - "bytes": 1912580, + "bytes": 1907681, "imports": [] }, "demo/draw.js": { @@ -38,14 +38,14 @@ "dist/demo-browser-index.js.map": { "imports": [], "inputs": {}, - "bytes": 2040931 + "bytes": 2030116 }, "dist/demo-browser-index.js": { "imports": [], "exports": [], "inputs": { "dist/human.esm.js": { - "bytesInOutput": 1905205 + "bytesInOutput": 1900306 }, "demo/draw.js": { "bytesInOutput": 7736 @@ -60,7 +60,7 @@ "bytesInOutput": 19424 } }, - "bytes": 1958909 + "bytes": 1954010 } } } diff --git a/dist/human.esm-nobundle.js b/dist/human.esm-nobundle.js index bf69b70d..fd2b2d60 100644 --- a/dist/human.esm-nobundle.js +++ b/dist/human.esm-nobundle.js @@ -5,14 +5,14 @@ author: ' */ -var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export=(target,all)=>{__markAsModule(target);for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__exportStar=(target,module,desc)=>{if(__markAsModule(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames(module))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc(module,key))||desc.enumerable});return target},__toModule=module=>module&&module.__esModule?module:__exportStar(__defProp(module!=null?__create(__getProtoOf(module)):{},"default",{value:module,enumerable:!0}),module);import{version as tfjs}from"@tensorflow/tfjs/package.json";import{version as versionCore}from"@tensorflow/tfjs-core/package.json";import{version as versionData}from"@tensorflow/tfjs-data/package.json";import{version as versionLayers}from"@tensorflow/tfjs-layers/package.json";import{version as versionConverter}from"@tensorflow/tfjs-converter/package.json";import{version_cpu}from"@tensorflow/tfjs-backend-cpu/dist/index.js";import{version_webgl}from"@tensorflow/tfjs-backend-webgl/dist/index.js";import{version_wasm}from"@tensorflow/tfjs-backend-wasm/dist/index.js";import*as dist_star from"@tensorflow/tfjs-core/dist/index.js";import*as dist_star2 from"@tensorflow/tfjs-layers/dist/index.js";import*as dist_star3 from"@tensorflow/tfjs-converter/dist/index.js";import*as data from"@tensorflow/tfjs-data/dist/index.js";import*as dist_star4 from"@tensorflow/tfjs-backend-cpu/dist/index.js";import*as dist_star5 from"@tensorflow/tfjs-backend-webgl/dist/index.js";import*as dist_star6 from"@tensorflow/tfjs-backend-wasm/dist/index.js";var require_tfjs_esm=__commonJS(exports=>{__export(exports,{data:()=>data,version:()=>version2});__exportStar(exports,dist_star);__exportStar(exports,dist_star2);__exportStar(exports,dist_star3);__exportStar(exports,dist_star4);__exportStar(exports,dist_star5);__exportStar(exports,dist_star6);var version2={tfjs,"tfjs-core":versionCore,"tfjs-data":versionData,"tfjs-layers":versionLayers,"tfjs-converter":versionConverter,"tfjs-backend-cpu":version_cpu,"tfjs-backend-webgl":version_webgl,"tfjs-backend-wasm":version_wasm}});var require_blazeface=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),NUM_LANDMARKS=6;function generateAnchors(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:tf4.slice(startEndTensor,[0,0],[-1,2]),endPoint:tf4.slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=tf4.mul(box.startPoint,factors),ends=tf4.mul(box.endPoint,factors),newCoordinates=tf4.concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors,inputSize){let boxStarts=tf4.slice(boxOutputs,[0,1],[-1,2]),centers=tf4.add(boxStarts,anchors),boxSizes=tf4.slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=tf4.div(boxSizes,inputSize),centersNormalized=tf4.div(centers,inputSize),halfBoxSize=tf4.div(boxSizesNormalized,2),starts=tf4.sub(centersNormalized,halfBoxSize),ends=tf4.add(centersNormalized,halfBoxSize),startNormalized=tf4.mul(starts,inputSize),endNormalized=tf4.mul(ends,inputSize);return tf4.concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tf4.tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model,config2){this.blazeFaceModel=model,this.width=config2.face.detector.inputSize,this.height=config2.face.detector.inputSize,this.anchorsData=generateAnchors(config2.face.detector.inputSize),this.anchors=tf4.tensor2d(this.anchorsData),this.inputSize=tf4.tensor1d([this.width,this.height]),this.config=config2,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tf4.tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=tf4.sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=tf4.concat([sorted[0],sorted[2]],2),concat512=tf4.concat([sorted[1],sorted[3]],2);prediction=tf4.concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=tf4.slice(prediction,[0,0],[-1,1]),scoresOut=tf4.sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await tf4.image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>tf4.slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tf4.tidy(()=>tf4.slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input){let{boxes,scaleFactor}=await this.getBoundingBoxes(input),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load2(config2){let blazeface=await tf4.loadGraphModel(config2.face.detector.modelPath,{fromTFHub:config2.face.detector.modelPath.includes("tfhub.dev")}),model=new BlazeFaceModel(blazeface,config2);return log(`load model: ${config2.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model}exports.load=load2;exports.BlazeFaceModel=BlazeFaceModel;exports.disposeBox=disposeBox});var require_box=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm());function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image4,cropSize){let h=image4.shape[1],w=image4.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf4.image.cropAndResize(image4,boxes,[0],cropSize)}exports.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports.squarifyBox=squarifyBox2});var require_util=__commonJS(exports=>{exports.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot2(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports.TRI468=TRI468;exports.TRI68=TRI68;exports.TRI33=TRI33;exports.TRI7=TRI7;exports.UV468=UV468;exports.UV68=VTX68.map(x=>UV468[x]);exports.UV33=VTX33.map(x=>UV468[x]);exports.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),bounding=__toModule(require_box()),util=__toModule(require_util()),coords=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=tf4.image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=tf4.image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input,config2){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config2.face.detector.skipFrames||!config2.face.mesh.enabled||!config2.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input),this.skipped=0),config2.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config2.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config2.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tf4.tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config2.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input.shape[2],faceCenter[1]/input.shape[1]],rotatedImage=tf4.image.rotateWithOffset(input,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config2.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports.Pipeline=Pipeline});var require_facemesh=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config2){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config2),this.config=config2}async estimateFaces(input,config2){let predictions=await this.facePipeline.predict(input,config2),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords.MESH_ANNOTATIONS))annotations[key]=coords.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config2.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?tf4.clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load2(config2){faceModels=await Promise.all([!faceModels[0]&&config2.face.enabled?blazeface.load(config2):null,!faceModels[1]&&config2.face.mesh.enabled?tf4.loadGraphModel(config2.face.mesh.modelPath,{fromTFHub:config2.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config2.face.iris.enabled?tf4.loadGraphModel(config2.face.iris.modelPath,{fromTFHub:config2.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config2);return config2.face.mesh.enabled&&log(`load model: ${config2.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config2.face.iris.enabled&&log(`load model: ${config2.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports.load=load2;exports.MediaPipeFaceMesh=MediaPipeFaceMesh;exports.triangulation=coords.TRI468});var require_profile=__commonJS(exports=>{var profileData={};function profile2(name,data3){if(!data3||!data3.kernels)return;let maxResults=5,time=data3.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data3.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data3.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data3.newBytes,newTensors:data3.newTensors,peakBytes:data3.peakBytes,numKernelOps:data3.kernels.length,timeKernelOps:time,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports.run=profile2});var require_age=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load2(config2){return models.age||(models.age=await tf4.loadGraphModel(config2.face.age.modelPath),log(`load model: ${config2.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models.age}async function predict2(image4,config2){return models.age?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf4.image.resizeBilinear(image4,[config2.face.age.inputSize,config2.face.age.inputSize],!1),enhance=tf4.mul(resize,[255]);tf4.dispose(resize);let ageT,obj={};if(!config2.profile)config2.face.age.enabled&&(ageT=await models.age.predict(enhance));else{let profileAge=config2.face.age.enabled?await tf4.profile(()=>models.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile2.run("age",profileAge)}if(enhance.dispose(),ageT){let data3=ageT.dataSync();obj.age=Math.trunc(10*data3[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict2;exports.load=load2});var require_gender=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load2(config2){return models.gender||(models.gender=await tf4.loadGraphModel(config2.face.gender.modelPath),alternative=models.gender.inputs[0].shape[3]===1,log(`load model: ${config2.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models.gender}async function predict2(image4,config2){return models.gender?skipped{let resize=tf4.image.resizeBilinear(image4,[config2.face.gender.inputSize,config2.face.gender.inputSize],!1),enhance;alternative?enhance=tf4.tidy(()=>{let[red,green,blue]=tf4.split(resize,3,3),redNorm=tf4.mul(red,rgb[0]),greenNorm=tf4.mul(green,rgb[1]),blueNorm=tf4.mul(blue,rgb[2]);return tf4.addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=tf4.mul(resize,[255]),tf4.dispose(resize);let genderT,obj={};if(!config2.profile)config2.face.gender.enabled&&(genderT=await models.gender.predict(enhance));else{let profileGender=config2.face.gender.enabled?await tf4.profile(()=>models.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile2.run("gender",profileGender)}if(enhance.dispose(),genderT){let data3=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data3[0]-data3[1]))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data3[0]>data3[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data3[0]-.5))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data3[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict2;exports.load=load2});var require_emotion=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale=1;async function load2(config2){return models.emotion||(models.emotion=await tf4.loadGraphModel(config2.face.emotion.modelPath),log(`load model: ${config2.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models.emotion}async function predict2(image4,config2){return models.emotion?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf4.image.resizeBilinear(image4,[config2.face.emotion.inputSize,config2.face.emotion.inputSize],!1),[red,green,blue]=tf4.split(resize,3,3);resize.dispose();let redNorm=tf4.mul(red,rgb[0]),greenNorm=tf4.mul(green,rgb[1]),blueNorm=tf4.mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=tf4.addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tf4.tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config2.face.emotion.enabled){let data3;if(config2.profile){let profileData=await tf4.profile(()=>models.emotion.predict(normalize));data3=profileData.result.dataSync(),profileData.result.dispose(),profile2.run("emotion",profileData)}else{let emotionT=await models.emotion.predict(normalize);data3=emotionT.dataSync(),tf4.dispose(emotionT)}for(let i=0;iconfig2.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale*data3[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict2;exports.load=load2});var require_embedding=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models={};async function load2(config2){return models.embedding||(models.embedding=await tf4.loadGraphModel(config2.face.embedding.modelPath),log(`load model: ${config2.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models.embedding}function simmilarity2(embedding1,embedding2){if((embedding1==null?void 0:embedding1.length)!==(embedding2==null?void 0:embedding2.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding2[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict2(image4,config2){return models.embedding?new Promise(async resolve=>{let resize=tf4.image.resizeBilinear(image4,[config2.face.embedding.inputSize,config2.face.embedding.inputSize],!1),data3=[];if(config2.face.embedding.enabled)if(config2.profile){let profileData=await tf4.profile(()=>models.embedding.predict({img_inputs:resize}));data3=[...profileData.result.dataSync()],profileData.result.dispose(),profile2.run("emotion",profileData)}else{let embeddingT=await models.embedding.predict({img_inputs:resize});data3=[...embeddingT.dataSync()],tf4.dispose(embeddingT)}resize.dispose(),resolve(data3)}):null}exports.predict=predict2;exports.simmilarity=simmilarity2;exports.load=load2});var require_modelBase=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model){this.model=model}predict(input,config2){return tf4.tidy(()=>{let asBatch=(config2.body.modelType==="ResNet"?input.toFloat().add(imageNetMean):input.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config2.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports.BaseModel=BaseModel});var require_heapSort=__commonJS(exports=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports.NUM_KEYPOINTS=exports.partNames.length;exports.partIds=exports.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports.partIds[jointNameA],exports.partIds[jointNameB]]);exports.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax?max:a}exports.clamp=clamp;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports.addVectors=addVectors;function clampVector(a,min,max){return{y:clamp(a.y,min,max),x:clamp(a.x,min,max)}}exports.clampVector=clampVector});var require_decoders=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(tf4.scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports.getOffsetPoints=getOffsetPoints;function mod(a,b){return tf4.tidy(()=>{let floored=a.div(tf4.scalar(b,"int32"));return a.sub(floored.mul(tf4.scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tf4.tidy(()=>{let coords=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords.div(tf4.scalar(width,"int32")).expandDims(1),xCoords=mod(coords,width).expandDims(1);return tf4.concat([yCoords,xCoords],1)})}exports.argmax2d=argmax2d});var require_decodePose=__commonJS(exports=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config2.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2){let poses=[],queue=buildParts.buildPartWithScoreQueue(config2.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config2.body.nmsRadius^2;for(;poses.lengthconfig2.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor=>tensor.buffer()))}exports.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports.scalePose=scalePose;function resizeTo(image3,[targetH,targetW]){let input=image3.squeeze(0),resized=input.resizeBilinear([targetH,targetW]);return input.dispose(),resized}exports.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2),scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}async function estimateSingle(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config2)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model){this.baseModel=model}async estimatePoses(input,config2){let resized=util.resizeTo(input,[config2.body.inputSize,config2.body.inputSize]),res=this.baseModel.predict(resized,config2),poses=config2.body.maxDetections<2?await estimateSingle(input,res,config2):await estimateMultiple(input,res,config2);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports.PoseNet=PoseNet;async function load2(config2){let model=await tf4.loadGraphModel(config2.body.modelPath),mobilenet=new modelBase.BaseModel(model);return log(`load model: ${config2.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports.load=load2});var require_posenet=__commonJS(exports=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports.load=modelPoseNet.load;exports.PoseNet=modelPoseNet.PoseNet;exports.partChannels=keypoints.partChannels;exports.partIds=keypoints.partIds;exports.partNames=keypoints.partNames;exports.poseChain=keypoints.poseChain;exports.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports.getBoundingBox=util.getBoundingBox;exports.getBoundingBoxPoints=util.getBoundingBoxPoints;exports.scaleAndFlipPoses=util.scaleAndFlipPoses;exports.scalePose=util.scalePose});var require_handdetector=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),HandDetector=class{constructor(model,inputSize,anchorsAnnotated){this.model=model,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tf4.tensor2d(this.anchors),this.inputSizeTensor=tf4.tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tf4.tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tf4.tidy(()=>{let boxOffsets=tf4.slice(boxes,[0,0],[-1,2]),boxSizes=tf4.slice(boxes,[0,2],[-1,2]),boxCenterPoints=tf4.add(tf4.div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=tf4.div(boxSizes,this.doubleInputSizeTensor),startPoints=tf4.mul(tf4.sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=tf4.mul(tf4.add(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return tf4.concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tf4.tidy(()=>{let landmarks=tf4.add(tf4.div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return tf4.mul(landmarks,this.inputSizeTensor)})}async getBoxes(input,config2){let batched=this.model.predict(input),predictions=batched.squeeze();batched.dispose();let scoresT=tf4.tidy(()=>tf4.sigmoid(tf4.slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=tf4.slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await tf4.image.nonMaxSuppressionAsync(boxes,scores,config2.hand.maxHands,config2.hand.iouThreshold,config2.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config2.hand.minConfidence){let matchingBox=tf4.slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=tf4.slice(predictions,[index,5],[1,14]),palmLandmarks=tf4.tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input,config2){let inputHeight=input.shape[1],inputWidth=input.shape[2],image4=tf4.tidy(()=>input.resizeBilinear([config2.hand.inputSize,config2.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image4,config2);image4.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config2.hand.inputSize,inputHeight/config2.hand.inputSize]))}return hands}};exports.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot(boxCenter,inverseRotationMatrix[0]),dot(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image4,config2){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config2.hand.skipFrames||!config2.hand.landmarks||!config2.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image4,config2),this.skipped=0),config2.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config2.hand.maxHands||!config2.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config2.hand.minConfidence){let keypointsReshaped=tf4.reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports=>{exports.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input,config2){let predictions=await this.handPipeline.estimateHands(input,config2);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports.HandPose=HandPose;async function load2(config2){let[handDetectorModel,handPoseModel]=await Promise.all([config2.hand.enabled?tf4.loadGraphModel(config2.hand.detector.modelPath,{fromTFHub:config2.hand.detector.modelPath.includes("tfhub.dev")}):null,config2.hand.landmarks?tf4.loadGraphModel(config2.hand.skeleton.modelPath,{fromTFHub:config2.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config2.hand.inputSize,anchors.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config2.hand.inputSize),handPose=new HandPose(handPipeline);return config2.hand.enabled&&log(`load model: ${config2.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config2.hand.landmarks&&log(`load model: ${config2.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports.load=load2});var require_gesture=__commonJS(exports=>{exports.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image3){if(_resize(image3.width,image3.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image3),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` +var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export=(target,all)=>{__markAsModule(target);for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__exportStar=(target,module,desc)=>{if(__markAsModule(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames(module))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc(module,key))||desc.enumerable});return target},__toModule=module=>module&&module.__esModule?module:__exportStar(__defProp(module!=null?__create(__getProtoOf(module)):{},"default",{value:module,enumerable:!0}),module);import{version as tfjs}from"@tensorflow/tfjs/package.json";import{version as versionCore}from"@tensorflow/tfjs-core/package.json";import{version as versionData}from"@tensorflow/tfjs-data/package.json";import{version as versionLayers}from"@tensorflow/tfjs-layers/package.json";import{version as versionConverter}from"@tensorflow/tfjs-converter/package.json";import{version_cpu}from"@tensorflow/tfjs-backend-cpu/dist/index.js";import{version_webgl}from"@tensorflow/tfjs-backend-webgl/dist/index.js";import{version_wasm}from"@tensorflow/tfjs-backend-wasm/dist/index.js";import*as dist_star from"@tensorflow/tfjs-core/dist/index.js";import*as dist_star2 from"@tensorflow/tfjs-layers/dist/index.js";import*as dist_star3 from"@tensorflow/tfjs-converter/dist/index.js";import*as data from"@tensorflow/tfjs-data/dist/index.js";import*as dist_star4 from"@tensorflow/tfjs-backend-cpu/dist/index.js";import*as dist_star5 from"@tensorflow/tfjs-backend-webgl/dist/index.js";import*as dist_star6 from"@tensorflow/tfjs-backend-wasm/dist/index.js";var require_tfjs_esm=__commonJS(exports=>{__export(exports,{data:()=>data,version:()=>version2});__exportStar(exports,dist_star);__exportStar(exports,dist_star2);__exportStar(exports,dist_star3);__exportStar(exports,dist_star4);__exportStar(exports,dist_star5);__exportStar(exports,dist_star6);var version2={tfjs,"tfjs-core":versionCore,"tfjs-data":versionData,"tfjs-layers":versionLayers,"tfjs-converter":versionConverter,"tfjs-backend-cpu":version_cpu,"tfjs-backend-webgl":version_webgl,"tfjs-backend-wasm":version_wasm}});var require_blazeface=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),NUM_LANDMARKS=6;function generateAnchors(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:tf5.slice(startEndTensor,[0,0],[-1,2]),endPoint:tf5.slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=tf5.mul(box.startPoint,factors),ends=tf5.mul(box.endPoint,factors),newCoordinates=tf5.concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors,inputSize){let boxStarts=tf5.slice(boxOutputs,[0,1],[-1,2]),centers=tf5.add(boxStarts,anchors),boxSizes=tf5.slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=tf5.div(boxSizes,inputSize),centersNormalized=tf5.div(centers,inputSize),halfBoxSize=tf5.div(boxSizesNormalized,2),starts=tf5.sub(centersNormalized,halfBoxSize),ends=tf5.add(centersNormalized,halfBoxSize),startNormalized=tf5.mul(starts,inputSize),endNormalized=tf5.mul(ends,inputSize);return tf5.concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tf5.tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model,config2){this.blazeFaceModel=model,this.width=config2.face.detector.inputSize,this.height=config2.face.detector.inputSize,this.anchorsData=generateAnchors(config2.face.detector.inputSize),this.anchors=tf5.tensor2d(this.anchorsData),this.inputSize=tf5.tensor1d([this.width,this.height]),this.config=config2,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tf5.tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=tf5.sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=tf5.concat([sorted[0],sorted[2]],2),concat512=tf5.concat([sorted[1],sorted[3]],2);prediction=tf5.concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=tf5.slice(prediction,[0,0],[-1,1]),scoresOut=tf5.sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await tf5.image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>tf5.slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tf5.tidy(()=>tf5.slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input){let{boxes,scaleFactor}=await this.getBoundingBoxes(input),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load3(config2){let blazeface=await tf5.loadGraphModel(config2.face.detector.modelPath,{fromTFHub:config2.face.detector.modelPath.includes("tfhub.dev")}),model=new BlazeFaceModel(blazeface,config2);return log(`load model: ${config2.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model}exports.load=load3;exports.BlazeFaceModel=BlazeFaceModel;exports.disposeBox=disposeBox});var require_box=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm());function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image5,cropSize){let h=image5.shape[1],w=image5.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf5.image.cropAndResize(image5,boxes,[0],cropSize)}exports.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports.squarifyBox=squarifyBox2});var require_util=__commonJS(exports=>{exports.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot2(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports.TRI468=TRI468;exports.TRI68=TRI68;exports.TRI33=TRI33;exports.TRI7=TRI7;exports.UV468=UV468;exports.UV68=VTX68.map(x=>UV468[x]);exports.UV33=VTX33.map(x=>UV468[x]);exports.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),bounding=__toModule(require_box()),util=__toModule(require_util()),coords=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=tf5.image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=tf5.image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input,config2){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config2.face.detector.skipFrames||!config2.face.mesh.enabled||!config2.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input),this.skipped=0),config2.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config2.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config2.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tf5.tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config2.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input.shape[2],faceCenter[1]/input.shape[1]],rotatedImage=tf5.image.rotateWithOffset(input,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config2.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports.Pipeline=Pipeline});var require_facemesh=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config2){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config2),this.config=config2}async estimateFaces(input,config2){let predictions=await this.facePipeline.predict(input,config2),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords.MESH_ANNOTATIONS))annotations[key]=coords.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config2.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?tf5.clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load3(config2){faceModels=await Promise.all([!faceModels[0]&&config2.face.enabled?blazeface.load(config2):null,!faceModels[1]&&config2.face.mesh.enabled?tf5.loadGraphModel(config2.face.mesh.modelPath,{fromTFHub:config2.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config2.face.iris.enabled?tf5.loadGraphModel(config2.face.iris.modelPath,{fromTFHub:config2.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config2);return config2.face.mesh.enabled&&log(`load model: ${config2.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config2.face.iris.enabled&&log(`load model: ${config2.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports.load=load3;exports.MediaPipeFaceMesh=MediaPipeFaceMesh;exports.triangulation=coords.TRI468});var require_profile=__commonJS(exports=>{var profileData={};function profile2(name,data3){if(!data3||!data3.kernels)return;let maxResults=5,time=data3.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data3.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data3.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data3.newBytes,newTensors:data3.newTensors,peakBytes:data3.peakBytes,numKernelOps:data3.kernels.length,timeKernelOps:time,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports.run=profile2});var require_age=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models2={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load3(config2){return models2.age||(models2.age=await tf5.loadGraphModel(config2.face.age.modelPath),log(`load model: ${config2.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models2.age}async function predict3(image5,config2){return models2.age?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf5.image.resizeBilinear(image5,[config2.face.age.inputSize,config2.face.age.inputSize],!1),enhance=tf5.mul(resize,[255]);tf5.dispose(resize);let ageT,obj={};if(!config2.profile)config2.face.age.enabled&&(ageT=await models2.age.predict(enhance));else{let profileAge=config2.face.age.enabled?await tf5.profile(()=>models2.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile2.run("age",profileAge)}if(enhance.dispose(),ageT){let data3=ageT.dataSync();obj.age=Math.trunc(10*data3[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_gender=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models2={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load3(config2){return models2.gender||(models2.gender=await tf5.loadGraphModel(config2.face.gender.modelPath),alternative=models2.gender.inputs[0].shape[3]===1,log(`load model: ${config2.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models2.gender}async function predict3(image5,config2){return models2.gender?skipped{let resize=tf5.image.resizeBilinear(image5,[config2.face.gender.inputSize,config2.face.gender.inputSize],!1),enhance;alternative?enhance=tf5.tidy(()=>{let[red,green,blue]=tf5.split(resize,3,3),redNorm=tf5.mul(red,rgb[0]),greenNorm=tf5.mul(green,rgb[1]),blueNorm=tf5.mul(blue,rgb[2]);return tf5.addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=tf5.mul(resize,[255]),tf5.dispose(resize);let genderT,obj={};if(!config2.profile)config2.face.gender.enabled&&(genderT=await models2.gender.predict(enhance));else{let profileGender=config2.face.gender.enabled?await tf5.profile(()=>models2.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile2.run("gender",profileGender)}if(enhance.dispose(),genderT){let data3=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data3[0]-data3[1]))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data3[0]>data3[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data3[0]-.5))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data3[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_emotion=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models2={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale=1;async function load3(config2){return models2.emotion||(models2.emotion=await tf5.loadGraphModel(config2.face.emotion.modelPath),log(`load model: ${config2.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models2.emotion}async function predict3(image5,config2){return models2.emotion?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf5.image.resizeBilinear(image5,[config2.face.emotion.inputSize,config2.face.emotion.inputSize],!1),[red,green,blue]=tf5.split(resize,3,3);resize.dispose();let redNorm=tf5.mul(red,rgb[0]),greenNorm=tf5.mul(green,rgb[1]),blueNorm=tf5.mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=tf5.addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tf5.tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config2.face.emotion.enabled){let data3;if(config2.profile){let profileData=await tf5.profile(()=>models2.emotion.predict(normalize));data3=profileData.result.dataSync(),profileData.result.dispose(),profile2.run("emotion",profileData)}else{let emotionT=await models2.emotion.predict(normalize);data3=emotionT.dataSync(),tf5.dispose(emotionT)}for(let i=0;iconfig2.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale*data3[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_embedding=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models2={};async function load3(config2){return models2.embedding||(models2.embedding=await tf5.loadGraphModel(config2.face.embedding.modelPath),log(`load model: ${config2.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models2.embedding}function simmilarity2(embedding1,embedding2){if((embedding1==null?void 0:embedding1.length)!==(embedding2==null?void 0:embedding2.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding2[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict3(image5,config2){return models2.embedding?new Promise(async resolve=>{let resize=tf5.image.resizeBilinear(image5,[config2.face.embedding.inputSize,config2.face.embedding.inputSize],!1),data3=[];if(config2.face.embedding.enabled)if(config2.profile){let profileData=await tf5.profile(()=>models2.embedding.predict({img_inputs:resize}));data3=[...profileData.result.dataSync()],profileData.result.dispose(),profile2.run("emotion",profileData)}else{let embeddingT=await models2.embedding.predict({img_inputs:resize});data3=[...embeddingT.dataSync()],tf5.dispose(embeddingT)}resize.dispose(),resolve(data3)}):null}exports.predict=predict3;exports.simmilarity=simmilarity2;exports.load=load3});var require_modelBase=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model){this.model=model}predict(input,config2){return tf5.tidy(()=>{let asBatch=(config2.body.modelType==="ResNet"?input.toFloat().add(imageNetMean):input.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config2.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports.BaseModel=BaseModel});var require_heapSort=__commonJS(exports=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports.NUM_KEYPOINTS=exports.partNames.length;exports.partIds=exports.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports.partIds[jointNameA],exports.partIds[jointNameB]]);exports.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax?max:a}exports.clamp=clamp;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports.addVectors=addVectors;function clampVector(a,min,max){return{y:clamp(a.y,min,max),x:clamp(a.x,min,max)}}exports.clampVector=clampVector});var require_decoders=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(tf5.scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports.getOffsetPoints=getOffsetPoints;function mod(a,b){return tf5.tidy(()=>{let floored=a.div(tf5.scalar(b,"int32"));return a.sub(floored.mul(tf5.scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tf5.tidy(()=>{let coords=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords.div(tf5.scalar(width,"int32")).expandDims(1),xCoords=mod(coords,width).expandDims(1);return tf5.concat([yCoords,xCoords],1)})}exports.argmax2d=argmax2d});var require_decodePose=__commonJS(exports=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config2.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2){let poses=[],queue=buildParts.buildPartWithScoreQueue(config2.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config2.body.nmsRadius^2;for(;poses.lengthconfig2.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor=>tensor.buffer()))}exports.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports.scalePose=scalePose;function resizeTo(image4,[targetH,targetW]){let input=image4.squeeze(0),resized=input.resizeBilinear([targetH,targetW]);return input.dispose(),resized}exports.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2),scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}async function estimateSingle(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config2)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model){this.baseModel=model}async estimatePoses(input,config2){let resized=util.resizeTo(input,[config2.body.inputSize,config2.body.inputSize]),res=this.baseModel.predict(resized,config2),poses=config2.body.maxDetections<2?await estimateSingle(input,res,config2):await estimateMultiple(input,res,config2);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports.PoseNet=PoseNet;async function load3(config2){let model=await tf5.loadGraphModel(config2.body.modelPath),mobilenet=new modelBase.BaseModel(model);return log(`load model: ${config2.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports.load=load3});var require_posenet=__commonJS(exports=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports.load=modelPoseNet.load;exports.PoseNet=modelPoseNet.PoseNet;exports.partChannels=keypoints.partChannels;exports.partIds=keypoints.partIds;exports.partNames=keypoints.partNames;exports.poseChain=keypoints.poseChain;exports.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports.getBoundingBox=util.getBoundingBox;exports.getBoundingBoxPoints=util.getBoundingBoxPoints;exports.scaleAndFlipPoses=util.scaleAndFlipPoses;exports.scalePose=util.scalePose});var require_handdetector=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),HandDetector=class{constructor(model,inputSize,anchorsAnnotated){this.model=model,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tf5.tensor2d(this.anchors),this.inputSizeTensor=tf5.tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tf5.tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tf5.tidy(()=>{let boxOffsets=tf5.slice(boxes,[0,0],[-1,2]),boxSizes=tf5.slice(boxes,[0,2],[-1,2]),boxCenterPoints=tf5.add(tf5.div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=tf5.div(boxSizes,this.doubleInputSizeTensor),startPoints=tf5.mul(tf5.sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=tf5.mul(tf5.add(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return tf5.concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tf5.tidy(()=>{let landmarks=tf5.add(tf5.div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return tf5.mul(landmarks,this.inputSizeTensor)})}async getBoxes(input,config2){let batched=this.model.predict(input),predictions=batched.squeeze();batched.dispose();let scoresT=tf5.tidy(()=>tf5.sigmoid(tf5.slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=tf5.slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await tf5.image.nonMaxSuppressionAsync(boxes,scores,config2.hand.maxHands,config2.hand.iouThreshold,config2.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config2.hand.minConfidence){let matchingBox=tf5.slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=tf5.slice(predictions,[index,5],[1,14]),palmLandmarks=tf5.tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input,config2){let inputHeight=input.shape[1],inputWidth=input.shape[2],image5=tf5.tidy(()=>input.resizeBilinear([config2.hand.inputSize,config2.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image5,config2);image5.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config2.hand.inputSize,inputHeight/config2.hand.inputSize]))}return hands}};exports.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot(boxCenter,inverseRotationMatrix[0]),dot(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image5,config2){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config2.hand.skipFrames||!config2.hand.landmarks||!config2.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image5,config2),this.skipped=0),config2.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config2.hand.maxHands||!config2.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config2.hand.minConfidence){let keypointsReshaped=tf5.reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports=>{exports.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input,config2){let predictions=await this.handPipeline.estimateHands(input,config2);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports.HandPose=HandPose;async function load3(config2){let[handDetectorModel,handPoseModel]=await Promise.all([config2.hand.enabled?tf5.loadGraphModel(config2.hand.detector.modelPath,{fromTFHub:config2.hand.detector.modelPath.includes("tfhub.dev")}):null,config2.hand.landmarks?tf5.loadGraphModel(config2.hand.skeleton.modelPath,{fromTFHub:config2.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config2.hand.inputSize,anchors.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config2.hand.inputSize),handPose=new HandPose(handPipeline);return config2.hand.enabled&&log(`load model: ${config2.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config2.hand.landmarks&&log(`load model: ${config2.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports.load=load3});var require_gesture=__commonJS(exports=>{exports.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image4){if(_resize(image4.width,image4.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image4),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` `),SHADER.FRAGMENT_IDENTITY=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","void main(void) {","gl_FragColor = texture2D(texture, vUv);","}"].join(` `);let _filter={};_filter.colorMatrix=function(matrix){let m=new Float32Array(matrix);m[4]/=255,m[9]/=255,m[14]/=255,m[19]/=255;let shader=m[18]===1&&m[3]===0&&m[8]===0&&m[13]===0&&m[15]===0&&m[16]===0&&m[17]===0&&m[19]===0?_filter.colorMatrix.SHADER.WITHOUT_ALPHA:_filter.colorMatrix.SHADER.WITH_ALPHA,program=_compileShader(shader);gl.uniform1fv(program.uniform.m,m),_draw()},_filter.colorMatrix.SHADER={},_filter.colorMatrix.SHADER.WITH_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];","gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];","}"].join(` `),_filter.colorMatrix.SHADER.WITHOUT_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];","gl_FragColor.a = c.a;","}"].join(` `),_filter.brightness=function(brightness){let b=(brightness||0)+1;_filter.colorMatrix([b,0,0,0,0,0,b,0,0,0,0,0,b,0,0,0,0,0,1,0])},_filter.saturation=function(amount){let x=(amount||0)*2/3+1,y=(x-1)*-.5;_filter.colorMatrix([x,y,y,0,0,y,x,y,0,0,y,y,x,0,0,0,0,0,1,0])},_filter.desaturate=function(){_filter.saturation(-1)},_filter.contrast=function(amount){let v=(amount||0)+1,o=-128*(v-1);_filter.colorMatrix([v,0,0,0,o,0,v,0,0,o,0,0,v,0,o,0,0,0,1,0])},_filter.negative=function(){_filter.contrast(-2)},_filter.hue=function(rotation){rotation=(rotation||0)/180*Math.PI;let cos=Math.cos(rotation),sin=Math.sin(rotation),lumR=.213,lumG=.715,lumB=.072;_filter.colorMatrix([lumR+cos*(1-lumR)+sin*-lumR,lumG+cos*-lumG+sin*-lumG,lumB+cos*-lumB+sin*(1-lumB),0,0,lumR+cos*-lumR+sin*.143,lumG+cos*(1-lumG)+sin*.14,lumB+cos*-lumB+sin*-.283,0,0,lumR+cos*-lumR+sin*-(1-lumR),lumG+cos*-lumG+sin*lumG,lumB+cos*(1-lumB)+sin*lumB,0,0,0,0,0,1,0])},_filter.desaturateLuminance=function(){_filter.colorMatrix([.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,0,0,0,1,0])},_filter.sepia=function(){_filter.colorMatrix([.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0])},_filter.brownie=function(){_filter.colorMatrix([.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0])},_filter.vintagePinhole=function(){_filter.colorMatrix([.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0])},_filter.kodachrome=function(){_filter.colorMatrix([1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0])},_filter.technicolor=function(){_filter.colorMatrix([1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0])},_filter.polaroid=function(){_filter.colorMatrix([1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0])},_filter.shiftToBGR=function(){_filter.colorMatrix([0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0])},_filter.convolution=function(matrix){let m=new Float32Array(matrix),pixelSizeX=1/_width,pixelSizeY=1/_height,program=_compileShader(_filter.convolution.SHADER);gl.uniform1fv(program.uniform.m,m),gl.uniform2f(program.uniform.px,pixelSizeX,pixelSizeY),_draw()},_filter.convolution.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","uniform float m[9];","void main(void) {","vec4 c11 = texture2D(texture, vUv - px);","vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));","vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));","vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );","vec4 c22 = texture2D(texture, vUv);","vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );","vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );","vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );","vec4 c33 = texture2D(texture, vUv + px );","gl_FragColor = ","c11 * m[0] + c12 * m[1] + c22 * m[2] +","c21 * m[3] + c22 * m[4] + c23 * m[5] +","c31 * m[6] + c32 * m[7] + c33 * m[8];","gl_FragColor.a = c22.a;","}"].join(` `),_filter.detectEdges=function(){_filter.convolution.call(this,[0,1,0,1,-4,1,0,1,0])},_filter.sobelX=function(){_filter.convolution.call(this,[-1,0,1,-2,0,2,-1,0,1])},_filter.sobelY=function(){_filter.convolution.call(this,[-1,-2,-1,0,0,0,1,2,1])},_filter.sharpen=function(amount){let a=amount||1;_filter.convolution.call(this,[0,-1*a,0,-1*a,1+4*a,-1*a,0,-1*a,0])},_filter.emboss=function(size){let s=size||1;_filter.convolution.call(this,[-2*s,-1*s,0,-1*s,1,1*s,0,1*s,2*s])},_filter.blur=function(size){let blurSizeX=size/7/_width,blurSizeY=size/7/_height,program=_compileShader(_filter.blur.SHADER);gl.uniform2f(program.uniform.px,0,blurSizeY),_draw(DRAW.INTERMEDIATE),gl.uniform2f(program.uniform.px,blurSizeX,0),_draw()},_filter.blur.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","void main(void) {","gl_FragColor = vec4(0.0);","gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;","gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv )*0.159576912161;","gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;","}"].join(` `),_filter.pixelate=function(size){let blurSizeX=size/_width,blurSizeY=size/_height,program=_compileShader(_filter.pixelate.SHADER);gl.uniform2f(program.uniform.size,blurSizeX,blurSizeY),_draw()},_filter.pixelate.SHADER=["precision highp float;","varying vec2 vUv;","uniform vec2 size;","uniform sampler2D texture;","vec2 pixelate(vec2 coord, vec2 size) {","return floor( coord / size ) * size;","}","void main(void) {","gl_FragColor = vec4(0.0);","vec2 coord = pixelate(vUv, size);","gl_FragColor += texture2D(texture, coord);","}"].join(` -`)};exports.Canvas=WebGLImageFilter});var require_image=__commonJS(exports=>{var tf4=__toModule(require_tfjs_esm()),fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input,config2){let tensor;if(input instanceof tf4.Tensor)tensor=tf4.clone(input);else{let originalWidth=input.naturalWidth||input.videoWidth||input.width||input.shape&&input.shape[1]>0,originalHeight=input.naturalHeight||input.videoHeight||input.height||input.shape&&input.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config2.filter.width>0?targetWidth=config2.filter.width:config2.filter.height>0&&(targetWidth=originalWidth*(config2.filter.height/originalHeight)),config2.filter.height>0?targetHeight=config2.filter.height:config2.filter.width>0&&(targetHeight=originalHeight*(config2.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input instanceof ImageData?ctx.putImageData(input,0,0):ctx.drawImage(input,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config2.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=tf4.ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config2.filter.brightness),config2.filter.contrast!==0&&this.fx.addFilter("contrast",config2.filter.contrast),config2.filter.sharpness!==0&&this.fx.addFilter("sharpen",config2.filter.sharpness),config2.filter.blur!==0&&this.fx.addFilter("blur",config2.filter.blur),config2.filter.saturation!==0&&this.fx.addFilter("saturation",config2.filter.saturation),config2.filter.hue!==0&&this.fx.addFilter("hue",config2.filter.hue),config2.filter.negative&&this.fx.addFilter("negative"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.vintage&&this.fx.addFilter("brownie"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.kodachrome&&this.fx.addFilter("kodachrome"),config2.filter.technicolor&&this.fx.addFilter("technicolor"),config2.filter.polaroid&&this.fx.addFilter("polaroid"),config2.filter.pixelate!==0&&this.fx.addFilter("pixelate",config2.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tf4.tensor3d(outCanvas.data,shape,"int32")}else if(config2.backend==="webgl"||outCanvas instanceof ImageData)pixels=tf4.browser.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data3=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=tf4.browser.fromPixels(data3)}let casted=pixels.toFloat();tensor=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor,canvas:config2.filter.return?outCanvas:null}}exports.process=process3});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tf3=__toModule(require_tfjs_esm());var tf=__toModule(require_tfjs_esm()),config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!tf.findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);tf.setWebGLContext(2,gl);let ctx=new tf.GPGPUContext(gl);tf.registerBackend(config.name,()=>new tf.MathBackendWebGL(ctx),config.priority),tf.getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};tf.registerKernel(newKernelConfig)}),tf.ENV.set("WEBGL_VERSION",2),tf.ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),tf.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding=__toModule(require_embedding()),posenet=__toModule(require_posenet());var tf2=__toModule(require_tfjs_esm());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf2.image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` +`)};exports.Canvas=WebGLImageFilter});var require_image=__commonJS(exports=>{var tf5=__toModule(require_tfjs_esm()),fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input,config2){let tensor;if(input instanceof tf5.Tensor)tensor=tf5.clone(input);else{let originalWidth=input.naturalWidth||input.videoWidth||input.width||input.shape&&input.shape[1]>0,originalHeight=input.naturalHeight||input.videoHeight||input.height||input.shape&&input.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config2.filter.width>0?targetWidth=config2.filter.width:config2.filter.height>0&&(targetWidth=originalWidth*(config2.filter.height/originalHeight)),config2.filter.height>0?targetHeight=config2.filter.height:config2.filter.width>0&&(targetHeight=originalHeight*(config2.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input instanceof ImageData?ctx.putImageData(input,0,0):ctx.drawImage(input,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config2.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=tf5.ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config2.filter.brightness),config2.filter.contrast!==0&&this.fx.addFilter("contrast",config2.filter.contrast),config2.filter.sharpness!==0&&this.fx.addFilter("sharpen",config2.filter.sharpness),config2.filter.blur!==0&&this.fx.addFilter("blur",config2.filter.blur),config2.filter.saturation!==0&&this.fx.addFilter("saturation",config2.filter.saturation),config2.filter.hue!==0&&this.fx.addFilter("hue",config2.filter.hue),config2.filter.negative&&this.fx.addFilter("negative"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.vintage&&this.fx.addFilter("brownie"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.kodachrome&&this.fx.addFilter("kodachrome"),config2.filter.technicolor&&this.fx.addFilter("technicolor"),config2.filter.polaroid&&this.fx.addFilter("polaroid"),config2.filter.pixelate!==0&&this.fx.addFilter("pixelate",config2.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tf5.tensor3d(outCanvas.data,shape,"int32")}else if(config2.backend==="webgl"||outCanvas instanceof ImageData)pixels=tf5.browser.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data3=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=tf5.browser.fromPixels(data3)}let casted=pixels.toFloat();tensor=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor,canvas:config2.filter.return?outCanvas:null}}exports.process=process3});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tf4=__toModule(require_tfjs_esm());var tf=__toModule(require_tfjs_esm()),config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!tf.findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);tf.setWebGLContext(2,gl);let ctx=new tf.GPGPUContext(gl);tf.registerBackend(config.name,()=>new tf.MathBackendWebGL(ctx),config.priority),tf.getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};tf.registerKernel(newKernelConfig)}),tf.ENV.set("WEBGL_VERSION",2),tf.ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),tf.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding=__toModule(require_embedding()),posenet=__toModule(require_posenet());var tf2=__toModule(require_tfjs_esm()),models={};async function load(config2){return models.blazepose||(models.blazepose=await tf2.loadGraphModel(config2.pose.modelPath),log(`load model: ${config2.pose.modelPath.match(/\/(.*)\./)[1]}`)),models.blazepose}async function predict(image4,config2){return models.blazepose?new Promise(async resolve=>{let resize=tf2.image.resizeBilinear(image4,[config2.pose.inputSize,config2.pose.inputSize],!1),enhance=tf2.div(resize,127.5).sub(1);tf2.dispose(resize);let logits=await models.blazepose.predict(enhance);tf2.dispose(enhance),logits.map(logit=>logit.dispose()),resolve(logits)}):null}var tf3=__toModule(require_tfjs_esm());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image4,cropSize){let h=image4.shape[1],w=image4.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf3.image.cropAndResize(image4,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},pose:{enabled:!1,scoreThreshold:.6,iouThreshold:.3,modelPath:"../models/blazepose.json",inputSize:256},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` /9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu bmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob @@ -731,5 +731,5 @@ AAAAAAJAAAAAAAAAAAAAABAJEAAAAAAAAAAAAAAAIEoBKAAAAAAAAAAAAAAABAlAAAAAAAIAAAAA BAkBAkBAkBAlACEgMZjdjbFW8bWrEx8YWANb6Fp+bfwab+vLDKMFK9qxH5L0bAr8OPRPKz2AY7J2 SbAjYZAI2E7AIEgIEgIEgMdkSy2NgY7MdlmyNoBXsxmFuyNgVTVjNV3KjlBRNTlXTVHKCrlIqt5T lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/ -2Q==`;var version="0.9.23";var now=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tf3,this.version=version,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=tf3.engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input){if(!this.checkSanity)return null;if(!input)return"input is not defined";if(tf3.ENV.flags.IS_NODE&&!(input instanceof tf3.Tensor))return"input must be a tensor";try{tf3.getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding2){return this.config.face.embedding.enabled?embedding.simmilarity(embedding1,embedding2):0}async load(userConfig){this.state="load";let timeStamp=now();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${tf3.version_core}`),await this.checkBackend(!0),tf3.ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",tf3.ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)));let current=Math.trunc(now()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||tf3.getBackend()!==this.config.backend){let timeStamp=now();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),tf3.setWasmPaths(this.config.wasmPath),await tf3.env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await tf3.setBackend(this.config.backend),tf3.enableProdMode(),tf3.getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),tf3.ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),tf3.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf3.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await tf3.backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await tf3.ready(),this.perf.backend=Math.trunc(now()-timeStamp)}}async detectFace(input){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input,this.config));this.perf.face=Math.trunc(now()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now(),embeddingRes=this.config.face.embedding.enabled?await embedding.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image2.process(input,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input);error&&(log(error,input),resolve({error}));let poseRes,handRes,faceRes,timeStart=now();await this.checkBackend(),await this.load(),this.config.scoped&&tf3.engine().startScope(),this.analyze("Start Scope:"),timeStamp=now();let process3=image2.process(input,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now()-timeStamp)),this.config.async&&([faceRes,poseRes,handRes]=await Promise.all([faceRes,poseRes,handRes])),process3.tensor.dispose(),this.config.scoped&&tf3.engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now()-timeStamp)),this.perf.total=Math.trunc(now()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res=>res.blob());userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let blob;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(!blob)return null;let bitmap=await createImageBitmap(blob),t0=now(),warmup=await this.detect(bitmap,config_exports),t1=now();return bitmap.close(),log("Warmup",this.config.warmup,t1-t0,warmup),this.config.videoOptimized=video,warmup}};export{Human as default}; +2Q==`;var version="0.9.24";var now=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tf4,this.version=version,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=tf4.engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input){if(!this.checkSanity)return null;if(!input)return"input is not defined";if(tf4.ENV.flags.IS_NODE&&!(input instanceof tf4.Tensor))return"input must be a tensor";try{tf4.getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding2){return this.config.face.embedding.enabled?embedding.simmilarity(embedding1,embedding2):0}async load(userConfig){this.state="load";let timeStamp=now();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${tf4.version_core}`),await this.checkBackend(!0),tf4.ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",tf4.ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose,this.models.blazepose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null),this.models.blazepose||(this.config.pose.enabled?load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)),this.config.pose.enabled&&!this.models.blazepose&&(this.models.blazepose=await load(this.config)));let current=Math.trunc(now()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||tf4.getBackend()!==this.config.backend){let timeStamp=now();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),tf4.setWasmPaths(this.config.wasmPath),await tf4.env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await tf4.setBackend(this.config.backend),tf4.enableProdMode(),tf4.getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),tf4.ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),tf4.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf4.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await tf4.backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await tf4.ready(),this.perf.backend=Math.trunc(now()-timeStamp)}}async detectFace(input){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input,this.config));this.perf.face=Math.trunc(now()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now(),embeddingRes=this.config.face.embedding.enabled?await embedding.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image3.process(input,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input);error&&(log(error,input),resolve({error}));let poseRes,blazeposeRes,handRes,faceRes,timeStart=now();await this.checkBackend(),await this.load(),this.config.scoped&&tf4.engine().startScope(),this.analyze("Start Scope:"),timeStamp=now();let process3=image3.process(input,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Pose:"),this.config.async?(blazeposeRes=this.config.pose.enabled?predict(process3.tensor,this.config):[],this.perf.pose&&delete this.perf.pose):(this.state="run:pose",timeStamp=now(),blazeposeRes=this.config.pose.enabled?await predict(process3.tensor,this.config):[],this.perf.pose=Math.trunc(now()-timeStamp)),this.analyze("End Pose:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now()-timeStamp)),this.analyze("End Hand:"),this.config.async&&([faceRes,poseRes,blazeposeRes,handRes]=await Promise.all([faceRes,poseRes,blazeposeRes,handRes])),process3.tensor.dispose(),this.config.scoped&&tf4.engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now()-timeStamp)),this.perf.total=Math.trunc(now()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,pose:blazeposeRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmupBitmap(){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res2=>res2.blob()),blob,res;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(blob){let bitmap=await createImageBitmap(blob);res=await this.detect(bitmap,config_exports),bitmap.close()}return res}async warmupCanvas(){return new Promise(resolve=>{let src,size=0;switch(this.config.warmup){case"face":size=256,src="data:image/jpeg;base64,"+face;break;case"full":size=1200,src="data:image/jpeg;base64,"+body;break;default:src=null}let img=new Image(size,size);img.onload=()=>{let canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(size,size):document.createElement("canvas");canvas.width=size,canvas.height=size;let ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);let data3=ctx.getImageData(0,0,size,size);this.detect(data3,config_exports).then(res=>resolve(res))},src?img.src=src:resolve(null)})}async warmup(userConfig){let t0=now();userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let res;typeof createImageBitmap=="function"?res=await this.warmupBitmap():res=await this.warmupCanvas(),this.config.videoOptimized=video;let t1=now();return log("Warmup",this.config.warmup,t1-t0,res),res}};export{Human as default}; //# sourceMappingURL=human.esm-nobundle.js.map diff --git a/dist/human.esm-nobundle.js.map b/dist/human.esm-nobundle.js.map index ab7b72b7..52797d9f 100644 --- a/dist/human.esm-nobundle.js.map +++ b/dist/human.esm-nobundle.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../src/tfjs/tf-browser.js", "../src/face/blazeface.js", "../src/face/box.js", "../src/face/util.js", "../src/face/coords.js", "../src/face/facepipeline.js", "../src/face/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/body/modelBase.js", "../src/body/heapSort.js", "../src/body/buildParts.js", "../src/body/keypoints.js", "../src/body/vectors.js", "../src/body/decoders.js", "../src/body/decodePose.js", "../src/body/decodeMultiple.js", "../src/body/util.js", "../src/body/modelPoseNet.js", "../src/body/posenet.js", "../src/hand/handdetector.js", "../src/hand/handpipeline.js", "../src/hand/anchors.js", "../src/hand/handpose.js", "../src/gesture/gesture.js", "../src/imagefx.js", "../src/image.js", "../src/log.js", "../src/human.js", "../src/tfjs/backend.js", "../src/hand/box.js", "../src/hand/util.js", "../config.js", "../src/sample.js"], - "sourcesContent": ["// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport { version as tfjs } from '@tensorflow/tfjs/package.json';\nimport { version as versionCore } from '@tensorflow/tfjs-core/package.json';\nimport { version as versionData } from '@tensorflow/tfjs-data/package.json';\nimport { version as versionLayers } from '@tensorflow/tfjs-layers/package.json';\nimport { version as versionConverter } from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs,\n 'tfjs-core': versionCore,\n 'tfjs-data': versionData,\n 'tfjs-layers': versionLayers,\n 'tfjs-converter': versionConverter,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './face/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './body/posenet.js';\nimport * as handpose from './hand/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n // @ts-ignore\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n // @ts-ignore\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n // @ts-ignore\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n ] = await Promise.all([\n // @ts-ignore\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n // @ts-ignore\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n // @ts-ignore\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n // @ts-ignore\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n // @ts-ignore\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n // @ts-ignore\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n // @ts-ignore\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n ]);\n } else {\n // @ts-ignore\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n // @ts-ignore\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n // @ts-ignore\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n // @ts-ignore\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n // @ts-ignore\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n // @ts-ignore\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n // @ts-ignore\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n // @ts-ignore\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n // @ts-ignore\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n // @ts-ignore\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n // @ts-ignore\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n // @ts-ignore\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n // @ts-ignore\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n // @ts-ignore\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n // @ts-ignore\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n // @ts-ignore\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n // @ts-ignore\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n // @ts-ignore\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n // this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, handRes] = await Promise.all([faceRes, poseRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig) {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let blob;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (!blob) return null;\n const bitmap = await createImageBitmap(blob);\n const t0 = now();\n const warmup = await this.detect(bitmap, config);\n const t1 = now();\n bitmap.close();\n log('Warmup', this.config.warmup, (t1 - t0), warmup);\n this.config.videoOptimized = video;\n return warmup;\n }\n}\n\nexport { Human as default };\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n"], - "mappings": "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B,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAClJ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAChJ,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IACpJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GACrJ,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GACpJ,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EACpJ,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAC9I,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GA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AG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SA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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kEA0JP,KAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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", + "sources": ["../src/tfjs/tf-browser.js", "../src/blazeface/blazeface.js", "../src/blazeface/box.js", "../src/blazeface/util.js", "../src/blazeface/coords.js", "../src/blazeface/facepipeline.js", "../src/blazeface/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/posenet/modelBase.js", "../src/posenet/heapSort.js", "../src/posenet/buildParts.js", "../src/posenet/keypoints.js", "../src/posenet/vectors.js", "../src/posenet/decoders.js", "../src/posenet/decodePose.js", "../src/posenet/decodeMultiple.js", "../src/posenet/util.js", "../src/posenet/modelPoseNet.js", "../src/posenet/posenet.js", "../src/handpose/handdetector.js", "../src/handpose/handpipeline.js", "../src/handpose/anchors.js", "../src/handpose/handpose.js", "../src/gesture/gesture.js", "../src/imagefx.js", "../src/image.js", "../src/log.js", "../src/human.js", "../src/tfjs/backend.js", "../src/blazepose/blazepose.js", "../src/handpose/box.js", "../src/handpose/util.js", "../config.js", "../src/sample.js"], + "sourcesContent": ["// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport { version as tfjs } from '@tensorflow/tfjs/package.json';\nimport { version as versionCore } from '@tensorflow/tfjs-core/package.json';\nimport { version as versionData } from '@tensorflow/tfjs-data/package.json';\nimport { version as versionLayers } from '@tensorflow/tfjs-layers/package.json';\nimport { version as versionConverter } from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs,\n 'tfjs-core': versionCore,\n 'tfjs-data': versionData,\n 'tfjs-layers': versionLayers,\n 'tfjs-converter': versionConverter,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './blazeface/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './posenet/posenet.js';\nimport * as blazepose from './blazepose/blazepose.js';\nimport * as handpose from './handpose/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.blazepose || (this.config.pose.enabled ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.pose.enabled && !this.models.blazepose) this.models.blazepose = await blazepose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let blazeposeRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run posenet\n this.analyze('Start Pose:');\n if (this.config.async) {\n blazeposeRes = this.config.pose.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.perf.pose) delete this.perf.pose;\n } else {\n this.state = 'run:pose';\n timeStamp = now();\n blazeposeRes = this.config.pose.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.perf.pose = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Pose:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, blazeposeRes, handRes] = await Promise.all([faceRes, poseRes, blazeposeRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, pose: blazeposeRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmupBitmap() {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, config);\n bitmap.close();\n }\n return res;\n }\n\n async warmupCanvas() {\n return new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n const img = new Image(size, size);\n img.onload = () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = size;\n canvas.height = size;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const data = ctx.getImageData(0, 0, size, size);\n this.detect(data, config).then((res) => resolve(res));\n };\n if (src) img.src = src;\n else resolve(null);\n });\n }\n\n async warmup(userConfig) {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.warmupBitmap();\n else res = await this.warmupCanvas();\n this.config.videoOptimized = video;\n const t1 = now();\n log('Warmup', this.config.warmup, (t1 - t0), res);\n return res;\n }\n}\n\nexport { Human as default };\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n// import * as profile from '../profile.js';\n\nconst models = {};\n\nexport async function load(config) {\n if (!models.blazepose) {\n models.blazepose = await tf.loadGraphModel(config.pose.modelPath);\n log(`load model: ${config.pose.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.blazepose;\n}\n\nexport async function predict(image, config) {\n if (!models.blazepose) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.pose.inputSize, config.pose.inputSize], false);\n const enhance = tf.div(resize, 127.5).sub(1);\n tf.dispose(resize);\n const logits = await models.blazepose.predict(enhance);\n //\n tf.dispose(enhance);\n logits.map((logit) => logit.dispose());\n resolve(logits);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n pose: { // TBD: not currently in use\n enabled: false,\n scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n modelPath: '../models/blazepose.json',\n inputSize: 256, // fixed value\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n"], + "mappings": "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B,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAA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I,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAClJ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAChJ,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IACpJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GACrJ,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GACpJ,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EACpJ,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAC9I,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GA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AG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SA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6BAEb,SAAU,CACR,UAAW,iCCjLV,GAAM,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kEA0JP,KAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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", "names": [] } diff --git a/dist/human.esm.js b/dist/human.esm.js index e22051c8..dc1b9812 100644 --- a/dist/human.esm.js +++ b/dist/human.esm.js @@ -5,19 +5,19 @@ author: ' */ -var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export=(target,all4)=>{__markAsModule(target);for(var name in all4)__defProp(target,name,{get:all4[name],enumerable:!0})},__exportStar=(target,module,desc)=>{if(__markAsModule(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames(module))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc(module,key))||desc.enumerable});return target},__toModule=module=>module&&module.__esModule?module:__exportStar(__defProp(module!=null?__create(__getProtoOf(module)):{},"default",{value:module,enumerable:!0}),module);var require_blazeface=__commonJS(exports=>{var NUM_LANDMARKS=6;function generateAnchors2(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors2=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:slice(startEndTensor,[0,0],[-1,2]),endPoint:slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=mul(box.startPoint,factors),ends=mul(box.endPoint,factors),newCoordinates=concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors2,inputSize){let boxStarts=slice(boxOutputs,[0,1],[-1,2]),centers=add2(boxStarts,anchors2),boxSizes=slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=div(boxSizes,inputSize),centersNormalized=div(centers,inputSize),halfBoxSize=div(boxSizesNormalized,2),starts=sub(centersNormalized,halfBoxSize),ends=add2(centersNormalized,halfBoxSize),startNormalized=mul(starts,inputSize),endNormalized=mul(ends,inputSize);return concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model2,config3){this.blazeFaceModel=model2,this.width=config3.face.detector.inputSize,this.height=config3.face.detector.inputSize,this.anchorsData=generateAnchors2(config3.face.detector.inputSize),this.anchors=tensor2d(this.anchorsData),this.inputSize=tensor1d([this.width,this.height]),this.config=config3,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=concat([sorted[0],sorted[2]],2),concat512=concat([sorted[1],sorted[3]],2);prediction=concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=slice(prediction,[0,0],[-1,1]),scoresOut=sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tidy(()=>slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input2){let{boxes,scaleFactor}=await this.getBoundingBoxes(input2),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load3(config3){let blazeface=await loadGraphModel(config3.face.detector.modelPath,{fromTFHub:config3.face.detector.modelPath.includes("tfhub.dev")}),model2=new BlazeFaceModel(blazeface,config3);return log(`load model: ${config3.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model2}exports.load=load3;exports.BlazeFaceModel=BlazeFaceModel;exports.disposeBox=disposeBox});var require_box=__commonJS(exports=>{function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}exports.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports.squarifyBox=squarifyBox2});var require_util=__commonJS(exports=>{exports.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot5(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports.TRI468=TRI468;exports.TRI68=TRI68;exports.TRI33=TRI33;exports.TRI7=TRI7;exports.UV468=UV468;exports.UV68=VTX68.map(x=>UV468[x]);exports.UV33=VTX33.map(x=>UV468[x]);exports.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports=>{var bounding=__toModule(require_box()),util=__toModule(require_util()),coords2=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords2.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input2,config3){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config3.face.detector.skipFrames||!config3.face.mesh.enabled||!config3.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input2),this.skipped=0),config3.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config3.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config3.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config3.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input2.shape[2],faceCenter[1]/input2.shape[1]],rotatedImage=image.rotateWithOffset(input2,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input2.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config3.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports.Pipeline=Pipeline});var require_facemesh=__commonJS(exports=>{var blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords2=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config3){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config3),this.config=config3}async estimateFaces(input2,config3){let predictions=await this.facePipeline.predict(input2,config3),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords2.MESH_ANNOTATIONS))annotations[key]=coords2.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config3.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input2.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input2.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load3(config3){faceModels=await Promise.all([!faceModels[0]&&config3.face.enabled?blazeface.load(config3):null,!faceModels[1]&&config3.face.mesh.enabled?loadGraphModel(config3.face.mesh.modelPath,{fromTFHub:config3.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config3.face.iris.enabled?loadGraphModel(config3.face.iris.modelPath,{fromTFHub:config3.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config3);return config3.face.mesh.enabled&&log(`load model: ${config3.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config3.face.iris.enabled&&log(`load model: ${config3.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports.load=load3;exports.MediaPipeFaceMesh=MediaPipeFaceMesh;exports.triangulation=coords2.TRI468});var require_profile=__commonJS(exports=>{var profileData={};function profile3(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time2=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time2,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports.run=profile3});var require_age=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load3(config3){return models2.age||(models2.age=await loadGraphModel(config3.face.age.modelPath),log(`load model: ${config3.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models2.age}async function predict3(image3,config3){return models2.age?skipped0?(skipped++,last):(config3.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config3.face.age.inputSize,config3.face.age.inputSize],!1),enhance=mul(resize,[255]);dispose(resize);let ageT,obj={};if(!config3.profile)config3.face.age.enabled&&(ageT=await models2.age.predict(enhance));else{let profileAge=config3.face.age.enabled?await profile(()=>models2.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile3.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_gender=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load3(config3){return models2.gender||(models2.gender=await loadGraphModel(config3.face.gender.modelPath),alternative=models2.gender.inputs[0].shape[3]===1,log(`load model: ${config3.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models2.gender}async function predict3(image3,config3){return models2.gender?skipped{let resize=image.resizeBilinear(image3,[config3.face.gender.inputSize,config3.face.gender.inputSize],!1),enhance;alternative?enhance=tidy(()=>{let[red,green,blue]=split(resize,3,3),redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);return addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=mul(resize,[255]),dispose(resize);let genderT,obj={};if(!config3.profile)config3.face.gender.enabled&&(genderT=await models2.gender.predict(enhance));else{let profileGender=config3.face.gender.enabled?await profile(()=>models2.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile3.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config3.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config3.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_emotion=__commonJS(exports=>{var profile3=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models2={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale2=1;async function load3(config3){return models2.emotion||(models2.emotion=await loadGraphModel(config3.face.emotion.modelPath),log(`load model: ${config3.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models2.emotion}async function predict3(image3,config3){return models2.emotion?skipped0?(skipped++,last):(config3.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config3.face.emotion.inputSize,config3.face.emotion.inputSize],!1),[red,green,blue]=split(resize,3,3);resize.dispose();let redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config3.face.emotion.enabled){let data2;if(config3.profile){let profileData=await profile(()=>models2.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile3.run("emotion",profileData)}else{let emotionT=await models2.emotion.predict(normalize);data2=emotionT.dataSync(),dispose(emotionT)}for(let i=0;iconfig3.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale2*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_embedding=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={};async function load3(config3){return models2.embedding||(models2.embedding=await loadGraphModel(config3.face.embedding.modelPath),log(`load model: ${config3.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models2.embedding}function simmilarity2(embedding1,embedding22){if((embedding1==null?void 0:embedding1.length)!==(embedding22==null?void 0:embedding22.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding22[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict3(image3,config3){return models2.embedding?new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config3.face.embedding.inputSize,config3.face.embedding.inputSize],!1),data2=[];if(config3.face.embedding.enabled)if(config3.profile){let profileData=await profile(()=>models2.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile3.run("emotion",profileData)}else{let embeddingT=await models2.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports.predict=predict3;exports.simmilarity=simmilarity2;exports.load=load3});var require_modelBase=__commonJS(exports=>{var imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model2){this.model=model2}predict(input2,config3){return tidy(()=>{let asBatch=(config3.body.modelType==="ResNet"?input2.toFloat().add(imageNetMean):input2.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config3.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports.BaseModel=BaseModel});var require_heapSort=__commonJS(exports=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max6=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max6}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports.NUM_KEYPOINTS=exports.partNames.length;exports.partIds=exports.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports.partIds[jointNameA],exports.partIds[jointNameB]]);exports.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax6?max6:a}exports.clamp=clamp2;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports.addVectors=addVectors;function clampVector(a,min6,max6){return{y:clamp2(a.y,min6,max6),x:clamp2(a.x,min6,max6)}}exports.clampVector=clampVector});var require_decoders=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports.getOffsetPoints=getOffsetPoints;function mod4(a,b){return tidy(()=>{let floored=a.div(scalar(b,"int32"));return a.sub(floored.mul(scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tidy(()=>{let coords2=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords2.div(scalar(width,"int32")).expandDims(1),xCoords=mod4(coords2,width).expandDims(1);return concat([yCoords,xCoords],1)})}exports.argmax2d=argmax2d});var require_decodePose=__commonJS(exports=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config3.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config3){let poses=[],queue=buildParts.buildPartWithScoreQueue(config3.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config3.body.nmsRadius^2;for(;poses.lengthconfig3.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor2=>tensor2.buffer()))}exports.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports.scalePose=scalePose;function resizeTo(image3,[targetH,targetW]){let input2=image3.squeeze(0),resized=input2.resizeBilinear([targetH,targetW]);return input2.dispose(),resized}exports.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports=>{var modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input2,res,config3){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config3),scaled=util.scaleAndFlipPoses(poses,[height,width],[config3.body.inputSize,config3.body.inputSize]);resolve(scaled)})}async function estimateSingle(input2,res,config3){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config3)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config3.body.inputSize,config3.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model2){this.baseModel=model2}async estimatePoses(input2,config3){let resized=util.resizeTo(input2,[config3.body.inputSize,config3.body.inputSize]),res=this.baseModel.predict(resized,config3),poses=config3.body.maxDetections<2?await estimateSingle(input2,res,config3):await estimateMultiple(input2,res,config3);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports.PoseNet=PoseNet;async function load3(config3){let model2=await loadGraphModel(config3.body.modelPath),mobilenet=new modelBase.BaseModel(model2);return log(`load model: ${config3.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports.load=load3});var require_posenet=__commonJS(exports=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports.load=modelPoseNet.load;exports.PoseNet=modelPoseNet.PoseNet;exports.partChannels=keypoints.partChannels;exports.partIds=keypoints.partIds;exports.partNames=keypoints.partNames;exports.poseChain=keypoints.poseChain;exports.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports.getBoundingBox=util.getBoundingBox;exports.getBoundingBoxPoints=util.getBoundingBoxPoints;exports.scaleAndFlipPoses=util.scaleAndFlipPoses;exports.scalePose=util.scalePose});var require_handdetector=__commonJS(exports=>{var HandDetector=class{constructor(model2,inputSize,anchorsAnnotated){this.model=model2,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tensor2d(this.anchors),this.inputSizeTensor=tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tidy(()=>{let boxOffsets=slice(boxes,[0,0],[-1,2]),boxSizes=slice(boxes,[0,2],[-1,2]),boxCenterPoints=add2(div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=div(boxSizes,this.doubleInputSizeTensor),startPoints=mul(sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=mul(add2(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tidy(()=>{let landmarks=add2(div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return mul(landmarks,this.inputSizeTensor)})}async getBoxes(input2,config3){let batched=this.model.predict(input2),predictions=batched.squeeze();batched.dispose();let scoresT=tidy(()=>sigmoid(slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await image.nonMaxSuppressionAsync(boxes,scores,config3.hand.maxHands,config3.hand.iouThreshold,config3.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config3.hand.minConfidence){let matchingBox=slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=slice(predictions,[index,5],[1,14]),palmLandmarks=tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input2,config3){let inputHeight=input2.shape[1],inputWidth=input2.shape[2],image3=tidy(()=>input2.resizeBilinear([config3.hand.inputSize,config3.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image3,config3);image3.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config3.hand.inputSize,inputHeight/config3.hand.inputSize]))}return hands}};exports.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports=>{var PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot4(boxCenter,inverseRotationMatrix[0]),dot4(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image3,config3){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config3.hand.skipFrames||!config3.hand.landmarks||!config3.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image3,config3),this.skipped=0),config3.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config3.hand.maxHands||!config3.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config3.hand.minConfidence){let keypointsReshaped=reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords2=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords2);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords2,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports=>{exports.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports=>{var handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors2=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input2,config3){let predictions=await this.handPipeline.estimateHands(input2,config3);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input2.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input2.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports.HandPose=HandPose;async function load3(config3){let[handDetectorModel,handPoseModel]=await Promise.all([config3.hand.enabled?loadGraphModel(config3.hand.detector.modelPath,{fromTFHub:config3.hand.detector.modelPath.includes("tfhub.dev")}):null,config3.hand.landmarks?loadGraphModel(config3.hand.skeleton.modelPath,{fromTFHub:config3.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config3.hand.inputSize,anchors2.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config3.hand.inputSize),handPose=new HandPose(handPipeline);return config3.hand.enabled&&log(`load model: ${config3.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config3.hand.landmarks&&log(`load model: ${config3.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports.load=load3});var require_gesture=__commonJS(exports=>{exports.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image3){if(_resize(image3.width,image3.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image3),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` +var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export=(target,all4)=>{__markAsModule(target);for(var name in all4)__defProp(target,name,{get:all4[name],enumerable:!0})},__exportStar=(target,module,desc)=>{if(__markAsModule(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames(module))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc(module,key))||desc.enumerable});return target},__toModule=module=>module&&module.__esModule?module:__exportStar(__defProp(module!=null?__create(__getProtoOf(module)):{},"default",{value:module,enumerable:!0}),module);var require_blazeface=__commonJS(exports=>{var NUM_LANDMARKS=6;function generateAnchors(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:slice(startEndTensor,[0,0],[-1,2]),endPoint:slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=mul(box.startPoint,factors),ends=mul(box.endPoint,factors),newCoordinates=concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors,inputSize){let boxStarts=slice(boxOutputs,[0,1],[-1,2]),centers=add2(boxStarts,anchors),boxSizes=slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=div(boxSizes,inputSize),centersNormalized=div(centers,inputSize),halfBoxSize=div(boxSizesNormalized,2),starts=sub(centersNormalized,halfBoxSize),ends=add2(centersNormalized,halfBoxSize),startNormalized=mul(starts,inputSize),endNormalized=mul(ends,inputSize);return concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model2,config2){this.blazeFaceModel=model2,this.width=config2.face.detector.inputSize,this.height=config2.face.detector.inputSize,this.anchorsData=generateAnchors(config2.face.detector.inputSize),this.anchors=tensor2d(this.anchorsData),this.inputSize=tensor1d([this.width,this.height]),this.config=config2,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=concat([sorted[0],sorted[2]],2),concat512=concat([sorted[1],sorted[3]],2);prediction=concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=slice(prediction,[0,0],[-1,1]),scoresOut=sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tidy(()=>slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input2){let{boxes,scaleFactor}=await this.getBoundingBoxes(input2),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load3(config2){let blazeface=await loadGraphModel(config2.face.detector.modelPath,{fromTFHub:config2.face.detector.modelPath.includes("tfhub.dev")}),model2=new BlazeFaceModel(blazeface,config2);return log(`load model: ${config2.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model2}exports.load=load3;exports.BlazeFaceModel=BlazeFaceModel;exports.disposeBox=disposeBox});var require_box=__commonJS(exports=>{function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}exports.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports.squarifyBox=squarifyBox2});var require_util=__commonJS(exports=>{exports.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot5(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports.TRI468=TRI468;exports.TRI68=TRI68;exports.TRI33=TRI33;exports.TRI7=TRI7;exports.UV468=UV468;exports.UV68=VTX68.map(x=>UV468[x]);exports.UV33=VTX33.map(x=>UV468[x]);exports.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports=>{var bounding=__toModule(require_box()),util=__toModule(require_util()),coords2=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords2.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input2,config2){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config2.face.detector.skipFrames||!config2.face.mesh.enabled||!config2.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input2),this.skipped=0),config2.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config2.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config2.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config2.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input2.shape[2],faceCenter[1]/input2.shape[1]],rotatedImage=image.rotateWithOffset(input2,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input2.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config2.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports.Pipeline=Pipeline});var require_facemesh=__commonJS(exports=>{var blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords2=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config2){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config2),this.config=config2}async estimateFaces(input2,config2){let predictions=await this.facePipeline.predict(input2,config2),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords2.MESH_ANNOTATIONS))annotations[key]=coords2.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config2.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input2.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input2.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load3(config2){faceModels=await Promise.all([!faceModels[0]&&config2.face.enabled?blazeface.load(config2):null,!faceModels[1]&&config2.face.mesh.enabled?loadGraphModel(config2.face.mesh.modelPath,{fromTFHub:config2.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config2.face.iris.enabled?loadGraphModel(config2.face.iris.modelPath,{fromTFHub:config2.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config2);return config2.face.mesh.enabled&&log(`load model: ${config2.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config2.face.iris.enabled&&log(`load model: ${config2.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports.load=load3;exports.MediaPipeFaceMesh=MediaPipeFaceMesh;exports.triangulation=coords2.TRI468});var require_profile=__commonJS(exports=>{var profileData={};function profile3(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time2=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time2,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports.run=profile3});var require_age=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load3(config2){return models2.age||(models2.age=await loadGraphModel(config2.face.age.modelPath),log(`load model: ${config2.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models2.age}async function predict3(image3,config2){return models2.age?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.face.age.inputSize,config2.face.age.inputSize],!1),enhance=mul(resize,[255]);dispose(resize);let ageT,obj={};if(!config2.profile)config2.face.age.enabled&&(ageT=await models2.age.predict(enhance));else{let profileAge=config2.face.age.enabled?await profile(()=>models2.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile3.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_gender=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load3(config2){return models2.gender||(models2.gender=await loadGraphModel(config2.face.gender.modelPath),alternative=models2.gender.inputs[0].shape[3]===1,log(`load model: ${config2.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models2.gender}async function predict3(image3,config2){return models2.gender?skipped{let resize=image.resizeBilinear(image3,[config2.face.gender.inputSize,config2.face.gender.inputSize],!1),enhance;alternative?enhance=tidy(()=>{let[red,green,blue]=split(resize,3,3),redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);return addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=mul(resize,[255]),dispose(resize);let genderT,obj={};if(!config2.profile)config2.face.gender.enabled&&(genderT=await models2.gender.predict(enhance));else{let profileGender=config2.face.gender.enabled?await profile(()=>models2.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile3.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_emotion=__commonJS(exports=>{var profile3=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models2={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale2=1;async function load3(config2){return models2.emotion||(models2.emotion=await loadGraphModel(config2.face.emotion.modelPath),log(`load model: ${config2.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models2.emotion}async function predict3(image3,config2){return models2.emotion?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.face.emotion.inputSize,config2.face.emotion.inputSize],!1),[red,green,blue]=split(resize,3,3);resize.dispose();let redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config2.face.emotion.enabled){let data2;if(config2.profile){let profileData=await profile(()=>models2.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile3.run("emotion",profileData)}else{let emotionT=await models2.emotion.predict(normalize);data2=emotionT.dataSync(),dispose(emotionT)}for(let i=0;iconfig2.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale2*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_embedding=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={};async function load3(config2){return models2.embedding||(models2.embedding=await loadGraphModel(config2.face.embedding.modelPath),log(`load model: ${config2.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models2.embedding}function simmilarity2(embedding1,embedding22){if((embedding1==null?void 0:embedding1.length)!==(embedding22==null?void 0:embedding22.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding22[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict3(image3,config2){return models2.embedding?new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.face.embedding.inputSize,config2.face.embedding.inputSize],!1),data2=[];if(config2.face.embedding.enabled)if(config2.profile){let profileData=await profile(()=>models2.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile3.run("emotion",profileData)}else{let embeddingT=await models2.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports.predict=predict3;exports.simmilarity=simmilarity2;exports.load=load3});var require_modelBase=__commonJS(exports=>{var imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model2){this.model=model2}predict(input2,config2){return tidy(()=>{let asBatch=(config2.body.modelType==="ResNet"?input2.toFloat().add(imageNetMean):input2.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config2.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports.BaseModel=BaseModel});var require_heapSort=__commonJS(exports=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max6=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max6}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports.NUM_KEYPOINTS=exports.partNames.length;exports.partIds=exports.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports.partIds[jointNameA],exports.partIds[jointNameB]]);exports.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax6?max6:a}exports.clamp=clamp2;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports.addVectors=addVectors;function clampVector(a,min6,max6){return{y:clamp2(a.y,min6,max6),x:clamp2(a.x,min6,max6)}}exports.clampVector=clampVector});var require_decoders=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports.getOffsetPoints=getOffsetPoints;function mod4(a,b){return tidy(()=>{let floored=a.div(scalar(b,"int32"));return a.sub(floored.mul(scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tidy(()=>{let coords2=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords2.div(scalar(width,"int32")).expandDims(1),xCoords=mod4(coords2,width).expandDims(1);return concat([yCoords,xCoords],1)})}exports.argmax2d=argmax2d});var require_decodePose=__commonJS(exports=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config2.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2){let poses=[],queue=buildParts.buildPartWithScoreQueue(config2.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config2.body.nmsRadius^2;for(;poses.lengthconfig2.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor2=>tensor2.buffer()))}exports.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports.scalePose=scalePose;function resizeTo(image3,[targetH,targetW]){let input2=image3.squeeze(0),resized=input2.resizeBilinear([targetH,targetW]);return input2.dispose(),resized}exports.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports=>{var modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input2,res,config2){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2),scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}async function estimateSingle(input2,res,config2){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config2)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model2){this.baseModel=model2}async estimatePoses(input2,config2){let resized=util.resizeTo(input2,[config2.body.inputSize,config2.body.inputSize]),res=this.baseModel.predict(resized,config2),poses=config2.body.maxDetections<2?await estimateSingle(input2,res,config2):await estimateMultiple(input2,res,config2);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports.PoseNet=PoseNet;async function load3(config2){let model2=await loadGraphModel(config2.body.modelPath),mobilenet=new modelBase.BaseModel(model2);return log(`load model: ${config2.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports.load=load3});var require_posenet=__commonJS(exports=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports.load=modelPoseNet.load;exports.PoseNet=modelPoseNet.PoseNet;exports.partChannels=keypoints.partChannels;exports.partIds=keypoints.partIds;exports.partNames=keypoints.partNames;exports.poseChain=keypoints.poseChain;exports.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports.getBoundingBox=util.getBoundingBox;exports.getBoundingBoxPoints=util.getBoundingBoxPoints;exports.scaleAndFlipPoses=util.scaleAndFlipPoses;exports.scalePose=util.scalePose});var require_handdetector=__commonJS(exports=>{var HandDetector=class{constructor(model2,inputSize,anchorsAnnotated){this.model=model2,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tensor2d(this.anchors),this.inputSizeTensor=tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tidy(()=>{let boxOffsets=slice(boxes,[0,0],[-1,2]),boxSizes=slice(boxes,[0,2],[-1,2]),boxCenterPoints=add2(div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=div(boxSizes,this.doubleInputSizeTensor),startPoints=mul(sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=mul(add2(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tidy(()=>{let landmarks=add2(div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return mul(landmarks,this.inputSizeTensor)})}async getBoxes(input2,config2){let batched=this.model.predict(input2),predictions=batched.squeeze();batched.dispose();let scoresT=tidy(()=>sigmoid(slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await image.nonMaxSuppressionAsync(boxes,scores,config2.hand.maxHands,config2.hand.iouThreshold,config2.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config2.hand.minConfidence){let matchingBox=slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=slice(predictions,[index,5],[1,14]),palmLandmarks=tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input2,config2){let inputHeight=input2.shape[1],inputWidth=input2.shape[2],image3=tidy(()=>input2.resizeBilinear([config2.hand.inputSize,config2.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image3,config2);image3.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config2.hand.inputSize,inputHeight/config2.hand.inputSize]))}return hands}};exports.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports=>{var PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot4(boxCenter,inverseRotationMatrix[0]),dot4(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image3,config2){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config2.hand.skipFrames||!config2.hand.landmarks||!config2.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image3,config2),this.skipped=0),config2.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config2.hand.maxHands||!config2.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config2.hand.minConfidence){let keypointsReshaped=reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords2=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords2);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords2,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports=>{exports.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports=>{var handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input2,config2){let predictions=await this.handPipeline.estimateHands(input2,config2);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input2.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input2.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports.HandPose=HandPose;async function load3(config2){let[handDetectorModel,handPoseModel]=await Promise.all([config2.hand.enabled?loadGraphModel(config2.hand.detector.modelPath,{fromTFHub:config2.hand.detector.modelPath.includes("tfhub.dev")}):null,config2.hand.landmarks?loadGraphModel(config2.hand.skeleton.modelPath,{fromTFHub:config2.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config2.hand.inputSize,anchors.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config2.hand.inputSize),handPose=new HandPose(handPipeline);return config2.hand.enabled&&log(`load model: ${config2.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config2.hand.landmarks&&log(`load model: ${config2.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports.load=load3});var require_gesture=__commonJS(exports=>{exports.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image3){if(_resize(image3.width,image3.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image3),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` `),SHADER.FRAGMENT_IDENTITY=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","void main(void) {","gl_FragColor = texture2D(texture, vUv);","}"].join(` `);let _filter={};_filter.colorMatrix=function(matrix){let m=new Float32Array(matrix);m[4]/=255,m[9]/=255,m[14]/=255,m[19]/=255;let shader=m[18]===1&&m[3]===0&&m[8]===0&&m[13]===0&&m[15]===0&&m[16]===0&&m[17]===0&&m[19]===0?_filter.colorMatrix.SHADER.WITHOUT_ALPHA:_filter.colorMatrix.SHADER.WITH_ALPHA,program=_compileShader(shader);gl.uniform1fv(program.uniform.m,m),_draw()},_filter.colorMatrix.SHADER={},_filter.colorMatrix.SHADER.WITH_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];","gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];","}"].join(` `),_filter.colorMatrix.SHADER.WITHOUT_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];","gl_FragColor.a = c.a;","}"].join(` `),_filter.brightness=function(brightness){let b=(brightness||0)+1;_filter.colorMatrix([b,0,0,0,0,0,b,0,0,0,0,0,b,0,0,0,0,0,1,0])},_filter.saturation=function(amount){let x=(amount||0)*2/3+1,y=(x-1)*-.5;_filter.colorMatrix([x,y,y,0,0,y,x,y,0,0,y,y,x,0,0,0,0,0,1,0])},_filter.desaturate=function(){_filter.saturation(-1)},_filter.contrast=function(amount){let v=(amount||0)+1,o=-128*(v-1);_filter.colorMatrix([v,0,0,0,o,0,v,0,0,o,0,0,v,0,o,0,0,0,1,0])},_filter.negative=function(){_filter.contrast(-2)},_filter.hue=function(rotation){rotation=(rotation||0)/180*Math.PI;let cos4=Math.cos(rotation),sin4=Math.sin(rotation),lumR=.213,lumG=.715,lumB=.072;_filter.colorMatrix([lumR+cos4*(1-lumR)+sin4*-lumR,lumG+cos4*-lumG+sin4*-lumG,lumB+cos4*-lumB+sin4*(1-lumB),0,0,lumR+cos4*-lumR+sin4*.143,lumG+cos4*(1-lumG)+sin4*.14,lumB+cos4*-lumB+sin4*-.283,0,0,lumR+cos4*-lumR+sin4*-(1-lumR),lumG+cos4*-lumG+sin4*lumG,lumB+cos4*(1-lumB)+sin4*lumB,0,0,0,0,0,1,0])},_filter.desaturateLuminance=function(){_filter.colorMatrix([.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,0,0,0,1,0])},_filter.sepia=function(){_filter.colorMatrix([.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0])},_filter.brownie=function(){_filter.colorMatrix([.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0])},_filter.vintagePinhole=function(){_filter.colorMatrix([.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0])},_filter.kodachrome=function(){_filter.colorMatrix([1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0])},_filter.technicolor=function(){_filter.colorMatrix([1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0])},_filter.polaroid=function(){_filter.colorMatrix([1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0])},_filter.shiftToBGR=function(){_filter.colorMatrix([0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0])},_filter.convolution=function(matrix){let m=new Float32Array(matrix),pixelSizeX=1/_width,pixelSizeY=1/_height,program=_compileShader(_filter.convolution.SHADER);gl.uniform1fv(program.uniform.m,m),gl.uniform2f(program.uniform.px,pixelSizeX,pixelSizeY),_draw()},_filter.convolution.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","uniform float m[9];","void main(void) {","vec4 c11 = texture2D(texture, vUv - px);","vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));","vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));","vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );","vec4 c22 = texture2D(texture, vUv);","vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );","vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );","vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );","vec4 c33 = texture2D(texture, vUv + px );","gl_FragColor = ","c11 * m[0] + c12 * m[1] + c22 * m[2] +","c21 * m[3] + c22 * m[4] + c23 * m[5] +","c31 * m[6] + c32 * m[7] + c33 * m[8];","gl_FragColor.a = c22.a;","}"].join(` `),_filter.detectEdges=function(){_filter.convolution.call(this,[0,1,0,1,-4,1,0,1,0])},_filter.sobelX=function(){_filter.convolution.call(this,[-1,0,1,-2,0,2,-1,0,1])},_filter.sobelY=function(){_filter.convolution.call(this,[-1,-2,-1,0,0,0,1,2,1])},_filter.sharpen=function(amount){let a=amount||1;_filter.convolution.call(this,[0,-1*a,0,-1*a,1+4*a,-1*a,0,-1*a,0])},_filter.emboss=function(size){let s=size||1;_filter.convolution.call(this,[-2*s,-1*s,0,-1*s,1,1*s,0,1*s,2*s])},_filter.blur=function(size){let blurSizeX=size/7/_width,blurSizeY=size/7/_height,program=_compileShader(_filter.blur.SHADER);gl.uniform2f(program.uniform.px,0,blurSizeY),_draw(DRAW.INTERMEDIATE),gl.uniform2f(program.uniform.px,blurSizeX,0),_draw()},_filter.blur.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","void main(void) {","gl_FragColor = vec4(0.0);","gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;","gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv )*0.159576912161;","gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;","}"].join(` `),_filter.pixelate=function(size){let blurSizeX=size/_width,blurSizeY=size/_height,program=_compileShader(_filter.pixelate.SHADER);gl.uniform2f(program.uniform.size,blurSizeX,blurSizeY),_draw()},_filter.pixelate.SHADER=["precision highp float;","varying vec2 vUv;","uniform vec2 size;","uniform sampler2D texture;","vec2 pixelate(vec2 coord, vec2 size) {","return floor( coord / size ) * size;","}","void main(void) {","gl_FragColor = vec4(0.0);","vec2 coord = pixelate(vUv, size);","gl_FragColor += texture2D(texture, coord);","}"].join(` -`)};exports.Canvas=WebGLImageFilter});var require_image=__commonJS(exports=>{var fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input2,config3){let tensor2;if(input2 instanceof Tensor)tensor2=clone(input2);else{let originalWidth=input2.naturalWidth||input2.videoWidth||input2.width||input2.shape&&input2.shape[1]>0,originalHeight=input2.naturalHeight||input2.videoHeight||input2.height||input2.shape&&input2.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config3.filter.width>0?targetWidth=config3.filter.width:config3.filter.height>0&&(targetWidth=originalWidth*(config3.filter.height/originalHeight)),config3.filter.height>0?targetHeight=config3.filter.height:config3.filter.width>0&&(targetHeight=originalHeight*(config3.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input2),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input2 instanceof ImageData?ctx.putImageData(input2,0,0):ctx.drawImage(input2,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config3.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config3.filter.brightness),config3.filter.contrast!==0&&this.fx.addFilter("contrast",config3.filter.contrast),config3.filter.sharpness!==0&&this.fx.addFilter("sharpen",config3.filter.sharpness),config3.filter.blur!==0&&this.fx.addFilter("blur",config3.filter.blur),config3.filter.saturation!==0&&this.fx.addFilter("saturation",config3.filter.saturation),config3.filter.hue!==0&&this.fx.addFilter("hue",config3.filter.hue),config3.filter.negative&&this.fx.addFilter("negative"),config3.filter.sepia&&this.fx.addFilter("sepia"),config3.filter.vintage&&this.fx.addFilter("brownie"),config3.filter.sepia&&this.fx.addFilter("sepia"),config3.filter.kodachrome&&this.fx.addFilter("kodachrome"),config3.filter.technicolor&&this.fx.addFilter("technicolor"),config3.filter.polaroid&&this.fx.addFilter("polaroid"),config3.filter.pixelate!==0&&this.fx.addFilter("pixelate",config3.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tensor3d(outCanvas.data,shape,"int32")}else if(config3.backend==="webgl"||outCanvas instanceof ImageData)pixels=browser_exports.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=browser_exports.fromPixels(data2)}let casted=pixels.toFloat();tensor2=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor:tensor2,canvas:config3.filter.return?outCanvas:null}}exports.process=process3});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tfjs_esm_exports={};__export(tfjs_esm_exports,{Abs:()=>Abs,Acos:()=>Acos,Acosh:()=>Acosh,AdadeltaOptimizer:()=>AdadeltaOptimizer,AdagradOptimizer:()=>AdagradOptimizer,AdamOptimizer:()=>AdamOptimizer,AdamaxOptimizer:()=>AdamaxOptimizer,Add:()=>Add,AddN:()=>AddN,All:()=>All,Any:()=>Any,ArgMax:()=>ArgMax,ArgMin:()=>ArgMin,Asin:()=>Asin,Asinh:()=>Asinh,Atan:()=>Atan,Atan2:()=>Atan2,Atanh:()=>Atanh,AvgPool:()=>AvgPool,AvgPool3D:()=>AvgPool3D,AvgPool3DGrad:()=>AvgPool3DGrad,AvgPoolGrad:()=>AvgPoolGrad,BackendWasm:()=>BackendWasm,BatchMatMul:()=>BatchMatMul,BatchToSpaceND:()=>BatchToSpaceND,Bincount:()=>Bincount,BroadcastTo:()=>BroadcastTo,Callback:()=>Callback,CallbackList:()=>CallbackList,Cast:()=>Cast,Ceil:()=>Ceil,ClipByValue:()=>ClipByValue,Complex:()=>Complex,ComplexAbs:()=>ComplexAbs,Concat:()=>Concat,Conv2D:()=>Conv2D,Conv2DBackpropFilter:()=>Conv2DBackpropFilter,Conv2DBackpropInput:()=>Conv2DBackpropInput,Conv3D:()=>Conv3D,Conv3DBackpropFilterV2:()=>Conv3DBackpropFilterV2,Conv3DBackpropInputV2:()=>Conv3DBackpropInputV2,Cos:()=>Cos,Cosh:()=>Cosh,CropAndResize:()=>CropAndResize,Cumsum:()=>Cumsum,CustomCallback:()=>CustomCallback,DataStorage:()=>DataStorage,DenseBincount:()=>DenseBincount,DepthToSpace:()=>DepthToSpace,DepthwiseConv2dNative:()=>DepthwiseConv2dNative,DepthwiseConv2dNativeBackpropFilter:()=>DepthwiseConv2dNativeBackpropFilter,DepthwiseConv2dNativeBackpropInput:()=>DepthwiseConv2dNativeBackpropInput,Diag:()=>Diag,Dilation2D:()=>Dilation2D,Dilation2DBackpropFilter:()=>Dilation2DBackpropFilter,Dilation2DBackpropInput:()=>Dilation2DBackpropInput,ENV:()=>ENV,EarlyStopping:()=>EarlyStopping,Elu:()=>Elu,EluGrad:()=>EluGrad,Environment:()=>Environment,Equal:()=>Equal,Erf:()=>Erf,Exp:()=>Exp,ExpandDims:()=>ExpandDims,Expm1:()=>Expm1,FFT:()=>FFT,Fill:()=>Fill,FlipLeftRight:()=>FlipLeftRight,Floor:()=>Floor,FloorDiv:()=>FloorDiv,FromPixels:()=>FromPixels,FusedBatchNorm:()=>FusedBatchNorm,FusedConv2D:()=>FusedConv2D,FusedDepthwiseConv2D:()=>FusedDepthwiseConv2D,GPGPUContext:()=>GPGPUContext,GatherNd:()=>GatherNd,GatherV2:()=>GatherV2,GraphModel:()=>GraphModel,Greater:()=>Greater,GreaterEqual:()=>GreaterEqual,History:()=>History,IFFT:()=>IFFT,Identity:()=>Identity,Imag:()=>Imag,InputSpec:()=>InputSpec,IsFinite:()=>IsFinite,IsInf:()=>IsInf,IsNan:()=>IsNan,KernelBackend:()=>KernelBackend,LRN:()=>LRN,LRNGrad:()=>LRNGrad,LayerVariable:()=>LayerVariable,LayersModel:()=>LayersModel,LeakyRelu:()=>LeakyRelu,Less:()=>Less,LessEqual:()=>LessEqual,LinSpace:()=>LinSpace,Log:()=>Log,Log1p:()=>Log1p,LogSoftmax:()=>LogSoftmax,LogicalAnd:()=>LogicalAnd,LogicalNot:()=>LogicalNot,LogicalOr:()=>LogicalOr,MathBackendCPU:()=>MathBackendCPU,MathBackendWebGL:()=>MathBackendWebGL,Max:()=>Max,MaxPool:()=>MaxPool,MaxPool3D:()=>MaxPool3D,MaxPool3DGrad:()=>MaxPool3DGrad,MaxPoolGrad:()=>MaxPoolGrad,MaxPoolWithArgmax:()=>MaxPoolWithArgmax,Maximum:()=>Maximum,Mean:()=>Mean,Min:()=>Min,Minimum:()=>Minimum,MirrorPad:()=>MirrorPad,Mod:()=>Mod,MomentumOptimizer:()=>MomentumOptimizer,Multinomial:()=>Multinomial,Multiply:()=>Multiply,Neg:()=>Neg,NonMaxSuppressionV3:()=>NonMaxSuppressionV3,NonMaxSuppressionV4:()=>NonMaxSuppressionV4,NonMaxSuppressionV5:()=>NonMaxSuppressionV5,NotEqual:()=>NotEqual,OP_SCOPE_SUFFIX:()=>OP_SCOPE_SUFFIX,OneHot:()=>OneHot,OnesLike:()=>OnesLike,Optimizer:()=>Optimizer,Pack:()=>Pack,PadV2:()=>PadV2,Pool:()=>Pool,Pow:()=>Pow,Prelu:()=>Prelu,Prod:()=>Prod,RMSPropOptimizer:()=>RMSPropOptimizer,RNN:()=>RNN,Range:()=>Range,Rank:()=>Rank,Real:()=>Real,RealDiv:()=>RealDiv,Reciprocal:()=>Reciprocal,Reduction:()=>Reduction,Relu:()=>Relu,Relu6:()=>Relu6,Reshape:()=>Reshape,ResizeBilinear:()=>ResizeBilinear,ResizeBilinearGrad:()=>ResizeBilinearGrad,ResizeNearestNeighbor:()=>ResizeNearestNeighbor,ResizeNearestNeighborGrad:()=>ResizeNearestNeighborGrad,Reverse:()=>Reverse,RotateWithOffset:()=>RotateWithOffset,Round:()=>Round,Rsqrt:()=>Rsqrt,SGDOptimizer:()=>SGDOptimizer,ScatterNd:()=>ScatterNd,Select:()=>Select,Selu:()=>Selu,Sequential:()=>Sequential,Sigmoid:()=>Sigmoid,Sign:()=>Sign,Sin:()=>Sin,Sinh:()=>Sinh,Slice:()=>Slice,Softmax:()=>Softmax,Softplus:()=>Softplus,SpaceToBatchND:()=>SpaceToBatchND,SparseToDense:()=>SparseToDense,SplitV:()=>SplitV,Sqrt:()=>Sqrt,Square:()=>Square,SquaredDifference:()=>SquaredDifference,Step:()=>Step,StridedSlice:()=>StridedSlice,Sub:()=>Sub,Sum:()=>Sum,SymbolicTensor:()=>SymbolicTensor,Tan:()=>Tan,Tanh:()=>Tanh,Tensor:()=>Tensor,TensorBuffer:()=>TensorBuffer,Tile:()=>Tile,TopK:()=>TopK,Transpose:()=>Transpose,Unique:()=>Unique,Unpack:()=>Unpack,UnsortedSegmentSum:()=>UnsortedSegmentSum,Variable:()=>Variable,ZerosLike:()=>ZerosLike,_FusedMatMul:()=>_FusedMatMul,abs:()=>abs,acos:()=>acos,acosh:()=>acosh,add:()=>add2,addN:()=>addN,addStrict:()=>addStrict,all:()=>all,any:()=>any,argMax:()=>argMax,argMin:()=>argMin,asin:()=>asin,asinh:()=>asinh,atan:()=>atan,atan2:()=>atan2,atanh:()=>atanh,avgPool:()=>avgPool,avgPool3d:()=>avgPool3d,backend:()=>backend,backend_util:()=>backend_util_exports,basicLSTMCell:()=>basicLSTMCell,batchNorm:()=>batchNorm,batchNorm2d:()=>batchNorm2d,batchNorm3d:()=>batchNorm3d,batchNorm4d:()=>batchNorm4d,batchToSpaceND:()=>batchToSpaceND,bincount:()=>bincount,booleanMaskAsync:()=>booleanMaskAsync,broadcastTo:()=>broadcastTo,browser:()=>browser_exports,buffer:()=>buffer,callbacks:()=>callbacks,cast:()=>cast,ceil:()=>ceil,clipByValue:()=>clipByValue,clone:()=>clone,complex:()=>complex,concat:()=>concat,concat1d:()=>concat1d,concat2d:()=>concat2d,concat3d:()=>concat3d,concat4d:()=>concat4d,constraints:()=>exports_constraints_exports,conv1d:()=>conv1d,conv2d:()=>conv2d,conv2dTranspose:()=>conv2dTranspose,conv3d:()=>conv3d,conv3dTranspose:()=>conv3dTranspose,copyRegisteredKernels:()=>copyRegisteredKernels,cos:()=>cos,cosh:()=>cosh,cosineWindow:()=>cosineWindow,cumsum:()=>cumsum,customGrad:()=>customGrad,data:()=>dist_exports,denseBincount:()=>denseBincount,deprecationWarn:()=>deprecationWarn,depthToSpace:()=>depthToSpace,depthwiseConv2d:()=>depthwiseConv2d,deregisterOp:()=>deregisterOp,device_util:()=>device_util_exports,diag:()=>diag,dilation2d:()=>dilation2d,disableDeprecationWarnings:()=>disableDeprecationWarnings,dispose:()=>dispose,disposeVariables:()=>disposeVariables,div:()=>div,divNoNan:()=>divNoNan,divStrict:()=>divStrict,dot:()=>dot,dropout:()=>dropout,elu:()=>elu,enableDebugMode:()=>enableDebugMode,enableProdMode:()=>enableProdMode,enclosingPowerOfTwo:()=>enclosingPowerOfTwo,engine:()=>engine,env:()=>env,equal:()=>equal,equalStrict:()=>equalStrict,erf:()=>erf,exp:()=>exp,expandDims:()=>expandDims,expm1:()=>expm1,eye:()=>eye,fft:()=>fft,fill:()=>fill,findBackend:()=>findBackend,findBackendFactory:()=>findBackendFactory,floor:()=>floor,floorDiv:()=>floorDiv,forceHalfFloat:()=>forceHalfFloat,fused:()=>fused_ops_exports,gather:()=>gather,gatherND:()=>gatherND,gather_util:()=>gather_nd_util_exports,getBackend:()=>getBackend,getGradient:()=>getGradient,getKernel:()=>getKernel,getKernelsForBackend:()=>getKernelsForBackend,gpgpu_util:()=>gpgpu_util_exports,grad:()=>grad,grads:()=>grads,greater:()=>greater,greaterEqual:()=>greaterEqual,greaterEqualStrict:()=>greaterEqualStrict,greaterStrict:()=>greaterStrict,ifft:()=>ifft,imag:()=>imag,image:()=>image,inTopKAsync:()=>inTopKAsync,initializers:()=>exports_initializers_exports,input:()=>input,io:()=>io_exports,irfft:()=>irfft,isFinite:()=>isFinite2,isInf:()=>isInf,isNaN:()=>isNaN2,keep:()=>keep,kernel_impls:()=>kernel_impls_exports,layers:()=>exports_layers_exports,leakyRelu:()=>leakyRelu,less:()=>less,lessEqual:()=>lessEqual,lessEqualStrict:()=>lessEqualStrict,lessStrict:()=>lessStrict,linalg:()=>linalg,linspace:()=>linspace,loadGraphModel:()=>loadGraphModel,loadLayersModel:()=>loadLayersModel,localResponseNormalization:()=>localResponseNormalization,log:()=>log2,log1p:()=>log1p,logSigmoid:()=>logSigmoid,logSoftmax:()=>logSoftmax,logSumExp:()=>logSumExp,logicalAnd:()=>logicalAnd,logicalNot:()=>logicalNot,logicalOr:()=>logicalOr,logicalXor:()=>logicalXor,losses:()=>losses,matMul:()=>matMul,math:()=>math_exports,max:()=>max,maxPool:()=>maxPool,maxPool3d:()=>maxPool3d,maxPoolWithArgmax:()=>maxPoolWithArgmax,maximum:()=>maximum,maximumStrict:()=>maximumStrict,mean:()=>mean,memory:()=>memory,metrics:()=>exports_metrics_exports,min:()=>min,minimum:()=>minimum,minimumStrict:()=>minimumStrict,mirrorPad:()=>mirrorPad,mod:()=>mod,modStrict:()=>modStrict,model:()=>model,models:()=>exports_models_exports,moments:()=>moments,movingAverage:()=>movingAverage,mul:()=>mul,mulStrict:()=>mulStrict,multiRNNCell:()=>multiRNNCell,multinomial:()=>multinomial,neg:()=>neg,nextFrame:()=>nextFrame,norm:()=>norm,notEqual:()=>notEqual,notEqualStrict:()=>notEqualStrict,oneHot:()=>oneHot,ones:()=>ones2,onesLike:()=>onesLike,op:()=>op,outerProduct:()=>outerProduct,pad:()=>pad,pad1d:()=>pad1d,pad2d:()=>pad2d,pad3d:()=>pad3d,pad4d:()=>pad4d,pool:()=>pool,pow:()=>pow,powStrict:()=>powStrict,prelu:()=>prelu,print:()=>print2,prod:()=>prod,profile:()=>profile,rand:()=>rand,randomGamma:()=>randomGamma,randomNormal:()=>randomNormal,randomUniform:()=>randomUniform,range:()=>range,ready:()=>ready,real:()=>real,reciprocal:()=>reciprocal,registerBackend:()=>registerBackend,registerCallbackConstructor:()=>registerCallbackConstructor,registerGradient:()=>registerGradient,registerKernel:()=>registerKernel,registerOp:()=>registerOp,regularizers:()=>exports_regularizers_exports,relu:()=>relu,relu6:()=>relu6,removeBackend:()=>removeBackend,reshape:()=>reshape,reverse:()=>reverse,reverse1d:()=>reverse1d,reverse2d:()=>reverse2d,reverse3d:()=>reverse3d,reverse4d:()=>reverse4d,rfft:()=>rfft,round:()=>round2,rsqrt:()=>rsqrt,scalar:()=>scalar,scatterND:()=>scatterND,scatter_util:()=>scatter_nd_util_exports,selu:()=>selu,separableConv2d:()=>separableConv2d,sequential:()=>sequential,serialization:()=>serialization_exports,setBackend:()=>setBackend,setPlatform:()=>setPlatform,setWasmPath:()=>setWasmPath,setWasmPaths:()=>setWasmPaths,setWebGLContext:()=>setWebGLContext,setdiff1dAsync:()=>setdiff1dAsync,shared:()=>shared_exports,sigmoid:()=>sigmoid,sign:()=>sign,signal:()=>signal,sin:()=>sin,sinh:()=>sinh,slice:()=>slice,slice1d:()=>slice1d,slice2d:()=>slice2d,slice3d:()=>slice3d,slice4d:()=>slice4d,slice_util:()=>slice_util_exports,softmax:()=>softmax,softplus:()=>softplus,spaceToBatchND:()=>spaceToBatchND,sparseToDense:()=>sparseToDense,spectral:()=>spectral,split:()=>split,sqrt:()=>sqrt,square:()=>square,squaredDifference:()=>squaredDifference,squaredDifferenceStrict:()=>squaredDifferenceStrict,squeeze:()=>squeeze,stack:()=>stack,step:()=>step,stridedSlice:()=>stridedSlice,sub:()=>sub,subStrict:()=>subStrict,sum:()=>sum2,sumOutType:()=>sumOutType,tan:()=>tan,tanh:()=>tanh2,tensor:()=>tensor,tensor1d:()=>tensor1d,tensor2d:()=>tensor2d,tensor3d:()=>tensor3d,tensor4d:()=>tensor4d,tensor5d:()=>tensor5d,tensor6d:()=>tensor6d,tensor_util:()=>tensor_util_exports,test_util:()=>test_util_exports,tidy:()=>tidy,tile:()=>tile,time:()=>time,topk:()=>topk,train:()=>train,transpose:()=>transpose,truncatedNormal:()=>truncatedNormal,unique:()=>unique,unregisterGradient:()=>unregisterGradient,unregisterKernel:()=>unregisterKernel,unsortedSegmentSum:()=>unsortedSegmentSum,unstack:()=>unstack,upcastType:()=>upcastType,util:()=>util_exports,valueAndGrad:()=>valueAndGrad,valueAndGrads:()=>valueAndGrads,variable:()=>variable,variableGrads:()=>variableGrads,version:()=>version13,version_converter:()=>version11,version_core:()=>version6,version_cpu:()=>version7,version_layers:()=>version10,version_wasm:()=>version9,version_webgl:()=>version8,webgl:()=>webgl,webgl_util:()=>webgl_util_exports,where:()=>where,whereAsync:()=>whereAsync,zeros:()=>zeros,zerosLike:()=>zerosLike});var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__commonJS2=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export2=(target,all4)=>{__markAsModule2(target);for(var name in all4)__defProp2(target,name,{get:all4[name],enumerable:!0})},__exportStar2=(target,module,desc)=>{if(__markAsModule2(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames2(module))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc2(module,key))||desc.enumerable});return target},__toModule2=module=>module&&module.__esModule?module:__exportStar2(__defProp2(module!=null?__create2(__getProtoOf2(module)):{},"default",{value:module,enumerable:!0}),module),require_browser=__commonJS2(()=>{}),require_alea=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor128=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift7=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor4096=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_crypto=__commonJS2(()=>{}),require_seedrandom=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea(),xor128=require_xor128(),xorwow=require_xorwow(),xorshift7=require_xorshift7(),xor4096=require_xor4096(),tychei=require_tychei(),sr=require_seedrandom();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_alea2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1282=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift72=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40962=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom3=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea2(),xor128=require_xor1282(),xorwow=require_xorwow2(),xorshift7=require_xorshift72(),xor4096=require_xor40962(),tychei=require_tychei2(),sr=require_seedrandom3();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_path=__commonJS2(()=>{}),require_worker_threads=__commonJS2(()=>{}),require_perf_hooks=__commonJS2(()=>{}),require_tfjs_backend_wasm_threaded_simd=__commonJS2((exports,module)=>{var WasmBackendModuleThreadedSimd=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModuleThreadedSimd2){WasmBackendModuleThreadedSimd2=WasmBackendModuleThreadedSimd2||{};function GROWABLE_HEAP_I8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP8}function GROWABLE_HEAP_U8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU8}function GROWABLE_HEAP_I32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP32}function GROWABLE_HEAP_U32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU32}function GROWABLE_HEAP_F64(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd2!="undefined"?WasmBackendModuleThreadedSimd2:{},_scriptDir2=void 0,moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module.ENVIRONMENT_IS_PTHREAD||!1;ENVIRONMENT_IS_PTHREAD&&(buffer2=Module.buffer,DYNAMIC_BASE=Module.DYNAMIC_BASE,DYNAMICTOP_PTR=Module.DYNAMICTOP_PTR);var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;if(ENVIRONMENT_IS_NODE){ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status){process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require_worker_threads()}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}Worker=nodeWorkerThreads.Worker}else ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status){quit(status)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir2&&(scriptDirectory=_scriptDir2),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",ENVIRONMENT_IS_NODE?(read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret}):(read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)}),setWindowTitle=function(title){document.title=title});ENVIRONMENT_IS_NODE&&typeof performance=="undefined"&&(performance=require_perf_hooks().performance);var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var Atomics_load=Atomics.load,Atomics_store=Atomics.store,Atomics_compareExchange=Atomics.compareExchange,wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:169,maximum:169+0,element:"anyfunc"}),wasmModule,threadInfoStruct=0,selfThreadId=0,ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str){var ret2=0;if(str!=null&&str!==0){var len=(str.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224?u0=(u0&15)<<12|u1<<6|u2:u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63,u0<65536)str+=String.fromCharCode(u0);else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){for(var len=0,i=0;i=55296&&u<=57343&&(u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023),u<=127?++len:u<=2047?len+=2:u<=65535?len+=3:len+=4}return len}function writeArrayToMemory(array2,buffer3){GROWABLE_HEAP_I8().set(array2,buffer3)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){return x%multiple>0&&(x+=multiple-x%multiple),x}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656,INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;if(ENVIRONMENT_IS_PTHREAD)wasmMemory=Module.wasmMemory,buffer2=Module.buffer;else if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else if(wasmMemory=new WebAssembly.Memory({initial:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,maximum:2147483648/WASM_PAGE_SIZE,shared:!0}),!(wasmMemory.buffer instanceof SharedArrayBuffer))throw err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ENVIRONMENT_IS_NODE&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");wasmMemory&&(buffer2=wasmMemory.buffer),INITIAL_INITIAL_MEMORY=buffer2.byteLength,updateGlobalBufferAndViews(buffer2),ENVIRONMENT_IS_PTHREAD||(GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE);function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1;ENVIRONMENT_IS_PTHREAD&&(runtimeInitialized=!0);function preRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){ENVIRONMENT_IS_PTHREAD||callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){assert3(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker"),runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),ENVIRONMENT_IS_PTHREAD&&console.error("Pthread aborting at "+new Error().stack),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm-threaded-simd.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={a:asmLibraryArg};function receiveInstance(instance,module2){var exports3=instance.exports;if(Module.asm=exports3,wasmModule=module2,!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){--numWorkersToLoad||removeRunDependency("wasm-instantiate")})})}}ENVIRONMENT_IS_PTHREAD||addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance,output.module)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}ENVIRONMENT_IS_PTHREAD||__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0,__pthread_is_main_runtime_thread=0,__pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0,isMainBrowserThread=isMainBrowserThread|0,isMainRuntimeThread=isMainRuntimeThread|0,__pthread_ptr=pthreadPtr,__pthread_is_main_browser_thread=isMainBrowserThread,__pthread_is_main_runtime_thread=isMainRuntimeThread}Module.__register_pthread_ptr=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},__main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count2){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0||count2<0)return-28;if(count2==0)return 0;count2>=2147483647&&(count2=Infinity);var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2),mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress&&(--count2,mainThreadWoken=1,count2<=0))return 1}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count2);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module._emscripten_futex_wake=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _kill_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate(),PThread.freeThreadData(pthread),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1),pthread.worker.pthread=void 0}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({cmd:"cancel"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1),_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){for(var pthreadPoolSize=8,i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;for(var tlsMemory=13056,i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){for(;PThread.exitHandlers.length>0;)PThread.exitHandlers.pop()();PThread.exitHandlers=null}ENVIRONMENT_IS_PTHREAD&&threadInfoStruct&&___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();tb&&(Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode),Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0),PThread.runExitHandlers(),_emscripten_futex_wake(tb+0,2147483647),__register_pthread_ptr(0,0,0),threadInfoStruct=0,ENVIRONMENT_IS_PTHREAD&&postMessage({cmd:"exit"}))},threadCancel:function(){PThread.runExitHandlers(),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1),_emscripten_futex_wake(threadInfoStruct+0,2147483647),threadInfoStruct=selfThreadId=0,__register_pthread_ptr(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];pthread&&pthread.worker&&PThread.returnWorkerToPool(pthread.worker)}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0,_free(tlsMemory),_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0,pthread.allocatedOwnStack&&pthread.stackBase&&_free(pthread.stackBase),pthread.stackBase=0,pthread.worker&&(pthread.worker.pthread=null)}},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread],PThread.unusedWorkers.push(worker),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1),PThread.freeThreadData(worker.pthread),worker.pthread=void 0},receiveObjectTransfer:function(data2){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e.data,cmd=d.cmd;if(worker.pthread&&(PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct),d.targetThread&&d.targetThread!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];thread?thread.worker.postMessage(e.data,d.transferList):console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d.targetThread+", but that thread no longer exists!"),PThread.currentProxiedOperationCallerThread=void 0;return}if(cmd==="processQueuedMainThreadWork")_emscripten_main_thread_process_queued_calls();else if(cmd==="spawnThread")__spawn_thread(e.data);else if(cmd==="cleanupThread")__cleanup_thread(d.thread);else if(cmd==="killThread")__kill_thread(d.thread);else if(cmd==="cancelThread")__cancel_thread(d.thread);else if(cmd==="loaded")worker.loaded=!0,onFinishedLoading&&onFinishedLoading(worker),worker.runPthread&&(worker.runPthread(),delete worker.runPthread);else if(cmd==="print")out("Thread "+d.threadId+": "+d.text);else if(cmd==="printErr")err("Thread "+d.threadId+": "+d.text);else if(cmd==="alert")alert("Thread "+d.threadId+": "+d.text);else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);detached&&PThread.returnWorkerToPool(worker)}else cmd==="cancelDone"?PThread.returnWorkerToPool(worker):cmd==="objectTransfer"?PThread.receiveObjectTransfer(e.data):e.data.target==="setimmediate"?worker.postMessage(e.data):err("worker sent an unknown command "+cmd);PThread.currentProxiedOperationCallerThread=void 0},worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)},ENVIRONMENT_IS_NODE&&(worker.on("message",function(data2){worker.onmessage({data:data2})}),worker.on("error",function(data2){worker.onerror(data2)}),worker.on("exit",function(data2){console.log("worker exited - TODO: update the worker queue?")})),worker.postMessage({cmd:"load",urlOrBlob:Module.mainScriptUrlOrBlob||_scriptDir2,wasmMemory,wasmModule,DYNAMIC_BASE,DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("tfjs-backend-wasm-threaded-simd.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){return PThread.unusedWorkers.length==0&&(PThread.allocateUnusedWorker(),PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])),PThread.unusedWorkers.length>0?PThread.unusedWorkers.pop():null},busySpinWait:function(msecs){for(var t=performance.now()+msecs;performance.now()>2]=value,value}function _atexit(func2,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func2,arg);__ATEXIT__.unshift({func:func2,arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId)postMessage({cmd:"processQueuedMainThreadWork"});else if(ENVIRONMENT_IS_PTHREAD)postMessage({targetThread:targetThreadId,cmd:"processThreadQueue"});else{var pthread=PThread.pthreads[targetThreadId],worker=pthread&&pthread.worker;if(!worker)return;worker.postMessage({cmd:"processThreadQueue"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0,newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now(),tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);for(var ourWaitAddress=addr;addr==ourWaitAddress;){if(tNow=performance.now(),tNow>tEnd)return-73;_emscripten_main_thread_process_queued_calls(),addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator.hardwareConcurrency}function _emscripten_proxy_to_main_thread_js(index,sync){for(var numCallArgs=arguments.length-2,stack2=stackSave(),args=stackAlloc(numCallArgs*8),b=args>>3,i=0;i>3]),buf+=8):(buf=buf+3&~3,args.push(GROWABLE_HEAP_I32()[buf>>2]),buf+=4);return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;for(var b=args>>3,i=0;i>>16),updateGlobalBufferAndViews(wasmMemory.buffer),1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize)return!1;var PAGE_MULTIPLE=65536,maxHeapSize=2147483648;if(requestedSize>maxHeapSize)return!1;for(var minHeapSize=16777216,cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE)),replacement=emscripten_realloc_buffer(newSize);if(replacement)return!0}return!1}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i)JSEvents._removeHandler(i);JSEvents.eventHandlers=[],JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){JSEvents.removeEventListenersRegistered||(__ATEXIT__.push(JSEvents.removeAllEventListeners),JSEvents.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return!1;for(var i2 in arrA)if(arrA[i2]!=arrB[i2])return!1;return!0}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList))return}JSEvents.deferredCalls.push({targetFunction,precedence,argsList}),JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId,GROWABLE_HEAP_I32()[varargs+4>>2]=eventData,GROWABLE_HEAP_I32()[varargs+8>>2]=userData,_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs),stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){return target?target==window?"#window":target==screen?"#screen":target&&target.nodeName?target.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1,cString=_malloc(length);return stringToUTF8(jsString,cString,length),cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave(),varargs=stackAlloc(12),targetCanvasPtr=0;targetCanvas&&(targetCanvasPtr=stringToNewUTF8(targetCanvas)),GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr,GROWABLE_HEAP_I32()[varargs+4>>2]=width,GROWABLE_HEAP_I32()[varargs+8>>2]=height,_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs),stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"",_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):void 0);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr&&(GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width,GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height),canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){canvas.offscreenCanvas&&(canvas=canvas.offscreenCanvas);var autoResizeViewport=!1;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width,canvas.height=height,autoResizeViewport&&canvas.GLctxObject.GLctx.viewport(0,0,width,height)}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];return _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height),1}else return-4;return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(2,1,target,width,height):_emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);return canvas?_emscripten_set_canvas_element_size_calling_thread(target,width,height):_emscripten_set_canvas_element_size_main_thread(target,width,height)}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0,name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext)return ctx.vertexAttribDivisor=function(index,divisor){ext.vertexAttribDivisorANGLE(index,divisor)},ctx.drawArraysInstanced=function(mode,first,count2,primcount){ext.drawArraysInstancedANGLE(mode,first,count2,primcount)},ctx.drawElementsInstanced=function(mode,count2,type,indices,primcount){ext.drawElementsInstancedANGLE(mode,count2,type,indices,primcount)},1}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext)return ctx.createVertexArray=function(){return ext.createVertexArrayOES()},ctx.deleteVertexArray=function(vao){ext.deleteVertexArrayOES(vao)},ctx.bindVertexArray=function(vao){ext.bindVertexArrayOES(vao)},ctx.isVertexArray=function(vao){return ext.isVertexArrayOES(vao)},1}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext)return ctx.drawBuffers=function(n,bufs){ext.drawBuffersWEBGL(n,bufs)},1}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE),i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?void 0:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};return ctx.canvas&&(ctx.canvas.GLctxObject=context),GL.contexts[handle]=context,(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault)&&GL.initExtensions(context),handle},makeContextCurrent:function(contextHandle){return GL.currentContext=GL.contexts[contextHandle],Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx,!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){GL.currentContext===GL.contexts[contextHandle]&&(GL.currentContext=null),typeof JSEvents=="object"&&JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas),GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas&&(GL.contexts[contextHandle].GLctx.canvas.GLctxObject=void 0),_free(GL.contexts[contextHandle].handle),GL.contexts[contextHandle]=null},initExtensions:function(context){if(context||(context=GL.currentContext),!context.initExtensionsDone){context.initExtensionsDone=!0;var GLctx2=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx2),__webgl_enable_OES_vertex_array_object(GLctx2),__webgl_enable_WEBGL_draw_buffers(GLctx2),GLctx2.disjointTimerQueryExt=GLctx2.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],exts=GLctx2.getSupportedExtensions()||[];exts.forEach(function(ext){automaticallyEnabledExtensions.indexOf(ext)!=-1&&GLctx2.getExtension(ext)})}},populateUniformTable:function(program){for(var p2=GL.programs[program],ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},utable=ptable.uniforms,numUniforms=GLctx.getProgramParameter(p2,35718),i=0;i>2;contextAttributes.alpha=!!GROWABLE_HEAP_I32()[a+(0>>2)],contextAttributes.depth=!!GROWABLE_HEAP_I32()[a+(4>>2)],contextAttributes.stencil=!!GROWABLE_HEAP_I32()[a+(8>>2)],contextAttributes.antialias=!!GROWABLE_HEAP_I32()[a+(12>>2)],contextAttributes.premultipliedAlpha=!!GROWABLE_HEAP_I32()[a+(16>>2)],contextAttributes.preserveDrawingBuffer=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes.powerPreference=__emscripten_webgl_power_preferences[powerPreference],contextAttributes.failIfMajorPerformanceCaveat=!!GROWABLE_HEAP_I32()[a+(28>>2)],contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)],contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)],contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)],contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)],contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)],contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(contextAttributes.explicitSwapControl)return-1;var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a12){return _emscripten_webgl_do_create_context(a0,a12)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(3,1,fd):0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);for(var num=0,i=0;i>2],len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _pthread_cleanup_pop(execute2){var routine=PThread.exitHandlers.pop();execute2&&routine()}function _pthread_cleanup_push(routine,arg){PThread.exitHandlers===null&&(PThread.exitHandlers=[]),PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(worker.pthread!==void 0)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);for(var tlsMemory=_malloc(128*4),i=0;i<128;++i)GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0;var stackHigh=threadParams.stackBase+threadParams.stackSize,pthread=PThread.pthreads[threadParams.pthread_ptr]={worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr},tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct),Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42),Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc(),global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale),worker.pthread=pthread;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,threadInfoStruct:threadParams.pthread_ptr,selfThreadId:threadParams.pthread_ptr,parentThreadId:threadParams.parent_pthread_ptr,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now(),worker.postMessage(msg,threadParams.transferList)},worker.loaded&&(worker.runPthread(),delete worker.runPthread)}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread)return err("pthread_getschedparam called with a null thread pointer!"),ERRNO_CODES.ESRCH;var self2=GROWABLE_HEAP_I32()[thread+12>>2];if(self2!==thread)return err("pthread_getschedparam attempted on thread "+thread+", which does not point to a valid thread, or does not exist anymore!"),ERRNO_CODES.ESRCH;var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2),schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);return policy&&(GROWABLE_HEAP_I32()[policy>>2]=schedPolicy),schedparam&&(GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio),0}function _pthread_self(){return __pthread_ptr|0}Module._pthread_self=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer=="undefined")return err("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!pthread_ptr)return err("pthread_create called with a null thread pointer!"),28;var transferList=[],error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error))return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg);if(error)return error;var stackSize=0,stackBase=0,detached=0,schedPolicy=0,schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2],stackSize+=81920,stackBase=GROWABLE_HEAP_I32()[attr+8>>2],detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2],parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24),schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2],GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy,GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}else stackSize=2097152;var allocatedOwnStack=stackBase==0;allocatedOwnStack?stackBase=_memalign(16,stackSize):(stackBase-=stackSize,assert3(stackBase>0));for(var threadInfoStruct2=_malloc(232),i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct2>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct2,GROWABLE_HEAP_I32()[threadInfoStruct2+12>>2]=threadInfoStruct2;var headPtr=threadInfoStruct2+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase,stackSize,allocatedOwnStack,schedPolicy,schedPrio,detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct2,parent_pthread_ptr:_pthread_self(),arg,transferList};return ENVIRONMENT_IS_PTHREAD?(threadParams.cmd="spawnThread",postMessage(threadParams,transferList)):__spawn_thread(threadParams),0}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return setErrNo(28),-1}ENVIRONMENT_IS_PTHREAD?PThread.initWorker():PThread.initMainThreadBlock();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf],asmLibraryArg={e:___assert_fail,r:___call_main,w:__emscripten_notify_thread_queue,a:_abort,l:_emscripten_conditional_set_current_thread_status,d:_emscripten_futex_wait,c:_emscripten_futex_wake,h:_emscripten_get_now,g:_emscripten_is_main_browser_thread,x:_emscripten_is_main_runtime_thread,q:_emscripten_memcpy_big,B:_emscripten_num_logical_cores,t:_emscripten_receive_on_main_thread_js,A:_emscripten_resize_heap,u:_emscripten_set_canvas_element_size,k:_emscripten_set_current_thread_status,s:_emscripten_set_thread_name,v:_emscripten_webgl_create_context,m:_fd_close,o:_fd_seek,i:_fd_write,p:initPthreadsJS,memory:wasmMemory||Module.wasmMemory,y:_pthread_cleanup_pop,z:_pthread_cleanup_push,j:_pthread_create,b:_pthread_self,f:_roundf,n:_sysconf,table:wasmTable},asm=createWasm();Module.asm=asm;var ___wasm_call_ctors=Module.___wasm_call_ctors=function(){return(___wasm_call_ctors=Module.___wasm_call_ctors=Module.asm.C).apply(null,arguments)},_init=Module._init=function(){return(_init=Module._init=Module.asm.D).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.E).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.F).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.G).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.H).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.I).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.J).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.K).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.L).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.M).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.N).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.O).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.P).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Q).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.R).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.S).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.T).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.U).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.V).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.W).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.X).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Y).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.Z).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm._).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.$).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.aa).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.ba).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.ca).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.da).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.ea).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.fa).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.ga).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.ha).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.ia).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.ja).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.ka).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.la).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.ma).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.na).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.oa).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.pa).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.qa).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.ra).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.sa).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.ta).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.ua).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.va).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.wa).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.xa).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.ya).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.za).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Aa).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.Ba).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Ca).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Da).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.Ea).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Fa).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.Ga).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Ha).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Ia).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.Ja).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.Ka).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.La).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Ma).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Na).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Oa).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Pa).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.Qa).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.Ra).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sa).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Ta).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Ua).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Va).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.Wa).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Xa).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm.Ya).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.Za).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm._a).apply(null,arguments)},_emscripten_get_global_libc=Module._emscripten_get_global_libc=function(){return(_emscripten_get_global_libc=Module._emscripten_get_global_libc=Module.asm.$a).apply(null,arguments)},___errno_location=Module.___errno_location=function(){return(___errno_location=Module.___errno_location=Module.asm.ab).apply(null,arguments)},___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=function(){return(___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=Module.asm.bb).apply(null,arguments)},_memalign=Module._memalign=function(){return(_memalign=Module._memalign=Module.asm.cb).apply(null,arguments)},___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=function(){return(___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=Module.asm.db).apply(null,arguments)},_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=function(){return(_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=Module.asm.eb).apply(null,arguments)},_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=function(){return(_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=Module.asm.fb).apply(null,arguments)},_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=function(){return(_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=Module.asm.gb).apply(null,arguments)},_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=function(){return(_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=Module.asm.hb).apply(null,arguments)},_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=function(){return(_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=Module.asm.ib).apply(null,arguments)},_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=function(){return(_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=Module.asm.jb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=function(){return(_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=Module.asm.kb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=function(){return(_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=Module.asm.lb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=function(){return(_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=Module.asm.mb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=Module.asm.nb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=function(){return(_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=Module.asm.ob).apply(null,arguments)},_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=function(){return(_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=Module.asm.pb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=function(){return(_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=Module.asm.qb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=function(){return(_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=Module.asm.rb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=function(){return(_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=Module.asm.sb).apply(null,arguments)},_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=function(){return(_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=Module.asm.tb).apply(null,arguments)},_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=function(){return(_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=Module.asm.ub).apply(null,arguments)},_emscripten_tls_init=Module._emscripten_tls_init=function(){return(_emscripten_tls_init=Module._emscripten_tls_init=Module.asm.vb).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.wb).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.xb).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.yb).apply(null,arguments)},dynCall_vi=Module.dynCall_vi=function(){return(dynCall_vi=Module.dynCall_vi=Module.asm.zb).apply(null,arguments)},dynCall_v=Module.dynCall_v=function(){return(dynCall_v=Module.dynCall_v=Module.asm.Ab).apply(null,arguments)},dynCall_ii=Module.dynCall_ii=function(){return(dynCall_ii=Module.dynCall_ii=Module.asm.Bb).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap,Module.PThread=PThread,Module.PThread=PThread,Module._pthread_self=_pthread_self,Module.wasmMemory=wasmMemory,Module.ExitStatus=ExitStatus;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}if(Module.run=run,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();return ENVIRONMENT_IS_PTHREAD||(noExitRuntime=!0),ENVIRONMENT_IS_PTHREAD||run(),WasmBackendModuleThreadedSimd2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModuleThreadedSimd:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModuleThreadedSimd}):typeof exports=="object"&&(exports.WasmBackendModuleThreadedSimd=WasmBackendModuleThreadedSimd)}),require_tfjs_backend_wasm=__commonJS2((exports,module)=>{var WasmBackendModule=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModule2){WasmBackendModule2=WasmBackendModule2||{};var Module=typeof WasmBackendModule2!="undefined"?WasmBackendModule2:{},moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;ENVIRONMENT_IS_NODE?(ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status){process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"}):ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status){quit(status)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)},setWindowTitle=function(title){document.title=title});var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:151,maximum:151+0,element:"anyfunc"}),ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str){var ret2=0;if(str!=null&&str!==0){var len=(str.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);)++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder)return UTF8Decoder.decode(heap.subarray(idx,endPtr));for(var str="";idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array2,buffer3){HEAP8.set(array2,buffer3)}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function receiveInstance(instance,module2){var exports3=instance.exports;Module.asm=exports3,wasmMemory=exports3.memory,updateGlobalBufferAndViews(wasmMemory.buffer),removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){for(var num=0,i=0;i>2],len=HEAP32[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}var asmLibraryArg={emscripten_notify_memory_growth:_emscripten_notify_memory_growth,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,proc_exit:_proc_exit,roundf:_roundf},asm=createWasm();Module.asm=asm;var _init=Module._init=function(){return(_init=Module._init=Module.asm.init).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.register_tensor).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.dispose_data).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.dispose).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.Abs).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.Add).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.AddN).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.ArgMax).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.AvgPool).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.BatchMatMul).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.ClipByValue).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.Conv2D).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.Conv2DBackpropInput).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Cos).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.CropAndResize).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.Cumsum).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.DepthToSpace).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.DepthwiseConv2dNative).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.Equal).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.Exp).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.FlipLeftRight).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Floor).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.FloorDiv).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm.FusedBatchNorm).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.FusedConv2D).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.FusedDepthwiseConv2D).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.Gather).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.GatherNd).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.Greater).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.GreaterEqual).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.LeakyRelu).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.Less).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.LessEqual).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.Log).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.LogicalAnd).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.Max).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.MaxPool).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.Maximum).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.Mean).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.Min).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.Minimum).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.Multiply).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.Neg).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.NonMaxSuppressionV3).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.NonMaxSuppressionV4).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.NonMaxSuppressionV5).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.NotEqual).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.OneHot).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.PadV2).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.Pow).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.Prelu).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Prod).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.RealDiv).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Relu).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Relu6).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.ResizeBilinear).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Reverse).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.RotateWithOffset).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Round).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Rsqrt).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.ScatterNd).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.SelectV2).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.Sigmoid).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Sin).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Softmax).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Sqrt).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Square).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.SquaredDifference).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.StridedSlice).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sub).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Sum).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Tanh).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Tile).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.TopK).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Transpose).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm._FusedMatMul).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.malloc).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm.free).apply(null,arguments)},__start=Module.__start=function(){return(__start=Module.__start=Module.asm._start).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.stackSave).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.stackRestore).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}var calledMain=!1;dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function callMain(args){var entryFunction=Module.__start;try{entryFunction();var ret=0;exit(ret,!0)}catch(e){if(e instanceof ExitStatus)return;if(e=="unwind"){noExitRuntime=!0;return}else{var toLog=e;e&&typeof e=="object"&&e.stack&&(toLog=[e,e.stack]),err("exception thrown: "+toLog),quit_(1,e)}}finally{calledMain=!0}}function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(args),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}Module.run=run;function exit(status,implicit){implicit&&noExitRuntime&&status===0||(noExitRuntime||(ABORT=!0,EXITSTATUS=status,exitRuntime(),Module.onExit&&Module.onExit(status)),quit_(status,new ExitStatus(status)))}if(Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),noExitRuntime=!0,run(),WasmBackendModule2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModule:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModule}):typeof exports=="object"&&(exports.WasmBackendModule=WasmBackendModule)}),require_alea3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=String(data2);for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1283=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift73=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40963=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom5=__commonJS2((exports,module)=>{(function(global2,pool3,math){var width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea3(),xor128=require_xor1283(),xorwow=require_xorwow3(),xorshift7=require_xorshift73(),xor4096=require_xor40963(),tychei=require_tychei3(),sr=require_seedrandom5();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_string_decoder=__commonJS2(()=>{}),version="2.8.3",version2="2.8.3",version3="2.8.3",version4="2.8.3",version5="2.8.3",EPSILON_FLOAT32=1e-7,EPSILON_FLOAT16=1e-4,DataStorage=class{constructor(backend22,dataMover){this.backend=backend22,this.dataMover=dataMover,this.data=new WeakMap,this.dataIdsCount=0}get(dataId){return this.data.has(dataId)||this.dataMover.moveData(this.backend,dataId),this.data.get(dataId)}set(dataId,value){this.dataIdsCount++,this.data.set(dataId,value)}has(dataId){return this.data.has(dataId)}delete(dataId){return this.dataIdsCount--,this.data.delete(dataId)}numDataIds(){return this.dataIdsCount}},KernelBackend=class{time(f){return notYetImplemented("time")}read(dataId){return notYetImplemented("read")}readSync(dataId){return notYetImplemented("readSync")}numDataIds(){return notYetImplemented("numDataIds")}disposeData(dataId){return notYetImplemented("disposeData")}write(values,shape,dtype){return notYetImplemented("write")}move(dataId,values,shape,dtype){return notYetImplemented("move")}memory(){return notYetImplemented("memory")}floatPrecision(){return notYetImplemented("floatPrecision")}epsilon(){return this.floatPrecision()===32?EPSILON_FLOAT32:EPSILON_FLOAT16}batchMatMul(a,b,transposeA,transposeB){return notYetImplemented("batchMatMul")}fusedBatchMatMul({a,b,transposeA,transposeB,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedBatchMatMul")}slice(x,begin,size){return notYetImplemented("slice")}stridedSlice(x,begin,end,strides){return notYetImplemented("stridedSlice")}unstack(x,axis){return notYetImplemented("unstack")}reverse(a,axis){return notYetImplemented("reverse")}concat(tensors,axis){return notYetImplemented("concat")}neg(a){return notYetImplemented("neg")}add(a,b){return notYetImplemented("add")}addN(tensors){return notYetImplemented("addN")}subtract(a,b){return notYetImplemented("subtract")}multiply(a,b){return notYetImplemented("multiply")}realDivide(a,b){return notYetImplemented("realDivide")}floorDiv(a,b){return notYetImplemented("floorDiv")}sum(x,axes){return notYetImplemented("sum")}prod(x,axes){return notYetImplemented("prod")}unsortedSegmentSum(x,segmentIds,numSegments){return notYetImplemented("unsortedSegmentSum")}argMin(x,axis){return notYetImplemented("argMin")}argMax(x,axis){return notYetImplemented("argMax")}equal(a,b){return notYetImplemented("equal")}notEqual(a,b){return notYetImplemented("notEqual")}less(a,b){return notYetImplemented("less")}lessEqual(a,b){return notYetImplemented("lessEqual")}greater(a,b){return notYetImplemented("greater")}greaterEqual(a,b){return notYetImplemented("greaterEqual")}logicalNot(a){return notYetImplemented("logicalNot")}logicalAnd(a,b){return notYetImplemented("logicalAnd")}logicalOr(a,b){return notYetImplemented("logicalOr")}where(condition){return notYetImplemented("where")}select(condition,a,b){return notYetImplemented("select")}topk(x,k,sorted){return notYetImplemented("topk")}min(x,axes){return notYetImplemented("min")}minimum(a,b){return notYetImplemented("minimum")}mod(a,b){return notYetImplemented("mod")}max(x,axes){return notYetImplemented("max")}maximum(a,b){return notYetImplemented("maximum")}all(x,axes){return notYetImplemented("all")}any(x,axes){return notYetImplemented("any")}squaredDifference(a,b){return notYetImplemented("squaredDifference")}ceil(x){return notYetImplemented("ceil")}floor(x){return notYetImplemented("floor")}round(x){return notYetImplemented("round")}sign(x){return notYetImplemented("sign")}isNaN(x){return notYetImplemented("isNaN")}isInf(x){return notYetImplemented("isInf")}isFinite(x){return notYetImplemented("isFinite")}pow(a,b){return notYetImplemented("pow")}exp(x){return notYetImplemented("exp")}expm1(x){return notYetImplemented("expm1")}softmax(x,dim){return notYetImplemented("softmax")}log(x){return notYetImplemented("log")}log1p(x){return notYetImplemented("log1p")}sqrt(x){return notYetImplemented("sqrt")}rsqrt(x){return notYetImplemented("rsqrt")}square(x){return notYetImplemented("square")}reciprocal(x){return notYetImplemented("reciprocal")}relu(x){return notYetImplemented("relu")}relu6(x){return notYetImplemented("relu6")}prelu(x,a){return notYetImplemented("prelu")}elu(x){return notYetImplemented("elu")}eluDer(dy,y){return notYetImplemented("eluDer")}selu(x){return notYetImplemented("selu")}int(x){return notYetImplemented("int")}clip(x,min6,max6){return notYetImplemented("clip")}abs(x){return notYetImplemented("abs")}complexAbs(x){return notYetImplemented("complexAbs")}sigmoid(x){return notYetImplemented("sigmoid")}softplus(x){return notYetImplemented("softplus")}sin(x){return notYetImplemented("sin")}cos(x){return notYetImplemented("cos")}tan(x){return notYetImplemented("tan")}asin(x){return notYetImplemented("asin")}acos(x){return notYetImplemented("acos")}atan(x){return notYetImplemented("atan")}atan2(a,b){return notYetImplemented("atan2")}sinh(x){return notYetImplemented("sinh")}cosh(x){return notYetImplemented("cosh")}tanh(x){return notYetImplemented("tanh")}asinh(x){return notYetImplemented("asinh")}acosh(x){return notYetImplemented("acosh")}atanh(x){return notYetImplemented("atanh")}erf(x){return notYetImplemented("erf")}step(x,alpha){return notYetImplemented("step")}fusedConv2d({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedConv2d")}conv2d(x,filter,convInfo){return notYetImplemented("conv2d")}conv2dDerInput(dy,filter,convInfo){return notYetImplemented("conv2dDerInput")}conv2dDerFilter(x,dY,convInfo){return notYetImplemented("conv2dDerFilter")}fusedDepthwiseConv2D({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedDepthwiseConv2D")}depthwiseConv2D(input2,filter,convInfo){return notYetImplemented("depthwiseConv2D")}depthwiseConv2DDerInput(dy,filter,convInfo){return notYetImplemented("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(x,dY,convInfo){return notYetImplemented("depthwiseConv2DDerFilter")}conv3d(x,filter,convInfo){return notYetImplemented("conv3d")}conv3dDerInput(dy,filter,convInfo){return notYetImplemented("conv3dDerInput")}conv3dDerFilter(x,dY,convInfo){return notYetImplemented("conv3dDerFilter")}maxPool(x,convInfo){return notYetImplemented("maxPool")}maxPoolBackprop(dy,x,y,convInfo){return notYetImplemented("maxPoolBackprop")}avgPool(x,convInfo){return notYetImplemented("avgPool")}avgPoolBackprop(dy,x,convInfo){return notYetImplemented("avgPoolBackprop")}avgPool3d(x,convInfo){return notYetImplemented("avgPool3d")}avgPool3dBackprop(dy,x,convInfo){return notYetImplemented("avgPool3dBackprop")}maxPool3d(x,convInfo){return notYetImplemented("maxPool3d")}maxPool3dBackprop(dy,x,y,convInfo){return notYetImplemented("maxPool3dBackprop")}reshape(x,shape){return notYetImplemented("reshape")}cast(x,dtype){return notYetImplemented("cast")}tile(x,reps){return notYetImplemented("tile")}pad(x,paddings,constantValue){return notYetImplemented("pad")}transpose(x,perm){return notYetImplemented("transpose")}gather(x,indices,axis,batchDims=0){return notYetImplemented("gather")}gatherND(x,indices){return notYetImplemented("gatherND")}scatterND(indices,updates,shape){return notYetImplemented("scatterND")}batchToSpaceND(x,blockShape,crops){return notYetImplemented("batchToSpaceND")}spaceToBatchND(x,blockShape,paddings){return notYetImplemented("spaceToBatchND")}resizeBilinear(x,newHeight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeBilinear")}resizeBilinearBackprop(dy,x,alignCorners){return notYetImplemented("resizeBilinearBackprop")}resizeNearestNeighbor(x,newHEight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeNearestNeighbor")}resizeNearestNeighborBackprop(dy,x,alignCorners){return notYetImplemented("resizeNearestNeighborBackprop")}batchNorm(x,mean4,variance,offset,scale2,varianceEpsilon){return notYetImplemented("batchNorm")}localResponseNormalization4D(x,radius,bias,alpha,beta){return notYetImplemented("localResponseNormalization4D")}LRNGrad(dy,inputImage,outputImage,radius,bias,alpha,beta){return notYetImplemented("LRNGrad")}multinomial(logits,normalized,numSamples,seed){return notYetImplemented("multinomial")}oneHot(indices,depth,onValue,offValue){return notYetImplemented("oneHot")}cumsum(x,axis,exclusive,reverse5){return notYetImplemented("cumsum")}nonMaxSuppression(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return notYetImplemented("nonMaxSuppression")}fft(x){return notYetImplemented("fft")}ifft(x){return notYetImplemented("ifft")}complex(real4,imag4){return notYetImplemented("complex")}real(input2){return notYetImplemented("real")}imag(input2){return notYetImplemented("imag")}cropAndResize(image3,boxes,boxIndex,cropSize,method,extrapolationValue){return notYetImplemented("cropAndResize")}depthToSpace(x,blockSize,dataFormat){return notYetImplemented("depthToSpace")}split(value,sizeSplits,axis){return notYetImplemented("split")}sparseToDense(sparseIndices,sparseValues,outputShape,defaultValue){return notYetImplemented("sparseToDense")}diag(x){return notYetImplemented("diag")}fill(shape,value,dtype){return notYetImplemented("fill")}onesLike(x){return notYetImplemented("onesLike")}zerosLike(x){return notYetImplemented("zerosLike")}linspace(start,stop,num){return notYetImplemented("linspace")}dispose(){return notYetImplemented("dispose")}};function notYetImplemented(kernelName){throw new Error(`'${kernelName}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function shuffle(array2){let counter=array2.length,temp=0,index=0;for(;counter>0;)index=Math.random()*counter|0,counter--,temp=array2[counter],array2[counter]=array2[index],array2[index]=temp}function clamp(min6,x,max6){return Math.max(min6,Math.min(x,max6))}function nearestLargerEven(val){return val%2==0?val:val+1}function sum(arr){let sum6=0;for(let i=0;ierrorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function assertNonNull(a){assert(a!=null,()=>"The input to the tensor constructor must be a non-null value.")}function flatten(arr,result=[],skipTypedArray=!1){if(result==null&&(result=[]),Array.isArray(arr)||isTypedArray(arr)&&!skipTypedArray)for(let i=0;i0,maxCounter){return new Promise((resolve,reject)=>{let tryCount=0,tryFn=()=>{if(checkFn()){resolve();return}tryCount++;let nextBackoff=delayFn(tryCount);if(maxCounter!=null&&tryCount>=maxCounter){reject();return}setTimeout(tryFn,nextBackoff)};tryFn()})}function inferFromImplicitShape(shape,size){let shapeProd=1,implicitIdx=-1;for(let i=0;i=0)shapeProd*=shape[i];else if(shape[i]===-1){if(implicitIdx!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${implicitIdx} and dim ${i}`);implicitIdx=i}else if(shape[i]<0)throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);if(implicitIdx===-1){if(size>0&&size!==shapeProd)throw Error(`Size(${size}) must match the product of shape ${shape}`);return shape}if(shapeProd===0)throw Error(`Cannot infer the missing size in [${shape}] when there are 0 elements`);if(size%shapeProd!=0)throw Error(`The implicit shape can't be a fractional number. Got ${size} / ${shapeProd}`);let newShape=shape.slice();return newShape[implicitIdx]=size/shapeProd,newShape}function parseAxisParam(axis,shape){let rank=shape.length;return axis=axis==null?shape.map((s,i)=>i):[].concat(axis),assert(axis.every(ax=>ax>=-rank&&ax`All values in axis param must be in range [-${rank}, ${rank}) but got axis ${axis}`),assert(axis.every(ax=>isInt(ax)),()=>`All values in axis param must be integers but got axis ${axis}`),axis.map(a=>a<0?rank+a:a)}function squeezeShape(shape,axis){let newShape=[],keptDims=[],isEmptyArray=axis!=null&&Array.isArray(axis)&&axis.length===0,axes=axis==null||isEmptyArray?null:parseAxisParam(axis,shape).sort(),j=0;for(let i=0;ii)&&shape[i]===1&&(newShape.push(shape[i]),keptDims.push(i)),axes[j]<=i&&j++}shape[i]!==1&&(newShape.push(shape[i]),keptDims.push(i))}return{newShape,keptDims}}function getTypedArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function getArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else if(dtype==="string")values=new Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function checkConversionForErrors(vals,dtype){for(let i=0;ibytes+=x.length),bytes}function isString(value){return typeof value=="string"||value instanceof String}function isBoolean(value){return typeof value=="boolean"}function isNumber(value){return typeof value=="number"}function inferDtype(values){return Array.isArray(values)?inferDtype(values[0]):values instanceof Float32Array?"float32":values instanceof Int32Array||values instanceof Uint8Array?"int32":isNumber(values)?"float32":isString(values)?"string":isBoolean(values)?"bool":"float32"}function isFunction(f){return!!(f&&f.constructor&&f.call&&f.apply)}function nearestDivisor(size,start){for(let i=start;i=0;--i)strides[i]=strides[i+1]*shape[i+1];return strides}function createNestedArray(offset,shape,a){let ret=new Array;if(shape.length===1){let d=shape[0];for(let i=0;iacc*c);for(let i=0;iacc*c);if(size===0)return[];if(size!==a.length)throw new Error(`[${shape}] does not match the input size ${a.length}.`);return createNestedArray(0,shape,a)}function makeOnesTypedArray(size,dtype){let array2=makeZerosTypedArray(size,dtype);for(let i=0;iprev*curr,1);if(dtype==null||dtype==="float32")return toNestedArray(shape,new Float32Array(size));if(dtype==="int32")return toNestedArray(shape,new Int32Array(size));if(dtype==="bool")return toNestedArray(shape,new Uint8Array(size));throw new Error(`Unknown data type ${dtype}`)}function assertNonNegativeIntegerDimensions(shape){shape.forEach(dimSize=>{assert(Number.isInteger(dimSize)&&dimSize>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${shape}].`)})}function locToIndex(locs,rank,strides){if(rank===0)return 0;if(rank===1)return locs[0];let index=locs[locs.length-1];for(let i=0;i{let[key,value]=keyValue.split(":");this.urlFlags[key]=parseValue(key,value)})}};function getQueryParams(queryString){let params={};return queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...t)=>(decodeParam(params,t[0],t[1]),t.join("="))),params}function decodeParam(params,name,value){params[decodeURIComponent(name)]=decodeURIComponent(value||"")}function parseValue(flagName,value){if(value=value.toLowerCase(),value==="true"||value==="false")return value==="true";if(`${+value}`===value)return+value;throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`)}function env(){return ENV}var ENV=null;function setEnvironmentGlobal(environment){ENV=environment}var globalNameSpace;function getGlobalNamespace(){if(globalNameSpace==null){let ns;if(typeof window!="undefined")ns=window;else if(typeof global!="undefined")ns=global;else if(typeof process!="undefined")ns=process;else if(typeof self!="undefined")ns=self;else throw new Error("Could not find a global object");globalNameSpace=ns}return globalNameSpace}function getGlobalMap(){let ns=getGlobalNamespace();return ns._tfGlobals==null&&(ns._tfGlobals=new Map),ns._tfGlobals}function getGlobal(key,init2){let globalMap=getGlobalMap();if(globalMap.has(key))return globalMap.get(key);{let singleton=init2();return globalMap.set(key,singleton),globalMap.get(key)}}var Abs="Abs",Acos="Acos",Acosh="Acosh",Add="Add",AddN="AddN",All="All",Any="Any",ArgMax="ArgMax",ArgMin="ArgMin",Asin="Asin",Asinh="Asinh",Atan="Atan",Atanh="Atanh",Atan2="Atan2",AvgPool="AvgPool",AvgPoolGrad="AvgPoolGrad",AvgPool3D="AvgPool3D",AvgPool3DGrad="AvgPool3DGrad",BatchMatMul="BatchMatMul",BatchToSpaceND="BatchToSpaceND",Bincount="Bincount",BroadcastTo="BroadcastTo",Cast="Cast",Ceil="Ceil",ClipByValue="ClipByValue",Complex="Complex",ComplexAbs="ComplexAbs",Concat="Concat",Conv2D="Conv2D",Conv2DBackpropFilter="Conv2DBackpropFilter",Conv2DBackpropInput="Conv2DBackpropInput",Conv3D="Conv3D",Conv3DBackpropFilterV2="Conv3DBackpropFilterV2",Conv3DBackpropInputV2="Conv3DBackpropInputV2",Cos="Cos",Cosh="Cosh",Cumsum="Cumsum",CropAndResize="CropAndResize",DenseBincount="DenseBincount",DepthToSpace="DepthToSpace",DepthwiseConv2dNative="DepthwiseConv2dNative",DepthwiseConv2dNativeBackpropFilter="DepthwiseConv2dNativeBackpropFilter",DepthwiseConv2dNativeBackpropInput="DepthwiseConv2dNativeBackpropInput",Diag="Diag",Dilation2D="Dilation2D",Dilation2DBackpropInput="Dilation2DBackpropInput",Dilation2DBackpropFilter="Dilation2DBackpropFilter",RealDiv="RealDiv",Elu="Elu",EluGrad="EluGrad",Erf="Erf",Equal="Equal",Exp="Exp",ExpandDims="ExpandDims",Expm1="Expm1",FFT="FFT",Fill="Fill",FlipLeftRight="FlipLeftRight",Floor="Floor",FloorDiv="FloorDiv",FusedBatchNorm="FusedBatchNorm",GatherV2="GatherV2",GatherNd="GatherNd",Greater="Greater",GreaterEqual="GreaterEqual",Identity="Identity",IFFT="IFFT",Imag="Imag",IsFinite="IsFinite",IsInf="IsInf",IsNan="IsNan",LeakyRelu="LeakyRelu",Less="Less",LessEqual="LessEqual",LinSpace="LinSpace",Log="Log",Log1p="Log1p",LogicalAnd="LogicalAnd",LogicalNot="LogicalNot",LogicalOr="LogicalOr",LogSoftmax="LogSoftmax",LRN="LRN",LRNGrad="LRNGrad",Max="Max",Maximum="Maximum",MaxPool="MaxPool",MaxPoolGrad="MaxPoolGrad",MaxPool3D="MaxPool3D",MaxPool3DGrad="MaxPool3DGrad",MaxPoolWithArgmax="MaxPoolWithArgmax",Mean="Mean",Min="Min",Minimum="Minimum",MirrorPad="MirrorPad",Mod="Mod",Multinomial="Multinomial",Multiply="Multiply",Neg="Neg",NotEqual="NotEqual",NonMaxSuppressionV3="NonMaxSuppressionV3",NonMaxSuppressionV4="NonMaxSuppressionV4",NonMaxSuppressionV5="NonMaxSuppressionV5",OnesLike="OnesLike",OneHot="OneHot",Pack="Pack",PadV2="PadV2",Pool="Pool",Pow="Pow",Prelu="Prelu",Prod="Prod",Range="Range",Real="Real",Reciprocal="Reciprocal",Relu="Relu",Reshape="Reshape",ResizeNearestNeighbor="ResizeNearestNeighbor",ResizeNearestNeighborGrad="ResizeNearestNeighborGrad",ResizeBilinear="ResizeBilinear",ResizeBilinearGrad="ResizeBilinearGrad",Relu6="Relu6",Reverse="Reverse",Round="Round",Rsqrt="Rsqrt",ScatterNd="ScatterNd",Select="Select",Selu="Selu",Slice="Slice",Sin="Sin",Sinh="Sinh",Sign="Sign",Sigmoid="Sigmoid",Softplus="Softplus",Sqrt="Sqrt",Sum="Sum",SpaceToBatchND="SpaceToBatchND",SplitV="SplitV",Softmax="Softmax",SquaredDifference="SquaredDifference",Square="Square",Sub="Sub",SparseToDense="SparseToDense",StridedSlice="StridedSlice",Tan="Tan",Tanh="Tanh",Tile="Tile",TopK="TopK",Transpose="Transpose",Unique="Unique",Unpack="Unpack",UnsortedSegmentSum="UnsortedSegmentSum",ZerosLike="ZerosLike",Step="Step",FromPixels="FromPixels",RotateWithOffset="RotateWithOffset",_FusedMatMul="_FusedMatMul",FusedConv2D="FusedConv2D",FusedDepthwiseConv2D="FusedDepthwiseConv2D",kernelRegistry=getGlobal("kernelRegistry",()=>new Map),gradRegistry=getGlobal("gradRegistry",()=>new Map);function getKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);return kernelRegistry.get(key)}function getGradient(kernelName){return gradRegistry.get(kernelName)}function getKernelsForBackend(backendName){let it=kernelRegistry.entries(),result=[];for(;;){let{done,value}=it.next();if(done)break;let[key,config3]=value,[backend22]=key.split("_");backend22===backendName&&result.push(config3)}return result}function registerKernel(config3){let{kernelName,backendName}=config3,key=makeKey(kernelName,backendName);kernelRegistry.has(key)&&console.warn(`The kernel '${kernelName}' for backend '${backendName}' is already registered`),kernelRegistry.set(key,config3)}function registerGradient(config3){let{kernelName}=config3;gradRegistry.has(kernelName)&&env().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${kernelName}'`),gradRegistry.set(kernelName,config3)}function unregisterKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);if(!kernelRegistry.has(key))throw new Error(`The kernel '${kernelName}' for backend '${backendName}' is not registered`);kernelRegistry.delete(key)}function unregisterGradient(kernelName){if(!gradRegistry.has(kernelName))throw new Error(`The gradient '${kernelName}' for backend is not registered`);gradRegistry.delete(kernelName)}function copyRegisteredKernels(registeredBackendName,newBackendName){getKernelsForBackend(registeredBackendName).forEach(kernelConfig=>{let newKernelConfig=Object.assign({},kernelConfig,{backendName:newBackendName});registerKernel(newKernelConfig)})}function makeKey(kernelName,backendName){return`${backendName}_${kernelName}`}var util_exports={};__export2(util_exports,{arraysEqual:()=>arraysEqual,assert:()=>assert,assertNonNegativeIntegerDimensions:()=>assertNonNegativeIntegerDimensions,assertNonNull:()=>assertNonNull,assertShapesMatch:()=>assertShapesMatch,bytesFromStringArray:()=>bytesFromStringArray,bytesPerElement:()=>bytesPerElement,checkConversionForErrors:()=>checkConversionForErrors,clamp:()=>clamp,computeStrides:()=>computeStrides,createScalarValue:()=>createScalarValue,createShuffledIndices:()=>createShuffledIndices,decodeString:()=>decodeString,distSquared:()=>distSquared,encodeString:()=>encodeString,fetch:()=>fetch2,flatten:()=>flatten,getArrayFromDType:()=>getArrayFromDType,getTypedArrayFromDType:()=>getTypedArrayFromDType,hasEncodingLoss:()=>hasEncodingLoss,indexToLoc:()=>indexToLoc,inferDtype:()=>inferDtype,inferFromImplicitShape:()=>inferFromImplicitShape,isBoolean:()=>isBoolean,isFunction:()=>isFunction,isInt:()=>isInt,isNumber:()=>isNumber,isPromise:()=>isPromise,isScalarShape:()=>isScalarShape,isString:()=>isString,isTypedArray:()=>isTypedArray,isValidDtype:()=>isValidDtype,locToIndex:()=>locToIndex,makeOnesTypedArray:()=>makeOnesTypedArray,makeZerosNestedTypedArray:()=>makeZerosNestedTypedArray,makeZerosTypedArray:()=>makeZerosTypedArray,nearestDivisor:()=>nearestDivisor,nearestLargerEven:()=>nearestLargerEven,now:()=>now,parseAxisParam:()=>parseAxisParam,randUniform:()=>randUniform,repeatedTry:()=>repeatedTry,rightPad:()=>rightPad,shuffle:()=>shuffle,sizeFromShape:()=>sizeFromShape,sizeToSquarishShape:()=>sizeToSquarishShape,squeezeShape:()=>squeezeShape,sum:()=>sum,tanh:()=>tanh,toNestedArray:()=>toNestedArray,toTypedArray:()=>toTypedArray});function createScalarValue(value,dtype){return dtype==="string"?encodeString(value):toTypedArray([value],dtype)}function noConversionNeeded(a,dtype){return a instanceof Float32Array&&dtype==="float32"||a instanceof Int32Array&&dtype==="int32"||a instanceof Uint8Array&&dtype==="bool"}function toTypedArray(a,dtype){if(dtype==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(a)&&(a=flatten(a)),env().getBool("DEBUG")&&checkConversionForErrors(a,dtype),noConversionNeeded(a,dtype))return a;if(dtype==null||dtype==="float32"||dtype==="complex64")return new Float32Array(a);if(dtype==="int32")return new Int32Array(a);if(dtype==="bool"){let bool=new Uint8Array(a.length);for(let i=0;i{outputs=f()},timer=this.backendTimer.time(holdResultWrapperFn);if(env().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let i=0;i{checkComputationForErrors(tensorVals,output.dtype,kernelName)})}return{kernelName,outputs,inputs,timeMs:timer.then(timing=>timing.kernelMs),extraInfo:timer.then(timing=>timing.getExtraProfileInfo!=null?timing.getExtraProfileInfo():"")}}logKernelProfile(kernelProfile){let{kernelName,outputs,timeMs,inputs,extraInfo}=kernelProfile;outputs.forEach(result=>{Promise.all([result.data(),timeMs,extraInfo]).then(valueContainer=>{this.logger.logKernelProfile(kernelName,result,valueContainer[0],valueContainer[1],inputs,valueContainer[2])})})}};function checkComputationForErrors(vals,dtype,kernelName){if(dtype!=="float32")return!1;for(let i=0;i0?inputShape:""} `}}console.log(`%c${paddedName} %c${time2} %c${rank}D ${shape} %c${size} %c${inputShapesDescription} %c${extraInfo}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function getFilteredNodesXToY(tape,xs,y){let tensorsFromX={},nodesFromX={};for(let i=0;itensorsFromX[output.id]=!0),anyInputFromX=!0,nodesFromX[node.id]=!0;break}if(anyInputFromX)break}}let tensorsLeadToY={};tensorsLeadToY[y.id]=!0;let nodesToY={};for(let i=tape.length-1;i>=0;i--){let node=tape[i],nodeInputs=node.inputs;for(let j=0;j=0;i--){let node=filteredTape[i],dys=[];if(node.outputs.forEach(o=>{let gradTensor=tensorAccumulatedGradientMap[o.id];gradTensor!=null?dys.push(gradTensor):dys.push(null)}),node.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${node.kernelName}.`);let inputGradients=node.gradient(dys);for(let inputName in node.inputs){if(!(inputName in inputGradients))throw new Error(`Cannot backprop through input ${inputName}. Available gradients found: ${Object.keys(inputGradients)}.`);let dx=tidy2(()=>inputGradients[inputName]());if(dx.dtype!=="float32")throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);let x=node.inputs[inputName];if(!arraysEqual(dx.shape,x.shape))throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input '${inputName}' has shape '${dx.shape}', which does not match the shape of the input '${x.shape}'`);if(tensorAccumulatedGradientMap[x.id]==null)tensorAccumulatedGradientMap[x.id]=dx;else{let curGradient=tensorAccumulatedGradientMap[x.id];tensorAccumulatedGradientMap[x.id]=add5(curGradient,dx),curGradient.dispose()}}}}var FORMAT_LIMIT_NUM_VALS=20,FORMAT_NUM_FIRST_LAST_VALS=3,FORMAT_NUM_SIG_DIGITS=7;function tensorToString(vals,shape,dtype,verbose){let strides=computeStrides(shape),padPerCol=computeMaxSizePerColumn(vals,shape,dtype,strides),rank=shape.length,valsLines=subTensorToString(vals,shape,dtype,strides,padPerCol),lines=["Tensor"];return verbose&&(lines.push(` dtype: ${dtype}`),lines.push(` rank: ${rank}`),lines.push(` shape: [${shape}]`),lines.push(" values:")),lines.push(valsLines.map(l=>" "+l).join(` +`)};exports.Canvas=WebGLImageFilter});var require_image=__commonJS(exports=>{var fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input2,config2){let tensor2;if(input2 instanceof Tensor)tensor2=clone(input2);else{let originalWidth=input2.naturalWidth||input2.videoWidth||input2.width||input2.shape&&input2.shape[1]>0,originalHeight=input2.naturalHeight||input2.videoHeight||input2.height||input2.shape&&input2.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config2.filter.width>0?targetWidth=config2.filter.width:config2.filter.height>0&&(targetWidth=originalWidth*(config2.filter.height/originalHeight)),config2.filter.height>0?targetHeight=config2.filter.height:config2.filter.width>0&&(targetHeight=originalHeight*(config2.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input2),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input2 instanceof ImageData?ctx.putImageData(input2,0,0):ctx.drawImage(input2,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config2.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config2.filter.brightness),config2.filter.contrast!==0&&this.fx.addFilter("contrast",config2.filter.contrast),config2.filter.sharpness!==0&&this.fx.addFilter("sharpen",config2.filter.sharpness),config2.filter.blur!==0&&this.fx.addFilter("blur",config2.filter.blur),config2.filter.saturation!==0&&this.fx.addFilter("saturation",config2.filter.saturation),config2.filter.hue!==0&&this.fx.addFilter("hue",config2.filter.hue),config2.filter.negative&&this.fx.addFilter("negative"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.vintage&&this.fx.addFilter("brownie"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.kodachrome&&this.fx.addFilter("kodachrome"),config2.filter.technicolor&&this.fx.addFilter("technicolor"),config2.filter.polaroid&&this.fx.addFilter("polaroid"),config2.filter.pixelate!==0&&this.fx.addFilter("pixelate",config2.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tensor3d(outCanvas.data,shape,"int32")}else if(config2.backend==="webgl"||outCanvas instanceof ImageData)pixels=browser_exports.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=browser_exports.fromPixels(data2)}let casted=pixels.toFloat();tensor2=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor:tensor2,canvas:config2.filter.return?outCanvas:null}}exports.process=process3});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tfjs_esm_exports={};__export(tfjs_esm_exports,{Abs:()=>Abs,Acos:()=>Acos,Acosh:()=>Acosh,AdadeltaOptimizer:()=>AdadeltaOptimizer,AdagradOptimizer:()=>AdagradOptimizer,AdamOptimizer:()=>AdamOptimizer,AdamaxOptimizer:()=>AdamaxOptimizer,Add:()=>Add,AddN:()=>AddN,All:()=>All,Any:()=>Any,ArgMax:()=>ArgMax,ArgMin:()=>ArgMin,Asin:()=>Asin,Asinh:()=>Asinh,Atan:()=>Atan,Atan2:()=>Atan2,Atanh:()=>Atanh,AvgPool:()=>AvgPool,AvgPool3D:()=>AvgPool3D,AvgPool3DGrad:()=>AvgPool3DGrad,AvgPoolGrad:()=>AvgPoolGrad,BackendWasm:()=>BackendWasm,BatchMatMul:()=>BatchMatMul,BatchToSpaceND:()=>BatchToSpaceND,Bincount:()=>Bincount,BroadcastTo:()=>BroadcastTo,Callback:()=>Callback,CallbackList:()=>CallbackList,Cast:()=>Cast,Ceil:()=>Ceil,ClipByValue:()=>ClipByValue,Complex:()=>Complex,ComplexAbs:()=>ComplexAbs,Concat:()=>Concat,Conv2D:()=>Conv2D,Conv2DBackpropFilter:()=>Conv2DBackpropFilter,Conv2DBackpropInput:()=>Conv2DBackpropInput,Conv3D:()=>Conv3D,Conv3DBackpropFilterV2:()=>Conv3DBackpropFilterV2,Conv3DBackpropInputV2:()=>Conv3DBackpropInputV2,Cos:()=>Cos,Cosh:()=>Cosh,CropAndResize:()=>CropAndResize,Cumsum:()=>Cumsum,CustomCallback:()=>CustomCallback,DataStorage:()=>DataStorage,DenseBincount:()=>DenseBincount,DepthToSpace:()=>DepthToSpace,DepthwiseConv2dNative:()=>DepthwiseConv2dNative,DepthwiseConv2dNativeBackpropFilter:()=>DepthwiseConv2dNativeBackpropFilter,DepthwiseConv2dNativeBackpropInput:()=>DepthwiseConv2dNativeBackpropInput,Diag:()=>Diag,Dilation2D:()=>Dilation2D,Dilation2DBackpropFilter:()=>Dilation2DBackpropFilter,Dilation2DBackpropInput:()=>Dilation2DBackpropInput,ENV:()=>ENV,EarlyStopping:()=>EarlyStopping,Elu:()=>Elu,EluGrad:()=>EluGrad,Environment:()=>Environment,Equal:()=>Equal,Erf:()=>Erf,Exp:()=>Exp,ExpandDims:()=>ExpandDims,Expm1:()=>Expm1,FFT:()=>FFT,Fill:()=>Fill,FlipLeftRight:()=>FlipLeftRight,Floor:()=>Floor,FloorDiv:()=>FloorDiv,FromPixels:()=>FromPixels,FusedBatchNorm:()=>FusedBatchNorm,FusedConv2D:()=>FusedConv2D,FusedDepthwiseConv2D:()=>FusedDepthwiseConv2D,GPGPUContext:()=>GPGPUContext,GatherNd:()=>GatherNd,GatherV2:()=>GatherV2,GraphModel:()=>GraphModel,Greater:()=>Greater,GreaterEqual:()=>GreaterEqual,History:()=>History,IFFT:()=>IFFT,Identity:()=>Identity,Imag:()=>Imag,InputSpec:()=>InputSpec,IsFinite:()=>IsFinite,IsInf:()=>IsInf,IsNan:()=>IsNan,KernelBackend:()=>KernelBackend,LRN:()=>LRN,LRNGrad:()=>LRNGrad,LayerVariable:()=>LayerVariable,LayersModel:()=>LayersModel,LeakyRelu:()=>LeakyRelu,Less:()=>Less,LessEqual:()=>LessEqual,LinSpace:()=>LinSpace,Log:()=>Log,Log1p:()=>Log1p,LogSoftmax:()=>LogSoftmax,LogicalAnd:()=>LogicalAnd,LogicalNot:()=>LogicalNot,LogicalOr:()=>LogicalOr,MathBackendCPU:()=>MathBackendCPU,MathBackendWebGL:()=>MathBackendWebGL,Max:()=>Max,MaxPool:()=>MaxPool,MaxPool3D:()=>MaxPool3D,MaxPool3DGrad:()=>MaxPool3DGrad,MaxPoolGrad:()=>MaxPoolGrad,MaxPoolWithArgmax:()=>MaxPoolWithArgmax,Maximum:()=>Maximum,Mean:()=>Mean,Min:()=>Min,Minimum:()=>Minimum,MirrorPad:()=>MirrorPad,Mod:()=>Mod,MomentumOptimizer:()=>MomentumOptimizer,Multinomial:()=>Multinomial,Multiply:()=>Multiply,Neg:()=>Neg,NonMaxSuppressionV3:()=>NonMaxSuppressionV3,NonMaxSuppressionV4:()=>NonMaxSuppressionV4,NonMaxSuppressionV5:()=>NonMaxSuppressionV5,NotEqual:()=>NotEqual,OP_SCOPE_SUFFIX:()=>OP_SCOPE_SUFFIX,OneHot:()=>OneHot,OnesLike:()=>OnesLike,Optimizer:()=>Optimizer,Pack:()=>Pack,PadV2:()=>PadV2,Pool:()=>Pool,Pow:()=>Pow,Prelu:()=>Prelu,Prod:()=>Prod,RMSPropOptimizer:()=>RMSPropOptimizer,RNN:()=>RNN,Range:()=>Range,Rank:()=>Rank,Real:()=>Real,RealDiv:()=>RealDiv,Reciprocal:()=>Reciprocal,Reduction:()=>Reduction,Relu:()=>Relu,Relu6:()=>Relu6,Reshape:()=>Reshape,ResizeBilinear:()=>ResizeBilinear,ResizeBilinearGrad:()=>ResizeBilinearGrad,ResizeNearestNeighbor:()=>ResizeNearestNeighbor,ResizeNearestNeighborGrad:()=>ResizeNearestNeighborGrad,Reverse:()=>Reverse,RotateWithOffset:()=>RotateWithOffset,Round:()=>Round,Rsqrt:()=>Rsqrt,SGDOptimizer:()=>SGDOptimizer,ScatterNd:()=>ScatterNd,Select:()=>Select,Selu:()=>Selu,Sequential:()=>Sequential,Sigmoid:()=>Sigmoid,Sign:()=>Sign,Sin:()=>Sin,Sinh:()=>Sinh,Slice:()=>Slice,Softmax:()=>Softmax,Softplus:()=>Softplus,SpaceToBatchND:()=>SpaceToBatchND,SparseToDense:()=>SparseToDense,SplitV:()=>SplitV,Sqrt:()=>Sqrt,Square:()=>Square,SquaredDifference:()=>SquaredDifference,Step:()=>Step,StridedSlice:()=>StridedSlice,Sub:()=>Sub,Sum:()=>Sum,SymbolicTensor:()=>SymbolicTensor,Tan:()=>Tan,Tanh:()=>Tanh,Tensor:()=>Tensor,TensorBuffer:()=>TensorBuffer,Tile:()=>Tile,TopK:()=>TopK,Transpose:()=>Transpose,Unique:()=>Unique,Unpack:()=>Unpack,UnsortedSegmentSum:()=>UnsortedSegmentSum,Variable:()=>Variable,ZerosLike:()=>ZerosLike,_FusedMatMul:()=>_FusedMatMul,abs:()=>abs,acos:()=>acos,acosh:()=>acosh,add:()=>add2,addN:()=>addN,addStrict:()=>addStrict,all:()=>all,any:()=>any,argMax:()=>argMax,argMin:()=>argMin,asin:()=>asin,asinh:()=>asinh,atan:()=>atan,atan2:()=>atan2,atanh:()=>atanh,avgPool:()=>avgPool,avgPool3d:()=>avgPool3d,backend:()=>backend,backend_util:()=>backend_util_exports,basicLSTMCell:()=>basicLSTMCell,batchNorm:()=>batchNorm,batchNorm2d:()=>batchNorm2d,batchNorm3d:()=>batchNorm3d,batchNorm4d:()=>batchNorm4d,batchToSpaceND:()=>batchToSpaceND,bincount:()=>bincount,booleanMaskAsync:()=>booleanMaskAsync,broadcastTo:()=>broadcastTo,browser:()=>browser_exports,buffer:()=>buffer,callbacks:()=>callbacks,cast:()=>cast,ceil:()=>ceil,clipByValue:()=>clipByValue,clone:()=>clone,complex:()=>complex,concat:()=>concat,concat1d:()=>concat1d,concat2d:()=>concat2d,concat3d:()=>concat3d,concat4d:()=>concat4d,constraints:()=>exports_constraints_exports,conv1d:()=>conv1d,conv2d:()=>conv2d,conv2dTranspose:()=>conv2dTranspose,conv3d:()=>conv3d,conv3dTranspose:()=>conv3dTranspose,copyRegisteredKernels:()=>copyRegisteredKernels,cos:()=>cos,cosh:()=>cosh,cosineWindow:()=>cosineWindow,cumsum:()=>cumsum,customGrad:()=>customGrad,data:()=>dist_exports,denseBincount:()=>denseBincount,deprecationWarn:()=>deprecationWarn,depthToSpace:()=>depthToSpace,depthwiseConv2d:()=>depthwiseConv2d,deregisterOp:()=>deregisterOp,device_util:()=>device_util_exports,diag:()=>diag,dilation2d:()=>dilation2d,disableDeprecationWarnings:()=>disableDeprecationWarnings,dispose:()=>dispose,disposeVariables:()=>disposeVariables,div:()=>div,divNoNan:()=>divNoNan,divStrict:()=>divStrict,dot:()=>dot,dropout:()=>dropout,elu:()=>elu,enableDebugMode:()=>enableDebugMode,enableProdMode:()=>enableProdMode,enclosingPowerOfTwo:()=>enclosingPowerOfTwo,engine:()=>engine,env:()=>env,equal:()=>equal,equalStrict:()=>equalStrict,erf:()=>erf,exp:()=>exp,expandDims:()=>expandDims,expm1:()=>expm1,eye:()=>eye,fft:()=>fft,fill:()=>fill,findBackend:()=>findBackend,findBackendFactory:()=>findBackendFactory,floor:()=>floor,floorDiv:()=>floorDiv,forceHalfFloat:()=>forceHalfFloat,fused:()=>fused_ops_exports,gather:()=>gather,gatherND:()=>gatherND,gather_util:()=>gather_nd_util_exports,getBackend:()=>getBackend,getGradient:()=>getGradient,getKernel:()=>getKernel,getKernelsForBackend:()=>getKernelsForBackend,gpgpu_util:()=>gpgpu_util_exports,grad:()=>grad,grads:()=>grads,greater:()=>greater,greaterEqual:()=>greaterEqual,greaterEqualStrict:()=>greaterEqualStrict,greaterStrict:()=>greaterStrict,ifft:()=>ifft,imag:()=>imag,image:()=>image,inTopKAsync:()=>inTopKAsync,initializers:()=>exports_initializers_exports,input:()=>input,io:()=>io_exports,irfft:()=>irfft,isFinite:()=>isFinite2,isInf:()=>isInf,isNaN:()=>isNaN2,keep:()=>keep,kernel_impls:()=>kernel_impls_exports,layers:()=>exports_layers_exports,leakyRelu:()=>leakyRelu,less:()=>less,lessEqual:()=>lessEqual,lessEqualStrict:()=>lessEqualStrict,lessStrict:()=>lessStrict,linalg:()=>linalg,linspace:()=>linspace,loadGraphModel:()=>loadGraphModel,loadLayersModel:()=>loadLayersModel,localResponseNormalization:()=>localResponseNormalization,log:()=>log2,log1p:()=>log1p,logSigmoid:()=>logSigmoid,logSoftmax:()=>logSoftmax,logSumExp:()=>logSumExp,logicalAnd:()=>logicalAnd,logicalNot:()=>logicalNot,logicalOr:()=>logicalOr,logicalXor:()=>logicalXor,losses:()=>losses,matMul:()=>matMul,math:()=>math_exports,max:()=>max,maxPool:()=>maxPool,maxPool3d:()=>maxPool3d,maxPoolWithArgmax:()=>maxPoolWithArgmax,maximum:()=>maximum,maximumStrict:()=>maximumStrict,mean:()=>mean,memory:()=>memory,metrics:()=>exports_metrics_exports,min:()=>min,minimum:()=>minimum,minimumStrict:()=>minimumStrict,mirrorPad:()=>mirrorPad,mod:()=>mod,modStrict:()=>modStrict,model:()=>model,models:()=>exports_models_exports,moments:()=>moments,movingAverage:()=>movingAverage,mul:()=>mul,mulStrict:()=>mulStrict,multiRNNCell:()=>multiRNNCell,multinomial:()=>multinomial,neg:()=>neg,nextFrame:()=>nextFrame,norm:()=>norm,notEqual:()=>notEqual,notEqualStrict:()=>notEqualStrict,oneHot:()=>oneHot,ones:()=>ones2,onesLike:()=>onesLike,op:()=>op,outerProduct:()=>outerProduct,pad:()=>pad,pad1d:()=>pad1d,pad2d:()=>pad2d,pad3d:()=>pad3d,pad4d:()=>pad4d,pool:()=>pool,pow:()=>pow,powStrict:()=>powStrict,prelu:()=>prelu,print:()=>print2,prod:()=>prod,profile:()=>profile,rand:()=>rand,randomGamma:()=>randomGamma,randomNormal:()=>randomNormal,randomUniform:()=>randomUniform,range:()=>range,ready:()=>ready,real:()=>real,reciprocal:()=>reciprocal,registerBackend:()=>registerBackend,registerCallbackConstructor:()=>registerCallbackConstructor,registerGradient:()=>registerGradient,registerKernel:()=>registerKernel,registerOp:()=>registerOp,regularizers:()=>exports_regularizers_exports,relu:()=>relu,relu6:()=>relu6,removeBackend:()=>removeBackend,reshape:()=>reshape,reverse:()=>reverse,reverse1d:()=>reverse1d,reverse2d:()=>reverse2d,reverse3d:()=>reverse3d,reverse4d:()=>reverse4d,rfft:()=>rfft,round:()=>round2,rsqrt:()=>rsqrt,scalar:()=>scalar,scatterND:()=>scatterND,scatter_util:()=>scatter_nd_util_exports,selu:()=>selu,separableConv2d:()=>separableConv2d,sequential:()=>sequential,serialization:()=>serialization_exports,setBackend:()=>setBackend,setPlatform:()=>setPlatform,setWasmPath:()=>setWasmPath,setWasmPaths:()=>setWasmPaths,setWebGLContext:()=>setWebGLContext,setdiff1dAsync:()=>setdiff1dAsync,shared:()=>shared_exports,sigmoid:()=>sigmoid,sign:()=>sign,signal:()=>signal,sin:()=>sin,sinh:()=>sinh,slice:()=>slice,slice1d:()=>slice1d,slice2d:()=>slice2d,slice3d:()=>slice3d,slice4d:()=>slice4d,slice_util:()=>slice_util_exports,softmax:()=>softmax,softplus:()=>softplus,spaceToBatchND:()=>spaceToBatchND,sparseToDense:()=>sparseToDense,spectral:()=>spectral,split:()=>split,sqrt:()=>sqrt,square:()=>square,squaredDifference:()=>squaredDifference,squaredDifferenceStrict:()=>squaredDifferenceStrict,squeeze:()=>squeeze,stack:()=>stack,step:()=>step,stridedSlice:()=>stridedSlice,sub:()=>sub,subStrict:()=>subStrict,sum:()=>sum2,sumOutType:()=>sumOutType,tan:()=>tan,tanh:()=>tanh2,tensor:()=>tensor,tensor1d:()=>tensor1d,tensor2d:()=>tensor2d,tensor3d:()=>tensor3d,tensor4d:()=>tensor4d,tensor5d:()=>tensor5d,tensor6d:()=>tensor6d,tensor_util:()=>tensor_util_exports,test_util:()=>test_util_exports,tidy:()=>tidy,tile:()=>tile,time:()=>time,topk:()=>topk,train:()=>train,transpose:()=>transpose,truncatedNormal:()=>truncatedNormal,unique:()=>unique,unregisterGradient:()=>unregisterGradient,unregisterKernel:()=>unregisterKernel,unsortedSegmentSum:()=>unsortedSegmentSum,unstack:()=>unstack,upcastType:()=>upcastType,util:()=>util_exports,valueAndGrad:()=>valueAndGrad,valueAndGrads:()=>valueAndGrads,variable:()=>variable,variableGrads:()=>variableGrads,version:()=>version13,version_converter:()=>version11,version_core:()=>version6,version_cpu:()=>version7,version_layers:()=>version10,version_wasm:()=>version9,version_webgl:()=>version8,webgl:()=>webgl,webgl_util:()=>webgl_util_exports,where:()=>where,whereAsync:()=>whereAsync,zeros:()=>zeros,zerosLike:()=>zerosLike});var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__commonJS2=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export2=(target,all4)=>{__markAsModule2(target);for(var name in all4)__defProp2(target,name,{get:all4[name],enumerable:!0})},__exportStar2=(target,module,desc)=>{if(__markAsModule2(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames2(module))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc2(module,key))||desc.enumerable});return target},__toModule2=module=>module&&module.__esModule?module:__exportStar2(__defProp2(module!=null?__create2(__getProtoOf2(module)):{},"default",{value:module,enumerable:!0}),module),require_browser=__commonJS2(()=>{}),require_alea=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor128=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift7=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor4096=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_crypto=__commonJS2(()=>{}),require_seedrandom=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea(),xor128=require_xor128(),xorwow=require_xorwow(),xorshift7=require_xorshift7(),xor4096=require_xor4096(),tychei=require_tychei(),sr=require_seedrandom();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_alea2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1282=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift72=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40962=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom3=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea2(),xor128=require_xor1282(),xorwow=require_xorwow2(),xorshift7=require_xorshift72(),xor4096=require_xor40962(),tychei=require_tychei2(),sr=require_seedrandom3();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_path=__commonJS2(()=>{}),require_worker_threads=__commonJS2(()=>{}),require_perf_hooks=__commonJS2(()=>{}),require_tfjs_backend_wasm_threaded_simd=__commonJS2((exports,module)=>{var WasmBackendModuleThreadedSimd=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModuleThreadedSimd2){WasmBackendModuleThreadedSimd2=WasmBackendModuleThreadedSimd2||{};function GROWABLE_HEAP_I8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP8}function GROWABLE_HEAP_U8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU8}function GROWABLE_HEAP_I32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP32}function GROWABLE_HEAP_U32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU32}function GROWABLE_HEAP_F64(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd2!="undefined"?WasmBackendModuleThreadedSimd2:{},_scriptDir2=void 0,moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module.ENVIRONMENT_IS_PTHREAD||!1;ENVIRONMENT_IS_PTHREAD&&(buffer2=Module.buffer,DYNAMIC_BASE=Module.DYNAMIC_BASE,DYNAMICTOP_PTR=Module.DYNAMICTOP_PTR);var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;if(ENVIRONMENT_IS_NODE){ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status){process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require_worker_threads()}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}Worker=nodeWorkerThreads.Worker}else ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status){quit(status)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir2&&(scriptDirectory=_scriptDir2),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",ENVIRONMENT_IS_NODE?(read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret}):(read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)}),setWindowTitle=function(title){document.title=title});ENVIRONMENT_IS_NODE&&typeof performance=="undefined"&&(performance=require_perf_hooks().performance);var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var Atomics_load=Atomics.load,Atomics_store=Atomics.store,Atomics_compareExchange=Atomics.compareExchange,wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:169,maximum:169+0,element:"anyfunc"}),wasmModule,threadInfoStruct=0,selfThreadId=0,ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str){var ret2=0;if(str!=null&&str!==0){var len=(str.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224?u0=(u0&15)<<12|u1<<6|u2:u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63,u0<65536)str+=String.fromCharCode(u0);else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){for(var len=0,i=0;i=55296&&u<=57343&&(u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023),u<=127?++len:u<=2047?len+=2:u<=65535?len+=3:len+=4}return len}function writeArrayToMemory(array2,buffer3){GROWABLE_HEAP_I8().set(array2,buffer3)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){return x%multiple>0&&(x+=multiple-x%multiple),x}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656,INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;if(ENVIRONMENT_IS_PTHREAD)wasmMemory=Module.wasmMemory,buffer2=Module.buffer;else if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else if(wasmMemory=new WebAssembly.Memory({initial:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,maximum:2147483648/WASM_PAGE_SIZE,shared:!0}),!(wasmMemory.buffer instanceof SharedArrayBuffer))throw err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ENVIRONMENT_IS_NODE&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");wasmMemory&&(buffer2=wasmMemory.buffer),INITIAL_INITIAL_MEMORY=buffer2.byteLength,updateGlobalBufferAndViews(buffer2),ENVIRONMENT_IS_PTHREAD||(GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE);function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1;ENVIRONMENT_IS_PTHREAD&&(runtimeInitialized=!0);function preRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){ENVIRONMENT_IS_PTHREAD||callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){assert3(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker"),runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),ENVIRONMENT_IS_PTHREAD&&console.error("Pthread aborting at "+new Error().stack),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm-threaded-simd.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={a:asmLibraryArg};function receiveInstance(instance,module2){var exports3=instance.exports;if(Module.asm=exports3,wasmModule=module2,!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){--numWorkersToLoad||removeRunDependency("wasm-instantiate")})})}}ENVIRONMENT_IS_PTHREAD||addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance,output.module)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}ENVIRONMENT_IS_PTHREAD||__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0,__pthread_is_main_runtime_thread=0,__pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0,isMainBrowserThread=isMainBrowserThread|0,isMainRuntimeThread=isMainRuntimeThread|0,__pthread_ptr=pthreadPtr,__pthread_is_main_browser_thread=isMainBrowserThread,__pthread_is_main_runtime_thread=isMainRuntimeThread}Module.__register_pthread_ptr=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},__main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count2){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0||count2<0)return-28;if(count2==0)return 0;count2>=2147483647&&(count2=Infinity);var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2),mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress&&(--count2,mainThreadWoken=1,count2<=0))return 1}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count2);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module._emscripten_futex_wake=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _kill_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate(),PThread.freeThreadData(pthread),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1),pthread.worker.pthread=void 0}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({cmd:"cancel"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1),_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){for(var pthreadPoolSize=8,i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;for(var tlsMemory=13056,i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){for(;PThread.exitHandlers.length>0;)PThread.exitHandlers.pop()();PThread.exitHandlers=null}ENVIRONMENT_IS_PTHREAD&&threadInfoStruct&&___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();tb&&(Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode),Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0),PThread.runExitHandlers(),_emscripten_futex_wake(tb+0,2147483647),__register_pthread_ptr(0,0,0),threadInfoStruct=0,ENVIRONMENT_IS_PTHREAD&&postMessage({cmd:"exit"}))},threadCancel:function(){PThread.runExitHandlers(),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1),_emscripten_futex_wake(threadInfoStruct+0,2147483647),threadInfoStruct=selfThreadId=0,__register_pthread_ptr(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];pthread&&pthread.worker&&PThread.returnWorkerToPool(pthread.worker)}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0,_free(tlsMemory),_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0,pthread.allocatedOwnStack&&pthread.stackBase&&_free(pthread.stackBase),pthread.stackBase=0,pthread.worker&&(pthread.worker.pthread=null)}},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread],PThread.unusedWorkers.push(worker),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1),PThread.freeThreadData(worker.pthread),worker.pthread=void 0},receiveObjectTransfer:function(data2){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e.data,cmd=d.cmd;if(worker.pthread&&(PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct),d.targetThread&&d.targetThread!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];thread?thread.worker.postMessage(e.data,d.transferList):console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d.targetThread+", but that thread no longer exists!"),PThread.currentProxiedOperationCallerThread=void 0;return}if(cmd==="processQueuedMainThreadWork")_emscripten_main_thread_process_queued_calls();else if(cmd==="spawnThread")__spawn_thread(e.data);else if(cmd==="cleanupThread")__cleanup_thread(d.thread);else if(cmd==="killThread")__kill_thread(d.thread);else if(cmd==="cancelThread")__cancel_thread(d.thread);else if(cmd==="loaded")worker.loaded=!0,onFinishedLoading&&onFinishedLoading(worker),worker.runPthread&&(worker.runPthread(),delete worker.runPthread);else if(cmd==="print")out("Thread "+d.threadId+": "+d.text);else if(cmd==="printErr")err("Thread "+d.threadId+": "+d.text);else if(cmd==="alert")alert("Thread "+d.threadId+": "+d.text);else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);detached&&PThread.returnWorkerToPool(worker)}else cmd==="cancelDone"?PThread.returnWorkerToPool(worker):cmd==="objectTransfer"?PThread.receiveObjectTransfer(e.data):e.data.target==="setimmediate"?worker.postMessage(e.data):err("worker sent an unknown command "+cmd);PThread.currentProxiedOperationCallerThread=void 0},worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)},ENVIRONMENT_IS_NODE&&(worker.on("message",function(data2){worker.onmessage({data:data2})}),worker.on("error",function(data2){worker.onerror(data2)}),worker.on("exit",function(data2){console.log("worker exited - TODO: update the worker queue?")})),worker.postMessage({cmd:"load",urlOrBlob:Module.mainScriptUrlOrBlob||_scriptDir2,wasmMemory,wasmModule,DYNAMIC_BASE,DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("tfjs-backend-wasm-threaded-simd.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){return PThread.unusedWorkers.length==0&&(PThread.allocateUnusedWorker(),PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])),PThread.unusedWorkers.length>0?PThread.unusedWorkers.pop():null},busySpinWait:function(msecs){for(var t=performance.now()+msecs;performance.now()>2]=value,value}function _atexit(func2,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func2,arg);__ATEXIT__.unshift({func:func2,arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId)postMessage({cmd:"processQueuedMainThreadWork"});else if(ENVIRONMENT_IS_PTHREAD)postMessage({targetThread:targetThreadId,cmd:"processThreadQueue"});else{var pthread=PThread.pthreads[targetThreadId],worker=pthread&&pthread.worker;if(!worker)return;worker.postMessage({cmd:"processThreadQueue"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0,newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now(),tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);for(var ourWaitAddress=addr;addr==ourWaitAddress;){if(tNow=performance.now(),tNow>tEnd)return-73;_emscripten_main_thread_process_queued_calls(),addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator.hardwareConcurrency}function _emscripten_proxy_to_main_thread_js(index,sync){for(var numCallArgs=arguments.length-2,stack2=stackSave(),args=stackAlloc(numCallArgs*8),b=args>>3,i=0;i>3]),buf+=8):(buf=buf+3&~3,args.push(GROWABLE_HEAP_I32()[buf>>2]),buf+=4);return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;for(var b=args>>3,i=0;i>>16),updateGlobalBufferAndViews(wasmMemory.buffer),1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize)return!1;var PAGE_MULTIPLE=65536,maxHeapSize=2147483648;if(requestedSize>maxHeapSize)return!1;for(var minHeapSize=16777216,cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE)),replacement=emscripten_realloc_buffer(newSize);if(replacement)return!0}return!1}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i)JSEvents._removeHandler(i);JSEvents.eventHandlers=[],JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){JSEvents.removeEventListenersRegistered||(__ATEXIT__.push(JSEvents.removeAllEventListeners),JSEvents.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return!1;for(var i2 in arrA)if(arrA[i2]!=arrB[i2])return!1;return!0}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList))return}JSEvents.deferredCalls.push({targetFunction,precedence,argsList}),JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId,GROWABLE_HEAP_I32()[varargs+4>>2]=eventData,GROWABLE_HEAP_I32()[varargs+8>>2]=userData,_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs),stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){return target?target==window?"#window":target==screen?"#screen":target&&target.nodeName?target.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1,cString=_malloc(length);return stringToUTF8(jsString,cString,length),cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave(),varargs=stackAlloc(12),targetCanvasPtr=0;targetCanvas&&(targetCanvasPtr=stringToNewUTF8(targetCanvas)),GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr,GROWABLE_HEAP_I32()[varargs+4>>2]=width,GROWABLE_HEAP_I32()[varargs+8>>2]=height,_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs),stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"",_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):void 0);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr&&(GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width,GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height),canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){canvas.offscreenCanvas&&(canvas=canvas.offscreenCanvas);var autoResizeViewport=!1;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width,canvas.height=height,autoResizeViewport&&canvas.GLctxObject.GLctx.viewport(0,0,width,height)}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];return _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height),1}else return-4;return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(2,1,target,width,height):_emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);return canvas?_emscripten_set_canvas_element_size_calling_thread(target,width,height):_emscripten_set_canvas_element_size_main_thread(target,width,height)}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0,name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext)return ctx.vertexAttribDivisor=function(index,divisor){ext.vertexAttribDivisorANGLE(index,divisor)},ctx.drawArraysInstanced=function(mode,first,count2,primcount){ext.drawArraysInstancedANGLE(mode,first,count2,primcount)},ctx.drawElementsInstanced=function(mode,count2,type,indices,primcount){ext.drawElementsInstancedANGLE(mode,count2,type,indices,primcount)},1}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext)return ctx.createVertexArray=function(){return ext.createVertexArrayOES()},ctx.deleteVertexArray=function(vao){ext.deleteVertexArrayOES(vao)},ctx.bindVertexArray=function(vao){ext.bindVertexArrayOES(vao)},ctx.isVertexArray=function(vao){return ext.isVertexArrayOES(vao)},1}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext)return ctx.drawBuffers=function(n,bufs){ext.drawBuffersWEBGL(n,bufs)},1}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE),i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?void 0:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};return ctx.canvas&&(ctx.canvas.GLctxObject=context),GL.contexts[handle]=context,(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault)&&GL.initExtensions(context),handle},makeContextCurrent:function(contextHandle){return GL.currentContext=GL.contexts[contextHandle],Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx,!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){GL.currentContext===GL.contexts[contextHandle]&&(GL.currentContext=null),typeof JSEvents=="object"&&JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas),GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas&&(GL.contexts[contextHandle].GLctx.canvas.GLctxObject=void 0),_free(GL.contexts[contextHandle].handle),GL.contexts[contextHandle]=null},initExtensions:function(context){if(context||(context=GL.currentContext),!context.initExtensionsDone){context.initExtensionsDone=!0;var GLctx2=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx2),__webgl_enable_OES_vertex_array_object(GLctx2),__webgl_enable_WEBGL_draw_buffers(GLctx2),GLctx2.disjointTimerQueryExt=GLctx2.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],exts=GLctx2.getSupportedExtensions()||[];exts.forEach(function(ext){automaticallyEnabledExtensions.indexOf(ext)!=-1&&GLctx2.getExtension(ext)})}},populateUniformTable:function(program){for(var p2=GL.programs[program],ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},utable=ptable.uniforms,numUniforms=GLctx.getProgramParameter(p2,35718),i=0;i>2;contextAttributes.alpha=!!GROWABLE_HEAP_I32()[a+(0>>2)],contextAttributes.depth=!!GROWABLE_HEAP_I32()[a+(4>>2)],contextAttributes.stencil=!!GROWABLE_HEAP_I32()[a+(8>>2)],contextAttributes.antialias=!!GROWABLE_HEAP_I32()[a+(12>>2)],contextAttributes.premultipliedAlpha=!!GROWABLE_HEAP_I32()[a+(16>>2)],contextAttributes.preserveDrawingBuffer=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes.powerPreference=__emscripten_webgl_power_preferences[powerPreference],contextAttributes.failIfMajorPerformanceCaveat=!!GROWABLE_HEAP_I32()[a+(28>>2)],contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)],contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)],contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)],contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)],contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)],contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(contextAttributes.explicitSwapControl)return-1;var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a12){return _emscripten_webgl_do_create_context(a0,a12)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(3,1,fd):0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);for(var num=0,i=0;i>2],len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _pthread_cleanup_pop(execute2){var routine=PThread.exitHandlers.pop();execute2&&routine()}function _pthread_cleanup_push(routine,arg){PThread.exitHandlers===null&&(PThread.exitHandlers=[]),PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(worker.pthread!==void 0)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);for(var tlsMemory=_malloc(128*4),i=0;i<128;++i)GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0;var stackHigh=threadParams.stackBase+threadParams.stackSize,pthread=PThread.pthreads[threadParams.pthread_ptr]={worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr},tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct),Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42),Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc(),global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale),worker.pthread=pthread;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,threadInfoStruct:threadParams.pthread_ptr,selfThreadId:threadParams.pthread_ptr,parentThreadId:threadParams.parent_pthread_ptr,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now(),worker.postMessage(msg,threadParams.transferList)},worker.loaded&&(worker.runPthread(),delete worker.runPthread)}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread)return err("pthread_getschedparam called with a null thread pointer!"),ERRNO_CODES.ESRCH;var self2=GROWABLE_HEAP_I32()[thread+12>>2];if(self2!==thread)return err("pthread_getschedparam attempted on thread "+thread+", which does not point to a valid thread, or does not exist anymore!"),ERRNO_CODES.ESRCH;var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2),schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);return policy&&(GROWABLE_HEAP_I32()[policy>>2]=schedPolicy),schedparam&&(GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio),0}function _pthread_self(){return __pthread_ptr|0}Module._pthread_self=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer=="undefined")return err("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!pthread_ptr)return err("pthread_create called with a null thread pointer!"),28;var transferList=[],error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error))return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg);if(error)return error;var stackSize=0,stackBase=0,detached=0,schedPolicy=0,schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2],stackSize+=81920,stackBase=GROWABLE_HEAP_I32()[attr+8>>2],detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2],parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24),schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2],GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy,GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}else stackSize=2097152;var allocatedOwnStack=stackBase==0;allocatedOwnStack?stackBase=_memalign(16,stackSize):(stackBase-=stackSize,assert3(stackBase>0));for(var threadInfoStruct2=_malloc(232),i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct2>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct2,GROWABLE_HEAP_I32()[threadInfoStruct2+12>>2]=threadInfoStruct2;var headPtr=threadInfoStruct2+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase,stackSize,allocatedOwnStack,schedPolicy,schedPrio,detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct2,parent_pthread_ptr:_pthread_self(),arg,transferList};return ENVIRONMENT_IS_PTHREAD?(threadParams.cmd="spawnThread",postMessage(threadParams,transferList)):__spawn_thread(threadParams),0}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return setErrNo(28),-1}ENVIRONMENT_IS_PTHREAD?PThread.initWorker():PThread.initMainThreadBlock();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf],asmLibraryArg={e:___assert_fail,r:___call_main,w:__emscripten_notify_thread_queue,a:_abort,l:_emscripten_conditional_set_current_thread_status,d:_emscripten_futex_wait,c:_emscripten_futex_wake,h:_emscripten_get_now,g:_emscripten_is_main_browser_thread,x:_emscripten_is_main_runtime_thread,q:_emscripten_memcpy_big,B:_emscripten_num_logical_cores,t:_emscripten_receive_on_main_thread_js,A:_emscripten_resize_heap,u:_emscripten_set_canvas_element_size,k:_emscripten_set_current_thread_status,s:_emscripten_set_thread_name,v:_emscripten_webgl_create_context,m:_fd_close,o:_fd_seek,i:_fd_write,p:initPthreadsJS,memory:wasmMemory||Module.wasmMemory,y:_pthread_cleanup_pop,z:_pthread_cleanup_push,j:_pthread_create,b:_pthread_self,f:_roundf,n:_sysconf,table:wasmTable},asm=createWasm();Module.asm=asm;var ___wasm_call_ctors=Module.___wasm_call_ctors=function(){return(___wasm_call_ctors=Module.___wasm_call_ctors=Module.asm.C).apply(null,arguments)},_init=Module._init=function(){return(_init=Module._init=Module.asm.D).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.E).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.F).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.G).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.H).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.I).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.J).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.K).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.L).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.M).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.N).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.O).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.P).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Q).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.R).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.S).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.T).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.U).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.V).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.W).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.X).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Y).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.Z).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm._).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.$).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.aa).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.ba).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.ca).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.da).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.ea).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.fa).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.ga).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.ha).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.ia).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.ja).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.ka).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.la).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.ma).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.na).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.oa).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.pa).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.qa).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.ra).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.sa).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.ta).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.ua).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.va).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.wa).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.xa).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.ya).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.za).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Aa).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.Ba).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Ca).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Da).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.Ea).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Fa).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.Ga).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Ha).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Ia).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.Ja).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.Ka).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.La).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Ma).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Na).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Oa).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Pa).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.Qa).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.Ra).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sa).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Ta).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Ua).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Va).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.Wa).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Xa).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm.Ya).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.Za).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm._a).apply(null,arguments)},_emscripten_get_global_libc=Module._emscripten_get_global_libc=function(){return(_emscripten_get_global_libc=Module._emscripten_get_global_libc=Module.asm.$a).apply(null,arguments)},___errno_location=Module.___errno_location=function(){return(___errno_location=Module.___errno_location=Module.asm.ab).apply(null,arguments)},___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=function(){return(___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=Module.asm.bb).apply(null,arguments)},_memalign=Module._memalign=function(){return(_memalign=Module._memalign=Module.asm.cb).apply(null,arguments)},___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=function(){return(___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=Module.asm.db).apply(null,arguments)},_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=function(){return(_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=Module.asm.eb).apply(null,arguments)},_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=function(){return(_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=Module.asm.fb).apply(null,arguments)},_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=function(){return(_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=Module.asm.gb).apply(null,arguments)},_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=function(){return(_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=Module.asm.hb).apply(null,arguments)},_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=function(){return(_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=Module.asm.ib).apply(null,arguments)},_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=function(){return(_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=Module.asm.jb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=function(){return(_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=Module.asm.kb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=function(){return(_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=Module.asm.lb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=function(){return(_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=Module.asm.mb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=Module.asm.nb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=function(){return(_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=Module.asm.ob).apply(null,arguments)},_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=function(){return(_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=Module.asm.pb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=function(){return(_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=Module.asm.qb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=function(){return(_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=Module.asm.rb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=function(){return(_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=Module.asm.sb).apply(null,arguments)},_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=function(){return(_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=Module.asm.tb).apply(null,arguments)},_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=function(){return(_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=Module.asm.ub).apply(null,arguments)},_emscripten_tls_init=Module._emscripten_tls_init=function(){return(_emscripten_tls_init=Module._emscripten_tls_init=Module.asm.vb).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.wb).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.xb).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.yb).apply(null,arguments)},dynCall_vi=Module.dynCall_vi=function(){return(dynCall_vi=Module.dynCall_vi=Module.asm.zb).apply(null,arguments)},dynCall_v=Module.dynCall_v=function(){return(dynCall_v=Module.dynCall_v=Module.asm.Ab).apply(null,arguments)},dynCall_ii=Module.dynCall_ii=function(){return(dynCall_ii=Module.dynCall_ii=Module.asm.Bb).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap,Module.PThread=PThread,Module.PThread=PThread,Module._pthread_self=_pthread_self,Module.wasmMemory=wasmMemory,Module.ExitStatus=ExitStatus;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}if(Module.run=run,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();return ENVIRONMENT_IS_PTHREAD||(noExitRuntime=!0),ENVIRONMENT_IS_PTHREAD||run(),WasmBackendModuleThreadedSimd2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModuleThreadedSimd:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModuleThreadedSimd}):typeof exports=="object"&&(exports.WasmBackendModuleThreadedSimd=WasmBackendModuleThreadedSimd)}),require_tfjs_backend_wasm=__commonJS2((exports,module)=>{var WasmBackendModule=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModule2){WasmBackendModule2=WasmBackendModule2||{};var Module=typeof WasmBackendModule2!="undefined"?WasmBackendModule2:{},moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;ENVIRONMENT_IS_NODE?(ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status){process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"}):ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status){quit(status)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)},setWindowTitle=function(title){document.title=title});var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:151,maximum:151+0,element:"anyfunc"}),ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str){var ret2=0;if(str!=null&&str!==0){var len=(str.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);)++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder)return UTF8Decoder.decode(heap.subarray(idx,endPtr));for(var str="";idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array2,buffer3){HEAP8.set(array2,buffer3)}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function receiveInstance(instance,module2){var exports3=instance.exports;Module.asm=exports3,wasmMemory=exports3.memory,updateGlobalBufferAndViews(wasmMemory.buffer),removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){for(var num=0,i=0;i>2],len=HEAP32[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}var asmLibraryArg={emscripten_notify_memory_growth:_emscripten_notify_memory_growth,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,proc_exit:_proc_exit,roundf:_roundf},asm=createWasm();Module.asm=asm;var _init=Module._init=function(){return(_init=Module._init=Module.asm.init).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.register_tensor).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.dispose_data).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.dispose).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.Abs).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.Add).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.AddN).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.ArgMax).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.AvgPool).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.BatchMatMul).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.ClipByValue).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.Conv2D).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.Conv2DBackpropInput).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Cos).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.CropAndResize).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.Cumsum).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.DepthToSpace).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.DepthwiseConv2dNative).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.Equal).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.Exp).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.FlipLeftRight).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Floor).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.FloorDiv).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm.FusedBatchNorm).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.FusedConv2D).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.FusedDepthwiseConv2D).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.Gather).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.GatherNd).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.Greater).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.GreaterEqual).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.LeakyRelu).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.Less).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.LessEqual).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.Log).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.LogicalAnd).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.Max).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.MaxPool).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.Maximum).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.Mean).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.Min).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.Minimum).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.Multiply).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.Neg).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.NonMaxSuppressionV3).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.NonMaxSuppressionV4).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.NonMaxSuppressionV5).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.NotEqual).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.OneHot).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.PadV2).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.Pow).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.Prelu).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Prod).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.RealDiv).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Relu).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Relu6).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.ResizeBilinear).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Reverse).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.RotateWithOffset).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Round).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Rsqrt).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.ScatterNd).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.SelectV2).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.Sigmoid).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Sin).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Softmax).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Sqrt).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Square).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.SquaredDifference).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.StridedSlice).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sub).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Sum).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Tanh).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Tile).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.TopK).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Transpose).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm._FusedMatMul).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.malloc).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm.free).apply(null,arguments)},__start=Module.__start=function(){return(__start=Module.__start=Module.asm._start).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.stackSave).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.stackRestore).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}var calledMain=!1;dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function callMain(args){var entryFunction=Module.__start;try{entryFunction();var ret=0;exit(ret,!0)}catch(e){if(e instanceof ExitStatus)return;if(e=="unwind"){noExitRuntime=!0;return}else{var toLog=e;e&&typeof e=="object"&&e.stack&&(toLog=[e,e.stack]),err("exception thrown: "+toLog),quit_(1,e)}}finally{calledMain=!0}}function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(args),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}Module.run=run;function exit(status,implicit){implicit&&noExitRuntime&&status===0||(noExitRuntime||(ABORT=!0,EXITSTATUS=status,exitRuntime(),Module.onExit&&Module.onExit(status)),quit_(status,new ExitStatus(status)))}if(Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),noExitRuntime=!0,run(),WasmBackendModule2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModule:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModule}):typeof exports=="object"&&(exports.WasmBackendModule=WasmBackendModule)}),require_alea3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=String(data2);for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1283=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift73=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40963=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom5=__commonJS2((exports,module)=>{(function(global2,pool3,math){var width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea3(),xor128=require_xor1283(),xorwow=require_xorwow3(),xorshift7=require_xorshift73(),xor4096=require_xor40963(),tychei=require_tychei3(),sr=require_seedrandom5();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_string_decoder=__commonJS2(()=>{}),version="2.8.3",version2="2.8.3",version3="2.8.3",version4="2.8.3",version5="2.8.3",EPSILON_FLOAT32=1e-7,EPSILON_FLOAT16=1e-4,DataStorage=class{constructor(backend22,dataMover){this.backend=backend22,this.dataMover=dataMover,this.data=new WeakMap,this.dataIdsCount=0}get(dataId){return this.data.has(dataId)||this.dataMover.moveData(this.backend,dataId),this.data.get(dataId)}set(dataId,value){this.dataIdsCount++,this.data.set(dataId,value)}has(dataId){return this.data.has(dataId)}delete(dataId){return this.dataIdsCount--,this.data.delete(dataId)}numDataIds(){return this.dataIdsCount}},KernelBackend=class{time(f){return notYetImplemented("time")}read(dataId){return notYetImplemented("read")}readSync(dataId){return notYetImplemented("readSync")}numDataIds(){return notYetImplemented("numDataIds")}disposeData(dataId){return notYetImplemented("disposeData")}write(values,shape,dtype){return notYetImplemented("write")}move(dataId,values,shape,dtype){return notYetImplemented("move")}memory(){return notYetImplemented("memory")}floatPrecision(){return notYetImplemented("floatPrecision")}epsilon(){return this.floatPrecision()===32?EPSILON_FLOAT32:EPSILON_FLOAT16}batchMatMul(a,b,transposeA,transposeB){return notYetImplemented("batchMatMul")}fusedBatchMatMul({a,b,transposeA,transposeB,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedBatchMatMul")}slice(x,begin,size){return notYetImplemented("slice")}stridedSlice(x,begin,end,strides){return notYetImplemented("stridedSlice")}unstack(x,axis){return notYetImplemented("unstack")}reverse(a,axis){return notYetImplemented("reverse")}concat(tensors,axis){return notYetImplemented("concat")}neg(a){return notYetImplemented("neg")}add(a,b){return notYetImplemented("add")}addN(tensors){return notYetImplemented("addN")}subtract(a,b){return notYetImplemented("subtract")}multiply(a,b){return notYetImplemented("multiply")}realDivide(a,b){return notYetImplemented("realDivide")}floorDiv(a,b){return notYetImplemented("floorDiv")}sum(x,axes){return notYetImplemented("sum")}prod(x,axes){return notYetImplemented("prod")}unsortedSegmentSum(x,segmentIds,numSegments){return notYetImplemented("unsortedSegmentSum")}argMin(x,axis){return notYetImplemented("argMin")}argMax(x,axis){return notYetImplemented("argMax")}equal(a,b){return notYetImplemented("equal")}notEqual(a,b){return notYetImplemented("notEqual")}less(a,b){return notYetImplemented("less")}lessEqual(a,b){return notYetImplemented("lessEqual")}greater(a,b){return notYetImplemented("greater")}greaterEqual(a,b){return notYetImplemented("greaterEqual")}logicalNot(a){return notYetImplemented("logicalNot")}logicalAnd(a,b){return notYetImplemented("logicalAnd")}logicalOr(a,b){return notYetImplemented("logicalOr")}where(condition){return notYetImplemented("where")}select(condition,a,b){return notYetImplemented("select")}topk(x,k,sorted){return notYetImplemented("topk")}min(x,axes){return notYetImplemented("min")}minimum(a,b){return notYetImplemented("minimum")}mod(a,b){return notYetImplemented("mod")}max(x,axes){return notYetImplemented("max")}maximum(a,b){return notYetImplemented("maximum")}all(x,axes){return notYetImplemented("all")}any(x,axes){return notYetImplemented("any")}squaredDifference(a,b){return notYetImplemented("squaredDifference")}ceil(x){return notYetImplemented("ceil")}floor(x){return notYetImplemented("floor")}round(x){return notYetImplemented("round")}sign(x){return notYetImplemented("sign")}isNaN(x){return notYetImplemented("isNaN")}isInf(x){return notYetImplemented("isInf")}isFinite(x){return notYetImplemented("isFinite")}pow(a,b){return notYetImplemented("pow")}exp(x){return notYetImplemented("exp")}expm1(x){return notYetImplemented("expm1")}softmax(x,dim){return notYetImplemented("softmax")}log(x){return notYetImplemented("log")}log1p(x){return notYetImplemented("log1p")}sqrt(x){return notYetImplemented("sqrt")}rsqrt(x){return notYetImplemented("rsqrt")}square(x){return notYetImplemented("square")}reciprocal(x){return notYetImplemented("reciprocal")}relu(x){return notYetImplemented("relu")}relu6(x){return notYetImplemented("relu6")}prelu(x,a){return notYetImplemented("prelu")}elu(x){return notYetImplemented("elu")}eluDer(dy,y){return notYetImplemented("eluDer")}selu(x){return notYetImplemented("selu")}int(x){return notYetImplemented("int")}clip(x,min6,max6){return notYetImplemented("clip")}abs(x){return notYetImplemented("abs")}complexAbs(x){return notYetImplemented("complexAbs")}sigmoid(x){return notYetImplemented("sigmoid")}softplus(x){return notYetImplemented("softplus")}sin(x){return notYetImplemented("sin")}cos(x){return notYetImplemented("cos")}tan(x){return notYetImplemented("tan")}asin(x){return notYetImplemented("asin")}acos(x){return notYetImplemented("acos")}atan(x){return notYetImplemented("atan")}atan2(a,b){return notYetImplemented("atan2")}sinh(x){return notYetImplemented("sinh")}cosh(x){return notYetImplemented("cosh")}tanh(x){return notYetImplemented("tanh")}asinh(x){return notYetImplemented("asinh")}acosh(x){return notYetImplemented("acosh")}atanh(x){return notYetImplemented("atanh")}erf(x){return notYetImplemented("erf")}step(x,alpha){return notYetImplemented("step")}fusedConv2d({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedConv2d")}conv2d(x,filter,convInfo){return notYetImplemented("conv2d")}conv2dDerInput(dy,filter,convInfo){return notYetImplemented("conv2dDerInput")}conv2dDerFilter(x,dY,convInfo){return notYetImplemented("conv2dDerFilter")}fusedDepthwiseConv2D({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedDepthwiseConv2D")}depthwiseConv2D(input2,filter,convInfo){return notYetImplemented("depthwiseConv2D")}depthwiseConv2DDerInput(dy,filter,convInfo){return notYetImplemented("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(x,dY,convInfo){return notYetImplemented("depthwiseConv2DDerFilter")}conv3d(x,filter,convInfo){return notYetImplemented("conv3d")}conv3dDerInput(dy,filter,convInfo){return notYetImplemented("conv3dDerInput")}conv3dDerFilter(x,dY,convInfo){return notYetImplemented("conv3dDerFilter")}maxPool(x,convInfo){return notYetImplemented("maxPool")}maxPoolBackprop(dy,x,y,convInfo){return notYetImplemented("maxPoolBackprop")}avgPool(x,convInfo){return notYetImplemented("avgPool")}avgPoolBackprop(dy,x,convInfo){return notYetImplemented("avgPoolBackprop")}avgPool3d(x,convInfo){return notYetImplemented("avgPool3d")}avgPool3dBackprop(dy,x,convInfo){return notYetImplemented("avgPool3dBackprop")}maxPool3d(x,convInfo){return notYetImplemented("maxPool3d")}maxPool3dBackprop(dy,x,y,convInfo){return notYetImplemented("maxPool3dBackprop")}reshape(x,shape){return notYetImplemented("reshape")}cast(x,dtype){return notYetImplemented("cast")}tile(x,reps){return notYetImplemented("tile")}pad(x,paddings,constantValue){return notYetImplemented("pad")}transpose(x,perm){return notYetImplemented("transpose")}gather(x,indices,axis,batchDims=0){return notYetImplemented("gather")}gatherND(x,indices){return notYetImplemented("gatherND")}scatterND(indices,updates,shape){return notYetImplemented("scatterND")}batchToSpaceND(x,blockShape,crops){return notYetImplemented("batchToSpaceND")}spaceToBatchND(x,blockShape,paddings){return notYetImplemented("spaceToBatchND")}resizeBilinear(x,newHeight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeBilinear")}resizeBilinearBackprop(dy,x,alignCorners){return notYetImplemented("resizeBilinearBackprop")}resizeNearestNeighbor(x,newHEight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeNearestNeighbor")}resizeNearestNeighborBackprop(dy,x,alignCorners){return notYetImplemented("resizeNearestNeighborBackprop")}batchNorm(x,mean4,variance,offset,scale2,varianceEpsilon){return notYetImplemented("batchNorm")}localResponseNormalization4D(x,radius,bias,alpha,beta){return notYetImplemented("localResponseNormalization4D")}LRNGrad(dy,inputImage,outputImage,radius,bias,alpha,beta){return notYetImplemented("LRNGrad")}multinomial(logits,normalized,numSamples,seed){return notYetImplemented("multinomial")}oneHot(indices,depth,onValue,offValue){return notYetImplemented("oneHot")}cumsum(x,axis,exclusive,reverse5){return notYetImplemented("cumsum")}nonMaxSuppression(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return notYetImplemented("nonMaxSuppression")}fft(x){return notYetImplemented("fft")}ifft(x){return notYetImplemented("ifft")}complex(real4,imag4){return notYetImplemented("complex")}real(input2){return notYetImplemented("real")}imag(input2){return notYetImplemented("imag")}cropAndResize(image3,boxes,boxIndex,cropSize,method,extrapolationValue){return notYetImplemented("cropAndResize")}depthToSpace(x,blockSize,dataFormat){return notYetImplemented("depthToSpace")}split(value,sizeSplits,axis){return notYetImplemented("split")}sparseToDense(sparseIndices,sparseValues,outputShape,defaultValue){return notYetImplemented("sparseToDense")}diag(x){return notYetImplemented("diag")}fill(shape,value,dtype){return notYetImplemented("fill")}onesLike(x){return notYetImplemented("onesLike")}zerosLike(x){return notYetImplemented("zerosLike")}linspace(start,stop,num){return notYetImplemented("linspace")}dispose(){return notYetImplemented("dispose")}};function notYetImplemented(kernelName){throw new Error(`'${kernelName}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function shuffle(array2){let counter=array2.length,temp=0,index=0;for(;counter>0;)index=Math.random()*counter|0,counter--,temp=array2[counter],array2[counter]=array2[index],array2[index]=temp}function clamp(min6,x,max6){return Math.max(min6,Math.min(x,max6))}function nearestLargerEven(val){return val%2==0?val:val+1}function sum(arr){let sum6=0;for(let i=0;ierrorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function assertNonNull(a){assert(a!=null,()=>"The input to the tensor constructor must be a non-null value.")}function flatten(arr,result=[],skipTypedArray=!1){if(result==null&&(result=[]),Array.isArray(arr)||isTypedArray(arr)&&!skipTypedArray)for(let i=0;i0,maxCounter){return new Promise((resolve,reject)=>{let tryCount=0,tryFn=()=>{if(checkFn()){resolve();return}tryCount++;let nextBackoff=delayFn(tryCount);if(maxCounter!=null&&tryCount>=maxCounter){reject();return}setTimeout(tryFn,nextBackoff)};tryFn()})}function inferFromImplicitShape(shape,size){let shapeProd=1,implicitIdx=-1;for(let i=0;i=0)shapeProd*=shape[i];else if(shape[i]===-1){if(implicitIdx!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${implicitIdx} and dim ${i}`);implicitIdx=i}else if(shape[i]<0)throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);if(implicitIdx===-1){if(size>0&&size!==shapeProd)throw Error(`Size(${size}) must match the product of shape ${shape}`);return shape}if(shapeProd===0)throw Error(`Cannot infer the missing size in [${shape}] when there are 0 elements`);if(size%shapeProd!=0)throw Error(`The implicit shape can't be a fractional number. Got ${size} / ${shapeProd}`);let newShape=shape.slice();return newShape[implicitIdx]=size/shapeProd,newShape}function parseAxisParam(axis,shape){let rank=shape.length;return axis=axis==null?shape.map((s,i)=>i):[].concat(axis),assert(axis.every(ax=>ax>=-rank&&ax`All values in axis param must be in range [-${rank}, ${rank}) but got axis ${axis}`),assert(axis.every(ax=>isInt(ax)),()=>`All values in axis param must be integers but got axis ${axis}`),axis.map(a=>a<0?rank+a:a)}function squeezeShape(shape,axis){let newShape=[],keptDims=[],isEmptyArray=axis!=null&&Array.isArray(axis)&&axis.length===0,axes=axis==null||isEmptyArray?null:parseAxisParam(axis,shape).sort(),j=0;for(let i=0;ii)&&shape[i]===1&&(newShape.push(shape[i]),keptDims.push(i)),axes[j]<=i&&j++}shape[i]!==1&&(newShape.push(shape[i]),keptDims.push(i))}return{newShape,keptDims}}function getTypedArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function getArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else if(dtype==="string")values=new Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function checkConversionForErrors(vals,dtype){for(let i=0;ibytes+=x.length),bytes}function isString(value){return typeof value=="string"||value instanceof String}function isBoolean(value){return typeof value=="boolean"}function isNumber(value){return typeof value=="number"}function inferDtype(values){return Array.isArray(values)?inferDtype(values[0]):values instanceof Float32Array?"float32":values instanceof Int32Array||values instanceof Uint8Array?"int32":isNumber(values)?"float32":isString(values)?"string":isBoolean(values)?"bool":"float32"}function isFunction(f){return!!(f&&f.constructor&&f.call&&f.apply)}function nearestDivisor(size,start){for(let i=start;i=0;--i)strides[i]=strides[i+1]*shape[i+1];return strides}function createNestedArray(offset,shape,a){let ret=new Array;if(shape.length===1){let d=shape[0];for(let i=0;iacc*c);for(let i=0;iacc*c);if(size===0)return[];if(size!==a.length)throw new Error(`[${shape}] does not match the input size ${a.length}.`);return createNestedArray(0,shape,a)}function makeOnesTypedArray(size,dtype){let array2=makeZerosTypedArray(size,dtype);for(let i=0;iprev*curr,1);if(dtype==null||dtype==="float32")return toNestedArray(shape,new Float32Array(size));if(dtype==="int32")return toNestedArray(shape,new Int32Array(size));if(dtype==="bool")return toNestedArray(shape,new Uint8Array(size));throw new Error(`Unknown data type ${dtype}`)}function assertNonNegativeIntegerDimensions(shape){shape.forEach(dimSize=>{assert(Number.isInteger(dimSize)&&dimSize>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${shape}].`)})}function locToIndex(locs,rank,strides){if(rank===0)return 0;if(rank===1)return locs[0];let index=locs[locs.length-1];for(let i=0;i{let[key,value]=keyValue.split(":");this.urlFlags[key]=parseValue(key,value)})}};function getQueryParams(queryString){let params={};return queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...t)=>(decodeParam(params,t[0],t[1]),t.join("="))),params}function decodeParam(params,name,value){params[decodeURIComponent(name)]=decodeURIComponent(value||"")}function parseValue(flagName,value){if(value=value.toLowerCase(),value==="true"||value==="false")return value==="true";if(`${+value}`===value)return+value;throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`)}function env(){return ENV}var ENV=null;function setEnvironmentGlobal(environment){ENV=environment}var globalNameSpace;function getGlobalNamespace(){if(globalNameSpace==null){let ns;if(typeof window!="undefined")ns=window;else if(typeof global!="undefined")ns=global;else if(typeof process!="undefined")ns=process;else if(typeof self!="undefined")ns=self;else throw new Error("Could not find a global object");globalNameSpace=ns}return globalNameSpace}function getGlobalMap(){let ns=getGlobalNamespace();return ns._tfGlobals==null&&(ns._tfGlobals=new Map),ns._tfGlobals}function getGlobal(key,init2){let globalMap=getGlobalMap();if(globalMap.has(key))return globalMap.get(key);{let singleton=init2();return globalMap.set(key,singleton),globalMap.get(key)}}var Abs="Abs",Acos="Acos",Acosh="Acosh",Add="Add",AddN="AddN",All="All",Any="Any",ArgMax="ArgMax",ArgMin="ArgMin",Asin="Asin",Asinh="Asinh",Atan="Atan",Atanh="Atanh",Atan2="Atan2",AvgPool="AvgPool",AvgPoolGrad="AvgPoolGrad",AvgPool3D="AvgPool3D",AvgPool3DGrad="AvgPool3DGrad",BatchMatMul="BatchMatMul",BatchToSpaceND="BatchToSpaceND",Bincount="Bincount",BroadcastTo="BroadcastTo",Cast="Cast",Ceil="Ceil",ClipByValue="ClipByValue",Complex="Complex",ComplexAbs="ComplexAbs",Concat="Concat",Conv2D="Conv2D",Conv2DBackpropFilter="Conv2DBackpropFilter",Conv2DBackpropInput="Conv2DBackpropInput",Conv3D="Conv3D",Conv3DBackpropFilterV2="Conv3DBackpropFilterV2",Conv3DBackpropInputV2="Conv3DBackpropInputV2",Cos="Cos",Cosh="Cosh",Cumsum="Cumsum",CropAndResize="CropAndResize",DenseBincount="DenseBincount",DepthToSpace="DepthToSpace",DepthwiseConv2dNative="DepthwiseConv2dNative",DepthwiseConv2dNativeBackpropFilter="DepthwiseConv2dNativeBackpropFilter",DepthwiseConv2dNativeBackpropInput="DepthwiseConv2dNativeBackpropInput",Diag="Diag",Dilation2D="Dilation2D",Dilation2DBackpropInput="Dilation2DBackpropInput",Dilation2DBackpropFilter="Dilation2DBackpropFilter",RealDiv="RealDiv",Elu="Elu",EluGrad="EluGrad",Erf="Erf",Equal="Equal",Exp="Exp",ExpandDims="ExpandDims",Expm1="Expm1",FFT="FFT",Fill="Fill",FlipLeftRight="FlipLeftRight",Floor="Floor",FloorDiv="FloorDiv",FusedBatchNorm="FusedBatchNorm",GatherV2="GatherV2",GatherNd="GatherNd",Greater="Greater",GreaterEqual="GreaterEqual",Identity="Identity",IFFT="IFFT",Imag="Imag",IsFinite="IsFinite",IsInf="IsInf",IsNan="IsNan",LeakyRelu="LeakyRelu",Less="Less",LessEqual="LessEqual",LinSpace="LinSpace",Log="Log",Log1p="Log1p",LogicalAnd="LogicalAnd",LogicalNot="LogicalNot",LogicalOr="LogicalOr",LogSoftmax="LogSoftmax",LRN="LRN",LRNGrad="LRNGrad",Max="Max",Maximum="Maximum",MaxPool="MaxPool",MaxPoolGrad="MaxPoolGrad",MaxPool3D="MaxPool3D",MaxPool3DGrad="MaxPool3DGrad",MaxPoolWithArgmax="MaxPoolWithArgmax",Mean="Mean",Min="Min",Minimum="Minimum",MirrorPad="MirrorPad",Mod="Mod",Multinomial="Multinomial",Multiply="Multiply",Neg="Neg",NotEqual="NotEqual",NonMaxSuppressionV3="NonMaxSuppressionV3",NonMaxSuppressionV4="NonMaxSuppressionV4",NonMaxSuppressionV5="NonMaxSuppressionV5",OnesLike="OnesLike",OneHot="OneHot",Pack="Pack",PadV2="PadV2",Pool="Pool",Pow="Pow",Prelu="Prelu",Prod="Prod",Range="Range",Real="Real",Reciprocal="Reciprocal",Relu="Relu",Reshape="Reshape",ResizeNearestNeighbor="ResizeNearestNeighbor",ResizeNearestNeighborGrad="ResizeNearestNeighborGrad",ResizeBilinear="ResizeBilinear",ResizeBilinearGrad="ResizeBilinearGrad",Relu6="Relu6",Reverse="Reverse",Round="Round",Rsqrt="Rsqrt",ScatterNd="ScatterNd",Select="Select",Selu="Selu",Slice="Slice",Sin="Sin",Sinh="Sinh",Sign="Sign",Sigmoid="Sigmoid",Softplus="Softplus",Sqrt="Sqrt",Sum="Sum",SpaceToBatchND="SpaceToBatchND",SplitV="SplitV",Softmax="Softmax",SquaredDifference="SquaredDifference",Square="Square",Sub="Sub",SparseToDense="SparseToDense",StridedSlice="StridedSlice",Tan="Tan",Tanh="Tanh",Tile="Tile",TopK="TopK",Transpose="Transpose",Unique="Unique",Unpack="Unpack",UnsortedSegmentSum="UnsortedSegmentSum",ZerosLike="ZerosLike",Step="Step",FromPixels="FromPixels",RotateWithOffset="RotateWithOffset",_FusedMatMul="_FusedMatMul",FusedConv2D="FusedConv2D",FusedDepthwiseConv2D="FusedDepthwiseConv2D",kernelRegistry=getGlobal("kernelRegistry",()=>new Map),gradRegistry=getGlobal("gradRegistry",()=>new Map);function getKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);return kernelRegistry.get(key)}function getGradient(kernelName){return gradRegistry.get(kernelName)}function getKernelsForBackend(backendName){let it=kernelRegistry.entries(),result=[];for(;;){let{done,value}=it.next();if(done)break;let[key,config2]=value,[backend22]=key.split("_");backend22===backendName&&result.push(config2)}return result}function registerKernel(config2){let{kernelName,backendName}=config2,key=makeKey(kernelName,backendName);kernelRegistry.has(key)&&console.warn(`The kernel '${kernelName}' for backend '${backendName}' is already registered`),kernelRegistry.set(key,config2)}function registerGradient(config2){let{kernelName}=config2;gradRegistry.has(kernelName)&&env().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${kernelName}'`),gradRegistry.set(kernelName,config2)}function unregisterKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);if(!kernelRegistry.has(key))throw new Error(`The kernel '${kernelName}' for backend '${backendName}' is not registered`);kernelRegistry.delete(key)}function unregisterGradient(kernelName){if(!gradRegistry.has(kernelName))throw new Error(`The gradient '${kernelName}' for backend is not registered`);gradRegistry.delete(kernelName)}function copyRegisteredKernels(registeredBackendName,newBackendName){getKernelsForBackend(registeredBackendName).forEach(kernelConfig=>{let newKernelConfig=Object.assign({},kernelConfig,{backendName:newBackendName});registerKernel(newKernelConfig)})}function makeKey(kernelName,backendName){return`${backendName}_${kernelName}`}var util_exports={};__export2(util_exports,{arraysEqual:()=>arraysEqual,assert:()=>assert,assertNonNegativeIntegerDimensions:()=>assertNonNegativeIntegerDimensions,assertNonNull:()=>assertNonNull,assertShapesMatch:()=>assertShapesMatch,bytesFromStringArray:()=>bytesFromStringArray,bytesPerElement:()=>bytesPerElement,checkConversionForErrors:()=>checkConversionForErrors,clamp:()=>clamp,computeStrides:()=>computeStrides,createScalarValue:()=>createScalarValue,createShuffledIndices:()=>createShuffledIndices,decodeString:()=>decodeString,distSquared:()=>distSquared,encodeString:()=>encodeString,fetch:()=>fetch2,flatten:()=>flatten,getArrayFromDType:()=>getArrayFromDType,getTypedArrayFromDType:()=>getTypedArrayFromDType,hasEncodingLoss:()=>hasEncodingLoss,indexToLoc:()=>indexToLoc,inferDtype:()=>inferDtype,inferFromImplicitShape:()=>inferFromImplicitShape,isBoolean:()=>isBoolean,isFunction:()=>isFunction,isInt:()=>isInt,isNumber:()=>isNumber,isPromise:()=>isPromise,isScalarShape:()=>isScalarShape,isString:()=>isString,isTypedArray:()=>isTypedArray,isValidDtype:()=>isValidDtype,locToIndex:()=>locToIndex,makeOnesTypedArray:()=>makeOnesTypedArray,makeZerosNestedTypedArray:()=>makeZerosNestedTypedArray,makeZerosTypedArray:()=>makeZerosTypedArray,nearestDivisor:()=>nearestDivisor,nearestLargerEven:()=>nearestLargerEven,now:()=>now,parseAxisParam:()=>parseAxisParam,randUniform:()=>randUniform,repeatedTry:()=>repeatedTry,rightPad:()=>rightPad,shuffle:()=>shuffle,sizeFromShape:()=>sizeFromShape,sizeToSquarishShape:()=>sizeToSquarishShape,squeezeShape:()=>squeezeShape,sum:()=>sum,tanh:()=>tanh,toNestedArray:()=>toNestedArray,toTypedArray:()=>toTypedArray});function createScalarValue(value,dtype){return dtype==="string"?encodeString(value):toTypedArray([value],dtype)}function noConversionNeeded(a,dtype){return a instanceof Float32Array&&dtype==="float32"||a instanceof Int32Array&&dtype==="int32"||a instanceof Uint8Array&&dtype==="bool"}function toTypedArray(a,dtype){if(dtype==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(a)&&(a=flatten(a)),env().getBool("DEBUG")&&checkConversionForErrors(a,dtype),noConversionNeeded(a,dtype))return a;if(dtype==null||dtype==="float32"||dtype==="complex64")return new Float32Array(a);if(dtype==="int32")return new Int32Array(a);if(dtype==="bool"){let bool=new Uint8Array(a.length);for(let i=0;i{outputs=f()},timer=this.backendTimer.time(holdResultWrapperFn);if(env().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let i=0;i{checkComputationForErrors(tensorVals,output.dtype,kernelName)})}return{kernelName,outputs,inputs,timeMs:timer.then(timing=>timing.kernelMs),extraInfo:timer.then(timing=>timing.getExtraProfileInfo!=null?timing.getExtraProfileInfo():"")}}logKernelProfile(kernelProfile){let{kernelName,outputs,timeMs,inputs,extraInfo}=kernelProfile;outputs.forEach(result=>{Promise.all([result.data(),timeMs,extraInfo]).then(valueContainer=>{this.logger.logKernelProfile(kernelName,result,valueContainer[0],valueContainer[1],inputs,valueContainer[2])})})}};function checkComputationForErrors(vals,dtype,kernelName){if(dtype!=="float32")return!1;for(let i=0;i0?inputShape:""} `}}console.log(`%c${paddedName} %c${time2} %c${rank}D ${shape} %c${size} %c${inputShapesDescription} %c${extraInfo}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function getFilteredNodesXToY(tape,xs,y){let tensorsFromX={},nodesFromX={};for(let i=0;itensorsFromX[output.id]=!0),anyInputFromX=!0,nodesFromX[node.id]=!0;break}if(anyInputFromX)break}}let tensorsLeadToY={};tensorsLeadToY[y.id]=!0;let nodesToY={};for(let i=tape.length-1;i>=0;i--){let node=tape[i],nodeInputs=node.inputs;for(let j=0;j=0;i--){let node=filteredTape[i],dys=[];if(node.outputs.forEach(o=>{let gradTensor=tensorAccumulatedGradientMap[o.id];gradTensor!=null?dys.push(gradTensor):dys.push(null)}),node.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${node.kernelName}.`);let inputGradients=node.gradient(dys);for(let inputName in node.inputs){if(!(inputName in inputGradients))throw new Error(`Cannot backprop through input ${inputName}. Available gradients found: ${Object.keys(inputGradients)}.`);let dx=tidy2(()=>inputGradients[inputName]());if(dx.dtype!=="float32")throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);let x=node.inputs[inputName];if(!arraysEqual(dx.shape,x.shape))throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input '${inputName}' has shape '${dx.shape}', which does not match the shape of the input '${x.shape}'`);if(tensorAccumulatedGradientMap[x.id]==null)tensorAccumulatedGradientMap[x.id]=dx;else{let curGradient=tensorAccumulatedGradientMap[x.id];tensorAccumulatedGradientMap[x.id]=add5(curGradient,dx),curGradient.dispose()}}}}var FORMAT_LIMIT_NUM_VALS=20,FORMAT_NUM_FIRST_LAST_VALS=3,FORMAT_NUM_SIG_DIGITS=7;function tensorToString(vals,shape,dtype,verbose){let strides=computeStrides(shape),padPerCol=computeMaxSizePerColumn(vals,shape,dtype,strides),rank=shape.length,valsLines=subTensorToString(vals,shape,dtype,strides,padPerCol),lines=["Tensor"];return verbose&&(lines.push(` dtype: ${dtype}`),lines.push(` rank: ${rank}`),lines.push(` shape: [${shape}]`),lines.push(" values:")),lines.push(valsLines.map(l=>" "+l).join(` `)),lines.join(` `)}function computeMaxSizePerColumn(vals,shape,dtype,strides){let n=sizeFromShape(shape),numCols=strides[strides.length-1],padPerCol=new Array(numCols).fill(0),rank=shape.length,valuesOrTuples=dtype==="complex64"?createComplexTuples(vals):vals;if(rank>1)for(let row=0;rowFORMAT_LIMIT_NUM_VALS){let firstValsSize=FORMAT_NUM_FIRST_LAST_VALS*storagePerElement,firstVals=Array.from(vals.slice(0,firstValsSize)),lastVals=Array.from(vals.slice((size-FORMAT_NUM_FIRST_LAST_VALS)*storagePerElement,size*storagePerElement));return dtype==="complex64"&&(firstVals=createComplexTuples(firstVals),lastVals=createComplexTuples(lastVals)),["["+firstVals.map((x,i)=>valToString(x,padPerCol[i],dtype)).join(", ")+", ..., "+lastVals.map((x,i)=>valToString(x,padPerCol[size-FORMAT_NUM_FIRST_LAST_VALS+i],dtype)).join(", ")+"]"]}let displayVals=dtype==="complex64"?createComplexTuples(vals):Array.from(vals);return["["+displayVals.map((x,i)=>valToString(x,padPerCol[i],dtype)).join(", ")+"]"]}let subshape=shape.slice(1),substrides=strides.slice(1),stride=strides[0]*storagePerElement,lines=[];if(size>FORMAT_LIMIT_NUM_VALS){for(let i=0;i`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(dtype==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=values||getArrayFromDType(dtype,this.size),this.strides=computeStrides(shape)}set(value,...locs){locs.length===0&&(locs=[0]),assert(locs.length===this.rank,()=>`The number of provided coordinates (${locs.length}) must match the rank (${this.rank})`);let index=this.locToIndex(locs);this.values[index]=value}get(...locs){locs.length===0&&(locs=[0]);let i=0;for(let loc of locs){if(loc<0||loc>=this.shape[i]){let msg=`Requested out of range element at ${locs}. Buffer shape=${this.shape}`;throw new Error(msg)}i++}let index=locs[locs.length-1];for(let i2=0;i2decodeString(b))}catch(_a){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return data2}dataSync(){this.throwIfDisposed();let data2=trackerFn().readSync(this.dataId);if(this.dtype==="string")try{return data2.map(b=>decodeString(b))}catch(_a){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return data2}async bytes(){this.throwIfDisposed();let data2=await trackerFn().read(this.dataId);return this.dtype==="string"?data2:new Uint8Array(data2.buffer)}dispose(){this.isDisposed||(trackerFn().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(verbose=!1){return opHandler.print(this,verbose)}clone(){return this.throwIfDisposed(),opHandler.clone(this)}toString(verbose=!1){let vals=this.dataSync();return tensorToString(vals,this.shape,this.dtype,verbose)}cast(dtype){return this.throwIfDisposed(),opHandler.cast(this,dtype)}variable(trainable=!0,name,dtype){return this.throwIfDisposed(),trackerFn().makeVariable(this,trainable,name,dtype)}};Object.defineProperty(Tensor,Symbol.hasInstance,{value:instance=>!!instance&&instance.data!=null&&instance.dataSync!=null&&instance.throwIfDisposed!=null});var Variable=class extends Tensor{constructor(initialValue,trainable,name,tensorId){super(initialValue.shape,initialValue.dtype,initialValue.dataId,tensorId);this.trainable=trainable,this.name=name}assign(newValue){if(newValue.dtype!==this.dtype)throw new Error(`dtype of the new value (${newValue.dtype}) and previous value (${this.dtype}) must match`);if(!arraysEqual(newValue.shape,this.shape))throw new Error(`shape of the new value (${newValue.shape}) and previous value (${this.shape}) must match`);trackerFn().disposeTensor(this),this.dataId=newValue.dataId,trackerFn().incRef(this,null)}dispose(){trackerFn().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Variable,Symbol.hasInstance,{value:instance=>instance instanceof Tensor&&instance.assign!=null&&instance.assign instanceof Function});var tensor_util_exports={};__export2(tensor_util_exports,{assertTypesMatch:()=>assertTypesMatch,getTensorsInContainer:()=>getTensorsInContainer,isTensorInList:()=>isTensorInList,makeTypesMatch:()=>makeTypesMatch});var Rank;(function(Rank2){Rank2.R0="R0",Rank2.R1="R1",Rank2.R2="R2",Rank2.R3="R3",Rank2.R4="R4",Rank2.R5="R5",Rank2.R6="R6"})(Rank||(Rank={}));var UpcastInt32AndMap;(function(UpcastInt32AndMap2){UpcastInt32AndMap2.float32="float32",UpcastInt32AndMap2.int32="int32",UpcastInt32AndMap2.bool="int32",UpcastInt32AndMap2.complex64="complex64"})(UpcastInt32AndMap||(UpcastInt32AndMap={}));var UpcastBoolAndMap;(function(UpcastBoolAndMap2){UpcastBoolAndMap2.float32="float32",UpcastBoolAndMap2.int32="int32",UpcastBoolAndMap2.bool="bool",UpcastBoolAndMap2.complex64="complex64"})(UpcastBoolAndMap||(UpcastBoolAndMap={}));var UpcastFloat32AndMap;(function(UpcastFloat32AndMap2){UpcastFloat32AndMap2.float32="float32",UpcastFloat32AndMap2.int32="float32",UpcastFloat32AndMap2.bool="float32",UpcastFloat32AndMap2.complex64="complex64"})(UpcastFloat32AndMap||(UpcastFloat32AndMap={}));var UpcastComplex64AndMap;(function(UpcastComplex64AndMap2){UpcastComplex64AndMap2.float32="complex64",UpcastComplex64AndMap2.int32="complex64",UpcastComplex64AndMap2.bool="complex64",UpcastComplex64AndMap2.complex64="complex64"})(UpcastComplex64AndMap||(UpcastComplex64AndMap={}));var upcastTypeMap={float32:UpcastFloat32AndMap,int32:UpcastInt32AndMap,bool:UpcastBoolAndMap,complex64:UpcastComplex64AndMap};function upcastType(typeA,typeB){if(typeA==="string"||typeB==="string"){if(typeA==="string"&&typeB==="string")return"string";throw new Error(`Can not upcast ${typeA} with ${typeB}`)}return upcastTypeMap[typeA][typeB]}function sumOutType(type){return upcastType(type,"int32")}function makeTypesMatch(a,b){if(a.dtype===b.dtype)return[a,b];let dtype=upcastType(a.dtype,b.dtype);return[a.cast(dtype),b.cast(dtype)]}function assertTypesMatch(a,b){assert(a.dtype===b.dtype,()=>`The dtypes of the first(${a.dtype}) and second(${b.dtype}) input must match`)}function isTensorInList(tensor2,tensorList){return tensorList.some(x=>x.id===tensor2.id)}function getTensorsInContainer(result){let list=[],seen=new Set;return walkTensorContainer(result,list,seen),list}function walkTensorContainer(container,list,seen){if(container==null)return;if(container instanceof Tensor){list.push(container);return}if(!isIterable(container))return;let iterable=container;for(let k in iterable){let val=iterable[k];seen.has(val)||(seen.add(val),walkTensorContainer(val,list,seen))}}function isIterable(obj){return Array.isArray(obj)||typeof obj=="object"}var EngineState=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(k=>k.name)))}}}dispose(){for(let variableName in this.registeredVariables)this.registeredVariables[variableName].dispose()}},Engine=class{constructor(ENV5){this.ENV=ENV5,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new EngineState}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let sortedBackends=this.getSortedBackends();for(let i=0;i{kernel.setupFunc!=null&&kernel.setupFunc(this.backendInstance)})}disposeRegisteredKernels(backendName){getKernelsForBackend(backendName).forEach(kernel=>{kernel.disposeFunc!=null&&kernel.disposeFunc(this.registry[backendName])})}initializeBackend(backendName){let registryFactoryEntry=this.registryFactory[backendName];if(registryFactoryEntry==null)throw new Error(`Cannot initialize backend ${backendName}, no registration found.`);try{let backend22=registryFactoryEntry.factory();if(backend22&&!(backend22 instanceof KernelBackend)&&typeof backend22.then=="function"){let promiseId=++this.pendingBackendInitId,success=backend22.then(backendInstance=>promiseId(promiseIdthis.registryFactory[b].priority-this.registryFactory[a].priority)}initializeBackendsAndReturnBest(){let sortedBackends=this.getSortedBackends();for(let i=0;ithis.startScope(name),()=>this.endScope(result),()=>(result=fn(),result instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),result))}scopedRun(start,end,f){start();try{let res=f();return end(),res}catch(ex){throw end(),ex}}nextTensorId(){return Engine.nextTensorId++}nextVariableId(){return Engine.nextVariableId++}clone(x){let y=this.makeTensorFromDataId(x.dataId,x.shape,x.dtype),inputs={x},grad2=dy=>({x:()=>{let dtype="float32",gradInputs={x:dy},attrs={dtype};return ENGINE.runKernelFunc(backend22=>backend22.cast(dy,dtype),gradInputs,null,Cast,attrs)}}),saved=[];return this.addTapeNode(this.state.activeScope.name,inputs,[y],grad2,saved,{}),y}runKernel(kernelName,inputs,attrs,inputsToSave,outputsToSave){let forwardFunc=null,backwardsFunc=null;return this.runKernelFunc(forwardFunc,inputs,backwardsFunc,kernelName,attrs,inputsToSave,outputsToSave)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(kernelName,numDataIdsBefore,outInfos){let numDataIdsAfter=this.backend.numDataIds(),numOutputDataIds=0;outInfos.forEach(info=>{numOutputDataIds+=info.dtype==="complex64"?3:1});let numMoves=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],dataIdsLeaked=numDataIdsAfter-numDataIdsBefore-numOutputDataIds-numMoves;if(dataIdsLeaked>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${dataIdsLeaked} data ids) after running '${kernelName}'`)}runKernelFunc(forwardFunc,inputs,backwardsFunc,kernelName,attrs,inputsToSave,outputsToSave){let outputs,saved=[],isTapeOn=this.isTapeOn();kernelName==null&&(kernelName=this.state.activeScope!=null?this.state.activeScope.name:"");let startingBytecount=this.state.numBytes,startingNumTensors=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let kernelFunc3;this.backendName==null&&this.backend;let kernel=getKernel(kernelName,this.backendName),out;if(kernel!=null)kernelFunc3=()=>{let numDataIdsBefore=this.backend.numDataIds();out=kernel.kernelFunc({inputs,attrs,backend:this.backend});let outInfos=Array.isArray(out)?out:[out];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(kernelName,numDataIdsBefore,outInfos);let outTensors=outInfos.map(outInfo=>{if(outInfo.rank!=null)return outInfo;let{dataId,shape,dtype}=outInfo;return this.makeTensorFromDataId(dataId,shape,dtype)});if(isTapeOn){let tensorsToSave=this.getTensorsForGradient(kernelName,inputs,outTensors);if(tensorsToSave==null){outputsToSave==null&&(outputsToSave=[]);let outsToSave=outTensors.filter((_,i)=>outputsToSave[i]);tensorsToSave=(inputsToSave||[]).slice().concat(outsToSave)}saved=this.saveTensorsForBackwardMode(tensorsToSave)}return outTensors};else{if(forwardFunc==null)throw new Error(`Error running ${kernelName}: Neither modular kernel nor forward func passed`);let saveFunc=tensors=>{!isTapeOn||(saved=tensors.map(tensor2=>this.keep(this.clone(tensor2))))};kernelFunc3=()=>{let numDataIdsBefore=this.backend.numDataIds();out=this.tidy(()=>forwardFunc(this.backend,saveFunc));let outs=Array.isArray(out)?out:[out];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(kernelName,numDataIdsBefore,outs),outs}}let kernelProfile;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?outputs=kernelFunc3():(kernelProfile=this.profiler.profileKernel(kernelName,inputs,()=>kernelFunc3()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(kernelProfile),outputs=kernelProfile.outputs)}),isTapeOn&&this.addTapeNode(kernelName,inputs,outputs,backwardsFunc,saved,attrs),this.state.profiling&&this.state.activeProfile.kernels.push({name:kernelName,bytesAdded:this.state.numBytes-startingBytecount,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-startingNumTensors,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(inputs).map(key=>inputs[key]!=null?inputs[key].shape:null),outputShapes:outputs.map(item=>item.shape),kernelTimeMs:kernelProfile.timeMs,extraInfo:kernelProfile.extraInfo}),Array.isArray(out)?outputs:outputs[0]}saveTensorsForBackwardMode(tensors){return tensors.map(tensor2=>this.keep(this.clone(tensor2)))}getTensorsForGradient(kernelName,inputs,outputs){let gradConfig=getGradient(kernelName);if(gradConfig!=null){let inputsToSave=gradConfig.inputsToSave||[],outputsToSave=gradConfig.outputsToSave||[],inputTensorsToSave;gradConfig.saveAllInputs?(assert(Array.isArray(inputs),()=>"saveAllInputs is true, expected inputs to be an array."),inputTensorsToSave=Object.keys(inputs).map(key=>inputs[key])):inputTensorsToSave=inputsToSave.map(inputName=>inputs[inputName]);let outputTensorsToSave=outputs.filter((_,i)=>outputsToSave[i]);return inputTensorsToSave.concat(outputTensorsToSave)}return null}makeTensor(values,shape,dtype,backend22){if(values==null)throw new Error("Values passed to engine.makeTensor() are null");dtype=dtype||"float32",backend22=backend22||this.backend;let backendVals=values;dtype==="string"&&isString(values[0])&&(backendVals=values.map(d=>encodeString(d)));let dataId=backend22.write(backendVals,shape,dtype),t=new Tensor(shape,dtype,dataId,this.nextTensorId());if(this.incRef(t,backend22),dtype==="string"){let info=this.state.tensorInfo.get(dataId),newBytes=bytesFromStringArray(backendVals);this.state.numBytes+=newBytes-info.bytes,info.bytes=newBytes}return t}makeTensorFromDataId(dataId,shape,dtype,backend22){dtype=dtype||"float32";let t=new Tensor(shape,dtype,dataId,this.nextTensorId());return this.incRef(t,backend22),t}makeVariable(initialValue,trainable=!0,name,dtype){name=name||this.nextVariableId().toString(),dtype!=null&&dtype!==initialValue.dtype&&(initialValue=initialValue.cast(dtype));let v=new Variable(initialValue,trainable,name,this.nextTensorId());if(this.state.registeredVariables[v.name]!=null)throw new Error(`Variable with name ${v.name} was already registered`);return this.state.registeredVariables[v.name]=v,this.incRef(v,this.backend),v}incRef(a,backend22){let refCount=this.state.tensorInfo.has(a.dataId)?this.state.tensorInfo.get(a.dataId).refCount:0;if(this.state.numTensors++,a.dtype==="string"&&this.state.numStringTensors++,refCount===0){this.state.numDataBuffers++;let bytes=0;a.dtype!=="complex64"&&a.dtype!=="string"&&(bytes=a.size*bytesPerElement(a.dtype)),this.state.tensorInfo.set(a.dataId,{backend:backend22||this.backend,dtype:a.dtype,shape:a.shape,bytes,refCount:0}),this.state.numBytes+=bytes}this.state.tensorInfo.get(a.dataId).refCount++,a instanceof Variable||this.track(a)}disposeTensor(a){if(!this.state.tensorInfo.has(a.dataId))return;this.state.numTensors--,a.dtype==="string"&&this.state.numStringTensors--;let info=this.state.tensorInfo.get(a.dataId);info.refCount<=1?(a.dtype!=="complex64"&&(this.state.numBytes-=info.bytes),this.state.numDataBuffers--,info.backend.disposeData(a.dataId),this.state.tensorInfo.delete(a.dataId)):this.state.tensorInfo.get(a.dataId).refCount--}disposeVariables(){for(let varName in this.state.registeredVariables){let v=this.state.registeredVariables[varName];this.disposeVariable(v)}}disposeVariable(v){this.disposeTensor(v),this.state.registeredVariables[v.name]!=null&&delete this.state.registeredVariables[v.name]}memory(){let info=this.backend.memory();return info.numTensors=this.state.numTensors,info.numDataBuffers=this.state.numDataBuffers,info.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(info.unreliable=!0,info.reasons==null&&(info.reasons=[]),info.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),info}async profile(query){this.state.profiling=!0;let startBytes=this.state.numBytes,startNumTensors=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await query(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(d=>d.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-startBytes,this.state.activeProfile.newTensors=this.state.numTensors-startNumTensors;for(let kernel of this.state.activeProfile.kernels)kernel.kernelTimeMs=await kernel.kernelTimeMs,kernel.extraInfo=await kernel.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(kernelName,inputs,outputs,gradientsFunc,saved,attrs){let tapeNode={id:this.state.nextTapeNodeId++,kernelName,inputs,outputs,saved},gradConfig=getGradient(kernelName);gradConfig!=null&&(gradientsFunc=gradConfig.gradFunc),gradientsFunc!=null&&(tapeNode.gradient=dys=>(dys=dys.map((dy,i)=>{if(dy==null){let output=outputs[i],vals=makeZerosTypedArray(output.size,output.dtype);return this.makeTensor(vals,output.shape,output.dtype)}return dy}),gradientsFunc(dys.length>1?dys:dys[0],saved,attrs))),this.state.activeTape.push(tapeNode)}keep(result){return result.kept=!0,result}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(name){let scopeInfo={track:[],name:"unnamed scope",id:this.state.nextScopeId++};name&&(scopeInfo.name=name),this.state.scopeStack.push(scopeInfo),this.state.activeScope=scopeInfo}endScope(result){let tensorsToTrackInParent=getTensorsInContainer(result),tensorsToTrackInParentSet=new Set(tensorsToTrackInParent.map(t=>t.id));for(let i=0;i{!tensor2.kept&&tensor2.scopeId===oldScope.id&&this.track(tensor2)})}gradients(f,xs,dy,allowNoGradients=!1){if(assert(xs.length>0,()=>"gradients() received an empty list of xs."),dy!=null&&dy.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);let y=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",f));assert(y instanceof Tensor,()=>"The result y returned by f() must be a tensor.");let filteredTape=getFilteredNodesXToY(this.state.activeTape,xs,y);if(!allowNoGradients&&filteredTape.length===0&&xs.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let accumulatedGradientMap={};accumulatedGradientMap[y.id]=dy==null?ones(y.shape):dy,backpropagateGradients(accumulatedGradientMap,filteredTape,f2=>this.tidy(f2),add);let grads2=xs.map(x=>accumulatedGradientMap[x.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(node=>{for(let tensor2 of node.saved)tensor2.dispose()}),this.state.activeTape=null),{value:y,grads:grads2}})}customGrad(f){return assert(isFunction(f),()=>"The f passed in customGrad(f) must be a function."),(...inputs)=>{assert(inputs.every(t=>t instanceof Tensor),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let res,inputMap={};return inputs.forEach((input2,i)=>{inputMap[i]=input2}),this.runKernelFunc((_,save)=>(res=f(...inputs,save),assert(res.value instanceof Tensor,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),assert(isFunction(res.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),res.value),inputMap,(dy,saved)=>{let gradRes=res.gradFunc(dy,saved),grads2=Array.isArray(gradRes)?gradRes:[gradRes];assert(grads2.length===inputs.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),assert(grads2.every(t=>t instanceof Tensor),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let gradMap={};return grads2.forEach((grad2,i)=>{gradMap[i]=()=>grad2}),gradMap})}}readSync(dataId){return this.state.tensorInfo.get(dataId).backend.readSync(dataId)}read(dataId){return this.state.tensorInfo.get(dataId).backend.read(dataId)}async time(query){let start=now(),timingInfo=await this.backend.time(query);return timingInfo.wallMs=now()-start,timingInfo}track(result){return this.state.activeScope!=null&&(result.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(result)),result}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new EngineState;for(let backendName in this.registry)this.disposeRegisteredKernels(backendName),this.registry[backendName].dispose(),delete this.registry[backendName];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Engine.nextTensorId=0;Engine.nextVariableId=0;function ones(shape){let values=makeOnesTypedArray(sizeFromShape(shape),"float32");return ENGINE.makeTensor(values,shape,"float32")}function getOrMakeEngine(){let ns=getGlobalNamespace();if(ns._tfengine==null){let environment=new Environment(ns);ns._tfengine=new Engine(environment)}return setEnvironmentGlobal(ns._tfengine.ENV),setTensorTracker(()=>ns._tfengine),ns._tfengine}var ENGINE=getOrMakeEngine();function add(a,b){let inputs={a,b};return ENGINE.runKernel(Add,inputs)}var device_util_exports={};__export2(device_util_exports,{isBrowser:()=>isBrowser,isMobile:()=>isMobile});function _isNavigatorDefined(){return typeof navigator!="undefined"&&navigator!=null}function isMobile(){if(_isNavigatorDefined()){let a=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))}return!1}function isBrowser(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var ENV2=env();ENV2.registerFlag("DEBUG",()=>!1,debugValue=>{debugValue&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});ENV2.registerFlag("IS_BROWSER",()=>isBrowser());ENV2.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");ENV2.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));ENV2.registerFlag("PROD",()=>!1);ENV2.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>ENV2.getBool("DEBUG"));ENV2.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);ENV2.registerFlag("IS_TEST",()=>!1);ENV2.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function inferShape(val,dtype){let firstElem=val;if(isTypedArray(val))return dtype==="string"?[]:[val.length];if(!Array.isArray(val))return[];let shape=[];for(;Array.isArray(firstElem)||isTypedArray(firstElem)&&dtype!=="string";)shape.push(firstElem.length),firstElem=firstElem[0];return Array.isArray(val)&&env().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&deepAssertShapeConsistency(val,shape,[]),shape}function deepAssertShapeConsistency(val,shape,indices){if(indices=indices||[],!Array.isArray(val)&&!isTypedArray(val)){assert(shape.length===0,()=>`Element arr[${indices.join("][")}] is a primitive, but should be an array/TypedArray of ${shape[0]} elements`);return}assert(shape.length>0,()=>`Element arr[${indices.join("][")}] should be a primitive, but is an array of ${val.length} elements`),assert(val.length===shape[0],()=>`Element arr[${indices.join("][")}] should have ${shape[0]} elements, but has ${val.length} elements`);let subShape=shape.slice(1);for(let i=0;i=0&&(inferredDtype=parseAsDtype),assertDtype(parseAsDtype,inferredDtype,argName,functionName),x==null||!isTypedArray(x)&&!Array.isArray(x)&&typeof x!="number"&&typeof x!="boolean"&&typeof x!="string"){let type=x==null?"null":x.constructor.name;throw new Error(`Argument '${argName}' passed to '${functionName}' must be a Tensor or TensorLike, but got '${type}'`)}let inferredShape=inferShape(x,inferredDtype);!isTypedArray(x)&&!Array.isArray(x)&&(x=[x]);let values=inferredDtype!=="string"?toTypedArray(x,inferredDtype):flatten(x,[],!0);return ENGINE.makeTensor(values,inferredShape,inferredDtype)}function convertToTensorArray(arg,argName,functionName,parseAsDtype="numeric"){if(!Array.isArray(arg))throw new Error(`Argument ${argName} passed to ${functionName} must be a \`Tensor[]\` or \`TensorLike[]\``);return arg.map((t,i)=>convertToTensor(t,`${argName}[${i}]`,functionName,parseAsDtype))}var OP_SCOPE_SUFFIX="__op";function op(f){let keys=Object.keys(f);if(keys.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${keys.length} keys.`);let opName=keys[0],fn=f[opName];opName.endsWith("_")&&(opName=opName.substring(0,opName.length-1)),opName=opName+OP_SCOPE_SUFFIX;let f2=(...args)=>{ENGINE.startScope(opName);try{let result=fn(...args);return isPromise(result)&&console.error("Cannot return a Promise inside of tidy."),ENGINE.endScope(result),result}catch(ex){throw ENGINE.endScope(null),ex}};return Object.defineProperty(f2,"name",{value:opName,configurable:!0}),f2}function complex_(real4,imag4){let $real=convertToTensor(real4,"real","complex"),$imag=convertToTensor(imag4,"imag","complex");assertShapesMatch($real.shape,$imag.shape,`real and imag shapes, ${$real.shape} and ${$imag.shape}, must match in call to tf.complex().`);let inputs={real:$real,imag:$imag};return ENGINE.runKernel(Complex,inputs)}var complex=op({complex_});function makeTensor(values,shape,inferredShape,dtype){if(dtype==null&&(dtype=inferDtype(values)),dtype==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!isTypedArray(values)&&!Array.isArray(values)&&typeof values!="number"&&typeof values!="boolean"&&typeof values!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(shape!=null){assertNonNegativeIntegerDimensions(shape);let providedSize=sizeFromShape(shape),inferredSize=sizeFromShape(inferredShape);assert(providedSize===inferredSize,()=>`Based on the provided shape, [${shape}], the tensor should have ${providedSize} values but has ${inferredSize}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${inferredShape}) does not match the provided shape (${shape}). `)}}return!isTypedArray(values)&&!Array.isArray(values)&&(values=[values]),shape=shape||inferredShape,values=dtype!=="string"?toTypedArray(values,dtype):flatten(values,[],!0),ENGINE.makeTensor(values,shape,dtype)}function tensor(values,shape,dtype){let inferredShape=inferShape(values,dtype);return makeTensor(values,shape,inferredShape,dtype)}var DTYPE_VALUE_SIZE_MAP={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},NUM_BYTES_STRING_LENGTH=4;async function encodeWeights(tensors,group){let specs=[],dataPromises=[],names=Array.isArray(tensors)?tensors.map(tensor2=>tensor2.name):Object.keys(tensors);for(let i=0;i{let vals=await t.bytes(),totalNumBytes=vals.reduce((p2,c)=>p2+c.length,0)+NUM_BYTES_STRING_LENGTH*vals.length,bytes=new Uint8Array(totalNumBytes),offset=0;for(let i2=0;i2{if(totalByteLength+=x.byteLength,normalizedXs.push(x.byteLength===x.buffer.byteLength?x:new x.constructor(x)),!(x instanceof Float32Array||x instanceof Int32Array||x instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`)});let y=new Uint8Array(totalByteLength),offset=0;return normalizedXs.forEach(x=>{y.set(new Uint8Array(x.buffer),offset),offset+=x.byteLength}),y.buffer}var useNodeBuffer=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function stringByteLength(str){return useNodeBuffer?Buffer.byteLength(str):new Blob([str]).size}function arrayBufferToBase64String(buffer2){if(useNodeBuffer)return Buffer.from(buffer2).toString("base64");let buf=new Uint8Array(buffer2),s="";for(let i=0,l=buf.length;i{totalByteLength+=buffer2.byteLength});let temp=new Uint8Array(totalByteLength),offset=0;return buffers.forEach(buffer2=>{temp.set(new Uint8Array(buffer2),offset),offset+=buffer2.byteLength}),temp.buffer}function basename(path){let SEPARATOR="/";for(path=path.trim();path.endsWith(SEPARATOR);)path=path.slice(0,path.length-1);let items=path.split(SEPARATOR);return items[items.length-1]}function getModelArtifactsInfoForJSON(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:modelArtifacts.modelTopology==null?0:stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),weightSpecsBytes:modelArtifacts.weightSpecs==null?0:stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),weightDataBytes:modelArtifacts.weightData==null?0:modelArtifacts.weightData.byteLength}}function computeFloat16MantisaTable(){let convertMantissa=i=>{let m=i<<13,e=0;for(;(m&8388608)==0;)e-=8388608,m<<=1;return m&=~8388608,e+=947912704,m|e},mantisaTable=new Uint32Array(2048);mantisaTable[0]=0;for(let i=1;i<1024;i++)mantisaTable[i]=convertMantissa(i);for(let i=1024;i<2048;i++)mantisaTable[i]=939524096+(i-1024<<13);return mantisaTable}function computeFloat16ExponentTable(){let exponentTable=new Uint32Array(64);exponentTable[0]=0,exponentTable[31]=1199570944,exponentTable[32]=2147483648,exponentTable[63]=3347054592;for(let i=1;i<31;i++)exponentTable[i]=i<<23;for(let i=33;i<63;i++)exponentTable[i]=2147483648+(i-32<<23);return exponentTable}function computeFloat16OffsetTable(){let offsetTable=new Uint32Array(64);for(let i=0;i<64;i++)offsetTable[i]=1024;return offsetTable[0]=offsetTable[32]=0,offsetTable}function getFloat16Decoder(){let mantisaTable=computeFloat16MantisaTable(),exponentTable=computeFloat16ExponentTable(),offsetTable=computeFloat16OffsetTable();return quantizedArray=>{let buffer2=new ArrayBuffer(4*quantizedArray.length),bufferUint32View=new Uint32Array(buffer2);for(let index=0;index>10]+(float16Bits&1023)]+exponentTable[float16Bits>>10];bufferUint32View[index]=float32Bits}return new Float32Array(buffer2)}}var IORouterRegistry=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return IORouterRegistry.instance==null&&(IORouterRegistry.instance=new IORouterRegistry),IORouterRegistry.instance}static registerSaveRouter(saveRouter){IORouterRegistry.getInstance().saveRouters.push(saveRouter)}static registerLoadRouter(loadRouter){IORouterRegistry.getInstance().loadRouters.push(loadRouter)}static getSaveHandlers(url){return IORouterRegistry.getHandlers(url,"save")}static getLoadHandlers(url,loadOptions){return IORouterRegistry.getHandlers(url,"load",loadOptions)}static getHandlers(url,handlerType,loadOptions){let validHandlers=[];return(handlerType==="load"?IORouterRegistry.getInstance().loadRouters:IORouterRegistry.getInstance().saveRouters).forEach(router=>{let handler=router(url,loadOptions);handler!==null&&validHandlers.push(handler)}),validHandlers}},registerSaveRouter=loudRouter=>IORouterRegistry.registerSaveRouter(loudRouter),registerLoadRouter=loudRouter=>IORouterRegistry.registerLoadRouter(loudRouter),getSaveHandlers=url=>IORouterRegistry.getSaveHandlers(url),getLoadHandlers=(url,loadOptions)=>IORouterRegistry.getLoadHandlers(url,loadOptions),DATABASE_NAME="tensorflowjs",DATABASE_VERSION=1,MODEL_STORE_NAME="models_store",INFO_STORE_NAME="model_info_store";function getIndexedDBFactory(){if(!env().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let theWindow=typeof window=="undefined"?self:window,factory=theWindow.indexedDB||theWindow.mozIndexedDB||theWindow.webkitIndexedDB||theWindow.msIndexedDB||theWindow.shimIndexedDB;if(factory==null)throw new Error("The current browser does not appear to support IndexedDB.");return factory}function setUpDatabase(openRequest){let db=openRequest.result;db.createObjectStore(MODEL_STORE_NAME,{keyPath:"modelPath"}),db.createObjectStore(INFO_STORE_NAME,{keyPath:"modelPath"})}var BrowserIndexedDB=class{constructor(modelPath){if(this.indexedDB=getIndexedDBFactory(),modelPath==null||!modelPath)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=modelPath}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,modelArtifacts)}async load(){return this.databaseAction(this.modelPath)}databaseAction(modelPath,modelArtifacts){return new Promise((resolve,reject)=>{let openRequest=this.indexedDB.open(DATABASE_NAME,DATABASE_VERSION);openRequest.onupgradeneeded=()=>setUpDatabase(openRequest),openRequest.onsuccess=()=>{let db=openRequest.result;if(modelArtifacts==null){let modelTx=db.transaction(MODEL_STORE_NAME,"readonly"),getRequest=modelTx.objectStore(MODEL_STORE_NAME).get(this.modelPath);getRequest.onsuccess=()=>{if(getRequest.result==null)return db.close(),reject(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));resolve(getRequest.result.modelArtifacts)},getRequest.onerror=error=>(db.close(),reject(getRequest.error)),modelTx.oncomplete=()=>db.close()}else{let modelArtifactsInfo=getModelArtifactsInfoForJSON(modelArtifacts),infoTx=db.transaction(INFO_STORE_NAME,"readwrite"),infoStore=infoTx.objectStore(INFO_STORE_NAME),putInfoRequest=infoStore.put({modelPath:this.modelPath,modelArtifactsInfo}),modelTx;putInfoRequest.onsuccess=()=>{modelTx=db.transaction(MODEL_STORE_NAME,"readwrite");let putModelRequest=modelTx.objectStore(MODEL_STORE_NAME).put({modelPath:this.modelPath,modelArtifacts,modelArtifactsInfo});putModelRequest.onsuccess=()=>resolve({modelArtifactsInfo}),putModelRequest.onerror=error=>{infoStore=infoTx.objectStore(INFO_STORE_NAME);let deleteInfoRequest=infoStore.delete(this.modelPath);deleteInfoRequest.onsuccess=()=>(db.close(),reject(putModelRequest.error)),deleteInfoRequest.onerror=error2=>(db.close(),reject(putModelRequest.error))}},putInfoRequest.onerror=error=>(db.close(),reject(putInfoRequest.error)),infoTx.oncomplete=()=>{modelTx==null?db.close():modelTx.oncomplete=()=>db.close()}}},openRequest.onerror=error=>reject(openRequest.error)})}};BrowserIndexedDB.URL_SCHEME="indexeddb://";var indexedDBRouter=url=>env().getBool("IS_BROWSER")&&!Array.isArray(url)&&url.startsWith(BrowserIndexedDB.URL_SCHEME)?browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length)):null;IORouterRegistry.registerSaveRouter(indexedDBRouter);IORouterRegistry.registerLoadRouter(indexedDBRouter);function browserIndexedDB(modelPath){return new BrowserIndexedDB(modelPath)}function maybeStripScheme(key){return key.startsWith(BrowserIndexedDB.URL_SCHEME)?key.slice(BrowserIndexedDB.URL_SCHEME.length):key}var BrowserIndexedDBManager=class{constructor(){this.indexedDB=getIndexedDBFactory()}async listModels(){return new Promise((resolve,reject)=>{let openRequest=this.indexedDB.open(DATABASE_NAME,DATABASE_VERSION);openRequest.onupgradeneeded=()=>setUpDatabase(openRequest),openRequest.onsuccess=()=>{let db=openRequest.result,tx=db.transaction(INFO_STORE_NAME,"readonly"),getAllInfoRequest=tx.objectStore(INFO_STORE_NAME).getAll();getAllInfoRequest.onsuccess=()=>{let out={};for(let item of getAllInfoRequest.result)out[item.modelPath]=item.modelArtifactsInfo;resolve(out)},getAllInfoRequest.onerror=error=>(db.close(),reject(getAllInfoRequest.error)),tx.oncomplete=()=>db.close()},openRequest.onerror=error=>reject(openRequest.error)})}async removeModel(path){return path=maybeStripScheme(path),new Promise((resolve,reject)=>{let openRequest=this.indexedDB.open(DATABASE_NAME,DATABASE_VERSION);openRequest.onupgradeneeded=()=>setUpDatabase(openRequest),openRequest.onsuccess=()=>{let db=openRequest.result,infoTx=db.transaction(INFO_STORE_NAME,"readwrite"),infoStore=infoTx.objectStore(INFO_STORE_NAME),getInfoRequest=infoStore.get(path),modelTx;getInfoRequest.onsuccess=()=>{if(getInfoRequest.result==null)return db.close(),reject(new Error(`Cannot find model with path '${path}' in IndexedDB.`));{let deleteInfoRequest=infoStore.delete(path),deleteModelData=()=>{modelTx=db.transaction(MODEL_STORE_NAME,"readwrite");let deleteModelRequest=modelTx.objectStore(MODEL_STORE_NAME).delete(path);deleteModelRequest.onsuccess=()=>resolve(getInfoRequest.result.modelArtifactsInfo),deleteModelRequest.onerror=error=>reject(getInfoRequest.error)};deleteInfoRequest.onsuccess=deleteModelData,deleteInfoRequest.onerror=error=>(deleteModelData(),db.close(),reject(getInfoRequest.error))}},getInfoRequest.onerror=error=>(db.close(),reject(getInfoRequest.error)),infoTx.oncomplete=()=>{modelTx==null?db.close():modelTx.oncomplete=()=>db.close()}},openRequest.onerror=error=>reject(openRequest.error)})}},PATH_SEPARATOR="/",PATH_PREFIX="tensorflowjs_models",INFO_SUFFIX="info",MODEL_TOPOLOGY_SUFFIX="model_topology",WEIGHT_SPECS_SUFFIX="weight_specs",WEIGHT_DATA_SUFFIX="weight_data",MODEL_METADATA_SUFFIX="model_metadata";function getModelKeys(path){return{info:[PATH_PREFIX,path,INFO_SUFFIX].join(PATH_SEPARATOR),topology:[PATH_PREFIX,path,MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),weightSpecs:[PATH_PREFIX,path,WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),weightData:[PATH_PREFIX,path,WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),modelMetadata:[PATH_PREFIX,path,MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)}}function getModelPathFromKey(key){let items=key.split(PATH_SEPARATOR);if(items.length<3)throw new Error(`Invalid key format: ${key}`);return items.slice(1,items.length-1).join(PATH_SEPARATOR)}function maybeStripScheme2(key){return key.startsWith(BrowserLocalStorage.URL_SCHEME)?key.slice(BrowserLocalStorage.URL_SCHEME.length):key}var BrowserLocalStorage=class{constructor(modelPath){if(!env().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,modelPath==null||!modelPath)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=modelPath,this.keys=getModelKeys(this.modelPath)}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let topology=JSON.stringify(modelArtifacts.modelTopology),weightSpecs=JSON.stringify(modelArtifacts.weightSpecs),modelArtifactsInfo=getModelArtifactsInfoForJSON(modelArtifacts);try{this.LS.setItem(this.keys.info,JSON.stringify(modelArtifactsInfo)),this.LS.setItem(this.keys.topology,topology),this.LS.setItem(this.keys.weightSpecs,weightSpecs),this.LS.setItem(this.keys.weightData,arrayBufferToBase64String(modelArtifacts.weightData));let result={format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy};return modelArtifacts.signature!=null&&(result.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(result.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(result.modelInitializer=modelArtifacts.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(result)),{modelArtifactsInfo}}catch(err){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`)}}}async load(){let info=JSON.parse(this.LS.getItem(this.keys.info));if(info==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(info.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let out={},topology=JSON.parse(this.LS.getItem(this.keys.topology));if(topology==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);out.modelTopology=topology;let weightSpecs=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(weightSpecs==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);out.weightSpecs=weightSpecs;let metadataString=this.LS.getItem(this.keys.modelMetadata);if(metadataString!=null){let metadata=JSON.parse(metadataString);out.format=metadata.format,out.generatedBy=metadata.generatedBy,out.convertedBy=metadata.convertedBy,metadata.signature!=null&&(out.signature=metadata.signature),metadata.userDefinedMetadata!=null&&(out.userDefinedMetadata=metadata.userDefinedMetadata),metadata.modelInitializer!=null&&(out.modelInitializer=metadata.modelInitializer)}let weightDataBase64=this.LS.getItem(this.keys.weightData);if(weightDataBase64==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return out.weightData=base64StringToArrayBuffer(weightDataBase64),out}};BrowserLocalStorage.URL_SCHEME="localstorage://";var localStorageRouter=url=>env().getBool("IS_BROWSER")&&!Array.isArray(url)&&url.startsWith(BrowserLocalStorage.URL_SCHEME)?browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length)):null;IORouterRegistry.registerSaveRouter(localStorageRouter);IORouterRegistry.registerLoadRouter(localStorageRouter);function browserLocalStorage(modelPath){return new BrowserLocalStorage(modelPath)}var BrowserLocalStorageManager=class{constructor(){assert(env().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),assert(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let out={},prefix=PATH_PREFIX+PATH_SEPARATOR,suffix=PATH_SEPARATOR+INFO_SUFFIX;for(let i=0;i"scheme must not be undefined or null."),scheme.endsWith(URL_SCHEME_SUFFIX)&&(scheme=scheme.slice(0,scheme.indexOf(URL_SCHEME_SUFFIX))),assert(scheme.length>0,()=>"scheme must not be an empty string.");let registry=ModelStoreManagerRegistry.getInstance();assert(registry.managers[scheme]==null,()=>`A model store manager is already registered for scheme '${scheme}'.`),registry.managers[scheme]=manager}static getManager(scheme){let manager=this.getInstance().managers[scheme];if(manager==null)throw new Error(`Cannot find model manager for scheme '${scheme}'`);return manager}static getSchemes(){return Object.keys(this.getInstance().managers)}};function parseURL(url){if(url.indexOf(URL_SCHEME_SUFFIX)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${ModelStoreManagerRegistry.getSchemes().join(",")}`);return{scheme:url.split(URL_SCHEME_SUFFIX)[0],path:url.split(URL_SCHEME_SUFFIX)[1]}}async function cloneModelInternal(sourceURL,destURL,deleteSource=!1){assert(sourceURL!==destURL,()=>`Old path and new path are the same: '${sourceURL}'`);let loadHandlers=IORouterRegistry.getLoadHandlers(sourceURL);assert(loadHandlers.length>0,()=>`Copying failed because no load handler is found for source URL ${sourceURL}.`),assert(loadHandlers.length<2,()=>`Copying failed because more than one (${loadHandlers.length}) load handlers for source URL ${sourceURL}.`);let loadHandler=loadHandlers[0],saveHandlers=IORouterRegistry.getSaveHandlers(destURL);assert(saveHandlers.length>0,()=>`Copying failed because no save handler is found for destination URL ${destURL}.`),assert(saveHandlers.length<2,()=>`Copying failed because more than one (${loadHandlers.length}) save handlers for destination URL ${destURL}.`);let saveHandler=saveHandlers[0],sourceScheme=parseURL(sourceURL).scheme,sourcePath=parseURL(sourceURL).path,sameMedium=sourceScheme===parseURL(sourceURL).scheme,modelArtifacts=await loadHandler.load();deleteSource&&sameMedium&&await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath);let saveResult=await saveHandler.save(modelArtifacts);return deleteSource&&!sameMedium&&await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath),saveResult.modelArtifactsInfo}async function listModels(){let schemes=ModelStoreManagerRegistry.getSchemes(),out={};for(let scheme of schemes){let schemeOut=await ModelStoreManagerRegistry.getManager(scheme).listModels();for(let path in schemeOut){let url=scheme+URL_SCHEME_SUFFIX+path;out[url]=schemeOut[path]}}return out}async function removeModel(url){let schemeAndPath=parseURL(url);return ModelStoreManagerRegistry.getManager(schemeAndPath.scheme).removeModel(schemeAndPath.path)}async function copyModel(sourceURL,destURL){return cloneModelInternal(sourceURL,destURL,!1)}async function moveModel(sourceURL,destURL){return cloneModelInternal(sourceURL,destURL,!0)}var PlatformBrowser=class{fetch(path,init2){return fetch(path,init2)}now(){return performance.now()}encode(text,encoding){if(encoding!=="utf-8"&&encoding!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${encoding}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(text)}decode(bytes,encoding){return new TextDecoder(encoding).decode(bytes)}};if(env().get("IS_BROWSER")){env().setPlatform("browser",new PlatformBrowser);try{ModelStoreManagerRegistry.registerManager(BrowserLocalStorage.URL_SCHEME,new BrowserLocalStorageManager)}catch(err){}try{ModelStoreManagerRegistry.registerManager(BrowserIndexedDB.URL_SCHEME,new BrowserIndexedDBManager)}catch(err){}}var getNodeFetch={importFetch:()=>require_browser()},systemFetch,PlatformNode=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(path,requestInits){return env().global.fetch!=null?env().global.fetch(path,requestInits):(systemFetch==null&&(systemFetch=getNodeFetch.importFetch()),systemFetch(path,requestInits))}now(){let time2=process.hrtime();return time2[0]*1e3+time2[1]/1e6}encode(text,encoding){if(encoding!=="utf-8"&&encoding!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${encoding}`);return this.textEncoder.encode(text)}decode(bytes,encoding){return bytes.length===0?"":new this.util.TextDecoder(encoding).decode(bytes)}};env().get("IS_NODE")&&env().setPlatform("node",new PlatformNode);function buffer(shape,dtype="float32",values){return dtype=dtype||"float32",assertNonNegativeIntegerDimensions(shape),new TensorBuffer(shape,dtype,values)}function cast_(x,dtype){let $x=convertToTensor(x,"x","cast");if(!isValidDtype(dtype))throw new Error(`Failed to cast to unknown dtype ${dtype}`);if(dtype==="string"&&$x.dtype!=="string"||dtype!=="string"&&$x.dtype==="string")throw new Error("Only strings can be casted to strings");let inputs={x:$x},attrs={dtype};return ENGINE.runKernel(Cast,inputs,attrs)}var cast=op({cast_});function clone_(x){let inputs={x:convertToTensor(x,"x","clone","string_or_numeric")};return ENGINE.runKernel(Identity,inputs)}var clone=op({clone_});function print2(x,verbose=!1){console.log(x.toString(verbose))}getOrMakeEngine();var opHandler2={buffer,cast,clone,print:print2};setOpHandler(opHandler2);var io_exports={};__export2(io_exports,{browserFiles:()=>browserFiles,browserHTTPRequest:()=>browserHTTPRequest,concatenateArrayBuffers:()=>concatenateArrayBuffers,copyModel:()=>copyModel,decodeWeights:()=>decodeWeights,encodeWeights:()=>encodeWeights,fromMemory:()=>fromMemory,getLoadHandlers:()=>getLoadHandlers,getModelArtifactsInfoForJSON:()=>getModelArtifactsInfoForJSON,getSaveHandlers:()=>getSaveHandlers,http:()=>http,isHTTPScheme:()=>isHTTPScheme,listModels:()=>listModels,loadWeights:()=>loadWeights,moveModel:()=>moveModel,registerLoadRouter:()=>registerLoadRouter,registerSaveRouter:()=>registerSaveRouter,removeModel:()=>removeModel,weightsLoaderFactory:()=>weightsLoaderFactory,withSaveHandler:()=>withSaveHandler});var DEFAULT_FILE_NAME_PREFIX="model",DEFAULT_JSON_EXTENSION_NAME=".json",DEFAULT_WEIGHT_DATA_EXTENSION_NAME=".weights.bin";function defer(f){return new Promise(resolve=>setTimeout(resolve)).then(f)}var BrowserDownloads=class{constructor(fileNamePrefix){if(!env().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)&&(fileNamePrefix=fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length)),(fileNamePrefix==null||fileNamePrefix.length===0)&&(fileNamePrefix=DEFAULT_FILE_NAME_PREFIX),this.modelTopologyFileName=fileNamePrefix+DEFAULT_JSON_EXTENSION_NAME,this.weightDataFileName=fileNamePrefix+DEFAULT_WEIGHT_DATA_EXTENSION_NAME}async save(modelArtifacts){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let weightsURL=window.URL.createObjectURL(new Blob([modelArtifacts.weightData],{type:"application/octet-stream"}));if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let weightsManifest=[{paths:["./"+this.weightDataFileName],weights:modelArtifacts.weightSpecs}],modelTopologyAndWeightManifest={modelTopology:modelArtifacts.modelTopology,format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy,weightsManifest};modelArtifacts.signature!=null&&(modelTopologyAndWeightManifest.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(modelTopologyAndWeightManifest.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(modelTopologyAndWeightManifest.modelInitializer=modelArtifacts.modelInitializer);let modelTopologyAndWeightManifestURL=window.URL.createObjectURL(new Blob([JSON.stringify(modelTopologyAndWeightManifest)],{type:"application/json"})),jsonAnchor=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(jsonAnchor.download=this.modelTopologyFileName,jsonAnchor.href=modelTopologyAndWeightManifestURL,await defer(()=>jsonAnchor.dispatchEvent(new MouseEvent("click"))),modelArtifacts.weightData!=null){let weightDataAnchor=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;weightDataAnchor.download=this.weightDataFileName,weightDataAnchor.href=weightsURL,await defer(()=>weightDataAnchor.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:getModelArtifactsInfoForJSON(modelArtifacts)}}}};BrowserDownloads.URL_SCHEME="downloads://";var BrowserFiles=class{constructor(files){if(files==null||files.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${files}`);this.files=files}async load(){let jsonFile=this.files[0],weightFiles=this.files.slice(1);return new Promise((resolve,reject)=>{let jsonReader=new FileReader;jsonReader.onload=event=>{let modelJSON=JSON.parse(event.target.result),modelTopology=modelJSON.modelTopology;if(modelTopology==null){reject(new Error(`modelTopology field is missing from file ${jsonFile.name}`));return}weightFiles.length===0&&resolve({modelTopology});let weightsManifest=modelJSON.weightsManifest;if(weightsManifest==null){reject(new Error(`weightManifest field is missing from file ${jsonFile.name}`));return}let pathToFile;try{pathToFile=this.checkManifestAndWeightFiles(weightsManifest,weightFiles)}catch(err){reject(err);return}let weightSpecs=[],paths=[],perFileBuffers=[];weightsManifest.forEach(weightsGroup=>{weightsGroup.paths.forEach(path=>{paths.push(path),perFileBuffers.push(null)}),weightSpecs.push(...weightsGroup.weights)}),weightsManifest.forEach(weightsGroup=>{weightsGroup.paths.forEach(path=>{let weightFileReader=new FileReader;weightFileReader.onload=event2=>{let weightData=event2.target.result,index=paths.indexOf(path);if(perFileBuffers[index]=weightData,perFileBuffers.indexOf(null)===-1){let result={modelTopology,weightSpecs,weightData:concatenateArrayBuffers(perFileBuffers),format:modelJSON.format,generatedBy:modelJSON.generatedBy,convertedBy:modelJSON.convertedBy};modelJSON.signature!=null&&(result.signature=modelJSON.signature),modelJSON.userDefinedMetadata!=null&&(result.userDefinedMetadata=modelJSON.userDefinedMetadata),modelJSON.modelInitializer!=null&&(result.modelInitializer=modelJSON.modelInitializer),resolve(result)}},weightFileReader.onerror=error=>reject(`Failed to weights data from file of path '${path}'.`),weightFileReader.readAsArrayBuffer(pathToFile[path])})})},jsonReader.onerror=error=>reject(`Failed to read model topology and weights manifest JSON from file '${jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),jsonReader.readAsText(jsonFile)})}checkManifestAndWeightFiles(manifest,files){let basenames=[],fileNames=files.map(file=>basename(file.name)),pathToFile={};for(let group of manifest)group.paths.forEach(path=>{let pathBasename=basename(path);if(basenames.indexOf(pathBasename)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${pathBasename}'`);if(basenames.push(pathBasename),fileNames.indexOf(pathBasename)===-1)throw new Error(`Weight file with basename '${pathBasename}' is not provided.`);pathToFile[path]=files[fileNames.indexOf(pathBasename)]});if(basenames.length!==files.length)throw new Error(`Mismatch in the number of files in weights manifest (${basenames.length}) and the number of weight files provided (${files.length}).`);return pathToFile}},browserDownloadsRouter=url=>env().getBool("IS_BROWSER")&&!Array.isArray(url)&&url.startsWith(BrowserDownloads.URL_SCHEME)?browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length)):null;IORouterRegistry.registerSaveRouter(browserDownloadsRouter);function browserDownloads(fileNamePrefix="model"){return new BrowserDownloads(fileNamePrefix)}function browserFiles(files){return new BrowserFiles(files)}function monitorPromisesProgress(promises,onProgress,startFraction,endFraction){checkPromises(promises),startFraction=startFraction==null?0:startFraction,endFraction=endFraction==null?1:endFraction,checkFraction(startFraction,endFraction);let resolvedPromise=0,registerMonitor=promise=>(promise.then(value=>{let fraction=startFraction+ ++resolvedPromise/promises.length*(endFraction-startFraction);return onProgress(fraction),value}),promise);function checkPromises(promises2){assert(promises2!=null&&Array.isArray(promises2)&&promises2.length>0,()=>"promises must be a none empty array")}function checkFraction(startFraction2,endFraction2){assert(startFraction2>=0&&startFraction2<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${startFraction2}`),assert(endFraction2>=0&&endFraction2<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${endFraction2}`),assert(endFraction2>=startFraction2,()=>`startFraction must be no more than endFraction, but got startFraction ${startFraction2} and endFraction ${endFraction2}`)}return Promise.all(promises.map(registerMonitor))}async function loadWeightsAsArrayBuffer(fetchURLs,loadOptions){loadOptions==null&&(loadOptions={});let fetchFunc=loadOptions.fetchFunc==null?env().platform.fetch:loadOptions.fetchFunc,requests=fetchURLs.map(fetchURL=>fetchFunc(fetchURL,loadOptions.requestInit,{isBinary:!0})),fetchStartFraction=0,fetchEndFraction=.5,bufferPromises=(loadOptions.onProgress==null?await Promise.all(requests):await monitorPromisesProgress(requests,loadOptions.onProgress,fetchStartFraction,fetchEndFraction)).map(response=>response.arrayBuffer()),bufferStartFraction=.5,bufferEndFraction=1;return loadOptions.onProgress==null?await Promise.all(bufferPromises):await monitorPromisesProgress(bufferPromises,loadOptions.onProgress,bufferStartFraction,bufferEndFraction)}async function loadWeights(manifest,filePathPrefix="",weightNames,requestInit){return weightsLoaderFactory(fetchUrls=>loadWeightsAsArrayBuffer(fetchUrls,{requestInit}))(manifest,filePathPrefix,weightNames)}function weightsLoaderFactory(fetchWeightsFunction){return async(manifest,filePathPrefix="",weightNames)=>{let groupIndicesToFetchMap=manifest.map(()=>!1),groupWeightsToFetch={},weightsFound=weightNames!=null?weightNames.map(()=>!1):[],allManifestWeightNames=[];if(manifest.forEach((manifestGroupConfig,groupIndex)=>{let groupOffset=0;manifestGroupConfig.weights.forEach(weightsEntry=>{let rawDtype="quantization"in weightsEntry?weightsEntry.quantization.dtype:weightsEntry.dtype,weightsBytes=DTYPE_VALUE_SIZE_MAP[rawDtype]*sizeFromShape(weightsEntry.shape),enqueueWeightsForFetchingFn=()=>{groupIndicesToFetchMap[groupIndex]=!0,groupWeightsToFetch[groupIndex]==null&&(groupWeightsToFetch[groupIndex]=[]),groupWeightsToFetch[groupIndex].push({manifestEntry:weightsEntry,groupOffset,sizeBytes:weightsBytes})};weightNames!=null?weightNames.forEach((weightName,weightIndex)=>{weightName===weightsEntry.name&&(enqueueWeightsForFetchingFn(),weightsFound[weightIndex]=!0)}):enqueueWeightsForFetchingFn(),allManifestWeightNames.push(weightsEntry.name),groupOffset+=weightsBytes})}),!weightsFound.every(found=>found)){let weightsNotFound=weightNames.filter((_,i)=>!weightsFound[i]);throw new Error(`Could not find weights in manifest with names: ${weightsNotFound.join(", ")}. -Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`)}let groupIndicesToFetch=groupIndicesToFetchMap.reduce((accumulator,shouldFetch,i)=>(shouldFetch&&accumulator.push(i),accumulator),[]),fetchUrls=[];groupIndicesToFetch.forEach(i=>{manifest[i].paths.forEach(filepath=>{let fetchUrl=filePathPrefix+(filePathPrefix.endsWith("/")?"":"/")+filepath;fetchUrls.push(fetchUrl)})});let buffers=await fetchWeightsFunction(fetchUrls),weightsTensorMap={},bufferIndexOffset=0;return groupIndicesToFetch.forEach(i=>{let numBuffers=manifest[i].paths.length,groupBytes=0;for(let i2=0;i2{let byteBuffer=groupBuffer.slice(weightsEntry.groupOffset,weightsEntry.groupOffset+weightsEntry.sizeBytes),nameToTensorMap=decodeWeights(byteBuffer,[weightsEntry.manifestEntry]);for(let name in nameToTensorMap)weightsTensorMap[name]=nameToTensorMap[name]}),bufferIndexOffset+=numBuffers}),weightsTensorMap}}var OCTET_STREAM_MIME_TYPE="application/octet-stream",JSON_TYPE="application/json",HTTPRequest=class{constructor(path,loadOptions){if(this.DEFAULT_METHOD="POST",loadOptions==null&&(loadOptions={}),this.weightPathPrefix=loadOptions.weightPathPrefix,this.onProgress=loadOptions.onProgress,this.weightUrlConverter=loadOptions.weightUrlConverter,loadOptions.fetchFunc!=null?(assert(typeof loadOptions.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=loadOptions.fetchFunc):this.fetch=env().platform.fetch,assert(path!=null&&path.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(path)&&assert(path.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${path.length}).`),this.path=path,loadOptions.requestInit!=null&&loadOptions.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=loadOptions.requestInit||{}}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let init2=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);init2.body=new FormData;let weightsManifest=[{paths:["./model.weights.bin"],weights:modelArtifacts.weightSpecs}],modelTopologyAndWeightManifest={modelTopology:modelArtifacts.modelTopology,format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy,weightsManifest};modelArtifacts.signature!=null&&(modelTopologyAndWeightManifest.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(modelTopologyAndWeightManifest.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(modelTopologyAndWeightManifest.modelInitializer=modelArtifacts.modelInitializer),init2.body.append("model.json",new Blob([JSON.stringify(modelTopologyAndWeightManifest)],{type:JSON_TYPE}),"model.json"),modelArtifacts.weightData!=null&&init2.body.append("model.weights.bin",new Blob([modelArtifacts.weightData],{type:OCTET_STREAM_MIME_TYPE}),"model.weights.bin");let response=await this.fetch(this.path,init2);if(response.ok)return{modelArtifactsInfo:getModelArtifactsInfoForJSON(modelArtifacts),responses:[response]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${response.status}.`)}async load(){let modelConfigRequest=await this.fetch(this.path,this.requestInit);if(!modelConfigRequest.ok)throw new Error(`Request to ${this.path} failed with status code ${modelConfigRequest.status}. Please verify this URL points to the model JSON of the model to load.`);let modelConfig;try{modelConfig=await modelConfigRequest.json()}catch(e){let message=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?message+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":message+=" Please make sure the server is serving valid JSON for this request.",new Error(message)}let modelTopology=modelConfig.modelTopology,weightsManifest=modelConfig.weightsManifest,generatedBy=modelConfig.generatedBy,convertedBy=modelConfig.convertedBy,format=modelConfig.format,signature=modelConfig.signature,userDefinedMetadata=modelConfig.userDefinedMetadata;if(modelTopology==null&&weightsManifest==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let weightSpecs,weightData;weightsManifest!=null&&([weightSpecs,weightData]=await this.loadWeights(weightsManifest));let artifacts={modelTopology,weightSpecs,weightData,generatedBy,convertedBy,format};signature!=null&&(artifacts.signature=signature),userDefinedMetadata!=null&&(artifacts.userDefinedMetadata=userDefinedMetadata);let initializer=modelConfig.modelInitializer;return initializer&&(artifacts.modelInitializer=initializer),artifacts}async loadWeights(weightsManifest){let weightPath=Array.isArray(this.path)?this.path[1]:this.path,[prefix,suffix]=parseUrl(weightPath),pathPrefix=this.weightPathPrefix||prefix,weightSpecs=[];for(let entry of weightsManifest)weightSpecs.push(...entry.weights);let fetchURLs=[],urlPromises=[];for(let weightsGroup of weightsManifest)for(let path of weightsGroup.paths)this.weightUrlConverter!=null?urlPromises.push(this.weightUrlConverter(path)):fetchURLs.push(pathPrefix+path+suffix);this.weightUrlConverter&&fetchURLs.push(...await Promise.all(urlPromises));let buffers=await loadWeightsAsArrayBuffer(fetchURLs,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[weightSpecs,concatenateArrayBuffers(buffers)]}};HTTPRequest.URL_SCHEME_REGEX=/^https?:\/\//;function parseUrl(url){let lastSlash=url.lastIndexOf("/"),lastSearchParam=url.lastIndexOf("?"),prefix=url.substring(0,lastSlash),suffix=lastSearchParam>lastSlash?url.substring(lastSearchParam):"";return[prefix+"/",suffix]}function isHTTPScheme(url){return url.match(HTTPRequest.URL_SCHEME_REGEX)!=null}var httpRouter=(url,loadOptions)=>{if(typeof fetch=="undefined"&&(loadOptions==null||loadOptions.fetchFunc==null))return null;{let isHTTP=!0;if(Array.isArray(url)?isHTTP=url.every(urlItem=>isHTTPScheme(urlItem)):isHTTP=isHTTPScheme(url),isHTTP)return http(url,loadOptions)}return null};IORouterRegistry.registerSaveRouter(httpRouter);IORouterRegistry.registerLoadRouter(httpRouter);function http(path,loadOptions){return new HTTPRequest(path,loadOptions)}function browserHTTPRequest(path,loadOptions){return http(path,loadOptions)}var PassthroughLoader=class{constructor(modelArtifacts){this.modelArtifacts=modelArtifacts}async load(){return this.modelArtifacts}},PassthroughSaver=class{constructor(saveHandler){this.saveHandler=saveHandler}async save(modelArtifacts){return this.saveHandler(modelArtifacts)}};function fromMemory(modelArtifacts,weightSpecs,weightData,trainingConfig){return arguments.length===1?modelArtifacts.modelTopology!=null||modelArtifacts.weightSpecs!=null?new PassthroughLoader(modelArtifacts):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts,weightSpecs,weightData,trainingConfig}))}function withSaveHandler(saveHandler){return new PassthroughSaver(saveHandler)}var math_exports={};__export2(math_exports,{confusionMatrix:()=>confusionMatrix});function matMul_(a,b,transposeA=!1,transposeB=!1){let $a=convertToTensor(a,"a","matMul"),$b=convertToTensor(b,"b","matMul");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b},attrs={transposeA,transposeB};return ENGINE.runKernel(BatchMatMul,inputs,attrs)}var matMul=op({matMul_});function oneHot_(indices,depth,onValue=1,offValue=0){if(depth<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);let inputs={indices:convertToTensor(indices,"indices","oneHot","int32")},attrs={depth,onValue,offValue};return ENGINE.runKernel(OneHot,inputs,attrs)}var oneHot=op({oneHot_});function transpose_(x,perm){let $x=convertToTensor(x,"x","transpose");if(perm==null&&(perm=$x.shape.map((s,i)=>i).reverse()),assert($x.rank===perm.length,()=>`Error in transpose: rank of input ${$x.rank} must match length of perm ${perm}.`),perm.forEach(axis=>{assert(axis>=0&&axis<$x.rank,()=>`All entries in 'perm' must be between 0 and ${$x.rank-1} but got ${perm}`)}),$x.rank<=1)return $x.clone();let inputs={x:$x},attrs={perm};return ENGINE.runKernel(Transpose,inputs,attrs)}var transpose=op({transpose_});function confusionMatrix_(labels,predictions,numClasses){let $labels=convertToTensor(labels,"labels","confusionMatrix"),$predictions=convertToTensor(predictions,"predictions","confusionMatrix");assert(numClasses==null||numClasses>0&&Number.isInteger(numClasses),()=>`If provided, numClasses must be a positive integer, but got ${numClasses}`),assert($labels.rank===1,()=>`Expected the rank of labels to be 1, but got ${$labels.rank}`),assert($predictions.rank===1,()=>`Expected the rank of predictions to be 1, but got ${$predictions.rank}`),assert($labels.shape[0]===$predictions.shape[0],()=>`Mismatch in the number of examples: ${$labels.shape[0]} vs. ${$predictions.shape[0]}. Labels and predictions should have the same number of elements.`),assert(numClasses>0&&Number.isInteger(numClasses),()=>`numClasses is required to be a positive integer, but got ${numClasses}`);let oneHotLabels=oneHot(cast($labels,"int32"),numClasses),oneHotPredictions=oneHot(cast($predictions,"int32"),numClasses),oneHotLabelsT=transpose(oneHotLabels),product=matMul(oneHotLabelsT,oneHotPredictions);return cast(product,"int32")}var confusionMatrix=op({confusionMatrix_}),browser_exports={};__export2(browser_exports,{fromPixels:()=>fromPixels,toPixels:()=>toPixels});function tensor3d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==3&&inferredShape.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}var fromPixels2DContext;function fromPixels_(pixels,numChannels=3){if(numChannels>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(pixels==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let isPixelData=!1,isImageData=!1,isVideo=!1,isImage=!1,isCanvasLike=!1,isImageBitmap=!1;if(pixels.data instanceof Uint8Array)isPixelData=!0;else if(typeof ImageData!="undefined"&&pixels instanceof ImageData)isImageData=!0;else if(typeof HTMLVideoElement!="undefined"&&pixels instanceof HTMLVideoElement)isVideo=!0;else if(typeof HTMLImageElement!="undefined"&&pixels instanceof HTMLImageElement)isImage=!0;else if(pixels.getContext!=null)isCanvasLike=!0;else if(typeof ImageBitmap!="undefined"&&pixels instanceof ImageBitmap)isImageBitmap=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${pixels.constructor.name}`);if(isVideo){let HAVE_CURRENT_DATA_READY_STATE=2;if(isVideo&&pixels.readyState element.")}if(getKernel(FromPixels,ENGINE.backendName)!=null){let inputs={pixels},attrs={numChannels};return ENGINE.runKernel(FromPixels,inputs,attrs)}let[width,height]=isVideo?[pixels.videoWidth,pixels.videoHeight]:[pixels.width,pixels.height],vals;isCanvasLike?vals=pixels.getContext("2d").getImageData(0,0,width,height).data:isImageData||isPixelData?vals=pixels.data:(isImage||isVideo||isImageBitmap)&&(fromPixels2DContext==null&&(fromPixels2DContext=document.createElement("canvas").getContext("2d")),fromPixels2DContext.canvas.width=width,fromPixels2DContext.canvas.height=height,fromPixels2DContext.drawImage(pixels,0,0,width,height),vals=fromPixels2DContext.getImageData(0,0,width,height).data);let values;if(numChannels===4)values=new Int32Array(vals);else{let numPixels=width*height;values=new Int32Array(numPixels*numChannels);for(let i=0;i4||depth===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${depth}`);if($img.dtype!=="float32"&&$img.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${$img.dtype}. Please use float32 or int32 tensors.`);let data2=await $img.data(),multiplier=$img.dtype==="float32"?255:1,bytes=new Uint8ClampedArray(width*height*4);for(let i=0;i1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${value}.`)}else if($img.dtype==="int32"&&(value<0||value>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${value}.`);depth===1?(rgba[0]=value*multiplier,rgba[1]=value*multiplier,rgba[2]=value*multiplier):rgba[d]=value*multiplier}let j=i*4;bytes[j+0]=Math.round(rgba[0]),bytes[j+1]=Math.round(rgba[1]),bytes[j+2]=Math.round(rgba[2]),bytes[j+3]=Math.round(rgba[3])}if(canvas!=null){canvas.width=width,canvas.height=height;let ctx=canvas.getContext("2d"),imageData=new ImageData(bytes,width,height);ctx.putImageData(imageData,0,0)}return $img!==img&&$img.dispose(),bytes}var fromPixels=op({fromPixels_}),gather_nd_util_exports={};__export2(gather_nd_util_exports,{prepareAndValidate:()=>prepareAndValidate});function prepareAndValidate(tensor2,indices){let tensorRank=tensor2.shape.length,indicesRank=indices.shape.length;if(tensorRank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${tensorRank}.`);if(indicesRank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${indicesRank}.`);if(indices.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${indices.dtype}.`);if(indices.shape[indicesRank-1]>tensorRank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${indices.shape[indicesRank-1]} vs. ${tensorRank}`);if(sizeFromShape(tensor2.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${tensor2.shape}.`);let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],nResult=1;for(let i=0;istride/sliceSize),1].slice(0,sliceRank);return[resultShape,nResult,sliceSize,strides]}var scatter_nd_util_exports={};__export2(scatter_nd_util_exports,{calculateShapes:()=>calculateShapes,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape});function validateUpdateShape(shape,indices,updates){let sliceDim=indices.rank>1?indices.shape[indices.rank-1]:1,batchDim=indices.rank>1?indices.rank-1:1,shapeError=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${updates.shape}, indices.shape: ${indices.shape}, shape: ${shape}, sliceDim: ${sliceDim}, and batchDim: ${batchDim}.`;if(updates.rank1?indices.shape[indicesRank-1]:1,totalNd=shape.length,sliceSize=1;for(let i=sliceRank;iassertParamsValid,computeFlatOffset:()=>computeFlatOffset,computeOutShape:()=>computeOutShape,getNormalizedAxes:()=>getNormalizedAxes,isSliceContinous:()=>isSliceContinous,maskToAxes:()=>maskToAxes,parseSliceParams:()=>parseSliceParams,sliceInfo:()=>sliceInfo,startForAxis:()=>startForAxis,startIndicesWithElidedDims:()=>startIndicesWithElidedDims,stopForAxis:()=>stopForAxis,stopIndicesWithElidedDims:()=>stopIndicesWithElidedDims,stridesForAxis:()=>stridesForAxis,stridesWithElidedDims:()=>stridesWithElidedDims});function assertParamsValid(input2,begin,size){let inputRank=input2.shape.length;assert(inputRank===begin.length,()=>`Error in slice${inputRank}D: Length of begin ${begin} must match the rank of the array (${inputRank}).`),assert(inputRank===size.length,()=>`Error in slice${inputRank}D: Length of size ${size} must match the rank of the array (${inputRank}).`);for(let i=0;i`Error in slice${inputRank}D: begin[${i}] + size[${i}] (${begin[i]+size[i]}) would overflow input.shape[${i}] (${input2.shape[i]})`)}function maskToAxes(mask){let axes=[],axis=0;for(;mask>0;)mask&1&&axes.push(axis),mask/=2,axis++;return axes}function computeOutShape(begin,end,strides){let size=[];for(let axis=0;axis0){let fullIndex=ellipsisAxes[0],numElidedAxes=numInterpolatedAxes+1;normalizedBegin=startIndicesWithElidedDims(beginMask,fullIndex,numElidedAxes,begin,inputShape),normalizedEnd=stopIndicesWithElidedDims(endMask,fullIndex,numElidedAxes,end,inputShape),normalizedStrides=stridesWithElidedDims(strides,fullIndex,numElidedAxes,inputShape)}else for(let axis=0;axis-1)newIndices[axis]=0;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalBegin[originalAxis];beginMask&1<-1)newIndices[axis]=Number.MAX_SAFE_INTEGER;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalEnd[originalAxis];endMask&1<0?start=Number.MIN_SAFE_INTEGER:start=Number.MAX_SAFE_INTEGER);let axisSize=inputShape[axis];return start<0&&(start+=axisSize),start=clamp(0,start,axisSize-1),start}function stopForAxis(endMask,stopIndices,strides,inputShape,axis,ellipsisMask){let stop=stopIndices[axis],stride=strides[axis]||1;(endMask&1<0?stop=Number.MAX_SAFE_INTEGER:stop=Number.MIN_SAFE_INTEGER);let axisSize=inputShape[axis];return stop<0&&(stop+=axisSize),stride>0?stop=clamp(0,stop,axisSize):stop=clamp(-1,stop,axisSize-1),stop}function isSliceContinous(shape,begin,size){let firstNonOneAxis=size.length;for(let i=0;i1){firstNonOneAxis=i;break}for(let i=firstNonOneAxis+1;i0||size[i]!==shape[i])return!1;return!0}function computeFlatOffset(begin,strides){let flatOffset=begin.length>0?begin[begin.length-1]:1;for(let i=0;i{assert(d!==-1,()=>"slice() does not support negative begin indexing.")});let size_;return size==null?size_=new Array(xRank).fill(-1):typeof size=="number"?size_=[size,...new Array(xRank-1).fill(-1)]:size.lengthd>=0?d:(assert(d===-1,()=>`Negative size values should be exactly -1 but got ${d} for the slice() size at index ${i}.`),x.shape[i]-begin_[i])),[begin_,size_]}function sliceInfo(xShape,begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask){let $begin=begin.slice(),$end=end.slice(),$strides=strides;strides==null&&($strides=new Array($begin.length));let ellipsisAxes=maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=xShape.length-$begin.length,expandAxes=maskToAxes(newAxisMask),newShape=xShape.slice();expandAxes.forEach(axis=>{$begin[axis]=0,$end[axis]=1,newShape.splice(axis,0,1)});let{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=getNormalizedAxes(newShape,ellipsisAxes,numInterpolatedAxes,$begin,$end,$strides,beginMask,endMask,ellipsisMask);$begin=normalizedBegin,$end=normalizedEnd,$strides=normalizedStrides;let shrinkAxes=maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{$end[axis]=$begin[axis]+1,$strides[axis]=1});let size=computeOutShape($begin,$end,$strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);return{nonStrided:$strides.every(v=>v===1),$begin,$end,$strides,size,newShape,outShape}}var serialization_exports={};__export2(serialization_exports,{Serializable:()=>Serializable,SerializationMap:()=>SerializationMap,registerClass:()=>registerClass});var Serializable=class{getClassName(){return this.constructor.className}static fromConfig(cls,config3){return new cls(config3)}},SerializationMap=class{constructor(){this.classNameMap={}}static getMap(){return SerializationMap.instance==null&&(SerializationMap.instance=new SerializationMap),SerializationMap.instance}static register(cls){SerializationMap.getMap().classNameMap[cls.className]=[cls,cls.fromConfig]}};function registerClass(cls){assert(cls.className!=null,()=>"Class being registered does not have the static className property defined."),assert(typeof cls.className=="string",()=>"className is required to be a string, but got type "+typeof cls.className),assert(cls.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),SerializationMap.register(cls)}var test_util_exports={};__export2(test_util_exports,{TEST_EPSILON_FLOAT16:()=>TEST_EPSILON_FLOAT16,encodeStrings:()=>encodeStrings,expectArrayBuffersEqual:()=>expectArrayBuffersEqual,expectArraysClose:()=>expectArraysClose,expectArraysEqual:()=>expectArraysEqual,expectNumbersClose:()=>expectNumbersClose,expectPromiseToFail:()=>expectPromiseToFail,expectValuesInRange:()=>expectValuesInRange,testEpsilon:()=>testEpsilon});var TEST_EPSILON_FLOAT32=.001,TEST_EPSILON_FLOAT16=.1;function expectArraysClose(actual,expected,epsilon3){return epsilon3==null&&(epsilon3=testEpsilon()),expectArraysPredicate(actual,expected,(a,b)=>areClose(a,b,epsilon3))}function testEpsilon(){return ENGINE.backend.floatPrecision()===32?TEST_EPSILON_FLOAT32:TEST_EPSILON_FLOAT16}function expectArraysPredicate(actual,expected,predicate){let checkClassType=!0;if((isTypedArray(actual)||isTypedArray(expected))&&(checkClassType=!1),isTypedArray(actual)&&isTypedArray(expected)&&(checkClassType=!0),checkClassType){let aType=actual.constructor.name,bType=expected.constructor.name;if(aType!==bType)throw new Error(`Arrays are of different type. Actual: ${aType}. Expected: ${bType}`)}if(Array.isArray(actual)&&Array.isArray(expected)){let actualShape=inferShape(actual),expectedShape=inferShape(expected);if(!arraysEqual(actualShape,expectedShape))throw new Error(`Arrays have different shapes. Actual: [${actualShape}]. Expected: [${expectedShape}]`)}let actualFlat=isTypedArray(actual)?actual:flatten(actual),expectedFlat=isTypedArray(expected)?expected:flatten(expected);if(actualFlat.length!==expectedFlat.length)throw new Error(`Arrays have different lengths actual: ${actualFlat.length} vs expected: ${expectedFlat.length}. +Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`)}let groupIndicesToFetch=groupIndicesToFetchMap.reduce((accumulator,shouldFetch,i)=>(shouldFetch&&accumulator.push(i),accumulator),[]),fetchUrls=[];groupIndicesToFetch.forEach(i=>{manifest[i].paths.forEach(filepath=>{let fetchUrl=filePathPrefix+(filePathPrefix.endsWith("/")?"":"/")+filepath;fetchUrls.push(fetchUrl)})});let buffers=await fetchWeightsFunction(fetchUrls),weightsTensorMap={},bufferIndexOffset=0;return groupIndicesToFetch.forEach(i=>{let numBuffers=manifest[i].paths.length,groupBytes=0;for(let i2=0;i2{let byteBuffer=groupBuffer.slice(weightsEntry.groupOffset,weightsEntry.groupOffset+weightsEntry.sizeBytes),nameToTensorMap=decodeWeights(byteBuffer,[weightsEntry.manifestEntry]);for(let name in nameToTensorMap)weightsTensorMap[name]=nameToTensorMap[name]}),bufferIndexOffset+=numBuffers}),weightsTensorMap}}var OCTET_STREAM_MIME_TYPE="application/octet-stream",JSON_TYPE="application/json",HTTPRequest=class{constructor(path,loadOptions){if(this.DEFAULT_METHOD="POST",loadOptions==null&&(loadOptions={}),this.weightPathPrefix=loadOptions.weightPathPrefix,this.onProgress=loadOptions.onProgress,this.weightUrlConverter=loadOptions.weightUrlConverter,loadOptions.fetchFunc!=null?(assert(typeof loadOptions.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=loadOptions.fetchFunc):this.fetch=env().platform.fetch,assert(path!=null&&path.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(path)&&assert(path.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${path.length}).`),this.path=path,loadOptions.requestInit!=null&&loadOptions.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=loadOptions.requestInit||{}}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let init2=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);init2.body=new FormData;let weightsManifest=[{paths:["./model.weights.bin"],weights:modelArtifacts.weightSpecs}],modelTopologyAndWeightManifest={modelTopology:modelArtifacts.modelTopology,format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy,weightsManifest};modelArtifacts.signature!=null&&(modelTopologyAndWeightManifest.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(modelTopologyAndWeightManifest.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(modelTopologyAndWeightManifest.modelInitializer=modelArtifacts.modelInitializer),init2.body.append("model.json",new Blob([JSON.stringify(modelTopologyAndWeightManifest)],{type:JSON_TYPE}),"model.json"),modelArtifacts.weightData!=null&&init2.body.append("model.weights.bin",new Blob([modelArtifacts.weightData],{type:OCTET_STREAM_MIME_TYPE}),"model.weights.bin");let response=await this.fetch(this.path,init2);if(response.ok)return{modelArtifactsInfo:getModelArtifactsInfoForJSON(modelArtifacts),responses:[response]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${response.status}.`)}async load(){let modelConfigRequest=await this.fetch(this.path,this.requestInit);if(!modelConfigRequest.ok)throw new Error(`Request to ${this.path} failed with status code ${modelConfigRequest.status}. Please verify this URL points to the model JSON of the model to load.`);let modelConfig;try{modelConfig=await modelConfigRequest.json()}catch(e){let message=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?message+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":message+=" Please make sure the server is serving valid JSON for this request.",new Error(message)}let modelTopology=modelConfig.modelTopology,weightsManifest=modelConfig.weightsManifest,generatedBy=modelConfig.generatedBy,convertedBy=modelConfig.convertedBy,format=modelConfig.format,signature=modelConfig.signature,userDefinedMetadata=modelConfig.userDefinedMetadata;if(modelTopology==null&&weightsManifest==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let weightSpecs,weightData;weightsManifest!=null&&([weightSpecs,weightData]=await this.loadWeights(weightsManifest));let artifacts={modelTopology,weightSpecs,weightData,generatedBy,convertedBy,format};signature!=null&&(artifacts.signature=signature),userDefinedMetadata!=null&&(artifacts.userDefinedMetadata=userDefinedMetadata);let initializer=modelConfig.modelInitializer;return initializer&&(artifacts.modelInitializer=initializer),artifacts}async loadWeights(weightsManifest){let weightPath=Array.isArray(this.path)?this.path[1]:this.path,[prefix,suffix]=parseUrl(weightPath),pathPrefix=this.weightPathPrefix||prefix,weightSpecs=[];for(let entry of weightsManifest)weightSpecs.push(...entry.weights);let fetchURLs=[],urlPromises=[];for(let weightsGroup of weightsManifest)for(let path of weightsGroup.paths)this.weightUrlConverter!=null?urlPromises.push(this.weightUrlConverter(path)):fetchURLs.push(pathPrefix+path+suffix);this.weightUrlConverter&&fetchURLs.push(...await Promise.all(urlPromises));let buffers=await loadWeightsAsArrayBuffer(fetchURLs,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[weightSpecs,concatenateArrayBuffers(buffers)]}};HTTPRequest.URL_SCHEME_REGEX=/^https?:\/\//;function parseUrl(url){let lastSlash=url.lastIndexOf("/"),lastSearchParam=url.lastIndexOf("?"),prefix=url.substring(0,lastSlash),suffix=lastSearchParam>lastSlash?url.substring(lastSearchParam):"";return[prefix+"/",suffix]}function isHTTPScheme(url){return url.match(HTTPRequest.URL_SCHEME_REGEX)!=null}var httpRouter=(url,loadOptions)=>{if(typeof fetch=="undefined"&&(loadOptions==null||loadOptions.fetchFunc==null))return null;{let isHTTP=!0;if(Array.isArray(url)?isHTTP=url.every(urlItem=>isHTTPScheme(urlItem)):isHTTP=isHTTPScheme(url),isHTTP)return http(url,loadOptions)}return null};IORouterRegistry.registerSaveRouter(httpRouter);IORouterRegistry.registerLoadRouter(httpRouter);function http(path,loadOptions){return new HTTPRequest(path,loadOptions)}function browserHTTPRequest(path,loadOptions){return http(path,loadOptions)}var PassthroughLoader=class{constructor(modelArtifacts){this.modelArtifacts=modelArtifacts}async load(){return this.modelArtifacts}},PassthroughSaver=class{constructor(saveHandler){this.saveHandler=saveHandler}async save(modelArtifacts){return this.saveHandler(modelArtifacts)}};function fromMemory(modelArtifacts,weightSpecs,weightData,trainingConfig){return arguments.length===1?modelArtifacts.modelTopology!=null||modelArtifacts.weightSpecs!=null?new PassthroughLoader(modelArtifacts):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts,weightSpecs,weightData,trainingConfig}))}function withSaveHandler(saveHandler){return new PassthroughSaver(saveHandler)}var math_exports={};__export2(math_exports,{confusionMatrix:()=>confusionMatrix});function matMul_(a,b,transposeA=!1,transposeB=!1){let $a=convertToTensor(a,"a","matMul"),$b=convertToTensor(b,"b","matMul");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b},attrs={transposeA,transposeB};return ENGINE.runKernel(BatchMatMul,inputs,attrs)}var matMul=op({matMul_});function oneHot_(indices,depth,onValue=1,offValue=0){if(depth<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);let inputs={indices:convertToTensor(indices,"indices","oneHot","int32")},attrs={depth,onValue,offValue};return ENGINE.runKernel(OneHot,inputs,attrs)}var oneHot=op({oneHot_});function transpose_(x,perm){let $x=convertToTensor(x,"x","transpose");if(perm==null&&(perm=$x.shape.map((s,i)=>i).reverse()),assert($x.rank===perm.length,()=>`Error in transpose: rank of input ${$x.rank} must match length of perm ${perm}.`),perm.forEach(axis=>{assert(axis>=0&&axis<$x.rank,()=>`All entries in 'perm' must be between 0 and ${$x.rank-1} but got ${perm}`)}),$x.rank<=1)return $x.clone();let inputs={x:$x},attrs={perm};return ENGINE.runKernel(Transpose,inputs,attrs)}var transpose=op({transpose_});function confusionMatrix_(labels,predictions,numClasses){let $labels=convertToTensor(labels,"labels","confusionMatrix"),$predictions=convertToTensor(predictions,"predictions","confusionMatrix");assert(numClasses==null||numClasses>0&&Number.isInteger(numClasses),()=>`If provided, numClasses must be a positive integer, but got ${numClasses}`),assert($labels.rank===1,()=>`Expected the rank of labels to be 1, but got ${$labels.rank}`),assert($predictions.rank===1,()=>`Expected the rank of predictions to be 1, but got ${$predictions.rank}`),assert($labels.shape[0]===$predictions.shape[0],()=>`Mismatch in the number of examples: ${$labels.shape[0]} vs. ${$predictions.shape[0]}. Labels and predictions should have the same number of elements.`),assert(numClasses>0&&Number.isInteger(numClasses),()=>`numClasses is required to be a positive integer, but got ${numClasses}`);let oneHotLabels=oneHot(cast($labels,"int32"),numClasses),oneHotPredictions=oneHot(cast($predictions,"int32"),numClasses),oneHotLabelsT=transpose(oneHotLabels),product=matMul(oneHotLabelsT,oneHotPredictions);return cast(product,"int32")}var confusionMatrix=op({confusionMatrix_}),browser_exports={};__export2(browser_exports,{fromPixels:()=>fromPixels,toPixels:()=>toPixels});function tensor3d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==3&&inferredShape.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}var fromPixels2DContext;function fromPixels_(pixels,numChannels=3){if(numChannels>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(pixels==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let isPixelData=!1,isImageData=!1,isVideo=!1,isImage=!1,isCanvasLike=!1,isImageBitmap=!1;if(pixels.data instanceof Uint8Array)isPixelData=!0;else if(typeof ImageData!="undefined"&&pixels instanceof ImageData)isImageData=!0;else if(typeof HTMLVideoElement!="undefined"&&pixels instanceof HTMLVideoElement)isVideo=!0;else if(typeof HTMLImageElement!="undefined"&&pixels instanceof HTMLImageElement)isImage=!0;else if(pixels.getContext!=null)isCanvasLike=!0;else if(typeof ImageBitmap!="undefined"&&pixels instanceof ImageBitmap)isImageBitmap=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${pixels.constructor.name}`);if(isVideo){let HAVE_CURRENT_DATA_READY_STATE=2;if(isVideo&&pixels.readyState element.")}if(getKernel(FromPixels,ENGINE.backendName)!=null){let inputs={pixels},attrs={numChannels};return ENGINE.runKernel(FromPixels,inputs,attrs)}let[width,height]=isVideo?[pixels.videoWidth,pixels.videoHeight]:[pixels.width,pixels.height],vals;isCanvasLike?vals=pixels.getContext("2d").getImageData(0,0,width,height).data:isImageData||isPixelData?vals=pixels.data:(isImage||isVideo||isImageBitmap)&&(fromPixels2DContext==null&&(fromPixels2DContext=document.createElement("canvas").getContext("2d")),fromPixels2DContext.canvas.width=width,fromPixels2DContext.canvas.height=height,fromPixels2DContext.drawImage(pixels,0,0,width,height),vals=fromPixels2DContext.getImageData(0,0,width,height).data);let values;if(numChannels===4)values=new Int32Array(vals);else{let numPixels=width*height;values=new Int32Array(numPixels*numChannels);for(let i=0;i4||depth===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${depth}`);if($img.dtype!=="float32"&&$img.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${$img.dtype}. Please use float32 or int32 tensors.`);let data2=await $img.data(),multiplier=$img.dtype==="float32"?255:1,bytes=new Uint8ClampedArray(width*height*4);for(let i=0;i1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${value}.`)}else if($img.dtype==="int32"&&(value<0||value>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${value}.`);depth===1?(rgba[0]=value*multiplier,rgba[1]=value*multiplier,rgba[2]=value*multiplier):rgba[d]=value*multiplier}let j=i*4;bytes[j+0]=Math.round(rgba[0]),bytes[j+1]=Math.round(rgba[1]),bytes[j+2]=Math.round(rgba[2]),bytes[j+3]=Math.round(rgba[3])}if(canvas!=null){canvas.width=width,canvas.height=height;let ctx=canvas.getContext("2d"),imageData=new ImageData(bytes,width,height);ctx.putImageData(imageData,0,0)}return $img!==img&&$img.dispose(),bytes}var fromPixels=op({fromPixels_}),gather_nd_util_exports={};__export2(gather_nd_util_exports,{prepareAndValidate:()=>prepareAndValidate});function prepareAndValidate(tensor2,indices){let tensorRank=tensor2.shape.length,indicesRank=indices.shape.length;if(tensorRank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${tensorRank}.`);if(indicesRank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${indicesRank}.`);if(indices.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${indices.dtype}.`);if(indices.shape[indicesRank-1]>tensorRank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${indices.shape[indicesRank-1]} vs. ${tensorRank}`);if(sizeFromShape(tensor2.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${tensor2.shape}.`);let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],nResult=1;for(let i=0;istride/sliceSize),1].slice(0,sliceRank);return[resultShape,nResult,sliceSize,strides]}var scatter_nd_util_exports={};__export2(scatter_nd_util_exports,{calculateShapes:()=>calculateShapes,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape});function validateUpdateShape(shape,indices,updates){let sliceDim=indices.rank>1?indices.shape[indices.rank-1]:1,batchDim=indices.rank>1?indices.rank-1:1,shapeError=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${updates.shape}, indices.shape: ${indices.shape}, shape: ${shape}, sliceDim: ${sliceDim}, and batchDim: ${batchDim}.`;if(updates.rank1?indices.shape[indicesRank-1]:1,totalNd=shape.length,sliceSize=1;for(let i=sliceRank;iassertParamsValid,computeFlatOffset:()=>computeFlatOffset,computeOutShape:()=>computeOutShape,getNormalizedAxes:()=>getNormalizedAxes,isSliceContinous:()=>isSliceContinous,maskToAxes:()=>maskToAxes,parseSliceParams:()=>parseSliceParams,sliceInfo:()=>sliceInfo,startForAxis:()=>startForAxis,startIndicesWithElidedDims:()=>startIndicesWithElidedDims,stopForAxis:()=>stopForAxis,stopIndicesWithElidedDims:()=>stopIndicesWithElidedDims,stridesForAxis:()=>stridesForAxis,stridesWithElidedDims:()=>stridesWithElidedDims});function assertParamsValid(input2,begin,size){let inputRank=input2.shape.length;assert(inputRank===begin.length,()=>`Error in slice${inputRank}D: Length of begin ${begin} must match the rank of the array (${inputRank}).`),assert(inputRank===size.length,()=>`Error in slice${inputRank}D: Length of size ${size} must match the rank of the array (${inputRank}).`);for(let i=0;i`Error in slice${inputRank}D: begin[${i}] + size[${i}] (${begin[i]+size[i]}) would overflow input.shape[${i}] (${input2.shape[i]})`)}function maskToAxes(mask){let axes=[],axis=0;for(;mask>0;)mask&1&&axes.push(axis),mask/=2,axis++;return axes}function computeOutShape(begin,end,strides){let size=[];for(let axis=0;axis0){let fullIndex=ellipsisAxes[0],numElidedAxes=numInterpolatedAxes+1;normalizedBegin=startIndicesWithElidedDims(beginMask,fullIndex,numElidedAxes,begin,inputShape),normalizedEnd=stopIndicesWithElidedDims(endMask,fullIndex,numElidedAxes,end,inputShape),normalizedStrides=stridesWithElidedDims(strides,fullIndex,numElidedAxes,inputShape)}else for(let axis=0;axis-1)newIndices[axis]=0;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalBegin[originalAxis];beginMask&1<-1)newIndices[axis]=Number.MAX_SAFE_INTEGER;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalEnd[originalAxis];endMask&1<0?start=Number.MIN_SAFE_INTEGER:start=Number.MAX_SAFE_INTEGER);let axisSize=inputShape[axis];return start<0&&(start+=axisSize),start=clamp(0,start,axisSize-1),start}function stopForAxis(endMask,stopIndices,strides,inputShape,axis,ellipsisMask){let stop=stopIndices[axis],stride=strides[axis]||1;(endMask&1<0?stop=Number.MAX_SAFE_INTEGER:stop=Number.MIN_SAFE_INTEGER);let axisSize=inputShape[axis];return stop<0&&(stop+=axisSize),stride>0?stop=clamp(0,stop,axisSize):stop=clamp(-1,stop,axisSize-1),stop}function isSliceContinous(shape,begin,size){let firstNonOneAxis=size.length;for(let i=0;i1){firstNonOneAxis=i;break}for(let i=firstNonOneAxis+1;i0||size[i]!==shape[i])return!1;return!0}function computeFlatOffset(begin,strides){let flatOffset=begin.length>0?begin[begin.length-1]:1;for(let i=0;i{assert(d!==-1,()=>"slice() does not support negative begin indexing.")});let size_;return size==null?size_=new Array(xRank).fill(-1):typeof size=="number"?size_=[size,...new Array(xRank-1).fill(-1)]:size.lengthd>=0?d:(assert(d===-1,()=>`Negative size values should be exactly -1 but got ${d} for the slice() size at index ${i}.`),x.shape[i]-begin_[i])),[begin_,size_]}function sliceInfo(xShape,begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask){let $begin=begin.slice(),$end=end.slice(),$strides=strides;strides==null&&($strides=new Array($begin.length));let ellipsisAxes=maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=xShape.length-$begin.length,expandAxes=maskToAxes(newAxisMask),newShape=xShape.slice();expandAxes.forEach(axis=>{$begin[axis]=0,$end[axis]=1,newShape.splice(axis,0,1)});let{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=getNormalizedAxes(newShape,ellipsisAxes,numInterpolatedAxes,$begin,$end,$strides,beginMask,endMask,ellipsisMask);$begin=normalizedBegin,$end=normalizedEnd,$strides=normalizedStrides;let shrinkAxes=maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{$end[axis]=$begin[axis]+1,$strides[axis]=1});let size=computeOutShape($begin,$end,$strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);return{nonStrided:$strides.every(v=>v===1),$begin,$end,$strides,size,newShape,outShape}}var serialization_exports={};__export2(serialization_exports,{Serializable:()=>Serializable,SerializationMap:()=>SerializationMap,registerClass:()=>registerClass});var Serializable=class{getClassName(){return this.constructor.className}static fromConfig(cls,config2){return new cls(config2)}},SerializationMap=class{constructor(){this.classNameMap={}}static getMap(){return SerializationMap.instance==null&&(SerializationMap.instance=new SerializationMap),SerializationMap.instance}static register(cls){SerializationMap.getMap().classNameMap[cls.className]=[cls,cls.fromConfig]}};function registerClass(cls){assert(cls.className!=null,()=>"Class being registered does not have the static className property defined."),assert(typeof cls.className=="string",()=>"className is required to be a string, but got type "+typeof cls.className),assert(cls.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),SerializationMap.register(cls)}var test_util_exports={};__export2(test_util_exports,{TEST_EPSILON_FLOAT16:()=>TEST_EPSILON_FLOAT16,encodeStrings:()=>encodeStrings,expectArrayBuffersEqual:()=>expectArrayBuffersEqual,expectArraysClose:()=>expectArraysClose,expectArraysEqual:()=>expectArraysEqual,expectNumbersClose:()=>expectNumbersClose,expectPromiseToFail:()=>expectPromiseToFail,expectValuesInRange:()=>expectValuesInRange,testEpsilon:()=>testEpsilon});var TEST_EPSILON_FLOAT32=.001,TEST_EPSILON_FLOAT16=.1;function expectArraysClose(actual,expected,epsilon3){return epsilon3==null&&(epsilon3=testEpsilon()),expectArraysPredicate(actual,expected,(a,b)=>areClose(a,b,epsilon3))}function testEpsilon(){return ENGINE.backend.floatPrecision()===32?TEST_EPSILON_FLOAT32:TEST_EPSILON_FLOAT16}function expectArraysPredicate(actual,expected,predicate){let checkClassType=!0;if((isTypedArray(actual)||isTypedArray(expected))&&(checkClassType=!1),isTypedArray(actual)&&isTypedArray(expected)&&(checkClassType=!0),checkClassType){let aType=actual.constructor.name,bType=expected.constructor.name;if(aType!==bType)throw new Error(`Arrays are of different type. Actual: ${aType}. Expected: ${bType}`)}if(Array.isArray(actual)&&Array.isArray(expected)){let actualShape=inferShape(actual),expectedShape=inferShape(expected);if(!arraysEqual(actualShape,expectedShape))throw new Error(`Arrays have different shapes. Actual: [${actualShape}]. Expected: [${expectedShape}]`)}let actualFlat=isTypedArray(actual)?actual:flatten(actual),expectedFlat=isTypedArray(expected)?expected:flatten(expected);if(actualFlat.length!==expectedFlat.length)throw new Error(`Arrays have different lengths actual: ${actualFlat.length} vs expected: ${expectedFlat.length}. Actual: ${actualFlat}. Expected: ${expectedFlat}.`);for(let i=0;i`Dimension size must be evenly divisible by ${blockSize*blockSize} but is ${inputDepth} for depthToSpace with input shape ${$x.shape}`);let inputs={x:$x},attrs={blockSize,dataFormat};return ENGINE.runKernel(DepthToSpace,inputs,attrs)}var depthToSpace=op({depthToSpace_});function depthwiseConv2d_(x,filter,strides,pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode){let $x=convertToTensor(x,"x","depthwiseConv2d"),$filter=convertToTensor(filter,"filter","depthwiseConv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${$filter.rank}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${x4D.shape[3]}) must match the inChannels dimension in filter ${$filter.shape[2]}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D,filter:$filter},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode},res=ENGINE.runKernel(DepthwiseConv2dNative,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var depthwiseConv2d=op({depthwiseConv2d_});function diag_(x){let inputs={x:convertToTensor(x,"x","diag")};return ENGINE.runKernel(Diag,inputs)}var diag=op({diag_});function dilation2d_(x,filter,strides,pad3,dilations=[1,1],dataFormat="NHWC"){let $x=convertToTensor(x,"x","dilation2d"),$filter=convertToTensor(filter,"filter","dilation2d");assert($x.rank===3||$x.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${$x.rank}.`),assert($filter.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${$filter.rank}.`),assert(dataFormat==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${dataFormat}`);let x4D=$x,reshapedTo4D=!1;$x.rank===3&&(x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]]),reshapedTo4D=!0);let inputs={x:x4D,filter:$filter},attrs={strides,pad:pad3,dilations},res=ENGINE.runKernel(Dilation2D,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var dilation2d=op({dilation2d_});function getBroadcastDims(inShape,outShape){let inRank=inShape.length,dims=[];for(let i=0;i1&&a===1&&dims.unshift(dim)}return dims}function getReductionAxes(inShape,outShape){let result=[];for(let i=0;i1)&&result.unshift(outAxis)}return result}function assertAndGetBroadcastShape(shapeA,shapeB){let result=[],l=Math.max(shapeA.length,shapeB.length);for(let i=0;i"The first dimension of `a` must match the size of `condition`."),$condition.rank!==1&&assertShapesMatch($condition.shape,$broadcastedB.shape,"Error in where: ");let inputs={condition:$condition,t:$broadcastedA,e:$broadcastedB};return ENGINE.runKernel(Select,inputs)}var where=op({where_});function zerosLike_(x){let inputs={x:convertToTensor(x,"x","zerosLike")};return ENGINE.runKernel(ZerosLike,inputs)}var zerosLike=op({zerosLike_});function divNoNan_(a,b){let $a=convertToTensor(a,"a","div"),$b=convertToTensor(b,"b","div");[$a,$b]=makeTypesMatch($a,$b);let divResult=div($a,$b),zeros4=zerosLike(divResult),bEqualsZero=equal($b,zeros4);return where(bEqualsZero,zeros4,divResult)}var divNoNan=op({divNoNan_});function dot_(t1,t2){let $t1=convertToTensor(t1,"t1","dot"),$t2=convertToTensor(t2,"t2","dot");assert(($t1.rank===1||$t1.rank===2)&&($t2.rank===1||$t2.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${$t1.rank} and ${$t2.rank}.`);let t1Inner=$t1.rank===1?$t1.size:$t1.shape[1],t2Inner=$t2.rank===1?$t2.size:$t2.shape[0];if(assert(t1Inner===t2Inner,()=>`Error in dot: inner dimensions of inputs must match, but got ${t1Inner} and ${t2Inner}.`),$t1.rank===1&&$t2.rank===1){let t12D=reshape($t1,[1,-1]),t22D=reshape($t2,[-1,1]),t1t2=matMul(t12D,t22D);return reshape(t1t2,[])}else if($t1.rank===1&&$t2.rank===2){let t12D=reshape($t1,[1,-1]),t22D=reshape($t2,[$t2.shape[0],$t2.shape[1]]),t1t2=matMul(t12D,t22D);return reshape(t1t2,[t1t2.size])}else if($t1.rank===2&&$t2.rank===1){let t22D=reshape($t2,[-1,1]),t1t2=matMul($t1,t22D);return reshape(t1t2,[t1t2.size])}else{let t22D=reshape($t2,[$t2.shape[0],$t2.shape[1]]);return matMul($t1,t22D)}}var dot=op({dot_});function elu_(x){let inputs={x:convertToTensor(x,"x","elu")};return ENGINE.runKernel(Elu,inputs)}var elu=op({elu_});function erf_(x){let $x=convertToTensor(x,"x","erf");assert($x.dtype==="int32"||$x.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),$x.dtype==="int32"&&($x=cast($x,"float32"));let inputs={x:$x};return ENGINE.runKernel(Erf,inputs)}var erf=op({erf_});function exp_(x){let inputs={x:convertToTensor(x,"x","exp")};return ENGINE.runKernel(Exp,inputs)}var exp=op({exp_});function expandDims_(x,axis=0){let $x=convertToTensor(x,"x","expandDims","string_or_numeric");assert(axis<=$x.rank,()=>"Axis must be <= rank of the tensor");let inputs={input:$x},attrs={dim:axis};return ENGINE.runKernel(ExpandDims,inputs,attrs)}var expandDims=op({expandDims_});function expm1_(x){let inputs={x:convertToTensor(x,"x","expm1")};return ENGINE.runKernel(Expm1,inputs)}var expm1=op({expm1_});function tile_(x,reps){let $x=convertToTensor(x,"x","tile","string_or_numeric");assert($x.rank===reps.length,()=>`Error in transpose: rank of input ${$x.rank} must match length of reps ${reps}.`);let inputs={x:$x},attrs={reps};return ENGINE.runKernel(Tile,inputs,attrs)}var tile=op({tile_});function eye_(numRows,numColumns,batchShape,dtype="float32"){numColumns==null&&(numColumns=numRows);let buff=buffer([numRows,numColumns],dtype),n=numRows<=numColumns?numRows:numColumns;for(let i=0;i`Error in localResponseNormalization: x must be rank 3 or 4 but got rank ${$x.rank}.`),assert(isInt(depthRadius),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${depthRadius}.`);let x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]]));let inputs={x:x4D},attrs={depthRadius,bias,alpha,beta},res=ENGINE.runKernel(LRN,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var localResponseNormalization=op({localResponseNormalization_});function log_(x){let inputs={x:convertToTensor(x,"x","log")};return ENGINE.runKernel(Log,inputs)}var log2=op({log_});function log1p_(x){let inputs={x:convertToTensor(x,"x","log1p")};return ENGINE.runKernel(Log1p,inputs)}var log1p=op({log1p_});function grad(f){return assert(isFunction(f),()=>"The f passed in grad(f) must be a function"),(x,dy)=>{let $x=convertToTensor(x,"x","tf.grad","string_or_numeric"),$dy=dy!=null?convertToTensor(dy,"dy","tf.grad"):null;return ENGINE.tidy(()=>{let{value,grads:grads2}=ENGINE.gradients(()=>f($x),[$x],$dy);return $dy!=null&&assertShapesMatch(value.shape,$dy.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),checkGrads(grads2),grads2[0]})}}function grads(f){return assert(isFunction(f),()=>"The f passed in grads(f) must be a function"),(args,dy)=>{assert(Array.isArray(args),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let $args=convertToTensorArray(args,"args","tf.grads","string_or_numeric"),$dy=dy!=null?convertToTensor(dy,"dy","tf.grads"):null;return ENGINE.tidy(()=>{let{value,grads:grads2}=ENGINE.gradients(()=>f(...$args),$args,$dy);return $dy!=null&&assertShapesMatch(value.shape,$dy.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),checkGrads(grads2),grads2})}}function valueAndGrad(f){return assert(isFunction(f),()=>"The f passed in valueAndGrad(f) must be a function"),(x,dy)=>{assert(x instanceof Tensor,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),assert(dy==null||dy instanceof Tensor,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:grads2,value}=ENGINE.gradients(()=>f(x),[x],dy);return checkGrads(grads2),{grad:grads2[0],value}}}function valueAndGrads(f){return assert(isFunction(f),()=>"The f passed in valueAndGrads(f) must be a function"),(args,dy)=>{assert(Array.isArray(args)&&args.every(arg=>arg instanceof Tensor),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),assert(dy==null||dy instanceof Tensor,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let res=ENGINE.gradients(()=>f(...args),args,dy);return dy!=null&&assertShapesMatch(res.value.shape,dy.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),checkGrads(res.grads),res}}function variableGrads(f,varList){assert(isFunction(f),()=>"The f passed in variableGrads(f) must be a function"),assert(varList==null||Array.isArray(varList)&&varList.every(v=>v instanceof Variable),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let specifiedVarList=varList!=null;if(!specifiedVarList){varList=[];for(let varName in ENGINE.registeredVariables)varList.push(ENGINE.registeredVariables[varName])}let specifiedNonTrainable=specifiedVarList?varList.filter(variable2=>!variable2.trainable):null,originalVarCount=varList.length;varList=varList.filter(variable2=>variable2.trainable),assert(varList.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${originalVarCount} variables is trainable.`);let allowNoGradients=!0,{value,grads:grads2}=ENGINE.gradients(f,varList,null,allowNoGradients);assert(grads2.some(g=>g!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),assert(value.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${value.rank} tensor`);let namedGrads={};return varList.forEach((v,i)=>{grads2[i]!=null&&(namedGrads[v.name]=grads2[i])}),specifiedNonTrainable!=null&&specifiedNonTrainable.forEach(v=>namedGrads[v.name]=null),{value,grads:namedGrads}}function customGrad(f){return ENGINE.customGrad(f)}function checkGrads(grads2){if(grads2.filter(g=>g==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function neg_(x){let inputs={x:convertToTensor(x,"x","neg")};return ENGINE.runKernel(Neg,inputs)}var neg=op({neg_});function softplus_(x){let inputs={x:convertToTensor(x,"x","softplus")};return ENGINE.runKernel(Softplus,inputs)}var softplus=op({softplus_});function logSigmoid_(x){let $x=convertToTensor(x,"x","logSigmoid");return customGrad(x2=>({value:neg(softplus(neg(x2))),gradFunc:dy=>mul(dy,sigmoid(neg(x2)))}))($x)}var logSigmoid=op({logSigmoid_});function max_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","max")},attrs={reductionIndices:axis,keepDims};return ENGINE.runKernel(Max,inputs,attrs)}var max=op({max_});function sub_(a,b){let $a=convertToTensor(a,"a","sub"),$b=convertToTensor(b,"b","sub");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Sub,inputs)}var sub=op({sub_});function sum_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","sum");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Sum,inputs,attrs)}var sum2=op({sum_});function logSoftmax_(logits,axis=-1){let $logits=convertToTensor(logits,"logits","logSoftmax");if(axis===-1&&(axis=$logits.rank-1),axis!==$logits.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and axis was ${axis}`);return customGrad((logits2,save)=>{let keepDims=!0,xMax=max(logits2,axis,!0),shifted=sub(logits2,xMax),value=sub(cast(shifted,"float32"),log2(sum2(exp(shifted),axis,keepDims)));return save([value]),{value,gradFunc:(dy,saved)=>{let[value2]=saved,keepDims2=!0,softmax6=exp(value2);return sub(dy,mul(sum2(dy,axis,keepDims2),softmax6))}}})($logits)}var logSoftmax=op({logSoftmax_});function axesAreInnerMostDims(axes,rank){for(let i=0;iaShape[dim]);return[outShape,reduceShape]}function expandShapeToKeepDim(shape,axes){let reduceSubShape=axes.map(x=>1);return combineLocations(shape,reduceSubShape,axes)}function assertAxesAreInnerMostDims(msg,axes,rank){assert(axesAreInnerMostDims(axes,rank),()=>`${msg} supports only inner-most axes for now. Got axes ${axes} and rank-${rank} input.`)}function getAxesPermutation(axes,rank){if(axesAreInnerMostDims(axes,rank))return null;let result=[];for(let i=0;iresult.push(axis)),result}function getUndoAxesPermutation(axes){return axes.map((axis,i)=>[i,axis]).sort((a,b)=>a[1]-b[1]).map(x=>x[0])}function getInnerMostAxes(numAxes,rank){let res=[];for(let i=rank-numAxes;i`Error in maxPool: input must be rank 4 but got rank ${x4D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D},attrs={filterSize,strides,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(MaxPool,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var maxPool=op({maxPool_});function maxPool3d_(x,filterSize=[1,1,1],strides,pad3,dimRoundingMode,dataFormat="NDHWC",dilations){dilations==null?dilations=[1,1,1]:deprecationWarn("dilations is deprecated, this field will be gone in v3.0.0.");let $x=convertToTensor(x,"x","maxPool3d"),x5D=$x,reshapedTo5D=!1;$x.rank===4&&(reshapedTo5D=!0,x5D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2],$x.shape[3]])),assert(x5D.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${x5D.rank}.`),assert(dataFormat==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${dataFormat}`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x5D},attrs={filterSize,strides,pad:pad3,dimRoundingMode,dataFormat,dilations},res=ENGINE.runKernel(MaxPool3D,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var maxPool3d=op({maxPool3d_});function maxPoolWithArgmax_(x,filterSize,strides,pad3,includeBatchInIndex=!1){let inputs={x:convertToTensor(x,"x","maxPoolWithArgmax")},attrs={filterSize,strides,pad:pad3,includeBatchInIndex},result=ENGINE.runKernel(MaxPoolWithArgmax,inputs,attrs);return{result:result[0],indexes:result[1]}}var maxPoolWithArgmax=op({maxPoolWithArgmax_});function maximum_(a,b){let $a=convertToTensor(a,"a","maximum"),$b=convertToTensor(b,"b","maximum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Maximum,inputs)}var maximum=op({maximum_});function mean_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","mean")},attrs={axis,keepDims};return ENGINE.runKernel(Mean,inputs,attrs)}var mean=op({mean_});function min_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","min")},attrs={axis,keepDims};return ENGINE.runKernel(Min,inputs,attrs)}var min=op({min_});function minimum_(a,b){let $a=convertToTensor(a,"a","minimum"),$b=convertToTensor(b,"b","minimum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Minimum,inputs)}var minimum=op({minimum_});function mirrorPad_(x,paddings,mode){assert(mode==="reflect"||mode==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${mode}.`);let $x=convertToTensor(x,"x","mirrorPad");if($x.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");assert(paddings.length===$x.rank,()=>`Padding doesn't match input. Must be ${$x.rank}. Got ${paddings.length}.`);let shapeOffset=mode==="reflect"?1:0;for(let i=0;i<$x.rank;i++)assert(paddings[i].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),assert(paddings[i][0]>=0&&paddings[i][0]<=$x.shape[i]-shapeOffset&&paddings[i][1]>=0&&paddings[i][1]<=$x.shape[i]-shapeOffset,()=>`Padding in dimension ${i} cannot be greater than or equal to ${$x.shape[i]-shapeOffset} or less than 0 for input of shape ${$x.shape}`);let attrs={paddings,mode},inputs={x:$x};return ENGINE.runKernel(MirrorPad,inputs,attrs)}var mirrorPad=op({mirrorPad_});function mod_(a,b){let $a=convertToTensor(a,"a","mod"),$b=convertToTensor(b,"b","mod");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Mod,inputs)}var mod=op({mod_});function square_(x){let $x=convertToTensor(x,"x","square"),attrs={};return ENGINE.runKernel("Square",{x:$x},attrs)}var square=op({square_});function moments_(x,axis=null,keepDims=!1){x=convertToTensor(x,"x","moments");let axes=parseAxisParam(axis,x.shape),xMean=mean(x,axes,keepDims),keepDimsShape=xMean.shape;keepDims||(keepDimsShape=expandShapeToKeepDim(xMean.shape,axes));let devSquared=square(sub(cast(x,"float32"),reshape(xMean,keepDimsShape))),variance=mean(devSquared,axes,keepDims);return{mean:xMean,variance}}var moments=op({moments_});function multiRNNCell_(lstmCells,data2,c,h){let $data=convertToTensor(data2,"data","multiRNNCell"),$c=convertToTensorArray(c,"c","multiRNNCell"),$h=convertToTensorArray(h,"h","multiRNNCell"),input2=$data,newStates=[];for(let i=0;i2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${origRank}`);seed=seed||Math.random();let inputs={logits:origRank===1?reshape($logits,[1,-1]):$logits},attrs={numSamples,seed,normalized},res=ENGINE.runKernel(Multinomial,inputs,attrs);return origRank===1?reshape(res,[res.size]):res}var multinomial=op({multinomial_});function notEqual_(a,b){let $a=convertToTensor(a,"a","notEqual"),$b=convertToTensor(b,"b","notEqual");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(NotEqual,inputs)}var notEqual=op({notEqual_});function zeros(shape,dtype="float32"){if(dtype==="complex64"){let real4=zeros(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeZerosTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function ones2(shape,dtype="float32"){if(dtype==="complex64"){let real4=ones2(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeOnesTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function onesLike_(x){let inputs={x:convertToTensor(x,"x","onesLike")};return ENGINE.runKernel(OnesLike,inputs)}var onesLike=op({onesLike_});function outerProduct_(v1,v2){let $v1=convertToTensor(v1,"v1","outerProduct"),$v2=convertToTensor(v2,"v2","outerProduct");assert($v1.rank===1&&$v2.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${$v1.rank} and ${$v2.rank}.`);let v12D=reshape($v1,[-1,1]),v22D=reshape($v2,[1,-1]);return matMul(v12D,v22D)}var outerProduct=op({outerProduct_});function pad_(x,paddings,constantValue=0){let $x=convertToTensor(x,"x","pad");if($x.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let attrs={paddings,constantValue},inputs={x:$x};return ENGINE.runKernel(PadV2,inputs,attrs)}var pad=op({pad_});function pad1d_(x,paddings,constantValue=0){return assert(paddings.length===2,()=>"Invalid number of paddings. Must be length of 2."),pad(x,[paddings],constantValue)}var pad1d=op({pad1d_});function pad2d_(x,paddings,constantValue=0){return assert(paddings.length===2&&paddings[0].length===2&&paddings[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad2d=op({pad2d_});function pad3d_(x,paddings,constantValue=0){return assert(paddings.length===3&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad3d=op({pad3d_});function pad4d_(x,paddings,constantValue=0){return assert(paddings.length===4&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2&&paddings[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad4d=op({pad4d_});function spaceToBatchND_(x,blockShape,paddings){let $x=convertToTensor(x,"x","spaceToBatchND");assert($x.rank>=1+blockShape.length,()=>`input rank ${$x.rank} should be > than [blockShape] ${blockShape.length}`),assert(paddings.length===blockShape.length,()=>`paddings.shape[0] ${paddings.length} must be equal to [blockShape] ${blockShape.length}`),assert($x.shape.reduce((a,b,i)=>i>0&&i<=blockShape.length?a&&(b+paddings[i-1][0]+paddings[i-1][1])%blockShape[i-1]==0:a,!0),()=>`input spatial dimensions ${$x.shape.slice(1)} with paddings ${paddings.toString()} must be divisible by blockShapes ${blockShape.toString()}`);let inputs={x:$x},attrs={blockShape,paddings};return ENGINE.runKernel(SpaceToBatchND,inputs,attrs)}var spaceToBatchND=op({spaceToBatchND_});function pool_(input2,windowShape,poolingType,pad3,dilations,strides){dilations==null&&(dilations=[1,1]),strides==null&&(strides=1),pad3===0&&(pad3="valid");let $x=convertToTensor(input2,"x","maxPool"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`);let convInfo=computePool2DInfo(x4D.shape,windowShape,strides,dilations,pad3),dilation=[convInfo.dilationHeight,convInfo.dilationWidth],basePadding;pad3==="same"?basePadding=withSpaceToBatchBasePaddings([convInfo.filterHeight,convInfo.filterWidth],dilation):basePadding=[[0,0],[0,0]];let isDilationOne=dilation[0]===1&&dilation[1]===1,[adjustedPadding,adjustedCrops]=requiredSpaceToBatchPaddings([convInfo.inHeight,convInfo.inWidth],dilation,basePadding),convertedPad=isDilationOne?pad3:"valid",convertedX=isDilationOne?x4D:spaceToBatchND(x4D,dilation,adjustedPadding),y=(poolingType==="avg"?()=>avgPool(convertedX,windowShape,strides,convertedPad):()=>maxPool(convertedX,windowShape,strides,convertedPad))(),res=isDilationOne?y:batchToSpaceND(y,dilation,adjustedCrops);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}function requiredSpaceToBatchPaddings(inputShape,blockShape,basePadding){let padStart=basePadding.map(b=>b[0]),origPadEnd=basePadding.map(b=>b[1]),fullInputShape=inputShape.concat(padStart,origPadEnd),padEndExtra=blockShape.map((b,i)=>(b-fullInputShape[i]%b)%b),padEnd=origPadEnd.map((s,i)=>s+padEndExtra[i]),paddings=blockShape.map((_,i)=>[padStart[i],padEnd[i]]),crops=blockShape.map((_,i)=>[0,padEndExtra[i]]);return[paddings,crops]}function withSpaceToBatchBasePaddings(filterShape,dilation){let padExtraShape=filterShape.map((s,i)=>s+(s-1)*(dilation[i]-1)).map(s=>s-1),padExtraStart=padExtraShape.map(s=>Math.floor(s/2)),padExtraEnd=padExtraShape.map((s,i)=>s-padExtraStart[i]);return padExtraShape.map((_,i)=>[padExtraStart[i],padExtraEnd[i]])}var pool=op({pool_});function pow_(base2,exp4){let $base=convertToTensor(base2,"base","pow"),$exp=convertToTensor(exp4,"exp","pow");[$base,$exp]=makeTypesMatch($base,$exp);let inputs={a:$base,b:$exp};return ENGINE.runKernel(Pow,inputs)}var pow=op({pow_});function prelu_(x,alpha){let $x=convertToTensor(x,"x","prelu"),$alpha=convertToTensor(alpha,"alpha","prelu"),inputs={x:$x,alpha:$alpha};return ENGINE.runKernel(Prelu,inputs)}var prelu=op({prelu_});function prod_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","prod");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Prod,inputs,attrs)}var prod=op({prod_});function rand_(shape,randFunction,dtype){let size=sizeFromShape(shape),values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);for(let i=0;i=1||s===0);let mul2=Math.sqrt(-2*Math.log(s)/s);resultX=this.mean+this.stdDev*v1*mul2,resultY=this.mean+this.stdDev*v2*mul2,(!this.truncated||this.isValidTruncated(resultX))&&(isValid=!0)}return(!this.truncated||this.isValidTruncated(resultY))&&(this.nextVal=this.convertValue(resultY)),this.convertValue(resultX)}convertValue(value){return this.dtype==null||this.dtype==="float32"?value:Math.round(value)}isValidTruncated(value){return value<=this.upper&&value>=this.lower}},RandGamma=class{constructor(alpha,beta,dtype,seed){this.alpha=alpha,this.beta=1/beta,this.dtype=dtype;let seedValue=seed||Math.random();this.randu=seedrandom.alea(seedValue.toString()),this.randn=new MPRandGauss(0,1,dtype,!1,this.randu()),alpha<1?this.d=alpha+2/3:this.d=alpha-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let x2,v0,v1,x,u,v;for(;;){do x=this.randn.nextValue(),v=1+this.c*x;while(v<=0);if(v*=v*v,x2=x*x,v0=1-.331*x2*x2,v1=.5*x2+this.d*(1-v+Math.log(v)),u=this.randu(),uthis.dtype==null||this.dtype==="float32",this.min=min6,this.range=max6-min6,this.dtype=dtype,seed==null&&(seed=Math.random()),typeof seed=="number"&&(seed=seed.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${min6} - ${max6} <= 1 and dtype is not float`);this.random=seedrandom.alea(seed)}convertValue(value){return this.canReturnFloat()?value:Math.round(value)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function randomGamma_(shape,alpha,beta=1,dtype="float32",seed){if(beta==null&&(beta=1),dtype==null&&(dtype="float32"),dtype!=="float32"&&dtype!=="int32")throw new Error(`Unsupported data type ${dtype}`);let rgamma=new RandGamma(alpha,beta,dtype,seed),res=buffer(shape,dtype);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${$x.rank}.`),reverse($x,0)}var reverse1d=op({reverse1d_});function reverse2d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse2d=op({reverse2d_});function reverse3d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse3d=op({reverse3d_});function reverse4d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse4d=op({reverse4d_});function round_(x){let inputs={x:convertToTensor(x,"x","round")};return ENGINE.runKernel(Round,inputs)}var round2=op({round_});function rsqrt_(x){let inputs={x:convertToTensor(x,"x","rsqrt")};return ENGINE.runKernel(Rsqrt,inputs)}var rsqrt=op({rsqrt_});function scalar(value,dtype){if((isTypedArray(value)&&dtype!=="string"||Array.isArray(value))&&dtype!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(dtype==="string"&&isTypedArray(value)&&!(value instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return makeTensor(value,[],[],dtype)}function selu_(x){let inputs={x:convertToTensor(x,"x","selu")};return ENGINE.runKernel(Selu,inputs)}var selu=op({selu_});function separableConv2d_(x,depthwiseFilter,pointwiseFilter,strides,pad3,dilation=[1,1],dataFormat="NHWC"){let $x=convertToTensor(x,"x","separableConv2d"),$depthwiseFilter=convertToTensor(depthwiseFilter,"depthwiseFilter","separableConv2d"),$pointwiseFilter=convertToTensor(pointwiseFilter,"pointwiseFilter","separableConv2d"),x4D=$x,reshapedTo4D=!1;if($x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),dataFormat==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");assert(x4D.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($depthwiseFilter.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[0]}.`),assert($pointwiseFilter.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[1]}.`);let inChannels=$depthwiseFilter.shape[2],channelMultiplier=$depthwiseFilter.shape[3];assert($pointwiseFilter.shape[2]===inChannels*channelMultiplier,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${inChannels*channelMultiplier}, but got ${$pointwiseFilter.shape[2]}.`);let depthwise=depthwiseConv2d(x4D,$depthwiseFilter,strides,pad3,dataFormat,dilation),res=conv2d(depthwise,$pointwiseFilter,1,"valid",dataFormat);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var separableConv2d=op({separableConv2d_});async function setdiff1dAsync_(x,y){let $x=convertToTensor(x,"x","setdiff1d"),$y=convertToTensor(y,"y","setdiff1d");assert($x.dtype===$y.dtype,()=>`x and y should have the same dtype, but got x (${$x.dtype}) and y (${$y.dtype}).`),assert($x.rank===1,()=>`x should be 1D tensor, but got x (${$x.shape}).`),assert($y.rank===1,()=>`y should be 1D tensor, but got y (${$y.shape}).`);let xVals=await $x.data(),yVals=await $y.data(),ySet=new Set(yVals),outputSize=0;for(let i=0;i`slice1d expects a rank-1 tensor, but got a rank-${$x.rank} tensor`),slice($x,[begin],[size])}var slice1d=op({slice1d_});function slice2d_(x,begin,size){let $x=convertToTensor(x,"x","slice2d");return assert($x.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice2d=op({slice2d_});function slice3d_(x,begin,size){let $x=convertToTensor(x,"x","slice3d");return assert($x.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice3d=op({slice3d_});function slice4d_(x,begin,size){let $x=convertToTensor(x,"x","slice4d");return assert($x.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice4d=op({slice4d_});function softmax_(logits,dim=-1){let $logits=convertToTensor(logits,"logits","softmax","float32");if(dim===-1&&(dim=$logits.rank-1),dim!==$logits.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and dim was ${dim}`);let inputs={logits:$logits},attrs={dim};return ENGINE.runKernel(Softmax,inputs,attrs)}var softmax=op({softmax_});function fft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(FFT,inputs)}var fft=op({fft_});function ifft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(IFFT,inputs)}var ifft=op({ifft_});function irfft_(input2){let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,ret;if(innerDimensionSize<=2){let complexInput=reshape(input2,[batch,innerDimensionSize]);ret=ifft(complexInput)}else{let outputShape=[batch,2*(innerDimensionSize-1)],realInput=reshape(real(input2),[batch,innerDimensionSize]),imagInput=reshape(imag(input2),[batch,innerDimensionSize]),realConjugate=reverse(slice(realInput,[0,1],[batch,innerDimensionSize-2]),1),imagConjugate=mul(reverse(slice(imagInput,[0,1],[batch,innerDimensionSize-2]),1),scalar(-1)),r=concat([realInput,realConjugate],1),i=concat([imagInput,imagConjugate],1),complexInput=reshape(complex(r,i),[outputShape[0],outputShape[1]]);ret=ifft(complexInput)}if(ret=real(ret),input2.rank===3&&input2.shape[0]!==0){let temp=ret,batch2=input2.shape[0];ret=reshape(ret,[batch2,ret.shape[0]/batch2,ret.shape[1]]),temp.dispose()}return ret}var irfft=op({irfft_});function split_(x,numOrSizeSplits,axis=0){let inputs={x:convertToTensor(x,"x","split")},attr={numOrSizeSplits,axis};return ENGINE.runKernel(SplitV,inputs,attr)}var split=op({split_});function rfft_(input2,fftLength){assert(input2.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${input2.dtype}`);let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,adjustedInput;if(fftLength!=null&&fftLength0),size=input2.shape.map(v=>v);size[input2.shape.length-1]=fftLength,adjustedInput=slice(input2,begin,size),innerDimensionSize=fftLength}else if(fftLength!=null&&fftLength>innerDimensionSize){let zerosShape=input2.shape.map(v=>v);zerosShape[input2.shape.length-1]=fftLength-innerDimensionSize,adjustedInput=concat([input2,zeros(zerosShape)],input2.shape.length-1),innerDimensionSize=fftLength}else adjustedInput=input2;let zerosInput=zerosLike(adjustedInput),complexInput=reshape(complex(adjustedInput,zerosInput),[batch,innerDimensionSize]),ret=fft(complexInput),half=Math.floor(innerDimensionSize/2)+1,realValues=real(ret),imagValues=imag(ret),realComplexConjugate=split(realValues,[half,innerDimensionSize-half],realValues.shape.length-1),imagComplexConjugate=split(imagValues,[half,innerDimensionSize-half],imagValues.shape.length-1),outputShape=adjustedInput.shape.slice();return outputShape[adjustedInput.shape.length-1]=half,reshape(complex(realComplexConjugate[0],imagComplexConjugate[0]),outputShape)}var rfft=op({rfft_});function sqrt_(x){let inputs={x:convertToTensor(x,"x","sqrt")};return ENGINE.runKernel(Sqrt,inputs)}var sqrt=op({sqrt_});function squaredDifference_(a,b){let $a=convertToTensor(a,"a","squaredDifference"),$b=convertToTensor(b,"b","squaredDifference");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b},attrs={};return ENGINE.runKernel(SquaredDifference,inputs,attrs)}var squaredDifference=op({squaredDifference_});function squeeze_(x,axis){let $x=convertToTensor(x,"x","squeeze");return reshape($x,squeezeShape($x.shape,axis).newShape)}var squeeze=op({squeeze_});function stack_(tensors,axis=0){let $tensors=convertToTensorArray(tensors,"tensors","stack","string_or_numeric");assert($tensors.length>=1,()=>"Pass at least one tensor to tf.stack"),$tensors.length>0&&assert(axis<=$tensors[0].rank,()=>"Axis must be <= rank of the tensor");let inputs=$tensors,attrs={axis};return ENGINE.runKernel(Pack,inputs,attrs)}var stack=op({stack_});function step_(x,alpha=0){let inputs={x:convertToTensor(x,"x","step")},attrs={alpha};return ENGINE.runKernel(Step,inputs,attrs)}var step=op({step_});function stridedSlice_(x,begin,end,strides,beginMask=0,endMask=0,ellipsisMask=0,newAxisMask=0,shrinkAxisMask=0){let inputs={x:convertToTensor(x,"x","stridedSlice")},attrs={begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask};return ENGINE.runKernel(StridedSlice,inputs,attrs)}var stridedSlice=op({stridedSlice_});function tan_(x){let inputs={x:convertToTensor(x,"x","tan")};return ENGINE.runKernel(Tan,inputs)}var tan=op({tan_});function tensor1d(values,dtype){assertNonNull(values);let inferredShape=inferShape(values,dtype);if(inferredShape.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return makeTensor(values,null,inferredShape,dtype)}function tensor2d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==2&&inferredShape.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return makeTensor(values,shape,inferredShape,dtype)}function tensor4d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==4&&inferredShape.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor5d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==5&&inferredShape.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor6d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==6&&inferredShape.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return shape=shape||inferredShape,makeTensor(values,shape,inferredShape,dtype)}function topk_(x,k=1,sorted=!0){let $x=convertToTensor(x,"x","topk");if($x.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let lastDim=$x.shape[$x.shape.length-1];if(k>lastDim)throw new Error(`'k' passed to topk() must be <= the last dimension (${lastDim}) but got ${k}`);let inputs={x:$x},attrs={k,sorted},[values,indices]=ENGINE.runKernel(TopK,inputs,attrs);return{values,indices}}var topk=op({topk_});function truncatedNormal_(shape,mean4=0,stdDev=1,dtype,seed){if(dtype!=null&&dtype==="bool")throw new Error("Unsupported data type $ { dtype }");let randGauss=new MPRandGauss(mean4,stdDev,dtype,!0,seed),res=buffer(shape,dtype);for(let i=0;i0,()=>"The input tensor must be at least 1D");let inputs={x:$x},attrs={axis},[values,indices]=ENGINE.runKernel(Unique,inputs,attrs);return{values,indices}}var unique=op({unique_});function unsortedSegmentSum_(x,segmentIds,numSegments){let $x=convertToTensor(x,"x","unsortedSegmentSum"),$segmentIds=convertToTensor(segmentIds,"segmentIds","unsortedSegmentSum","int32");assert(isInt(numSegments),()=>"numSegments must be of dtype int");let inputs={x:$x,segmentIds:$segmentIds},attrs={numSegments};return ENGINE.runKernel(UnsortedSegmentSum,inputs,attrs)}var unsortedSegmentSum=op({unsortedSegmentSum_});function unstack_(x,axis=0){let $x=convertToTensor(x,"x","unstack","string_or_numeric");assert(axis>=-$x.shape.length&&axis<$x.shape.length,()=>`Axis = ${axis} is not in [-${$x.shape.length}, ${$x.shape.length})`);let inputs={value:$x},attrs={axis};return ENGINE.runKernel(Unpack,inputs,attrs)}var unstack=op({unstack_});function variable(initialValue,trainable=!0,name,dtype){return ENGINE.makeVariable(initialValue,trainable,name,dtype)}function whereImpl(condShape,condVals){let indices=[];for(let i=0;i0,()=>"mask cannot be scalar"),assertShapesMatch(tensorShape.slice(axisFrom,axisFrom+maskDim),$mask.shape,"mask's shape must match the first K dimensions of tensor's shape,");let leadingSize=1;for(let i=axisFrom;i"Shape mismatch in v and x");let one=scalar(1),oneMinusDecay=sub(one,$decay),update=mul(sub($x,$v),oneMinusDecay);if(zeroDebias){assert(step4!=null,()=>"When using zeroDebias: true, step is required.");let $step=convertToTensor(step4,"step","movingAverage");update=div(update,sub(one,pow($decay,$step)))}return add2($v,update)}var movingAverage=op({movingAverage_});function scatterND_(indices,updates,shape){let $indices=convertToTensor(indices,"indices","scatterND","int32"),$updates=convertToTensor(updates,"updates","scatterND");validateInput($updates,$indices,shape);let inputs={indices:$indices,updates:$updates},attrs={shape};return ENGINE.runKernel(ScatterNd,inputs,attrs)}var scatterND=op({scatterND_});function validateInput2(sparseIndices,sparseValues,outputShape,defaultValues){if(sparseIndices.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${sparseIndices.dtype}.`);if(sparseIndices.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${sparseIndices.shape}.`);let numElems=sparseIndices.rank>0?sparseIndices.shape[0]:1,numDims=sparseIndices.rank>1?sparseIndices.shape[1]:1;if(outputShape.length!==numDims)throw new Error(`outputShape has incorrect number of elements:, ${outputShape.length}, should be: ${numDims}.`);let numValues=sparseValues.size;if(!(sparseValues.rank===0||sparseValues.rank===1&&numValues===numElems))throw new Error(`sparseValues has incorrect shape ${sparseValues.shape}, should be [] or [${numElems}]`);if(sparseValues.dtype!==defaultValues.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function sparseToDense_(sparseIndices,sparseValues,outputShape,defaultValue=0){let $sparseIndices=convertToTensor(sparseIndices,"sparseIndices","sparseToDense","int32"),$sparseValues=convertToTensor(sparseValues,"sparseValues","sparseToDense"),$defaultValue=convertToTensor(defaultValue,"defaultValue","sparseToDense",$sparseValues.dtype);validateInput2($sparseIndices,$sparseValues,outputShape,$defaultValue);let inputs={sparseIndices:$sparseIndices,sparseValues:$sparseValues,defaultValue:$defaultValue},attrs={outputShape};return ENGINE.runKernel(SparseToDense,inputs,attrs)}var sparseToDense=op({sparseToDense_});function gatherND_(x,indices){let $indices=convertToTensor(indices,"indices","gatherND","int32"),inputs={params:convertToTensor(x,"x","gatherND"),indices:$indices};return ENGINE.runKernel(GatherNd,inputs)}var gatherND=op({gatherND_});function getNoiseShape(x,noiseShape){if(noiseShape==null)return x.shape.slice();if(arraysEqual(x.shape,noiseShape))return noiseShape;if(x.shape.length===noiseShape.length){let newDimension=[];for(let i=0;i`x has to be a floating point tensor since it's going to be scaled, but got a ${$x.dtype} tensor instead.`),assert(rate>=0&&rate<1,()=>`rate must be a float in the range [0, 1), but got ${rate}.`),rate===0)return x instanceof Tensor?$x.clone():$x;let $noiseShape=getNoiseShape($x,noiseShape),keepProb=1-rate,multiplier=div(floor(add2(randomUniform($noiseShape,0,1,"float32",seed),keepProb)),keepProb);return mul($x,multiplier)}var dropout=op({dropout_});function enclosingPowerOfTwo(value){return Math.floor(Math.pow(2,Math.ceil(Math.log(value)/Math.log(2))))}function cosineWindow(windowLength,a,b){let even=1-windowLength%2,newValues=new Float32Array(windowLength);for(let i=0;i1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${$predictions.rank}`),assert($predictions.rank-1===$targets.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${$predictions.rank} and targets rank ${$targets.rank}`),assertShapesMatch($predictions.shape.slice(0,$predictions.shape.length-1),$targets.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let lastDim=$predictions.shape[$predictions.shape.length-1];assert(k>0&&k<=lastDim,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${lastDim}), but got ${k}`);let predictionsVals=await $predictions.data(),targetsVals=await $targets.data(),[batch,size]=[predictionsVals.length/lastDim,lastDim],precision3=getTypedArrayFromDType("bool",batch);for(let b=0;bb2.value-a.value),precision3[b]=0;for(let i=0;iconv2d2,depthwiseConv2d:()=>depthwiseConv2d2,matMul:()=>matMul2});function conv2DBackpropFilter_(x,dy,filterShape,strides,pad3,dataFormat="NHWC",dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]])),assert(x4D.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${x4D.shape}.`),assert(dy4D.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${dy4D.shape}.`),assert(filterShape.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${filterShape}.`);let inDepth=dataFormat==="NHWC"?x4D.shape[3]:x4D.shape[1],outDepth=dataFormat==="NHWC"?dy4D.shape[3]:dy4D.shape[1];assert(inDepth===filterShape[2],()=>`Error in conv2dDerFilter: depth of input ${inDepth}) must match input depth in filter (${filterShape[2]}.`),assert(outDepth===filterShape[3],()=>`Error in conv2dDerFilter: depth of dy (${outDepth}) must match output depth for filter (${filterShape[3]}).`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dataFormat,dimRoundingMode,filterShape};return ENGINE.runKernel(Conv2DBackpropFilter,inputs,attrs)}var conv2DBackpropFilter=op({conv2DBackpropFilter_});function getFusedDyActivation(dy,y,activation2){if(activation2==null||activation2==="linear")return dy;if(activation2==="relu")return mul(dy,step(y));throw new Error(`Cannot compute gradient for fused activation ${activation2}.`)}function getFusedBiasGradient(bias,dyActivation){let res=dyActivation,reduceAxes=getReductionAxes(bias.shape,dyActivation.shape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,bias.shape)}function applyActivation(x,activation2,preluActivationWeights,leakyreluAlpha){if(activation2==="linear")return x;if(activation2==="relu")return relu(x);if(activation2==="elu")return elu(x);if(activation2==="relu6")return relu6(x);if(activation2==="prelu")return prelu(x,preluActivationWeights);if(activation2==="leakyrelu")return leakyRelu(x,leakyreluAlpha);throw new Error(`Unknown fused activation ${activation2}.`)}var shouldFuse=(gradientDepth,activation2)=>!(gradientDepth>0)||activation2==="linear";function fusedConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(activation2=activation2||"linear",shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=conv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","conv2d"),$filter=convertToTensor(filter,"filter","conv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${$filter.rank}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in conv2d: depth of input (${x4D.shape[3]}) must match input depth for filter ${$filter.shape[2]}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),assert(dataFormat==="NHWC",()=>`Error in conv2d: got dataFormat of ${dataFormat} but only NHWC is currently supported.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused conv2d"));let grad2=(dy,saved)=>{let[$filter2,x4D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2);assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`);let xDer=conv2DBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3),filterDer=conv2DBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3),der=[xDer,filterDer];if($bias2!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);der.push(biasDer)}return der},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var conv2d2=op({fusedConv2d_});function depthwiseConv2dNativeBackpropFilter_(x,dy,filterShape,strides,pad3,dilations=[1,1],dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dimRoundingMode,dilations,filterShape};return ENGINE.runKernel(DepthwiseConv2dNativeBackpropFilter,inputs,attrs)}var depthwiseConv2dNativeBackpropFilter=op({depthwiseConv2dNativeBackpropFilter_});function depthwiseConv2dNativeBackpropInput_(xShape,dy,filter,strides,pad3,dilations=[1,1],dimRoundingMode){let dy4D=dy,reshapedTo4D=!1;dy.rank===3&&(reshapedTo4D=!0,dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={dy:dy4D,filter},attrs={strides,pad:pad3,dimRoundingMode,dilations,inputShape:xShape},res=ENGINE.runKernel(DepthwiseConv2dNativeBackpropInput,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var depthwiseConv2dNativeBackpropInput=op({depthwiseConv2dNativeBackpropInput_});function fusedDepthwiseConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=depthwiseConv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","depthwiseConv2d"),$filter=convertToTensor(filter,"filter","depthwiseConv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${$filter.rank}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${x4D.shape[3]}) must match the inChannels dimension in filter ${$filter.shape[2]}.`),dilations==null&&(dilations=[1,1]),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode,!0),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused depthwiseConv2d"));let grad2=(dy,saved)=>{assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${dilations}'`);let[$filter2,x4D2,y,bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2),xDer=depthwiseConv2dNativeBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3,dilations,dimRoundingMode),filterDer=depthwiseConv2dNativeBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3,dilations,dimRoundingMode);if(bias2!=null){let biasDer=getFusedBiasGradient($bias,dyActivation);return[xDer,filterDer,biasDer]}return[xDer,filterDer]},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var depthwiseConv2d2=op({fusedDepthwiseConv2d_});function fusedMatMul_({a,b,transposeA=!1,transposeB=!1,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=matMul(a,b,transposeA,transposeB);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $a=convertToTensor(a,"a","fused matMul"),$b=convertToTensor(b,"b","fused matMul");[$a,$b]=makeTypesMatch($a,$b);let innerShapeA=transposeA?$a.shape[$a.rank-2]:$a.shape[$a.rank-1],innerShapeB=transposeB?$b.shape[$b.rank-1]:$b.shape[$b.rank-2],outerShapeA=transposeA?$a.shape[$a.rank-1]:$a.shape[$a.rank-2],outerShapeB=transposeB?$b.shape[$b.rank-2]:$b.shape[$b.rank-1],outerDimsA=$a.shape.slice(0,-2),outerDimsB=$b.shape.slice(0,-2),batchDimA=sizeFromShape(outerDimsA),batchDimB=sizeFromShape(outerDimsB);assert($a.rank>=2&&$b.rank>=2&&$a.rank===$b.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${$a.rank} and ${$b.rank}.`),assert(arraysEqual(outerDimsA,outerDimsB),()=>`Error in fused matMul: outer dimensions (${outerDimsA}) and (${outerDimsB}) of Tensors with shapes ${$a.shape} and ${$b.shape} must match.`),assert(innerShapeA===innerShapeB,()=>`Error in fused matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${$a.shape} and ${$b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let outShape=$a.shape.slice(0,-2).concat([outerShapeA,outerShapeB]),a3D=transposeA?reshape($a,[batchDimA,innerShapeA,outerShapeA]):reshape($a,[batchDimA,outerShapeA,innerShapeA]),b3D=transposeB?reshape($b,[batchDimB,outerShapeB,innerShapeB]):reshape($b,[batchDimB,innerShapeB,outerShapeB]),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused matMul"),[$bias]=makeTypesMatch($bias,$a),assertAndGetBroadcastShape(outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused matMul"));let grad2=(dy,saved)=>{let[a3D2,b3D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(reshape(dy,y.shape),y,activation2),aDer,bDer;if(!transposeA&&!transposeB?(aDer=matMul(dyActivation,b3D2,!1,!0),bDer=matMul(a3D2,dyActivation,!0,!1)):!transposeA&&transposeB?(aDer=matMul(dyActivation,b3D2,!1,!1),bDer=matMul(dyActivation,a3D2,!0,!1)):transposeA&&!transposeB?(aDer=matMul(b3D2,dyActivation,!1,!0),bDer=matMul(a3D2,dyActivation,!1,!1)):(aDer=matMul(b3D2,dyActivation,!0,!0),bDer=matMul(dyActivation,a3D2,!0,!0)),bias!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);return[aDer,bDer,biasDer]}else return[aDer,bDer]},inputs={a:a3D,b:b3D,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={transposeA,transposeB,activation:activation2,leakyreluAlpha};return bias==null?customGrad((a3D2,b3D2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D):customGrad((a3D2,b3D2,$bias2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res,$bias2]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D,$bias)}var matMul2=op({fusedMatMul_});function hammingWindow_(windowLength){return cosineWindow(windowLength,.54,.46)}var hammingWindow=op({hammingWindow_});function hannWindow_(windowLength){return cosineWindow(windowLength,.5,.5)}var hannWindow=op({hannWindow_});function frame_(signal2,frameLength,frameStep,padEnd=!1,padValue=0){let start=0,output=[];for(;start+frameLength<=signal2.size;)output.push(slice(signal2,start,frameLength)),start+=frameStep;if(padEnd)for(;start`Error in cropAndResize: image must be rank 4,but got rank ${$image.rank}.`),assert($boxes.rank===2&&$boxes.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${numBoxes},4] but had shape ${$boxes.shape}.`),assert($boxInd.rank===1&&$boxInd.shape[0]===numBoxes,()=>`Error in cropAndResize: boxInd must be have size [${numBoxes}] but had shape ${$boxes.shape}.`),assert(cropSize.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${cropSize.length}.`),assert(cropSize[0]>=1&&cropSize[1]>=1,()=>`cropSize must be atleast [1,1], but was ${cropSize}`),assert(method==="bilinear"||method==="nearest",()=>`method must be bilinear or nearest, but was ${method}`);let inputs={image:$image,boxes:$boxes,boxInd:$boxInd},attrs={method,extrapolationValue,cropSize};return ENGINE.runKernel(CropAndResize,inputs,attrs)}var cropAndResize=op({cropAndResize_});function flipLeftRight_(image3){let $image=convertToTensor(image3,"image","flipLeftRight","float32");assert($image.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image};return ENGINE.runKernel(FlipLeftRight,inputs,{})}var flipLeftRight=op({flipLeftRight_});function rotateWithOffset_(image3,radians,fillValue=0,center=.5){let $image=convertToTensor(image3,"image","rotateWithOffset","float32");assert($image.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image},attrs={radians,fillValue,center};return ENGINE.runKernel(RotateWithOffset,inputs,attrs)}var rotateWithOffset=op({rotateWithOffset_});function nonMaxSuppSanityCheck(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){iouThreshold==null&&(iouThreshold=.5),scoreThreshold==null&&(scoreThreshold=Number.NEGATIVE_INFINITY),softNmsSigma==null&&(softNmsSigma=0);let numBoxes=boxes.shape[0];return maxOutputSize=Math.min(maxOutputSize,numBoxes),assert(0<=iouThreshold&&iouThreshold<=1,()=>`iouThreshold must be in [0, 1], but was '${iouThreshold}'`),assert(boxes.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${boxes.rank}'`),assert(boxes.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${boxes.shape[1]}`),assert(scores.rank===1,()=>"scores must be a 1D tensor"),assert(scores.shape[0]===numBoxes,()=>`scores has incompatible shape with boxes. Expected ${numBoxes}, but was ${scores.shape[0]}`),assert(0<=softNmsSigma&&softNmsSigma<=1,()=>`softNmsSigma must be in [0, 1], but was '${softNmsSigma}'`),{maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}function nonMaxSuppression_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let attrs={maxOutputSize,iouThreshold,scoreThreshold};return ENGINE.runKernel(NonMaxSuppressionV3,{boxes:$boxes,scores:$scores},attrs)}var nonMaxSuppression=op({nonMaxSuppression_});function binaryInsert(arr,element,comparator){let index=binarySearch(arr,element,comparator),insertionPoint=index<0?-(index+1):index;arr.splice(insertionPoint,0,element)}function binarySearch(arr,target,comparator){return binarySearch_(arr,target,comparator||defaultComparator)}function defaultComparator(a,b){return a>b?1:a>>1);let compareResult=comparator(target,arr[middle]);compareResult>0?left=middle+1:(right=middle,found=!compareResult)}return found?left:-left-1}function nonMaxSuppressionV3Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0)}function nonMaxSuppressionV4Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0,!1,padToMaxOutputSize,!0)}function nonMaxSuppressionV5Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,!0)}function nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,returnScoresTensor=!1,padToMaxOutputSize=!1,returnValidOutputs=!1){let candidates=[];for(let i=0;iscoreThreshold&&candidates.push({score:scores[i],boxIndex:i,suppressBeginIndex:0});candidates.sort(ascendingComparator);let scale2=softNmsSigma>0?-.5/softNmsSigma:0,selectedIndices=[],selectedScores=[];for(;selectedIndices.length0;){let candidate=candidates.pop(),{score:originalScore,boxIndex,suppressBeginIndex}=candidate;if(originalScore=suppressBeginIndex;--j){let iou=intersectionOverUnion(boxes,boxIndex,selectedIndices[j]);if(iou>=iouThreshold){ignoreCandidate=!0;break}if(candidate.score=candidate.score*suppressWeight(iouThreshold,scale2,iou),candidate.score<=scoreThreshold)break}candidate.suppressBeginIndex=selectedIndices.length,ignoreCandidate||(candidate.score===originalScore?(selectedIndices.push(boxIndex),selectedScores.push(candidate.score)):candidate.score>scoreThreshold&&binaryInsert(candidates,candidate,ascendingComparator))}let validOutputs=selectedIndices.length,elemsToPad=maxOutputSize-validOutputs;padToMaxOutputSize&&elemsToPad>0&&(selectedIndices.push(...new Array(elemsToPad).fill(0)),selectedScores.push(...new Array(elemsToPad).fill(0)));let result={selectedIndices};return returnScoresTensor&&(result.selectedScores=selectedScores),returnValidOutputs&&(result.validOutputs=validOutputs),result}function intersectionOverUnion(boxes,i,j){let iCoord=boxes.subarray(i*4,i*4+4),jCoord=boxes.subarray(j*4,j*4+4),yminI=Math.min(iCoord[0],iCoord[2]),xminI=Math.min(iCoord[1],iCoord[3]),ymaxI=Math.max(iCoord[0],iCoord[2]),xmaxI=Math.max(iCoord[1],iCoord[3]),yminJ=Math.min(jCoord[0],jCoord[2]),xminJ=Math.min(jCoord[1],jCoord[3]),ymaxJ=Math.max(jCoord[0],jCoord[2]),xmaxJ=Math.max(jCoord[1],jCoord[3]),areaI=(ymaxI-yminI)*(xmaxI-xminI),areaJ=(ymaxJ-yminJ)*(xmaxJ-xminJ);if(areaI<=0||areaJ<=0)return 0;let intersectionYmin=Math.max(yminI,yminJ),intersectionXmin=Math.max(xminI,xminJ),intersectionYmax=Math.min(ymaxI,ymaxJ),intersectionXmax=Math.min(xmaxI,xmaxJ),intersectionArea=Math.max(intersectionYmax-intersectionYmin,0)*Math.max(intersectionXmax-intersectionXmin,0);return intersectionArea/(areaI+areaJ-intersectionArea)}function suppressWeight(iouThreshold,scale2,iou){let weight=Math.exp(scale2*iou*iou);return iou<=iouThreshold?weight:0}function ascendingComparator(c1,c2){return c1.score-c2.score||c1.score===c2.score&&c2.boxIndex-c1.boxIndex}async function nonMaxSuppressionAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices}=nonMaxSuppressionV3Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),tensor1d(selectedIndices,"int32")}var nonMaxSuppressionAsync=nonMaxSuppressionAsync_;function nonMaxSuppressionWithScore_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma},result=ENGINE.runKernel(NonMaxSuppressionV5,inputs,attrs);return{selectedIndices:result[0],selectedScores:result[1]}}var nonMaxSuppressionWithScore=op({nonMaxSuppressionWithScore_});async function nonMaxSuppressionWithScoreAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices,selectedScores}=nonMaxSuppressionV5Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),selectedScores:tensor1d(selectedScores)}}var nonMaxSuppressionWithScoreAsync=nonMaxSuppressionWithScoreAsync_;function nonMaxSuppressionPadded_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize:$maxOutputSize,iouThreshold:$iouThreshold,scoreThreshold:$scoreThreshold,padToMaxOutputSize},result=ENGINE.runKernel(NonMaxSuppressionV4,inputs,attrs);return{selectedIndices:result[0],validOutputs:result[1]}}var nonMaxSuppressionPadded=op({nonMaxSuppressionPadded_});async function nonMaxSuppressionPaddedAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,[boxesVals,scoresVals]=await Promise.all([$boxes.data(),$scores.data()]),{selectedIndices,validOutputs}=nonMaxSuppressionV4Impl(boxesVals,scoresVals,$maxOutputSize,$iouThreshold,$scoreThreshold,padToMaxOutputSize);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),validOutputs:scalar(validOutputs,"int32")}}var nonMaxSuppressionPaddedAsync=nonMaxSuppressionPaddedAsync_;function resizeBilinear_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeBilinear");assert($images.rank===3||$images.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${size}.`),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeBilinear,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeBilinear=op({resizeBilinear_});function resizeNearestNeighbor_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeNearestNeighbor");assert($images.rank===3||$images.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${size}.`),assert($images.dtype==="float32"||$images.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeNearestNeighbor,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeNearestNeighbor=op({resizeNearestNeighbor_});function bandPart_(a,numLower,numUpper){assert(numLower%1==0,()=>`bandPart(): numLower must be an integer, got ${numLower}.`),assert(numUpper%1==0,()=>`bandPart(): numUpper must be an integer, got ${numUpper}.`);let $a=convertToTensor(a,"a","bandPart");assert($a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${$a.rank}.`);let shape=$a.shape,[M,N]=$a.shape.slice(-2);if(!(numLower<=M))throw new Error(`bandPart(): numLower (${numLower}) must not be greater than the number of rows (${M}).`);if(!(numUpper<=N))throw new Error(`bandPart(): numUpper (${numUpper}) must not be greater than the number of columns (${N}).`);numLower<0&&(numLower=M),numUpper<0&&(numUpper=N);let i=reshape(range(0,M,1,"int32"),[-1,1]),j=range(0,N,1,"int32"),ij=sub(i,j),inBand=logicalAnd(lessEqual(ij,scalar(+numLower,"int32")),greaterEqual(ij,scalar(-numUpper,"int32"))),zero=zeros([M,N],$a.dtype);return reshape(stack(unstack(reshape($a,[-1,M,N])).map(mat=>where(inBand,mat,zero))),shape)}var bandPart=op({bandPart_});function gramSchmidt_(xs){let inputIsTensor2D;if(Array.isArray(xs)){inputIsTensor2D=!1,assert(xs!=null&&xs.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let dim=xs[0].shape[0];for(let i=1;i`Gram-Schmidt: Non-unique lengths found in the input vectors: (${xs[i].shape[0]} vs. ${dim})`)}else inputIsTensor2D=!0,xs=split(xs,xs.shape[0],0).map(x=>squeeze(x,[0]));assert(xs.length<=xs[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${xs.length}) exceeds number of dimensions (${xs[0].shape[0]}).`);let ys=[],xs1d=xs;for(let i=0;i{let x=xs1d[i];if(i>0)for(let j=0;j=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${x.rank}`),x.rank===2)return qr2d(x,fullMatrices);{let outerDimsProd=x.shape.slice(0,x.shape.length-2).reduce((value,prev)=>value*prev),x2ds=unstack(reshape(x,[outerDimsProd,x.shape[x.shape.length-2],x.shape[x.shape.length-1]]),0),q2ds=[],r2ds=[];x2ds.forEach(x2d=>{let[q2d,r2d]=qr2d(x2d,fullMatrices);q2ds.push(q2d),r2ds.push(r2d)});let q=reshape(stack(q2ds,0),x.shape),r=reshape(stack(r2ds,0),x.shape);return[q,r]}}function qr2d(x,fullMatrices=!1){return ENGINE.tidy(()=>{assert(x.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${x.shape.length}D Tensor.`);let m=x.shape[0],n=x.shape[1],q=eye(m),r=clone(x),one2D=tensor2d([[1]],[1,1]),w=clone(one2D),iters=m>=n?n:m;for(let j=0;j{let rjEnd1=slice(r,[j,j],[m-j,1]),normX=norm(rjEnd1),rjj=slice(r,[j,j],[1,1]),s=where(greater(rjj,0),tensor2d([[-1]]),tensor2d([[1]])),u1=sub(rjj,mul(s,normX)),wPre=div(rjEnd1,u1);wPre.shape[0]===1?w=clone(one2D):w=concat([one2D,slice(wPre,[1,0],[wPre.shape[0]-1,wPre.shape[1]])],0);let tau=neg(div(matMul(s,u1),normX)),rjEndAll=slice(r,[j,0],[m-j,n]),tauTimesW=mul(tau,w),wT=transpose(w);if(j===0)r=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));else{let rTimesTau=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));r=concat([slice(r,[0,0],[j,n]),rTimesTau],0)}let tawTimesWT=transpose(tauTimesW),qAllJEnd=slice(q,[0,j],[m,q.shape[1]-j]);if(j===0)q=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));else{let qTimesTau=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));q=concat([slice(q,[0,0],[m,j]),qTimesTau],1)}return[w,r,q]}),dispose([rTemp,wTemp,qTemp])}return!fullMatrices&&m>n&&(q=slice(q,[0,0],[m,n]),r=slice(r,[0,0],[n,n])),[q,r]})}var qr=op({qr_}),Reduction;(function(Reduction2){Reduction2[Reduction2.NONE=0]="NONE",Reduction2[Reduction2.MEAN=1]="MEAN",Reduction2[Reduction2.SUM=2]="SUM",Reduction2[Reduction2.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Reduction||(Reduction={}));function computeWeightedLoss_(losses4,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $losses=convertToTensor(losses4,"losses","computeWeightedLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","computeWeightedLoss"));let weightedLoss=$weights==null?$losses:mul($losses,$weights);if(reduction2===Reduction.NONE)return weightedLoss;if(reduction2===Reduction.SUM)return sum2(weightedLoss);if(reduction2===Reduction.MEAN){if($weights==null)return mean(weightedLoss);{let broadcastFactor=$losses.size/$weights.size,result=div(sum2(weightedLoss),sum2($weights));return broadcastFactor>1?div(result,scalar(broadcastFactor)):result}}if(reduction2===Reduction.SUM_BY_NONZERO_WEIGHTS){if($weights==null)return div(sum2(weightedLoss),scalar($losses.size));{let broadcastedWeights=mul($weights,ones2($losses.shape)),numNonZeros=cast(sum2(notEqual(broadcastedWeights,scalar(0))),"float32");return div(sum2(weightedLoss),numNonZeros)}}throw Error(`Unknown reduction: ${reduction2}`)}var computeWeightedLoss=op({computeWeightedLoss_});function absoluteDifference_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","absoluteDifference"),$predictions=convertToTensor(predictions,"predictions","absoluteDifference"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","absoluteDifference")),assertShapesMatch($labels.shape,$predictions.shape,"Error in absoluteDifference: ");let losses4=abs(sub($labels,$predictions));return computeWeightedLoss(losses4,$weights,reduction2)}var absoluteDifference=op({absoluteDifference_});function cosineDistance_(labels,predictions,axis,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","cosineDistance"),$predictions=convertToTensor(predictions,"predictions","cosineDistance"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","cosineDistance")),assertShapesMatch($labels.shape,$predictions.shape,"Error in cosineDistance: ");let one=scalar(1),losses4=sub(one,sum2(mul($labels,$predictions),axis,!0));return computeWeightedLoss(losses4,$weights,reduction2)}var cosineDistance=op({cosineDistance_});function hingeLoss_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","hingeLoss"),$predictions=convertToTensor(predictions,"predictions","hingeLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","hingeLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in hingeLoss: ");let one=scalar(1);$labels=sub(mul(scalar(2),$labels),one);let losses4=relu(sub(one,mul($labels,$predictions)));return computeWeightedLoss(losses4,$weights,reduction2)}var hingeLoss=op({hingeLoss_});function huberLoss_(labels,predictions,weights,delta=1,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","huberLoss"),$predictions=convertToTensor(predictions,"predictions","huberLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","huberLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in huberLoss: ");let deltaScalar=scalar(delta),error=abs(sub($predictions,$labels)),quadratic=minimum(error,deltaScalar),linear=sub(error,quadratic),losses4=add2(mul(scalar(.5),square(quadratic)),mul(deltaScalar,linear));return computeWeightedLoss(losses4,$weights,reduction2)}var huberLoss=op({huberLoss_});function logLoss_(labels,predictions,weights,epsilon3=1e-7,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","logLoss"),$predictions=convertToTensor(predictions,"predictions","logLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","logLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in logLoss: ");let one=scalar(1),epsilonScalar=scalar(epsilon3),l13=neg(mul($labels,log2(add2($predictions,epsilonScalar)))),l23=mul(sub(one,$labels),log2(add2(sub(one,$predictions),epsilonScalar))),losses4=sub(l13,l23);return computeWeightedLoss(losses4,$weights,reduction2)}var logLoss=op({logLoss_});function meanSquaredError_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","meanSquaredError"),$predictions=convertToTensor(predictions,"predictions","meanSquaredError"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","meanSquaredError")),assertShapesMatch($labels.shape,$predictions.shape,"Error in meanSquaredError: ");let losses4=squaredDifference($labels,$predictions);return computeWeightedLoss(losses4,$weights,reduction2)}var meanSquaredError=op({meanSquaredError_});function sigmoidCrossEntropyWithLogits_(labels,logits){let $labels=convertToTensor(labels,"labels","sigmoidCrossEntropyWithLogits"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropyWithLogits");assertShapesMatch($labels.shape,$logits.shape,"Error in sigmoidCrossEntropyWithLogits: ");let maxOutput=relu($logits),outputXTarget=mul($logits,$labels),sigmoidOutput=log1p(exp(neg(abs($logits))));return add2(sub(maxOutput,outputXTarget),sigmoidOutput)}function sigmoidCrossEntropy_(multiClassLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $multiClassLabels=convertToTensor(multiClassLabels,"multiClassLabels","sigmoidCrossEntropy"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","sigmoidCrossEntropy")),assertShapesMatch($multiClassLabels.shape,$logits.shape,"Error in sigmoidCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),half=scalar(.5);$multiClassLabels=add2(mul($multiClassLabels,sub(one,labelSmoothingScalar)),mul(half,labelSmoothingScalar))}let losses4=sigmoidCrossEntropyWithLogits_($multiClassLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var sigmoidCrossEntropy=op({sigmoidCrossEntropy_});function softmaxCrossEntropyWithLogits_(labels,logits,dim=-1){if(dim===-1&&(dim=logits.rank-1),dim!==logits.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${logits.rank} and dim was ${dim}`);return customGrad((labels2,logits2,save)=>{let lse=logSumExp(logits2,[dim],!0),logResult=sub(cast(logits2,"float32"),lse);save([labels2,logResult]);let costVector=neg(mul(logResult,labels2));return{value:sum2(costVector,[dim]),gradFunc:(dy,saved)=>{let[labels3,logResult2]=saved,dyShape=expandShapeToKeepDim(dy.shape,[dim]);return[mul(reshape(dy,dyShape),sub(cast(labels3,"float32"),exp(logResult2))),mul(reshape(dy,dyShape),sub(exp(logResult2),cast(labels3,"float32")))]}}})(labels,logits)}function softmaxCrossEntropy_(onehotLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $onehotLabels=convertToTensor(onehotLabels,"onehotLabels","softmaxCrossEntropy"),$logits=convertToTensor(logits,"logits","softmaxCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","softmaxCrossEntropy")),assertShapesMatch($onehotLabels.shape,$logits.shape,"Error in softmaxCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),numClasses=scalar($onehotLabels.shape[1]);$onehotLabels=add2(mul($onehotLabels,sub(one,labelSmoothingScalar)),div(labelSmoothingScalar,numClasses))}let losses4=softmaxCrossEntropyWithLogits_($onehotLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var softmaxCrossEntropy=op({softmaxCrossEntropy_}),spectral={fft,ifft,rfft,irfft},signal={hammingWindow,hannWindow,frame,stft},image={flipLeftRight,resizeNearestNeighbor,resizeBilinear,rotateWithOffset,cropAndResize,nonMaxSuppression,nonMaxSuppressionAsync,nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync},linalg={bandPart,gramSchmidt,qr},losses={absoluteDifference,computeWeightedLoss,cosineDistance,hingeLoss,huberLoss,logLoss,meanSquaredError,sigmoidCrossEntropy,softmaxCrossEntropy},Optimizer=class extends Serializable{minimize(f,returnCost=!1,varList){let{value,grads:grads2}=this.computeGradients(f,varList);if(varList!=null){let gradArray=varList.map(v=>({name:v.name,tensor:grads2[v.name]}));this.applyGradients(gradArray)}else this.applyGradients(grads2);return dispose(grads2),returnCost?value:(value.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(f,varList){return variableGrads(f,varList)}dispose(){this.iterations_!=null&&dispose(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:scalar(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(weightValues){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(weightValues){return this.iterations_=(await weightValues[0].tensor.data())[0],weightValues.slice(1)}};Object.defineProperty(Optimizer,Symbol.hasInstance,{value:instance=>instance.minimize!=null&&instance.computeGradients!=null&&instance.applyGradients!=null});var AdadeltaOptimizer=class extends Optimizer{constructor(learningRate,rho,epsilon3=null){super();this.learningRate=learningRate,this.rho=rho,this.epsilon=epsilon3,this.accumulatedGrads=[],this.accumulatedUpdates=[],epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedGrads[i]==null&&(this.accumulatedGrads[i]={originalName:`${name}/accum_grad`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedUpdates[i]==null&&(this.accumulatedUpdates[i]={originalName:`${name}/accum_var`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable,accumulatedUpdate=this.accumulatedUpdates[i].variable;tidy(()=>{let newAccumulatedGrad=add2(mul(accumulatedGrad,this.rho),mul(square(gradient),1-this.rho)),updates=mul(div(sqrt(add2(accumulatedUpdate,this.epsilon)),sqrt(add2(accumulatedGrad,this.epsilon))),gradient),newAccumulatedUpdate=add2(mul(accumulatedUpdate,this.rho),mul(square(updates),1-this.rho));accumulatedGrad.assign(newAccumulatedGrad),accumulatedUpdate.assign(newAccumulatedUpdate);let newValue=add2(mul(updates,-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(dispose(this.accumulatedGrads.map(v=>v.variable)),dispose(this.accumulatedUpdates.map(v=>v.variable)))}async getWeights(){let variables=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=weightValues.length/2,trainable=!1;this.accumulatedGrads=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedUpdates=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.rho,config3.epsilon)}};AdadeltaOptimizer.className="Adadelta";registerClass(AdadeltaOptimizer);var AdagradOptimizer=class extends Optimizer{constructor(learningRate,initialAccumulatorValue=.1){super();this.learningRate=learningRate,this.initialAccumulatorValue=initialAccumulatorValue,this.accumulatedGrads=[]}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulatedGrads[i]==null){let trainable=!1;this.accumulatedGrads[i]={originalName:`${name}/accumulator`,variable:tidy(()=>fill(value.shape,this.initialAccumulatorValue).variable(trainable))}}let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable;tidy(()=>{let newAccumulatedGrad=add2(accumulatedGrad,square(gradient));accumulatedGrad.assign(newAccumulatedGrad);let newValue=add2(mul(div(gradient,sqrt(add2(newAccumulatedGrad,ENGINE.backend.epsilon()))),-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&dispose(this.accumulatedGrads.map(v=>v.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulatedGrads=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.initialAccumulatorValue)}};AdagradOptimizer.className="Adagrad";registerClass(AdagradOptimizer);var AdamOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],tidy(()=>{this.accBeta1=scalar(beta1).variable(),this.accBeta2=scalar(beta2).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let varNames=Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),oneMinusAccBeta2=sub(1,this.accBeta2);varNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${name}/v`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,secondMoment=this.accumulatedSecondMoment[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),newSecondMoment=add2(mul(secondMoment,this.beta2),mul(square(gradient),1-this.beta2)),biasCorrectedFirstMoment=div(newFirstMoment,oneMinusAccBeta1),biasCorrectedSecondMoment=div(newSecondMoment,oneMinusAccBeta2);firstMoment.assign(newFirstMoment),secondMoment.assign(newSecondMoment);let newValue=add2(mul(div(biasCorrectedFirstMoment,add2(sqrt(biasCorrectedSecondMoment),this.epsilon)),-this.learningRate),value);value.assign(newValue)}),this.accBeta1.assign(mul(this.accBeta1,this.beta1)),this.accBeta2.assign(mul(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedSecondMoment!=null&&dispose(this.accumulatedSecondMoment.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues),tidy(()=>{this.accBeta1.assign(pow(this.beta1,this.iterations_+1)),this.accBeta2.assign(pow(this.beta2,this.iterations_+1))});let variableCount=weightValues.length/2,trainable=!1;this.accumulatedFirstMoment=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedSecondMoment=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.beta1,config3.beta2,config3.epsilon)}};AdamOptimizer.className="Adam";registerClass(AdamOptimizer);var AdamaxOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null,decay=0){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.decay=decay,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],tidy(()=>{this.iteration=scalar(0).variable(),this.accBeta1=scalar(beta1).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let variableNames=Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),lr=div(-this.learningRate,add2(mul(this.iteration,this.decay),1));variableNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:zerosLike(value).variable(trainable)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${name}/v`,variable:zerosLike(value).variable(trainable)});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,weightedInfNorm=this.accumulatedWeightedInfNorm[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),ut0=mul(weightedInfNorm,this.beta2),ut1=abs(gradient),newWeightedInfNorm=maximum(ut0,ut1);firstMoment.assign(newFirstMoment),weightedInfNorm.assign(newWeightedInfNorm);let newValue=add2(mul(div(lr,oneMinusAccBeta1),div(newFirstMoment,add2(newWeightedInfNorm,this.epsilon))),value);value.assign(newValue)}),this.iteration.assign(add2(this.iteration,1)),this.accBeta1.assign(mul(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedWeightedInfNorm!=null&&dispose(this.accumulatedWeightedInfNorm.map(v=>v.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(weightValues){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.beta1,config3.beta2,config3.epsilon,config3.decay)}};AdamaxOptimizer.className="Adamax";registerClass(AdamaxOptimizer);var SGDOptimizer=class extends Optimizer{constructor(learningRate){super();this.learningRate=learningRate,this.setLearningRate(learningRate)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients)).forEach((name,i)=>{let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let value=ENGINE.registeredVariables[name];tidy(()=>{let newValue=add2(mul(this.c,gradient),value);value.assign(newValue)})}),this.incrementIterations()}setLearningRate(learningRate){this.learningRate=learningRate,this.c!=null&&this.c.dispose(),this.c=keep(scalar(-learningRate))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(weightValues){if(weightValues=await this.extractIterations(weightValues),weightValues.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(cls,config3){return new cls(config3.learningRate)}};SGDOptimizer.className="SGD";registerClass(SGDOptimizer);var MomentumOptimizer=class extends SGDOptimizer{constructor(learningRate,momentum,useNesterov=!1){super(learningRate);this.learningRate=learningRate,this.momentum=momentum,this.useNesterov=useNesterov,this.accumulations=[],this.m=scalar(this.momentum)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulations[i]==null){let trainable=!1;this.accumulations[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}}let accumulation=this.accumulations[i].variable,gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];gradient!=null&&tidy(()=>{let newValue,newAccumulation=add2(mul(this.m,accumulation),gradient);this.useNesterov?newValue=add2(mul(this.c,add2(gradient,mul(newAccumulation,this.m))),value):newValue=add2(mul(this.c,newAccumulation),value),accumulation.assign(newAccumulation),value.assign(newValue)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&dispose(this.accumulations.map(v=>v.variable))}setMomentum(momentum){this.momentum=momentum}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulations=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.momentum,config3.useNesterov)}};MomentumOptimizer.className="Momentum";registerClass(MomentumOptimizer);var RMSPropOptimizer=class extends Optimizer{constructor(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){super();if(this.learningRate=learningRate,this.decay=decay,this.momentum=momentum,this.epsilon=epsilon3,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=centered,epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon()),learningRate==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedMeanSquares[i]==null&&(this.accumulatedMeanSquares[i]={originalName:`${name}/rms`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMoments[i]==null&&(this.accumulatedMoments[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMeanGrads[i]==null&&this.centered&&(this.accumulatedMeanGrads[i]={originalName:`${name}/mg`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedMeanSquare=this.accumulatedMeanSquares[i].variable,accumulatedMoments=this.accumulatedMoments[i].variable;tidy(()=>{let newAccumulatedMeanSquare=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay));if(this.centered){let accumulatedMeanGrad=this.accumulatedMeanGrads[i].variable,newAccumulatedMeanGrad=add2(mul(accumulatedMeanGrad,this.decay),mul(gradient,1-this.decay)),gradContribution=div(mul(gradient,this.learningRate),sqrt(sub(newAccumulatedMeanSquare,add2(square(newAccumulatedMeanGrad),this.epsilon)))),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),gradContribution);accumulatedMeanSquare.assign(newAccumulatedMeanSquare),accumulatedMeanGrad.assign(newAccumulatedMeanGrad),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}else{let newAccumulatedMeanSquare2=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay)),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),div(mul(gradient,this.learningRate),sqrt(add2(newAccumulatedMeanSquare2,this.epsilon))));accumulatedMeanSquare.assign(newAccumulatedMeanSquare2),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&dispose(this.accumulatedMeanSquares.map(v=>v.variable)),this.accumulatedMeanGrads!=null&&this.centered&&dispose(this.accumulatedMeanGrads.map(v=>v.variable)),this.accumulatedMoments!=null&&dispose(this.accumulatedMoments.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&variables.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=this.centered?weightValues.length/3:weightValues.length/2,trainable=!1;this.accumulatedMeanSquares=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedMoments=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.centered&&(this.accumulatedMeanGrads=weightValues.slice(variableCount*2,variableCount*3).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.decay,config3.momentum,config3.epsilon,config3.centered)}};RMSPropOptimizer.className="RMSProp";registerClass(RMSPropOptimizer);var OptimizerConstructors=class{static sgd(learningRate){return new SGDOptimizer(learningRate)}static momentum(learningRate,momentum,useNesterov=!1){return new MomentumOptimizer(learningRate,momentum,useNesterov)}static rmsprop(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){return new RMSPropOptimizer(learningRate,decay,momentum,epsilon3,centered)}static adam(learningRate=.001,beta1=.9,beta2=.999,epsilon3=null){return new AdamOptimizer(learningRate,beta1,beta2,epsilon3)}static adadelta(learningRate=.001,rho=.95,epsilon3=null){return new AdadeltaOptimizer(learningRate,rho,epsilon3)}static adamax(learningRate=.002,beta1=.9,beta2=.999,epsilon3=null,decay=0){return new AdamaxOptimizer(learningRate,beta1,beta2,epsilon3,decay)}static adagrad(learningRate,initialAccumulatorValue=.1){return new AdagradOptimizer(learningRate,initialAccumulatorValue)}},train={sgd:OptimizerConstructors.sgd,momentum:OptimizerConstructors.momentum,adadelta:OptimizerConstructors.adadelta,adagrad:OptimizerConstructors.adagrad,rmsprop:OptimizerConstructors.rmsprop,adamax:OptimizerConstructors.adamax,adam:OptimizerConstructors.adam},delayCallback=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:f=>f())();function nextFrame(){return new Promise(resolve=>delayCallback(()=>resolve()))}var backend_util_exports={};__export2(backend_util_exports,{ERF_A1:()=>ERF_A1,ERF_A2:()=>ERF_A2,ERF_A3:()=>ERF_A3,ERF_A4:()=>ERF_A4,ERF_A5:()=>ERF_A5,ERF_P:()=>ERF_P,PARALLELIZE_THRESHOLD:()=>PARALLELIZE_THRESHOLD,SELU_SCALE:()=>SELU_SCALE,SELU_SCALEALPHA:()=>SELU_SCALEALPHA,applyActivation:()=>applyActivation,assertAndGetBroadcastShape:()=>assertAndGetBroadcastShape,assertAxesAreInnerMostDims:()=>assertAxesAreInnerMostDims,assertParamsConsistent:()=>assertParamsConsistent,assignToTypedArray:()=>assignToTypedArray,axesAreInnerMostDims:()=>axesAreInnerMostDims,calculateShapes:()=>calculateShapes,castTensor:()=>castTensor,combineLocations:()=>combineLocations,complexWithEvenIndex:()=>complexWithEvenIndex,complexWithOddIndex:()=>complexWithOddIndex,computeConv2DInfo:()=>computeConv2DInfo,computeConv3DInfo:()=>computeConv3DInfo,computeDefaultPad:()=>computeDefaultPad,computeDilation2DInfo:()=>computeDilation2DInfo,computeOptimalWindowSize:()=>computeOptimalWindowSize,computeOutAndReduceShapes:()=>computeOutAndReduceShapes,computeOutShape:()=>computeOutShape2,computePool2DInfo:()=>computePool2DInfo,computePool3DInfo:()=>computePool3DInfo,convertConv2DDataFormat:()=>convertConv2DDataFormat,eitherStridesOrDilationsAreOne:()=>eitherStridesOrDilationsAreOne,expandShapeToKeepDim:()=>expandShapeToKeepDim,exponent:()=>exponent,exponents:()=>exponents,fromStringArrayToUint8:()=>fromStringArrayToUint8,fromUint8ToStringArray:()=>fromUint8ToStringArray,getAxesPermutation:()=>getAxesPermutation,getBroadcastDims:()=>getBroadcastDims,getComplexWithIndex:()=>getComplexWithIndex,getFusedBiasGradient:()=>getFusedBiasGradient,getFusedDyActivation:()=>getFusedDyActivation,getImageCenter:()=>getImageCenter,getInnerMostAxes:()=>getInnerMostAxes,getPermuted:()=>getPermuted,getReductionAxes:()=>getReductionAxes,getReshaped:()=>getReshaped,getReshapedPermuted:()=>getReshapedPermuted,getSliceBeginCoords:()=>getSliceBeginCoords,getSliceSize:()=>getSliceSize,getUndoAxesPermutation:()=>getUndoAxesPermutation,log:()=>log22,mergeRealAndImagArrays:()=>mergeRealAndImagArrays,prepareAndValidate:()=>prepareAndValidate,prepareSplitSize:()=>prepareSplitSize,reshapeTensor:()=>reshapeTensor,segment_util:()=>segment_util_exports,shouldFuse:()=>shouldFuse,slice_util:()=>slice_util_exports,splitRealAndImagArrays:()=>splitRealAndImagArrays,tupleValuesAreOne:()=>tupleValuesAreOne,upcastType:()=>upcastType,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape,warn:()=>warn});function assertParamsConsistent(shapes,axis){let rank=shapes[0].length;shapes.forEach((shape,i)=>{assert(shape.length===rank,()=>`Error in concat${rank}D: rank of tensors[${i}] must be the same as the rank of the rest (${rank})`)}),assert(axis>=0&&axis`Error in concat${rank}D: axis must be between 0 and ${rank-1}.`);let firstShape=shapes[0];shapes.forEach((shape,i)=>{for(let r=0;r`Error in concat${rank}D: Shape of tensors[${i}] (${shape}) does not match the shape of the rest (${firstShape}) along the non-concatenated axis ${i}.`)})}function computeOutShape2(shapes,axis){let outputShape=shapes[0].slice();for(let i=1;i=blockShapeRank*2+1||i%2==1?permutedAfterBatch.push(i):permutedBeforeBatch.push(i);permuted.push(...permutedBeforeBatch),permuted.push(0),permuted.push(...permutedAfterBatch)}return permuted}function getReshapedPermuted(inputShape,blockShape,prod5,batchToSpace=!0){let reshapedPermuted=[];batchToSpace?reshapedPermuted.push(inputShape[0]/prod5):reshapedPermuted.push(inputShape[0]*prod5);for(let i=1;i"Number of splits must evenly divide the axis."),splitSizes=new Array(numOrSizeSplits).fill(x.shape[axis]/numOrSizeSplits);else{let numOfNegs=numOrSizeSplits.reduce((count2,value)=>(value===-1&&(count2+=1),count2),0);assert(numOfNegs<=1,()=>"There should be only one negative value in split array.");let negIndex=numOrSizeSplits.indexOf(-1);if(negIndex!==-1){let total=numOrSizeSplits.reduce((a,b)=>b>0?a+b:a);numOrSizeSplits[negIndex]=x.shape[axis]-total}assert(x.shape[axis]===numOrSizeSplits.reduce((a,b)=>a+b),()=>"The sum of sizes must match the size of the axis dimension."),splitSizes=numOrSizeSplits}return splitSizes}var segment_util_exports={};__export2(segment_util_exports,{collectGatherOpShapeInfo:()=>collectGatherOpShapeInfo,computeOutShape:()=>computeOutShape3,segOpComputeOptimalWindowSize:()=>segOpComputeOptimalWindowSize});function segOpComputeOptimalWindowSize(inSize,numSegments){let done=!1,res;for(inSize<=PARALLELIZE_THRESHOLD?(res=inSize,done=!0):res=nearestDivisor(inSize,Math.floor(Math.sqrt(inSize)));!done;)res>numSegments||res===inSize?done=!0:res=nearestDivisor(inSize,res+1);return res}function computeOutShape3(aShape,axis,numSegments){let outShape=[],rank=aShape.length;for(let dim=0;dimindicesRank))throw new Error(`Expect batchDims in the range of [-${indicesRank}, ${indicesRank}], but got ${batchDims}`);if(batchDims<0&&(batchDims+=indicesRank),batchDims>xRank)throw new Error(`batchDims (${batchDims}) must be less than rank(x) ( + the f you passed encloses all operations that lead from x to y.`)}function neg_(x){let inputs={x:convertToTensor(x,"x","neg")};return ENGINE.runKernel(Neg,inputs)}var neg=op({neg_});function softplus_(x){let inputs={x:convertToTensor(x,"x","softplus")};return ENGINE.runKernel(Softplus,inputs)}var softplus=op({softplus_});function logSigmoid_(x){let $x=convertToTensor(x,"x","logSigmoid");return customGrad(x2=>({value:neg(softplus(neg(x2))),gradFunc:dy=>mul(dy,sigmoid(neg(x2)))}))($x)}var logSigmoid=op({logSigmoid_});function max_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","max")},attrs={reductionIndices:axis,keepDims};return ENGINE.runKernel(Max,inputs,attrs)}var max=op({max_});function sub_(a,b){let $a=convertToTensor(a,"a","sub"),$b=convertToTensor(b,"b","sub");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Sub,inputs)}var sub=op({sub_});function sum_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","sum");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Sum,inputs,attrs)}var sum2=op({sum_});function logSoftmax_(logits,axis=-1){let $logits=convertToTensor(logits,"logits","logSoftmax");if(axis===-1&&(axis=$logits.rank-1),axis!==$logits.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and axis was ${axis}`);return customGrad((logits2,save)=>{let keepDims=!0,xMax=max(logits2,axis,!0),shifted=sub(logits2,xMax),value=sub(cast(shifted,"float32"),log2(sum2(exp(shifted),axis,keepDims)));return save([value]),{value,gradFunc:(dy,saved)=>{let[value2]=saved,keepDims2=!0,softmax6=exp(value2);return sub(dy,mul(sum2(dy,axis,keepDims2),softmax6))}}})($logits)}var logSoftmax=op({logSoftmax_});function axesAreInnerMostDims(axes,rank){for(let i=0;iaShape[dim]);return[outShape,reduceShape]}function expandShapeToKeepDim(shape,axes){let reduceSubShape=axes.map(x=>1);return combineLocations(shape,reduceSubShape,axes)}function assertAxesAreInnerMostDims(msg,axes,rank){assert(axesAreInnerMostDims(axes,rank),()=>`${msg} supports only inner-most axes for now. Got axes ${axes} and rank-${rank} input.`)}function getAxesPermutation(axes,rank){if(axesAreInnerMostDims(axes,rank))return null;let result=[];for(let i=0;iresult.push(axis)),result}function getUndoAxesPermutation(axes){return axes.map((axis,i)=>[i,axis]).sort((a,b)=>a[1]-b[1]).map(x=>x[0])}function getInnerMostAxes(numAxes,rank){let res=[];for(let i=rank-numAxes;i`Error in maxPool: input must be rank 4 but got rank ${x4D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D},attrs={filterSize,strides,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(MaxPool,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var maxPool=op({maxPool_});function maxPool3d_(x,filterSize=[1,1,1],strides,pad3,dimRoundingMode,dataFormat="NDHWC",dilations){dilations==null?dilations=[1,1,1]:deprecationWarn("dilations is deprecated, this field will be gone in v3.0.0.");let $x=convertToTensor(x,"x","maxPool3d"),x5D=$x,reshapedTo5D=!1;$x.rank===4&&(reshapedTo5D=!0,x5D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2],$x.shape[3]])),assert(x5D.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${x5D.rank}.`),assert(dataFormat==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${dataFormat}`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x5D},attrs={filterSize,strides,pad:pad3,dimRoundingMode,dataFormat,dilations},res=ENGINE.runKernel(MaxPool3D,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var maxPool3d=op({maxPool3d_});function maxPoolWithArgmax_(x,filterSize,strides,pad3,includeBatchInIndex=!1){let inputs={x:convertToTensor(x,"x","maxPoolWithArgmax")},attrs={filterSize,strides,pad:pad3,includeBatchInIndex},result=ENGINE.runKernel(MaxPoolWithArgmax,inputs,attrs);return{result:result[0],indexes:result[1]}}var maxPoolWithArgmax=op({maxPoolWithArgmax_});function maximum_(a,b){let $a=convertToTensor(a,"a","maximum"),$b=convertToTensor(b,"b","maximum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Maximum,inputs)}var maximum=op({maximum_});function mean_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","mean")},attrs={axis,keepDims};return ENGINE.runKernel(Mean,inputs,attrs)}var mean=op({mean_});function min_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","min")},attrs={axis,keepDims};return ENGINE.runKernel(Min,inputs,attrs)}var min=op({min_});function minimum_(a,b){let $a=convertToTensor(a,"a","minimum"),$b=convertToTensor(b,"b","minimum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Minimum,inputs)}var minimum=op({minimum_});function mirrorPad_(x,paddings,mode){assert(mode==="reflect"||mode==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${mode}.`);let $x=convertToTensor(x,"x","mirrorPad");if($x.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");assert(paddings.length===$x.rank,()=>`Padding doesn't match input. Must be ${$x.rank}. Got ${paddings.length}.`);let shapeOffset=mode==="reflect"?1:0;for(let i=0;i<$x.rank;i++)assert(paddings[i].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),assert(paddings[i][0]>=0&&paddings[i][0]<=$x.shape[i]-shapeOffset&&paddings[i][1]>=0&&paddings[i][1]<=$x.shape[i]-shapeOffset,()=>`Padding in dimension ${i} cannot be greater than or equal to ${$x.shape[i]-shapeOffset} or less than 0 for input of shape ${$x.shape}`);let attrs={paddings,mode},inputs={x:$x};return ENGINE.runKernel(MirrorPad,inputs,attrs)}var mirrorPad=op({mirrorPad_});function mod_(a,b){let $a=convertToTensor(a,"a","mod"),$b=convertToTensor(b,"b","mod");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Mod,inputs)}var mod=op({mod_});function square_(x){let $x=convertToTensor(x,"x","square"),attrs={};return ENGINE.runKernel("Square",{x:$x},attrs)}var square=op({square_});function moments_(x,axis=null,keepDims=!1){x=convertToTensor(x,"x","moments");let axes=parseAxisParam(axis,x.shape),xMean=mean(x,axes,keepDims),keepDimsShape=xMean.shape;keepDims||(keepDimsShape=expandShapeToKeepDim(xMean.shape,axes));let devSquared=square(sub(cast(x,"float32"),reshape(xMean,keepDimsShape))),variance=mean(devSquared,axes,keepDims);return{mean:xMean,variance}}var moments=op({moments_});function multiRNNCell_(lstmCells,data2,c,h){let $data=convertToTensor(data2,"data","multiRNNCell"),$c=convertToTensorArray(c,"c","multiRNNCell"),$h=convertToTensorArray(h,"h","multiRNNCell"),input2=$data,newStates=[];for(let i=0;i2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${origRank}`);seed=seed||Math.random();let inputs={logits:origRank===1?reshape($logits,[1,-1]):$logits},attrs={numSamples,seed,normalized},res=ENGINE.runKernel(Multinomial,inputs,attrs);return origRank===1?reshape(res,[res.size]):res}var multinomial=op({multinomial_});function notEqual_(a,b){let $a=convertToTensor(a,"a","notEqual"),$b=convertToTensor(b,"b","notEqual");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(NotEqual,inputs)}var notEqual=op({notEqual_});function zeros(shape,dtype="float32"){if(dtype==="complex64"){let real4=zeros(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeZerosTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function ones2(shape,dtype="float32"){if(dtype==="complex64"){let real4=ones2(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeOnesTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function onesLike_(x){let inputs={x:convertToTensor(x,"x","onesLike")};return ENGINE.runKernel(OnesLike,inputs)}var onesLike=op({onesLike_});function outerProduct_(v1,v2){let $v1=convertToTensor(v1,"v1","outerProduct"),$v2=convertToTensor(v2,"v2","outerProduct");assert($v1.rank===1&&$v2.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${$v1.rank} and ${$v2.rank}.`);let v12D=reshape($v1,[-1,1]),v22D=reshape($v2,[1,-1]);return matMul(v12D,v22D)}var outerProduct=op({outerProduct_});function pad_(x,paddings,constantValue=0){let $x=convertToTensor(x,"x","pad");if($x.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let attrs={paddings,constantValue},inputs={x:$x};return ENGINE.runKernel(PadV2,inputs,attrs)}var pad=op({pad_});function pad1d_(x,paddings,constantValue=0){return assert(paddings.length===2,()=>"Invalid number of paddings. Must be length of 2."),pad(x,[paddings],constantValue)}var pad1d=op({pad1d_});function pad2d_(x,paddings,constantValue=0){return assert(paddings.length===2&&paddings[0].length===2&&paddings[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad2d=op({pad2d_});function pad3d_(x,paddings,constantValue=0){return assert(paddings.length===3&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad3d=op({pad3d_});function pad4d_(x,paddings,constantValue=0){return assert(paddings.length===4&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2&&paddings[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad4d=op({pad4d_});function spaceToBatchND_(x,blockShape,paddings){let $x=convertToTensor(x,"x","spaceToBatchND");assert($x.rank>=1+blockShape.length,()=>`input rank ${$x.rank} should be > than [blockShape] ${blockShape.length}`),assert(paddings.length===blockShape.length,()=>`paddings.shape[0] ${paddings.length} must be equal to [blockShape] ${blockShape.length}`),assert($x.shape.reduce((a,b,i)=>i>0&&i<=blockShape.length?a&&(b+paddings[i-1][0]+paddings[i-1][1])%blockShape[i-1]==0:a,!0),()=>`input spatial dimensions ${$x.shape.slice(1)} with paddings ${paddings.toString()} must be divisible by blockShapes ${blockShape.toString()}`);let inputs={x:$x},attrs={blockShape,paddings};return ENGINE.runKernel(SpaceToBatchND,inputs,attrs)}var spaceToBatchND=op({spaceToBatchND_});function pool_(input2,windowShape,poolingType,pad3,dilations,strides){dilations==null&&(dilations=[1,1]),strides==null&&(strides=1),pad3===0&&(pad3="valid");let $x=convertToTensor(input2,"x","maxPool"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`);let convInfo=computePool2DInfo(x4D.shape,windowShape,strides,dilations,pad3),dilation=[convInfo.dilationHeight,convInfo.dilationWidth],basePadding;pad3==="same"?basePadding=withSpaceToBatchBasePaddings([convInfo.filterHeight,convInfo.filterWidth],dilation):basePadding=[[0,0],[0,0]];let isDilationOne=dilation[0]===1&&dilation[1]===1,[adjustedPadding,adjustedCrops]=requiredSpaceToBatchPaddings([convInfo.inHeight,convInfo.inWidth],dilation,basePadding),convertedPad=isDilationOne?pad3:"valid",convertedX=isDilationOne?x4D:spaceToBatchND(x4D,dilation,adjustedPadding),y=(poolingType==="avg"?()=>avgPool(convertedX,windowShape,strides,convertedPad):()=>maxPool(convertedX,windowShape,strides,convertedPad))(),res=isDilationOne?y:batchToSpaceND(y,dilation,adjustedCrops);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}function requiredSpaceToBatchPaddings(inputShape,blockShape,basePadding){let padStart=basePadding.map(b=>b[0]),origPadEnd=basePadding.map(b=>b[1]),fullInputShape=inputShape.concat(padStart,origPadEnd),padEndExtra=blockShape.map((b,i)=>(b-fullInputShape[i]%b)%b),padEnd=origPadEnd.map((s,i)=>s+padEndExtra[i]),paddings=blockShape.map((_,i)=>[padStart[i],padEnd[i]]),crops=blockShape.map((_,i)=>[0,padEndExtra[i]]);return[paddings,crops]}function withSpaceToBatchBasePaddings(filterShape,dilation){let padExtraShape=filterShape.map((s,i)=>s+(s-1)*(dilation[i]-1)).map(s=>s-1),padExtraStart=padExtraShape.map(s=>Math.floor(s/2)),padExtraEnd=padExtraShape.map((s,i)=>s-padExtraStart[i]);return padExtraShape.map((_,i)=>[padExtraStart[i],padExtraEnd[i]])}var pool=op({pool_});function pow_(base2,exp4){let $base=convertToTensor(base2,"base","pow"),$exp=convertToTensor(exp4,"exp","pow");[$base,$exp]=makeTypesMatch($base,$exp);let inputs={a:$base,b:$exp};return ENGINE.runKernel(Pow,inputs)}var pow=op({pow_});function prelu_(x,alpha){let $x=convertToTensor(x,"x","prelu"),$alpha=convertToTensor(alpha,"alpha","prelu"),inputs={x:$x,alpha:$alpha};return ENGINE.runKernel(Prelu,inputs)}var prelu=op({prelu_});function prod_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","prod");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Prod,inputs,attrs)}var prod=op({prod_});function rand_(shape,randFunction,dtype){let size=sizeFromShape(shape),values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);for(let i=0;i=1||s===0);let mul2=Math.sqrt(-2*Math.log(s)/s);resultX=this.mean+this.stdDev*v1*mul2,resultY=this.mean+this.stdDev*v2*mul2,(!this.truncated||this.isValidTruncated(resultX))&&(isValid=!0)}return(!this.truncated||this.isValidTruncated(resultY))&&(this.nextVal=this.convertValue(resultY)),this.convertValue(resultX)}convertValue(value){return this.dtype==null||this.dtype==="float32"?value:Math.round(value)}isValidTruncated(value){return value<=this.upper&&value>=this.lower}},RandGamma=class{constructor(alpha,beta,dtype,seed){this.alpha=alpha,this.beta=1/beta,this.dtype=dtype;let seedValue=seed||Math.random();this.randu=seedrandom.alea(seedValue.toString()),this.randn=new MPRandGauss(0,1,dtype,!1,this.randu()),alpha<1?this.d=alpha+2/3:this.d=alpha-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let x2,v0,v1,x,u,v;for(;;){do x=this.randn.nextValue(),v=1+this.c*x;while(v<=0);if(v*=v*v,x2=x*x,v0=1-.331*x2*x2,v1=.5*x2+this.d*(1-v+Math.log(v)),u=this.randu(),uthis.dtype==null||this.dtype==="float32",this.min=min6,this.range=max6-min6,this.dtype=dtype,seed==null&&(seed=Math.random()),typeof seed=="number"&&(seed=seed.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${min6} - ${max6} <= 1 and dtype is not float`);this.random=seedrandom.alea(seed)}convertValue(value){return this.canReturnFloat()?value:Math.round(value)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function randomGamma_(shape,alpha,beta=1,dtype="float32",seed){if(beta==null&&(beta=1),dtype==null&&(dtype="float32"),dtype!=="float32"&&dtype!=="int32")throw new Error(`Unsupported data type ${dtype}`);let rgamma=new RandGamma(alpha,beta,dtype,seed),res=buffer(shape,dtype);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${$x.rank}.`),reverse($x,0)}var reverse1d=op({reverse1d_});function reverse2d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse2d=op({reverse2d_});function reverse3d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse3d=op({reverse3d_});function reverse4d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse4d=op({reverse4d_});function round_(x){let inputs={x:convertToTensor(x,"x","round")};return ENGINE.runKernel(Round,inputs)}var round2=op({round_});function rsqrt_(x){let inputs={x:convertToTensor(x,"x","rsqrt")};return ENGINE.runKernel(Rsqrt,inputs)}var rsqrt=op({rsqrt_});function scalar(value,dtype){if((isTypedArray(value)&&dtype!=="string"||Array.isArray(value))&&dtype!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(dtype==="string"&&isTypedArray(value)&&!(value instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return makeTensor(value,[],[],dtype)}function selu_(x){let inputs={x:convertToTensor(x,"x","selu")};return ENGINE.runKernel(Selu,inputs)}var selu=op({selu_});function separableConv2d_(x,depthwiseFilter,pointwiseFilter,strides,pad3,dilation=[1,1],dataFormat="NHWC"){let $x=convertToTensor(x,"x","separableConv2d"),$depthwiseFilter=convertToTensor(depthwiseFilter,"depthwiseFilter","separableConv2d"),$pointwiseFilter=convertToTensor(pointwiseFilter,"pointwiseFilter","separableConv2d"),x4D=$x,reshapedTo4D=!1;if($x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),dataFormat==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");assert(x4D.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($depthwiseFilter.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[0]}.`),assert($pointwiseFilter.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[1]}.`);let inChannels=$depthwiseFilter.shape[2],channelMultiplier=$depthwiseFilter.shape[3];assert($pointwiseFilter.shape[2]===inChannels*channelMultiplier,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${inChannels*channelMultiplier}, but got ${$pointwiseFilter.shape[2]}.`);let depthwise=depthwiseConv2d(x4D,$depthwiseFilter,strides,pad3,dataFormat,dilation),res=conv2d(depthwise,$pointwiseFilter,1,"valid",dataFormat);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var separableConv2d=op({separableConv2d_});async function setdiff1dAsync_(x,y){let $x=convertToTensor(x,"x","setdiff1d"),$y=convertToTensor(y,"y","setdiff1d");assert($x.dtype===$y.dtype,()=>`x and y should have the same dtype, but got x (${$x.dtype}) and y (${$y.dtype}).`),assert($x.rank===1,()=>`x should be 1D tensor, but got x (${$x.shape}).`),assert($y.rank===1,()=>`y should be 1D tensor, but got y (${$y.shape}).`);let xVals=await $x.data(),yVals=await $y.data(),ySet=new Set(yVals),outputSize=0;for(let i=0;i`slice1d expects a rank-1 tensor, but got a rank-${$x.rank} tensor`),slice($x,[begin],[size])}var slice1d=op({slice1d_});function slice2d_(x,begin,size){let $x=convertToTensor(x,"x","slice2d");return assert($x.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice2d=op({slice2d_});function slice3d_(x,begin,size){let $x=convertToTensor(x,"x","slice3d");return assert($x.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice3d=op({slice3d_});function slice4d_(x,begin,size){let $x=convertToTensor(x,"x","slice4d");return assert($x.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice4d=op({slice4d_});function softmax_(logits,dim=-1){let $logits=convertToTensor(logits,"logits","softmax","float32");if(dim===-1&&(dim=$logits.rank-1),dim!==$logits.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and dim was ${dim}`);let inputs={logits:$logits},attrs={dim};return ENGINE.runKernel(Softmax,inputs,attrs)}var softmax=op({softmax_});function fft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(FFT,inputs)}var fft=op({fft_});function ifft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(IFFT,inputs)}var ifft=op({ifft_});function irfft_(input2){let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,ret;if(innerDimensionSize<=2){let complexInput=reshape(input2,[batch,innerDimensionSize]);ret=ifft(complexInput)}else{let outputShape=[batch,2*(innerDimensionSize-1)],realInput=reshape(real(input2),[batch,innerDimensionSize]),imagInput=reshape(imag(input2),[batch,innerDimensionSize]),realConjugate=reverse(slice(realInput,[0,1],[batch,innerDimensionSize-2]),1),imagConjugate=mul(reverse(slice(imagInput,[0,1],[batch,innerDimensionSize-2]),1),scalar(-1)),r=concat([realInput,realConjugate],1),i=concat([imagInput,imagConjugate],1),complexInput=reshape(complex(r,i),[outputShape[0],outputShape[1]]);ret=ifft(complexInput)}if(ret=real(ret),input2.rank===3&&input2.shape[0]!==0){let temp=ret,batch2=input2.shape[0];ret=reshape(ret,[batch2,ret.shape[0]/batch2,ret.shape[1]]),temp.dispose()}return ret}var irfft=op({irfft_});function split_(x,numOrSizeSplits,axis=0){let inputs={x:convertToTensor(x,"x","split")},attr={numOrSizeSplits,axis};return ENGINE.runKernel(SplitV,inputs,attr)}var split=op({split_});function rfft_(input2,fftLength){assert(input2.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${input2.dtype}`);let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,adjustedInput;if(fftLength!=null&&fftLength0),size=input2.shape.map(v=>v);size[input2.shape.length-1]=fftLength,adjustedInput=slice(input2,begin,size),innerDimensionSize=fftLength}else if(fftLength!=null&&fftLength>innerDimensionSize){let zerosShape=input2.shape.map(v=>v);zerosShape[input2.shape.length-1]=fftLength-innerDimensionSize,adjustedInput=concat([input2,zeros(zerosShape)],input2.shape.length-1),innerDimensionSize=fftLength}else adjustedInput=input2;let zerosInput=zerosLike(adjustedInput),complexInput=reshape(complex(adjustedInput,zerosInput),[batch,innerDimensionSize]),ret=fft(complexInput),half=Math.floor(innerDimensionSize/2)+1,realValues=real(ret),imagValues=imag(ret),realComplexConjugate=split(realValues,[half,innerDimensionSize-half],realValues.shape.length-1),imagComplexConjugate=split(imagValues,[half,innerDimensionSize-half],imagValues.shape.length-1),outputShape=adjustedInput.shape.slice();return outputShape[adjustedInput.shape.length-1]=half,reshape(complex(realComplexConjugate[0],imagComplexConjugate[0]),outputShape)}var rfft=op({rfft_});function sqrt_(x){let inputs={x:convertToTensor(x,"x","sqrt")};return ENGINE.runKernel(Sqrt,inputs)}var sqrt=op({sqrt_});function squaredDifference_(a,b){let $a=convertToTensor(a,"a","squaredDifference"),$b=convertToTensor(b,"b","squaredDifference");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b},attrs={};return ENGINE.runKernel(SquaredDifference,inputs,attrs)}var squaredDifference=op({squaredDifference_});function squeeze_(x,axis){let $x=convertToTensor(x,"x","squeeze");return reshape($x,squeezeShape($x.shape,axis).newShape)}var squeeze=op({squeeze_});function stack_(tensors,axis=0){let $tensors=convertToTensorArray(tensors,"tensors","stack","string_or_numeric");assert($tensors.length>=1,()=>"Pass at least one tensor to tf.stack"),$tensors.length>0&&assert(axis<=$tensors[0].rank,()=>"Axis must be <= rank of the tensor");let inputs=$tensors,attrs={axis};return ENGINE.runKernel(Pack,inputs,attrs)}var stack=op({stack_});function step_(x,alpha=0){let inputs={x:convertToTensor(x,"x","step")},attrs={alpha};return ENGINE.runKernel(Step,inputs,attrs)}var step=op({step_});function stridedSlice_(x,begin,end,strides,beginMask=0,endMask=0,ellipsisMask=0,newAxisMask=0,shrinkAxisMask=0){let inputs={x:convertToTensor(x,"x","stridedSlice")},attrs={begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask};return ENGINE.runKernel(StridedSlice,inputs,attrs)}var stridedSlice=op({stridedSlice_});function tan_(x){let inputs={x:convertToTensor(x,"x","tan")};return ENGINE.runKernel(Tan,inputs)}var tan=op({tan_});function tensor1d(values,dtype){assertNonNull(values);let inferredShape=inferShape(values,dtype);if(inferredShape.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return makeTensor(values,null,inferredShape,dtype)}function tensor2d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==2&&inferredShape.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return makeTensor(values,shape,inferredShape,dtype)}function tensor4d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==4&&inferredShape.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor5d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==5&&inferredShape.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor6d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==6&&inferredShape.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return shape=shape||inferredShape,makeTensor(values,shape,inferredShape,dtype)}function topk_(x,k=1,sorted=!0){let $x=convertToTensor(x,"x","topk");if($x.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let lastDim=$x.shape[$x.shape.length-1];if(k>lastDim)throw new Error(`'k' passed to topk() must be <= the last dimension (${lastDim}) but got ${k}`);let inputs={x:$x},attrs={k,sorted},[values,indices]=ENGINE.runKernel(TopK,inputs,attrs);return{values,indices}}var topk=op({topk_});function truncatedNormal_(shape,mean4=0,stdDev=1,dtype,seed){if(dtype!=null&&dtype==="bool")throw new Error("Unsupported data type $ { dtype }");let randGauss=new MPRandGauss(mean4,stdDev,dtype,!0,seed),res=buffer(shape,dtype);for(let i=0;i0,()=>"The input tensor must be at least 1D");let inputs={x:$x},attrs={axis},[values,indices]=ENGINE.runKernel(Unique,inputs,attrs);return{values,indices}}var unique=op({unique_});function unsortedSegmentSum_(x,segmentIds,numSegments){let $x=convertToTensor(x,"x","unsortedSegmentSum"),$segmentIds=convertToTensor(segmentIds,"segmentIds","unsortedSegmentSum","int32");assert(isInt(numSegments),()=>"numSegments must be of dtype int");let inputs={x:$x,segmentIds:$segmentIds},attrs={numSegments};return ENGINE.runKernel(UnsortedSegmentSum,inputs,attrs)}var unsortedSegmentSum=op({unsortedSegmentSum_});function unstack_(x,axis=0){let $x=convertToTensor(x,"x","unstack","string_or_numeric");assert(axis>=-$x.shape.length&&axis<$x.shape.length,()=>`Axis = ${axis} is not in [-${$x.shape.length}, ${$x.shape.length})`);let inputs={value:$x},attrs={axis};return ENGINE.runKernel(Unpack,inputs,attrs)}var unstack=op({unstack_});function variable(initialValue,trainable=!0,name,dtype){return ENGINE.makeVariable(initialValue,trainable,name,dtype)}function whereImpl(condShape,condVals){let indices=[];for(let i=0;i0,()=>"mask cannot be scalar"),assertShapesMatch(tensorShape.slice(axisFrom,axisFrom+maskDim),$mask.shape,"mask's shape must match the first K dimensions of tensor's shape,");let leadingSize=1;for(let i=axisFrom;i"Shape mismatch in v and x");let one=scalar(1),oneMinusDecay=sub(one,$decay),update=mul(sub($x,$v),oneMinusDecay);if(zeroDebias){assert(step4!=null,()=>"When using zeroDebias: true, step is required.");let $step=convertToTensor(step4,"step","movingAverage");update=div(update,sub(one,pow($decay,$step)))}return add2($v,update)}var movingAverage=op({movingAverage_});function scatterND_(indices,updates,shape){let $indices=convertToTensor(indices,"indices","scatterND","int32"),$updates=convertToTensor(updates,"updates","scatterND");validateInput($updates,$indices,shape);let inputs={indices:$indices,updates:$updates},attrs={shape};return ENGINE.runKernel(ScatterNd,inputs,attrs)}var scatterND=op({scatterND_});function validateInput2(sparseIndices,sparseValues,outputShape,defaultValues){if(sparseIndices.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${sparseIndices.dtype}.`);if(sparseIndices.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${sparseIndices.shape}.`);let numElems=sparseIndices.rank>0?sparseIndices.shape[0]:1,numDims=sparseIndices.rank>1?sparseIndices.shape[1]:1;if(outputShape.length!==numDims)throw new Error(`outputShape has incorrect number of elements:, ${outputShape.length}, should be: ${numDims}.`);let numValues=sparseValues.size;if(!(sparseValues.rank===0||sparseValues.rank===1&&numValues===numElems))throw new Error(`sparseValues has incorrect shape ${sparseValues.shape}, should be [] or [${numElems}]`);if(sparseValues.dtype!==defaultValues.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function sparseToDense_(sparseIndices,sparseValues,outputShape,defaultValue=0){let $sparseIndices=convertToTensor(sparseIndices,"sparseIndices","sparseToDense","int32"),$sparseValues=convertToTensor(sparseValues,"sparseValues","sparseToDense"),$defaultValue=convertToTensor(defaultValue,"defaultValue","sparseToDense",$sparseValues.dtype);validateInput2($sparseIndices,$sparseValues,outputShape,$defaultValue);let inputs={sparseIndices:$sparseIndices,sparseValues:$sparseValues,defaultValue:$defaultValue},attrs={outputShape};return ENGINE.runKernel(SparseToDense,inputs,attrs)}var sparseToDense=op({sparseToDense_});function gatherND_(x,indices){let $indices=convertToTensor(indices,"indices","gatherND","int32"),inputs={params:convertToTensor(x,"x","gatherND"),indices:$indices};return ENGINE.runKernel(GatherNd,inputs)}var gatherND=op({gatherND_});function getNoiseShape(x,noiseShape){if(noiseShape==null)return x.shape.slice();if(arraysEqual(x.shape,noiseShape))return noiseShape;if(x.shape.length===noiseShape.length){let newDimension=[];for(let i=0;i`x has to be a floating point tensor since it's going to be scaled, but got a ${$x.dtype} tensor instead.`),assert(rate>=0&&rate<1,()=>`rate must be a float in the range [0, 1), but got ${rate}.`),rate===0)return x instanceof Tensor?$x.clone():$x;let $noiseShape=getNoiseShape($x,noiseShape),keepProb=1-rate,multiplier=div(floor(add2(randomUniform($noiseShape,0,1,"float32",seed),keepProb)),keepProb);return mul($x,multiplier)}var dropout=op({dropout_});function enclosingPowerOfTwo(value){return Math.floor(Math.pow(2,Math.ceil(Math.log(value)/Math.log(2))))}function cosineWindow(windowLength,a,b){let even=1-windowLength%2,newValues=new Float32Array(windowLength);for(let i=0;i1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${$predictions.rank}`),assert($predictions.rank-1===$targets.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${$predictions.rank} and targets rank ${$targets.rank}`),assertShapesMatch($predictions.shape.slice(0,$predictions.shape.length-1),$targets.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let lastDim=$predictions.shape[$predictions.shape.length-1];assert(k>0&&k<=lastDim,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${lastDim}), but got ${k}`);let predictionsVals=await $predictions.data(),targetsVals=await $targets.data(),[batch,size]=[predictionsVals.length/lastDim,lastDim],precision3=getTypedArrayFromDType("bool",batch);for(let b=0;bb2.value-a.value),precision3[b]=0;for(let i=0;iconv2d2,depthwiseConv2d:()=>depthwiseConv2d2,matMul:()=>matMul2});function conv2DBackpropFilter_(x,dy,filterShape,strides,pad3,dataFormat="NHWC",dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]])),assert(x4D.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${x4D.shape}.`),assert(dy4D.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${dy4D.shape}.`),assert(filterShape.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${filterShape}.`);let inDepth=dataFormat==="NHWC"?x4D.shape[3]:x4D.shape[1],outDepth=dataFormat==="NHWC"?dy4D.shape[3]:dy4D.shape[1];assert(inDepth===filterShape[2],()=>`Error in conv2dDerFilter: depth of input ${inDepth}) must match input depth in filter (${filterShape[2]}.`),assert(outDepth===filterShape[3],()=>`Error in conv2dDerFilter: depth of dy (${outDepth}) must match output depth for filter (${filterShape[3]}).`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dataFormat,dimRoundingMode,filterShape};return ENGINE.runKernel(Conv2DBackpropFilter,inputs,attrs)}var conv2DBackpropFilter=op({conv2DBackpropFilter_});function getFusedDyActivation(dy,y,activation2){if(activation2==null||activation2==="linear")return dy;if(activation2==="relu")return mul(dy,step(y));throw new Error(`Cannot compute gradient for fused activation ${activation2}.`)}function getFusedBiasGradient(bias,dyActivation){let res=dyActivation,reduceAxes=getReductionAxes(bias.shape,dyActivation.shape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,bias.shape)}function applyActivation(x,activation2,preluActivationWeights,leakyreluAlpha){if(activation2==="linear")return x;if(activation2==="relu")return relu(x);if(activation2==="elu")return elu(x);if(activation2==="relu6")return relu6(x);if(activation2==="prelu")return prelu(x,preluActivationWeights);if(activation2==="leakyrelu")return leakyRelu(x,leakyreluAlpha);throw new Error(`Unknown fused activation ${activation2}.`)}var shouldFuse=(gradientDepth,activation2)=>!(gradientDepth>0)||activation2==="linear";function fusedConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(activation2=activation2||"linear",shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=conv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","conv2d"),$filter=convertToTensor(filter,"filter","conv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${$filter.rank}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in conv2d: depth of input (${x4D.shape[3]}) must match input depth for filter ${$filter.shape[2]}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),assert(dataFormat==="NHWC",()=>`Error in conv2d: got dataFormat of ${dataFormat} but only NHWC is currently supported.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused conv2d"));let grad2=(dy,saved)=>{let[$filter2,x4D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2);assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`);let xDer=conv2DBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3),filterDer=conv2DBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3),der=[xDer,filterDer];if($bias2!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);der.push(biasDer)}return der},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var conv2d2=op({fusedConv2d_});function depthwiseConv2dNativeBackpropFilter_(x,dy,filterShape,strides,pad3,dilations=[1,1],dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dimRoundingMode,dilations,filterShape};return ENGINE.runKernel(DepthwiseConv2dNativeBackpropFilter,inputs,attrs)}var depthwiseConv2dNativeBackpropFilter=op({depthwiseConv2dNativeBackpropFilter_});function depthwiseConv2dNativeBackpropInput_(xShape,dy,filter,strides,pad3,dilations=[1,1],dimRoundingMode){let dy4D=dy,reshapedTo4D=!1;dy.rank===3&&(reshapedTo4D=!0,dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={dy:dy4D,filter},attrs={strides,pad:pad3,dimRoundingMode,dilations,inputShape:xShape},res=ENGINE.runKernel(DepthwiseConv2dNativeBackpropInput,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var depthwiseConv2dNativeBackpropInput=op({depthwiseConv2dNativeBackpropInput_});function fusedDepthwiseConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=depthwiseConv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","depthwiseConv2d"),$filter=convertToTensor(filter,"filter","depthwiseConv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${$filter.rank}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${x4D.shape[3]}) must match the inChannels dimension in filter ${$filter.shape[2]}.`),dilations==null&&(dilations=[1,1]),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode,!0),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused depthwiseConv2d"));let grad2=(dy,saved)=>{assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${dilations}'`);let[$filter2,x4D2,y,bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2),xDer=depthwiseConv2dNativeBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3,dilations,dimRoundingMode),filterDer=depthwiseConv2dNativeBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3,dilations,dimRoundingMode);if(bias2!=null){let biasDer=getFusedBiasGradient($bias,dyActivation);return[xDer,filterDer,biasDer]}return[xDer,filterDer]},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var depthwiseConv2d2=op({fusedDepthwiseConv2d_});function fusedMatMul_({a,b,transposeA=!1,transposeB=!1,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=matMul(a,b,transposeA,transposeB);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $a=convertToTensor(a,"a","fused matMul"),$b=convertToTensor(b,"b","fused matMul");[$a,$b]=makeTypesMatch($a,$b);let innerShapeA=transposeA?$a.shape[$a.rank-2]:$a.shape[$a.rank-1],innerShapeB=transposeB?$b.shape[$b.rank-1]:$b.shape[$b.rank-2],outerShapeA=transposeA?$a.shape[$a.rank-1]:$a.shape[$a.rank-2],outerShapeB=transposeB?$b.shape[$b.rank-2]:$b.shape[$b.rank-1],outerDimsA=$a.shape.slice(0,-2),outerDimsB=$b.shape.slice(0,-2),batchDimA=sizeFromShape(outerDimsA),batchDimB=sizeFromShape(outerDimsB);assert($a.rank>=2&&$b.rank>=2&&$a.rank===$b.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${$a.rank} and ${$b.rank}.`),assert(arraysEqual(outerDimsA,outerDimsB),()=>`Error in fused matMul: outer dimensions (${outerDimsA}) and (${outerDimsB}) of Tensors with shapes ${$a.shape} and ${$b.shape} must match.`),assert(innerShapeA===innerShapeB,()=>`Error in fused matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${$a.shape} and ${$b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let outShape=$a.shape.slice(0,-2).concat([outerShapeA,outerShapeB]),a3D=transposeA?reshape($a,[batchDimA,innerShapeA,outerShapeA]):reshape($a,[batchDimA,outerShapeA,innerShapeA]),b3D=transposeB?reshape($b,[batchDimB,outerShapeB,innerShapeB]):reshape($b,[batchDimB,innerShapeB,outerShapeB]),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused matMul"),[$bias]=makeTypesMatch($bias,$a),assertAndGetBroadcastShape(outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused matMul"));let grad2=(dy,saved)=>{let[a3D2,b3D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(reshape(dy,y.shape),y,activation2),aDer,bDer;if(!transposeA&&!transposeB?(aDer=matMul(dyActivation,b3D2,!1,!0),bDer=matMul(a3D2,dyActivation,!0,!1)):!transposeA&&transposeB?(aDer=matMul(dyActivation,b3D2,!1,!1),bDer=matMul(dyActivation,a3D2,!0,!1)):transposeA&&!transposeB?(aDer=matMul(b3D2,dyActivation,!1,!0),bDer=matMul(a3D2,dyActivation,!1,!1)):(aDer=matMul(b3D2,dyActivation,!0,!0),bDer=matMul(dyActivation,a3D2,!0,!0)),bias!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);return[aDer,bDer,biasDer]}else return[aDer,bDer]},inputs={a:a3D,b:b3D,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={transposeA,transposeB,activation:activation2,leakyreluAlpha};return bias==null?customGrad((a3D2,b3D2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D):customGrad((a3D2,b3D2,$bias2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res,$bias2]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D,$bias)}var matMul2=op({fusedMatMul_});function hammingWindow_(windowLength){return cosineWindow(windowLength,.54,.46)}var hammingWindow=op({hammingWindow_});function hannWindow_(windowLength){return cosineWindow(windowLength,.5,.5)}var hannWindow=op({hannWindow_});function frame_(signal2,frameLength,frameStep,padEnd=!1,padValue=0){let start=0,output=[];for(;start+frameLength<=signal2.size;)output.push(slice(signal2,start,frameLength)),start+=frameStep;if(padEnd)for(;start`Error in cropAndResize: image must be rank 4,but got rank ${$image.rank}.`),assert($boxes.rank===2&&$boxes.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${numBoxes},4] but had shape ${$boxes.shape}.`),assert($boxInd.rank===1&&$boxInd.shape[0]===numBoxes,()=>`Error in cropAndResize: boxInd must be have size [${numBoxes}] but had shape ${$boxes.shape}.`),assert(cropSize.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${cropSize.length}.`),assert(cropSize[0]>=1&&cropSize[1]>=1,()=>`cropSize must be atleast [1,1], but was ${cropSize}`),assert(method==="bilinear"||method==="nearest",()=>`method must be bilinear or nearest, but was ${method}`);let inputs={image:$image,boxes:$boxes,boxInd:$boxInd},attrs={method,extrapolationValue,cropSize};return ENGINE.runKernel(CropAndResize,inputs,attrs)}var cropAndResize=op({cropAndResize_});function flipLeftRight_(image3){let $image=convertToTensor(image3,"image","flipLeftRight","float32");assert($image.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image};return ENGINE.runKernel(FlipLeftRight,inputs,{})}var flipLeftRight=op({flipLeftRight_});function rotateWithOffset_(image3,radians,fillValue=0,center=.5){let $image=convertToTensor(image3,"image","rotateWithOffset","float32");assert($image.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image},attrs={radians,fillValue,center};return ENGINE.runKernel(RotateWithOffset,inputs,attrs)}var rotateWithOffset=op({rotateWithOffset_});function nonMaxSuppSanityCheck(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){iouThreshold==null&&(iouThreshold=.5),scoreThreshold==null&&(scoreThreshold=Number.NEGATIVE_INFINITY),softNmsSigma==null&&(softNmsSigma=0);let numBoxes=boxes.shape[0];return maxOutputSize=Math.min(maxOutputSize,numBoxes),assert(0<=iouThreshold&&iouThreshold<=1,()=>`iouThreshold must be in [0, 1], but was '${iouThreshold}'`),assert(boxes.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${boxes.rank}'`),assert(boxes.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${boxes.shape[1]}`),assert(scores.rank===1,()=>"scores must be a 1D tensor"),assert(scores.shape[0]===numBoxes,()=>`scores has incompatible shape with boxes. Expected ${numBoxes}, but was ${scores.shape[0]}`),assert(0<=softNmsSigma&&softNmsSigma<=1,()=>`softNmsSigma must be in [0, 1], but was '${softNmsSigma}'`),{maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}function nonMaxSuppression_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let attrs={maxOutputSize,iouThreshold,scoreThreshold};return ENGINE.runKernel(NonMaxSuppressionV3,{boxes:$boxes,scores:$scores},attrs)}var nonMaxSuppression=op({nonMaxSuppression_});function binaryInsert(arr,element,comparator){let index=binarySearch(arr,element,comparator),insertionPoint=index<0?-(index+1):index;arr.splice(insertionPoint,0,element)}function binarySearch(arr,target,comparator){return binarySearch_(arr,target,comparator||defaultComparator)}function defaultComparator(a,b){return a>b?1:a>>1);let compareResult=comparator(target,arr[middle]);compareResult>0?left=middle+1:(right=middle,found=!compareResult)}return found?left:-left-1}function nonMaxSuppressionV3Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0)}function nonMaxSuppressionV4Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0,!1,padToMaxOutputSize,!0)}function nonMaxSuppressionV5Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,!0)}function nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,returnScoresTensor=!1,padToMaxOutputSize=!1,returnValidOutputs=!1){let candidates=[];for(let i=0;iscoreThreshold&&candidates.push({score:scores[i],boxIndex:i,suppressBeginIndex:0});candidates.sort(ascendingComparator);let scale2=softNmsSigma>0?-.5/softNmsSigma:0,selectedIndices=[],selectedScores=[];for(;selectedIndices.length0;){let candidate=candidates.pop(),{score:originalScore,boxIndex,suppressBeginIndex}=candidate;if(originalScore=suppressBeginIndex;--j){let iou=intersectionOverUnion(boxes,boxIndex,selectedIndices[j]);if(iou>=iouThreshold){ignoreCandidate=!0;break}if(candidate.score=candidate.score*suppressWeight(iouThreshold,scale2,iou),candidate.score<=scoreThreshold)break}candidate.suppressBeginIndex=selectedIndices.length,ignoreCandidate||(candidate.score===originalScore?(selectedIndices.push(boxIndex),selectedScores.push(candidate.score)):candidate.score>scoreThreshold&&binaryInsert(candidates,candidate,ascendingComparator))}let validOutputs=selectedIndices.length,elemsToPad=maxOutputSize-validOutputs;padToMaxOutputSize&&elemsToPad>0&&(selectedIndices.push(...new Array(elemsToPad).fill(0)),selectedScores.push(...new Array(elemsToPad).fill(0)));let result={selectedIndices};return returnScoresTensor&&(result.selectedScores=selectedScores),returnValidOutputs&&(result.validOutputs=validOutputs),result}function intersectionOverUnion(boxes,i,j){let iCoord=boxes.subarray(i*4,i*4+4),jCoord=boxes.subarray(j*4,j*4+4),yminI=Math.min(iCoord[0],iCoord[2]),xminI=Math.min(iCoord[1],iCoord[3]),ymaxI=Math.max(iCoord[0],iCoord[2]),xmaxI=Math.max(iCoord[1],iCoord[3]),yminJ=Math.min(jCoord[0],jCoord[2]),xminJ=Math.min(jCoord[1],jCoord[3]),ymaxJ=Math.max(jCoord[0],jCoord[2]),xmaxJ=Math.max(jCoord[1],jCoord[3]),areaI=(ymaxI-yminI)*(xmaxI-xminI),areaJ=(ymaxJ-yminJ)*(xmaxJ-xminJ);if(areaI<=0||areaJ<=0)return 0;let intersectionYmin=Math.max(yminI,yminJ),intersectionXmin=Math.max(xminI,xminJ),intersectionYmax=Math.min(ymaxI,ymaxJ),intersectionXmax=Math.min(xmaxI,xmaxJ),intersectionArea=Math.max(intersectionYmax-intersectionYmin,0)*Math.max(intersectionXmax-intersectionXmin,0);return intersectionArea/(areaI+areaJ-intersectionArea)}function suppressWeight(iouThreshold,scale2,iou){let weight=Math.exp(scale2*iou*iou);return iou<=iouThreshold?weight:0}function ascendingComparator(c1,c2){return c1.score-c2.score||c1.score===c2.score&&c2.boxIndex-c1.boxIndex}async function nonMaxSuppressionAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices}=nonMaxSuppressionV3Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),tensor1d(selectedIndices,"int32")}var nonMaxSuppressionAsync=nonMaxSuppressionAsync_;function nonMaxSuppressionWithScore_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma},result=ENGINE.runKernel(NonMaxSuppressionV5,inputs,attrs);return{selectedIndices:result[0],selectedScores:result[1]}}var nonMaxSuppressionWithScore=op({nonMaxSuppressionWithScore_});async function nonMaxSuppressionWithScoreAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices,selectedScores}=nonMaxSuppressionV5Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),selectedScores:tensor1d(selectedScores)}}var nonMaxSuppressionWithScoreAsync=nonMaxSuppressionWithScoreAsync_;function nonMaxSuppressionPadded_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize:$maxOutputSize,iouThreshold:$iouThreshold,scoreThreshold:$scoreThreshold,padToMaxOutputSize},result=ENGINE.runKernel(NonMaxSuppressionV4,inputs,attrs);return{selectedIndices:result[0],validOutputs:result[1]}}var nonMaxSuppressionPadded=op({nonMaxSuppressionPadded_});async function nonMaxSuppressionPaddedAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,[boxesVals,scoresVals]=await Promise.all([$boxes.data(),$scores.data()]),{selectedIndices,validOutputs}=nonMaxSuppressionV4Impl(boxesVals,scoresVals,$maxOutputSize,$iouThreshold,$scoreThreshold,padToMaxOutputSize);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),validOutputs:scalar(validOutputs,"int32")}}var nonMaxSuppressionPaddedAsync=nonMaxSuppressionPaddedAsync_;function resizeBilinear_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeBilinear");assert($images.rank===3||$images.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${size}.`),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeBilinear,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeBilinear=op({resizeBilinear_});function resizeNearestNeighbor_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeNearestNeighbor");assert($images.rank===3||$images.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${size}.`),assert($images.dtype==="float32"||$images.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeNearestNeighbor,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeNearestNeighbor=op({resizeNearestNeighbor_});function bandPart_(a,numLower,numUpper){assert(numLower%1==0,()=>`bandPart(): numLower must be an integer, got ${numLower}.`),assert(numUpper%1==0,()=>`bandPart(): numUpper must be an integer, got ${numUpper}.`);let $a=convertToTensor(a,"a","bandPart");assert($a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${$a.rank}.`);let shape=$a.shape,[M,N]=$a.shape.slice(-2);if(!(numLower<=M))throw new Error(`bandPart(): numLower (${numLower}) must not be greater than the number of rows (${M}).`);if(!(numUpper<=N))throw new Error(`bandPart(): numUpper (${numUpper}) must not be greater than the number of columns (${N}).`);numLower<0&&(numLower=M),numUpper<0&&(numUpper=N);let i=reshape(range(0,M,1,"int32"),[-1,1]),j=range(0,N,1,"int32"),ij=sub(i,j),inBand=logicalAnd(lessEqual(ij,scalar(+numLower,"int32")),greaterEqual(ij,scalar(-numUpper,"int32"))),zero=zeros([M,N],$a.dtype);return reshape(stack(unstack(reshape($a,[-1,M,N])).map(mat=>where(inBand,mat,zero))),shape)}var bandPart=op({bandPart_});function gramSchmidt_(xs){let inputIsTensor2D;if(Array.isArray(xs)){inputIsTensor2D=!1,assert(xs!=null&&xs.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let dim=xs[0].shape[0];for(let i=1;i`Gram-Schmidt: Non-unique lengths found in the input vectors: (${xs[i].shape[0]} vs. ${dim})`)}else inputIsTensor2D=!0,xs=split(xs,xs.shape[0],0).map(x=>squeeze(x,[0]));assert(xs.length<=xs[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${xs.length}) exceeds number of dimensions (${xs[0].shape[0]}).`);let ys=[],xs1d=xs;for(let i=0;i{let x=xs1d[i];if(i>0)for(let j=0;j=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${x.rank}`),x.rank===2)return qr2d(x,fullMatrices);{let outerDimsProd=x.shape.slice(0,x.shape.length-2).reduce((value,prev)=>value*prev),x2ds=unstack(reshape(x,[outerDimsProd,x.shape[x.shape.length-2],x.shape[x.shape.length-1]]),0),q2ds=[],r2ds=[];x2ds.forEach(x2d=>{let[q2d,r2d]=qr2d(x2d,fullMatrices);q2ds.push(q2d),r2ds.push(r2d)});let q=reshape(stack(q2ds,0),x.shape),r=reshape(stack(r2ds,0),x.shape);return[q,r]}}function qr2d(x,fullMatrices=!1){return ENGINE.tidy(()=>{assert(x.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${x.shape.length}D Tensor.`);let m=x.shape[0],n=x.shape[1],q=eye(m),r=clone(x),one2D=tensor2d([[1]],[1,1]),w=clone(one2D),iters=m>=n?n:m;for(let j=0;j{let rjEnd1=slice(r,[j,j],[m-j,1]),normX=norm(rjEnd1),rjj=slice(r,[j,j],[1,1]),s=where(greater(rjj,0),tensor2d([[-1]]),tensor2d([[1]])),u1=sub(rjj,mul(s,normX)),wPre=div(rjEnd1,u1);wPre.shape[0]===1?w=clone(one2D):w=concat([one2D,slice(wPre,[1,0],[wPre.shape[0]-1,wPre.shape[1]])],0);let tau=neg(div(matMul(s,u1),normX)),rjEndAll=slice(r,[j,0],[m-j,n]),tauTimesW=mul(tau,w),wT=transpose(w);if(j===0)r=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));else{let rTimesTau=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));r=concat([slice(r,[0,0],[j,n]),rTimesTau],0)}let tawTimesWT=transpose(tauTimesW),qAllJEnd=slice(q,[0,j],[m,q.shape[1]-j]);if(j===0)q=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));else{let qTimesTau=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));q=concat([slice(q,[0,0],[m,j]),qTimesTau],1)}return[w,r,q]}),dispose([rTemp,wTemp,qTemp])}return!fullMatrices&&m>n&&(q=slice(q,[0,0],[m,n]),r=slice(r,[0,0],[n,n])),[q,r]})}var qr=op({qr_}),Reduction;(function(Reduction2){Reduction2[Reduction2.NONE=0]="NONE",Reduction2[Reduction2.MEAN=1]="MEAN",Reduction2[Reduction2.SUM=2]="SUM",Reduction2[Reduction2.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Reduction||(Reduction={}));function computeWeightedLoss_(losses4,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $losses=convertToTensor(losses4,"losses","computeWeightedLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","computeWeightedLoss"));let weightedLoss=$weights==null?$losses:mul($losses,$weights);if(reduction2===Reduction.NONE)return weightedLoss;if(reduction2===Reduction.SUM)return sum2(weightedLoss);if(reduction2===Reduction.MEAN){if($weights==null)return mean(weightedLoss);{let broadcastFactor=$losses.size/$weights.size,result=div(sum2(weightedLoss),sum2($weights));return broadcastFactor>1?div(result,scalar(broadcastFactor)):result}}if(reduction2===Reduction.SUM_BY_NONZERO_WEIGHTS){if($weights==null)return div(sum2(weightedLoss),scalar($losses.size));{let broadcastedWeights=mul($weights,ones2($losses.shape)),numNonZeros=cast(sum2(notEqual(broadcastedWeights,scalar(0))),"float32");return div(sum2(weightedLoss),numNonZeros)}}throw Error(`Unknown reduction: ${reduction2}`)}var computeWeightedLoss=op({computeWeightedLoss_});function absoluteDifference_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","absoluteDifference"),$predictions=convertToTensor(predictions,"predictions","absoluteDifference"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","absoluteDifference")),assertShapesMatch($labels.shape,$predictions.shape,"Error in absoluteDifference: ");let losses4=abs(sub($labels,$predictions));return computeWeightedLoss(losses4,$weights,reduction2)}var absoluteDifference=op({absoluteDifference_});function cosineDistance_(labels,predictions,axis,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","cosineDistance"),$predictions=convertToTensor(predictions,"predictions","cosineDistance"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","cosineDistance")),assertShapesMatch($labels.shape,$predictions.shape,"Error in cosineDistance: ");let one=scalar(1),losses4=sub(one,sum2(mul($labels,$predictions),axis,!0));return computeWeightedLoss(losses4,$weights,reduction2)}var cosineDistance=op({cosineDistance_});function hingeLoss_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","hingeLoss"),$predictions=convertToTensor(predictions,"predictions","hingeLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","hingeLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in hingeLoss: ");let one=scalar(1);$labels=sub(mul(scalar(2),$labels),one);let losses4=relu(sub(one,mul($labels,$predictions)));return computeWeightedLoss(losses4,$weights,reduction2)}var hingeLoss=op({hingeLoss_});function huberLoss_(labels,predictions,weights,delta=1,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","huberLoss"),$predictions=convertToTensor(predictions,"predictions","huberLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","huberLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in huberLoss: ");let deltaScalar=scalar(delta),error=abs(sub($predictions,$labels)),quadratic=minimum(error,deltaScalar),linear=sub(error,quadratic),losses4=add2(mul(scalar(.5),square(quadratic)),mul(deltaScalar,linear));return computeWeightedLoss(losses4,$weights,reduction2)}var huberLoss=op({huberLoss_});function logLoss_(labels,predictions,weights,epsilon3=1e-7,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","logLoss"),$predictions=convertToTensor(predictions,"predictions","logLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","logLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in logLoss: ");let one=scalar(1),epsilonScalar=scalar(epsilon3),l13=neg(mul($labels,log2(add2($predictions,epsilonScalar)))),l23=mul(sub(one,$labels),log2(add2(sub(one,$predictions),epsilonScalar))),losses4=sub(l13,l23);return computeWeightedLoss(losses4,$weights,reduction2)}var logLoss=op({logLoss_});function meanSquaredError_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","meanSquaredError"),$predictions=convertToTensor(predictions,"predictions","meanSquaredError"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","meanSquaredError")),assertShapesMatch($labels.shape,$predictions.shape,"Error in meanSquaredError: ");let losses4=squaredDifference($labels,$predictions);return computeWeightedLoss(losses4,$weights,reduction2)}var meanSquaredError=op({meanSquaredError_});function sigmoidCrossEntropyWithLogits_(labels,logits){let $labels=convertToTensor(labels,"labels","sigmoidCrossEntropyWithLogits"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropyWithLogits");assertShapesMatch($labels.shape,$logits.shape,"Error in sigmoidCrossEntropyWithLogits: ");let maxOutput=relu($logits),outputXTarget=mul($logits,$labels),sigmoidOutput=log1p(exp(neg(abs($logits))));return add2(sub(maxOutput,outputXTarget),sigmoidOutput)}function sigmoidCrossEntropy_(multiClassLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $multiClassLabels=convertToTensor(multiClassLabels,"multiClassLabels","sigmoidCrossEntropy"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","sigmoidCrossEntropy")),assertShapesMatch($multiClassLabels.shape,$logits.shape,"Error in sigmoidCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),half=scalar(.5);$multiClassLabels=add2(mul($multiClassLabels,sub(one,labelSmoothingScalar)),mul(half,labelSmoothingScalar))}let losses4=sigmoidCrossEntropyWithLogits_($multiClassLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var sigmoidCrossEntropy=op({sigmoidCrossEntropy_});function softmaxCrossEntropyWithLogits_(labels,logits,dim=-1){if(dim===-1&&(dim=logits.rank-1),dim!==logits.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${logits.rank} and dim was ${dim}`);return customGrad((labels2,logits2,save)=>{let lse=logSumExp(logits2,[dim],!0),logResult=sub(cast(logits2,"float32"),lse);save([labels2,logResult]);let costVector=neg(mul(logResult,labels2));return{value:sum2(costVector,[dim]),gradFunc:(dy,saved)=>{let[labels3,logResult2]=saved,dyShape=expandShapeToKeepDim(dy.shape,[dim]);return[mul(reshape(dy,dyShape),sub(cast(labels3,"float32"),exp(logResult2))),mul(reshape(dy,dyShape),sub(exp(logResult2),cast(labels3,"float32")))]}}})(labels,logits)}function softmaxCrossEntropy_(onehotLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $onehotLabels=convertToTensor(onehotLabels,"onehotLabels","softmaxCrossEntropy"),$logits=convertToTensor(logits,"logits","softmaxCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","softmaxCrossEntropy")),assertShapesMatch($onehotLabels.shape,$logits.shape,"Error in softmaxCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),numClasses=scalar($onehotLabels.shape[1]);$onehotLabels=add2(mul($onehotLabels,sub(one,labelSmoothingScalar)),div(labelSmoothingScalar,numClasses))}let losses4=softmaxCrossEntropyWithLogits_($onehotLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var softmaxCrossEntropy=op({softmaxCrossEntropy_}),spectral={fft,ifft,rfft,irfft},signal={hammingWindow,hannWindow,frame,stft},image={flipLeftRight,resizeNearestNeighbor,resizeBilinear,rotateWithOffset,cropAndResize,nonMaxSuppression,nonMaxSuppressionAsync,nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync},linalg={bandPart,gramSchmidt,qr},losses={absoluteDifference,computeWeightedLoss,cosineDistance,hingeLoss,huberLoss,logLoss,meanSquaredError,sigmoidCrossEntropy,softmaxCrossEntropy},Optimizer=class extends Serializable{minimize(f,returnCost=!1,varList){let{value,grads:grads2}=this.computeGradients(f,varList);if(varList!=null){let gradArray=varList.map(v=>({name:v.name,tensor:grads2[v.name]}));this.applyGradients(gradArray)}else this.applyGradients(grads2);return dispose(grads2),returnCost?value:(value.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(f,varList){return variableGrads(f,varList)}dispose(){this.iterations_!=null&&dispose(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:scalar(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(weightValues){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(weightValues){return this.iterations_=(await weightValues[0].tensor.data())[0],weightValues.slice(1)}};Object.defineProperty(Optimizer,Symbol.hasInstance,{value:instance=>instance.minimize!=null&&instance.computeGradients!=null&&instance.applyGradients!=null});var AdadeltaOptimizer=class extends Optimizer{constructor(learningRate,rho,epsilon3=null){super();this.learningRate=learningRate,this.rho=rho,this.epsilon=epsilon3,this.accumulatedGrads=[],this.accumulatedUpdates=[],epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedGrads[i]==null&&(this.accumulatedGrads[i]={originalName:`${name}/accum_grad`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedUpdates[i]==null&&(this.accumulatedUpdates[i]={originalName:`${name}/accum_var`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable,accumulatedUpdate=this.accumulatedUpdates[i].variable;tidy(()=>{let newAccumulatedGrad=add2(mul(accumulatedGrad,this.rho),mul(square(gradient),1-this.rho)),updates=mul(div(sqrt(add2(accumulatedUpdate,this.epsilon)),sqrt(add2(accumulatedGrad,this.epsilon))),gradient),newAccumulatedUpdate=add2(mul(accumulatedUpdate,this.rho),mul(square(updates),1-this.rho));accumulatedGrad.assign(newAccumulatedGrad),accumulatedUpdate.assign(newAccumulatedUpdate);let newValue=add2(mul(updates,-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(dispose(this.accumulatedGrads.map(v=>v.variable)),dispose(this.accumulatedUpdates.map(v=>v.variable)))}async getWeights(){let variables=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=weightValues.length/2,trainable=!1;this.accumulatedGrads=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedUpdates=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.rho,config2.epsilon)}};AdadeltaOptimizer.className="Adadelta";registerClass(AdadeltaOptimizer);var AdagradOptimizer=class extends Optimizer{constructor(learningRate,initialAccumulatorValue=.1){super();this.learningRate=learningRate,this.initialAccumulatorValue=initialAccumulatorValue,this.accumulatedGrads=[]}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulatedGrads[i]==null){let trainable=!1;this.accumulatedGrads[i]={originalName:`${name}/accumulator`,variable:tidy(()=>fill(value.shape,this.initialAccumulatorValue).variable(trainable))}}let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable;tidy(()=>{let newAccumulatedGrad=add2(accumulatedGrad,square(gradient));accumulatedGrad.assign(newAccumulatedGrad);let newValue=add2(mul(div(gradient,sqrt(add2(newAccumulatedGrad,ENGINE.backend.epsilon()))),-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&dispose(this.accumulatedGrads.map(v=>v.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulatedGrads=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.initialAccumulatorValue)}};AdagradOptimizer.className="Adagrad";registerClass(AdagradOptimizer);var AdamOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],tidy(()=>{this.accBeta1=scalar(beta1).variable(),this.accBeta2=scalar(beta2).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let varNames=Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),oneMinusAccBeta2=sub(1,this.accBeta2);varNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${name}/v`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,secondMoment=this.accumulatedSecondMoment[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),newSecondMoment=add2(mul(secondMoment,this.beta2),mul(square(gradient),1-this.beta2)),biasCorrectedFirstMoment=div(newFirstMoment,oneMinusAccBeta1),biasCorrectedSecondMoment=div(newSecondMoment,oneMinusAccBeta2);firstMoment.assign(newFirstMoment),secondMoment.assign(newSecondMoment);let newValue=add2(mul(div(biasCorrectedFirstMoment,add2(sqrt(biasCorrectedSecondMoment),this.epsilon)),-this.learningRate),value);value.assign(newValue)}),this.accBeta1.assign(mul(this.accBeta1,this.beta1)),this.accBeta2.assign(mul(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedSecondMoment!=null&&dispose(this.accumulatedSecondMoment.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues),tidy(()=>{this.accBeta1.assign(pow(this.beta1,this.iterations_+1)),this.accBeta2.assign(pow(this.beta2,this.iterations_+1))});let variableCount=weightValues.length/2,trainable=!1;this.accumulatedFirstMoment=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedSecondMoment=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.beta1,config2.beta2,config2.epsilon)}};AdamOptimizer.className="Adam";registerClass(AdamOptimizer);var AdamaxOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null,decay=0){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.decay=decay,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],tidy(()=>{this.iteration=scalar(0).variable(),this.accBeta1=scalar(beta1).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let variableNames=Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),lr=div(-this.learningRate,add2(mul(this.iteration,this.decay),1));variableNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:zerosLike(value).variable(trainable)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${name}/v`,variable:zerosLike(value).variable(trainable)});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,weightedInfNorm=this.accumulatedWeightedInfNorm[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),ut0=mul(weightedInfNorm,this.beta2),ut1=abs(gradient),newWeightedInfNorm=maximum(ut0,ut1);firstMoment.assign(newFirstMoment),weightedInfNorm.assign(newWeightedInfNorm);let newValue=add2(mul(div(lr,oneMinusAccBeta1),div(newFirstMoment,add2(newWeightedInfNorm,this.epsilon))),value);value.assign(newValue)}),this.iteration.assign(add2(this.iteration,1)),this.accBeta1.assign(mul(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedWeightedInfNorm!=null&&dispose(this.accumulatedWeightedInfNorm.map(v=>v.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(weightValues){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.beta1,config2.beta2,config2.epsilon,config2.decay)}};AdamaxOptimizer.className="Adamax";registerClass(AdamaxOptimizer);var SGDOptimizer=class extends Optimizer{constructor(learningRate){super();this.learningRate=learningRate,this.setLearningRate(learningRate)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients)).forEach((name,i)=>{let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let value=ENGINE.registeredVariables[name];tidy(()=>{let newValue=add2(mul(this.c,gradient),value);value.assign(newValue)})}),this.incrementIterations()}setLearningRate(learningRate){this.learningRate=learningRate,this.c!=null&&this.c.dispose(),this.c=keep(scalar(-learningRate))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(weightValues){if(weightValues=await this.extractIterations(weightValues),weightValues.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(cls,config2){return new cls(config2.learningRate)}};SGDOptimizer.className="SGD";registerClass(SGDOptimizer);var MomentumOptimizer=class extends SGDOptimizer{constructor(learningRate,momentum,useNesterov=!1){super(learningRate);this.learningRate=learningRate,this.momentum=momentum,this.useNesterov=useNesterov,this.accumulations=[],this.m=scalar(this.momentum)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulations[i]==null){let trainable=!1;this.accumulations[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}}let accumulation=this.accumulations[i].variable,gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];gradient!=null&&tidy(()=>{let newValue,newAccumulation=add2(mul(this.m,accumulation),gradient);this.useNesterov?newValue=add2(mul(this.c,add2(gradient,mul(newAccumulation,this.m))),value):newValue=add2(mul(this.c,newAccumulation),value),accumulation.assign(newAccumulation),value.assign(newValue)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&dispose(this.accumulations.map(v=>v.variable))}setMomentum(momentum){this.momentum=momentum}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulations=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.momentum,config2.useNesterov)}};MomentumOptimizer.className="Momentum";registerClass(MomentumOptimizer);var RMSPropOptimizer=class extends Optimizer{constructor(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){super();if(this.learningRate=learningRate,this.decay=decay,this.momentum=momentum,this.epsilon=epsilon3,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=centered,epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon()),learningRate==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedMeanSquares[i]==null&&(this.accumulatedMeanSquares[i]={originalName:`${name}/rms`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMoments[i]==null&&(this.accumulatedMoments[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMeanGrads[i]==null&&this.centered&&(this.accumulatedMeanGrads[i]={originalName:`${name}/mg`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedMeanSquare=this.accumulatedMeanSquares[i].variable,accumulatedMoments=this.accumulatedMoments[i].variable;tidy(()=>{let newAccumulatedMeanSquare=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay));if(this.centered){let accumulatedMeanGrad=this.accumulatedMeanGrads[i].variable,newAccumulatedMeanGrad=add2(mul(accumulatedMeanGrad,this.decay),mul(gradient,1-this.decay)),gradContribution=div(mul(gradient,this.learningRate),sqrt(sub(newAccumulatedMeanSquare,add2(square(newAccumulatedMeanGrad),this.epsilon)))),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),gradContribution);accumulatedMeanSquare.assign(newAccumulatedMeanSquare),accumulatedMeanGrad.assign(newAccumulatedMeanGrad),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}else{let newAccumulatedMeanSquare2=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay)),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),div(mul(gradient,this.learningRate),sqrt(add2(newAccumulatedMeanSquare2,this.epsilon))));accumulatedMeanSquare.assign(newAccumulatedMeanSquare2),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&dispose(this.accumulatedMeanSquares.map(v=>v.variable)),this.accumulatedMeanGrads!=null&&this.centered&&dispose(this.accumulatedMeanGrads.map(v=>v.variable)),this.accumulatedMoments!=null&&dispose(this.accumulatedMoments.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&variables.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=this.centered?weightValues.length/3:weightValues.length/2,trainable=!1;this.accumulatedMeanSquares=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedMoments=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.centered&&(this.accumulatedMeanGrads=weightValues.slice(variableCount*2,variableCount*3).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.decay,config2.momentum,config2.epsilon,config2.centered)}};RMSPropOptimizer.className="RMSProp";registerClass(RMSPropOptimizer);var OptimizerConstructors=class{static sgd(learningRate){return new SGDOptimizer(learningRate)}static momentum(learningRate,momentum,useNesterov=!1){return new MomentumOptimizer(learningRate,momentum,useNesterov)}static rmsprop(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){return new RMSPropOptimizer(learningRate,decay,momentum,epsilon3,centered)}static adam(learningRate=.001,beta1=.9,beta2=.999,epsilon3=null){return new AdamOptimizer(learningRate,beta1,beta2,epsilon3)}static adadelta(learningRate=.001,rho=.95,epsilon3=null){return new AdadeltaOptimizer(learningRate,rho,epsilon3)}static adamax(learningRate=.002,beta1=.9,beta2=.999,epsilon3=null,decay=0){return new AdamaxOptimizer(learningRate,beta1,beta2,epsilon3,decay)}static adagrad(learningRate,initialAccumulatorValue=.1){return new AdagradOptimizer(learningRate,initialAccumulatorValue)}},train={sgd:OptimizerConstructors.sgd,momentum:OptimizerConstructors.momentum,adadelta:OptimizerConstructors.adadelta,adagrad:OptimizerConstructors.adagrad,rmsprop:OptimizerConstructors.rmsprop,adamax:OptimizerConstructors.adamax,adam:OptimizerConstructors.adam},delayCallback=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:f=>f())();function nextFrame(){return new Promise(resolve=>delayCallback(()=>resolve()))}var backend_util_exports={};__export2(backend_util_exports,{ERF_A1:()=>ERF_A1,ERF_A2:()=>ERF_A2,ERF_A3:()=>ERF_A3,ERF_A4:()=>ERF_A4,ERF_A5:()=>ERF_A5,ERF_P:()=>ERF_P,PARALLELIZE_THRESHOLD:()=>PARALLELIZE_THRESHOLD,SELU_SCALE:()=>SELU_SCALE,SELU_SCALEALPHA:()=>SELU_SCALEALPHA,applyActivation:()=>applyActivation,assertAndGetBroadcastShape:()=>assertAndGetBroadcastShape,assertAxesAreInnerMostDims:()=>assertAxesAreInnerMostDims,assertParamsConsistent:()=>assertParamsConsistent,assignToTypedArray:()=>assignToTypedArray,axesAreInnerMostDims:()=>axesAreInnerMostDims,calculateShapes:()=>calculateShapes,castTensor:()=>castTensor,combineLocations:()=>combineLocations,complexWithEvenIndex:()=>complexWithEvenIndex,complexWithOddIndex:()=>complexWithOddIndex,computeConv2DInfo:()=>computeConv2DInfo,computeConv3DInfo:()=>computeConv3DInfo,computeDefaultPad:()=>computeDefaultPad,computeDilation2DInfo:()=>computeDilation2DInfo,computeOptimalWindowSize:()=>computeOptimalWindowSize,computeOutAndReduceShapes:()=>computeOutAndReduceShapes,computeOutShape:()=>computeOutShape2,computePool2DInfo:()=>computePool2DInfo,computePool3DInfo:()=>computePool3DInfo,convertConv2DDataFormat:()=>convertConv2DDataFormat,eitherStridesOrDilationsAreOne:()=>eitherStridesOrDilationsAreOne,expandShapeToKeepDim:()=>expandShapeToKeepDim,exponent:()=>exponent,exponents:()=>exponents,fromStringArrayToUint8:()=>fromStringArrayToUint8,fromUint8ToStringArray:()=>fromUint8ToStringArray,getAxesPermutation:()=>getAxesPermutation,getBroadcastDims:()=>getBroadcastDims,getComplexWithIndex:()=>getComplexWithIndex,getFusedBiasGradient:()=>getFusedBiasGradient,getFusedDyActivation:()=>getFusedDyActivation,getImageCenter:()=>getImageCenter,getInnerMostAxes:()=>getInnerMostAxes,getPermuted:()=>getPermuted,getReductionAxes:()=>getReductionAxes,getReshaped:()=>getReshaped,getReshapedPermuted:()=>getReshapedPermuted,getSliceBeginCoords:()=>getSliceBeginCoords,getSliceSize:()=>getSliceSize,getUndoAxesPermutation:()=>getUndoAxesPermutation,log:()=>log22,mergeRealAndImagArrays:()=>mergeRealAndImagArrays,prepareAndValidate:()=>prepareAndValidate,prepareSplitSize:()=>prepareSplitSize,reshapeTensor:()=>reshapeTensor,segment_util:()=>segment_util_exports,shouldFuse:()=>shouldFuse,slice_util:()=>slice_util_exports,splitRealAndImagArrays:()=>splitRealAndImagArrays,tupleValuesAreOne:()=>tupleValuesAreOne,upcastType:()=>upcastType,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape,warn:()=>warn});function assertParamsConsistent(shapes,axis){let rank=shapes[0].length;shapes.forEach((shape,i)=>{assert(shape.length===rank,()=>`Error in concat${rank}D: rank of tensors[${i}] must be the same as the rank of the rest (${rank})`)}),assert(axis>=0&&axis`Error in concat${rank}D: axis must be between 0 and ${rank-1}.`);let firstShape=shapes[0];shapes.forEach((shape,i)=>{for(let r=0;r`Error in concat${rank}D: Shape of tensors[${i}] (${shape}) does not match the shape of the rest (${firstShape}) along the non-concatenated axis ${i}.`)})}function computeOutShape2(shapes,axis){let outputShape=shapes[0].slice();for(let i=1;i=blockShapeRank*2+1||i%2==1?permutedAfterBatch.push(i):permutedBeforeBatch.push(i);permuted.push(...permutedBeforeBatch),permuted.push(0),permuted.push(...permutedAfterBatch)}return permuted}function getReshapedPermuted(inputShape,blockShape,prod5,batchToSpace=!0){let reshapedPermuted=[];batchToSpace?reshapedPermuted.push(inputShape[0]/prod5):reshapedPermuted.push(inputShape[0]*prod5);for(let i=1;i"Number of splits must evenly divide the axis."),splitSizes=new Array(numOrSizeSplits).fill(x.shape[axis]/numOrSizeSplits);else{let numOfNegs=numOrSizeSplits.reduce((count2,value)=>(value===-1&&(count2+=1),count2),0);assert(numOfNegs<=1,()=>"There should be only one negative value in split array.");let negIndex=numOrSizeSplits.indexOf(-1);if(negIndex!==-1){let total=numOrSizeSplits.reduce((a,b)=>b>0?a+b:a);numOrSizeSplits[negIndex]=x.shape[axis]-total}assert(x.shape[axis]===numOrSizeSplits.reduce((a,b)=>a+b),()=>"The sum of sizes must match the size of the axis dimension."),splitSizes=numOrSizeSplits}return splitSizes}var segment_util_exports={};__export2(segment_util_exports,{collectGatherOpShapeInfo:()=>collectGatherOpShapeInfo,computeOutShape:()=>computeOutShape3,segOpComputeOptimalWindowSize:()=>segOpComputeOptimalWindowSize});function segOpComputeOptimalWindowSize(inSize,numSegments){let done=!1,res;for(inSize<=PARALLELIZE_THRESHOLD?(res=inSize,done=!0):res=nearestDivisor(inSize,Math.floor(Math.sqrt(inSize)));!done;)res>numSegments||res===inSize?done=!0:res=nearestDivisor(inSize,res+1);return res}function computeOutShape3(aShape,axis,numSegments){let outShape=[],rank=aShape.length;for(let dim=0;dimindicesRank))throw new Error(`Expect batchDims in the range of [-${indicesRank}, ${indicesRank}], but got ${batchDims}`);if(batchDims<0&&(batchDims+=indicesRank),batchDims>xRank)throw new Error(`batchDims (${batchDims}) must be less than rank(x) ( ${xRank}).`);if(axisdecodeString(val))}catch(err){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${err}`)}}function fromStringArrayToUint8(strings){return strings.map(s=>encodeString(s))}var kernel_impls_exports={};__export2(kernel_impls_exports,{nonMaxSuppressionV3Impl:()=>nonMaxSuppressionV3Impl,nonMaxSuppressionV4Impl:()=>nonMaxSuppressionV4Impl,nonMaxSuppressionV5Impl:()=>nonMaxSuppressionV5Impl,whereImpl:()=>whereImpl});var absGradConfig={kernelName:Abs,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,step(cast(x,"float32"),-1))}}},acosGradConfig={kernelName:Acos,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let a=square(cast(x,"float32")),b=sqrt(sub(scalar(1),a));return neg(div(dy,b))}}}},acoshGradConfig={kernelName:Acosh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let a=sqrt(sub(square(cast(x,"float32")),1));return div(dy,a)}}}},addGradConfig={kernelName:Add,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=dy,reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,a.shape)},b:()=>{let res=dy,reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,b.shape)}}}},addNGradConfig={kernelName:AddN,saveAllInputs:!0,gradFunc:(dy,saved)=>{let ders={};return saved.forEach((_,i)=>{ders[i]=()=>dy.clone()}),ders}},argMaxGradConfig={kernelName:ArgMax,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>zerosLike(x)}}},argMinGradConfig={kernelName:ArgMin,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>zerosLike(x)}}},asinGradConfig={kernelName:Asin,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,sqrt(sub(scalar(1),square(cast(x,"float32")))))}}},asinhGradConfig={kernelName:Asinh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let a=sqrt(add2(scalar(1),square(cast(x,"float32"))));return div(dy,a)}}}},atan2GradConfig={kernelName:Atan2,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let d=add2(square(a),square(b)),res=mul(dy,div(b,d)),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,a.shape)},b:()=>{let d=add2(square(a),square(b)),res=neg(mul(dy,div(a,d))),reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,b.shape)}}}},atanGradConfig={kernelName:Atan,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,add2(square(cast(x,"float32")),1))}}},atanhGradConfig={kernelName:Atanh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,sub(scalar(1),square(cast(x,"float32"))))}}};function avgPool3dGrad_(dy,input2,filterSize,strides,dilations=[1,1,1],pad3,dimRoundingMode){let $dy=convertToTensor(dy,"dy","avgPool3dGrad"),$input=convertToTensor(input2,"input","avgPool3dGrad"),dy5D=$dy,input5D=$input,reshapedTo5D=!1;$input.rank===4&&(reshapedTo5D=!0,dy5D=reshape($dy,[1,$dy.shape[0],$dy.shape[1],$dy.shape[2],$dy.shape[3]]),input5D=reshape($input,[1,$input.shape[0],$input.shape[1],$input.shape[2],$input.shape[3]])),assert(dy5D.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${dy5D.rank}.`),assert(input5D.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${input5D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in avgPool3dGrad: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={dy:dy5D,input:input5D},attrs={filterSize,strides,dilations,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(AvgPool3DGrad,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var avgPool3dGrad=op({avgPool3dGrad_}),avgPool3DGradConfig={kernelName:AvgPool3D,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{filterSize,strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1,1]:dilations;return{x:()=>avgPool3dGrad(dy,x,filterSize,strides,$dilations,pad3,dimRoundingMode)}}};function avgPoolGrad_(dy,input2,filterSize,strides,pad3){let $dy=convertToTensor(dy,"dy","avgPoolGrad"),$input=convertToTensor(input2,"input","avgPoolGrad");assert($input.rank===$dy.rank,()=>`Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`);let input4D=$input,dy4D=$dy,reshapedTo4D=!1;$input.rank===3&&(reshapedTo4D=!0,input4D=reshape($input,[1,$input.shape[0],$input.shape[1],$input.shape[2]]),dy4D=reshape($dy,[1,$dy.shape[0],$dy.shape[1],$dy.shape[2]])),assert(dy4D.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${dy4D.rank}.`),assert(input4D.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${input4D.rank}.`);let inputs={dy:dy4D,input:input4D},attrs={filterSize,strides,pad:pad3},res=ENGINE.runKernel(AvgPoolGrad,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var avgPoolGrad=op({avgPoolGrad_}),avgPoolGradConfig={kernelName:AvgPool,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{filterSize,strides,pad:pad3}=attrs;return{x:()=>avgPoolGrad(dy,x,filterSize,strides,pad3)}}},batchMatMulGradConfig={kernelName:BatchMatMul,inputsToSave:["a","b"],gradFunc:(dy,saved,attrs)=>{let[a,b]=saved,{transposeA,transposeB}=attrs;return!transposeA&&!transposeB?{a:()=>matMul(dy,b,!1,!0),b:()=>matMul(a,dy,!0,!1)}:!transposeA&&transposeB?{a:()=>matMul(dy,b,!1,!1),b:()=>matMul(dy,a,!0,!1)}:transposeA&&!transposeB?{a:()=>matMul(b,dy,!1,!0),b:()=>matMul(a,dy,!1,!1)}:{a:()=>matMul(b,dy,!0,!0),b:()=>matMul(dy,a,!0,!0)}}},batchToSpaceNDGradConfig={kernelName:BatchToSpaceND,gradFunc:(dy,saved,attrs)=>{let{blockShape,crops}=attrs;return{x:()=>spaceToBatchND(dy,blockShape,crops)}}},broadcastToGradConfig={kernelName:BroadcastTo,gradFunc:(dy,saved,attrs)=>{let broadCastToAttrs=attrs,inputShape=broadCastToAttrs.inputShape,outputShape=broadCastToAttrs.shape,reps=Array.from(outputShape);for(let i=inputShape.length-1;i>=0;i--)if(inputShape[i]===outputShape[i])reps[i]=1;else if(inputShape[i]!==1)throw new Error(`broadcastTo(): [${inputShape}] cannot be broadcast to [${outputShape}].`);let axes=[];for(let i=0;i1&&axes.push(i);return{x:()=>sum2(dy,axes,!0)}}},castGradConfig={kernelName:Cast,gradFunc:dy=>({x:()=>dy.clone()})},ceilGradConfig={kernelName:Ceil,gradFunc:dy=>({x:()=>zerosLike(dy)})},clipByValueGradConfig={kernelName:ClipByValue,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{clipValueMin,clipValueMax}=attrs;return{x:()=>where(logicalAnd(greaterEqual(x,clipValueMin),lessEqual(x,clipValueMax)),dy,zerosLike(dy))}}},complexAbsGradConfig={kernelName:ComplexAbs,inputsToSave:["x"],gradFunc:absGradConfig.gradFunc},concatGradConfig={kernelName:Concat,saveAllInputs:!0,gradFunc:(dy,saved,attrs)=>{let shapes=saved.map(t=>t.shape),{axis}=attrs,$axis=parseAxisParam(axis,saved[0].shape)[0],sizeSplits=shapes.map(s=>s[$axis]);return split(dy,sizeSplits,$axis).map(t=>()=>t)}},conv2DGradConfig={kernelName:Conv2D,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let[x4D,$filter]=saved,{dilations,strides,pad:pad3,dataFormat}=attrs;return assert(tupleValuesAreOne(dilations),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`),{x:()=>conv2DBackpropInput(x4D.shape,dy,$filter,strides,pad3,dataFormat),filter:()=>conv2DBackpropFilter(x4D,dy,$filter.shape,strides,pad3,dataFormat)}}},conv2DBackpropInputGradConfig={kernelName:Conv2DBackpropInput,inputsToSave:["dy","filter"],gradFunc:(ddx,saved,attrs)=>{let[dy,filter]=saved,{strides,pad:pad3,dataFormat,dimRoundingMode}=attrs;return{dy:()=>conv2d(ddx,filter,strides,pad3,dataFormat,1,dimRoundingMode),filter:()=>conv2DBackpropFilter(ddx,dy,filter.shape,strides,pad3,dataFormat,dimRoundingMode)}}};function conv3DBackpropFilter_(x,dy,filterShape,strides,pad3){let x5D=x;x.rank===4&&(x5D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2],x.shape[3]]));let dy5D=dy;dy5D.rank===4&&(dy5D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2],dy.shape[3]])),assert(x5D.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${x5D.shape}.`),assert(dy5D.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${dy5D.shape}.`),assert(filterShape.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${filterShape}.`),assert(x5D.shape[4]===filterShape[3],()=>`Error in conv3dDerFilter: depth of input ${x5D.shape[4]}) must match input depth in filter (${filterShape[3]}.`),assert(dy5D.shape[4]===filterShape[4],()=>`Error in conv3dDerFilter: depth of dy (${dy5D.shape[4]}) must match output depth for filter (${filterShape[4]}).`);let inputs={x:x5D,dy:dy5D},attrs={strides,pad:pad3,filterShape};return ENGINE.runKernel(Conv3DBackpropFilterV2,inputs,attrs)}var conv3DBackpropFilter=op({conv3DBackpropFilter_}),conv3DGradConfig={kernelName:Conv3D,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let{dilations,strides,pad:pad3}=attrs;assert(tupleValuesAreOne(dilations),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`);let[x5D,$filter]=saved;return{x:()=>conv3DBackpropInput(x5D.shape,dy,$filter,strides,pad3),filter:()=>conv3DBackpropFilter(x5D,dy,$filter.shape,strides,pad3)}}},cosGradConfig={kernelName:Cos,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(neg(sin(cast(x,"float32"))),dy)}}},coshGradConfig={kernelName:Cosh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(sinh(cast(x,"float32")),dy)}}},cumsumGradConfig={kernelName:Cumsum,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{axis,exclusive,reverse:reverse5}=attrs;return{x:()=>{let permutation=getAxesPermutation([axis],x.rank),out=cumsum(dy,axis,exclusive,!reverse5);return permutation!=null&&(out=transpose(out,permutation)),out}}}},depthwiseConv2dNativeGradConfig={kernelName:DepthwiseConv2dNative,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let{dilations,strides,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations;assert(tupleValuesAreOne($dilations),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${$dilations}'`);let[x,filter]=saved;return assert(x.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${x.rank}.`),assert(filter.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${filter.rank}.`),assert(x.shape[3]===filter.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${x.shape[3]}) must match the inChannels dimension in filter ${filter.shape[2]}.`),assert(eitherStridesOrDilationsAreOne(strides,$dilations),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${$dilations}'.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`),{x:()=>depthwiseConv2dNativeBackpropInput(x.shape,dy,filter,strides,pad3,dilations,dimRoundingMode),filter:()=>depthwiseConv2dNativeBackpropFilter(x,dy,filter.shape,strides,pad3,dilations,dimRoundingMode)}}},dilation2dGradConfig={kernelName:Dilation2D,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let[x,filter]=saved,inputInputs={x,filter,dy},filterInputs={x,filter,dy};return{x:()=>ENGINE.runKernel(Dilation2DBackpropInput,inputInputs,attrs),filter:()=>ENGINE.runKernel(Dilation2DBackpropFilter,filterInputs,attrs)}}},eluGradConfig={kernelName:Elu,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved,inputs={dy,y};return{x:()=>ENGINE.runKernel(EluGrad,inputs)}}},erfGradConfig={kernelName:Erf,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved,a=mul(exp(neg(square(x))),2/Math.sqrt(Math.PI));return{x:()=>mul(dy,a)}}},expGradConfig={kernelName:Exp,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved;return{x:()=>mul(dy,y)}}},expandDimsGradConfig={kernelName:ExpandDims,inputsToSave:["input"],gradFunc:(dy,saved)=>{let[input2]=saved;return{input:()=>reshape(dy,input2.shape)}}},expm1GradConfig={kernelName:Expm1,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,exp(x))}}},floorGradConfig={kernelName:Floor,gradFunc:dy=>({x:()=>zerosLike(dy)})},floorDivGradConfig={kernelName:FloorDiv,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=div(dy,cast(b,"float32")),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),a.shape):res},b:()=>{let res=mul(dy,cast(a,"float32")),reduceAxes=getReductionAxes(b.shape,outShape);reduceAxes.length>0&&(res=reshape(sum2(res,reduceAxes),b.shape));let tmp=square(b);return neg(div(res,cast(tmp,"float32")))}}}},fusedBatchNormGradConfig={kernelName:FusedBatchNorm,inputsToSave:["x","mean","variance","scale"],gradFunc:(dy,saved,attrs)=>{let{varianceEpsilon}=attrs,[x,mean4,variance,scale2]=saved,scaleValue=scale2==null?scalar(1):scale2,reductionAxes=getReductionAxes(mean4.shape,x.shape),tileShape=[];if(mean4.rank===1){for(let i=0;imean4.rank===1?reshape(mul(mul(dy,tile(reshape(oneOverSqrtVariance,[1,1,1,mean4.shape[0]]),tileShape)),scaleValue),x.shape):reshape(mul(mul(dy,oneOverSqrtVariance),scaleValue),x.shape),mean:()=>{let meanDer=mul(mul(oneOverSqrtVariance,scalar(-1)),dyTimesScaleValue);return mean4.rank===1&&(meanDer=sum2(meanDer,reductionAxes)),reshape(meanDer,mean4.shape)},variance:()=>{let varianceDer=mul(mul(minusHalfRCube,xMinusMean),dyTimesScaleValue);return mean4.rank===1&&(varianceDer=sum2(varianceDer,reductionAxes)),reshape(varianceDer,mean4.shape)},scale:()=>{let xMinusMean2TimesRsqrt=mul(xMinusMean,oneOverSqrtVariance),scaleDer=mul(dy,xMinusMean2TimesRsqrt);return mean4.rank===1&&(scaleDer=sum2(scaleDer,reductionAxes)),reshape(scaleDer,mean4.shape)},offset:()=>{let offsetDer=dy;return mean4.rank===1&&(offsetDer=sum2(offsetDer,reductionAxes)),reshape(offsetDer,mean4.shape)}}}},gatherGradConfig={kernelName:GatherV2,inputsToSave:["x","indices"],gradFunc:(dy,saved,attrs)=>{let[x,indices]=saved,{axis}=attrs,parsedAxis=parseAxisParam(axis,x.shape)[0];return{x:()=>{let paramsShape=x.shape,indicesSize=indices.size,outerShape=paramsShape.slice(0,parsedAxis),outerDims=outerShape.length,innerShape=paramsShape.slice(axis,paramsShape.length).slice(1),innerDims=innerShape.length,outerAxesIndices=arrayRange(0,outerDims),innerAxesIndices=arrayRange(outerDims+1,outerDims+1+innerDims),valuesShape=arrayConcat([outerShape,[indicesSize],innerShape]),values=reshape(dy,valuesShape),reshapedIndices=reshape(indices,[indicesSize]),transposeDims=arrayConcat([[outerDims],outerAxesIndices,innerAxesIndices]),valuesTranspose=transpose(values,transposeDims),paramsGrad=unsortedSegmentSum(valuesTranspose,reshapedIndices,x.shape[parsedAxis]),invertTransposeDims=getUndoAxesPermutation(transposeDims);return paramsGrad=transpose(paramsGrad,invertTransposeDims),paramsGrad},indices:()=>indices}}};function arrayRange(start,stop){let result=[];for(let i=start;i{let[a,b]=saved;return{a:()=>zerosLike(a),b:()=>zerosLike(b)}}},identityGradConfig={kernelName:Identity,gradFunc:dy=>({x:()=>cast(dy,"float32")})},isFiniteGradConfig={kernelName:IsFinite,gradFunc:dy=>({x:()=>zerosLike(dy)})},isInfGradConfig={kernelName:IsInf,gradFunc:dy=>({x:()=>zerosLike(dy)})},isNanGradConfig={kernelName:IsNan,gradFunc:dy=>({x:()=>zerosLike(dy)})},leakyReluGradConfig={kernelName:LeakyRelu,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{alpha}=attrs,mask=greater(x,0);return{x:()=>where(mask,dy,mul(dy,alpha))}}},log1pGradConfig={kernelName:Log1p,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,add2(x,1))}}},logGradConfig={kernelName:Log,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,cast(x,"float32"))}}},logSoftmaxGradConfig={kernelName:LogSoftmax,inputsToSave:[],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[value]=saved,{axis}=attrs;return{logits:()=>{let keepDims=!0,softmax6=exp(value);return sub(dy,mul(sum2(dy,axis,keepDims),softmax6))}}}};function localResponseNormalizationBackprop_(x,y,dy,depthRadius=5,bias=1,alpha=1,beta=.5){let inputs={x,y,dy},attrs={depthRadius,bias,alpha,beta};return ENGINE.runKernel(LRNGrad,inputs,attrs)}var localResponseNormalizationBackprop=op({localResponseNormalizationBackprop_}),lrnGradConfig={kernelName:LRN,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[x,y]=saved,{depthRadius,bias,alpha,beta}=attrs;return{x:()=>localResponseNormalizationBackprop(x,y,dy,depthRadius,bias,alpha,beta)}}};function gradForMinAndMax(dy,y,xOrig,origAxes){return y.rankmul(dy,cast(equal(xOrig,y),dy.dtype))}}var maxGradConfig={kernelName:Max,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let maxAttrs=attrs,{reductionIndices}=maxAttrs,x=saved[0],y=saved[1],origAxes=parseAxisParam(reductionIndices,x.shape),maxGrad=gradForMinAndMax(dy,y,x,origAxes);return{x:()=>maxGrad.x()}}},maximumGradConfig={kernelName:Maximum,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved;return{a:()=>mul(dy,cast(greaterEqual(a,b),"float32")),b:()=>mul(dy,cast(less(a,b),"float32"))}}};function maxPool3dGrad_(dy,input2,output,filterSize,strides,dilations=[1,1,1],pad3,dimRoundingMode){let $dy=convertToTensor(dy,"dy","maxPool3dGrad"),$input=convertToTensor(input2,"input","maxPool3dGrad"),$output=convertToTensor(output,"output","maxPool3dGrad"),dy5D=$dy,input5D=$input,output5D=$output,reshapedTo5D=!1;$input.rank===4&&(reshapedTo5D=!0,dy5D=reshape($dy,[1,$dy.shape[0],$dy.shape[1],$dy.shape[2],$dy.shape[3]]),input5D=reshape($input,[1,$input.shape[0],$input.shape[1],$input.shape[2],$input.shape[3]]),output5D=reshape($output,[1,$output.shape[0],$output.shape[1],$output.shape[2],$output.shape[3]])),assert(dy5D.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${dy5D.rank}.`),assert(input5D.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${input5D.rank}.`),assert(output5D.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${output5D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool3dGrad: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={dy:dy5D,input:input5D,output:output5D},attrs={filterSize,strides,dilations,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(MaxPool3DGrad,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var maxPool3dGrad=op({maxPool3dGrad_}),maxPool3DGradConfig={kernelName:MaxPool3D,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[x,y]=saved,{filterSize,strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1,1]:dilations;return{x:()=>maxPool3dGrad(dy,x,y,filterSize,strides,$dilations,pad3,dimRoundingMode)}}};function maxPoolGrad_(dy,input2,output,filterSize,strides,pad3,dimRoundingMode){let $dy=convertToTensor(dy,"dy","maxPoolGrad"),$input=convertToTensor(input2,"input","maxPoolGrad"),$output=convertToTensor(output,"output","maxPoolGrad");assert($input.rank===$dy.rank,()=>`Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`),assert($dy.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${$dy.rank}.`),assert($input.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${$input.rank}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={dy:$dy,input:$input,output:$output},attrs={filterSize,strides,pad:pad3,dimRoundingMode};return ENGINE.runKernel(MaxPoolGrad,inputs,attrs)}var maxPoolGrad=op({maxPoolGrad_}),maxPoolGradConfig={kernelName:MaxPool,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[x,y]=saved,{filterSize,strides,pad:pad3}=attrs;return{x:()=>maxPoolGrad(dy,x,y,filterSize,strides,pad3)}}},meanGradConfig={kernelName:Mean,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{axis}=attrs,axes=parseAxisParam(axis,x.shape),reduceShape=computeOutAndReduceShapes(x.shape,axes)[1],reduceSize=sizeFromShape(reduceShape);return{x:()=>{let expandedDyShape=x.shape.slice();axes.forEach(axis2=>{expandedDyShape[axis2]=1});let expandedDy=reshape(dy,expandedDyShape);return div(mul(expandedDy,ones2(x.shape,"float32")),reduceSize)}}}},minGradConfig={kernelName:Min,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let minAttrs=attrs,{axis}=minAttrs,[x,y]=saved,origAxes=parseAxisParam(axis,x.shape),minGrad=gradForMinAndMax(dy,y,x,origAxes);return{x:()=>minGrad.x()}}},minimumGradConfig={kernelName:Minimum,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved;return{a:()=>mul(dy,cast(lessEqual(a,b),"float32")),b:()=>mul(dy,cast(greater(a,b),"float32"))}}},mirrorPadGradConfig={kernelName:MirrorPad,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let x=saved[0],{paddings}=attrs,begin=paddings.map(p2=>p2[0]);return{x:()=>slice(dy,begin,x.shape)}}},modGradConfig={kernelName:Mod,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(dy,reduceAxes),a.shape):dy},b:()=>{let res=mul(dy,neg(floor(div(a,b)))),reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),b.shape):res}}}},multiplyGradConfig={kernelName:Multiply,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=mul(dy,cast(b,"float32")),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),a.shape):res},b:()=>{let res=mul(dy,cast(a,"float32")),reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),b.shape):res}}}},negGradConfig={kernelName:Neg,gradFunc:dy=>({x:()=>neg(dy)})},oneHotGradConfig={kernelName:OneHot,inputsToSave:["indices"],gradFunc:(dy,saved)=>{let indices=saved[0];return{indices:()=>zeros(indices.shape,"float32")}}},onesLikeGradConfig={kernelName:OnesLike,gradFunc:dy=>({x:()=>zerosLike(dy)})},packGradConfig={kernelName:Pack,saveAllInputs:!0,gradFunc:(dy,saved,attrs)=>{let{axis}=attrs;return unstack(dy,axis).map(t=>()=>t)}},padV2GradConfig={kernelName:PadV2,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let x=saved[0],{paddings}=attrs,begin=paddings.map(p2=>p2[0]);return{x:()=>slice(dy,begin,x.shape)}}},powGradConfig={kernelName:Pow,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(dy,saved)=>{let[a,b,y]=saved,base2=a,exp4=b,outShape=assertAndGetBroadcastShape(base2.shape,exp4.shape);return{a:()=>{let expFloat=cast(exp4,"float32"),res=mul(dy,mul(expFloat,pow(base2,sub(expFloat,scalar(1))))),reduceAxes=getReductionAxes(base2.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,base2.shape)},b:()=>{let condition=greater(base2,0),logBase=where(condition,log2(base2),zerosLike(base2)),res=mul(dy,mul(y,logBase)),reduceAxes=getReductionAxes(exp4.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,exp4.shape)}}}},preluGradConfig={kernelName:Prelu,inputsToSave:["x","alpha"],gradFunc:(dy,saved)=>{let[x,alpha]=saved,mask=greater(x,0);return{x:()=>where(mask,dy,mul(dy,alpha)),alpha:()=>{let res=where(mask,zerosLike(dy),mul(dy,x)),reduceAxes=getReductionAxes(alpha.shape,dy.shape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,alpha.shape)}}}},divGradConfig={kernelName:RealDiv,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=div(dy,cast(b,"float32")),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),a.shape):res},b:()=>{let res=mul(dy,cast(a,"float32")),reduceAxes=getReductionAxes(b.shape,outShape);reduceAxes.length>0&&(res=reshape(sum2(res,reduceAxes),b.shape));let tmp=square(b);return neg(div(res,cast(tmp,"float32")))}}}},reciprocalGradConfig={kernelName:Reciprocal,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,neg(square(x)))}}},relu6GradConfig={kernelName:Relu6,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved,mask=mul(lessEqual(x,6),step(x));return{x:()=>mul(dy,cast(mask,"float32"))}}},reluGradConfig={kernelName:Relu,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,cast(step(x),"float32"))}}},reshapeGradConfig={kernelName:Reshape,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>reshape(dy,x.shape)}}},resizeBilinearGradConfig={kernelName:ResizeBilinear,inputsToSave:["images"],gradFunc:(dy,saved,attrs)=>{let[images]=saved,inputs={dy,images};return{images:()=>ENGINE.runKernel(ResizeBilinearGrad,inputs,attrs)}}},resizeNearestNeighborGradConfig={kernelName:ResizeNearestNeighbor,inputsToSave:["images"],gradFunc:(dy,saved,attrs)=>{let[images]=saved,inputs={dy,images};return{images:()=>ENGINE.runKernel(ResizeNearestNeighborGrad,inputs,attrs)}}},reverseGradConfig={kernelName:Reverse,gradFunc:(dy,saved,attrs)=>{let{dims}=attrs,axes=parseAxisParam(dims,dy.shape);return{x:()=>reverse(dy,axes)}}},roundGradConfig={kernelName:Round,gradFunc:dy=>({x:()=>zerosLike(dy)})},rsqrtGradConfig={kernelName:Rsqrt,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>neg(div(dy,mul(pow(x,1.5),2)))}}},selectGradConfig={kernelName:Select,inputsToSave:["condition"],gradFunc:(dy,saved)=>{let[condition]=saved;return{condition:()=>cast(zerosLike(condition),"float32"),t:()=>mul(dy,cast(condition,dy.dtype)),e:()=>mul(dy,cast(logicalNot(condition),dy.dtype))}}},seluGradConfig={kernelName:Selu,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let mask=greater(x,scalar(0)),scaleAlpha2=scalar(SELU_SCALEALPHA),scale2=scalar(SELU_SCALE),greaterThanZeroDer=mul(dy,scale2),lessEqualZeroDer=mul(mul(dy,scaleAlpha2),exp(cast(x,"float32")));return where(mask,greaterThanZeroDer,lessEqualZeroDer)}}}},sigmoidGradConfig={kernelName:Sigmoid,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved;return{x:()=>mul(dy,mul(y,sub(scalar(1),y)))}}},signGradConfig={kernelName:Sign,gradFunc:dy=>({x:()=>zerosLike(dy)})},sinGradConfig={kernelName:Sin,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(cos(cast(x,"float32")),dy)}}},sinhGradConfig={kernelName:Sinh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(cosh(cast(x,"float32")),dy)}}},sliceGradConfig={kernelName:Slice,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{begin,size}=attrs,inputShape=x.shape,[begin_,size_]=parseSliceParams(x,begin,size),paddings=[];for(let i=0;ipad(dy,paddings)}}},softmaxGradConfig={kernelName:Softmax,outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[y]=saved,{dim}=attrs,keepDims=!0,dyTimesY=mul(dy,y);return{logits:()=>sub(dyTimesY,mul(sum2(dyTimesY,[dim],keepDims),y))}}},softplusGradConfig={kernelName:Softplus,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,sigmoid(x))}}},spaceToBatchNDGradConfig={kernelName:SpaceToBatchND,gradFunc:(dy,saved,attrs)=>{let{blockShape,paddings}=attrs;return{x:()=>batchToSpaceND(dy,blockShape,paddings)}}},splitVGradConfig={kernelName:SplitV,gradFunc:(dy,saved,attrs)=>{let{axis}=attrs;return{x:()=>concat(dy,axis)}}},sqrtGradConfig={kernelName:Sqrt,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,mul(sqrt(cast(x,"float32")),2))}}},squareGradConfig={kernelName:Square,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,mul(cast(x,"float32"),2))}}},squaredDifferenceGradConfig={kernelName:SquaredDifference,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,two=scalar(2);return{a:()=>mul(dy,mul(two,sub(a,b))),b:()=>mul(dy,mul(two,sub(b,a)))}}},stepGradConfig={kernelName:Step,gradFunc:dy=>({x:()=>zerosLike(dy)})},subGradConfig={kernelName:Sub,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=dy,reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,a.shape)},b:()=>{let res=dy,reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(neg(res),b.shape)}}}},sumGradConfig={kernelName:Sum,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,expandedDyShape=x.shape.slice(),{axis}=attrs;parseAxisParam(axis,x.shape).forEach(axis2=>{expandedDyShape[axis2]=1});let expandedDy=reshape(dy,expandedDyShape),derX=mul(expandedDy,ones2(x.shape,"float32"));return{x:()=>derX}}},tanGradConfig={kernelName:Tan,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,square(cos(x)))}}},tanhGradConfig={kernelName:Tanh,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved;return{x:()=>mul(sub(scalar(1),square(y)),dy)}}},tileGradConfig={kernelName:Tile,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{reps}=attrs;return{x:()=>{let xGrad=zerosLike(x);if(x.rank===1)for(let i=0;i{let transposeAttrs=attrs,{perm}=transposeAttrs,undoPerm=getUndoAxesPermutation(perm);return{x:()=>transpose(dy,undoPerm)}}},unpackGradConfig={kernelName:Unpack,gradFunc:(dy,saved,attrs)=>{let unpackAttrs=attrs,{axis}=unpackAttrs;return{value:()=>stack(dy,axis)}}},unsortedSegmentSumGradConfig={kernelName:UnsortedSegmentSum,inputsToSave:["segmentIds"],gradFunc:(dy,saved)=>{let[segmentIds]=saved;return{x:()=>gatherDropNegatives(dy,segmentIds)}}};function gatherDropNegatives(x,indices){let zeroClippedIndices=maximum(indices,zerosLike(indices)),gathered=gather(x,zeroClippedIndices),isPositive=greaterEqual(indices,scalar(0,"int32")),numIters=gathered.rank-isPositive.rank;for(let i=0;i({x:()=>zerosLike(dy)})},gradConfigs=[absGradConfig,acosGradConfig,acoshGradConfig,addGradConfig,addNGradConfig,argMaxGradConfig,argMinGradConfig,asinGradConfig,asinhGradConfig,atan2GradConfig,atanGradConfig,atanhGradConfig,avgPool3DGradConfig,avgPoolGradConfig,batchMatMulGradConfig,batchToSpaceNDGradConfig,broadcastToGradConfig,castGradConfig,ceilGradConfig,clipByValueGradConfig,complexAbsGradConfig,concatGradConfig,conv2DBackpropInputGradConfig,conv2DGradConfig,conv3DGradConfig,cosGradConfig,coshGradConfig,cumsumGradConfig,depthwiseConv2dNativeGradConfig,dilation2dGradConfig,divGradConfig,eluGradConfig,erfGradConfig,expGradConfig,expandDimsGradConfig,expm1GradConfig,floorDivGradConfig,floorGradConfig,fusedBatchNormGradConfig,gatherGradConfig,greaterEqualGradConfig,identityGradConfig,isFiniteGradConfig,isInfGradConfig,isNanGradConfig,leakyReluGradConfig,log1pGradConfig,logGradConfig,logSoftmaxGradConfig,lrnGradConfig,maxGradConfig,maxGradConfig,maximumGradConfig,maxPool3DGradConfig,maxPoolGradConfig,meanGradConfig,minGradConfig,minimumGradConfig,mirrorPadGradConfig,modGradConfig,multiplyGradConfig,negGradConfig,oneHotGradConfig,onesLikeGradConfig,packGradConfig,padV2GradConfig,padV2GradConfig,powGradConfig,preluGradConfig,reciprocalGradConfig,relu6GradConfig,reluGradConfig,reshapeGradConfig,resizeBilinearGradConfig,resizeNearestNeighborGradConfig,reverseGradConfig,roundGradConfig,rsqrtGradConfig,selectGradConfig,seluGradConfig,sigmoidGradConfig,signGradConfig,sinGradConfig,sinhGradConfig,sliceGradConfig,softmaxGradConfig,softplusGradConfig,spaceToBatchNDGradConfig,spaceToBatchNDGradConfig,splitVGradConfig,splitVGradConfig,sqrtGradConfig,squaredDifferenceGradConfig,squareGradConfig,stepGradConfig,subGradConfig,sumGradConfig,tanGradConfig,tanhGradConfig,tileGradConfig,transposeGradConfig,unpackGradConfig,unsortedSegmentSumGradConfig,zerosLikeGradConfig];for(let gradientConfig of gradConfigs)registerGradient(gradientConfig);Tensor.prototype.abs=function(){return this.throwIfDisposed(),abs(this)};Tensor.prototype.acos=function(){return this.throwIfDisposed(),acos(this)};Tensor.prototype.acosh=function(){return this.throwIfDisposed(),acosh(this)};Tensor.prototype.addStrict=function(x){return this.throwIfDisposed(),addStrict(this,x)};Tensor.prototype.add=function(b){return this.throwIfDisposed(),add2(this,b)};Tensor.prototype.all=function(axis,keepDims){return this.throwIfDisposed(),all(this,axis,keepDims)};Tensor.prototype.any=function(axis,keepDims){return this.throwIfDisposed(),any(this,axis,keepDims)};Tensor.prototype.argMax=function(axis){return this.throwIfDisposed(),argMax(this,axis)};Tensor.prototype.argMin=function(axis){return this.throwIfDisposed(),argMin(this,axis)};Tensor.prototype.asScalar=function(){return this.throwIfDisposed(),assert(this.size===1,()=>"The array must have only 1 element."),reshape(this,[])};Tensor.prototype.asType=function(dtype){return this.throwIfDisposed(),cast(this,dtype)};Tensor.prototype.as1D=function(){return this.throwIfDisposed(),reshape(this,[this.size])};Tensor.prototype.as2D=function(rows,columns){return this.throwIfDisposed(),reshape(this,[rows,columns])};Tensor.prototype.as3D=function(rows,columns,depth){return this.throwIfDisposed(),reshape(this,[rows,columns,depth])};Tensor.prototype.as4D=function(rows,columns,depth,depth2){return this.throwIfDisposed(),reshape(this,[rows,columns,depth,depth2])};Tensor.prototype.as5D=function(rows,columns,depth,depth2,depth3){return this.throwIfDisposed(),reshape(this,[rows,columns,depth,depth2,depth3])};Tensor.prototype.asin=function(){return this.throwIfDisposed(),asin(this)};Tensor.prototype.asinh=function(){return this.throwIfDisposed(),asinh(this)};Tensor.prototype.atan=function(){return this.throwIfDisposed(),atan(this)};Tensor.prototype.atan2=function(b){return this.throwIfDisposed(),atan2(this,b)};Tensor.prototype.atanh=function(){return this.throwIfDisposed(),atanh(this)};Tensor.prototype.avgPool=function(filterSize,strides,pad3,dimRoundingMode){return this.throwIfDisposed(),avgPool(this,filterSize,strides,pad3,dimRoundingMode)};Tensor.prototype.batchToSpaceND=function(blockShape,crops){return this.throwIfDisposed(),batchToSpaceND(this,blockShape,crops)};Tensor.prototype.batchNorm=function(mean4,variance,offset,scale2,varianceEpsilon){return this.throwIfDisposed(),batchNorm(this,mean4,variance,offset,scale2,varianceEpsilon)};Tensor.prototype.broadcastTo=function(shape){return this.throwIfDisposed(),broadcastTo(this,shape)};Tensor.prototype.cast=function(dtype){return this.throwIfDisposed(),cast(this,dtype)};Tensor.prototype.ceil=function(){return this.throwIfDisposed(),ceil(this)};Tensor.prototype.clipByValue=function(min6,max6){return this.throwIfDisposed(),clipByValue(this,min6,max6)};Tensor.prototype.concat=function(x,axis){return this.throwIfDisposed(),x instanceof Tensor&&(x=[x]),concat([this,...x],axis)};Tensor.prototype.conv1d=function(filter,stride,pad3,dataFormat,dilation,dimRoundingMode){return this.throwIfDisposed(),conv1d(this,filter,stride,pad3,dataFormat,dilation,dimRoundingMode)};Tensor.prototype.conv2dTranspose=function(filter,outputShape,strides,pad3,dimRoundingMode){return this.throwIfDisposed(),conv2dTranspose(this,filter,outputShape,strides,pad3,dimRoundingMode)};Tensor.prototype.conv2d=function(filter,strides,pad3,dataFormat,dilations,dimRoundingMode){return this.throwIfDisposed(),conv2d(this,filter,strides,pad3,dataFormat,dilations,dimRoundingMode)};Tensor.prototype.cos=function(){return this.throwIfDisposed(),cos(this)};Tensor.prototype.cosh=function(){return this.throwIfDisposed(),cosh(this)};Tensor.prototype.cumsum=function(axis,exclusive,reverse5){return this.throwIfDisposed(),cumsum(this,axis,exclusive,reverse5)};Tensor.prototype.depthToSpace=function(blockSize,dataFormat){return this.throwIfDisposed(),depthToSpace(this,blockSize,dataFormat)};Tensor.prototype.depthwiseConv2D=function(filter,strides,pad3,dataFormat,dilations,dimRoundingMode){return deprecationWarn("depthwiseConv2D is deprecated, use depthwiseConv2d instead"),this.throwIfDisposed(),depthwiseConv2d(this,filter,strides,pad3,dataFormat,dilations,dimRoundingMode)};Tensor.prototype.depthwiseConv2d=function(filter,strides,pad3,dataFormat,dilations,dimRoundingMode){return this.throwIfDisposed(),depthwiseConv2d(this,filter,strides,pad3,dataFormat,dilations,dimRoundingMode)};Tensor.prototype.dilation2d=function(filter,strides,pad3,dilations,dataFormat){return this.throwIfDisposed(),dilation2d(this,filter,strides,pad3,dilations,dataFormat)};Tensor.prototype.divNoNan=function(b){return this.throwIfDisposed(),divNoNan(this,b)};Tensor.prototype.divStrict=function(x){return this.throwIfDisposed(),divStrict(this,x)};Tensor.prototype.div=function(b){return this.throwIfDisposed(),div(this,b)};Tensor.prototype.dot=function(b){return this.throwIfDisposed(),dot(this,b)};Tensor.prototype.elu=function(){return this.throwIfDisposed(),elu(this)};Tensor.prototype.equalStrict=function(x){return this.throwIfDisposed(),equalStrict(this,x)};Tensor.prototype.equal=function(b){return this.throwIfDisposed(),equal(this,b)};Tensor.prototype.erf=function(){return this.throwIfDisposed(),erf(this)};Tensor.prototype.exp=function(){return this.throwIfDisposed(),exp(this)};Tensor.prototype.expandDims=function(axis){return this.throwIfDisposed(),expandDims(this,axis)};Tensor.prototype.expm1=function(){return this.throwIfDisposed(),expm1(this)};Tensor.prototype.fft=function(){return this.throwIfDisposed(),fft(this)};Tensor.prototype.flatten=function(){return this.throwIfDisposed(),reshape(this,[this.size])};Tensor.prototype.floor=function(){return this.throwIfDisposed(),floor(this)};Tensor.prototype.floorDiv=function(b){return this.throwIfDisposed(),floorDiv(this,b)};Tensor.prototype.gather=function(indices,axis){return this.throwIfDisposed(),gather(this,indices,axis)};Tensor.prototype.greaterEqualStrict=function(x){return this.throwIfDisposed(),greaterEqualStrict(this,x)};Tensor.prototype.greaterEqual=function(b){return this.throwIfDisposed(),greaterEqual(this,b)};Tensor.prototype.greaterStrict=function(x){return this.throwIfDisposed(),greaterStrict(this,x)};Tensor.prototype.greater=function(b){return this.throwIfDisposed(),greater(this,b)};Tensor.prototype.ifft=function(){return this.throwIfDisposed(),ifft(this)};Tensor.prototype.irfft=function(){return this.throwIfDisposed(),irfft(this)};Tensor.prototype.isFinite=function(){return this.throwIfDisposed(),isFinite2(this)};Tensor.prototype.isInf=function(){return this.throwIfDisposed(),isInf(this)};Tensor.prototype.isNaN=function(){return this.throwIfDisposed(),isNaN2(this)};Tensor.prototype.leakyRelu=function(alpha){return this.throwIfDisposed(),leakyRelu(this,alpha)};Tensor.prototype.lessEqualStrict=function(x){return this.throwIfDisposed(),lessEqualStrict(this,x)};Tensor.prototype.lessEqual=function(b){return this.throwIfDisposed(),lessEqual(this,b)};Tensor.prototype.lessStrict=function(x){return this.throwIfDisposed(),lessStrict(this,x)};Tensor.prototype.less=function(b){return this.throwIfDisposed(),less(this,b)};Tensor.prototype.localResponseNormalization=function(depthRadius,bias,alpha,beta){return this.throwIfDisposed(),localResponseNormalization(this,depthRadius,bias,alpha,beta)};Tensor.prototype.logSigmoid=function(){return this.throwIfDisposed(),logSigmoid(this)};Tensor.prototype.logSoftmax=function(axis){return this.throwIfDisposed(),logSoftmax(this,axis)};Tensor.prototype.logSumExp=function(axis,keepDims){return this.throwIfDisposed(),logSumExp(this,axis,keepDims)};Tensor.prototype.log=function(){return this.throwIfDisposed(),log2(this)};Tensor.prototype.log1p=function(){return this.throwIfDisposed(),log1p(this)};Tensor.prototype.logicalAnd=function(b){return this.throwIfDisposed(),logicalAnd(this,b)};Tensor.prototype.logicalNot=function(){return this.throwIfDisposed(),logicalNot(this)};Tensor.prototype.logicalOr=function(b){return this.throwIfDisposed(),logicalOr(this,b)};Tensor.prototype.logicalXor=function(b){return this.throwIfDisposed(),logicalXor(this,b)};Tensor.prototype.matMul=function(b,transposeA,transposeB){return this.throwIfDisposed(),matMul(this,b,transposeA,transposeB)};Tensor.prototype.maxPool=function(filterSize,strides,pad3,dimRoundingMode){return this.throwIfDisposed(),maxPool(this,filterSize,strides,pad3,dimRoundingMode)};Tensor.prototype.max=function(axis,keepDims){return this.throwIfDisposed(),max(this,axis,keepDims)};Tensor.prototype.maximumStrict=function(x){return this.throwIfDisposed(),maximumStrict(this,x)};Tensor.prototype.maximum=function(b){return this.throwIfDisposed(),maximum(this,b)};Tensor.prototype.mean=function(axis,keepDims){return this.throwIfDisposed(),mean(this,axis,keepDims)};Tensor.prototype.min=function(axis,keepDims){return this.throwIfDisposed(),min(this,axis,keepDims)};Tensor.prototype.minimumStrict=function(x){return this.throwIfDisposed(),minimumStrict(this,x)};Tensor.prototype.minimum=function(b){return this.throwIfDisposed(),minimum(this,b)};Tensor.prototype.mirrorPad=function(paddings,mode){return this.throwIfDisposed(),mirrorPad(this,paddings,mode)};Tensor.prototype.modStrict=function(x){return this.throwIfDisposed(),modStrict(this,x)};Tensor.prototype.mod=function(b){return this.throwIfDisposed(),mod(this,b)};Tensor.prototype.mulStrict=function(x){return this.throwIfDisposed(),mulStrict(this,x)};Tensor.prototype.mul=function(b){return this.throwIfDisposed(),mul(this,b)};Tensor.prototype.neg=function(){return this.throwIfDisposed(),neg(this)};Tensor.prototype.norm=function(ord,axis,keepDims){return this.throwIfDisposed(),norm(this,ord,axis,keepDims)};Tensor.prototype.notEqualStrict=function(x){return this.throwIfDisposed(),notEqualStrict(this,x)};Tensor.prototype.notEqual=function(b){return this.throwIfDisposed(),notEqual(this,b)};Tensor.prototype.oneHot=function(depth,onValue=1,offValue=0){return this.throwIfDisposed(),oneHot(this,depth,onValue,offValue)};Tensor.prototype.onesLike=function(){return this.throwIfDisposed(),onesLike(this)};Tensor.prototype.pad=function(paddings,constantValue){return this.throwIfDisposed(),pad(this,paddings,constantValue)};Tensor.prototype.pool=function(windowShape,poolingType,padding,dilationRate,strides){return this.throwIfDisposed(),pool(this,windowShape,poolingType,padding,dilationRate,strides)};Tensor.prototype.powStrict=function(exp4){return this.throwIfDisposed(),powStrict(this,exp4)};Tensor.prototype.pow=function(exp4){return this.throwIfDisposed(),pow(this,exp4)};Tensor.prototype.prelu=function(alpha){return this.throwIfDisposed(),prelu(this,alpha)};Tensor.prototype.prod=function(axis,keepDims){return this.throwIfDisposed(),prod(this,axis,keepDims)};Tensor.prototype.reciprocal=function(){return this.throwIfDisposed(),reciprocal(this)};Tensor.prototype.relu=function(){return this.throwIfDisposed(),relu(this)};Tensor.prototype.relu6=function(){return this.throwIfDisposed(),relu6(this)};Tensor.prototype.reshapeAs=function(x){return this.throwIfDisposed(),reshape(this,x.shape)};Tensor.prototype.reshape=function(shape){return this.throwIfDisposed(),reshape(this,shape)};Tensor.prototype.resizeBilinear=function(newShape2D,alignCorners,halfPixelCenters){return this.throwIfDisposed(),resizeBilinear(this,newShape2D,alignCorners,halfPixelCenters)};Tensor.prototype.resizeNearestNeighbor=function(newShape2D,alignCorners,halfFloatCenters){return this.throwIfDisposed(),resizeNearestNeighbor(this,newShape2D,alignCorners,halfFloatCenters)};Tensor.prototype.reverse=function(axis){return this.throwIfDisposed(),reverse(this,axis)};Tensor.prototype.rfft=function(){return this.throwIfDisposed(),rfft(this)};Tensor.prototype.round=function(){return this.throwIfDisposed(),round2(this)};Tensor.prototype.rsqrt=function(){return this.throwIfDisposed(),rsqrt(this)};Tensor.prototype.selu=function(){return this.throwIfDisposed(),selu(this)};Tensor.prototype.separableConv2d=function(depthwiseFilter,pointwiseFilter,strides,pad3,dilation,dataFormat){return this.throwIfDisposed(),separableConv2d(this,depthwiseFilter,pointwiseFilter,strides,pad3,dilation,dataFormat)};Tensor.prototype.sigmoid=function(){return this.throwIfDisposed(),sigmoid(this)};Tensor.prototype.sign=function(){return this.throwIfDisposed(),sign(this)};Tensor.prototype.sin=function(){return this.throwIfDisposed(),sin(this)};Tensor.prototype.sinh=function(){return this.throwIfDisposed(),sinh(this)};Tensor.prototype.slice=function(begin,size){return this.throwIfDisposed(),slice(this,begin,size)};Tensor.prototype.softmax=function(dim){return this.throwIfDisposed(),softmax(this,dim)};Tensor.prototype.softplus=function(){return this.throwIfDisposed(),softplus(this)};Tensor.prototype.spaceToBatchND=function(blockShape,paddings){return this.throwIfDisposed(),spaceToBatchND(this,blockShape,paddings)};Tensor.prototype.split=function(numOrSizeSplits,axis){return this.throwIfDisposed(),split(this,numOrSizeSplits,axis)};Tensor.prototype.sqrt=function(){return this.throwIfDisposed(),sqrt(this)};Tensor.prototype.square=function(){return this.throwIfDisposed(),square(this)};Tensor.prototype.squaredDifference=function(b){return this.throwIfDisposed(),squaredDifference(this,b)};Tensor.prototype.squaredDifferenceStrict=function(x){return this.throwIfDisposed(),squaredDifferenceStrict(this,x)};Tensor.prototype.squeeze=function(axis){return this.throwIfDisposed(),squeeze(this,axis)};Tensor.prototype.stack=function(x,axis){this.throwIfDisposed();let tensorsToBeStacked=x instanceof Tensor?[this,x]:[this,...x];return stack(tensorsToBeStacked,axis)};Tensor.prototype.step=function(alpha){return this.throwIfDisposed(),step(this,alpha)};Tensor.prototype.stridedSlice=function(begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask){return this.throwIfDisposed(),stridedSlice(this,begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask)};Tensor.prototype.subStrict=function(x){return this.throwIfDisposed(),subStrict(this,x)};Tensor.prototype.sub=function(b){return this.throwIfDisposed(),sub(this,b)};Tensor.prototype.sum=function(axis,keepDims){return this.throwIfDisposed(),sum2(this,axis,keepDims)};Tensor.prototype.tan=function(){return this.throwIfDisposed(),tan(this)};Tensor.prototype.tanh=function(){return this.throwIfDisposed(),tanh2(this)};Tensor.prototype.tile=function(reps){return this.throwIfDisposed(),tile(this,reps)};Tensor.prototype.toBool=function(){return this.throwIfDisposed(),cast(this,"bool")};Tensor.prototype.toFloat=function(){return this.throwIfDisposed(),cast(this,"float32")};Tensor.prototype.toInt=function(){return this.throwIfDisposed(),cast(this,"int32")};Tensor.prototype.topk=function(k,sorted){return this.throwIfDisposed(),topk(this,k,sorted)};Tensor.prototype.transpose=function(perm){return this.throwIfDisposed(),transpose(this,perm)};Tensor.prototype.unique=function(axis){return this.throwIfDisposed(),unique(this,axis)};Tensor.prototype.unsortedSegmentSum=function(segmentIds,numSegments){return this.throwIfDisposed(),unsortedSegmentSum(this,segmentIds,numSegments)};Tensor.prototype.unstack=function(axis){return this.throwIfDisposed(),unstack(this,axis)};Tensor.prototype.where=function(condition,x){return this.throwIfDisposed(),where(condition,this,x)};Tensor.prototype.zerosLike=function(){return this.throwIfDisposed(),zerosLike(this)};function assertNotComplex(tensor2,opName){Array.isArray(tensor2)||(tensor2=[tensor2]),tensor2.forEach(t=>{t!=null&&util_exports.assert(t.dtype!=="complex64",()=>`${opName} does not support complex64 tensors in the CPU backend.`)})}var whereImpl2=kernel_impls_exports.whereImpl,MathBackendCPU=class extends KernelBackend{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new DataStorage(this,engine())}write(values,shape,dtype){this.firstUse&&(this.firstUse=!1,env().get("IS_NODE")&&backend_util_exports.warn(` ============================ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. @@ -4040,19 +4040,19 @@ return a / b;`,DIV_PACKED=` } setOutput(${returnValue}); } - `}};function unsortedSegmentSum3(args){let{inputs,backend:backend22,attrs}=args,{x,segmentIds}=inputs,{numSegments}=attrs,xRank=x.shape.length,toDispose=[],axis=0,permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!=null&&(permutedX=transpose3({inputs:{x},backend:backend22,attrs:{perm:permutation}}),toDispose.push(permutedX),axis=backend_util_exports.getInnerMostAxes(1,xRank)[0]);let outShape=backend_util_exports.segment_util.computeOutShape(permutedX.shape,axis,numSegments),inSize=util_exports.sizeFromShape([permutedX.shape[axis]]),a2D=reshape3({inputs:{x:permutedX},backend:backend22,attrs:{shape:[-1,inSize]}});toDispose.push(a2D);let outputDType=sumOutType(x.dtype),segOpCompute=(x2,segOpType,segmentIds2,dtype,numSegments2)=>{let batchSize=x2.shape[0],inSize2=x2.shape[1],windowSize=backend_util_exports.segment_util.segOpComputeOptimalWindowSize(inSize2,numSegments2),segOpInfo={windowSize,inSize:inSize2,batchSize,numSegments:numSegments2},program=new SegmentOpProgram(segOpInfo,segOpType),output=backend22.compileAndRun(program,[x2,segmentIds2],dtype);if(toDispose.push(output),output.shape[1]===numSegments2)return output;let rangeInfo=range3({backend:backend22,attrs:{start:0,stop:numSegments2,step:1,dtype:"float32"}}),tileInfo=tile3({inputs:{x:rangeInfo},backend:backend22,attrs:{reps:[inSize2/windowSize]}});return toDispose.push(rangeInfo),toDispose.push(tileInfo),segOpCompute(output,segOpType,tileInfo,dtype,numSegments2)},segOpResult=segOpCompute(a2D,"unsortedSegmentSum",segmentIds,outputDType,numSegments),reshaped=reshape3({inputs:{x:segOpResult},backend:backend22,attrs:{shape:outShape}}),result=reshaped;if(permutation!=null){toDispose.push(reshaped);let perm=backend_util_exports.getUndoAxesPermutation(permutation);result=transpose3({inputs:{x:result},backend:backend22,attrs:{perm}})}return toDispose.forEach(t=>backend22.disposeIntermediateTensorInfo(t)),result}var unsortedSegmentSumConfig2={kernelName:UnsortedSegmentSum,backendName:"webgl",kernelFunc:unsortedSegmentSum3},kernelConfigs2=[LRNConfig,LRNGradConfig,_fusedMatMulConfig2,absConfig2,acosConfig2,acoshConfig2,addConfig2,addNConfig2,allConfig2,anyConfig2,argMaxConfig2,argMinConfig2,asinConfig2,asinhConfig2,atan2Config2,atanConfig2,atanhConfig2,avgPool3DConfig2,avgPoolConfig2,avgPoolGrad3DConfig,avgPoolGradConfig3,batchMatMulConfig2,batchNormConfig2,batchToSpaceNDConfig2,bincountConfig2,castConfig2,ceilConfig2,clipByValueConfig,complexAbsConfig2,complexConfig2,concatConfig2,conv2DBackpropFilterConfig2,conv2DBackpropInputConfig2,conv2DConfig2,conv3DBackpropFilterV2Config2,conv3DBackpropInputConfig,conv3DConfig2,cosConfig2,coshConfig2,cropAndResizeConfig2,cumsumConfig2,denseBincountConfig2,depthToSpaceConfig2,depthwiseConv2dNativeBackpropFilterConfig2,depthwiseConv2dNativeBackpropInputConfig2,depthwiseConv2dNativeConfig2,diagConfig2,dilation2DConfig,eluConfig2,eluGradConfig3,equalConfig2,erfConfig2,expConfig2,expandDimsConfig2,expm1Config2,fftConfig2,fillConfig2,flipLeftRightConfig2,floorConfig2,floorDivConfig2,fromPixelsConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig2,gatherV2Config2,greaterConfig2,greaterEqualConfig2,identityConfig2,ifftConfig2,imagConfig2,isFiniteConfig2,isInfConfig2,isNaNConfig2,leakyReluConfig2,lessConfig2,lessEqualConfig2,linSpaceConfig2,log1pConfig2,logConfig2,logicalAndConfig2,logicalNotConfig2,logicalOrConfig2,maxConfig2,maxPool3DConfig2,maxPoolConfig2,maxPoolGrad3DConfig,maxPoolGradConfig3,maxPoolWithArgmaxConfig2,maximumConfig2,meanConfig2,minConfig2,minimumConfig2,mirrorPadConfig2,modConfig2,multinomialConfig2,multiplyConfig2,negConfig2,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config2,nonMaxSuppressionV5Config2,notEqualConfig2,oneHotConfig2,onesLikeConfig2,packConfig2,padV2Config2,powConfig2,preluConfig2,prodConfig2,rangeConfig2,realConfig2,realDivConfig2,reciprocalConfig2,relu6Config2,reluConfig2,reshapeConfig2,resizeBilinearConfig2,resizeBilinearGradConfig3,resizeNearestNeighborConfig2,resizeNearestNeighborGradConfig3,reverseConfig2,rotateWithOffsetConfig2,roundConfig2,rsqrtConfig2,scatterNdConfig2,selectConfig2,seluConfig2,sigmoidConfig2,signConfig2,sinConfig2,sinhConfig2,sliceConfig2,softmaxConfig2,softplusConfig2,spaceToBatchNDConfig2,sparseToDenseConfig2,splitVConfig2,sqrtConfig2,squareConfig2,squaredDifferenceConfig2,stepConfig2,stridedSliceConfig2,subConfig2,sumConfig2,tanConfig2,tanhConfig2,tileConfig2,topKConfig2,transposeConfig2,uniqueConfig2,unpackConfig2,unsortedSegmentSumConfig2,zerosLikeConfig2];for(let kernelConfig of kernelConfigs2)registerKernel(kernelConfig);var CppDType;(function(CppDType2){CppDType2[CppDType2.float32=0]="float32",CppDType2[CppDType2.int32=1]="int32",CppDType2[CppDType2.bool=2]="bool",CppDType2[CppDType2.string=3]="string",CppDType2[CppDType2.complex64=4]="complex64"})(CppDType||(CppDType={}));var FusableActivation;(function(FusableActivation2){FusableActivation2[FusableActivation2.linear=0]="linear",FusableActivation2[FusableActivation2.relu=1]="relu",FusableActivation2[FusableActivation2.relu6=2]="relu6",FusableActivation2[FusableActivation2.prelu=3]="prelu",FusableActivation2[FusableActivation2.leakyrelu=4]="leakyrelu"})(FusableActivation||(FusableActivation={}));var wasmFusedMatMul;function setup(backend22){wasmFusedMatMul=backend22.wasm.cwrap(_FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function fusedBatchMatMul(args){let{inputs,backend:backend22,attrs}=args,{a,b,bias,preluActivationWeights}=inputs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA,transposeB,activation:activation2,leakyreluAlpha}=attrs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${biasData.shape.length}.`);biasId=biasData.id}let preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id,fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let leftDim=transposeA?a.shape[2]:a.shape[1],rightDim=transposeB?b.shape[1]:b.shape[2],batchDim=a.shape[0],out=backend22.makeOutput([batchDim,leftDim,rightDim],a.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer);return wasmFusedMatMul(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,transposeA,transposeB,fusedActivation,biasId,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedMatMulConfig={kernelName:_FusedMatMul,backendName:"wasm",setupFunc:setup,kernelFunc:fusedBatchMatMul};function createUnaryKernelConfig(kernelName){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","number"])}function kernelFunc3(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc9(xId,outId),out}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var absConfig3=createUnaryKernelConfig(Abs);function createBinaryKernelConfig(kernelName,supportsFullBroadcast17,dtype){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","array","number","number","array","number","number","number"])}function kernelFunc3(args){let{backend:backend22,inputs}=args,{a,b}=inputs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,outputType=dtype!=null?dtype:a.dtype,newShape=backend_util_exports.assertAndGetBroadcastShape(a.shape,b.shape),out=backend22.makeOutput(newShape,outputType);if(util_exports.sizeFromShape(newShape)===0)return out;let aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer),outId=backend22.dataIdMap.get(out.dataId).id,kernelFunc4=()=>wasmFunc9(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;let aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast),wasmFunc;function setupFunc(backend22){wasmFunc=backend22.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){let{inputs,backend:backend22}=args,out=backend22.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;let inputIds=inputs.map(x=>backend22.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}var addNConfig3={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity3(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity3},wasmTranspose;function setup2(backend22){wasmTranspose=backend22.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose4(args){let{inputs,backend:backend22,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm),permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}var transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose4,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend22){let xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape),axes=originalAxes,permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank),xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){let newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}var reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape4},wasmBatchMatMul;function setup5(backend22){wasmBatchMatMul=backend22.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul3(args){let{inputs,backend:backend22,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);let outShape=(batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2)).concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape4({inputs:{x:a},backend:backend22,attrs:{shape:a3dShape}}),b3d=reshape4({inputs:{x:b},backend:backend22,attrs:{shape:b3dShape}}),a3dId=backend22.dataIdMap.get(a3d.dataId).id,b3dId=backend22.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend22.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}var batchMatMulConfig3={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul3};function cast4(args){let{inputs:{x},attrs:{dtype},backend:backend22}=args,out=backend22.makeOutput(x.shape,dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast4},wasmClip;function setup6(backend22){wasmClip=backend22.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}var clipByValueConfig2={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat4(args){let{inputs,backend:backend22}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),$inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return identity3({inputs:{x:$inputs[0]},backend:backend22});let out=backend22.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;let shapes=$inputs.map(t=>t.shape);if(backend_util_exports.assertParamsConsistent(shapes,axis),$inputs[0].dtype==="string"){let inputs2D=$inputs.map(t=>{let innerSize=util_exports.sizeFromShape(t.shape.slice(axis));return reshape4({inputs:{x:t},backend:backend22,attrs:{shape:[-1,innerSize]}})}),inputsValShapes=inputs2D.map(t=>({vals:backend22.readSync(t.dataId),shape:t.shape}));outShape=backend_util_exports.computeOutShape(inputs2D.map(t=>t.shape),1);let simplyConcat=inputs2D[0].shape[0]===1,outVals2=concatImpl(inputsValShapes,outShape,inputs[0].dtype,simplyConcat),finalOutShape=backend_util_exports.computeOutShape($inputs.map(t=>t.shape),axis);out.shape=finalOutShape;let outData=backend22.dataIdMap.get(out.dataId);return outData.stringBytes=backend_util_exports.fromStringArrayToUint8(outVals2),out}let batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis)),sumInnerDims=0,innerDims=$inputs.map(input2=>{let innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend22.typedArrayFromHeap(input2)),outVals=backend22.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);let permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!==null&&(permutedX=transpose4({inputs:{x},attrs:{perm:permutation},backend:backend22}));let permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);let permutedOut=backend22.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend22.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend22.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse5?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){let undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose4({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend22}),backend22.disposeData(permutedX.dataId),backend22.disposeData(permutedOut.dataId)}return out}var cumsumConfig3={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum4},wasmDepthToSpace;function setup11(backend22){wasmDepthToSpace=backend22.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);let batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend22.makeOutput(outputShape,"float32"),xId=backend22.dataIdMap.get(x.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthToSpace(xId,blockSize,dataFormat==="NHWC"?1:0,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}var depthToSpaceConfig3={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace4},wasmDepthwiseConv2d;function setup12(backend22){wasmDepthwiseConv2d=backend22.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d3(args){let{inputs,attrs,backend:backend22}=args,{x,filter}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad3,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var depthwiseConv2dNativeConfig3={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d3},supportsFullBroadcast2=!1,equalConfig3=createBinaryKernelConfig(Equal,supportsFullBroadcast2,"bool"),expConfig3=createUnaryKernelConfig(Exp);function expandDims4(args){let{inputs,attrs,backend:backend22}=args,{input:input2}=inputs,{dim}=attrs,inputRank=input2.shape.length,newShape=input2.shape.slice(),$dim=dim;return dim<0&&(util_exports.assert(-(inputRank+1)<=dim,()=>`Axis must be in the interval [${-(inputRank+1)}, ${inputRank}]`),$dim=inputRank+dim+1),newShape.splice($dim,0,1),reshape4({inputs:{x:input2},backend:backend22,attrs:{shape:newShape}})}var expandDimsConfig3={kernelName:ExpandDims,backendName:"wasm",kernelFunc:expandDims4};function fill4(args){let{attrs:{shape,value,dtype},backend:backend22}=args,out=backend22.makeOutput(shape,dtype);return backend22.typedArrayFromHeap(out).fill(value),out}var fillConfig3={kernelName:Fill,backendName:"wasm",kernelFunc:fill4},wasmFlipLeftRight;function setup13(backend22){wasmFlipLeftRight=backend22.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){let{inputs,backend:backend22}=args,{image:image3}=inputs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}var flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},floorConfig3=createUnaryKernelConfig(Floor),supportsFullBroadcast3=!1,floorDivConfig3=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast3),wasmBatchNorm;function setup14(backend22){wasmBatchNorm=backend22.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){let{backend:backend22,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean4,variance,offset,scale:scale2}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,meanId=backend22.dataIdMap.get(mean4.dataId).id,varianceId=backend22.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend22.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend22.dataIdMap.get(scale2.dataId).id:0,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}var fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm},wasmFusedConv2d;function setup15(backend22){wasmFusedConv2d=backend22.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d2(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedConv2DConfig3={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d2},wasmFusedDepthwiseConv2d;function setup16(backend22){wasmFusedDepthwiseConv2d=backend22.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedDepthwiseConv2DConfig3={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d},wasmGatherNd;function setup17(backend22){wasmGatherNd=backend22.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd3(args){let{backend:backend22,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend22.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xId=backend22.dataIdMap.get(params.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}var gatherNdConfig3={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd3},wasmGather;function setup18(backend22){wasmGather=backend22.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV23(args){let{backend:backend22,inputs,attrs}=args,{x,indices}=inputs,{axis,batchDims}=attrs,parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis,batchDims),flattenX=reshape4({inputs:{x},attrs:{shape:[shapeInfo.batchSize,shapeInfo.outerSize,shapeInfo.dimSize,shapeInfo.sliceSize]},backend:backend22}),indicesSize=util_exports.sizeFromShape(indices.shape),flattenIndex=reshape4({inputs:{x:indices},attrs:{shape:[shapeInfo.batchSize,indicesSize/shapeInfo.batchSize]},backend:backend22}),flattenOutputShape=[shapeInfo.batchSize,shapeInfo.outerSize,indicesSize/shapeInfo.batchSize,shapeInfo.sliceSize],out=backend22.makeOutput(flattenOutputShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let stridesSize=flattenX.shape.length-1,xId=backend22.dataIdMap.get(flattenX.dataId).id,indicesId=backend22.dataIdMap.get(flattenIndex.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenX.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenOutputShape)).buffer);return wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,shapeInfo.batchSize,outStridesBytes,outId),out.shape=shapeInfo.outputShape,out}var gatherV2Config3={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV23},supportsFullBroadcast4=!1,greaterConfig3=createBinaryKernelConfig(Greater,supportsFullBroadcast4,"bool"),supportsFullBroadcast5=!1,greaterEqualConfig3=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast5,"bool"),wasmFunc3;function setupFunc2(backend22){wasmFunc3=backend22.wasm.cwrap(LeakyRelu,null,["number","number","number"])}function leakyRelu4(args){let{inputs:{x},attrs:{alpha},backend:backend22}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmFunc3(xId,alpha,outId)}return out}var leakyReluConfig3={kernelName:LeakyRelu,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:leakyRelu4},supportsFullBroadcast6=!1,lessConfig3=createBinaryKernelConfig(Less,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessEqualConfig3=createBinaryKernelConfig(LessEqual,supportsFullBroadcast7,"bool"),logConfig3=createUnaryKernelConfig(Log),supportsFullBroadcast8=!1,logicalAndConfig3=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast8,"bool"),wasmMax;function setup19(backend22){wasmMax=backend22.wasm.cwrap(Max,null,["number, number, number"])}function max4(args){let{backend:backend22,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,inputId=backend22.dataIdMap.get(x.dataId).id,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max4},supportsFullBroadcast9=!1,maximumConfig3=createBinaryKernelConfig(Maximum,supportsFullBroadcast9),wasmMaxPool;function setup20(backend22){wasmMaxPool=backend22.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){let{inputs,attrs,backend:backend22}=args,x=inputs.x,xId=backend22.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad3,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad3,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4},wasmMean;function setup21(backend22){wasmMean=backend22.wasm.cwrap(Mean,null,["number, number, number"])}function mean3(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("mean",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),castedInput=input2;input2.dtype!=="float32"&&(castedInput=cast4({backend:backend22,inputs:{x:input2},attrs:{dtype:"float32"}}),inputId=backend22.dataIdMap.get(castedInput.dataId).id);let out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMean(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return input2.dtype!=="float32"&&backend22.disposeData(castedInput.dataId),out}var meanConfig3={kernelName:Mean,backendName:"wasm",setupFunc:setup21,kernelFunc:mean3},wasmMin;function setup22(backend22){wasmMin=backend22.wasm.cwrap(Min,null,["number, number, number"])}function min4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var minConfig3={kernelName:Min,backendName:"wasm",setupFunc:setup22,kernelFunc:min4},supportsFullBroadcast10=!1,minimumConfig3=createBinaryKernelConfig(Minimum,supportsFullBroadcast10),supportsFullBroadcast11=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast11),negConfig3=createUnaryKernelConfig(Neg);function parseResultStruct(backend22,resOffset){let result=new Int32Array(backend22.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend22.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}var wasmFunc4;function setup23(backend22){wasmFunc4=backend22.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);return backend22.wasm._free(pSelectedScores),backend22.wasm._free(pValidOutputs),backend22.makeOutput([selectedSize],"int32",pSelectedIndices)}var nonMaxSuppressionV3Config3={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup23,kernelFunc},wasmFunc5;function setup24(backend22){wasmFunc5=backend22.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV43(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pSelectedScores);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend22.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}var nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup24,kernelFunc:nonMaxSuppressionV43},wasmFunc6;function setup25(backend22){wasmFunc6=backend22.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc6(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pValidOutputs);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend22.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}var nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup25,kernelFunc:kernelFunc2},supportsFullBroadcast12=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast12,"bool"),wasmOneHot;function setup26(backend22){wasmOneHot=backend22.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot4(args){let{inputs,backend:backend22,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend22.makeOutput([...indices.shape,depth],"int32"),outId=backend22.dataIdMap.get(out.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}var oneHotConfig3={kernelName:OneHot,backendName:"wasm",setupFunc:setup26,kernelFunc:oneHot4};function onesLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(1),out}var onesLikeConfig3={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike4};function pack3(args){let{inputs,backend:backend22,attrs}=args,{axis}=attrs;if(inputs.length===1)return expandDims4({inputs:{input:inputs[0]},backend:backend22,attrs:{dim:axis}});let shape=inputs[0].shape,dtype=inputs[0].dtype;inputs.forEach(t=>{util_exports.assertShapesMatch(shape,t.shape,"All tensors passed to stack must have matching shapes"),util_exports.assert(dtype===t.dtype,()=>"All tensors passed to stack must have matching dtypes")});let expandedTensors=inputs.map(t=>expandDims4({inputs:{input:t},backend:backend22,attrs:{dim:axis}}));return concat4({inputs:expandedTensors,backend:backend22,attrs:{axis}})}var packConfig3={kernelName:Pack,backendName:"wasm",kernelFunc:pack3},wasmPadV2;function setup27(backend22){wasmPadV2=backend22.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad2(args){let{inputs:{x},backend:backend22,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(outShape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}var padV2Config3={kernelName:PadV2,backendName:"wasm",kernelFunc:pad2,setupFunc:setup27},supportsFullBroadcast13=!1,powConfig3=createBinaryKernelConfig(Pow,supportsFullBroadcast13),wasmPrelu;function setup28(backend22){wasmPrelu=backend22.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu4(args){let{inputs,backend:backend22}=args,{x,alpha}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,weightsId=backend22.dataIdMap.get(alpha.dataId).id,out=backend22.makeOutput(x.shape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}var preluConfig3={kernelName:Prelu,backendName:"wasm",setupFunc:setup28,kernelFunc:prelu4},wasmProd;function setup29(backend22){wasmProd=backend22.wasm.cwrap(Prod,null,["number","number","number","number"])}function prod4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("prod",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmProd(inputId,reduceSize,CppDType[out.dtype],outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var prodConfig3={kernelName:Prod,backendName:"wasm",setupFunc:setup29,kernelFunc:prod4},range4=args=>{let{backend:backend22,attrs}=args,{start,stop,step:step4,dtype}=attrs,values=rangeImpl(start,stop,step4,dtype),out=backend22.makeOutput([values.length],dtype);return backend22.typedArrayFromHeap(out).set(values),out},rangeConfig3={kernelName:Range,backendName:"wasm",kernelFunc:range4},supportsFullBroadcast14=!0,realDivConfig3=createBinaryKernelConfig(RealDiv,supportsFullBroadcast14),reluConfig3=createUnaryKernelConfig(Relu),relu6Config3=createUnaryKernelConfig(Relu6),wasmResizeBilinear;function setup30(backend22){wasmResizeBilinear=backend22.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number","number"])}function resizeBilinear4(args){let{backend:backend22,inputs,attrs}=args,{images}=inputs,{alignCorners,halfPixelCenters,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels],xData=backend22.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast4({backend:backend22,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend22.dataIdMap.get(castedData.dataId));let xId=xData.id,out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,halfPixelCenters?1:0,outId),castedData!=null&&backend22.disposeData(castedData.dataId),out}var resizeBilinearConfig3={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup30,kernelFunc:resizeBilinear4},wasmReverse;function setup31(backend22){wasmReverse=backend22.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity3({inputs:{x},backend:backend22});let out=backend22.makeOutput(x.shape,x.dtype),xId=backend22.dataIdMap.get(x.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape4({inputs:{x:out},attrs:{shape:x.shape},backend:backend22})}var reverseConfig3={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse4,setupFunc:setup31},wasmRotate;function setup32(backend22){wasmRotate=backend22.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){let{inputs,backend:backend22,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}var rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup32},roundConfig3=createUnaryKernelConfig(Round),rsqrtConfig3=createUnaryKernelConfig(Rsqrt),wasmScatterNd;function setup33(backend22){wasmScatterNd=backend22.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd3(args){let{backend:backend22,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend22.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;let{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesId=backend22.dataIdMap.get(indices.dataId).id,updatesId=backend22.dataIdMap.get(updates.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}var scatterNdConfig3={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup33,kernelFunc:scatterNd3},wasmSelect;function setup34(backend22){wasmSelect=backend22.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function select3(args){let{inputs,backend:backend22}=args,{condition,t,e}=inputs,conditionId=backend22.dataIdMap.get(condition.dataId).id,tId=backend22.dataIdMap.get(t.dataId).id,eId=backend22.dataIdMap.get(e.dataId).id,out=backend22.makeOutput(t.shape,t.dtype),outId=backend22.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}var selectConfig3={kernelName:Select,backendName:"wasm",kernelFunc:select3,setupFunc:setup34},wasmFunc7;function setup35(backend22){wasmFunc7=backend22.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid4(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId),out}var sigmoidConfig3={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup35,kernelFunc:sigmoid4},sinConfig3=createUnaryKernelConfig(Sin);function slice4(args){let{inputs:{x},attrs:{begin,size},backend:backend22}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend22.readSync(x.dataId),out=backend22.makeOutput(size_,x.dtype),xStrides=util_exports.computeStrides(x.shape),outData=backend22.dataIdMap.get(out.dataId);if(isContinous){let flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return x.dtype==="string"?outData.stringBytes=xVals.slice(flatOffset,flatOffset+util_exports.sizeFromShape(size_)):backend22.typedArrayFromHeap(out).set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}if(x.dtype==="string"){let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);return outData.stringBytes=res,out}let outVals=backend22.typedArrayFromHeap(out),rank=x.shape.length;if(rank===2)slice2d2(xVals,xStrides[0],outVals,begin_,size_);else if(rank===3)slice3d2(xVals,xStrides[0],xStrides[1],outVals,begin_,size_);else if(rank===4)slice4d2(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_);else{let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);outVals.set(res)}return out}function slice2d2(xVals,xStride,outVals,begin,size){let outOffset=0,beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;i{let xSliceSize=[...size];xSliceSize[$axis]=s;let xSlice=slice4({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend22});return begin[$axis]+=s,xSlice})}var splitVConfig3={kernelName:SplitV,backendName:"wasm",kernelFunc:splitV3},sqrtConfig3=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15),wasmStridedSlice;function setup37(backend22){wasmStridedSlice=backend22.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));let{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});let xReshaped=reshape4({inputs:{x},attrs:{shape:newShape},backend:backend22}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;let shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});let size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);if(strides.every(v=>v===1)){let xSliced=slice4({inputs:{x},attrs:{begin,size},backend:backend22});return reshape4({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend22})}let out=backend22.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){let xId=backend22.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape4({inputs:{x:out},attrs:{shape:outShape},backend:backend22})}var stridedSliceConfig3={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup37,kernelFunc:stridedSlice4},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16),wasmSum;function setup38(backend22){wasmSum=backend22.wasm.cwrap(Sum,null,["number, number, number"])}function sum5(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var sumConfig3={kernelName:Sum,backendName:"wasm",setupFunc:setup38,kernelFunc:sum5},tanhConfig3=createUnaryKernelConfig(Tanh),wasmTile;function setup39(backend22){wasmTile=backend22.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i{let{x}=inputs,{k,sorted}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),outputShape=x.shape.slice();outputShape[outputShape.length-1]=k;let outValues=backend22.makeOutput(outputShape,x.dtype),outValuesId=backend22.dataIdMap.get(outValues.dataId).id,outIndices=backend22.makeOutput(outputShape,"int32"),outIndicesId=backend22.dataIdMap.get(outIndices.dataId).id;return wasmTopK(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],k,sorted,outValuesId,outIndicesId),[outValues,outIndices]},topKConfig3={kernelName:TopK,backendName:"wasm",setupFunc:setup40,kernelFunc:topk2};function unpack3(args){let{inputs,backend:backend22,attrs}=args,{value}=inputs,{axis}=attrs;axis<0&&(axis+=value.shape.length);let numOutputs=value.shape[axis],rank=value.shape.length,outShape=new Array(rank-1),outIndex=0;for(let i=0;i({dataId,dtype,shape:outShape}))}var unpackConfig3={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack3};function zerosLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(0),out}var zerosLikeConfig3={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike4},kernelConfigs3=[absConfig3,addConfig3,addNConfig3,argMaxConfig3,avgPoolConfig3,batchMatMulConfig3,castConfig3,clipByValueConfig2,concatConfig3,conv2DConfig3,conv2DBackpropInputConfig3,cosConfig3,cropAndResizeConfig3,cumsumConfig3,depthToSpaceConfig3,depthwiseConv2dNativeConfig3,equalConfig3,expConfig3,expandDimsConfig3,fillConfig3,flipLeftRightConfig3,floorConfig3,floorDivConfig3,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig3,fusedDepthwiseConv2DConfig3,gatherNdConfig3,gatherV2Config3,greaterConfig3,greaterEqualConfig3,identityConfig3,leakyReluConfig3,lessConfig3,lessEqualConfig3,logConfig3,logicalAndConfig3,maxConfig3,maximumConfig3,maxPoolConfig3,meanConfig3,minConfig3,minimumConfig3,multiplyConfig3,negConfig3,nonMaxSuppressionV3Config3,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig3,onesLikeConfig3,packConfig3,padV2Config3,powConfig3,preluConfig3,prodConfig3,rangeConfig3,realDivConfig3,reluConfig3,relu6Config3,reshapeConfig3,resizeBilinearConfig3,reverseConfig3,rotateWithOffsetConfig3,rsqrtConfig3,roundConfig3,scatterNdConfig3,selectConfig3,sigmoidConfig3,sinConfig3,sliceConfig3,softmaxConfig3,splitVConfig3,sqrtConfig3,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig3,subConfig3,sumConfig3,tanhConfig3,tileConfig3,topKConfig3,transposeConfig3,unpackConfig3,zerosLikeConfig3];for(let kernelConfig of kernelConfigs3)registerKernel(kernelConfig);var ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var import_tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',import_tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),BackendWasm=class extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine())}write(values,shape,dtype){let dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){let start=util_exports.now();return f(),{kernelMs:util_exports.now()-start}}move(dataId,values,shape,dtype){let id=this.dataIdNextNumber++;if(dtype==="string"){let stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}let size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){let{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;let bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){let data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};let id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});let size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){let buffer2=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer2,memoryOffset,size);case"int32":return new Int32Array(buffer2,memoryOffset,size);case"bool":return new Uint8Array(buffer2,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}};function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){let[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{let factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){let response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=import_tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+import_tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=import_tfjs_backend_wasm.default(factoryConfig);let voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{initialized||initAborted||(initAborted=!0,reject({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))}})}function typedArrayFromBuffer(buffer2,dtype){switch(dtype){case"float32":return new Float32Array(buffer2);case"int32":return new Int32Array(buffer2);case"bool":return new Uint8Array(buffer2);default:throw new Error(`Unknown dtype ${dtype}`)}}var wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;let missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}var version9="2.8.3",WASM_PRIORITY=2;registerBackend("wasm",async()=>{let{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);var exports_constraints_exports={};__export2(exports_constraints_exports,{maxNorm:()=>maxNorm,minMaxNorm:()=>minMaxNorm,nonNeg:()=>nonNeg,unitNorm:()=>unitNorm});var _epsilon;function epsilon2(){return _epsilon==null&&(_epsilon=backend().epsilon()),_epsilon}function imageDataFormat(){return"channelsLast"}var AttributeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AttributeError.prototype)}},RuntimeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,RuntimeError.prototype)}},ValueError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,ValueError.prototype)}},NotImplementedError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,NotImplementedError.prototype)}},AssertionError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AssertionError.prototype)}},IndexError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,IndexError.prototype)}};function pyListRepeat(value,numValues){if(Array.isArray(value)){let newArray=[];for(let i=0;ip1.toUpperCase())}var _GLOBAL_CUSTOM_OBJECTS={};function serializeKerasObject(instance){if(instance==null)return null;let dict={};return dict.className=instance.getClassName(),dict.config=instance.getConfig(),dict}function convertNDArrayScalarsInConfig(config3){if(!(config3==null||typeof config3!="object"))if(Array.isArray(config3))config3.forEach(configItem=>convertNDArrayScalarsInConfig(configItem));else{let fields=Object.keys(config3);for(let field of fields){let value=config3[field];value!=null&&typeof value=="object"&&(!Array.isArray(value)&&value.type==="ndarray"&&typeof value.value=="number"?config3[field]=value.value:convertNDArrayScalarsInConfig(value))}}}function deserializeKerasObject(identifier,moduleObjects={},customObjects={},printableModuleName="object",fastWeightInit=!1){if(typeof identifier=="string"){let functionName=identifier,fn;if(functionName in customObjects)fn=customObjects[functionName];else if(functionName in _GLOBAL_CUSTOM_OBJECTS)fn=_GLOBAL_CUSTOM_OBJECTS[functionName];else if(fn=moduleObjects[functionName],fn==null)throw new ValueError(`Unknown ${printableModuleName}: ${identifier}. This may be due to one of the following reasons: + `}};function unsortedSegmentSum3(args){let{inputs,backend:backend22,attrs}=args,{x,segmentIds}=inputs,{numSegments}=attrs,xRank=x.shape.length,toDispose=[],axis=0,permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!=null&&(permutedX=transpose3({inputs:{x},backend:backend22,attrs:{perm:permutation}}),toDispose.push(permutedX),axis=backend_util_exports.getInnerMostAxes(1,xRank)[0]);let outShape=backend_util_exports.segment_util.computeOutShape(permutedX.shape,axis,numSegments),inSize=util_exports.sizeFromShape([permutedX.shape[axis]]),a2D=reshape3({inputs:{x:permutedX},backend:backend22,attrs:{shape:[-1,inSize]}});toDispose.push(a2D);let outputDType=sumOutType(x.dtype),segOpCompute=(x2,segOpType,segmentIds2,dtype,numSegments2)=>{let batchSize=x2.shape[0],inSize2=x2.shape[1],windowSize=backend_util_exports.segment_util.segOpComputeOptimalWindowSize(inSize2,numSegments2),segOpInfo={windowSize,inSize:inSize2,batchSize,numSegments:numSegments2},program=new SegmentOpProgram(segOpInfo,segOpType),output=backend22.compileAndRun(program,[x2,segmentIds2],dtype);if(toDispose.push(output),output.shape[1]===numSegments2)return output;let rangeInfo=range3({backend:backend22,attrs:{start:0,stop:numSegments2,step:1,dtype:"float32"}}),tileInfo=tile3({inputs:{x:rangeInfo},backend:backend22,attrs:{reps:[inSize2/windowSize]}});return toDispose.push(rangeInfo),toDispose.push(tileInfo),segOpCompute(output,segOpType,tileInfo,dtype,numSegments2)},segOpResult=segOpCompute(a2D,"unsortedSegmentSum",segmentIds,outputDType,numSegments),reshaped=reshape3({inputs:{x:segOpResult},backend:backend22,attrs:{shape:outShape}}),result=reshaped;if(permutation!=null){toDispose.push(reshaped);let perm=backend_util_exports.getUndoAxesPermutation(permutation);result=transpose3({inputs:{x:result},backend:backend22,attrs:{perm}})}return toDispose.forEach(t=>backend22.disposeIntermediateTensorInfo(t)),result}var unsortedSegmentSumConfig2={kernelName:UnsortedSegmentSum,backendName:"webgl",kernelFunc:unsortedSegmentSum3},kernelConfigs2=[LRNConfig,LRNGradConfig,_fusedMatMulConfig2,absConfig2,acosConfig2,acoshConfig2,addConfig2,addNConfig2,allConfig2,anyConfig2,argMaxConfig2,argMinConfig2,asinConfig2,asinhConfig2,atan2Config2,atanConfig2,atanhConfig2,avgPool3DConfig2,avgPoolConfig2,avgPoolGrad3DConfig,avgPoolGradConfig3,batchMatMulConfig2,batchNormConfig2,batchToSpaceNDConfig2,bincountConfig2,castConfig2,ceilConfig2,clipByValueConfig,complexAbsConfig2,complexConfig2,concatConfig2,conv2DBackpropFilterConfig2,conv2DBackpropInputConfig2,conv2DConfig2,conv3DBackpropFilterV2Config2,conv3DBackpropInputConfig,conv3DConfig2,cosConfig2,coshConfig2,cropAndResizeConfig2,cumsumConfig2,denseBincountConfig2,depthToSpaceConfig2,depthwiseConv2dNativeBackpropFilterConfig2,depthwiseConv2dNativeBackpropInputConfig2,depthwiseConv2dNativeConfig2,diagConfig2,dilation2DConfig,eluConfig2,eluGradConfig3,equalConfig2,erfConfig2,expConfig2,expandDimsConfig2,expm1Config2,fftConfig2,fillConfig2,flipLeftRightConfig2,floorConfig2,floorDivConfig2,fromPixelsConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig2,gatherV2Config2,greaterConfig2,greaterEqualConfig2,identityConfig2,ifftConfig2,imagConfig2,isFiniteConfig2,isInfConfig2,isNaNConfig2,leakyReluConfig2,lessConfig2,lessEqualConfig2,linSpaceConfig2,log1pConfig2,logConfig2,logicalAndConfig2,logicalNotConfig2,logicalOrConfig2,maxConfig2,maxPool3DConfig2,maxPoolConfig2,maxPoolGrad3DConfig,maxPoolGradConfig3,maxPoolWithArgmaxConfig2,maximumConfig2,meanConfig2,minConfig2,minimumConfig2,mirrorPadConfig2,modConfig2,multinomialConfig2,multiplyConfig2,negConfig2,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config2,nonMaxSuppressionV5Config2,notEqualConfig2,oneHotConfig2,onesLikeConfig2,packConfig2,padV2Config2,powConfig2,preluConfig2,prodConfig2,rangeConfig2,realConfig2,realDivConfig2,reciprocalConfig2,relu6Config2,reluConfig2,reshapeConfig2,resizeBilinearConfig2,resizeBilinearGradConfig3,resizeNearestNeighborConfig2,resizeNearestNeighborGradConfig3,reverseConfig2,rotateWithOffsetConfig2,roundConfig2,rsqrtConfig2,scatterNdConfig2,selectConfig2,seluConfig2,sigmoidConfig2,signConfig2,sinConfig2,sinhConfig2,sliceConfig2,softmaxConfig2,softplusConfig2,spaceToBatchNDConfig2,sparseToDenseConfig2,splitVConfig2,sqrtConfig2,squareConfig2,squaredDifferenceConfig2,stepConfig2,stridedSliceConfig2,subConfig2,sumConfig2,tanConfig2,tanhConfig2,tileConfig2,topKConfig2,transposeConfig2,uniqueConfig2,unpackConfig2,unsortedSegmentSumConfig2,zerosLikeConfig2];for(let kernelConfig of kernelConfigs2)registerKernel(kernelConfig);var CppDType;(function(CppDType2){CppDType2[CppDType2.float32=0]="float32",CppDType2[CppDType2.int32=1]="int32",CppDType2[CppDType2.bool=2]="bool",CppDType2[CppDType2.string=3]="string",CppDType2[CppDType2.complex64=4]="complex64"})(CppDType||(CppDType={}));var FusableActivation;(function(FusableActivation2){FusableActivation2[FusableActivation2.linear=0]="linear",FusableActivation2[FusableActivation2.relu=1]="relu",FusableActivation2[FusableActivation2.relu6=2]="relu6",FusableActivation2[FusableActivation2.prelu=3]="prelu",FusableActivation2[FusableActivation2.leakyrelu=4]="leakyrelu"})(FusableActivation||(FusableActivation={}));var wasmFusedMatMul;function setup(backend22){wasmFusedMatMul=backend22.wasm.cwrap(_FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function fusedBatchMatMul(args){let{inputs,backend:backend22,attrs}=args,{a,b,bias,preluActivationWeights}=inputs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA,transposeB,activation:activation2,leakyreluAlpha}=attrs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${biasData.shape.length}.`);biasId=biasData.id}let preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id,fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let leftDim=transposeA?a.shape[2]:a.shape[1],rightDim=transposeB?b.shape[1]:b.shape[2],batchDim=a.shape[0],out=backend22.makeOutput([batchDim,leftDim,rightDim],a.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer);return wasmFusedMatMul(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,transposeA,transposeB,fusedActivation,biasId,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedMatMulConfig={kernelName:_FusedMatMul,backendName:"wasm",setupFunc:setup,kernelFunc:fusedBatchMatMul};function createUnaryKernelConfig(kernelName){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","number"])}function kernelFunc3(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc9(xId,outId),out}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var absConfig3=createUnaryKernelConfig(Abs);function createBinaryKernelConfig(kernelName,supportsFullBroadcast17,dtype){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","array","number","number","array","number","number","number"])}function kernelFunc3(args){let{backend:backend22,inputs}=args,{a,b}=inputs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,outputType=dtype!=null?dtype:a.dtype,newShape=backend_util_exports.assertAndGetBroadcastShape(a.shape,b.shape),out=backend22.makeOutput(newShape,outputType);if(util_exports.sizeFromShape(newShape)===0)return out;let aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer),outId=backend22.dataIdMap.get(out.dataId).id,kernelFunc4=()=>wasmFunc9(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;let aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast),wasmFunc;function setupFunc(backend22){wasmFunc=backend22.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){let{inputs,backend:backend22}=args,out=backend22.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;let inputIds=inputs.map(x=>backend22.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}var addNConfig3={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity3(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity3},wasmTranspose;function setup2(backend22){wasmTranspose=backend22.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose4(args){let{inputs,backend:backend22,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm),permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}var transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose4,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend22){let xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape),axes=originalAxes,permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank),xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){let newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}var reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape4},wasmBatchMatMul;function setup5(backend22){wasmBatchMatMul=backend22.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul3(args){let{inputs,backend:backend22,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);let outShape=(batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2)).concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape4({inputs:{x:a},backend:backend22,attrs:{shape:a3dShape}}),b3d=reshape4({inputs:{x:b},backend:backend22,attrs:{shape:b3dShape}}),a3dId=backend22.dataIdMap.get(a3d.dataId).id,b3dId=backend22.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend22.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}var batchMatMulConfig3={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul3};function cast4(args){let{inputs:{x},attrs:{dtype},backend:backend22}=args,out=backend22.makeOutput(x.shape,dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast4},wasmClip;function setup6(backend22){wasmClip=backend22.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}var clipByValueConfig2={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat4(args){let{inputs,backend:backend22}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),$inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return identity3({inputs:{x:$inputs[0]},backend:backend22});let out=backend22.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;let shapes=$inputs.map(t=>t.shape);if(backend_util_exports.assertParamsConsistent(shapes,axis),$inputs[0].dtype==="string"){let inputs2D=$inputs.map(t=>{let innerSize=util_exports.sizeFromShape(t.shape.slice(axis));return reshape4({inputs:{x:t},backend:backend22,attrs:{shape:[-1,innerSize]}})}),inputsValShapes=inputs2D.map(t=>({vals:backend22.readSync(t.dataId),shape:t.shape}));outShape=backend_util_exports.computeOutShape(inputs2D.map(t=>t.shape),1);let simplyConcat=inputs2D[0].shape[0]===1,outVals2=concatImpl(inputsValShapes,outShape,inputs[0].dtype,simplyConcat),finalOutShape=backend_util_exports.computeOutShape($inputs.map(t=>t.shape),axis);out.shape=finalOutShape;let outData=backend22.dataIdMap.get(out.dataId);return outData.stringBytes=backend_util_exports.fromStringArrayToUint8(outVals2),out}let batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis)),sumInnerDims=0,innerDims=$inputs.map(input2=>{let innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend22.typedArrayFromHeap(input2)),outVals=backend22.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);let permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!==null&&(permutedX=transpose4({inputs:{x},attrs:{perm:permutation},backend:backend22}));let permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);let permutedOut=backend22.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend22.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend22.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse5?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){let undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose4({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend22}),backend22.disposeData(permutedX.dataId),backend22.disposeData(permutedOut.dataId)}return out}var cumsumConfig3={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum4},wasmDepthToSpace;function setup11(backend22){wasmDepthToSpace=backend22.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);let batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend22.makeOutput(outputShape,"float32"),xId=backend22.dataIdMap.get(x.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthToSpace(xId,blockSize,dataFormat==="NHWC"?1:0,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}var depthToSpaceConfig3={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace4},wasmDepthwiseConv2d;function setup12(backend22){wasmDepthwiseConv2d=backend22.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d3(args){let{inputs,attrs,backend:backend22}=args,{x,filter}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad3,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var depthwiseConv2dNativeConfig3={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d3},supportsFullBroadcast2=!1,equalConfig3=createBinaryKernelConfig(Equal,supportsFullBroadcast2,"bool"),expConfig3=createUnaryKernelConfig(Exp);function expandDims4(args){let{inputs,attrs,backend:backend22}=args,{input:input2}=inputs,{dim}=attrs,inputRank=input2.shape.length,newShape=input2.shape.slice(),$dim=dim;return dim<0&&(util_exports.assert(-(inputRank+1)<=dim,()=>`Axis must be in the interval [${-(inputRank+1)}, ${inputRank}]`),$dim=inputRank+dim+1),newShape.splice($dim,0,1),reshape4({inputs:{x:input2},backend:backend22,attrs:{shape:newShape}})}var expandDimsConfig3={kernelName:ExpandDims,backendName:"wasm",kernelFunc:expandDims4};function fill4(args){let{attrs:{shape,value,dtype},backend:backend22}=args,out=backend22.makeOutput(shape,dtype);return backend22.typedArrayFromHeap(out).fill(value),out}var fillConfig3={kernelName:Fill,backendName:"wasm",kernelFunc:fill4},wasmFlipLeftRight;function setup13(backend22){wasmFlipLeftRight=backend22.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){let{inputs,backend:backend22}=args,{image:image3}=inputs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}var flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},floorConfig3=createUnaryKernelConfig(Floor),supportsFullBroadcast3=!1,floorDivConfig3=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast3),wasmBatchNorm;function setup14(backend22){wasmBatchNorm=backend22.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){let{backend:backend22,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean4,variance,offset,scale:scale2}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,meanId=backend22.dataIdMap.get(mean4.dataId).id,varianceId=backend22.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend22.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend22.dataIdMap.get(scale2.dataId).id:0,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}var fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm},wasmFusedConv2d;function setup15(backend22){wasmFusedConv2d=backend22.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d2(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedConv2DConfig3={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d2},wasmFusedDepthwiseConv2d;function setup16(backend22){wasmFusedDepthwiseConv2d=backend22.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedDepthwiseConv2DConfig3={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d},wasmGatherNd;function setup17(backend22){wasmGatherNd=backend22.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd3(args){let{backend:backend22,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend22.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xId=backend22.dataIdMap.get(params.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}var gatherNdConfig3={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd3},wasmGather;function setup18(backend22){wasmGather=backend22.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV23(args){let{backend:backend22,inputs,attrs}=args,{x,indices}=inputs,{axis,batchDims}=attrs,parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis,batchDims),flattenX=reshape4({inputs:{x},attrs:{shape:[shapeInfo.batchSize,shapeInfo.outerSize,shapeInfo.dimSize,shapeInfo.sliceSize]},backend:backend22}),indicesSize=util_exports.sizeFromShape(indices.shape),flattenIndex=reshape4({inputs:{x:indices},attrs:{shape:[shapeInfo.batchSize,indicesSize/shapeInfo.batchSize]},backend:backend22}),flattenOutputShape=[shapeInfo.batchSize,shapeInfo.outerSize,indicesSize/shapeInfo.batchSize,shapeInfo.sliceSize],out=backend22.makeOutput(flattenOutputShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let stridesSize=flattenX.shape.length-1,xId=backend22.dataIdMap.get(flattenX.dataId).id,indicesId=backend22.dataIdMap.get(flattenIndex.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenX.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenOutputShape)).buffer);return wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,shapeInfo.batchSize,outStridesBytes,outId),out.shape=shapeInfo.outputShape,out}var gatherV2Config3={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV23},supportsFullBroadcast4=!1,greaterConfig3=createBinaryKernelConfig(Greater,supportsFullBroadcast4,"bool"),supportsFullBroadcast5=!1,greaterEqualConfig3=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast5,"bool"),wasmFunc3;function setupFunc2(backend22){wasmFunc3=backend22.wasm.cwrap(LeakyRelu,null,["number","number","number"])}function leakyRelu4(args){let{inputs:{x},attrs:{alpha},backend:backend22}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmFunc3(xId,alpha,outId)}return out}var leakyReluConfig3={kernelName:LeakyRelu,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:leakyRelu4},supportsFullBroadcast6=!1,lessConfig3=createBinaryKernelConfig(Less,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessEqualConfig3=createBinaryKernelConfig(LessEqual,supportsFullBroadcast7,"bool"),logConfig3=createUnaryKernelConfig(Log),supportsFullBroadcast8=!1,logicalAndConfig3=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast8,"bool"),wasmMax;function setup19(backend22){wasmMax=backend22.wasm.cwrap(Max,null,["number, number, number"])}function max4(args){let{backend:backend22,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,inputId=backend22.dataIdMap.get(x.dataId).id,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max4},supportsFullBroadcast9=!1,maximumConfig3=createBinaryKernelConfig(Maximum,supportsFullBroadcast9),wasmMaxPool;function setup20(backend22){wasmMaxPool=backend22.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){let{inputs,attrs,backend:backend22}=args,x=inputs.x,xId=backend22.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad3,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad3,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4},wasmMean;function setup21(backend22){wasmMean=backend22.wasm.cwrap(Mean,null,["number, number, number"])}function mean3(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("mean",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),castedInput=input2;input2.dtype!=="float32"&&(castedInput=cast4({backend:backend22,inputs:{x:input2},attrs:{dtype:"float32"}}),inputId=backend22.dataIdMap.get(castedInput.dataId).id);let out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMean(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return input2.dtype!=="float32"&&backend22.disposeData(castedInput.dataId),out}var meanConfig3={kernelName:Mean,backendName:"wasm",setupFunc:setup21,kernelFunc:mean3},wasmMin;function setup22(backend22){wasmMin=backend22.wasm.cwrap(Min,null,["number, number, number"])}function min4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var minConfig3={kernelName:Min,backendName:"wasm",setupFunc:setup22,kernelFunc:min4},supportsFullBroadcast10=!1,minimumConfig3=createBinaryKernelConfig(Minimum,supportsFullBroadcast10),supportsFullBroadcast11=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast11),negConfig3=createUnaryKernelConfig(Neg);function parseResultStruct(backend22,resOffset){let result=new Int32Array(backend22.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend22.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}var wasmFunc4;function setup23(backend22){wasmFunc4=backend22.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);return backend22.wasm._free(pSelectedScores),backend22.wasm._free(pValidOutputs),backend22.makeOutput([selectedSize],"int32",pSelectedIndices)}var nonMaxSuppressionV3Config3={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup23,kernelFunc},wasmFunc5;function setup24(backend22){wasmFunc5=backend22.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV43(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pSelectedScores);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend22.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}var nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup24,kernelFunc:nonMaxSuppressionV43},wasmFunc6;function setup25(backend22){wasmFunc6=backend22.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc6(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pValidOutputs);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend22.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}var nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup25,kernelFunc:kernelFunc2},supportsFullBroadcast12=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast12,"bool"),wasmOneHot;function setup26(backend22){wasmOneHot=backend22.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot4(args){let{inputs,backend:backend22,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend22.makeOutput([...indices.shape,depth],"int32"),outId=backend22.dataIdMap.get(out.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}var oneHotConfig3={kernelName:OneHot,backendName:"wasm",setupFunc:setup26,kernelFunc:oneHot4};function onesLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(1),out}var onesLikeConfig3={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike4};function pack3(args){let{inputs,backend:backend22,attrs}=args,{axis}=attrs;if(inputs.length===1)return expandDims4({inputs:{input:inputs[0]},backend:backend22,attrs:{dim:axis}});let shape=inputs[0].shape,dtype=inputs[0].dtype;inputs.forEach(t=>{util_exports.assertShapesMatch(shape,t.shape,"All tensors passed to stack must have matching shapes"),util_exports.assert(dtype===t.dtype,()=>"All tensors passed to stack must have matching dtypes")});let expandedTensors=inputs.map(t=>expandDims4({inputs:{input:t},backend:backend22,attrs:{dim:axis}}));return concat4({inputs:expandedTensors,backend:backend22,attrs:{axis}})}var packConfig3={kernelName:Pack,backendName:"wasm",kernelFunc:pack3},wasmPadV2;function setup27(backend22){wasmPadV2=backend22.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad2(args){let{inputs:{x},backend:backend22,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(outShape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}var padV2Config3={kernelName:PadV2,backendName:"wasm",kernelFunc:pad2,setupFunc:setup27},supportsFullBroadcast13=!1,powConfig3=createBinaryKernelConfig(Pow,supportsFullBroadcast13),wasmPrelu;function setup28(backend22){wasmPrelu=backend22.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu4(args){let{inputs,backend:backend22}=args,{x,alpha}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,weightsId=backend22.dataIdMap.get(alpha.dataId).id,out=backend22.makeOutput(x.shape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}var preluConfig3={kernelName:Prelu,backendName:"wasm",setupFunc:setup28,kernelFunc:prelu4},wasmProd;function setup29(backend22){wasmProd=backend22.wasm.cwrap(Prod,null,["number","number","number","number"])}function prod4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("prod",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmProd(inputId,reduceSize,CppDType[out.dtype],outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var prodConfig3={kernelName:Prod,backendName:"wasm",setupFunc:setup29,kernelFunc:prod4},range4=args=>{let{backend:backend22,attrs}=args,{start,stop,step:step4,dtype}=attrs,values=rangeImpl(start,stop,step4,dtype),out=backend22.makeOutput([values.length],dtype);return backend22.typedArrayFromHeap(out).set(values),out},rangeConfig3={kernelName:Range,backendName:"wasm",kernelFunc:range4},supportsFullBroadcast14=!0,realDivConfig3=createBinaryKernelConfig(RealDiv,supportsFullBroadcast14),reluConfig3=createUnaryKernelConfig(Relu),relu6Config3=createUnaryKernelConfig(Relu6),wasmResizeBilinear;function setup30(backend22){wasmResizeBilinear=backend22.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number","number"])}function resizeBilinear4(args){let{backend:backend22,inputs,attrs}=args,{images}=inputs,{alignCorners,halfPixelCenters,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels],xData=backend22.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast4({backend:backend22,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend22.dataIdMap.get(castedData.dataId));let xId=xData.id,out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,halfPixelCenters?1:0,outId),castedData!=null&&backend22.disposeData(castedData.dataId),out}var resizeBilinearConfig3={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup30,kernelFunc:resizeBilinear4},wasmReverse;function setup31(backend22){wasmReverse=backend22.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity3({inputs:{x},backend:backend22});let out=backend22.makeOutput(x.shape,x.dtype),xId=backend22.dataIdMap.get(x.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape4({inputs:{x:out},attrs:{shape:x.shape},backend:backend22})}var reverseConfig3={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse4,setupFunc:setup31},wasmRotate;function setup32(backend22){wasmRotate=backend22.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){let{inputs,backend:backend22,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}var rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup32},roundConfig3=createUnaryKernelConfig(Round),rsqrtConfig3=createUnaryKernelConfig(Rsqrt),wasmScatterNd;function setup33(backend22){wasmScatterNd=backend22.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd3(args){let{backend:backend22,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend22.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;let{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesId=backend22.dataIdMap.get(indices.dataId).id,updatesId=backend22.dataIdMap.get(updates.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}var scatterNdConfig3={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup33,kernelFunc:scatterNd3},wasmSelect;function setup34(backend22){wasmSelect=backend22.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function select3(args){let{inputs,backend:backend22}=args,{condition,t,e}=inputs,conditionId=backend22.dataIdMap.get(condition.dataId).id,tId=backend22.dataIdMap.get(t.dataId).id,eId=backend22.dataIdMap.get(e.dataId).id,out=backend22.makeOutput(t.shape,t.dtype),outId=backend22.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}var selectConfig3={kernelName:Select,backendName:"wasm",kernelFunc:select3,setupFunc:setup34},wasmFunc7;function setup35(backend22){wasmFunc7=backend22.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid4(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId),out}var sigmoidConfig3={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup35,kernelFunc:sigmoid4},sinConfig3=createUnaryKernelConfig(Sin);function slice4(args){let{inputs:{x},attrs:{begin,size},backend:backend22}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend22.readSync(x.dataId),out=backend22.makeOutput(size_,x.dtype),xStrides=util_exports.computeStrides(x.shape),outData=backend22.dataIdMap.get(out.dataId);if(isContinous){let flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return x.dtype==="string"?outData.stringBytes=xVals.slice(flatOffset,flatOffset+util_exports.sizeFromShape(size_)):backend22.typedArrayFromHeap(out).set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}if(x.dtype==="string"){let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);return outData.stringBytes=res,out}let outVals=backend22.typedArrayFromHeap(out),rank=x.shape.length;if(rank===2)slice2d2(xVals,xStrides[0],outVals,begin_,size_);else if(rank===3)slice3d2(xVals,xStrides[0],xStrides[1],outVals,begin_,size_);else if(rank===4)slice4d2(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_);else{let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);outVals.set(res)}return out}function slice2d2(xVals,xStride,outVals,begin,size){let outOffset=0,beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;i{let xSliceSize=[...size];xSliceSize[$axis]=s;let xSlice=slice4({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend22});return begin[$axis]+=s,xSlice})}var splitVConfig3={kernelName:SplitV,backendName:"wasm",kernelFunc:splitV3},sqrtConfig3=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15),wasmStridedSlice;function setup37(backend22){wasmStridedSlice=backend22.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));let{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});let xReshaped=reshape4({inputs:{x},attrs:{shape:newShape},backend:backend22}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;let shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});let size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);if(strides.every(v=>v===1)){let xSliced=slice4({inputs:{x},attrs:{begin,size},backend:backend22});return reshape4({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend22})}let out=backend22.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){let xId=backend22.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape4({inputs:{x:out},attrs:{shape:outShape},backend:backend22})}var stridedSliceConfig3={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup37,kernelFunc:stridedSlice4},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16),wasmSum;function setup38(backend22){wasmSum=backend22.wasm.cwrap(Sum,null,["number, number, number"])}function sum5(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var sumConfig3={kernelName:Sum,backendName:"wasm",setupFunc:setup38,kernelFunc:sum5},tanhConfig3=createUnaryKernelConfig(Tanh),wasmTile;function setup39(backend22){wasmTile=backend22.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i{let{x}=inputs,{k,sorted}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),outputShape=x.shape.slice();outputShape[outputShape.length-1]=k;let outValues=backend22.makeOutput(outputShape,x.dtype),outValuesId=backend22.dataIdMap.get(outValues.dataId).id,outIndices=backend22.makeOutput(outputShape,"int32"),outIndicesId=backend22.dataIdMap.get(outIndices.dataId).id;return wasmTopK(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],k,sorted,outValuesId,outIndicesId),[outValues,outIndices]},topKConfig3={kernelName:TopK,backendName:"wasm",setupFunc:setup40,kernelFunc:topk2};function unpack3(args){let{inputs,backend:backend22,attrs}=args,{value}=inputs,{axis}=attrs;axis<0&&(axis+=value.shape.length);let numOutputs=value.shape[axis],rank=value.shape.length,outShape=new Array(rank-1),outIndex=0;for(let i=0;i({dataId,dtype,shape:outShape}))}var unpackConfig3={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack3};function zerosLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(0),out}var zerosLikeConfig3={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike4},kernelConfigs3=[absConfig3,addConfig3,addNConfig3,argMaxConfig3,avgPoolConfig3,batchMatMulConfig3,castConfig3,clipByValueConfig2,concatConfig3,conv2DConfig3,conv2DBackpropInputConfig3,cosConfig3,cropAndResizeConfig3,cumsumConfig3,depthToSpaceConfig3,depthwiseConv2dNativeConfig3,equalConfig3,expConfig3,expandDimsConfig3,fillConfig3,flipLeftRightConfig3,floorConfig3,floorDivConfig3,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig3,fusedDepthwiseConv2DConfig3,gatherNdConfig3,gatherV2Config3,greaterConfig3,greaterEqualConfig3,identityConfig3,leakyReluConfig3,lessConfig3,lessEqualConfig3,logConfig3,logicalAndConfig3,maxConfig3,maximumConfig3,maxPoolConfig3,meanConfig3,minConfig3,minimumConfig3,multiplyConfig3,negConfig3,nonMaxSuppressionV3Config3,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig3,onesLikeConfig3,packConfig3,padV2Config3,powConfig3,preluConfig3,prodConfig3,rangeConfig3,realDivConfig3,reluConfig3,relu6Config3,reshapeConfig3,resizeBilinearConfig3,reverseConfig3,rotateWithOffsetConfig3,rsqrtConfig3,roundConfig3,scatterNdConfig3,selectConfig3,sigmoidConfig3,sinConfig3,sliceConfig3,softmaxConfig3,splitVConfig3,sqrtConfig3,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig3,subConfig3,sumConfig3,tanhConfig3,tileConfig3,topKConfig3,transposeConfig3,unpackConfig3,zerosLikeConfig3];for(let kernelConfig of kernelConfigs3)registerKernel(kernelConfig);var ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var import_tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',import_tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),BackendWasm=class extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine())}write(values,shape,dtype){let dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){let start=util_exports.now();return f(),{kernelMs:util_exports.now()-start}}move(dataId,values,shape,dtype){let id=this.dataIdNextNumber++;if(dtype==="string"){let stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}let size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){let{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;let bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){let data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};let id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});let size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){let buffer2=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer2,memoryOffset,size);case"int32":return new Int32Array(buffer2,memoryOffset,size);case"bool":return new Uint8Array(buffer2,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}};function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){let[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{let factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){let response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=import_tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+import_tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=import_tfjs_backend_wasm.default(factoryConfig);let voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{initialized||initAborted||(initAborted=!0,reject({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))}})}function typedArrayFromBuffer(buffer2,dtype){switch(dtype){case"float32":return new Float32Array(buffer2);case"int32":return new Int32Array(buffer2);case"bool":return new Uint8Array(buffer2);default:throw new Error(`Unknown dtype ${dtype}`)}}var wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;let missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}var version9="2.8.3",WASM_PRIORITY=2;registerBackend("wasm",async()=>{let{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);var exports_constraints_exports={};__export2(exports_constraints_exports,{maxNorm:()=>maxNorm,minMaxNorm:()=>minMaxNorm,nonNeg:()=>nonNeg,unitNorm:()=>unitNorm});var _epsilon;function epsilon2(){return _epsilon==null&&(_epsilon=backend().epsilon()),_epsilon}function imageDataFormat(){return"channelsLast"}var AttributeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AttributeError.prototype)}},RuntimeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,RuntimeError.prototype)}},ValueError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,ValueError.prototype)}},NotImplementedError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,NotImplementedError.prototype)}},AssertionError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AssertionError.prototype)}},IndexError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,IndexError.prototype)}};function pyListRepeat(value,numValues){if(Array.isArray(value)){let newArray=[];for(let i=0;ip1.toUpperCase())}var _GLOBAL_CUSTOM_OBJECTS={};function serializeKerasObject(instance){if(instance==null)return null;let dict={};return dict.className=instance.getClassName(),dict.config=instance.getConfig(),dict}function convertNDArrayScalarsInConfig(config2){if(!(config2==null||typeof config2!="object"))if(Array.isArray(config2))config2.forEach(configItem=>convertNDArrayScalarsInConfig(configItem));else{let fields=Object.keys(config2);for(let field of fields){let value=config2[field];value!=null&&typeof value=="object"&&(!Array.isArray(value)&&value.type==="ndarray"&&typeof value.value=="number"?config2[field]=value.value:convertNDArrayScalarsInConfig(value))}}}function deserializeKerasObject(identifier,moduleObjects={},customObjects={},printableModuleName="object",fastWeightInit=!1){if(typeof identifier=="string"){let functionName=identifier,fn;if(functionName in customObjects)fn=customObjects[functionName];else if(functionName in _GLOBAL_CUSTOM_OBJECTS)fn=_GLOBAL_CUSTOM_OBJECTS[functionName];else if(fn=moduleObjects[functionName],fn==null)throw new ValueError(`Unknown ${printableModuleName}: ${identifier}. This may be due to one of the following reasons: 1. The ${printableModuleName} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return fn}else{let config3=identifier;if(config3.className==null||config3.config==null)throw new ValueError(`${printableModuleName}: Improper config format: ${JSON.stringify(config3)}. -'className' and 'config' must set.`);let className=config3.className,cls,fromConfig;if(className in customObjects?[cls,fromConfig]=customObjects[className]:className in _GLOBAL_CUSTOM_OBJECTS?[cls,fromConfig]=_GLOBAL_CUSTOM_OBJECTS.className:className in moduleObjects&&([cls,fromConfig]=moduleObjects[className]),cls==null)throw new ValueError(`Unknown ${printableModuleName}: ${className}. This may be due to one of the following reasons: +2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return fn}else{let config2=identifier;if(config2.className==null||config2.config==null)throw new ValueError(`${printableModuleName}: Improper config format: ${JSON.stringify(config2)}. +'className' and 'config' must set.`);let className=config2.className,cls,fromConfig;if(className in customObjects?[cls,fromConfig]=customObjects[className]:className in _GLOBAL_CUSTOM_OBJECTS?[cls,fromConfig]=_GLOBAL_CUSTOM_OBJECTS.className:className in moduleObjects&&([cls,fromConfig]=moduleObjects[className]),cls==null)throw new ValueError(`Unknown ${printableModuleName}: ${className}. This may be due to one of the following reasons: 1. The ${printableModuleName} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(fromConfig!=null){let customObjectsCombined={};for(let key of Object.keys(_GLOBAL_CUSTOM_OBJECTS))customObjectsCombined[key]=_GLOBAL_CUSTOM_OBJECTS[key];for(let key of Object.keys(customObjects))customObjectsCombined[key]=customObjects[key];let nestedConfig=config3.config;nestedConfig.customObjects=customObjectsCombined;let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];convertNDArrayScalarsInConfig(config3.config);let returnObj=fromConfig(cls,config3.config,customObjects,fastWeightInit);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}else{let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];let returnObj=new cls(config3.config);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}}}function numberCompare(a,b){return ab?1:0}function reverseNumberCompare(a,b){return-1*numberCompare(a,b)}function unique4(xs){if(xs==null)return xs;let out=[];for(let x of xs)out.indexOf(x)===-1&&out.push(x);return out}function isObjectEmpty(obj){if(obj==null)throw new ValueError(`Invalid value in obj: ${JSON.stringify(obj)}`);for(let key in obj)if(obj.hasOwnProperty(key))return!1;return!0}function checkStringTypeUnionValue(values,label,value){if(value!=null&&values.indexOf(value)<0)throw new ValueError(`${value} is not a valid ${label}. Valid values are ${values} or null/undefined.`)}function checkArrayTypeAndLength(x,expectedType,minLength=0,maxLength=Infinity){return assert2(minLength>=0),assert2(maxLength>=minLength),Array.isArray(x)&&x.length>=minLength&&x.length<=maxLength&&x.every(e=>typeof e===expectedType)}function assertPositiveInteger(value,name){Array.isArray(value)?(util_exports.assert(value.length>0,()=>`${name} is unexpectedly an empty array.`),value.forEach((v,i)=>assertPositiveInteger(v,`element ${i+1} of ${name}`))):util_exports.assert(Number.isInteger(value)&&value>0,()=>`Expected ${name} to be a positive integer, but got ${formatAsFriendlyString(value)}.`)}function formatAsFriendlyString(value){return value===null?"null":Array.isArray(value)?"["+value.map(v=>formatAsFriendlyString(v)).join(",")+"]":typeof value=="string"?`"${value}"`:`${value}`}function debounce(f,waitMs){let lastTime=util_exports.now(),lastResult;return(...args)=>{let now22=util_exports.now();return now22-lastTimesqrt(sum2(mul(w,w),axis,!0)))}var Constraint=class extends serialization_exports.Serializable{getConfig(){return{}}},MaxNorm=class extends Constraint{constructor(args){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=clipByValue(norms,0,this.maxValue);return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};MaxNorm.className="MaxNorm";serialization_exports.registerClass(MaxNorm);var UnitNorm=class extends Constraint{constructor(args){super();this.defaultAxis=0,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>div(w,add2(epsilon2(),calcL2Norms(w,this.axis))))}getConfig(){return{axis:this.axis}}};UnitNorm.className="UnitNorm";serialization_exports.registerClass(UnitNorm);var NonNeg=class extends Constraint{apply(w){return relu(w)}};NonNeg.className="NonNeg";serialization_exports.registerClass(NonNeg);var MinMaxNorm=class extends Constraint{constructor(args){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=args.minValue!=null?args.minValue:this.defaultMinValue,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.rate=args.rate!=null?args.rate:this.defaultRate,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=add2(mul(this.rate,clipByValue(norms,this.minValue,this.maxValue)),mul(1-this.rate,norms));return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};MinMaxNorm.className="MinMaxNorm";serialization_exports.registerClass(MinMaxNorm);var CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function serializeConstraint(constraint){return serializeKerasObject(constraint)}function deserializeConstraint(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"constraint")}function getConstraint(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config3={className:identifier in CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP?CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeConstraint(config3)}else return identifier instanceof Constraint?identifier:deserializeConstraint(identifier)}function maxNorm(args){return new MaxNorm(args)}function unitNorm(args){return new UnitNorm(args)}function nonNeg(){return new NonNeg}function minMaxNorm(config3){return new MinMaxNorm(config3)}var exports_initializers_exports={};__export2(exports_initializers_exports,{constant:()=>constant,glorotNormal:()=>glorotNormal,glorotUniform:()=>glorotUniform,heNormal:()=>heNormal,heUniform:()=>heUniform,identity:()=>identity4,leCunNormal:()=>leCunNormal,leCunUniform:()=>leCunUniform,ones:()=>ones3,orthogonal:()=>orthogonal,randomNormal:()=>randomNormal3,randomUniform:()=>randomUniform2,truncatedNormal:()=>truncatedNormal2,varianceScaling:()=>varianceScaling,zeros:()=>zeros3});var VALID_DATA_FORMAT_VALUES=["channelsFirst","channelsLast"],VALID_INTERPOLATION_FORMAT_VALUES=["nearest","bilinear"],VALID_PADDING_MODE_VALUES=["valid","same","causal"],VALID_POOL_MODE_VALUES=["max","avg"],VALID_BIDIRECTIONAL_MERGE_MODES=["sum","mul","concat","ave"],nameMap=new Map;function checkDataFormat(value){checkStringTypeUnionValue(VALID_DATA_FORMAT_VALUES,"DataFormat",value)}function checkInterpolationFormat(value){checkStringTypeUnionValue(VALID_INTERPOLATION_FORMAT_VALUES,"InterpolationFormat",value)}function checkPaddingMode(value){checkStringTypeUnionValue(VALID_PADDING_MODE_VALUES,"PaddingMode",value)}function checkPoolMode(value){checkStringTypeUnionValue(VALID_POOL_MODE_VALUES,"PoolMode",value)}var _nameScopeStack=[],_nameScopeDivider="/";function nameScope(name,fn){_nameScopeStack.push(name);try{let val=fn();return _nameScopeStack.pop(),val}catch(e){throw _nameScopeStack.pop(),e}}function currentNameScopePrefix(){return _nameScopeStack.length===0?"":_nameScopeStack.join(_nameScopeDivider)+_nameScopeDivider}function getScopedTensorName(tensorName){if(!isValidTensorName(tensorName))throw new Error("Not a valid tensor name: '"+tensorName+"'");return currentNameScopePrefix()+tensorName}function getUniqueTensorName(scopedName){if(!isValidTensorName(scopedName))throw new Error("Not a valid tensor name: '"+scopedName+"'");nameMap.has(scopedName)||nameMap.set(scopedName,0);let index=nameMap.get(scopedName);if(nameMap.set(scopedName,nameMap.get(scopedName)+1),index>0){let result=`${scopedName}_${index}`;return nameMap.set(result,1),result}else return scopedName}var tensorNameRegex=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function isValidTensorName(name){return!!name.match(tensorNameRegex)}function isInteger(x){return x===parseInt(x.toString(),10)}function arrayProd(array2,begin,end){begin==null&&(begin=0),end==null&&(end=array2.length);let prod5=1;for(let i=begin;i{if(x.shape.length!==2)throw new ValueError(`repeat() expects a rank-2 tensor, but received a rank-${x.shape.length} tensor.`);let y=expandDims5(x,1);return tile5(y,[1,n,1])})}function flatten2(x){let newShape=[arrayProd(x.shape)];return x.reshape(newShape)}function batchFlatten(x){if(x.rank<=1)throw new ValueError(`batchFlatten requires a minimum rank of 2. Got rank: ${x.rank}.`);let newShape=[x.shape[0],arrayProd(x.shape,1)];return x.reshape(newShape)}function sliceAlongFirstAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[start,0],[size,array2.shape[1]]);case 3:return slice3d(array2,[start,0,0],[size,array2.shape[1],array2.shape[2]]);case 4:return slice4d(array2,[start,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3]]);case 5:return slice(array2,[start,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4]]);case 6:return slice(array2,[start,0,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4],array2.shape[5]]);default:throw new ValueError(`sliceAlongFirstAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongLastAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[0,start],[array2.shape[0],size]);case 3:return slice3d(array2,[0,0,start],[array2.shape[0],array2.shape[1],size]);case 4:return slice4d(array2,[0,0,0,start],[array2.shape[0],array2.shape[1],array2.shape[2],size]);default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongAxis(array2,start,size,axis){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 3:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice3d(array2,[0,start,0],[array2.shape[0],size,array2.shape[2]]);case 3:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 4:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice4d(array2,[0,start,0,0],[array2.shape[0],size,array2.shape[2],array2.shape[3]]);case 3:return slice4d(array2,[0,0,start,0],[array2.shape[0],array2.shape[1],size,array2.shape[3]]);case 4:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function concatenate(tensors,axis=-1){let rank;return axis<0&&(rank=tensors[0].rank,rank!==0?axis=rank:axis=0),axis===tensors[0].rank&&(axis=-1),concat(tensors,axis)}function concatAlongFirstAxis(a,b){switch(a.rank){case 1:return concat1d([a,b]);case 2:return concat2d([a,b],0);case 3:return concat3d([a,b],0);case 4:return concat4d([a,b],0);default:throw new ValueError(`concatAlongFirstAxis() received an unsupported tensor rank: ${a.rank}`)}}function tile5(x,n){if(Array.isArray(n)||(n=[n]),x.rank!==n.length)throw new ValueError(`The length of input n (${n.length}) does not match the number of dimensions in input x (${x.rank})`);return tile(x,n)}function randomNormal2(shape,mean4=0,stddev=1,dtype,seed){return randomNormal(shape,mean4,stddev,dtype,seed)}function dot2(a,b,activation2,bias){if(a.rank<2||b.rank<2)throw new NotImplementedError(`dot requires both inputs to be rank >= 2 but got x shape = ${a.shape} and y shape = ${b.shape}`);if(b.rank>=3){let xLastDim=a.shape.slice(-1)[0],ySecondLastDim=b.shape.slice(-2)[0];if(xLastDim!==ySecondLastDim)throw new NotImplementedError(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${a.shape} and y shape = ${b.shape}`)}if(a.rank===2&&b.rank===2){let transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2})}else{let aFirstDims=a.shape.slice(),aLastDim=aFirstDims.pop();a=a.reshape([-1,aLastDim]);let bShape=b.shape.slice(),bLastDim=bShape.pop(),ySecondLastDim=bShape.pop(),yOtherDims=[...bShape,bLastDim],perm=Array.from({length:b.rank},(_,i)=>i===0?b.rank-2:i<=b.rank-2?i-1:i);b=b.transpose(perm).reshape([ySecondLastDim,-1]);let outputShape=[...aFirstDims,...yOtherDims],transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2}).reshape(outputShape)}}function gather2(reference,indices,axis){return tidy(()=>(Array.isArray(indices)?indices=tensor1d(indices,"int32"):indices=indices.toInt(),gather(reference,indices,axis)))}function square3(x){return mul(x,x)}function reshapeBias(xRank,bias,dataFormat){let biasShape=bias.shape;if(bias.rank!==1&&bias.rank!==xRank)throw new ValueError(`Unexpected bias dimensions: ${bias.rank}; expected it to be 1 or ${xRank}`);if(xRank===5){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1,1]):bias.reshape([1,biasShape[3],biasShape[0],biasShape[1],biasShape[2]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===4){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1]):bias.reshape([1,biasShape[2],biasShape[0],biasShape[1]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===3){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1]):bias.reshape([1,biasShape[1],biasShape[0]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank<3)return bias;throw new ValueError(`Unsupported input rank by biasAdd: ${bias.rank}`)}function biasAdd(x,bias,dataFormat){return tidy(()=>(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.add(reshapeBias(x.rank,bias,dataFormat))))}function elu4(x,alpha=1){if(alpha!==1)throw new NotImplementedError(`Support for alpha values other than 1 (${alpha}) is not implemented yet.`);return elu(x)}function softsign(x){return tidy(()=>div(x,abs(x).add(1)))}function dropout2(x,level,noiseShape,seed){return tidy(()=>dropout(x,level,noiseShape,seed))}function hardSigmoid(x){return tidy(()=>{let y=add2(.5,mul(.2,x));return clipByValue(y,0,1)})}function inTrainPhase(x,alt,training=!1){return training?x():alt()}var VALID_FAN_MODE_VALUES=["fanIn","fanOut","fanAvg"],VALID_DISTRIBUTION_VALUES=["normal","uniform","truncatedNormal"];function checkFanMode(value){checkStringTypeUnionValue(VALID_FAN_MODE_VALUES,"FanMode",value)}function checkDistribution(value){checkStringTypeUnionValue(VALID_DISTRIBUTION_VALUES,"Distribution",value)}var Initializer=class extends serialization_exports.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Zeros=class extends Initializer{apply(shape,dtype){return zeros(shape,dtype)}};Zeros.className="Zeros";serialization_exports.registerClass(Zeros);var Ones=class extends Initializer{apply(shape,dtype){return ones2(shape,dtype)}};Ones.className="Ones";serialization_exports.registerClass(Ones);var Constant=class extends Initializer{constructor(args){super();if(typeof args!="object")throw new ValueError(`Expected argument of type ConstantConfig but got ${args}`);if(args.value===void 0)throw new ValueError(`config must have value set but got ${args}`);this.value=args.value}apply(shape,dtype){return tidy(()=>mul(scalar(this.value),ones2(shape,dtype)))}getConfig(){return{value:this.value}}};Constant.className="Constant";serialization_exports.registerClass(Constant);var RandomUniform=class extends Initializer{constructor(args){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=args.minval||this.DEFAULT_MINVAL,this.maxval=args.maxval||this.DEFAULT_MAXVAL,this.seed=args.seed}apply(shape,dtype){return randomUniform(shape,this.minval,this.maxval,dtype)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};RandomUniform.className="RandomUniform";serialization_exports.registerClass(RandomUniform);var RandomNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`randomNormal does not support dType ${dtype}.`);return randomNormal2(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};RandomNormal.className="RandomNormal";serialization_exports.registerClass(RandomNormal);var TruncatedNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`truncatedNormal does not support dType ${dtype}.`);return truncatedNormal(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};TruncatedNormal.className="TruncatedNormal";serialization_exports.registerClass(TruncatedNormal);var Identity2=class extends Initializer{constructor(args){super();this.gain=args.gain!=null?args.gain:1}apply(shape,dtype){return tidy(()=>{if(shape.length!==2||shape[0]!==shape[1])throw new ValueError("Identity matrix initializer can only be used for 2D square matrices.");return mul(this.gain,eye(shape[0]))})}getConfig(){return{gain:this.gain}}};Identity2.className="Identity";serialization_exports.registerClass(Identity2);function computeFans(shape,dataFormat="channelsLast"){let fanIn,fanOut;if(checkDataFormat(dataFormat),shape.length===2)fanIn=shape[0],fanOut=shape[1];else if([3,4,5].indexOf(shape.length)!==-1){if(dataFormat==="channelsFirst"){let receptiveFieldSize=arrayProd(shape,2);fanIn=shape[1]*receptiveFieldSize,fanOut=shape[0]*receptiveFieldSize}else if(dataFormat==="channelsLast"){let receptiveFieldSize=arrayProd(shape,0,shape.length-2);fanIn=shape[shape.length-2]*receptiveFieldSize,fanOut=shape[shape.length-1]*receptiveFieldSize}}else{let shapeProd=arrayProd(shape);fanIn=Math.sqrt(shapeProd),fanOut=Math.sqrt(shapeProd)}return[fanIn,fanOut]}var VarianceScaling=class extends Initializer{constructor(args){super();if(args.scale<0)throw new ValueError(`scale must be a positive float. Got: ${args.scale}`);this.scale=args.scale==null?1:args.scale,this.mode=args.mode==null?"fanIn":args.mode,checkFanMode(this.mode),this.distribution=args.distribution==null?"normal":args.distribution,checkDistribution(this.distribution),this.seed=args.seed}apply(shape,dtype){let fans=computeFans(shape),fanIn=fans[0],fanOut=fans[1],scale2=this.scale;if(this.mode==="fanIn"?scale2/=Math.max(1,fanIn):this.mode==="fanOut"?scale2/=Math.max(1,fanOut):scale2/=Math.max(1,(fanIn+fanOut)/2),this.distribution==="normal"){let stddev=Math.sqrt(scale2);if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`${this.getClassName()} does not support dType ${dtype}.`);return truncatedNormal(shape,0,stddev,dtype,this.seed)}else{let limit=Math.sqrt(3*scale2);return randomUniform(shape,-limit,limit,dtype)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};VarianceScaling.className="VarianceScaling";serialization_exports.registerClass(VarianceScaling);var GlorotUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotUniform.className="GlorotUniform";serialization_exports.registerClass(GlorotUniform);var GlorotNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotNormal.className="GlorotNormal";serialization_exports.registerClass(GlorotNormal);var HeNormal=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeNormal.className="HeNormal";serialization_exports.registerClass(HeNormal);var HeUniform=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeUniform.className="HeUniform";serialization_exports.registerClass(HeUniform);var LeCunNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunNormal.className="LeCunNormal";serialization_exports.registerClass(LeCunNormal);var LeCunUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunUniform.className="LeCunNormal";serialization_exports.registerClass(LeCunUniform);var Orthogonal=class extends Initializer{constructor(args){super();if(this.DEFAULT_GAIN=1,this.gain=args.gain==null?this.DEFAULT_GAIN:args.gain,this.seed=args.seed,this.seed!=null)throw new NotImplementedError("Random seed is not implemented for Orthogonal Initializer yet.")}apply(shape,dtype){return tidy(()=>{if(shape.length<2)throw new NotImplementedError("Shape must be at least 2D.");shape[0]*shape[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${shape[0]*shape[1]}) elements: Slowness may result.`);let normalizedShape=shape[0]>shape[1]?[shape[1],shape[0]]:shape,a=randomNormal2(normalizedShape,0,1,"float32"),q=linalg.gramSchmidt(a);return shape[0]>shape[1]&&(q=q.transpose()),mul(this.gain,q)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Orthogonal.className="Orthogonal";serialization_exports.registerClass(Orthogonal);var INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function deserializeInitializer(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"initializer")}function serializeInitializer(initializer){return serializeKerasObject(initializer)}function getInitializer(identifier){if(typeof identifier=="string"){let className=identifier in INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier;if(className==="GlorotNormal")return new GlorotNormal;if(className==="GlorotUniform")return new GlorotUniform;if(className==="HeNormal")return new HeNormal;if(className==="HeUniform")return new HeUniform;if(className==="LeCunNormal")return new LeCunNormal;if(className==="LeCunUniform")return new LeCunUniform;{let config3={};return config3.className=className,config3.config={},deserializeInitializer(config3)}}else return identifier instanceof Initializer?identifier:deserializeInitializer(identifier)}function zeros3(){return new Zeros}function ones3(){return new Ones}function constant(args){return new Constant(args)}function randomUniform2(args){return new RandomUniform(args)}function randomNormal3(args){return new RandomNormal(args)}function truncatedNormal2(args){return new TruncatedNormal(args)}function identity4(args){return new Identity2(args)}function varianceScaling(config3){return new VarianceScaling(config3)}function glorotUniform(args){return new GlorotUniform(args)}function glorotNormal(args){return new GlorotNormal(args)}function heNormal(args){return new HeNormal(args)}function heUniform(args){return new HeUniform(args)}function leCunNormal(args){return new LeCunNormal(args)}function leCunUniform(args){return new LeCunUniform(args)}function orthogonal(args){return new Orthogonal(args)}var exports_layers_exports={};__export2(exports_layers_exports,{Layer:()=>Layer,RNN:()=>RNN,RNNCell:()=>RNNCell,activation:()=>activation,add:()=>add4,alphaDropout:()=>alphaDropout,average:()=>average,averagePooling1d:()=>averagePooling1d,averagePooling2d:()=>averagePooling2d,averagePooling3d:()=>averagePooling3d,avgPool1d:()=>avgPool1d,avgPool2d:()=>avgPool2d,avgPool3d:()=>avgPool3d2,avgPooling1d:()=>avgPooling1d,avgPooling2d:()=>avgPooling2d,avgPooling3d:()=>avgPooling3d,batchNormalization:()=>batchNormalization2,bidirectional:()=>bidirectional,concatenate:()=>concatenate2,conv1d:()=>conv1d2,conv2d:()=>conv2d5,conv2dTranspose:()=>conv2dTranspose2,conv3d:()=>conv3d2,convLstm2d:()=>convLstm2d,convLstm2dCell:()=>convLstm2dCell,cropping2D:()=>cropping2D,dense:()=>dense,depthwiseConv2d:()=>depthwiseConv2d5,dot:()=>dot3,dropout:()=>dropout3,elu:()=>elu5,embedding:()=>embedding,flatten:()=>flatten3,gaussianDropout:()=>gaussianDropout,gaussianNoise:()=>gaussianNoise,globalAveragePooling1d:()=>globalAveragePooling1d,globalAveragePooling2d:()=>globalAveragePooling2d,globalMaxPool1d:()=>globalMaxPool1d,globalMaxPool2d:()=>globalMaxPool2d,globalMaxPooling1d:()=>globalMaxPooling1d,globalMaxPooling2d:()=>globalMaxPooling2d,gru:()=>gru,gruCell:()=>gruCell,input:()=>input,inputLayer:()=>inputLayer,layerNormalization:()=>layerNormalization,leakyReLU:()=>leakyReLU,lstm:()=>lstm,lstmCell:()=>lstmCell,masking:()=>masking,maxPool1d:()=>maxPool1d,maxPool2d:()=>maxPool2d,maxPooling1d:()=>maxPooling1d,maxPooling2d:()=>maxPooling2d,maxPooling3d:()=>maxPooling3d,maximum:()=>maximum4,minimum:()=>minimum4,multiply:()=>multiply3,permute:()=>permute,prelu:()=>prelu5,reLU:()=>reLU,repeatVector:()=>repeatVector,reshape:()=>reshape5,rnn:()=>rnn2,separableConv2d:()=>separableConv2d2,simpleRNN:()=>simpleRNN,simpleRNNCell:()=>simpleRNNCell,softmax:()=>softmax5,spatialDropout1d:()=>spatialDropout1d,stackedRNNCells:()=>stackedRNNCells,thresholdedReLU:()=>thresholdedReLU,timeDistributed:()=>timeDistributed,upSampling2d:()=>upSampling2d,zeroPadding2d:()=>zeroPadding2d});var _nextUniqueTensorId=0;function getNextUniqueTensorId(){return _nextUniqueTensorId++}var _uidPrefixes={};function getUid(prefix=""){return prefix in _uidPrefixes||(_uidPrefixes[prefix]=0),_uidPrefixes[prefix]+=1,prefix+_uidPrefixes[prefix].toString()}function isArrayOfShapes(x){return Array.isArray(x)&&Array.isArray(x[0])}function normalizeShapeList(x){return x.length===0?[]:Array.isArray(x[0])?x:[x]}function getExactlyOneTensor(xs){let x;if(Array.isArray(xs)){if(xs.length!==1)throw new ValueError(`Expected Tensor length to be 1; got ${xs.length}`);x=xs[0]}else x=xs;return x}function getExactlyOneShape(shapes){if(Array.isArray(shapes)&&Array.isArray(shapes[0])){if(shapes.length===1)return shapes=shapes,shapes[0];throw new ValueError(`Expected exactly 1 Shape; got ${shapes.length}`)}else return shapes}function countParamsInWeights(weights){let count2=0;for(let weight of weights)weight.shape.length===0?count2+=1:count2+=weight.shape.reduce((a,b)=>a*b);return count2}var DEFAULT_VARIABLE_NAME_PREFIX="Variable",LayerVariable=class{constructor(val,dtype="float32",name=DEFAULT_VARIABLE_NAME_PREFIX,trainable=!0,constraint=null){this.dtype=dtype==null?"float32":dtype,this.shape=val.shape,this.id=getNextUniqueTensorId(),name=name==null?DEFAULT_VARIABLE_NAME_PREFIX:name,this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName),this.trainable_=trainable,this.constraint=constraint,this.val=variable(val,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(newVal){return this.assertNotDisposed(),checkShapesMatch(this.val,newVal),this.val.id!==newVal.id&&(this.val.assign(newVal),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(trainable){this.trainable_=trainable,this.val.trainable=trainable}};function checkShapesMatch(x,y){if(x.shape.toString()!==y.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(x.shape)+" vs. "+JSON.stringify(y.shape))}function batchGetValue(xs){return xs.map(x=>x.read())}function batchSetValue(variablesAndValues){variablesAndValues.forEach(variableAndValue=>{variableAndValue[0].write(variableAndValue[1])})}var InputSpec=class{constructor(args){this.dtype=args.dtype,this.shape=args.shape,args.shape!=null?this.ndim=args.shape.length:this.ndim=args.ndim,this.maxNDim=args.maxNDim,this.minNDim=args.minNDim,this.axes=args.axes||{}}},SymbolicTensor=class{constructor(dtype,shape,sourceLayer,inputs,callArgs,name,outputTensorIndex){this.dtype=dtype,this.shape=shape,this.sourceLayer=sourceLayer,this.inputs=inputs,this.callArgs=callArgs,this.outputTensorIndex=outputTensorIndex,this.id=getNextUniqueTensorId(),name!=null&&(this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName)),this.rank=shape.length}},_nextNodeID=0,Node=class{constructor(args,callArgs){this.callArgs=callArgs,this.id=_nextNodeID++,this.outboundLayer=args.outboundLayer,this.inboundLayers=args.inboundLayers,this.nodeIndices=args.nodeIndices,this.tensorIndices=args.tensorIndices,this.inputTensors=args.inputTensors,this.outputTensors=args.outputTensors,this.inputMasks=args.inputMasks,this.outputMasks=args.outputMasks,this.inputShapes=args.inputShapes,this.outputShapes=args.outputShapes;for(let layer of args.inboundLayers)layer!=null&&layer.outboundNodes.push(this);args.outboundLayer.inboundNodes.push(this)}getConfig(){let inboundNames=[];for(let layer of this.inboundLayers)layer!=null?inboundNames.push(layer.name):inboundNames.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:inboundNames,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},_nextLayerID=0,Layer=class extends serialization_exports.Serializable{constructor(args={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=_nextLayerID++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let name=args.name;if(!name){let prefix=this.getClassName();name=toSnakeCase(prefix)+"_"+getUid(prefix)}if(this.name=name,this.trainable_=args.trainable==null?!0:args.trainable,args.inputShape!=null||args.batchInputShape!=null){let batchInputShape;if(args.batchInputShape!=null)batchInputShape=args.batchInputShape;else if(args.inputShape!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),batchInputShape=[batchSize].concat(args.inputShape)}this.batchInputShape=batchInputShape;let dtype=args.dtype;dtype==null&&(dtype=args.inputDType),dtype==null&&(dtype="float32"),this.dtype=dtype}args.weights!=null?this.initialWeights=args.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(layer,nodeIndex){return layer.name+"_ib-"+nodeIndex.toString()}getNodeAtIndex(nodeIndex,attrName){if(this.inboundNodes.length===0)throw new RuntimeError(`The layer has never been called and thus has no defined ${attrName}.`);if(this.inboundNodes.length<=nodeIndex)throw new ValueError(`Asked to get ${attrName} at node ${nodeIndex}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[nodeIndex]}getInputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"input").inputTensors)}getOutputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} is not connected, no input to return.`);return singletonOrArray(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return singletonOrArray(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(lossFn=>lossFn())}get updates(){return this._updates}get built(){return this._built}set built(built){this._built=built}get trainable(){return this.trainable_}set trainable(trainable){this._trainableWeights.forEach(w=>w.trainable=trainable),this.trainable_=trainable}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(w=>w.trainable):[]}set trainableWeights(weights){this._trainableWeights=weights}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(w=>!w.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(weights){this._nonTrainableWeights=weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(inputs){if(inputs=toList(inputs),this.inputSpec==null||this.inputSpec.length===0)return;let inputSpec=toList(this.inputSpec);if(inputs.length!==inputSpec.length)throw new ValueError(`Layer ${this.name} expects ${inputSpec.length} inputs, but it received ${inputs.length} input tensors. Input received: ${inputs}`);for(let inputIndex=0;inputIndexspec.maxNDim)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected max_ndim=${spec.maxNDim}, found ndim=${ndim}`);if(spec.minNDim!=null&&ndim=0?xShape[axis]:xShape[xShape.length+axis];if(value!=null&&[value,null].indexOf(xShapeAtAxis)===-1)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected axis ${axis} of input shape to have value ${value} but got shape ${xShape}.`)}}if(spec.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(inputs);let inputShapes=[];for(let xElem of toList(inputs))inputShapes.push(xElem.shape);this.build(singletonOrArray(inputShapes)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&noneAreSymbolic&&(this._refCount=1)}if(this.assertInputCompatibility(inputs),noneAreSymbolic){let output=this.call(inputs,kwargs),outputList=toList(output),outputListCopy=[];for(let x of outputList)inputsList.indexOf(x)!==-1&&(x=x.clone()),outputListCopy.push(x);if(output=singletonOrArray(outputListCopy),this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}else{let inputShape=collectInputShape(inputs),outputShape=this.computeOutputShape(inputShape),output,outputDType=guessOutputDType(inputs);if(this.warnOnIncompatibleInputShape(Array.isArray(inputs)?inputShape[0]:inputShape),outputShape!=null&&outputShape.length>0&&Array.isArray(outputShape[0])?output=outputShape.map((shape,index)=>new SymbolicTensor(outputDType,shape,this,toList(inputs),kwargs,this.name,index)):output=new SymbolicTensor(outputDType,outputShape,this,toList(inputs),kwargs,this.name),this.addInboundNode(inputs,output,null,null,inputShape,outputShape,kwargs),this._refCount++,this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}})}warnOnIncompatibleInputShape(inputShape){if(this.batchInputShape!=null)if(inputShape.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(inputShape)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let dimMismatch=!1;this.batchInputShape.forEach((dimension,i)=>{dimension!=null&&inputShape[i]!=null&&inputShape[i]!==dimension&&(dimMismatch=!0)}),dimMismatch&&console.warn(`The shape of the input tensor (${JSON.stringify(inputShape)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new AttributeError(`The layer ${this.name} has never been called and thus has no defined output shape.`);let allOutputShapes=[];for(let node of this.inboundNodes){let shapeString=JSON.stringify(node.outputShapes);allOutputShapes.indexOf(shapeString)===-1&&allOutputShapes.push(shapeString)}if(allOutputShapes.length===1){let outputShapes=this.inboundNodes[0].outputShapes;return Array.isArray(outputShapes)&&Array.isArray(outputShapes[0])&&outputShapes.length===1?outputShapes[0]:outputShapes}else throw new AttributeError(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new RuntimeError(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return countParamsInWeights(this.weights)}build(inputShape){this.built=!0}getWeights(trainableOnly=!1){return batchGetValue(trainableOnly?this.trainableWeights:this.weights)}setWeights(weights){tidy(()=>{let params=this.weights;if(params.length!==weights.length)throw new ValueError(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${weights.length}, but the layer was expecting ${params.length} weights. Provided weights: ${weights}...`);if(params.length===0)return;let weightValueTuples=[],paramValues=batchGetValue(params);for(let i=0;iregularizer.apply(weight.read())),trainable==null&&(trainable=!0),trainable?this._trainableWeights.push(weight):this._nonTrainableWeights.push(weight),weight}setFastWeightInitDuringBuild(value){this.fastWeightInitDuringBuild=value}addLoss(losses4){losses4==null||Array.isArray(losses4)&&losses4.length===0||(losses4=toList(losses4),this._losses!==void 0&&this._losses!==null&&this.losses.push(...losses4))}computeOutputShape(inputShape){return inputShape}computeMask(inputs,mask){if(!this.supportsMasking){if(mask!=null)if(Array.isArray(mask))mask.forEach(maskElement=>{if(maskElement!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return mask}addInboundNode(inputTensors,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes,kwargs=null){let inputTensorList=toList(inputTensors);outputTensors=toList(outputTensors),inputMasks=toList(inputMasks),outputMasks=toList(outputMasks),inputShapes=normalizeShapeList(inputShapes),outputShapes=normalizeShapeList(outputShapes);let inboundLayers=[],nodeIndices=[],tensorIndices=[];for(let x of inputTensorList)inboundLayers.push(x.sourceLayer),nodeIndices.push(x.nodeIndex),tensorIndices.push(x.tensorIndex);new Node({outboundLayer:this,inboundLayers,nodeIndices,tensorIndices,inputTensors:inputTensorList,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes},kwargs);for(let i=0;iweight.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let numDisposedVariables=0;return--this._refCount==0&&(numDisposedVariables=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables}}};function collectInputShape(inputTensors){inputTensors=toList(inputTensors);let shapes=[];for(let x of inputTensors)shapes.push(x.shape);return singletonOrArray(shapes)}function guessOutputDType(inputTensors){return"float32"}function getSourceInputs(tensor2,layer,nodeIndex){if((layer==null||nodeIndex!=null&&nodeIndex>0)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex),layer.inboundNodes.length===0)return[tensor2];{let node=layer.inboundNodes[nodeIndex];if(node.inboundLayers.length===0)return node.inputTensors;{let sourceTensors=[];for(let i=0;i0){let values=await Promise.all(promises);for(let i=0;iadd2(this.totals[key],mul(value,batchSize)));this.totals[key]=total,oldTotalsToDispose!=null&&oldTotalsToDispose.dispose()}}}async onEpochEnd(epoch,logs){if(logs!=null)for(let key of this.params.metrics)this.totals[key]!=null&&(typeof this.totals[key]=="number"?logs[key]=this.totals[key]/this.seen:tidy(()=>{let log5=mul(div(1,this.seen),this.totals[key]);logs[key]=log5,this.totals[key].dispose(),keep(logs[key])}))}},History=class extends BaseCallback{async onTrainBegin(logs){this.epoch=[],this.history={}}async onEpochEnd(epoch,logs){logs==null&&(logs={}),this.epoch.push(epoch);for(let key in logs)this.history[key]==null&&(this.history[key]=[]),this.history[key].push(logs[key])}async syncData(){let promises=[],keys=[],indices=[];for(let key in this.history){let valueArray=this.history[key];for(let i=0;inew CustomCallback(callbackConfig,yieldEvery))}var CallbackConstructorRegistry=class{constructor(){}static registerCallbackConstructor(verbosityLevel,callbackConstructor){util_exports.assert(verbosityLevel>=0&&Number.isInteger(verbosityLevel),()=>`Verbosity level is expected to be an integer >= 0, but got ${verbosityLevel}`),CallbackConstructorRegistry.checkForDuplicate(callbackConstructor),CallbackConstructorRegistry.constructors[verbosityLevel]==null&&(CallbackConstructorRegistry.constructors[verbosityLevel]=[]),CallbackConstructorRegistry.constructors[verbosityLevel].push(callbackConstructor)}static checkForDuplicate(callbackConstructor){for(let levelName in CallbackConstructorRegistry.constructors)CallbackConstructorRegistry.constructors[+levelName].forEach(ctor=>{if(ctor===callbackConstructor)throw new ValueError("Duplicate callback constructor.")})}static clear(){CallbackConstructorRegistry.constructors={}}static createCallbacks(verbosityLevel){let constructors=[];for(let levelName in CallbackConstructorRegistry.constructors){let level=+levelName;verbosityLevel>=level&&constructors.push(...CallbackConstructorRegistry.constructors[level])}return constructors.map(ctor=>new ctor)}};CallbackConstructorRegistry.constructors={};function configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics){let history=new History,actualCallbacks=[new BaseLogger,...CallbackConstructorRegistry.createCallbacks(verbose)];callbacks2!=null&&actualCallbacks.push(...callbacks2),actualCallbacks.push(history);let callbackList=new CallbackList(actualCallbacks);return callbackList.setParams({epochs,initialEpoch,samples:numTrainSamples,steps:stepsPerEpoch,batchSize,verbose,doValidation,metrics:callbackMetrics}),{callbackList,history}}function deserialize(config3,customObjects={},fastWeightInit=!1){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"layer",fastWeightInit)}function l2Normalize(x,axis){return tidy(()=>{x.dtype!=="float32"&&(x=x.asType("float32"));let squareSum=sum2(square3(x),axis,!0),epsilonTensor=fill(squareSum.shape,epsilon2()),norm2=sqrt(maximum(squareSum,epsilonTensor));return div(x,norm2)})}function meanSquaredError2(yTrue,yPred){return tidy(()=>mean(square3(sub(yPred,yTrue)),-1))}function meanAbsoluteError(yTrue,yPred){return tidy(()=>mean(abs(sub(yPred,yTrue)),-1))}function meanAbsolutePercentageError(yTrue,yPred){return tidy(()=>{let diff=sub(yTrue,yPred),clippedTrue=clipByValue(abs(yTrue),epsilon2(),Number.MAX_VALUE),absResult=abs(div(diff,clippedTrue));return mul(100,mean(absResult,-1))})}function meanSquaredLogarithmicError(yTrue,yPred){return tidy(()=>{let clippedPred=clipByValue(yPred,epsilon2(),Number.MAX_VALUE),firstLog=log2(add2(1,clippedPred)),clippedTrue=clipByValue(yTrue,epsilon2(),Number.MAX_VALUE),secondLog=log2(add2(1,clippedTrue));return mean(square3(sub(firstLog,secondLog)),-1)})}function squaredHinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(square3(maxResult),-1)})}function hinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(maxResult,-1)})}function categoricalHinge(yTrue,yPred){return tidy(()=>{let pos=sum2(mul(yTrue,yPred),-1),neg4=max(mul(sub(1,yTrue),yPred),-1);return maximum(0,add2(1,sub(neg4,pos)))})}function logcosh(yTrue,yPred){return tidy(()=>{let log222=Math.log(2),predictionDiff=sub(yPred,yTrue),logcoshResult=sub(add2(predictionDiff,softplus(mul(-2,predictionDiff))),log222);return mean(logcoshResult,-1)})}function categoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{if(fromLogits)output=softmax(output);else{let outputSum=sum2(output,output.shape.length-1,!0);output=div(output,outputSum)}return output=clipByValue(output,epsilon2(),1-epsilon2()),neg(sum2(mul(target.toFloat(),log2(output)),output.shape.length-1))})}function sparseCategoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{let flatTarget=floor(flatten2(target)).toInt();output=clipByValue(output,epsilon2(),1-epsilon2());let outputShape=output.shape,oneHotTarget=oneHot(flatTarget,outputShape[outputShape.length-1]).reshape(outputShape);return categoricalCrossentropy(oneHotTarget,output,fromLogits)})}function sigmoidCrossEntropyWithLogits(labels,logits){if(!util_exports.arraysEqual(labels.shape,logits.shape))throw new ValueError(`logits and labels must have the same shape, but got shapes ${JSON.stringify(labels.shape)} and ${JSON.stringify(logits.shape)}`);return tidy(()=>{let reluLogits=logits.relu(),negAbsLogits=logits.abs().neg();return reluLogits.sub(logits.mul(labels)).add(negAbsLogits.exp().log1p())})}function binaryCrossentropy(yTrue,yPred){return tidy(()=>{let y;return y=clipByValue(yPred,epsilon2(),1-epsilon2()),y=log2(div(y,sub(1,y))),mean(sigmoidCrossEntropyWithLogits(yTrue,y),-1)})}function kullbackLeiblerDivergence(yTrue,yPred){return tidy(()=>{let clippedTrue=clipByValue(yTrue,epsilon2(),1),clippedPred=clipByValue(yPred,epsilon2(),1);return sum2(mul(yTrue,log2(div(clippedTrue,clippedPred))),-1)})}function poisson(yTrue,yPred){return tidy(()=>{let logPred=log2(add2(epsilon2(),yPred));return mean(sub(yPred,mul(yTrue,logPred)),-1)})}function cosineProximity(yTrue,yPred){return tidy(()=>{let trueNormalized=l2Normalize(yTrue,-1),predNormalized=l2Normalize(yPred,-1),trueXPred=mul(trueNormalized,predNormalized);return neg(sum2(trueXPred,-1))})}var lossesMap={meanSquaredError:meanSquaredError2,meanAbsoluteError,meanAbsolutePercentageError,meanSquaredLogarithmicError,squaredHinge,hinge,categoricalHinge,logcosh,categoricalCrossentropy,sparseCategoricalCrossentropy,binaryCrossentropy,kullbackLeiblerDivergence,poisson,cosineProximity};function get(identifierOrFn){if(typeof identifierOrFn=="string"){if(identifierOrFn in lossesMap)return lossesMap[identifierOrFn];let errMsg=`Unknown loss ${identifierOrFn}`;throw identifierOrFn.toLowerCase().includes("softmaxcrossentropy")&&(errMsg=`Unknown loss ${identifierOrFn}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new ValueError(errMsg)}else return identifierOrFn}function binaryAccuracy(yTrue,yPred){return tidy(()=>{let threshold2=mul(.5,onesLike(yPred)),yPredThresholded=cast5(greater(yPred,threshold2),yTrue.dtype);return mean(equal(yTrue,yPredThresholded),-1)})}function categoricalAccuracy(yTrue,yPred){return tidy(()=>cast5(equal(argMax(yTrue,-1),argMax(yPred,-1)),"float32"))}function truePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(1)).sum().cast("float32"))}function falseNegatives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(0)).sum().cast("float32"))}function falsePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(0),yPred.equal(1)).sum().cast("float32"))}function precision(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fp=falsePositives(yTrue,yPred),denominator=tp.add(fp);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function recall(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fn=falseNegatives(yTrue,yPred),denominator=tp.add(fn);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function binaryCrossentropy2(yTrue,yPred){return binaryCrossentropy(yTrue,yPred)}function sparseCategoricalAccuracy(yTrue,yPred){return yTrue.rank===yPred.rank&&(yTrue=yTrue.squeeze([yTrue.rank-1])),yPred=yPred.argMax(-1),yPred.dtype!==yTrue.dtype&&(yPred=yPred.asType(yTrue.dtype)),equal(yTrue,yPred).asType("float32")}var mse=meanSquaredError2,MSE=meanSquaredError2,mae=meanAbsoluteError,MAE=meanAbsoluteError,mape=meanAbsolutePercentageError,MAPE=meanAbsolutePercentageError,categoricalCrossentropy2=categoricalCrossentropy,cosine=cosineProximity,sparseCategoricalCrossentropy2=sparseCategoricalCrossentropy,metricsMap={binaryAccuracy,categoricalAccuracy,precision,categoricalCrossentropy:categoricalCrossentropy2,sparseCategoricalCrossentropy:sparseCategoricalCrossentropy2,mse,MSE,mae,MAE,mape,MAPE,cosine};function get2(identifier){if(typeof identifier=="string"&&identifier in metricsMap)return metricsMap[identifier];if(typeof identifier!="string"&&identifier!=null)return identifier;throw new ValueError(`Unknown metric ${identifier}`)}function getLossOrMetricName(fn){if(assert2(fn!==null,`Unknown LossOrMetricFn ${fn}`),typeof fn=="string")return fn;{let fnName;for(let key of Object.keys(lossesMap))if(lossesMap[key]===fn){fnName=key;break}if(fnName!==void 0)return fnName;for(let key of Object.keys(metricsMap))if(metricsMap[key]===fn){fnName=key;break}return fnName!==void 0?fnName:fn.name}}function getOptimizer(identifier){let optimizerMap={Adagrad:()=>train.adagrad(.01),Adadelta:()=>train.adadelta(1,.95,epsilon2()),Adam:()=>train.adam(.001,.9,.999,epsilon2()),Adamax:()=>train.adamax(.002,.9,.999,epsilon2(),0),RMSProp:()=>train.rmsprop(.001,.9,0,epsilon2()),SGD:()=>train.sgd(.01)};if(optimizerMap.adagrad=optimizerMap.Adagrad,optimizerMap.adadelta=optimizerMap.Adadelta,optimizerMap.adam=optimizerMap.Adam,optimizerMap.adamax=optimizerMap.Adamax,optimizerMap.rmsprop=optimizerMap.RMSProp,optimizerMap.sgd=optimizerMap.SGD,identifier in optimizerMap)return optimizerMap[identifier]();throw new ValueError(`Unknown Optimizer ${identifier}`)}var MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH=1*1024*1024;function checkUserDefinedMetadata(userDefinedMetadata,modelName,checkSize=!1){if(userDefinedMetadata==null||typeof userDefinedMetadata!="object"||Object.getPrototypeOf(userDefinedMetadata)!==Object.prototype||!plainObjectCheck(userDefinedMetadata))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(checkSize){let out=JSON.stringify(userDefinedMetadata);out.length>MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH&&console.warn(`User-defined metadata of model "${modelName}" is too large in size (length=${out.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH}.`)}}function plainObjectCheck(x){if(x===null)return!0;if(typeof x=="object")if(Object.getPrototypeOf(x)===Object.prototype){let keys=Object.keys(x);for(let key of keys)if(typeof key!="string"||!plainObjectCheck(x[key]))return!1;return!0}else if(Array.isArray(x)){for(let item of x)if(!plainObjectCheck(item))return!1;return!0}else return!1;else{let xType=typeof x;return xType==="string"||xType==="number"||xType==="boolean"}}function printSummary(model2,lineLength,positions,printFn=console.log){let sequentialLike=isModelSequentialLike(model2),toDisplay=["Layer (type)","Output shape","Param #"];sequentialLike?(lineLength=lineLength||65,positions=positions||[.45,.85,1]):(lineLength=lineLength||98,positions=positions||[.33,.55,.67,1]),positions[positions.length-1]<=1&&(positions=positions.map(p2=>Math.floor(lineLength*p2)));let relevantNodes;if(!sequentialLike){toDisplay.push("Receives inputs"),relevantNodes=[];for(let depth in model2.nodesByDepth)relevantNodes.push(...model2.nodesByDepth[depth])}printFn("_".repeat(lineLength)),printRow(toDisplay,positions,printFn),printFn("=".repeat(lineLength));let layers=model2.layers;for(let i=0;i1||depthNodes.length===1&&depthNodes[0].inboundLayers.length>1){sequentialLike=!1;break}nodes.push(...depthNodes)}if(sequentialLike)for(let layer of model2.layers){let flag=!1;for(let node of layer.inboundNodes)if(nodes.indexOf(node)!==-1)if(flag){sequentialLike=!1;break}else flag=!0;if(!sequentialLike)break}return sequentialLike}function printRow(fields,positions,printFn=console.log){let line="";for(let i=0;i0&&(line=line.slice(0,line.length-1)+" "),line+=fields[i],line=line.slice(0,positions[i]),line+=" ".repeat(positions[i]-line.length);printFn(line)}function printLayerSummary(layer,positions,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let name=layer.name,className=layer.getClassName(),fields=[`${name} (${className})`,outputShape,layer.countParams().toString()];printRow(fields,positions,printFn)}function printLayerSummaryWithConnections(layer,positions,relevantNodes,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let connections=[];for(let node of layer.inboundNodes)if(!(relevantNodes!=null&&relevantNodes.length>0&&relevantNodes.indexOf(node)===-1))for(let i=0;it.name),finalOutputs=[],feedNames=feedDict.names();for(let outputName of outputNames)feedNames.indexOf(outputName)!==-1?finalOutputs.push(feedDict.getValue(outputName)):finalOutputs.push(null);probe!=null&&(probe.maxNumTensors=-Infinity,probe.minNumTensors=Infinity);let fetchAndFeedKey=outputNames.join(",")+"|"+feedDict.names().join(","),sorted,recipientCounts;if(cachedSorted[fetchAndFeedKey]==null){let out=getTopologicalSortAndRecipientCounts(fetchArray,feedDict);sorted=out.sorted,recipientCounts=out.recipientCounts,cachedSorted[fetchAndFeedKey]=sorted,cachedRecipientCounts[fetchAndFeedKey]=recipientCounts}sorted=cachedSorted[fetchAndFeedKey],recipientCounts={},training||Object.assign(recipientCounts,cachedRecipientCounts[fetchAndFeedKey]);let internalFeedDict=new FeedDict(feedDict);for(let i=0;iprobe.maxNumTensors&&(probe.maxNumTensors=numTensors),numTensors0,()=>"Expected at least one fetch, got none");let finalSorted=[],finalRecipientMap={};if(fetches.length===1){let out=getTopologicalSortAndRecipientCountsForOneFetch(fetches[0],feedDict);finalSorted=out.sorted,finalRecipientMap=out.recipientMap}else{let visited=new Set;for(let fetch3 of fetches){let{sorted,recipientMap}=getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict);for(let symbolicTensor of sorted)visited.has(symbolicTensor.name)||(finalSorted.push(symbolicTensor),visited.add(symbolicTensor.name));for(let name in recipientMap)finalRecipientMap[name]==null&&(finalRecipientMap[name]=new Set),recipientMap[name].forEach(recipient=>finalRecipientMap[name].add(recipient))}}return{sorted:finalSorted,recipientCounts:recipientMap2Counts(finalRecipientMap)}}function recipientMap2Counts(recipientMap){let recipientCounts={};for(let name in recipientMap)recipientCounts[name]=recipientMap[name].size;return recipientCounts}function getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict){let visited=new Set,sorted=[],recipientMap={};for(let key of feedDict.names())visited.add(key);let stack2=[],marks=[];for(stack2.push(fetch3);stack2.length>0;){let top=stack2[stack2.length-1];if(visited.has(top.name)){stack2.pop();continue}let topIsMarked=marks[marks.length-1]===stack2.length-1;if(top.inputs.length===0||topIsMarked)stack2.pop(),sorted.push(top),visited.add(top.name),topIsMarked&&marks.pop();else{marks.push(stack2.length-1);for(let input2 of top.inputs)recipientMap[input2.name]==null&&(recipientMap[input2.name]=new Set),recipientMap[input2.name].add(top.name),!visited.has(input2.name)&&stack2.push(input2)}}return{sorted,recipientMap}}function getNodeOutputs(fetch3){let layerOutputs;if(fetch3.sourceLayer.inboundNodes.length===1)layerOutputs=fetch3.sourceLayer.output;else{let nodeIndex=null;for(let i=0;ix.name)}`);unique4(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(x=>x.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let x of this.outputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;this.outputLayers.push(layer),this.outputLayersNodeIndices.push(nodeIndex),this.outputLayersTensorIndices.push(tensorIndex)}for(let x of this.inputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;assert2(nodeIndex===0,"input layer has >1 nodes"),assert2(tensorIndex===0,"input layer has >1 tensors"),this.inputLayers.push(layer),this.inputLayersNodeIndices.push(nodeIndex),this.inputLayersTensorIndices.push(tensorIndex)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let i=0;ix.shape),this.internalOutputShapes=this.outputs.map(x=>x.shape);let nodesDepths={},nodeIDToNode={},layersDepths={},layerIDToLayer={},layerIndices={},nodesInDecreasingDepth=[],buildMapOfGraph=(tensor2,finishedNodes2,nodesInProgress2,layer,nodeIndex,tensorIndex)=>{(layer==null||nodeIndex==null||tensorIndex==null)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex,tensorIndex=tensor2.tensorIndex);let node=layer.inboundNodes[nodeIndex];if(nodesInProgress2.indexOf(node)!==-1)throw new RuntimeError(`The tensor ${tensor2.name} at layer "${layer.name}" is part of a cycle.`);if(finishedNodes2.indexOf(node)!==-1)return;this.containerNodes.add(Container.nodeKey(layer,nodeIndex)),layer.id in layerIndices||(layerIndices[layer.id]=Object.keys(layerIndices).length),nodesInProgress2.indexOf(node)===-1&&nodesInProgress2.push(node);let numInboundLayers=node.inboundLayers.length;for(let i=0;i=0;)nodesInProgress2.splice(nodesInProgress2.indexOf(node),1);nodesInDecreasingDepth.push(node)},finishedNodes=[],nodesInProgress=[];for(let x of this.outputs)buildMapOfGraph(x,finishedNodes,nodesInProgress);let reversedNodesInDecreasingDepth=nodesInDecreasingDepth.slice().reverse();for(let node of reversedNodesInDecreasingDepth){nodeIDToNode[node.id]=node,node.id in nodesDepths||(nodesDepths[node.id]=0);let depth=nodesDepths[node.id],previousDepth=layersDepths[node.outboundLayer.id]==null?0:layersDepths[node.outboundLayer.id];depth=Math.max(depth,previousDepth),layersDepths[node.outboundLayer.id]=depth,layerIDToLayer[node.outboundLayer.id]=node.outboundLayer,nodesDepths[node.id]=depth;for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);this.layers=[];for(let depth of depthKeys){let layersForDepth=layersByDepth[depth];layersForDepth.sort((a,b)=>{let aIndex=layerIndices[a.id],bIndex=layerIndices[b.id];return aIndexbIndex?1:0});for(let layer of layersForDepth)layer instanceof Container&&this.internalContainerRefs.push(layer),this.layers.push(layer)}this.layersByDepth=layersByDepth,depthKeys=Object.keys(nodesByDepth).map(x=>parseInt(x,10)).sort(reverseNumberCompare);let computableTensors=this.inputs.slice(),layersWithCompleteInput=[];for(let depth of depthKeys)for(let node of nodesByDepth[depth]){let layer=node.outboundLayer;if(layer!=null){for(let x of node.inputTensors)if(computableTensors.indexOf(x)===-1)throw new RuntimeError(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${layer.name}". The following previous layers were accessed without issue: ${layersWithCompleteInput}`);for(let x of node.outputTensors)computableTensors.push(x);layersWithCompleteInput.push(layer.name)}}this.nodesByDepth=nodesByDepth;let allNames=this.layers.map(x=>x.name);for(let name of allNames){let numOccurrences=allNames.filter(x=>x===name).length;if(numOccurrences!==1)throw new RuntimeError(`The name "${name}" is used ${numOccurrences} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(allNames))}this.outboundNodes=[],this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(x=>null),outputMasks:this.outputs.map(x=>null),inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs.map(x=>x.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let result={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let layer of this.layers)result.numDisposedVariables+=layer.dispose().numDisposedVariables;for(let container of this.internalContainerRefs)result.numDisposedVariables+=container.dispose().numDisposedVariables}return result.refCountAfterDispose=this._refCount,result}get trainable(){return this.trainable_}set trainable(trainable){this.layers.forEach(layer=>{layer._trainableWeights.forEach(w=>w.trainable=trainable)}),this.trainable_=trainable}get trainableWeights(){if(this._trainableWeights.length>0)throw new ValueError("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let weights=[];for(let layer of this.layers)weights=weights.concat(layer.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let layer of this.layers)weights.push(...layer.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let layer of this.layers)trainableWeights.push(...layer.trainableWeights);return trainableWeights.concat(weights)}return weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(weights,strict=!0){let nameToWeight={},totalWeightsCount=0;for(let layer of this.layers)for(let weight of layer.weights){if(nameToWeight[weight.originalName]!=null)throw new ValueError(`Duplicate weight name: ${weight.originalName}`);nameToWeight[weight.originalName]=weight,totalWeightsCount++}let weightValueTuples=[];for(let name in weights){let validatedName=name;if(nameToWeight[name]==null){let tokens=name.split("/");validatedName=tokens.slice(0,-2).concat([tokens[tokens.length-1]]).join("/")}if(nameToWeight[validatedName]!=null)weightValueTuples.push([nameToWeight[validatedName],weights[name]]);else if(strict)throw new ValueError(`Provided weight data has no target variable: ${name}`);delete nameToWeight[validatedName]}if(strict){let unsetNames=[];for(let name in nameToWeight)unsetNames.push(name);if(unsetNames.length>0)throw new ValueError(`${unsetNames.length} of ${totalWeightsCount} weights are not set: ${unsetNames}`)}batchSetValue(weightValueTuples)}updatedConfig(){let theConfig=this.getConfig(),modelConfig={};return modelConfig.className=this.getClassName(),modelConfig.config=theConfig,modelConfig.kerasVersion=`tfjs-layers ${version10}`,modelConfig.backend="TensorFlow.js",modelConfig}toJSON(unused,returnString=!0){let modelConfig=convertTsToPythonic(this.updatedConfig());return returnString?JSON.stringify(modelConfig):modelConfig}call(inputs,kwargs){return tidy(()=>{inputs=toList(inputs);let feedDict=new FeedDict;for(let i=0;i{inputs=toList(inputs);let masks;return mask==null?masks=pyListRepeat(null,inputs.length):masks=toList(mask),this.runInternalGraph(inputs,masks)[1]})}computeOutputShape(inputShape){let inputShapes=normalizeShapeList(inputShape);if(inputShapes.length!==this.inputLayers.length)throw new ValueError(`Invalid inputShape argument ${inputShape}: model has ${this.inputLayers.length} tensor inputs.`);let layersToOutputShapes={};for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);if(depthKeys.length>1)for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer;if(this.inputLayers.map(x=>x.id).indexOf(layer.id)!==-1)continue;let inputShapes2=[];for(let j=0;jparseInt(x,10)).sort(reverseNumberCompare);for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer,referenceInputTensors=node.inputTensors,referenceOutputTensors=node.outputTensors,computedData=new Array;for(let x of referenceInputTensors)x.id in tensorMap&&computedData.push(tensorMap[x.id]);if(computedData.length===referenceInputTensors.length){let kwargs={},computedTensors,computedMasks,outputTensors2,outputMasks2;if(node.callArgs!=null&&(kwargs=node.callArgs),computedData.length===1){let[computedTensor,computedMask]=computedData[0];kwargs.mask==null&&(kwargs.mask=computedMask),outputTensors2=toList(layer.call(computedTensor,kwargs)),outputMasks2=toList(layer.computeMask(computedTensor,computedMask)),computedTensors=[computedTensor],computedMasks=[computedMask]}else computedTensors=computedData.map(x=>x[0]),computedMasks=computedData.map(x=>x[1]),kwargs.mask==null&&(kwargs.mask=computedMasks),outputTensors2=toList(layer.call(computedTensors,kwargs)),outputMasks2=toList(layer.computeMask(computedTensors,computedMasks));if(layer.activityRegularizer)throw new NotImplementedError("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let i=0;i{let losses4=[];for(let layer of this.layers)for(let nodeIndex=0;nodeIndex0){let nodeData=[];for(let i=0;i0&&layer.apply(singletonOrArray(inputTensors2),kwargs)}function processLayer(layerData){let layerName=layerData.name,layer=deserialize(layerData,config3.customObjects!=null?config3.customObjects:{});layer.setFastWeightInitDuringBuild(fastWeightInit),createdLayers[layerName]=layer,layerData.inboundNodes.forEach(nodeData=>{if(!(nodeData instanceof Array))throw new ValueError(`Corrupted configuration, expected array for nodeData: ${nodeData}`);addUnprocessedNode(layer,nodeData)})}let name=config3.name,layersFromConfig=config3.layers;for(let layerData of layersFromConfig)processLayer(layerData);for(;!isObjectEmpty(unprocessedNodes);)for(let layerData of layersFromConfig){let layer=createdLayers[layerData.name];if(layer.name in unprocessedNodes){let currentUnprocessedNodesForLayer=unprocessedNodes[layer.name];delete unprocessedNodes[layer.name];for(let nodeData of currentUnprocessedNodesForLayer)processNode(layer,nodeData)}}let inputTensors=[],outputTensors=[],inputLayersFromConfig=config3.inputLayers;for(let layerData of inputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;inputTensors.push(layerOutputTensors[tensorIndex])}let outputLayersFromConfig=config3.outputLayers;for(let layerData of outputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;outputTensors.push(layerOutputTensors[tensorIndex])}return new cls({inputs:inputTensors,outputs:outputTensors,name})}get stateful(){if(this._stateful)throw new ValueError("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let layer of this.layers)if(layer.stateful)return!0;return!1}resetStates(){tidy(()=>{this.layers.forEach(layer=>{layer.stateful&&layer.resetStates()})})}};function standardizeSampleOrClassWeights(xWeight,outputNames,weightType){let numOutputs=outputNames.length;if(xWeight==null||Array.isArray(xWeight)&&xWeight.length===0)return outputNames.map(name=>null);if(numOutputs===1)return Array.isArray(xWeight)&&xWeight.length===1?xWeight:typeof xWeight=="object"&&outputNames[0]in xWeight?[xWeight[outputNames[0]]]:[xWeight];if(Array.isArray(xWeight)){if(xWeight.length!==numOutputs)throw new Error(`Provided ${weightType} is an array of ${xWeight.length} element(s), but the model has ${numOutputs} outputs. Make sure a set of weights is provided for each model output.`);return xWeight}else if(typeof xWeight=="object"&&Object.keys(xWeight).length>0&&typeof xWeight[Object.keys(xWeight)[0]]=="object"){let output=[];return outputNames.forEach(outputName=>{outputName in xWeight?output.push(xWeight[outputName]):output.push(null)}),output}else throw new Error(`The model has multiple (${numOutputs}) outputs, so ${weightType} must be either an array with ${numOutputs} elements or an object with ${outputNames} keys. Provided ${weightType} not understood: ${JSON.stringify(xWeight)}`)}function standardizeClassWeights(classWeight,outputNames){return standardizeSampleOrClassWeights(classWeight,outputNames,"classWeight")}async function standardizeWeights(y,sampleWeight,classWeight,sampleWeightMode){if(sampleWeight!=null||sampleWeightMode!=null)throw new Error("Support sampleWeight is not implemented yet");if(classWeight!=null){let yClasses=tidy(()=>{if(y.shape.length===1)return y.clone();if(y.shape.length===2)if(y.shape[1]>1){let axis=1;return y.argMax(axis)}else{if(y.shape[1]===1)return y.reshape([y.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${y.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${y.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),yClassIndices=Array.from(await yClasses.data());dispose(yClasses);let classSampleWeight=[];return yClassIndices.forEach(classIndex=>{if(classWeight[classIndex]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${classIndex} exists in the data but not in classWeight`);classSampleWeight.push(classWeight[classIndex])}),tensor1d(classSampleWeight,"float32")}else return null}function computeWeightedLoss2(losses4,sampleWeights){return mul(losses4,sampleWeights)}var DEFAULT_VALIDATION_BATCH_SIZE=32;function standardizeDataIteratorOutput(model2,iteratorOut){let xs,ys,iteratorOutObj=iteratorOut;xs=iteratorOutObj.xs,ys=iteratorOutObj.ys,util_exports.assert(xs!=null&&ys!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${iteratorOut}`);let flattenedXs=flattenTensorOrArrayOrMap("input",model2.inputNames,xs),flattenedYs=flattenTensorOrArrayOrMap("output",model2.outputNames,ys),batchSize=flattenedXs[0].shape[0];util_exports.assert(flattenedXs.length===model2.inputs.length,()=>`LayersModel has ${model2.inputs.length} inputs, but the dataset provides ${flattenedXs.length} inputs. (Expected input keys: ${JSON.stringify(model2.inputNames)})`),util_exports.assert(flattenedYs.length===model2.outputs.length,()=>`LayersModel has ${model2.outputs.length} outputs, but the dataset provides ${flattenedYs.length} outputs. (Expected output keys: ${JSON.stringify(model2.outputNames)})`);for(let xIndex=0;xIndex`Batch size mismatch: input ${model2.inputNames[xIndex]} has ${flattenedXs[xIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);for(let yIndex=0;yIndex`Batch size mismatch: output ${model2.outputNames[yIndex]} has ${flattenedYs[yIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);return{xs:flattenedXs,ys:flattenedYs}}function flattenTensorOrArrayOrMap(inputOrOutput,names,values){if(values instanceof Tensor)return[values];if(Array.isArray(values))return util_exports.assert(values.length===names.length,()=>`Received an array of ${values.length} Tensors, but expected ${names.length} to match the ${inputOrOutput} keys ${names}.`),values;{let result=[];for(let name of names){if(values[name]==null)throw new ValueError(`The feature data generated by the dataset lacks the required ${inputOrOutput} key '${name}'.`);result.push(values[name])}return result}}function standardizeTensorValidationData(data2){if(data2.length===3)throw new NotImplementedError("Validation with sample weights is not implemented yet.");return{xs:data2[0],ys:data2[1]}}async function fitDataset(model2,dataset,args){let hasBatchesPerEpoch=args.batchesPerEpoch!=null;if(util_exports.assert(model2.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),util_exports.assert(args!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),util_exports.assert(args.epochs!=null&&args.epochs>0&&Number.isInteger(args.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${args.epochs}`),util_exports.assert(!hasBatchesPerEpoch||args.batchesPerEpoch>0&&Number.isInteger(args.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${args.batchesPerEpoch}`),util_exports.assert(args.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),model2.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");model2.isTraining=!0;try{let doValidation=args.validationData!=null,valXs,valYs;if(doValidation)if(isDatasetObject(args.validationData))util_exports.assert(args.validationBatches==null||args.validationBatches>0&&Number.isInteger(args.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${args.validationBatches}`);else{let validationData=standardizeTensorValidationData(args.validationData);valXs=validationData.xs,valYs=validationData.ys}let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),callbackMetrics;doValidation?callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n)):callbackMetrics=outLabels.slice();let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery),verbose=args.verbose==null?1:args.verbose,{callbackList,history}=configureCallbacks(callbacks2,verbose,args.epochs,null,null,getStepsPerEpoch(dataset,args),null,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;let epoch=args.initialEpoch==null?0:args.initialEpoch,dataIterator=await dataset.iterator();for(;epoch=args.batchesPerEpoch:iteratorOut.done){if(doValidation){let valOuts;isDatasetObject(args.validationData)?valOuts=toList(await model2.evaluateDataset(args.validationData,{batches:args.validationBatches})):valOuts=toList(model2.evaluate(valXs,valYs,{batchSize:args.validationBatchSize==null?DEFAULT_VALIDATION_BATCH_SIZE:args.validationBatchSize,verbose:0}));for(let i=0;i0)throw new NotImplementedError("Verbose mode is not implemented yet.");util_exports.assert(!hasBatches||args.batches>0&&Number.isInteger(args.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(args.batches)}`);let dataIterator=isLazyIteratorObject(dataset)?dataset:await dataset.iterator(),numExamples=0,batch=0;for(;hasBatches?batch{if(iteratorOut.value){let{xs,ys}=standardizeDataIteratorOutput(model2,iteratorOut.value),xsAndYs=xs.concat(ys),batchOuts=tidy(()=>f(xsAndYs));if(dispose(xsAndYs),batch===0)for(let i=0;iadd2(outs[i],mul(batchSize,batchOut))),batch>0&&dispose(oldScalar)}dispose(batchOuts),numExamples+=batchSize,++batch}return outs}),iteratorOut.done){hasBatches&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${args.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let i=0;i0&&Number.isInteger(batchSize),()=>`batchSize is required to be a positive integer, but got ${batchSize}`)}function sliceArrays(arrays,start,stop){return arrays==null?[null]:Array.isArray(arrays)?arrays.map(array2=>sliceAlongFirstAxis(array2,start,stop-start)):sliceAlongFirstAxis(arrays,start,stop-start)}function sliceArraysByIndices(arrays,indices){return tidy(()=>arrays==null?null:Array.isArray(arrays)?arrays.map(array2=>sliceArraysByIndices(array2,indices)):gather2(arrays,indices.dtype==="int32"?indices:indices.toInt()))}function makeBatches(size,batchSize){let output=[],batchStart=0,batchEnd=null;for(;batchStart=size&&(batchEnd=size),output.push([batchStart,batchEnd]),batchStart=batchEnd;return output}async function fitLoop(model2,f,ins,outLabels,batchSize,epochs,verbose,callbacks2,valF,valIns,shuffle2,callbackMetrics,initialEpoch,stepsPerEpoch,validationSteps){batchSize==null&&(batchSize=32),epochs==null&&(epochs=1),shuffle2==null&&(shuffle2=!0),initialEpoch==null&&(initialEpoch=0);let doValidation=!1;if(valF!=null&&valIns!=null&&(doValidation=!0),validationSteps!=null&&(doValidation=!0,stepsPerEpoch==null))throw new ValueError("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let numTrainSamples=model2.checkNumSamples(ins,batchSize,stepsPerEpoch,"steps_per_epoch"),indexArray;numTrainSamples!=null&&(indexArray=range5(0,numTrainSamples)),verbose==null&&(verbose=1);let{callbackList,history}=configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;for(let epoch=initialEpoch;epoch{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],batchIds=sliceAlongFirstAxis(epochIndexArray1D,batchStart,batchEnd-batchStart);batchLogs.batch=batchIndex,batchLogs.size=batchEnd-batchStart;let insBatch=sliceArraysByIndices(ins,batchIds),outs=f(insBatch);for(let i=0;i0){if(doValidation=!0,args.validationData.length===2)inputValX=args.validationData[0],inputValY=args.validationData[1];else throw args.validationData.length===3?new NotImplementedError("validationData including sample weights is not supported yet."):new ValueError(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${args.validationData} is invalid.`);let checkBatchAxis2=!0,valStandardized=await model2.standardizeUserData(inputValX,inputValY,null,null,checkBatchAxis2,batchSize);valX=valStandardized[0],valY=valStandardized[1],valIns=valX.concat(valY)}else if(args.validationSplit!=null&&args.validationSplit>0&&args.validationSplit<1){doValidation=!0;let splitAt=Math.floor(inputs[0].shape[0]*(1-args.validationSplit)),originalBatchSize=inputs[0].shape[0];valX=sliceArrays(inputs,splitAt,originalBatchSize),inputs=sliceArrays(inputs,0,splitAt),valY=sliceArrays(targets,splitAt,originalBatchSize),targets=sliceArrays(targets,0,splitAt),valIns=valX.concat(valY)}else args.validationSteps!=null&&(doValidation=!0);let ins=inputs.concat(targets).concat(sampleWeights);model2.checkTrainableWeightsConsistency();let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),valFunction,callbackMetrics;doValidation?(model2.makeTestFunction(),valFunction=model2.testFunction,callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n))):(valFunction=null,valIns=[],callbackMetrics=outLabels.slice());let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery);return await fitLoop(model2,trainFunction,ins,outLabels,batchSize,args.epochs,args.verbose,callbacks2,valFunction,valIns,args.shuffle,callbackMetrics,args.initialEpoch,null,null)}finally{model2.isTraining=!1,disposeNewTensors(inputs,x),disposeNewTensors(targets,y),disposeNewTensors(valX,inputValX),disposeNewTensors(valY,inputValY),sampleWeights!=null&&dispose(sampleWeights)}}function ensureTensorsRank2OrHigher(tensors){let outs=[];tensors instanceof Tensor&&(tensors=[tensors]);for(let i=0;ioldTensorIds.push(t.id));else if(refTensors!=null)for(let name in refTensors){let oldTensor=refTensors[name];oldTensorIds.push(oldTensor.id)}let tensorsToDispose=[];if(tensors instanceof Tensor)oldTensorIds.indexOf(tensors.id)===-1&&tensorsToDispose.push(tensors);else if(Array.isArray(tensors))tensors.forEach(t=>{oldTensorIds.indexOf(t.id)===-1&&tensorsToDispose.push(t)});else if(tensors!=null)for(let name in tensors){let tensor2=tensors[name];oldTensorIds.indexOf(tensor2.id)===-1&&tensorsToDispose.push(tensor2)}tensorsToDispose.forEach(t=>{t.isDisposed||t.dispose()})}function isDataTensor(x){return x instanceof Tensor}function isDataArray(x){return Array.isArray(x)}function isDataDict(x){return!isDataTensor(x)&&!isDataArray(x)}function standardizeInputData(data2,names,shapes,checkBatchAxis=!0,exceptionPrefix=""){if(names==null||names.length===0){if(data2!=null){let gotUnexpectedData=!1;if(isDataArray(data2)&&data2.length>0)gotUnexpectedData=!0;else if(isDataDict(data2)){for(let key in data2)if(data2.hasOwnProperty(key)){gotUnexpectedData=!0;break}}else gotUnexpectedData=!0;if(gotUnexpectedData)throw new ValueError(`Error when checking model ${exceptionPrefix} expected no data, but got ${data2}`)}return[]}if(data2==null)return names.map(name=>null);let arrays;if(isDataDict(data2)){data2=data2,arrays=[];for(let name of names){if(data2[name]==null)throw new ValueError(`No data provided for "${name}". Need data for each key in: ${names}`);arrays.push(data2[name])}}else if(isDataArray(data2)){if(data2=data2,data2.length!==names.length)throw new ValueError(`Error when checking model ${exceptionPrefix}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${names.length} Tensor(s), but instead got the following list of Tensor(s): ${data2}`);arrays=data2}else{if(data2=data2,names.length>1)throw new ValueError(`The model ${exceptionPrefix} expects ${names.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${data2.shape}`);arrays=[data2]}if(arrays=ensureTensorsRank2OrHigher(arrays),shapes!=null)for(let i=0;i=0&&dim!==refDim)throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have shape [${shapes[i]}], but got array with shape [${array2.shape}].`)}}return arrays}function checkArrayLengths(inputs,targets,weights){let setX=unique4(inputs.map(input2=>input2.shape[0]));setX.sort();let setY=unique4(targets.map(target=>target.shape[0]));if(setY.sort(),setX.length>1)throw new ValueError(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(inputs.map(input2=>input2.shape))}`);if(setY.length>1)throw new ValueError(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(targets.map(target=>target.shape))}`);if(setX.length>0&&setY.length>0&&!util_exports.arraysEqual(setX,setY))throw new ValueError(`Input Tensors should have the same number of samples as target Tensors. Found ${setX[0]} input sample(s) and ${setY[0]} target sample(s).`)}function checkLossAndTargetCompatibility(targets,lossFns,outputShapes){let keyLosses=[meanSquaredError2,binaryCrossentropy,categoricalCrossentropy];for(let i=0;i1)throw new ValueError(`The model expects ${names.length} ${exceptionPrefix} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(data2.shape)}.`);arrays=[data2]}if(shapes!=null)for(let i=0;i[]);let wrappedMetrics;if(typeof metrics2=="string"||typeof metrics2=="function")wrappedMetrics=[metrics2];else if(Array.isArray(metrics2)||typeof metrics2=="object")wrappedMetrics=metrics2;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${metrics2}`);if(Array.isArray(wrappedMetrics))return outputNames.map(name=>wrappedMetrics);{let nestedMetrics=[];for(let name of outputNames){let outputMetrics=wrappedMetrics.hasOwnProperty(name)?wrappedMetrics[name]:[];Array.isArray(outputMetrics)||(outputMetrics=[outputMetrics]),nestedMetrics.push(outputMetrics)}return nestedMetrics}}var LAYERS_MODEL_FORMAT_NAME="layers-model",LayersModel=class extends Container{constructor(args){super(args);this.isTraining=!1}summary(lineLength,positions,printFn=console.log){if(!this.built)throw new ValueError("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");printSummary(this,lineLength,positions,printFn)}compile(args){if(args.loss==null&&(args.loss=[]),this.loss=args.loss,typeof args.optimizer=="string")this.optimizer_=getOptimizer(args.optimizer),this.isOptimizerOwned=!0;else{if(!(args.optimizer instanceof Optimizer))throw new ValueError("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=args.optimizer,this.isOptimizerOwned=!1}let lossFunctions=[];if(!Array.isArray(args.loss)&&typeof args.loss!="string"&&typeof args.loss!="function"){args.loss=args.loss;for(let name in args.loss)if(this.outputNames.indexOf(name)===-1)throw new ValueError(`Unknown entry in loss dictionary: "${name}". Only expected the following keys: ${this.outputNames}`);for(let name of this.outputNames)args.loss[name]==null&&console.warn(`Output "${name}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${name} during training`),lossFunctions.push(get(args.loss[name]))}else if(Array.isArray(args.loss)){if(args.loss.length!==this.outputs.length)throw new ValueError(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${args.loss}.`);lossFunctions=args.loss.map(l=>get(l))}else{let lossFunction=get(args.loss);this.outputs.forEach(_=>{lossFunctions.push(lossFunction)})}this.lossFunctions=lossFunctions,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([weightedLoss,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let nestedMetrics=collectMetrics(args.metrics,this.outputNames),appendMetric=(outputIndex,metricName,metricTensor)=>{this.outputNames.length>1&&(metricName=this.outputNames[outputIndex]+"_"+metricName),this.metricsNames.push(metricName),this.metricsTensors.push([metricTensor,outputIndex])};nameScope("metric",()=>{for(let i=0;i{let metricNamePrefix="",metricName,accFn,weightedMetricFn;for(let metric of metrics2){if(typeof metric=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(metric)!==-1){let outputShape=this.internalOutputShapes[i];outputShape[outputShape.length-1]===1||this.lossFunctions[i]===binaryCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=binaryAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=binaryCrossentropy2):this.lossFunctions[i]===sparseCategoricalCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=sparseCategoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=sparseCategoricalCrossentropy2):["accuracy","acc"].indexOf(metric)!==-1?accFn=categoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=categoricalCrossentropy2);let suffix;["accuracy","acc"].indexOf(metric)!==-1?suffix="acc":["crossentropy","ce"].indexOf(metric)!==-1&&(suffix="ce"),weightedMetricFn=accFn,metricName=metricNamePrefix+suffix}else weightedMetricFn=get2(metric),metricName=metricNamePrefix+getLossOrMetricName(metric);let metricResult;nameScope(metricName,()=>{metricResult=weightedMetricFn}),appendMetric(i,metricName,metricResult)}})(outputMetrics)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(x,y,args={}){let batchSize=args.batchSize==null?32:args.batchSize;checkBatchSize(batchSize);let checkBatchAxis=!0,standardizedOuts=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);try{let ins=standardizedOuts[0].concat(standardizedOuts[1]);this.makeTestFunction();let f=this.testFunction,testOuts=this.testLoop(f,ins,batchSize,args.verbose,args.steps);return singletonOrArray(testOuts)}finally{disposeNewTensors(standardizedOuts[0],x),disposeNewTensors(standardizedOuts[1],y)}}async evaluateDataset(dataset,args){return this.makeTestFunction(),evaluateDataset(this,dataset,args)}checkNumSamples(ins,batchSize,steps,stepsName="steps"){let numSamples;if(steps!=null){if(numSamples=null,batchSize!=null)throw new ValueError(`If ${stepsName} is set, batchSize must be null or undefined.Got batchSize = ${batchSize}`)}else if(ins!=null)Array.isArray(ins)?numSamples=ins[0].shape[0]:numSamples=ins.shape[0];else throw new ValueError(`Either the input data should have a defined shape, or ${stepsName} shoud be specified.`);return numSamples}execute(inputs,outputs){if(Array.isArray(outputs)&&outputs.length===0)throw new ValueError("`outputs` is an empty Array, which is not allowed.");let outputsIsArray=Array.isArray(outputs),outputNames=outputsIsArray?outputs:[outputs],outputSymbolicTensors=this.retrieveSymbolicTensors(outputNames),feedDict=new FeedDict;if(inputs instanceof Tensor&&(inputs=[inputs]),Array.isArray(inputs)){if(inputs.length!==this.inputs.length)throw new ValueError(`The number of inputs provided (${inputs.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let i=0;ioutput.name);for(let i=0;i0){let remainingNames=[];throw outputSymbolicTensors.forEach((tensor2,i)=>{tensor2==null&&remainingNames.push(symbolicTensorNames[i])}),new ValueError(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(remainingNames)}`)}return outputSymbolicTensors}predictLoop(ins,batchSize=32,verbose=!1){return tidy(()=>{let numSamples=this.checkNumSamples(ins);if(verbose)throw new NotImplementedError("Verbose predictLoop() is not implemented yet.");let batches=makeBatches(numSamples,batchSize),outsBatches=this.outputs.map(output=>[]);for(let batchIndex=0;batchIndex{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],insBatch=sliceArrays(ins,batchStart,batchEnd),feeds=[];if(Array.isArray(insBatch))for(let i=0;ioutsBatches[i].push(batchOut));return singletonOrArray(outsBatches.map(batches2=>concat(batches2,0)))})}predict(x,args={}){let xsRank2OrHigher=ensureTensorsRank2OrHigher(x);checkInputData(xsRank2OrHigher,this.inputNames,this.feedInputShapes,!1);try{let batchSize=args.batchSize==null?32:args.batchSize;return checkBatchSize(batchSize),this.predictLoop(xsRank2OrHigher,batchSize)}finally{disposeNewTensors(xsRank2OrHigher,x)}}predictOnBatch(x){checkInputData(x,this.inputNames,this.feedInputShapes,!0);let batchSize=(Array.isArray(x)?x[0]:x).shape[0];return this.predictLoop(x,batchSize)}standardizeUserDataXY(x,y,checkBatchAxis=!0,batchSize){if(this.optimizer_==null)throw new RuntimeError("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let outputShapes=[];for(let i=0;i0&&x[0].shape[0]%batchSize!=0)throw new ValueError(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${batchSize}. Found: ${x[0].shape[0]} sample(s).`);return[x,y]}async standardizeUserData(x,y,sampleWeight,classWeight,checkBatchAxis=!0,batchSize){let[standardXs,standardYs]=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);if(sampleWeight!=null)throw new Error("sample weight is not supported yet.");let standardSampleWeights=null;if(classWeight!=null){let classWeights=standardizeClassWeights(classWeight,this.outputNames);standardSampleWeights=[];for(let i=0;i{let numSamples=this.checkNumSamples(ins,batchSize,steps,"steps"),outs=[];if(verbose>0)throw new NotImplementedError("Verbose mode is not implemented yet.");if(steps!=null)throw new NotImplementedError("steps mode in testLoop() is not implemented yet");{let batches=makeBatches(numSamples,batchSize),indexArray=tensor1d(range5(0,numSamples));for(let batchIndex=0;batchIndex1&&(newLabel+=`_${count(outLabels.slice(0,i),label)}`),dedupedOutLabels.push(newLabel)}return dedupedOutLabels}makeTrainFunction(){return data2=>{let lossValues=[],inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),sampleWeights=data2.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),metricsValues=[],totalLossFunction=()=>{let feeds=[];for(let i=0;i1&&i{totalLoss=add2(totalLoss,regularizerLoss)}),totalLoss},variables=this.collectedTrainableWeights.map(param=>param.read()),returnCost=!0;return[this.optimizer_.minimize(totalLossFunction,returnCost,variables)].concat(metricsValues)}}makeTestFunction(){this.testFunction=data2=>tidy(()=>{let valOutputs=[],totalLoss,inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),feeds=[];for(let i=0;itoSnakeCase(name))}else{let outputNames=Object.keys(this.loss);lossNames={};let losses4=this.loss;for(let outputName of outputNames)if(typeof losses4[outputName]=="string")lossNames[outputName]=toSnakeCase(losses4[outputName]);else throw new Error("Serialization of non-string loss is not supported.")}return lossNames}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[toSnakeCase(getLossOrMetricName(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(metric=>toSnakeCase(getLossOrMetricName(metric)));{let metricsIdentifiers={};for(let key in this.metrics)metricsIdentifiers[key]=toSnakeCase(getLossOrMetricName(this.metrics[key]));return metricsIdentifiers}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(trainingConfig){if(trainingConfig.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(trainingConfig.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(trainingConfig.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let tsConfig=convertPythonicToTs(trainingConfig.optimizer_config),optimizer=deserialize(tsConfig),loss;if(typeof trainingConfig.loss=="string")loss=toCamelCase(trainingConfig.loss);else if(Array.isArray(trainingConfig.loss))loss=trainingConfig.loss.map(lossEntry=>toCamelCase(lossEntry));else if(trainingConfig.loss!=null){loss={};for(let key in trainingConfig.loss)loss[key]=toCamelCase(trainingConfig.loss[key])}let metrics2;if(Array.isArray(trainingConfig.metrics))metrics2=trainingConfig.metrics.map(metric=>toCamelCase(metric));else if(trainingConfig.metrics!=null){metrics2={};for(let key in trainingConfig.metrics)metrics2[key]=toCamelCase(trainingConfig.metrics[key])}this.compile({loss,metrics:metrics2,optimizer})}async save(handlerOrURL,config3){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new ValueError(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new ValueError("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let weightDataAndSpecs=await io_exports.encodeWeights(this.getNamedWeights(config3)),returnString=!1,unusedArg=null,modelArtifacts={modelTopology:this.toJSON(unusedArg,returnString),format:LAYERS_MODEL_FORMAT_NAME,generatedBy:`TensorFlow.js tfjs-layers v${version10}`,convertedBy:null};if((config3==null?!1:config3.includeOptimizer)&&this.optimizer!=null){modelArtifacts.trainingConfig=this.getTrainingConfig();let weightType="optimizer",{data:optimizerWeightData,specs:optimizerWeightSpecs}=await io_exports.encodeWeights(await this.optimizer.getWeights(),weightType);weightDataAndSpecs.specs.push(...optimizerWeightSpecs),weightDataAndSpecs.data=io_exports.concatenateArrayBuffers([weightDataAndSpecs.data,optimizerWeightData])}if(this.userDefinedMetadata!=null){let checkSize=!0;checkUserDefinedMetadata(this.userDefinedMetadata,this.name,checkSize),modelArtifacts.userDefinedMetadata=this.userDefinedMetadata}return modelArtifacts.weightData=weightDataAndSpecs.data,modelArtifacts.weightSpecs=weightDataAndSpecs.specs,handlerOrURL.save(modelArtifacts)}setUserDefinedMetadata(userDefinedMetadata){checkUserDefinedMetadata(userDefinedMetadata,this.name),this.userDefinedMetadata=userDefinedMetadata}getUserDefinedMetadata(){return this.userDefinedMetadata}};LayersModel.className="Model";serialization_exports.registerClass(LayersModel);var Functional=class extends LayersModel{};Functional.className="Functional";serialization_exports.registerClass(Functional);async function modelFromJSON(modelAndWeightsConfig,customObjects){"modelTopology"in modelAndWeightsConfig||(modelAndWeightsConfig={modelTopology:modelAndWeightsConfig}),modelAndWeightsConfig=modelAndWeightsConfig;let modelTopology=modelAndWeightsConfig.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let tsConfig=convertPythonicToTs(modelTopology),model2=deserialize(tsConfig,customObjects);if(modelAndWeightsConfig.weightsManifest!=null){let weightValues=await io_exports.loadWeights(modelAndWeightsConfig.weightsManifest,modelAndWeightsConfig.pathPrefix,model2.weights.map(weight=>weight.originalName)),uniqueWeightValues={};for(let weight of model2.weights)uniqueWeightValues[weight.originalName]=weightValues[weight.originalName];model2.loadWeights(uniqueWeightValues),dispose(weightValues)}return model2}async function loadLayersModelInternal(pathOrIOHandler,options){if(options==null&&(options={}),typeof pathOrIOHandler=="string"){let handlers=io_exports.getLoadHandlers(pathOrIOHandler,options);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(pathOrIOHandler,options));else if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) load handlers for URL '${pathOrIOHandler}'`);pathOrIOHandler=handlers[0]}return loadLayersModelFromIOHandler(pathOrIOHandler,void 0,options)}async function loadLayersModelFromIOHandler(handler,customObjects,options){if(options==null&&(options={}),handler.load==null)throw new ValueError("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await handler.load(),modelTopology=artifacts.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let strict=options.strict==null?!0:options.strict,fastWeightInit=artifacts.weightData!=null&&artifacts.weightSpecs!=null&&strict,model2=deserialize(convertPythonicToTs(modelTopology),customObjects,fastWeightInit),trainingConfig=artifacts.trainingConfig;if(trainingConfig!=null&&model2.loadTrainingConfig(trainingConfig),artifacts.userDefinedMetadata!=null&&model2.setUserDefinedMetadata(artifacts.userDefinedMetadata),artifacts.weightData!=null){if(artifacts.weightSpecs==null)throw new ValueError("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights,optimizerWeights}=decodeModelAndOptimizerWeights(artifacts.weightData,artifacts.weightSpecs);model2.loadWeights(modelWeights,strict),model2.optimizer!=null&&optimizerWeights.length>0&&await model2.optimizer.setWeights(optimizerWeights),dispose(modelWeights),dispose(optimizerWeights.map(w=>w.tensor))}return model2}function decodeModelAndOptimizerWeights(buffer2,specs){let name2Tensor=io_exports.decodeWeights(buffer2,specs),modelWeights={},optimizerWeights=[];return specs.forEach(spec=>{spec.group==="optimizer"?optimizerWeights.push({name:spec.name,tensor:name2Tensor[spec.name]}):modelWeights[spec.name]=name2Tensor[spec.name]}),{modelWeights,optimizerWeights}}var Sequential=class extends LayersModel{constructor(args){super({inputs:[],outputs:[]});if(args=args||{},this.trainable=!0,this.built=!1,this.name=args.name!=null?args.name:getUid("sequential_"),args.layers!=null)for(let layer of args.layers)this.add(layer)}checkShape(layer){if(layer.inboundNodes[0].outputTensors[0].shape.some(x=>x<0))throw new ValueError(`Negative dimension size caused by adding layer ${layer.name} with input shape [${layer.inboundNodes[0].inputTensors[0].shape}]`)}add(layer){let isLayerModelInstance=layer instanceof Sequential||layer instanceof LayersModel,modelLayer;if(isLayerModelInstance){if(modelLayer=layer,modelLayer.outputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(modelLayer.inputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(layer.inboundNodes.length===0){if(layer.batchInputShape==null)throw new ValueError("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let x=Input({batchShape:layer.batchInputShape,dtype:layer.dtype,name:layer.name+"_input"});layer.apply(x)}if(isLayerModelInstance)this.outputs=modelLayer.outputs,this.inputs=modelLayer.inputs;else{if(layer.inboundNodes.length!==1)throw new ValueError(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${layer.name} which has ${layer.inboundNodes.length} pre-existing inbound connections.`);if(layer.inboundNodes[0].outputTensors.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[layer.inboundNodes[0].outputTensors[0]],this.inputs=getSourceInputs(this.outputs[0])}this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:pyListRepeat(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs[0].shape})}else{let outputTensor=layer.apply(this.outputs[0]);if(Array.isArray(outputTensor))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[outputTensor],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(layer),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let lastLayerIndex=this.layers.length-1;this.layers[lastLayerIndex].outboundNodes=[],this.outputs=[this.layers[lastLayerIndex].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(inputs,kwargs){return this.model==null&&this.build(),this.model.call(inputs,kwargs)}build(inputShape){if(getExactlyOneShape(inputShape),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new LayersModel({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(lineLength,positions,printFn=console.log){this.built||this.build(),super.summary(lineLength,positions,printFn)}setWeights(weights){this.model==null&&this.build(),this.model.setWeights(weights)}evaluate(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluate(x,y,args)}async evaluateDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluateDataset(dataset,args)}predict(x,args={}){return this.model==null&&this.build(),this.model.predict(x,args)}predictOnBatch(x){return this.model==null&&this.build(),this.model.predictOnBatch(x)}compile(args){this.build(),this.model.compile(args),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(optimizer){this.model.optimizer=optimizer}async fit(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fit(x,y,args)}async fitDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fitDataset(dataset,args)}async trainOnBatch(x,y){return this.model.trainOnBatch(x,y)}static fromConfig(cls,config3,customObjects={},fastWeightInit=!1){let configArray,extraModelConfig={};if(config3 instanceof Array){if(config3[0].className==null||config3[0].className==="Merge")throw new ValueError("Legacy serialization format not supported yet.");configArray=config3}else util_exports.assert(config3.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),configArray=config3.layers,delete config3.layers,extraModelConfig=config3;let model2=new cls(extraModelConfig);if(!(model2 instanceof Sequential))throw new NotImplementedError(`Sequential.fromConfig called on non-Sequential input: ${model2}`);for(let conf of configArray){let layer=deserialize(conf,void 0,fastWeightInit);fastWeightInit&&layer.setFastWeightInitDuringBuild(!0),model2.add(layer)}return model2}set stopTraining(stop){if(this.model==null)throw new ValueError("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=stop}get stopTraining(){if(this.model==null)throw new ValueError("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let layers=[];for(let layer of this.layers){let dict={};dict.className=layer.getClassName(),dict.config=layer.getConfig(),layers.push(dict)}return{name:this.name,layers}}};Sequential.className="Sequential";serialization_exports.registerClass(Sequential);function model(args){return new LayersModel(args)}function sequential(config3){return new Sequential(config3)}function loadLayersModel(pathOrIOHandler,options){return options==null&&(options={}),loadLayersModelInternal(pathOrIOHandler,options)}function input(config3){return Input(config3)}function registerCallbackConstructor(verbosityLevel,callbackConstructor){CallbackConstructorRegistry.registerCallbackConstructor(verbosityLevel,callbackConstructor)}var Activation=class extends serialization_exports.Serializable{getConfig(){return{}}},Elu2=class extends Activation{apply(x,alpha=1){return elu4(x,alpha)}};Elu2.className="elu";serialization_exports.registerClass(Elu2);var Selu2=class extends Activation{apply(x){return selu(x)}};Selu2.className="selu";serialization_exports.registerClass(Selu2);var Relu2=class extends Activation{apply(x){return relu(x)}};Relu2.className="relu";serialization_exports.registerClass(Relu2);var Relu62=class extends Activation{apply(x){return tidy(()=>minimum(6,relu(x)))}};Relu62.className="relu6";serialization_exports.registerClass(Relu62);var Linear=class extends Activation{apply(x){return x}};Linear.className="linear";serialization_exports.registerClass(Linear);var Sigmoid2=class extends Activation{apply(x){return sigmoid(x)}};Sigmoid2.className="sigmoid";serialization_exports.registerClass(Sigmoid2);var HardSigmoid=class extends Activation{apply(x){return hardSigmoid(x)}};HardSigmoid.className="hardSigmoid";serialization_exports.registerClass(HardSigmoid);var Softplus2=class extends Activation{apply(x){return softplus(x)}};Softplus2.className="softplus";serialization_exports.registerClass(Softplus2);var Softsign=class extends Activation{apply(x){return softsign(x)}};Softsign.className="softsign";serialization_exports.registerClass(Softsign);var Tanh2=class extends Activation{apply(x){return tanh2(x)}};Tanh2.className="tanh";serialization_exports.registerClass(Tanh2);var Softmax2=class extends Activation{apply(x,axis=-1){return softmax(x,axis)}};Softmax2.className="softmax";serialization_exports.registerClass(Softmax2);var LogSoftmax2=class extends Activation{apply(x,axis=-1){return logSoftmax(x,axis)}};LogSoftmax2.className="logSoftmax";serialization_exports.registerClass(LogSoftmax2);var Swish=class extends Activation{apply(x,alpha=1){return tidy(()=>sigmoid(x.mul(alpha)).mul(x))}};Swish.className="swish";serialization_exports.registerClass(Swish);function serializeActivation(activation2){return activation2.getClassName()}function deserializeActivation(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"activation")}function getActivation(identifier){if(identifier==null){let config3={};return config3.className="linear",config3.config={},deserializeActivation(config3)}if(typeof identifier=="string"){let config3={};return config3.className=identifier,config3.config={},deserializeActivation(config3)}else return identifier instanceof Activation?identifier:deserializeActivation(identifier)}function assertObjectArgs(args){if(args!=null&&typeof args!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${args}`)}var Regularizer=class extends serialization_exports.Serializable{},L1L2=class extends Regularizer{constructor(args){super();assertObjectArgs(args),this.l1=args==null||args.l1==null?.01:args.l1,this.l2=args==null||args.l2==null?.01:args.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(x){return tidy(()=>{let regularization=zeros([1]);return this.hasL1&&(regularization=add2(regularization,sum2(mul(this.l1,abs(x))))),this.hasL2&&(regularization=add2(regularization,sum2(mul(this.l2,square3(x))))),regularization.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(cls,config3){return new cls({l1:config3.l1,l2:config3.l2})}};L1L2.className="L1L2";serialization_exports.registerClass(L1L2);function l1(args){return assertObjectArgs(args),new L1L2({l1:args!=null?args.l1:null,l2:0})}function l2(args){return assertObjectArgs(args),new L1L2({l2:args!=null?args.l2:null,l1:0})}var REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={l1l2:"L1L2"};function serializeRegularizer(constraint){return serializeKerasObject(constraint)}function deserializeRegularizer(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"regularizer")}function getRegularizer(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config3={className:identifier in REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeRegularizer(config3)}else return identifier instanceof Regularizer?identifier:deserializeRegularizer(identifier)}var ReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null&&(this.maxValue=args.maxValue)}call(inputs,kwargs){inputs=getExactlyOneTensor(inputs);let output=relu(inputs);return this.maxValue!=null&&(output=clipByValue(output,0,this.maxValue)),output}computeOutputShape(inputShape){return inputShape}getConfig(){let config3={maxValue:this.maxValue},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};ReLU.className="ReLU";serialization_exports.registerClass(ReLU);var LeakyReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.DEFAULT_ALPHA=.3,args==null&&(args={}),this.alpha=args.alpha==null?this.DEFAULT_ALPHA:args.alpha}call(inputs,kwargs){let x=getExactlyOneTensor(inputs);return leakyRelu(x,this.alpha)}computeOutputShape(inputShape){return inputShape}getConfig(){let config3={alpha:this.alpha},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};LeakyReLU.className="LeakyReLU";serialization_exports.registerClass(LeakyReLU);var PReLU=class extends Layer{constructor(args){super(args==null?{}:args);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",args==null&&(args={}),this.supportsMasking=!0,this.alphaInitializer=getInitializer(args.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=getRegularizer(args.alphaRegularizer),this.alphaConstraint=getConstraint(args.alphaConstraint),args.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(args.sharedAxes))this.sharedAxes=args.sharedAxes;else if(typeof args.sharedAxes=="number")this.sharedAxes=[args.sharedAxes];else throw new ValueError(`Expected sharedAxes to be a number or an array of numbers, but got ${args.sharedAxes}`)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let paramShape=inputShape.slice(1);if(this.sharedAxes!=null)for(let i of this.sharedAxes)paramShape[i-1]=1;this.alpha=this.addWeight("alpha",paramShape,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let axes={};if(this.sharedAxes!=null)for(let i=1;i(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,1]):x))}function preprocessConv3DInput(x,dataFormat){return tidy(()=>(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,4,1]):x))}function conv1dWithBias(x,kernel,bias,strides=1,padding="valid",dataFormat,dilationRate=1){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.shape.length!==3)throw new ValueError(`The input of a conv1dWithBias operation should be 3, but is ${x.shape.length} instead.`);if(kernel.shape.length!==3)throw new ValueError(`The kernel for a conv1dWithBias operation should be 3, but is ${kernel.shape.length} instead`);if(bias!=null&&bias.shape.length!==1)throw new ValueError(`The bias for a conv1dWithBias operation should be 1, but is ${kernel.shape.length} instead`);if(dataFormat==="channelsFirst"&&(x=transpose(x,[0,2,1])),padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let y=conv1d(x,kernel,strides,padding==="same"?"same":"valid","NWC",dilationRate);return bias!=null&&(y=biasAdd(y,bias)),y})}function conv2dWithBiasActivation(x,kernel,bias,strides=[1,1],padding="valid",dataFormat,dilationRate,activation2=null){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==3&&x.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${x.rank}.`);if(kernel.rank!==3&&kernel.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${x.rank}.`);let y=preprocessConv2DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return y=fused_ops_exports.conv2d({x:y,filter:kernel,strides,pad:padding==="same"?"same":"valid",dilations:dilationRate,dataFormat:"NHWC",bias,activation:activation2}),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function conv3dWithBias(x,kernel,bias,strides=[1,1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==4&&x.rank!==5)throw new ValueError(`conv3dWithBias expects input to be of rank 4 or 5, but received ${x.rank}.`);if(kernel.rank!==4&&kernel.rank!==5)throw new ValueError(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${x.rank}.`);let y=preprocessConv3DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return y=conv3d(y,kernel,strides,padding==="same"?"same":"valid","NDHWC",dilationRate),bias!=null&&(y=biasAdd(y,bias)),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var BaseConv=class extends Layer{constructor(rank,args){super(args);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",BaseConv.verifyArgs(args),this.rank=rank,assertPositiveInteger(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new NotImplementedError(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=normalizeArray(args.kernelSize,rank,"kernelSize"),this.strides=normalizeArray(args.strides==null?1:args.strides,rank,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.activation=getActivation(args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=getConstraint(args.biasConstraint),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.dilationRate=normalizeArray(args.dilationRate==null?1:args.dilationRate,rank,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new ValueError(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new ValueError(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new ValueError(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(args){if(assert2("kernelSize"in args,"required key 'kernelSize' not in config"),typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,3))throw new ValueError(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(args.kernelSize)}.`)}getConfig(){let config3={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:serializeActivation(this.activation),useBias:this.useBias,biasInitializer:serializeInitializer(this.biasInitializer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},Conv=class extends BaseConv{constructor(rank,args){super(rank,args);this.kernel=null,Conv.verifyArgs(args),this.filters=args.filters,assertPositiveInteger(this.filters,"filters"),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([inputDim,this.filters]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[channelAxis]:inputDim}}],this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs,biasValue=this.bias==null?null:this.bias.read(),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName());if(fusedActivationName!=null&&this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate,fusedActivationName);else{if(this.rank===1)outputs=conv1dWithBias(inputs,this.kernel.read(),biasValue,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)outputs=conv3dWithBias(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new NotImplementedError("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(outputs=this.activation.apply(outputs))}return outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let newSpace=[],space=this.dataFormat==="channelsLast"?inputShape.slice(1,inputShape.length-1):inputShape.slice(2);for(let i=0;i 0 but got ${JSON.stringify(args.filters)}`)}},Conv2D2=class extends Conv{constructor(args){super(2,args);Conv2D2.verifyArgs(args)}getConfig(){let config3=super.getConfig();return delete config3.rank,config3}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,2))throw new ValueError(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv2D2.className="Conv2D";serialization_exports.registerClass(Conv2D2);var Conv3D2=class extends Conv{constructor(args){super(3,args);Conv3D2.verifyArgs(args)}getConfig(){let config3=super.getConfig();return delete config3.rank,config3}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!(Array.isArray(args.kernelSize)&&(args.kernelSize.length===1||args.kernelSize.length===3)))throw new ValueError(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(args.kernelSize)}.`)}};Conv3D2.className="Conv3D";serialization_exports.registerClass(Conv3D2);var Conv2DTranspose=class extends Conv2D2{constructor(args){super(args);if(this.inputSpec=[new InputSpec({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new ValueError(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length!==4)throw new ValueError("Input should have rank 4; Received input shape: "+JSON.stringify(inputShape));let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError("The channel dimension of the inputs should be defined. Found `None`.");let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([this.filters,inputDim]);this.kernel=this.addWeight("kernel",kernelShape,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new InputSpec({ndim:4,axes:{[channelAxis]:inputDim}})],this.built=!0}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);if(input2.shape.length!==4)throw new ValueError(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${input2.shape.length}`);let inputShape=input2.shape,batchSize=inputShape[0],hAxis,wAxis;this.dataFormat==="channelsFirst"?(hAxis=2,wAxis=3):(hAxis=1,wAxis=2);let height=inputShape[hAxis],width=inputShape[wAxis],kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1],outHeight=deconvLength(height,strideH,kernelH,this.padding),outWidth=deconvLength(width,strideW,kernelW,this.padding),outputShape=[batchSize,outHeight,outWidth,this.filters];this.dataFormat!=="channelsLast"&&(input2=transpose(input2,[0,2,3,1]));let outputs=conv2dTranspose(input2,this.kernel.read(),outputShape,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(outputs=transpose(outputs,[0,3,1,2])),this.bias!=null&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice(),channelAxis,heightAxis,widthAxis;this.dataFormat==="channelsFirst"?(channelAxis=1,heightAxis=2,widthAxis=3):(channelAxis=3,heightAxis=1,widthAxis=2);let kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1];return outputShape[channelAxis]=this.filters,outputShape[heightAxis]=deconvLength(outputShape[heightAxis],strideH,kernelH,this.padding),outputShape[widthAxis]=deconvLength(outputShape[widthAxis],strideW,kernelW,this.padding),outputShape}getConfig(){let config3=super.getConfig();return delete config3.dilationRate,config3}};Conv2DTranspose.className="Conv2DTranspose";serialization_exports.registerClass(Conv2DTranspose);var SeparableConv=class extends Conv{constructor(rank,config3){super(rank,config3);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,config3.filters==null)throw new ValueError("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(config3.kernelInitializer!=null||config3.kernelRegularizer!=null||config3.kernelConstraint!=null)throw new ValueError("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(config3.padding!=null&&config3.padding!=="same"&&config3.padding!=="valid")throw new ValueError(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(config3.padding)}`);this.depthMultiplier=config3.depthMultiplier==null?1:config3.depthMultiplier,this.depthwiseInitializer=getInitializer(config3.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=getRegularizer(config3.depthwiseRegularizer),this.depthwiseConstraint=getConstraint(config3.depthwiseConstraint),this.pointwiseInitializer=getInitializer(config3.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=getRegularizer(config3.pointwiseRegularizer),this.pointwiseConstraint=getConstraint(config3.pointwiseConstraint)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length{inputs=getExactlyOneTensor(inputs);let output;if(this.rank===1)throw new NotImplementedError("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(inputs=transpose(inputs,[0,2,3,1])),output=separableConv2d(inputs,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(output=biasAdd(output,this.bias.read(),this.dataFormat)),this.activation!=null&&(output=this.activation.apply(output)),this.dataFormat==="channelsFirst"&&(output=transpose(output,[0,3,1,2])),output})}getConfig(){let config3=super.getConfig();return delete config3.rank,delete config3.kernelInitializer,delete config3.kernelRegularizer,delete config3.kernelConstraint,config3.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config3.pointwiseInitializer=serializeInitializer(this.pointwiseInitializer),config3.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config3.pointwiseRegularizer=serializeRegularizer(this.pointwiseRegularizer),config3.depthwiseConstraint=serializeConstraint(this.depthwiseConstraint),config3.pointwiseConstraint=serializeConstraint(this.pointwiseConstraint),config3}};SeparableConv.className="SeparableConv";var SeparableConv2D=class extends SeparableConv{constructor(args){super(2,args)}};SeparableConv2D.className="SeparableConv2D";serialization_exports.registerClass(SeparableConv2D);var Conv1D=class extends Conv{constructor(args){super(1,args);Conv1D.verifyArgs(args),this.inputSpec=[{ndim:3}]}getConfig(){let config3=super.getConfig();return delete config3.rank,delete config3.dataFormat,config3}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,1))throw new ValueError(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv1D.className="Conv1D";serialization_exports.registerClass(Conv1D);var Cropping2D=class extends Layer{constructor(args){super(args);typeof args.cropping=="number"?this.cropping=[[args.cropping,args.cropping],[args.cropping,args.cropping]]:typeof args.cropping[0]=="number"?this.cropping=[[args.cropping[0],args.cropping[0]],[args.cropping[1],args.cropping[1]]]:this.cropping=args.cropping,this.dataFormat=args.dataFormat===void 0?"channelsLast":args.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(inputShape){return this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],inputShape[2]-this.cropping[0][0]-this.cropping[0][1],inputShape[3]-this.cropping[1][0]-this.cropping[1][1]]:[inputShape[0],inputShape[1]-this.cropping[0][0]-this.cropping[0][1],inputShape[2]-this.cropping[1][0]-this.cropping[1][1],inputShape[3]]}call(inputs,kwargs){return tidy(()=>{if(inputs=getExactlyOneTensor(inputs),this.dataFormat==="channelsLast"){let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let config3={cropping:this.cropping,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Cropping2D.className="Cropping2D";serialization_exports.registerClass(Cropping2D);var UpSampling2D=class extends Layer{constructor(args){super(args);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=args.size==null?this.DEFAULT_SIZE:args.size,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.interpolation=args.interpolation==null?"nearest":args.interpolation,checkInterpolationFormat(this.interpolation)}computeOutputShape(inputShape){if(this.dataFormat==="channelsFirst"){let height=inputShape[2]==null?null:this.size[0]*inputShape[2],width=inputShape[3]==null?null:this.size[1]*inputShape[3];return[inputShape[0],inputShape[1],height,width]}else{let height=inputShape[1]==null?null:this.size[0]*inputShape[1],width=inputShape[2]==null?null:this.size[1]*inputShape[2];return[inputShape[0],height,width,inputShape[3]]}}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs),inputShape=input2.shape;if(this.dataFormat==="channelsFirst"){input2=transpose(input2,[0,2,3,1]);let height=this.size[0]*inputShape[2],width=this.size[1]*inputShape[3],resized=this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width]);return transpose(resized,[0,3,1,2])}else{let height=this.size[0]*inputShape[1],width=this.size[1]*inputShape[2];return this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width])}})}getConfig(){let config3={size:this.size,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};UpSampling2D.className="UpSampling2D";serialization_exports.registerClass(UpSampling2D);function depthwiseConv2d4(x,depthwiseKernel,strides=[1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat);let y=preprocessConv2DInput(x,dataFormat);if(x.rank!==4)throw new ValueError(`Input for depthwiseConv2d is required to be 4-D, but is instead ${x.rank}-D`);if(depthwiseKernel.rank!==4)throw new ValueError(`depthwiseKernel is required to be 4-D, but is instead ${depthwiseKernel.rank}-D`);return y=depthwiseConv2d(y,depthwiseKernel,strides,padding==="same"?"same":"valid","NHWC",dilationRate),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}var DepthwiseConv2D=class extends BaseConv{constructor(args){super(2,args);this.depthwiseKernel=null,this.depthMultiplier=args.depthMultiplier==null?1:args.depthMultiplier,this.depthwiseInitializer=getInitializer(args.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=getConstraint(args.depthwiseConstraint),this.depthwiseRegularizer=getRegularizer(args.depthwiseRegularizer)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<4)throw new ValueError(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(inputShape)}.`);let channelAxis=this.dataFormat==="channelsFirst"?1:3;if(inputShape[channelAxis]==null||inputShape[channelAxis]<0)throw new ValueError(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${inputShape[channelAxis]}).`);let inputDim=inputShape[channelAxis],depthwiseKernelShape=[this.kernelSize[0],this.kernelSize[1],inputDim,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",depthwiseKernelShape,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[inputDim*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs=depthwiseConv2d4(inputs,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],outFilters=this.dataFormat==="channelsFirst"?inputShape[1]*this.depthMultiplier:inputShape[3]*this.depthMultiplier,outRows=convOutputLength(rows,this.kernelSize[0],this.padding,this.strides[0]),outCols=convOutputLength(cols,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[inputShape[0],outFilters,outRows,outCols]:[inputShape[0],outRows,outCols,outFilters]}getConfig(){let config3=super.getConfig();return config3.depthMultiplier=this.depthMultiplier,config3.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config3.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config3.depthwiseConstraint=serializeConstraint(this.depthwiseRegularizer),config3}};DepthwiseConv2D.className="DepthwiseConv2D";serialization_exports.registerClass(DepthwiseConv2D);function standardizeArgs(inputs,initialState,constants,numConstants){if(Array.isArray(inputs)){if(initialState!=null||constants!=null)throw new ValueError("When inputs is an array, neither initialState or constants should be provided");numConstants!=null&&(constants=inputs.slice(inputs.length-numConstants,inputs.length),inputs=inputs.slice(0,inputs.length-numConstants)),inputs.length>1&&(initialState=inputs.slice(1,inputs.length)),inputs=inputs[0]}function toListOrNull(x){return x==null||Array.isArray(x)?x:[x]}return initialState=toListOrNull(initialState),constants=toListOrNull(constants),{inputs,initialState,constants}}function rnn(stepFunction,inputs,initialStates,goBackwards=!1,mask,constants,unroll=!1,needPerStepOutputs=!1){return tidy(()=>{let ndim=inputs.shape.length;if(ndim<3)throw new ValueError(`Input should be at least 3D, but is ${ndim}D.`);let axes=[1,0].concat(range5(2,ndim));if(inputs=transpose(inputs,axes),constants!=null)throw new NotImplementedError("The rnn() functoin of the deeplearn.js backend does not support constants yet.");unroll&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),mask!=null&&(mask=mask.asType("bool").asType("float32"),mask.rank===ndim-1&&(mask=expandDims(mask,-1)),mask=transpose(mask,axes)),goBackwards&&(inputs=reverse(inputs,0),mask!=null&&(mask=reverse(mask,0)));let perStepOutputs=[],lastOutput,states=initialStates,timeSteps=inputs.shape[0],perStepInputs=unstack(inputs),perStepMasks;mask!=null&&(perStepMasks=unstack(mask));for(let t=0;tstepFunction(currentInput,states));if(mask==null)lastOutput=stepOutputs[0],states=stepOutputs[1];else{let maskedOutputs=tidy(()=>{let stepMask=perStepMasks[t],negStepMask=onesLike(stepMask).sub(stepMask),output=stepOutputs[0].mul(stepMask).add(states[0].mul(negStepMask)),newStates=states.map((state,i)=>stepOutputs[1][i].mul(stepMask).add(state.mul(negStepMask)));return{output,newStates}});lastOutput=maskedOutputs.output,states=maskedOutputs.newStates}needPerStepOutputs&&perStepOutputs.push(lastOutput)}let outputs;return needPerStepOutputs&&(outputs=stack(perStepOutputs,1)),[lastOutput,outputs,states]})}var RNN=class extends Layer{constructor(args){super(args);let cell;if(args.cell==null)throw new ValueError("cell property is missing for the constructor of RNN.");if(Array.isArray(args.cell)?cell=new StackedRNNCells({cells:args.cell}):cell=args.cell,cell.stateSize==null)throw new ValueError("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=cell,this.returnSequences=args.returnSequences==null?!1:args.returnSequences,this.returnState=args.returnState==null?!1:args.returnState,this.goBackwards=args.goBackwards==null?!1:args.goBackwards,this._stateful=args.stateful==null?!1:args.stateful,this.unroll=args.unroll==null?!1:args.unroll,this.supportsMasking=!0,this.inputSpec=[new InputSpec({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return range5(0,numStates).map(x=>null)}else return this.states_}setStates(states){this.states_=states}computeOutputShape(inputShape){isArrayOfShapes(inputShape)&&(inputShape=inputShape[0]),inputShape=inputShape;let stateSize=this.cell.stateSize;Array.isArray(stateSize)||(stateSize=[stateSize]);let outputDim=stateSize[0],outputShape;if(this.returnSequences?outputShape=[inputShape[0],inputShape[1],outputDim]:outputShape=[inputShape[0],outputDim],this.returnState){let stateShape=[];for(let dim of stateSize)stateShape.push([inputShape[0],dim]);return[outputShape].concat(stateShape)}else return outputShape}computeMask(inputs,mask){return tidy(()=>{Array.isArray(mask)&&(mask=mask[0]);let outputMask=this.returnSequences?mask:null;if(this.returnState){let stateMask=this.states.map(s=>null);return[outputMask].concat(stateMask)}else return outputMask})}get states(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,output=[];for(let i=0;ispec.shape[spec.shape.length-1]),stateSize))throw new ValueError(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=stateSize.map(dim=>new InputSpec({shape:[null,dim]}));this.stateful&&this.resetStates()}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let batchSize=this.inputSpec[0].shape[0];if(batchSize==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_=[zeros([batchSize,this.cell.stateSize])];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_[0]=zeros([batchSize,this.cell.stateSize]);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training===!0?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants;let additionalInputs=[],additionalSpecs=[];if(initialState!=null){kwargs.initialState=initialState,additionalInputs=additionalInputs.concat(initialState),this.stateSpec=[];for(let state of initialState)this.stateSpec.push(new InputSpec({shape:state.shape}));additionalSpecs=additionalSpecs.concat(this.stateSpec)}if(constants!=null&&(kwargs.constants=constants,additionalInputs=additionalInputs.concat(constants),this.numConstants=constants.length),additionalInputs[0]instanceof SymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;inputs=getExactlyOneTensor(inputs),initialState==null&&(this.stateful?initialState=this.states_:initialState=this.getInitialState(inputs));let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(initialState.length!==numStates)throw new ValueError(`RNN Layer has ${numStates} state(s) but was passed ${initialState.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let cellCallKwargs={training},rnnOutputs=rnn((inputs2,states2)=>{let outputs2=this.cell.call([inputs2].concat(states2),cellCallKwargs);return[outputs2[0],outputs2.slice(1)]},inputs,initialState,this.goBackwards,mask,null,this.unroll,this.returnSequences),lastOutput=rnnOutputs[0],outputs=rnnOutputs[1],states=rnnOutputs[2];this.stateful&&this.resetStates(states,training);let output=this.returnSequences?outputs:lastOutput;return this.returnState?[output].concat(states):output})}getInitialState(inputs){return tidy(()=>{let initialState=zeros(inputs.shape);return initialState=sum2(initialState,[1,2]),initialState=expandDims5(initialState),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(dim=>dim>1?tile5(initialState,[1,dim]):initialState):this.cell.stateSize>1?[tile5(initialState,[1,this.cell.stateSize])]:[initialState]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(value)}getConfig(){let baseConfig=super.getConfig(),config3={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(config3.numConstants=this.numConstants);let cellConfig=this.cell.getConfig();return this.getClassName()===RNN.className&&(config3.cell={className:this.cell.getClassName(),config:cellConfig}),Object.assign({},cellConfig,baseConfig,config3)}static fromConfig(cls,config3,customObjects={}){let cellConfig=config3.cell,cell=deserialize(cellConfig,customObjects);return new cls(Object.assign(config3,{cell}))}};RNN.className="RNN";serialization_exports.registerClass(RNN);var RNNCell=class extends Layer{},SimpleRNNCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation==null?this.DEFAULT_ACTIVATION:args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape),this.kernel=this.addWeight("kernel",[inputShape[inputShape.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`SimpleRNNCell expects 2 input Tensors, got ${inputs.length}.`);let prevOutput=inputs[1];inputs=inputs[0];let training=kwargs.training==null?!1:kwargs.training;0onesLike(inputs),rate:this.dropout,training})),0onesLike(prevOutput),rate:this.recurrentDropout,training}));let h,dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask;dpMask!=null?h=dot2(mul(inputs,dpMask),this.kernel.read()):h=dot2(inputs,this.kernel.read()),this.bias!=null&&(h=biasAdd(h,this.bias.read())),recDpMask!=null&&(prevOutput=mul(prevOutput,recDpMask));let output=add2(h,dot2(prevOutput,this.recurrentKernel.read()));return this.activation!=null&&(output=this.activation.apply(output)),[output,output]})}getConfig(){let baseConfig=super.getConfig(),config3={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),recurrentInitializer:serializeInitializer(this.recurrentInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),recurrentRegularizer:serializeRegularizer(this.recurrentRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),recurrentConstraint:serializeConstraint(this.recurrentConstraint),biasConstraint:serializeConstraint(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},baseConfig,config3)}};SimpleRNNCell.className="SimpleRNNCell";serialization_exports.registerClass(SimpleRNNCell);var SimpleRNN=class extends RNN{constructor(args){args.cell=new SimpleRNNCell(args),super(args)}call(inputs,kwargs){return tidy(()=>{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config3){return new cls(config3)}};SimpleRNN.className="SimpleRNN";serialization_exports.registerClass(SimpleRNN);var GRUCell=class extends RNNCell{constructor(args){super(args);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.resetAfter)throw new ValueError("GRUCell does not support reset_after parameter set to true.");this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`GRUCell expects 2 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training==null?!1:kwargs.training,hTMinus1=inputs[1];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:3})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:3}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,z,r,hh;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config3){return config3.implmentation===0&&(config3.implementation=1),new cls(config3)}};GRU.className="GRU";serialization_exports.registerClass(GRU);var LSTMCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=args.unitForgetBias,this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let biasInitializer;if(this.useBias){if(this.unitForgetBias){let capturedBiasInit=this.biasInitializer,capturedUnits=this.units;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let bI=capturedBiasInit.apply([capturedUnits]),bF=new Ones().apply([capturedUnits]),bCAndH=capturedBiasInit.apply([capturedUnits*2]);return concatAlongFirstAxis(concatAlongFirstAxis(bI,bF),bCAndH)}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training;if(inputs=inputs,inputs.length!==3)throw new ValueError(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let hTMinus1=inputs[1],cTMinus1=inputs[2];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:4})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:4}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,i,f,c,o;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config3){return config3.implmentation===0&&(config3.implementation=1),new cls(config3)}};LSTM.className="LSTM";serialization_exports.registerClass(LSTM);var StackedRNNCells=class extends RNNCell{constructor(args){super(args);this.cells=args.cells}get stateSize(){let stateSize=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?stateSize.push(...cell.stateSize):stateSize.push(cell.stateSize);return stateSize}call(inputs,kwargs){return tidy(()=>{inputs=inputs;let states=inputs.slice(1),nestedStates=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?nestedStates.push(states.splice(0,cell.stateSize.length)):nestedStates.push(states.splice(0,1));nestedStates.reverse();let newNestedStates=[],callInputs;for(let i=0;i{nameScope(`RNNCell_${i}`,()=>{cell.build(inputShape),Array.isArray(cell.stateSize)?outputDim=cell.stateSize[0]:outputDim=cell.stateSize,inputShape=[inputShape[0],outputDim]})}),this.built=!0}getConfig(){let baseConfig=super.getConfig(),getCellConfig=cell=>({className:cell.getClassName(),config:cell.getConfig()}),config3={cells:this.cells.map(getCellConfig)};return Object.assign({},baseConfig,config3)}static fromConfig(cls,config3,customObjects={}){let cells=[];for(let cellConfig of config3.cells)cells.push(deserialize(cellConfig,customObjects));return new cls({cells})}get trainableWeights(){if(!this.trainable)return[];let weights=[];for(let cell of this.cells)weights.push(...cell.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let cell of this.cells)trainableWeights.push(...cell.trainableWeights);return trainableWeights.concat(weights)}return weights}getWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.weights);return batchGetValue(weights)}setWeights(weights){let tuples=[];for(let cell of this.cells){let numParams=cell.weights.length,inputWeights=weights.splice(numParams);for(let i=0;idropout2(ones4(),rate),createMask=()=>inTrainPhase(droppedInputs,ones4,training);return!count2||count2<=1?keep(createMask().clone()):Array(count2).fill(void 0).map(createMask).map(m=>keep(m.clone()))}var __rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i{if(this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),kwargs&&kwargs.constants)throw new ValueError("ConvRNN2D cell does not support constants");let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}computeOutputShape(inputShape){let outShape=this.computeSingleOutputShape(inputShape);return this.returnSequences||(outShape=[outShape[0],...outShape.slice(2)]),this.returnState&&(outShape=[outShape,...Array(2).fill([inputShape[0],...outShape.slice(-3)])]),outShape}getInitialState(inputs){return tidy(()=>{let{stateSize}=this.cell,inputShape=inputs.shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)],initialState=zeros(stateShape);return Array.isArray(stateSize)?Array(stateSize.length).fill(initialState):[initialState]})}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let inputShape=this.inputSpec[0].shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)];if(inputShape[0]==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_=[zeros(stateShape)];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_[0]=zeros(stateShape);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}computeSingleOutputShape(inputShape){let{dataFormat,filters,kernelSize,padding,strides,dilationRate}=this.cell,isChannelsFirst=dataFormat==="channelsFirst",h=inputShape[isChannelsFirst?3:2],w=inputShape[isChannelsFirst?4:3],hOut=convOutputLength(h,kernelSize[0],padding,strides[0],dilationRate[0]),wOut=convOutputLength(w,kernelSize[1],padding,strides[1],dilationRate[1]);return[...inputShape.slice(0,2),...isChannelsFirst?[filters,hOut,wOut]:[hOut,wOut,filters]]}};ConvRNN2D.className="ConvRNN2D";var ConvLSTM2DCell=class extends LSTMCell{constructor(args){let{filters,kernelSize,strides,padding,dataFormat,dilationRate}=args;super(Object.assign({},args,{units:filters}));this.filters=filters,assertPositiveInteger(this.filters,"filters"),this.kernelSize=normalizeArray(kernelSize,2,"kernelSize"),this.kernelSize.forEach(size=>assertPositiveInteger(size,"kernelSize")),this.strides=normalizeArray(strides||1,2,"strides"),this.strides.forEach(stride=>assertPositiveInteger(stride,"strides")),this.padding=padding||"valid",checkPaddingMode(this.padding),this.dataFormat=dataFormat||"channelsLast",checkDataFormat(this.dataFormat),this.dilationRate=normalizeArray(dilationRate||1,2,"dilationRate"),this.dilationRate.forEach(rate=>assertPositiveInteger(rate,"dilationRate"))}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],numOfKernels=4,kernelShape=this.kernelSize.concat([inputDim,this.filters*numOfKernels]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let recurrentKernelShape=this.kernelSize.concat([this.filters,this.filters*numOfKernels]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",recurrentKernelShape,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let biasInitializer;if(this.unitForgetBias){let init2=this.biasInitializer,filters=this.filters;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let biasI=init2.apply([filters]),biasF=ones2([filters]),biasCAndO=init2.apply([filters*2]);return concatenate([biasI,biasF,biasCAndO])}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*numOfKernels],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs.length!==3)throw new ValueError(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training||!1,x=inputs[0],hTMinus1=inputs[1],cTMinus1=inputs[2],numOfKernels=4;0onesLike(x),rate:this.dropout,training,count:numOfKernels}));let dropoutMask=this.dropoutMask,applyDropout=(x2,mask,index)=>!mask||!mask[index]?x2:mul(mask[index],x2),xI=applyDropout(x,dropoutMask,0),xF=applyDropout(x,dropoutMask,1),xC=applyDropout(x,dropoutMask,2),xO=applyDropout(x,dropoutMask,3);0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:numOfKernels}));let recDropoutMask=this.recurrentDropoutMask,hI=applyDropout(hTMinus1,recDropoutMask,0),hF=applyDropout(hTMinus1,recDropoutMask,1),hC=applyDropout(hTMinus1,recDropoutMask,2),hO=applyDropout(hTMinus1,recDropoutMask,3),kernelChannelAxis=3,[kernelI,kernelF,kernelC,kernelO]=split(this.kernel.read(),numOfKernels,kernelChannelAxis),[biasI,biasF,biasC,biasO]=this.useBias?split(this.bias.read(),numOfKernels):[null,null,null,null];xI=this.inputConv(xI,kernelI,biasI,this.padding),xF=this.inputConv(xF,kernelF,biasF,this.padding),xC=this.inputConv(xC,kernelC,biasC,this.padding),xO=this.inputConv(xO,kernelO,biasO,this.padding);let[recKernelI,recKernelF,recKernelC,recKernelO]=split(this.recurrentKernel.read(),numOfKernels,kernelChannelAxis);hI=this.recurrentConv(hI,recKernelI),hF=this.recurrentConv(hF,recKernelF),hC=this.recurrentConv(hC,recKernelC),hO=this.recurrentConv(hO,recKernelO);let i=this.recurrentActivation.apply(add2(xI,hI)),f=this.recurrentActivation.apply(add2(xF,hF)),c=add2(mul(f,cTMinus1),mul(i,this.activation.apply(add2(xC,hC)))),h=mul(this.recurrentActivation.apply(add2(xO,hO)),this.activation.apply(c));return[h,h,c]})}getConfig(){let _a=super.getConfig(),{units:_}=_a,baseConfig=__rest(_a,["units"]),config3={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},baseConfig,config3)}inputConv(x,w,b,padding){let out=conv2d(x,w,this.strides,padding||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return b?biasAdd(out,b,this.dataFormat):out}recurrentConv(x,w){return conv2d(x,w,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};ConvLSTM2DCell.className="ConvLSTM2DCell";serialization_exports.registerClass(ConvLSTM2DCell);var ConvLSTM2D=class extends ConvRNN2D{constructor(args){let cell=new ConvLSTM2DCell(args);super(Object.assign({},args,{cell}))}static fromConfig(cls,config3){return new cls(config3)}};ConvLSTM2D.className="ConvLSTM2D";serialization_exports.registerClass(ConvLSTM2D);var Dropout=class extends Layer{constructor(args){super(args);this.rate=Math.max(Math.min(args.rate,1),0),this.noiseShape=args.noiseShape,this.seed=args.seed,this.supportsMasking=!0}getNoiseShape(input2){if(this.noiseShape==null)return this.noiseShape;let inputShape=input2.shape,noiseShape=[];for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(0dropout2(input2,this.rate,noiseShape,this.seed),()=>input2,training)}return inputs})}getConfig(){let config3={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}dispose(){return super.dispose()}};Dropout.className="Dropout";serialization_exports.registerClass(Dropout);var SpatialDropout1D=class extends Dropout{constructor(args){super(args);this.inputSpec=[{ndim:3}]}getNoiseShape(input2){let inputShape=input2.shape;return[inputShape[0],1,inputShape[2]]}};SpatialDropout1D.className="SpatialDropout1D";serialization_exports.registerClass(SpatialDropout1D);var Dense=class extends Layer{constructor(args){super(args);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.batchInputShape==null&&args.inputShape==null&&args.inputDim!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),this.batchInputShape=[batchSize,args.inputDim]}this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation),args.useBias!=null&&(this.useBias=args.useBias),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputLastDim=inputShape[inputShape.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[inputLastDim,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:inputLastDim}}],this.built=!0}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return outputShape[outputShape.length-1]=this.units,outputShape}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName()),output;return fusedActivationName!=null?output=dot2(input2,this.kernel.read(),fusedActivationName,this.bias?this.bias.read():null):(output=dot2(input2,this.kernel.read()),this.bias!=null&&(output=biasAdd(output,this.bias.read())),this.activation!=null&&(output=this.activation.apply(output))),output})}getConfig(){let config3={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Dense.className="Dense";serialization_exports.registerClass(Dense);var Flatten=class extends Layer{constructor(args){args=args||{},super(args),this.inputSpec=[{minNDim:3}],this.dataFormat=args.dataFormat}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);for(let dim of inputShape.slice(1))if(dim==null)throw new ValueError(`The shape of the input to "Flatten" is not fully defined (got ${inputShape.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[inputShape[0],arrayProd(inputShape,1)]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(this.dataFormat==="channelsFirst"&&input2.rank>1){let permutation=[0];for(let i=2;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.activation.apply(input2)})}getConfig(){let config3={activation:serializeActivation(this.activation)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Activation2.className="Activation";serialization_exports.registerClass(Activation2);var RepeatVector=class extends Layer{constructor(args){super(args);this.n=args.n,this.inputSpec=[{ndim:2}]}computeOutputShape(inputShape){return[inputShape[0],this.n,inputShape[1]]}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),repeat(inputs,this.n)))}getConfig(){let config3={n:this.n},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};RepeatVector.className="RepeatVector";serialization_exports.registerClass(RepeatVector);var Reshape2=class extends Layer{constructor(args){super(args);this.targetShape=args.targetShape;for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,outputShape=inputShape.slice(0,1).concat(this.fixUnknownDimension(inputShape.slice(1),this.targetShape));return input2.reshape(outputShape)})}getConfig(){let config3={targetShape:this.targetShape},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Reshape2.className="Reshape";serialization_exports.registerClass(Reshape2);var Permute=class extends Layer{constructor(args){super(args);if(args.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(args.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${args.dims} instead.`);let expectedSortedIndices=range5(1,args.dims.length+1);if(!util_exports.arraysEqual(args.dims.slice().sort(),expectedSortedIndices))throw new Error("Invalid permutation `dims`: "+JSON.stringify(args.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=args.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new InputSpec({ndim:this.dims.length+1})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return this.dims.forEach((dim,i)=>{outputShape[i+1]=inputShape[dim]}),outputShape}call(inputs,kwargs){return transpose(getExactlyOneTensor(inputs),this.dimsIncludingBatch)}getConfig(){let config3={dims:this.dims},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Permute.className="Permute";serialization_exports.registerClass(Permute);var Masking=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null?this.maskValue=args.maskValue==null?0:args.maskValue:this.maskValue=0}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={maskValue:this.maskValue};return Object.assign(config3,baseConfig),config3}computeMask(inputs,mask){let input2=getExactlyOneTensor(inputs),axis=-1;return any(notEqual(input2,this.maskValue),axis)}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),axis=-1,keepDims=!0,booleanMask=any(notEqual(input2,this.maskValue),axis,keepDims);return input2.mul(booleanMask.asType(input2.dtype))})}};Masking.className="Masking";serialization_exports.registerClass(Masking);var Embedding=class extends Layer{constructor(args){super(args);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",args.batchInputShape==null&&args.inputShape==null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),args.inputLength==null?this.batchInputShape=[batchSize,null]:this.batchInputShape=[batchSize].concat(toList(args.inputLength))}this.inputDim=args.inputDim,assertPositiveInteger(this.inputDim,"inputDim"),this.outputDim=args.outputDim,assertPositiveInteger(this.outputDim,"outputDim"),this.embeddingsInitializer=getInitializer(args.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=getRegularizer(args.embeddingsRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.embeddingsConstraint=getConstraint(args.embeddingsConstraint),this.maskZero=args.maskZero,this.supportsMasking=args.maskZero,this.inputLength=args.inputLength}build(inputShape){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(inputShape){}computeMask(inputs,mask){return tidy(()=>this.maskZero?(inputs=getExactlyOneTensor(inputs),notEqual(inputs,zerosLike(inputs))):null)}computeOutputShape(inputShape){if(inputShape=getExactlyOneShape(inputShape),this.inputLength==null)return[...inputShape,this.outputDim];let inLens=toList(this.inputLength);if(inLens.length!==inputShape.length-1)throw new ValueError(`"inputLength" is ${this.inputLength}, but received input shape has shape ${inputShape}`);{let i=0;for(let k=0;k{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return input2.dtype!=="int32"&&(input2=cast5(input2,"int32")),gather2(this.embeddings.read(),input2.as1D()).reshape(getExactlyOneShape(this.computeOutputShape(input2.shape)))})}getConfig(){let config3={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:serializeInitializer(this.embeddingsInitializer),embeddingsRegularizer:serializeRegularizer(this.embeddingsRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),embeddingsConstraint:serializeConstraint(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Embedding.className="Embedding";serialization_exports.registerClass(Embedding);var Merge=class extends Layer{constructor(args){super(args||{});this.supportsMasking=!0}mergeFunction(inputs){throw new NotImplementedError}computeElementwiseOpOutputShape(shape1,shape2){if(shape1==null||shape2==null)return null;if(shape1.length1)throw new ValueError(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(inputShape)}.`);let outputShape=inputShape[0]==null?null:inputShape[0].slice(1);for(let i=1;ishape.length);inputShape.indexOf(null)===-1&&unique4(allRanks).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,this.reshapeRequired){let reshapedInputs=[],inputDims=inputs.map(input2=>input2.rank);if(inputDims.indexOf(null)===-1){let maxNDim=max5(inputDims);for(let x of inputs){let xNDim=x.rank;for(let k=0;k1){let dims=range5(1,xNDim).concat([0]);reshapedInputs.push(transpose(x,dims)),transposed=!0}else reshapedInputs.push(x)}let y=this.mergeFunction(reshapedInputs),yNDim=y.rank;if(transposed){if(yNDim==null){let yShape=y.shape,yNDim2=yShape.length,batchSize=yShape[yNDim2-1],newShape=[batchSize].concat(yShape.slice(0,yShape.length-1));y=transpose(y.reshape([-1,batchSize]),[1,0]).reshape(newShape)}else if(yNDim>1){let dims=[yNDim-1].concat(range5(0,yNDim-1));y=transpose(y,dims)}}return y}}else return this.mergeFunction(inputs)})}computeOutputShape(inputShape){inputShape=inputShape;let outputShape;inputShape[0]==null?outputShape=null:outputShape=inputShape[0].slice(1);for(let i=1;i{if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an Array");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an Array");if(mask.length!==inputs.length)throw new ValueError(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${inputs.length} vs ${mask.length})`);if(mask.every(m=>m==null))return null;mask=mask.map(m=>m==null?m:expandDims(m,0));let output=mask[0];for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0];for(let i=1;i{let output=inputs[0];for(let i=1;i1)throw new ValueError("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(inputShape))}mergeFunction(inputs){return tidy(()=>concatenate(inputs,this.axis))}computeOutputShape(inputShape){if(!(Array.isArray(inputShape)&&Array.isArray(inputShape[0])))throw new ValueError("A `Concatenate` layer should be called on a list of inputs.");let inputShapes=inputShape,outputShape=inputShapes[0].slice(),axis=this.axis<0?outputShape.length+this.axis:this.axis;for(let shape of inputShapes.slice(1)){if(outputShape[axis]==null||shape[axis]==null){outputShape[axis]=null;break}outputShape[axis]+=shape[axis]}return outputShape}computeMask(inputs,mask){if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an array for Concatenate");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an array for Concatenate");if(mask.length!==inputs.length)throw new ValueError(`Mismatch in the length of mask (${mask.length}) and the legnth of inputs (${inputs.length})`);return tidy(()=>{let allNullMasks=!0;if(mask.forEach(m=>{if(m!=null){allNullMasks=!1;return}}),allNullMasks)return null;let outputMasks=[];for(let i=0;i3||y.shape.length>3)throw new NotImplementedError("batchDot is not implemented for tensors of 4D or higher rank yet");if(util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${x.shape.length}`),util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${y.shape.length}`),typeof axes=="number"&&(axes=[axes,axes]),x.dtype==="complex64"||y.dtype==="complex64")throw new NotImplementedError("batchDot is not implemented for complex64-type Tensors yet.");let xNDim=x.shape.length,yNDim=y.shape.length;axes==null&&(axes=[xNDim-1,yNDim-2]);let axesArray=axes;return tidy(()=>{let diff;if(xNDim>yNDim){diff=xNDim-yNDim;let diffShape=[];for(let i=0;ixNDim){diff=yNDim-xNDim;let diffShape=[];for(let i=0;i0){let idx;xNDim>yNDim?idx=xNDim+yNDim-3:idx=xNDim-1;let squeezeAxes=[];for(let i=idx;i"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0],shape2=inputShape[1];if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);if(shape1[axes[0]]!==shape2[axes[1]])throw new ValueError(`Dimension incompatibility: ${shape1[axes[0]]} !== ${shape2[axes[1]]}`)}mergeFunction(inputs){if(inputs.length!==2)throw new ValueError(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${inputs.length} input(s).`);let x1=inputs[0],x2=inputs[1],axes;return Array.isArray(this.axes)?axes=this.axes.map((axis,i)=>interpretAxis(axis,inputs[i].shape.length)):axes=[interpretAxis(this.axes,x1.shape.length),interpretAxis(this.axes,x2.shape.length)],this.normalize&&(x1=l2Normalize(x1,axes[0]),x2=l2Normalize(x2,axes[1])),batchDot(x1,x2,axes)}interpretAxes(shape1,shape2){let axes;return Array.isArray(this.axes)?axes=this.axes:axes=[interpretAxis(this.axes,shape1.length),interpretAxis(this.axes,shape2.length)],axes}computeOutputShape(inputShape){util_exports.assert(Array.isArray(inputShape)&&inputShape.length===2&&Array.isArray(inputShape[0])&&Array.isArray(inputShape[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0].slice(),shape2=inputShape[1].slice();if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);shape1.splice(axes[0],1),shape2.splice(axes[1],1),shape2.splice(0,1);let outputShape=shape1.concat(shape2);return outputShape.length===1&&outputShape.push(1),outputShape}computeMask(inputs,mask){return null}getConfig(){let config3={axes:this.axes,normalize:this.normalize},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Dot.className="Dot";serialization_exports.registerClass(Dot);var GaussianNoise=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.stddev=args.stddev}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={stddev:this.stddev};return Object.assign(config3,baseConfig),config3}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return inTrainPhase(()=>randomNormal2(input2.shape,0,this.stddev).add(input2),()=>input2,kwargs.training||!1)})}};GaussianNoise.className="GaussianNoise";serialization_exports.registerClass(GaussianNoise);var GaussianDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={rate:this.rate};return Object.assign(config3,baseConfig),config3}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.rate>0&&this.rate<1?inTrainPhase(()=>{let stddev=Math.sqrt(this.rate/(1-this.rate));return input2.mul(randomNormal2(input2.shape,1,stddev))},()=>input2,kwargs.training||!1):input2})}};GaussianDropout.className="GaussianDropout";serialization_exports.registerClass(GaussianDropout);var AlphaDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate,this.noiseShape=args.noiseShape}_getNoiseShape(inputs){return this.noiseShape||getExactlyOneTensor(inputs).shape}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={rate:this.rate};return Object.assign(config3,baseConfig),config3}call(inputs,kwargs){return tidy(()=>{if(this.rate<1&&this.rate>0){let noiseShape=this._getNoiseShape(inputs);return inTrainPhase(()=>{let input2=getExactlyOneTensor(inputs),alpha=1.6732632423543772,scale2=1.0507009873554805,alphaP=-alpha*scale2,keptIdx=greaterEqual(randomUniform(noiseShape),this.rate);keptIdx=cast5(keptIdx,"float32");let a=((1-this.rate)*(1+this.rate*alphaP**2))**-.5,b=-a*alphaP*this.rate;return input2.mul(keptIdx).add(keptIdx.add(-1).mul(alphaP)).mul(a).add(b)},()=>getExactlyOneTensor(inputs),kwargs.training||!1)}return inputs})}};AlphaDropout.className="AlphaDropout";serialization_exports.registerClass(AlphaDropout);function batchNormalization(x,mean4,variance,beta,gamma,epsilon3=.001){let out;if(x.rank===2)out=batchNorm2d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===3)out=batchNorm3d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===4)out=batchNorm4d(x,mean4,variance,beta,gamma,epsilon3);else throw new NotImplementedError(`batchNormalization is not implemented for array of rank ${x.rank} yet`);return out}function regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance;return[batchNormalization(x,mean4,variance,beta,gamma,epsilon3),mean4,variance]})}function broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance,targetShape=[];for(let axis of range5(0,x.rank))reductionAxes.indexOf(axis)!==-1?targetShape.push(1):targetShape.push(x.shape[axis]);let broadcastMean=mean4.reshape(targetShape),broadcastVariance=variance.reshape(targetShape),broadcastGamma=gamma==null?null:gamma.reshape(targetShape),broadcastBeta=beta==null?null:beta.reshape(targetShape);return[batchNormalization(x,broadcastMean,broadcastVariance,broadcastBeta,broadcastGamma,epsilon3),mean4,variance]})}function normalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return util_exports.arraysEqual(reductionAxes.slice().sort(),range5(0,x.rank-1))?regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3):broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3)}var BatchNormalization=class extends Layer{constructor(args){args==null&&(args={}),super(args),this.supportsMasking=!0,this.axis=args.axis==null?-1:args.axis,this.momentum=args.momentum==null?.99:args.momentum,this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.movingMeanInitializer=getInitializer(args.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=getInitializer(args.movingVarianceInitializer||"ones"),this.betaConstraint=getConstraint(args.betaConstraint),this.gammaConstraint=getConstraint(args.gammaConstraint),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let axis=this.axis>=0?this.axis:this.axis+inputShape.length,dim=inputShape[axis];if(dim==null)throw new ValueError(`Axis ${axis} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(inputShape)}.`);this.inputSpec=[new InputSpec({ndim:inputShape.length,axes:{[axis]:dim}})];let shape=[dim];this.scale&&(this.gamma=this.addWeight("gamma",shape,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",shape,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",shape,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",shape,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training,input2=getExactlyOneTensor(inputs),inputShape=input2.shape,ndim=inputShape.length,reductionAxes=range5(0,ndim),axis=this.axis>=0?this.axis:this.axis+ndim;reductionAxes.splice(axis,1);let broadcastShape=pyListRepeat(1,ndim);broadcastShape[axis]=inputShape[axis];let sortedReductionAxes=reductionAxes.slice();sortedReductionAxes.sort();let needsBroadcasting=!util_exports.arraysEqual(sortedReductionAxes,range5(0,ndim).slice(0,ndim-1)),normalizeInference=()=>{if(needsBroadcasting){let broadcastMovingMean=this.movingMean.read().reshape(broadcastShape),broadcastMovingVariance=this.movingVariance.read().reshape(broadcastShape),broadcastBeta=this.center?this.beta.read().reshape(broadcastShape):null,broadcastGamma=this.scale?this.gamma.read().reshape(broadcastShape):null;return batchNormalization(input2,broadcastMovingMean,broadcastMovingVariance,broadcastBeta,broadcastGamma,this.epsilon)}else return batchNormalization(input2,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!training)return normalizeInference();let[normedTraining,mean4,variance]=normalizeBatchInTraining(input2,this.gamma.read(),this.beta.read(),reductionAxes,this.epsilon),doMovingAverage=(variable2,value,momentum)=>{tidy(()=>{let decay=1-momentum,origValue=variable2.read(),updateDelta=origValue.sub(value).mul(decay);variable2.write(origValue.sub(updateDelta))})};return(()=>{doMovingAverage(this.movingMean,mean4,this.momentum),doMovingAverage(this.movingVariance,variance,this.momentum)})(),normedTraining})}getConfig(){let config3={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:serializeInitializer(this.betaInitializer),gammaInitializer:serializeInitializer(this.gammaInitializer),movingMeanInitializer:serializeInitializer(this.movingMeanInitializer),movingVarianceInitializer:serializeInitializer(this.movingVarianceInitializer),betaRegularizer:serializeRegularizer(this.betaRegularizer),gammaRegularizer:serializeRegularizer(this.gammaRegularizer),betaConstraint:serializeConstraint(this.betaConstraint),gammaConstraint:serializeConstraint(this.gammaConstraint)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};BatchNormalization.className="BatchNormalization";serialization_exports.registerClass(BatchNormalization);var LayerNormalization=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.axis=args.axis==null?-1:args.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let axis of this.axis)if(!Number.isInteger(axis))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer),this.supportsMasking=!0}build(inputShape){inputShape=getExactlyOneShape(inputShape);let nDims=inputShape.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=nDims)throw new Error(`Invalid axis: ${axis}`);if(this.axis.length!==unique4(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let paramShape=this.axis.map(axis=>inputShape[axis]),trainable=!0;this.scale?this.gamma=this.addWeight("gamma",paramShape,"float32",this.gammaInitializer,this.gammaRegularizer,trainable):this.gamma=null,this.center?this.beta=this.addWeight("beta",paramShape,"float32",this.betaInitializer,this.betaRegularizer,trainable):this.beta=null,this.built=!0}call(inputs,kwargs){let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,nDims=inputShape.length;return tidy(()=>{let keepDims=!0,{mean:mean4,variance}=moments(input2,this.axis,keepDims),broadcastShape=pyListRepeat(1,nDims);for(let dim of this.axis)broadcastShape[dim]=inputShape[dim];let broadcast=v=>v!=null&&v.shape.length!==nDims&&this.axis!==[nDims-1]?v.reshape(broadcastShape):v,scale2=broadcast(this.gamma.read()),offset=broadcast(this.beta.read()),momentsTiling=[],scaleOffsetTiling=[];for(let i=0;i{if(x.rank!==4)throw new ValueError(`temporalPadding expects input tensor to be 4-D, but received a ${x.rank}-D tensor.`);if(padding==null&&(padding=[[1,1],[1,1]]),padding.length!==2||padding[0].length!==2||padding[1].length!==2)throw new ValueError("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(dataFormat==null&&(dataFormat=imageDataFormat()),dataFormat!=="channelsLast"&&dataFormat!=="channelsFirst")throw new ValueError(`Unknown data format: ${dataFormat}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let pattern;return dataFormat==="channelsFirst"?pattern=[[0,0],[0,0],padding[0],padding[1]]:pattern=[[0,0],padding[0],padding[1],[0,0]],pad(x,pattern)})}var ZeroPadding2D=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.dataFormat=args.dataFormat==null?imageDataFormat():args.dataFormat,args.padding==null)this.padding=[[1,1],[1,1]];else if(typeof args.padding=="number")this.padding=[[args.padding,args.padding],[args.padding,args.padding]];else{if(args.padding=args.padding,args.padding.length!==2)throw new ValueError(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${args.padding.length} array.`);let heightPadding,widthPadding;if(typeof args.padding[0]=="number")heightPadding=[args.padding[0],args.padding[0]],widthPadding=[args.padding[1],args.padding[1]];else{if(args.padding=args.padding,args.padding[0].length!==2)throw new ValueError(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${args.padding[0].length} array.`);if(heightPadding=args.padding[0],args.padding[1].length!==2)throw new ValueError(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${args.padding[1].length} array.`);widthPadding=args.padding[1]}this.padding=[heightPadding,widthPadding]}this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows,cols;return this.dataFormat==="channelsFirst"?(inputShape[2]!=null&&inputShape[2]>=0?rows=inputShape[2]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[3]!=null&&inputShape[3]>=0?cols=inputShape[3]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],inputShape[1],rows,cols]):(inputShape[1]!=null&&inputShape[1]>=0?rows=inputShape[1]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[2]!=null&&inputShape[2]>=0?cols=inputShape[2]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],rows,cols,inputShape[3]])}call(inputs,kwargs){return tidy(()=>spatial2dPadding(getExactlyOneTensor(inputs),this.padding,this.dataFormat))}getConfig(){let config3={padding:this.padding,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};ZeroPadding2D.className="ZeroPadding2D";serialization_exports.registerClass(ZeroPadding2D);function pool2d(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv2DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool(x,poolSize,strides,paddingString):y=avgPool(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function pool3d2(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv3DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool3d(x,poolSize,strides,paddingString):y=avgPool3d(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var Pooling1D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=2),super(args),typeof args.poolSize=="number")this.poolSize=[args.poolSize];else if(Array.isArray(args.poolSize)&&args.poolSize.length===1&&typeof args.poolSize[0]=="number")this.poolSize=args.poolSize;else throw new ValueError(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.poolSize)}`);if(assertPositiveInteger(this.poolSize,"poolSize"),args.strides==null)this.strides=this.poolSize;else if(typeof args.strides=="number")this.strides=[args.strides];else if(Array.isArray(args.strides)&&args.strides.length===1&&typeof args.strides[0]=="number")this.strides=args.strides;else throw new ValueError(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.strides)}`);assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let length=convOutputLength(inputShape[1],this.poolSize[0],this.padding,this.strides[0]);return[inputShape[0],length,inputShape[2]]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs),inputs=expandDims5(getExactlyOneTensor(inputs),2);let output=this.poolingFunction(getExactlyOneTensor(inputs),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return squeeze(output,[2])})}getConfig(){let config3={poolSize:this.poolSize,padding:this.padding,strides:this.strides},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},MaxPooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling1D.className="MaxPooling1D";serialization_exports.registerClass(MaxPooling1D);var AveragePooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling1D.className="AveragePooling1D";serialization_exports.registerClass(AveragePooling1D);var Pooling2D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==2)throw new ValueError(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2];return rows=convOutputLength(rows,this.poolSize[0],this.padding,this.strides[0]),cols=convOutputLength(cols,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],rows,cols]:[inputShape[0],rows,cols,inputShape[3]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config3={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},MaxPooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling2D.className="MaxPooling2D";serialization_exports.registerClass(MaxPooling2D);var AveragePooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling2D.className="AveragePooling2D";serialization_exports.registerClass(AveragePooling2D);var Pooling3D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==3)throw new ValueError(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:5})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let depths=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],rows=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],cols=this.dataFormat==="channelsFirst"?inputShape[4]:inputShape[3];return depths=convOutputLength(depths,this.poolSize[0],this.padding,this.strides[0]),rows=convOutputLength(rows,this.poolSize[1],this.padding,this.strides[1]),cols=convOutputLength(cols,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],depths,rows,cols]:[inputShape[0],depths,rows,cols,inputShape[4]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config3={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},MaxPooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling3D.className="MaxPooling3D";serialization_exports.registerClass(MaxPooling3D);var AveragePooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling3D.className="AveragePooling3D";serialization_exports.registerClass(AveragePooling3D);var GlobalPooling1D=class extends Layer{constructor(args){super(args);this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){return[inputShape[0],inputShape[2]]}call(inputs,kwargs){throw new NotImplementedError}},GlobalAveragePooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return mean(input2,1)})}};GlobalAveragePooling1D.className="GlobalAveragePooling1D";serialization_exports.registerClass(GlobalAveragePooling1D);var GlobalMaxPooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return max(input2,1)})}};GlobalMaxPooling1D.className="GlobalMaxPooling1D";serialization_exports.registerClass(GlobalMaxPooling1D);var GlobalPooling2D=class extends Layer{constructor(args){super(args);this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){return inputShape=inputShape,this.dataFormat==="channelsLast"?[inputShape[0],inputShape[3]]:[inputShape[0],inputShape[1]]}call(inputs,kwargs){throw new NotImplementedError}getConfig(){let config3={dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},GlobalAveragePooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?mean(input2,[1,2]):mean(input2,[2,3])})}};GlobalAveragePooling2D.className="GlobalAveragePooling2D";serialization_exports.registerClass(GlobalAveragePooling2D);var GlobalMaxPooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?max(input2,[1,2]):max(input2,[2,3])})}};GlobalMaxPooling2D.className="GlobalMaxPooling2D";serialization_exports.registerClass(GlobalMaxPooling2D);var Wrapper=class extends Layer{constructor(args){super(args);this.layer=args.layer}build(inputShape){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(value){this.layer!=null&&(this.layer.trainable=value)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(weights){this.layer.setWeights(weights)}getConfig(){let config3={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(value)}static fromConfig(cls,config3,customObjects={}){let layerConfig=config3.layer,layer=deserialize(layerConfig,customObjects);delete config3.layer;let newConfig={layer};return Object.assign(newConfig,config3),new cls(newConfig)}},TimeDistributed=class extends Wrapper{constructor(args){super(args);this.supportsMasking=!0}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<3)throw new ValueError(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(inputShape)}`);this.inputSpec=[{shape:inputShape}];let childInputShape=[inputShape[0]].concat(inputShape.slice(2));this.layer.built||(this.layer.build(childInputShape),this.layer.built=!0),super.build(inputShape)}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let childInputShape=[inputShape[0]].concat(inputShape.slice(2)),childOutputShape=this.layer.computeOutputShape(childInputShape),timesteps=inputShape[1];return[childOutputShape[0],timesteps].concat(childOutputShape.slice(1))}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),rnn((inputs2,states)=>[getExactlyOneTensor(this.layer.call(inputs2,kwargs)),[]],inputs,[],!1,null,null,!1,!0)[1]))}};TimeDistributed.className="TimeDistributed";serialization_exports.registerClass(TimeDistributed);function checkBidirectionalMergeMode(value){checkStringTypeUnionValue(VALID_BIDIRECTIONAL_MERGE_MODES,"BidirectionalMergeMode",value)}var DEFAULT_BIDIRECTIONAL_MERGE_MODE="concat",Bidirectional=class extends Wrapper{constructor(args){super(args);let layerConfig=args.layer.getConfig(),forwDict={};forwDict.className=args.layer.getClassName(),forwDict.config=layerConfig,this.forwardLayer=deserialize(forwDict),layerConfig.goBackwards=layerConfig.goBackwards!==!0;let backDict={};if(backDict.className=args.layer.getClassName(),backDict.config=layerConfig,this.backwardLayer=deserialize(backDict),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=args.mergeMode===void 0?DEFAULT_BIDIRECTIONAL_MERGE_MODE:args.mergeMode,checkBidirectionalMergeMode(this.mergeMode),args.weights)throw new NotImplementedError("weights support is not implemented for Bidirectional layer yet.");this._stateful=args.layer.stateful,this.returnSequences=args.layer.returnSequences,this.returnState=args.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=args.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(value){this._trainable=value,this.forwardLayer!=null&&(this.forwardLayer.trainable=value),this.backwardLayer!=null&&(this.backwardLayer.trainable=value)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(weights){let numWeights=weights.length,numeightsOver2=Math.floor(numWeights/2);this.forwardLayer.setWeights(weights.slice(0,numeightsOver2)),this.backwardLayer.setWeights(weights.slice(numeightsOver2))}computeOutputShape(inputShape){let layerShapes=this.forwardLayer.computeOutputShape(inputShape);Array.isArray(layerShapes)&&Array.isArray(layerShapes[0])||(layerShapes=[layerShapes]),layerShapes=layerShapes;let outputShape,outputShapes,stateShape;return this.returnState&&(stateShape=layerShapes.slice(1)),outputShape=layerShapes[0],outputShape=outputShape,this.mergeMode==="concat"?(outputShape[outputShape.length-1]*=2,outputShapes=[outputShape]):this.mergeMode==null?outputShapes=[outputShape,outputShape.slice()]:outputShapes=[outputShape],this.returnState?this.mergeMode==null?outputShapes.concat(stateShape).concat(stateShape.slice()):[outputShape].concat(stateShape).concat(stateShape.slice()):singletonOrArray(outputShapes)}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);if(inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants,Array.isArray(inputs)&&(initialState=inputs.slice(1),inputs=inputs[0]),(initialState==null||initialState.length===0)&&constants==null)return super.apply(inputs,kwargs);let additionalInputs=[],additionalSpecs=[];if(initialState!=null){let numStates=initialState.length;if(numStates%2>0)throw new ValueError("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");kwargs.initialState=initialState,additionalInputs.push(...initialState);let stateSpecs=initialState.map(state=>new InputSpec({shape:state.shape}));this.forwardLayer.stateSpec=stateSpecs.slice(0,numStates/2),this.backwardLayer.stateSpec=stateSpecs.slice(numStates/2),additionalSpecs.push(...stateSpecs)}if(constants!=null)throw new NotImplementedError("Support for constants in Bidirectional layers is not implemented yet.");let isSymbolicTensor=additionalInputs[0]instanceof SymbolicTensor;for(let tensor2 of additionalInputs)if(tensor2 instanceof SymbolicTensor!==isSymbolicTensor)throw new ValueError("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(isSymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let initialState=kwargs.initialState,y,yRev;if(initialState==null)y=this.forwardLayer.call(inputs,kwargs),yRev=this.backwardLayer.call(inputs,kwargs);else{let forwardState=initialState.slice(0,initialState.length/2),backwardState=initialState.slice(initialState.length/2);y=this.forwardLayer.call(inputs,Object.assign(kwargs,{initialState:forwardState})),yRev=this.backwardLayer.call(inputs,Object.assign(kwargs,{initialState:backwardState}))}let states;this.returnState&&(Array.isArray(y)&&(states=y.slice(1).concat(yRev.slice(1))),y=y[0],yRev=yRev[0]),this.returnSequences&&(yRev=reverse(yRev,1));let output;return this.mergeMode==="concat"?output=concatenate([y,yRev]):this.mergeMode==="sum"?output=add2(y,yRev):this.mergeMode==="ave"?output=mul(.5,add2(y,yRev)):this.mergeMode==="mul"?output=mul(y,yRev):this.mergeMode==null&&(output=[y,yRev]),this.returnState?this.mergeMode==null?output.concat(states):[output].concat(states):output})}resetStates(states){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(inputShape){nameScope(this.forwardLayer.name,()=>{this.forwardLayer.build(inputShape)}),nameScope(this.backwardLayer.name,()=>{this.backwardLayer.build(inputShape)}),this.built=!0}computeMask(inputs,mask){Array.isArray(mask)&&(mask=mask[0]);let outputMask;if(this.returnSequences?this.mergeMode==null?outputMask=[mask,mask]:outputMask=mask:this.mergeMode==null?outputMask=[null,null]:outputMask=null,this.returnState){let stateMask=this.forwardLayer.states.map(state=>null);return Array.isArray(outputMask)?outputMask.concat(stateMask).concat(stateMask):[outputMask].concat(stateMask).concat(stateMask)}else return outputMask}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(value),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(value)}getConfig(){let config3={mergeMode:this.mergeMode},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}static fromConfig(cls,config3){let rnnLayer=deserialize(config3.layer);if(delete config3.layer,config3.numConstants!=null)throw new NotImplementedError("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let newConfig=config3;return newConfig.layer=rnnLayer,new cls(newConfig)}};Bidirectional.className="Bidirectional";serialization_exports.registerClass(Bidirectional);function inputLayer(args){return new InputLayer(args)}function elu5(args){return new ELU4(args)}function reLU(args){return new ReLU(args)}function leakyReLU(args){return new LeakyReLU(args)}function prelu5(args){return new PReLU(args)}function softmax5(args){return new Softmax3(args)}function thresholdedReLU(args){return new ThresholdedReLU(args)}function conv1d2(args){return new Conv1D(args)}function conv2d5(args){return new Conv2D2(args)}function conv2dTranspose2(args){return new Conv2DTranspose(args)}function conv3d2(args){return new Conv3D2(args)}function separableConv2d2(args){return new SeparableConv2D(args)}function cropping2D(args){return new Cropping2D(args)}function upSampling2d(args){return new UpSampling2D(args)}function depthwiseConv2d5(args){return new DepthwiseConv2D(args)}function activation(args){return new Activation2(args)}function dense(args){return new Dense(args)}function dropout3(args){return new Dropout(args)}function spatialDropout1d(args){return new SpatialDropout1D(args)}function flatten3(args){return new Flatten(args)}function repeatVector(args){return new RepeatVector(args)}function reshape5(args){return new Reshape2(args)}function permute(args){return new Permute(args)}function embedding(args){return new Embedding(args)}function add4(args){return new Add2(args)}function average(args){return new Average(args)}function concatenate2(args){return new Concatenate(args)}function maximum4(args){return new Maximum2(args)}function minimum4(args){return new Minimum2(args)}function multiply3(args){return new Multiply2(args)}function dot3(args){return new Dot(args)}function batchNormalization2(args){return new BatchNormalization(args)}function layerNormalization(args){return new LayerNormalization(args)}function zeroPadding2d(args){return new ZeroPadding2D(args)}function averagePooling1d(args){return new AveragePooling1D(args)}function avgPool1d(args){return averagePooling1d(args)}function avgPooling1d(args){return averagePooling1d(args)}function averagePooling2d(args){return new AveragePooling2D(args)}function avgPool2d(args){return averagePooling2d(args)}function avgPooling2d(args){return averagePooling2d(args)}function averagePooling3d(args){return new AveragePooling3D(args)}function avgPool3d2(args){return averagePooling3d(args)}function avgPooling3d(args){return averagePooling3d(args)}function globalAveragePooling1d(args){return new GlobalAveragePooling1D(args)}function globalAveragePooling2d(args){return new GlobalAveragePooling2D(args)}function globalMaxPooling1d(args){return new GlobalMaxPooling1D(args)}function globalMaxPooling2d(args){return new GlobalMaxPooling2D(args)}function maxPooling1d(args){return new MaxPooling1D(args)}function maxPooling2d(args){return new MaxPooling2D(args)}function maxPooling3d(args){return new MaxPooling3D(args)}function gru(args){return new GRU(args)}function gruCell(args){return new GRUCell(args)}function lstm(args){return new LSTM(args)}function lstmCell(args){return new LSTMCell(args)}function simpleRNN(args){return new SimpleRNN(args)}function simpleRNNCell(args){return new SimpleRNNCell(args)}function convLstm2d(args){return new ConvLSTM2D(args)}function convLstm2dCell(args){return new ConvLSTM2DCell(args)}function rnn2(args){return new RNN(args)}function stackedRNNCells(args){return new StackedRNNCells(args)}function bidirectional(args){return new Bidirectional(args)}function timeDistributed(args){return new TimeDistributed(args)}var globalMaxPool1d=globalMaxPooling1d,globalMaxPool2d=globalMaxPooling2d,maxPool1d=maxPooling1d,maxPool2d=maxPooling2d;function gaussianNoise(args){return new GaussianNoise(args)}function gaussianDropout(args){return new GaussianDropout(args)}function alphaDropout(args){return new AlphaDropout(args)}function masking(args){return new Masking(args)}var exports_metrics_exports={};__export2(exports_metrics_exports,{MAPE:()=>MAPE2,MSE:()=>MSE2,binaryAccuracy:()=>binaryAccuracy2,binaryCrossentropy:()=>binaryCrossentropy3,categoricalAccuracy:()=>categoricalAccuracy2,categoricalCrossentropy:()=>categoricalCrossentropy3,cosineProximity:()=>cosineProximity2,mape:()=>mape2,meanAbsoluteError:()=>meanAbsoluteError2,meanAbsolutePercentageError:()=>meanAbsolutePercentageError2,meanSquaredError:()=>meanSquaredError3,mse:()=>mse2,precision:()=>precision2,recall:()=>recall2,sparseCategoricalAccuracy:()=>sparseCategoricalAccuracy2});function binaryAccuracy2(yTrue,yPred){return binaryAccuracy(yTrue,yPred)}function binaryCrossentropy3(yTrue,yPred){return binaryCrossentropy2(yTrue,yPred)}function sparseCategoricalAccuracy2(yTrue,yPred){return sparseCategoricalAccuracy(yTrue,yPred)}function categoricalAccuracy2(yTrue,yPred){return categoricalAccuracy(yTrue,yPred)}function categoricalCrossentropy3(yTrue,yPred){return categoricalCrossentropy2(yTrue,yPred)}function precision2(yTrue,yPred){return precision(yTrue,yPred)}function recall2(yTrue,yPred){return recall(yTrue,yPred)}function cosineProximity2(yTrue,yPred){return cosineProximity(yTrue,yPred)}function meanAbsoluteError2(yTrue,yPred){return meanAbsoluteError(yTrue,yPred)}function meanAbsolutePercentageError2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function MAPE2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function mape2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function meanSquaredError3(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function MSE2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function mse2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}var exports_models_exports={};__export2(exports_models_exports,{modelFromJSON:()=>modelFromJSON});var exports_regularizers_exports={};__export2(exports_regularizers_exports,{l1:()=>l12,l1l2:()=>l1l2,l2:()=>l22});function l1l2(config3){return new L1L2(config3)}function l12(config3){return l1(config3)}function l22(config3){return l2(config3)}var Callback=class extends BaseCallback{constructor(){super(...arguments);this.model=null}setModel(model2){if(!(model2 instanceof LayersModel))throw new Error("model must be a LayersModel, not some other Container");this.model=model2}};function less4(currVal,prevVal){return currValprevVal}var EarlyStopping=class extends Callback{constructor(args){super();if(args==null&&(args={}),args.restoreBestWeights)throw new NotImplementedError("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=args.monitor||"val_loss",this.minDelta=Math.abs(args.minDelta||0),this.patience=args.patience||0,this.verbose=args.verbose||0,this.mode=args.mode||"auto",this.baseline=args.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=less4:this.mode==="max"?this.monitorFunc=greater4:this.monitor.indexOf("acc")!==-1?this.monitorFunc=greater4:this.monitorFunc=less4,this.monitorFunc===less4&&(this.minDelta*=-1)}async onTrainBegin(logs){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===less4?Infinity:-Infinity}async onEpochEnd(epoch,logs){await resolveScalarsInLogs(logs);let current=this.getMonitorValue(logs);current!=null&&(this.monitorFunc(current-this.minDelta,this.best)?(this.best=current,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=epoch,this.model.stopTraining=!0)))}async onTrainEnd(logs){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(logs){logs==null&&(logs={});let monitorValue=logs[this.monitor];return monitorValue==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(logs)}`),monitorValue}};function earlyStopping(args){return new EarlyStopping(args)}var callbacks={earlyStopping},DataType;(function(DataType2){DataType2[DataType2.DT_INVALID=0]="DT_INVALID",DataType2[DataType2.DT_FLOAT=1]="DT_FLOAT",DataType2[DataType2.DT_DOUBLE=2]="DT_DOUBLE",DataType2[DataType2.DT_INT32=3]="DT_INT32",DataType2[DataType2.DT_UINT8=4]="DT_UINT8",DataType2[DataType2.DT_INT16=5]="DT_INT16",DataType2[DataType2.DT_INT8=6]="DT_INT8",DataType2[DataType2.DT_STRING=7]="DT_STRING",DataType2[DataType2.DT_COMPLEX64=8]="DT_COMPLEX64",DataType2[DataType2.DT_INT64=9]="DT_INT64",DataType2[DataType2.DT_BOOL=10]="DT_BOOL",DataType2[DataType2.DT_QINT8=11]="DT_QINT8",DataType2[DataType2.DT_QUINT8=12]="DT_QUINT8",DataType2[DataType2.DT_QINT32=13]="DT_QINT32",DataType2[DataType2.DT_BFLOAT16=14]="DT_BFLOAT16",DataType2[DataType2.DT_FLOAT_REF=101]="DT_FLOAT_REF",DataType2[DataType2.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",DataType2[DataType2.DT_INT32_REF=103]="DT_INT32_REF",DataType2[DataType2.DT_UINT8_REF=104]="DT_UINT8_REF",DataType2[DataType2.DT_INT16_REF=105]="DT_INT16_REF",DataType2[DataType2.DT_INT8_REF=106]="DT_INT8_REF",DataType2[DataType2.DT_STRING_REF=107]="DT_STRING_REF",DataType2[DataType2.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",DataType2[DataType2.DT_INT64_REF=109]="DT_INT64_REF",DataType2[DataType2.DT_BOOL_REF=110]="DT_BOOL_REF",DataType2[DataType2.DT_QINT8_REF=111]="DT_QINT8_REF",DataType2[DataType2.DT_QUINT8_REF=112]="DT_QUINT8_REF",DataType2[DataType2.DT_QINT32_REF=113]="DT_QINT32_REF",DataType2[DataType2.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(DataType||(DataType={}));var SaverDef;(function(SaverDef2){let CheckpointFormatVersion;(function(CheckpointFormatVersion2){CheckpointFormatVersion2[CheckpointFormatVersion2.LEGACY=0]="LEGACY",CheckpointFormatVersion2[CheckpointFormatVersion2.V1=1]="V1",CheckpointFormatVersion2[CheckpointFormatVersion2.V2=2]="V2"})(CheckpointFormatVersion=SaverDef2.CheckpointFormatVersion||(SaverDef2.CheckpointFormatVersion={}))})(SaverDef||(SaverDef={}));var CUSTOM_OPS={};function registerOp(name,opFunc){let opMapper={tfOpName:name,category:"custom",inputs:[],attrs:[],customExecutor:opFunc};CUSTOM_OPS[name]=opMapper}function getRegisteredOp(name){return CUSTOM_OPS[name]}function deregisterOp(name){delete CUSTOM_OPS[name]}function getParamValue(paramName,node,tensorMap,context,resourceManager){let inputParam=node.inputParams[paramName];if(inputParam&&inputParam.inputIndexStart!==void 0){let start=inputParam.inputIndexStart,end=inputParam.inputIndexEnd===0?void 0:inputParam.inputIndexEnd===void 0?start+1:inputParam.inputIndexEnd;if(inputParam.type==="tensor")return getTensor(node.inputNames[inputParam.inputIndexStart],tensorMap,context,resourceManager);if(inputParam.type==="tensors")return node.inputNames.slice(start,end).map(name=>getTensor(name,tensorMap,context,resourceManager));let tensor2=getTensor(node.inputNames.slice(start)[0],tensorMap,context,resourceManager),data2=tensor2.dataSync();return inputParam.type==="number"?data2[0]:util_exports.toNestedArray(tensor2.shape,data2)}let attrParam=node.attrParams[paramName];return attrParam&&attrParam.value}function getTensor(name,tensorsMap,context,resourceManager){let[nodeName,index]=parseNodeName(name);if(resourceManager!=null){let tensor2=resourceManager.getHashTableHandleByName(nodeName);if(tensor2!=null)return tensor2}let contextId=context.currentContextIds.find(contextId2=>!!tensorsMap[getNodeNameWithContextId(nodeName,contextId2)]);return contextId!==void 0?tensorsMap[getNodeNameWithContextId(nodeName,contextId)][index]:void 0}function getTensorsForCurrentContenxt(name,tensorsMap,context){return tensorsMap[getNodeNameWithContextId(name,context.currentContextId)]}function getNodeNameAndIndex(inputName,context){let[nodeName,index]=parseNodeName(inputName);return[getNodeNameWithContextId(nodeName,context&&context.currentContextId),index]}function getNodeNameWithContextId(name,contextId){return contextId?`${name}-${contextId}`:name}function parseNodeName(name){let parts=name.split(":");return parts.length===1?[name,0]:[parts[0],Number(parts[parts.length-1])]}function getPadding(node,tensorMap,context){let pad3=getParamValue("pad",node,tensorMap,context);if(pad3==="explicit"){pad3=getParamValue("explicitPaddings",node,tensorMap,context);let explicitPadding=[[0,0],[0,0],[0,0],[0,0]];for(let i=0;i<4;i++)explicitPadding[i][0]=pad3[i*2],explicitPadding[i][1]=pad3[i*2+1];return explicitPadding}return pad3}function cloneTensor(tensor2){return tensor2.kept?tensor2:clone(tensor2)}var arithmetic_exports={};__export2(arithmetic_exports,{json:()=>json});var json=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],basic_math_exports={};__export2(basic_math_exports,{json:()=>json2});var json2=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],control_exports={};__export2(control_exports,{json:()=>json3});var json3=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],convolution_exports={};__export2(convolution_exports,{json:()=>json4});var json4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],creation_exports={};__export2(creation_exports,{json:()=>json5});var json5=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],dynamic_exports={};__export2(dynamic_exports,{json:()=>json6});var json6=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],evaluation_exports={};__export2(evaluation_exports,{json:()=>json7});var json7=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],graph_exports={};__export2(graph_exports,{json:()=>json8});var json8=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],hash_table_exports={};__export2(hash_table_exports,{json:()=>json9});var json9=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],image_exports={};__export2(image_exports,{json:()=>json10});var json10=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],logical_exports={};__export2(logical_exports,{json:()=>json11});var json11=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],matrices_exports={};__export2(matrices_exports,{json:()=>json12});var json12=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],normalization_exports={};__export2(normalization_exports,{json:()=>json13});var json13=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],reduction_exports={};__export2(reduction_exports,{json:()=>json14});var json14=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],slice_join_exports={};__export2(slice_join_exports,{json:()=>json15});var json15=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],spectral_exports={};__export2(spectral_exports,{json:()=>json16});var json16=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],transformation_exports={};__export2(transformation_exports,{json:()=>json17});var json17=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],OperationMapper=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let ops=[arithmetic_exports,basic_math_exports,control_exports,convolution_exports,creation_exports,dynamic_exports,evaluation_exports,logical_exports,image_exports,graph_exports,matrices_exports,normalization_exports,reduction_exports,slice_join_exports,spectral_exports,transformation_exports,hash_table_exports],mappersJson=[].concat(...ops.map(op2=>op2.json));this.opMappers=mappersJson.reduce((map,mapper)=>(map[mapper.tfOpName]=mapper,map),{})}transformGraph(graph2,signature={}){let tfNodes=graph2.node,placeholders=[],weights=[],initNodes=[],nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op.startsWith("Placeholder")?placeholders.push(map[node.name]):node.op==="Const"?weights.push(map[node.name]):(node.input==null||node.input.length===0)&&initNodes.push(map[node.name]),map),{}),inputs=[],outputs=[],inputNodeNameToKey={},outputNodeNameToKey={};signature!=null&&(inputNodeNameToKey=this.mapSignatureEntries(signature.inputs),outputNodeNameToKey=this.mapSignatureEntries(signature.outputs));let allNodes=Object.keys(nodes);allNodes.forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})}),Object.keys(outputNodeNameToKey).length===0?allNodes.forEach(key=>{let node=nodes[key];node.children.length===0&&outputs.push(node)}):Object.keys(outputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node!=null&&(node.signatureKey=outputNodeNameToKey[name],outputs.push(node))}),Object.keys(inputNodeNameToKey).length>0?Object.keys(inputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node&&(node.signatureKey=inputNodeNameToKey[name],inputs.push(node))}):inputs=placeholders;let functions={};graph2.library!=null&&graph2.library.function!=null&&(functions=graph2.library.function.reduce((functions2,func2)=>(functions2[func2.signature.name]=this.mapFunction(func2),functions2),{}));let result={nodes,inputs,outputs,weights,placeholders,signature,functions};return initNodes.length>0&&(result.initNodes=initNodes),result}mapSignatureEntries(entries){return Object.keys(entries||{}).reduce((prev,curr)=>(prev[entries[curr].name]=curr,prev),{})}mapNode(node){let mapper=getRegisteredOp(node.op)||this.opMappers[node.op]||{};node.attr==null&&(node.attr={});let newNode={name:node.name,op:node.op,category:mapper.category,inputNames:(node.input||[]).map(input2=>input2.startsWith("^")?input2.substr(1):input2),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:node.attr};return mapper.inputs!=null&&(newNode.inputParams=mapper.inputs.reduce((map,param)=>(map[param.name]={type:param.type,inputIndexStart:param.start,inputIndexEnd:param.end},map),{})),mapper.attrs!=null&&(newNode.attrParams=mapper.attrs.reduce((map,param)=>{let type=param.type,value;switch(param.type){case"string":value=getStringParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"string[]":value=getStringArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number":value=getNumberParam(node.attr,param.tfName,param.defaultValue||0),value===void 0&&!!param.tfDeprecatedName&&(value=getNumberParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number[]":value=getNumericArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getNumericArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool":value=getBoolParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool[]":value=getBoolArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape":value=getTensorShapeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape[]":value=getTensorShapeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype":value=getDtypeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype[]":value=getDtypeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"func":value=getFuncParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getFuncParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${param.type} for op: ${node.op}`)}return map[param.name]={value,type},map},{})),newNode}mapFunction(functionDef){let tfNodes=functionDef.nodeDef,placeholders=[],weights=[],nodes={};tfNodes!=null&&(nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op==="Const"&&weights.push(map[node.name]),map),{}));let inputs=[],outputs=[];functionDef.signature.inputArg.forEach(arg=>{let[nodeName]=getNodeNameAndIndex(arg.name),node={name:nodeName,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:parseDtypeParam(arg.type),type:"dtype"}},children:[]};node.signatureKey=arg.name,inputs.push(node),nodes[nodeName]=node}),Object.keys(nodes).forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})});let returnNodeMap=functionDef.ret;functionDef.signature.outputArg.forEach(output=>{let[nodeName,index]=getNodeNameAndIndex(returnNodeMap[output.name]),node=nodes[nodeName];node!=null&&(node.defaultOutput=index,outputs.push(node))});let signature=this.mapArgsToSignature(functionDef);return{nodes,inputs,outputs,weights,placeholders,signature}}mapArgsToSignature(functionDef){return{methodName:functionDef.signature.name,inputs:functionDef.signature.inputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg),map),{}),outputs:functionDef.signature.outputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg,functionDef.ret),map),{})}}mapArgToTensorInfo(arg,nameMap2){let name=arg.name;return nameMap2!=null&&(name=nameMap2[name]),{name,dtype:arg.type}}};function decodeBase64(text){let global2=env().global;if(typeof global2.atob!="undefined")return global2.atob(text);if(typeof Buffer!="undefined")return new Buffer(text,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function parseStringParam(s,keepCase){let value=Array.isArray(s)?String.fromCharCode.apply(null,s):decodeBase64(s);return keepCase?value:value.toLowerCase()}function getStringParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param!=null?parseStringParam(param.s,keepCase):def}function getBoolParam(attrs,name,def){let param=attrs[name];return param?param.b:def}function getNumberParam(attrs,name,def){let param=attrs[name]||{},value=param.i!=null?param.i:param.f!=null?param.f:def;return typeof value=="number"?value:parseInt(value,10)}function parseDtypeParam(value){switch(typeof value=="string"&&(value=DataType[value]),value){case DataType.DT_FLOAT:return"float32";case DataType.DT_INT32:case DataType.DT_INT64:case DataType.DT_INT8:case DataType.DT_UINT8:return"int32";case DataType.DT_BOOL:return"bool";case DataType.DT_DOUBLE:return"float32";case DataType.DT_STRING:return"string";default:return null}}function getFuncParam(attrs,name,def){let param=attrs[name];return param&¶m.func?param.func.name:def}function getDtypeParam(attrs,name,def){let param=attrs[name];return param&¶m.type?parseDtypeParam(param.type):def}function getDtypeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.type?param.list.type.map(v=>parseDtypeParam(v)):def}function parseTensorShapeParam(shape){if(!shape.unknownRank)return shape.dim!=null?shape.dim.map(dim=>typeof dim.size=="number"?dim.size:parseInt(dim.size,10)):[]}function getTensorShapeParam(attrs,name,def){let param=attrs[name];return param&¶m.shape?parseTensorShapeParam(param.shape):def}function getNumericArrayParam(attrs,name,def){let param=attrs[name];return param?((param.list.f&¶m.list.f.length?param.list.f:param.list.i)||[]).map(v=>typeof v=="number"?v:parseInt(v,10)):def}function getStringArrayParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param&¶m.list&¶m.list.s?param.list.s.map(v=>parseStringParam(v,keepCase)):def}function getTensorShapeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.shape?param.list.shape.map(v=>parseTensorShapeParam(v)):def}function getBoolArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.b?param.list.b:def}var NodeValueImpl=class{constructor(node,tensorMap,context){this.node=node,this.tensorMap=tensorMap,this.context=context,this.inputs=[],this.attrs={},this.inputs=node.inputNames.map(name=>this.getInput(name)),node.rawAttrs!=null&&(this.attrs=Object.keys(node.rawAttrs).reduce((attrs,key)=>(attrs[key]=this.getAttr(key),attrs),{}))}getInput(name){return getTensor(name,this.tensorMap,this.context)}getAttr(name,defaultValue){let value=this.node.rawAttrs[name];if(value.tensor!=null)return getTensor(name,this.tensorMap,this.context);if(value.i!=null||value.f!=null)return getNumberParam(this.node.rawAttrs,name,defaultValue);if(value.s!=null)return getStringParam(this.node.rawAttrs,name,defaultValue);if(value.b!=null)return getBoolParam(this.node.rawAttrs,name,defaultValue);if(value.shape!=null)return getTensorShapeParam(this.node.rawAttrs,name,defaultValue);if(value.type!=null)return getDtypeParam(this.node.rawAttrs,name,defaultValue);if(value.list!=null){if(value.list.i!=null||value.list.f!=null)return getNumericArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.s!=null)return getStringArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.shape!=null)return getTensorShapeArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.b!=null)return getBoolArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.type!=null)return getDtypeArrayParam(this.node.rawAttrs,name,defaultValue)}return defaultValue}},executeOp=(node,tensorMap,context)=>{switch(node.op){case"BiasAdd":case"AddV2":case"Add":return[add2(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"AddN":return[addN(getParamValue("tensors",node,tensorMap,context))];case"FloorMod":case"Mod":return[mod(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Mul":return[mul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"RealDiv":case"Div":return[div(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"DivNoNan":return[divNoNan(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"FloorDiv":return[floorDiv(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Sub":return[sub(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Minimum":return[minimum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Maximum":return[maximum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Pow":return[pow(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"SquaredDifference":return[squaredDifference(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp2=(node,tensorMap,context)=>{switch(node.op){case"Abs":case"ComplexAbs":return[abs(getParamValue("x",node,tensorMap,context))];case"Acos":return[acos(getParamValue("x",node,tensorMap,context))];case"Acosh":return[acosh(getParamValue("x",node,tensorMap,context))];case"Asin":return[asin(getParamValue("x",node,tensorMap,context))];case"Asinh":return[asinh(getParamValue("x",node,tensorMap,context))];case"Atan":return[atan(getParamValue("x",node,tensorMap,context))];case"Atan2":return[atan2(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context))];case"Atanh":return[atanh(getParamValue("x",node,tensorMap,context))];case"Ceil":return[ceil(getParamValue("x",node,tensorMap,context))];case"Complex":return[complex(getParamValue("real",node,tensorMap,context),getParamValue("imag",node,tensorMap,context))];case"Cos":return[cos(getParamValue("x",node,tensorMap,context))];case"Cosh":return[cosh(getParamValue("x",node,tensorMap,context))];case"Elu":return[elu(getParamValue("x",node,tensorMap,context))];case"Erf":return[erf(getParamValue("x",node,tensorMap,context))];case"Exp":return[exp(getParamValue("x",node,tensorMap,context))];case"Expm1":return[expm1(getParamValue("x",node,tensorMap,context))];case"Floor":return[floor(getParamValue("x",node,tensorMap,context))];case"Log":return[log2(getParamValue("x",node,tensorMap,context))];case"Log1p":return[log1p(getParamValue("x",node,tensorMap,context))];case"Imag":return[imag(getParamValue("x",node,tensorMap,context))];case"Neg":return[neg(getParamValue("x",node,tensorMap,context))];case"Reciprocal":return[reciprocal(getParamValue("x",node,tensorMap,context))];case"Real":return[real(getParamValue("x",node,tensorMap,context))];case"Relu":return[relu(getParamValue("x",node,tensorMap,context))];case"Round":return[round2(getParamValue("x",node,tensorMap,context))];case"Selu":return[selu(getParamValue("x",node,tensorMap,context))];case"Sigmoid":return[sigmoid(getParamValue("x",node,tensorMap,context))];case"Sin":return[sin(getParamValue("x",node,tensorMap,context))];case"Sign":return[sign(getParamValue("x",node,tensorMap,context))];case"Sinh":return[sinh(getParamValue("x",node,tensorMap,context))];case"Softplus":return[softplus(getParamValue("x",node,tensorMap,context))];case"Sqrt":return[sqrt(getParamValue("x",node,tensorMap,context))];case"Square":return[square(getParamValue("x",node,tensorMap,context))];case"Tanh":return[tanh2(getParamValue("x",node,tensorMap,context))];case"Tan":return[tan(getParamValue("x",node,tensorMap,context))];case"ClipByValue":return[clipByValue(getParamValue("x",node,tensorMap,context),getParamValue("clipValueMin",node,tensorMap,context),getParamValue("clipValueMax",node,tensorMap,context))];case"Relu6":return[relu6(getParamValue("x",node,tensorMap,context))];case"Rsqrt":return[rsqrt(getTensor(node.inputNames[0],tensorMap,context))];case"Prod":return[prod(getParamValue("x",node,tensorMap,context),getParamValue("axes",node,tensorMap,context))];case"LeakyRelu":return[leakyRelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];case"Prelu":return[prelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function assertShapesMatchAllowUndefinedSize(shapeA,shapeB,errorMessagePrefix=""){util_exports.assert(shapesEqualAllowUndefinedSize(shapeA,shapeB),()=>errorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function shapesEqualAllowUndefinedSize(n1,n2){if(n1.length!==n2.length)return!1;for(let i=0;i{(keepIds==null||!keepIds.has(tensor2.tensor.id))&&tensor2.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(index){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||index>=this.size())throw new Error(`Tried to read from index ${index}, but array size is: ${this.size()}`);let tensorWithState=this.tensors[index];if(tensorWithState.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${index} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(tensorWithState.cleared=!0),tensorWithState.read=!0,tensorWithState.tensor}readMany(indices){return indices.map(index=>this.read(index))}write(index,tensor2){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||!this.dynamicSize&&index>=this.maxSize)throw new Error(`Tried to write to index ${index}, but array is not resizeable and size is: ${this.maxSize}`);let t=this.tensors[index]||{};if(tensor2.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, +2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(fromConfig!=null){let customObjectsCombined={};for(let key of Object.keys(_GLOBAL_CUSTOM_OBJECTS))customObjectsCombined[key]=_GLOBAL_CUSTOM_OBJECTS[key];for(let key of Object.keys(customObjects))customObjectsCombined[key]=customObjects[key];let nestedConfig=config2.config;nestedConfig.customObjects=customObjectsCombined;let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];convertNDArrayScalarsInConfig(config2.config);let returnObj=fromConfig(cls,config2.config,customObjects,fastWeightInit);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}else{let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];let returnObj=new cls(config2.config);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}}}function numberCompare(a,b){return ab?1:0}function reverseNumberCompare(a,b){return-1*numberCompare(a,b)}function unique4(xs){if(xs==null)return xs;let out=[];for(let x of xs)out.indexOf(x)===-1&&out.push(x);return out}function isObjectEmpty(obj){if(obj==null)throw new ValueError(`Invalid value in obj: ${JSON.stringify(obj)}`);for(let key in obj)if(obj.hasOwnProperty(key))return!1;return!0}function checkStringTypeUnionValue(values,label,value){if(value!=null&&values.indexOf(value)<0)throw new ValueError(`${value} is not a valid ${label}. Valid values are ${values} or null/undefined.`)}function checkArrayTypeAndLength(x,expectedType,minLength=0,maxLength=Infinity){return assert2(minLength>=0),assert2(maxLength>=minLength),Array.isArray(x)&&x.length>=minLength&&x.length<=maxLength&&x.every(e=>typeof e===expectedType)}function assertPositiveInteger(value,name){Array.isArray(value)?(util_exports.assert(value.length>0,()=>`${name} is unexpectedly an empty array.`),value.forEach((v,i)=>assertPositiveInteger(v,`element ${i+1} of ${name}`))):util_exports.assert(Number.isInteger(value)&&value>0,()=>`Expected ${name} to be a positive integer, but got ${formatAsFriendlyString(value)}.`)}function formatAsFriendlyString(value){return value===null?"null":Array.isArray(value)?"["+value.map(v=>formatAsFriendlyString(v)).join(",")+"]":typeof value=="string"?`"${value}"`:`${value}`}function debounce(f,waitMs){let lastTime=util_exports.now(),lastResult;return(...args)=>{let now22=util_exports.now();return now22-lastTimesqrt(sum2(mul(w,w),axis,!0)))}var Constraint=class extends serialization_exports.Serializable{getConfig(){return{}}},MaxNorm=class extends Constraint{constructor(args){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=clipByValue(norms,0,this.maxValue);return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};MaxNorm.className="MaxNorm";serialization_exports.registerClass(MaxNorm);var UnitNorm=class extends Constraint{constructor(args){super();this.defaultAxis=0,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>div(w,add2(epsilon2(),calcL2Norms(w,this.axis))))}getConfig(){return{axis:this.axis}}};UnitNorm.className="UnitNorm";serialization_exports.registerClass(UnitNorm);var NonNeg=class extends Constraint{apply(w){return relu(w)}};NonNeg.className="NonNeg";serialization_exports.registerClass(NonNeg);var MinMaxNorm=class extends Constraint{constructor(args){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=args.minValue!=null?args.minValue:this.defaultMinValue,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.rate=args.rate!=null?args.rate:this.defaultRate,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=add2(mul(this.rate,clipByValue(norms,this.minValue,this.maxValue)),mul(1-this.rate,norms));return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};MinMaxNorm.className="MinMaxNorm";serialization_exports.registerClass(MinMaxNorm);var CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function serializeConstraint(constraint){return serializeKerasObject(constraint)}function deserializeConstraint(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"constraint")}function getConstraint(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config2={className:identifier in CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP?CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeConstraint(config2)}else return identifier instanceof Constraint?identifier:deserializeConstraint(identifier)}function maxNorm(args){return new MaxNorm(args)}function unitNorm(args){return new UnitNorm(args)}function nonNeg(){return new NonNeg}function minMaxNorm(config2){return new MinMaxNorm(config2)}var exports_initializers_exports={};__export2(exports_initializers_exports,{constant:()=>constant,glorotNormal:()=>glorotNormal,glorotUniform:()=>glorotUniform,heNormal:()=>heNormal,heUniform:()=>heUniform,identity:()=>identity4,leCunNormal:()=>leCunNormal,leCunUniform:()=>leCunUniform,ones:()=>ones3,orthogonal:()=>orthogonal,randomNormal:()=>randomNormal3,randomUniform:()=>randomUniform2,truncatedNormal:()=>truncatedNormal2,varianceScaling:()=>varianceScaling,zeros:()=>zeros3});var VALID_DATA_FORMAT_VALUES=["channelsFirst","channelsLast"],VALID_INTERPOLATION_FORMAT_VALUES=["nearest","bilinear"],VALID_PADDING_MODE_VALUES=["valid","same","causal"],VALID_POOL_MODE_VALUES=["max","avg"],VALID_BIDIRECTIONAL_MERGE_MODES=["sum","mul","concat","ave"],nameMap=new Map;function checkDataFormat(value){checkStringTypeUnionValue(VALID_DATA_FORMAT_VALUES,"DataFormat",value)}function checkInterpolationFormat(value){checkStringTypeUnionValue(VALID_INTERPOLATION_FORMAT_VALUES,"InterpolationFormat",value)}function checkPaddingMode(value){checkStringTypeUnionValue(VALID_PADDING_MODE_VALUES,"PaddingMode",value)}function checkPoolMode(value){checkStringTypeUnionValue(VALID_POOL_MODE_VALUES,"PoolMode",value)}var _nameScopeStack=[],_nameScopeDivider="/";function nameScope(name,fn){_nameScopeStack.push(name);try{let val=fn();return _nameScopeStack.pop(),val}catch(e){throw _nameScopeStack.pop(),e}}function currentNameScopePrefix(){return _nameScopeStack.length===0?"":_nameScopeStack.join(_nameScopeDivider)+_nameScopeDivider}function getScopedTensorName(tensorName){if(!isValidTensorName(tensorName))throw new Error("Not a valid tensor name: '"+tensorName+"'");return currentNameScopePrefix()+tensorName}function getUniqueTensorName(scopedName){if(!isValidTensorName(scopedName))throw new Error("Not a valid tensor name: '"+scopedName+"'");nameMap.has(scopedName)||nameMap.set(scopedName,0);let index=nameMap.get(scopedName);if(nameMap.set(scopedName,nameMap.get(scopedName)+1),index>0){let result=`${scopedName}_${index}`;return nameMap.set(result,1),result}else return scopedName}var tensorNameRegex=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function isValidTensorName(name){return!!name.match(tensorNameRegex)}function isInteger(x){return x===parseInt(x.toString(),10)}function arrayProd(array2,begin,end){begin==null&&(begin=0),end==null&&(end=array2.length);let prod5=1;for(let i=begin;i{if(x.shape.length!==2)throw new ValueError(`repeat() expects a rank-2 tensor, but received a rank-${x.shape.length} tensor.`);let y=expandDims5(x,1);return tile5(y,[1,n,1])})}function flatten2(x){let newShape=[arrayProd(x.shape)];return x.reshape(newShape)}function batchFlatten(x){if(x.rank<=1)throw new ValueError(`batchFlatten requires a minimum rank of 2. Got rank: ${x.rank}.`);let newShape=[x.shape[0],arrayProd(x.shape,1)];return x.reshape(newShape)}function sliceAlongFirstAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[start,0],[size,array2.shape[1]]);case 3:return slice3d(array2,[start,0,0],[size,array2.shape[1],array2.shape[2]]);case 4:return slice4d(array2,[start,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3]]);case 5:return slice(array2,[start,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4]]);case 6:return slice(array2,[start,0,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4],array2.shape[5]]);default:throw new ValueError(`sliceAlongFirstAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongLastAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[0,start],[array2.shape[0],size]);case 3:return slice3d(array2,[0,0,start],[array2.shape[0],array2.shape[1],size]);case 4:return slice4d(array2,[0,0,0,start],[array2.shape[0],array2.shape[1],array2.shape[2],size]);default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongAxis(array2,start,size,axis){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 3:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice3d(array2,[0,start,0],[array2.shape[0],size,array2.shape[2]]);case 3:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 4:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice4d(array2,[0,start,0,0],[array2.shape[0],size,array2.shape[2],array2.shape[3]]);case 3:return slice4d(array2,[0,0,start,0],[array2.shape[0],array2.shape[1],size,array2.shape[3]]);case 4:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function concatenate(tensors,axis=-1){let rank;return axis<0&&(rank=tensors[0].rank,rank!==0?axis=rank:axis=0),axis===tensors[0].rank&&(axis=-1),concat(tensors,axis)}function concatAlongFirstAxis(a,b){switch(a.rank){case 1:return concat1d([a,b]);case 2:return concat2d([a,b],0);case 3:return concat3d([a,b],0);case 4:return concat4d([a,b],0);default:throw new ValueError(`concatAlongFirstAxis() received an unsupported tensor rank: ${a.rank}`)}}function tile5(x,n){if(Array.isArray(n)||(n=[n]),x.rank!==n.length)throw new ValueError(`The length of input n (${n.length}) does not match the number of dimensions in input x (${x.rank})`);return tile(x,n)}function randomNormal2(shape,mean4=0,stddev=1,dtype,seed){return randomNormal(shape,mean4,stddev,dtype,seed)}function dot2(a,b,activation2,bias){if(a.rank<2||b.rank<2)throw new NotImplementedError(`dot requires both inputs to be rank >= 2 but got x shape = ${a.shape} and y shape = ${b.shape}`);if(b.rank>=3){let xLastDim=a.shape.slice(-1)[0],ySecondLastDim=b.shape.slice(-2)[0];if(xLastDim!==ySecondLastDim)throw new NotImplementedError(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${a.shape} and y shape = ${b.shape}`)}if(a.rank===2&&b.rank===2){let transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2})}else{let aFirstDims=a.shape.slice(),aLastDim=aFirstDims.pop();a=a.reshape([-1,aLastDim]);let bShape=b.shape.slice(),bLastDim=bShape.pop(),ySecondLastDim=bShape.pop(),yOtherDims=[...bShape,bLastDim],perm=Array.from({length:b.rank},(_,i)=>i===0?b.rank-2:i<=b.rank-2?i-1:i);b=b.transpose(perm).reshape([ySecondLastDim,-1]);let outputShape=[...aFirstDims,...yOtherDims],transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2}).reshape(outputShape)}}function gather2(reference,indices,axis){return tidy(()=>(Array.isArray(indices)?indices=tensor1d(indices,"int32"):indices=indices.toInt(),gather(reference,indices,axis)))}function square3(x){return mul(x,x)}function reshapeBias(xRank,bias,dataFormat){let biasShape=bias.shape;if(bias.rank!==1&&bias.rank!==xRank)throw new ValueError(`Unexpected bias dimensions: ${bias.rank}; expected it to be 1 or ${xRank}`);if(xRank===5){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1,1]):bias.reshape([1,biasShape[3],biasShape[0],biasShape[1],biasShape[2]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===4){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1]):bias.reshape([1,biasShape[2],biasShape[0],biasShape[1]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===3){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1]):bias.reshape([1,biasShape[1],biasShape[0]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank<3)return bias;throw new ValueError(`Unsupported input rank by biasAdd: ${bias.rank}`)}function biasAdd(x,bias,dataFormat){return tidy(()=>(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.add(reshapeBias(x.rank,bias,dataFormat))))}function elu4(x,alpha=1){if(alpha!==1)throw new NotImplementedError(`Support for alpha values other than 1 (${alpha}) is not implemented yet.`);return elu(x)}function softsign(x){return tidy(()=>div(x,abs(x).add(1)))}function dropout2(x,level,noiseShape,seed){return tidy(()=>dropout(x,level,noiseShape,seed))}function hardSigmoid(x){return tidy(()=>{let y=add2(.5,mul(.2,x));return clipByValue(y,0,1)})}function inTrainPhase(x,alt,training=!1){return training?x():alt()}var VALID_FAN_MODE_VALUES=["fanIn","fanOut","fanAvg"],VALID_DISTRIBUTION_VALUES=["normal","uniform","truncatedNormal"];function checkFanMode(value){checkStringTypeUnionValue(VALID_FAN_MODE_VALUES,"FanMode",value)}function checkDistribution(value){checkStringTypeUnionValue(VALID_DISTRIBUTION_VALUES,"Distribution",value)}var Initializer=class extends serialization_exports.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Zeros=class extends Initializer{apply(shape,dtype){return zeros(shape,dtype)}};Zeros.className="Zeros";serialization_exports.registerClass(Zeros);var Ones=class extends Initializer{apply(shape,dtype){return ones2(shape,dtype)}};Ones.className="Ones";serialization_exports.registerClass(Ones);var Constant=class extends Initializer{constructor(args){super();if(typeof args!="object")throw new ValueError(`Expected argument of type ConstantConfig but got ${args}`);if(args.value===void 0)throw new ValueError(`config must have value set but got ${args}`);this.value=args.value}apply(shape,dtype){return tidy(()=>mul(scalar(this.value),ones2(shape,dtype)))}getConfig(){return{value:this.value}}};Constant.className="Constant";serialization_exports.registerClass(Constant);var RandomUniform=class extends Initializer{constructor(args){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=args.minval||this.DEFAULT_MINVAL,this.maxval=args.maxval||this.DEFAULT_MAXVAL,this.seed=args.seed}apply(shape,dtype){return randomUniform(shape,this.minval,this.maxval,dtype)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};RandomUniform.className="RandomUniform";serialization_exports.registerClass(RandomUniform);var RandomNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`randomNormal does not support dType ${dtype}.`);return randomNormal2(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};RandomNormal.className="RandomNormal";serialization_exports.registerClass(RandomNormal);var TruncatedNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`truncatedNormal does not support dType ${dtype}.`);return truncatedNormal(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};TruncatedNormal.className="TruncatedNormal";serialization_exports.registerClass(TruncatedNormal);var Identity2=class extends Initializer{constructor(args){super();this.gain=args.gain!=null?args.gain:1}apply(shape,dtype){return tidy(()=>{if(shape.length!==2||shape[0]!==shape[1])throw new ValueError("Identity matrix initializer can only be used for 2D square matrices.");return mul(this.gain,eye(shape[0]))})}getConfig(){return{gain:this.gain}}};Identity2.className="Identity";serialization_exports.registerClass(Identity2);function computeFans(shape,dataFormat="channelsLast"){let fanIn,fanOut;if(checkDataFormat(dataFormat),shape.length===2)fanIn=shape[0],fanOut=shape[1];else if([3,4,5].indexOf(shape.length)!==-1){if(dataFormat==="channelsFirst"){let receptiveFieldSize=arrayProd(shape,2);fanIn=shape[1]*receptiveFieldSize,fanOut=shape[0]*receptiveFieldSize}else if(dataFormat==="channelsLast"){let receptiveFieldSize=arrayProd(shape,0,shape.length-2);fanIn=shape[shape.length-2]*receptiveFieldSize,fanOut=shape[shape.length-1]*receptiveFieldSize}}else{let shapeProd=arrayProd(shape);fanIn=Math.sqrt(shapeProd),fanOut=Math.sqrt(shapeProd)}return[fanIn,fanOut]}var VarianceScaling=class extends Initializer{constructor(args){super();if(args.scale<0)throw new ValueError(`scale must be a positive float. Got: ${args.scale}`);this.scale=args.scale==null?1:args.scale,this.mode=args.mode==null?"fanIn":args.mode,checkFanMode(this.mode),this.distribution=args.distribution==null?"normal":args.distribution,checkDistribution(this.distribution),this.seed=args.seed}apply(shape,dtype){let fans=computeFans(shape),fanIn=fans[0],fanOut=fans[1],scale2=this.scale;if(this.mode==="fanIn"?scale2/=Math.max(1,fanIn):this.mode==="fanOut"?scale2/=Math.max(1,fanOut):scale2/=Math.max(1,(fanIn+fanOut)/2),this.distribution==="normal"){let stddev=Math.sqrt(scale2);if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`${this.getClassName()} does not support dType ${dtype}.`);return truncatedNormal(shape,0,stddev,dtype,this.seed)}else{let limit=Math.sqrt(3*scale2);return randomUniform(shape,-limit,limit,dtype)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};VarianceScaling.className="VarianceScaling";serialization_exports.registerClass(VarianceScaling);var GlorotUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotUniform.className="GlorotUniform";serialization_exports.registerClass(GlorotUniform);var GlorotNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotNormal.className="GlorotNormal";serialization_exports.registerClass(GlorotNormal);var HeNormal=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeNormal.className="HeNormal";serialization_exports.registerClass(HeNormal);var HeUniform=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeUniform.className="HeUniform";serialization_exports.registerClass(HeUniform);var LeCunNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunNormal.className="LeCunNormal";serialization_exports.registerClass(LeCunNormal);var LeCunUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunUniform.className="LeCunNormal";serialization_exports.registerClass(LeCunUniform);var Orthogonal=class extends Initializer{constructor(args){super();if(this.DEFAULT_GAIN=1,this.gain=args.gain==null?this.DEFAULT_GAIN:args.gain,this.seed=args.seed,this.seed!=null)throw new NotImplementedError("Random seed is not implemented for Orthogonal Initializer yet.")}apply(shape,dtype){return tidy(()=>{if(shape.length<2)throw new NotImplementedError("Shape must be at least 2D.");shape[0]*shape[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${shape[0]*shape[1]}) elements: Slowness may result.`);let normalizedShape=shape[0]>shape[1]?[shape[1],shape[0]]:shape,a=randomNormal2(normalizedShape,0,1,"float32"),q=linalg.gramSchmidt(a);return shape[0]>shape[1]&&(q=q.transpose()),mul(this.gain,q)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Orthogonal.className="Orthogonal";serialization_exports.registerClass(Orthogonal);var INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function deserializeInitializer(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"initializer")}function serializeInitializer(initializer){return serializeKerasObject(initializer)}function getInitializer(identifier){if(typeof identifier=="string"){let className=identifier in INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier;if(className==="GlorotNormal")return new GlorotNormal;if(className==="GlorotUniform")return new GlorotUniform;if(className==="HeNormal")return new HeNormal;if(className==="HeUniform")return new HeUniform;if(className==="LeCunNormal")return new LeCunNormal;if(className==="LeCunUniform")return new LeCunUniform;{let config2={};return config2.className=className,config2.config={},deserializeInitializer(config2)}}else return identifier instanceof Initializer?identifier:deserializeInitializer(identifier)}function zeros3(){return new Zeros}function ones3(){return new Ones}function constant(args){return new Constant(args)}function randomUniform2(args){return new RandomUniform(args)}function randomNormal3(args){return new RandomNormal(args)}function truncatedNormal2(args){return new TruncatedNormal(args)}function identity4(args){return new Identity2(args)}function varianceScaling(config2){return new VarianceScaling(config2)}function glorotUniform(args){return new GlorotUniform(args)}function glorotNormal(args){return new GlorotNormal(args)}function heNormal(args){return new HeNormal(args)}function heUniform(args){return new HeUniform(args)}function leCunNormal(args){return new LeCunNormal(args)}function leCunUniform(args){return new LeCunUniform(args)}function orthogonal(args){return new Orthogonal(args)}var exports_layers_exports={};__export2(exports_layers_exports,{Layer:()=>Layer,RNN:()=>RNN,RNNCell:()=>RNNCell,activation:()=>activation,add:()=>add4,alphaDropout:()=>alphaDropout,average:()=>average,averagePooling1d:()=>averagePooling1d,averagePooling2d:()=>averagePooling2d,averagePooling3d:()=>averagePooling3d,avgPool1d:()=>avgPool1d,avgPool2d:()=>avgPool2d,avgPool3d:()=>avgPool3d2,avgPooling1d:()=>avgPooling1d,avgPooling2d:()=>avgPooling2d,avgPooling3d:()=>avgPooling3d,batchNormalization:()=>batchNormalization2,bidirectional:()=>bidirectional,concatenate:()=>concatenate2,conv1d:()=>conv1d2,conv2d:()=>conv2d5,conv2dTranspose:()=>conv2dTranspose2,conv3d:()=>conv3d2,convLstm2d:()=>convLstm2d,convLstm2dCell:()=>convLstm2dCell,cropping2D:()=>cropping2D,dense:()=>dense,depthwiseConv2d:()=>depthwiseConv2d5,dot:()=>dot3,dropout:()=>dropout3,elu:()=>elu5,embedding:()=>embedding,flatten:()=>flatten3,gaussianDropout:()=>gaussianDropout,gaussianNoise:()=>gaussianNoise,globalAveragePooling1d:()=>globalAveragePooling1d,globalAveragePooling2d:()=>globalAveragePooling2d,globalMaxPool1d:()=>globalMaxPool1d,globalMaxPool2d:()=>globalMaxPool2d,globalMaxPooling1d:()=>globalMaxPooling1d,globalMaxPooling2d:()=>globalMaxPooling2d,gru:()=>gru,gruCell:()=>gruCell,input:()=>input,inputLayer:()=>inputLayer,layerNormalization:()=>layerNormalization,leakyReLU:()=>leakyReLU,lstm:()=>lstm,lstmCell:()=>lstmCell,masking:()=>masking,maxPool1d:()=>maxPool1d,maxPool2d:()=>maxPool2d,maxPooling1d:()=>maxPooling1d,maxPooling2d:()=>maxPooling2d,maxPooling3d:()=>maxPooling3d,maximum:()=>maximum4,minimum:()=>minimum4,multiply:()=>multiply3,permute:()=>permute,prelu:()=>prelu5,reLU:()=>reLU,repeatVector:()=>repeatVector,reshape:()=>reshape5,rnn:()=>rnn2,separableConv2d:()=>separableConv2d2,simpleRNN:()=>simpleRNN,simpleRNNCell:()=>simpleRNNCell,softmax:()=>softmax5,spatialDropout1d:()=>spatialDropout1d,stackedRNNCells:()=>stackedRNNCells,thresholdedReLU:()=>thresholdedReLU,timeDistributed:()=>timeDistributed,upSampling2d:()=>upSampling2d,zeroPadding2d:()=>zeroPadding2d});var _nextUniqueTensorId=0;function getNextUniqueTensorId(){return _nextUniqueTensorId++}var _uidPrefixes={};function getUid(prefix=""){return prefix in _uidPrefixes||(_uidPrefixes[prefix]=0),_uidPrefixes[prefix]+=1,prefix+_uidPrefixes[prefix].toString()}function isArrayOfShapes(x){return Array.isArray(x)&&Array.isArray(x[0])}function normalizeShapeList(x){return x.length===0?[]:Array.isArray(x[0])?x:[x]}function getExactlyOneTensor(xs){let x;if(Array.isArray(xs)){if(xs.length!==1)throw new ValueError(`Expected Tensor length to be 1; got ${xs.length}`);x=xs[0]}else x=xs;return x}function getExactlyOneShape(shapes){if(Array.isArray(shapes)&&Array.isArray(shapes[0])){if(shapes.length===1)return shapes=shapes,shapes[0];throw new ValueError(`Expected exactly 1 Shape; got ${shapes.length}`)}else return shapes}function countParamsInWeights(weights){let count2=0;for(let weight of weights)weight.shape.length===0?count2+=1:count2+=weight.shape.reduce((a,b)=>a*b);return count2}var DEFAULT_VARIABLE_NAME_PREFIX="Variable",LayerVariable=class{constructor(val,dtype="float32",name=DEFAULT_VARIABLE_NAME_PREFIX,trainable=!0,constraint=null){this.dtype=dtype==null?"float32":dtype,this.shape=val.shape,this.id=getNextUniqueTensorId(),name=name==null?DEFAULT_VARIABLE_NAME_PREFIX:name,this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName),this.trainable_=trainable,this.constraint=constraint,this.val=variable(val,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(newVal){return this.assertNotDisposed(),checkShapesMatch(this.val,newVal),this.val.id!==newVal.id&&(this.val.assign(newVal),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(trainable){this.trainable_=trainable,this.val.trainable=trainable}};function checkShapesMatch(x,y){if(x.shape.toString()!==y.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(x.shape)+" vs. "+JSON.stringify(y.shape))}function batchGetValue(xs){return xs.map(x=>x.read())}function batchSetValue(variablesAndValues){variablesAndValues.forEach(variableAndValue=>{variableAndValue[0].write(variableAndValue[1])})}var InputSpec=class{constructor(args){this.dtype=args.dtype,this.shape=args.shape,args.shape!=null?this.ndim=args.shape.length:this.ndim=args.ndim,this.maxNDim=args.maxNDim,this.minNDim=args.minNDim,this.axes=args.axes||{}}},SymbolicTensor=class{constructor(dtype,shape,sourceLayer,inputs,callArgs,name,outputTensorIndex){this.dtype=dtype,this.shape=shape,this.sourceLayer=sourceLayer,this.inputs=inputs,this.callArgs=callArgs,this.outputTensorIndex=outputTensorIndex,this.id=getNextUniqueTensorId(),name!=null&&(this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName)),this.rank=shape.length}},_nextNodeID=0,Node=class{constructor(args,callArgs){this.callArgs=callArgs,this.id=_nextNodeID++,this.outboundLayer=args.outboundLayer,this.inboundLayers=args.inboundLayers,this.nodeIndices=args.nodeIndices,this.tensorIndices=args.tensorIndices,this.inputTensors=args.inputTensors,this.outputTensors=args.outputTensors,this.inputMasks=args.inputMasks,this.outputMasks=args.outputMasks,this.inputShapes=args.inputShapes,this.outputShapes=args.outputShapes;for(let layer of args.inboundLayers)layer!=null&&layer.outboundNodes.push(this);args.outboundLayer.inboundNodes.push(this)}getConfig(){let inboundNames=[];for(let layer of this.inboundLayers)layer!=null?inboundNames.push(layer.name):inboundNames.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:inboundNames,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},_nextLayerID=0,Layer=class extends serialization_exports.Serializable{constructor(args={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=_nextLayerID++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let name=args.name;if(!name){let prefix=this.getClassName();name=toSnakeCase(prefix)+"_"+getUid(prefix)}if(this.name=name,this.trainable_=args.trainable==null?!0:args.trainable,args.inputShape!=null||args.batchInputShape!=null){let batchInputShape;if(args.batchInputShape!=null)batchInputShape=args.batchInputShape;else if(args.inputShape!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),batchInputShape=[batchSize].concat(args.inputShape)}this.batchInputShape=batchInputShape;let dtype=args.dtype;dtype==null&&(dtype=args.inputDType),dtype==null&&(dtype="float32"),this.dtype=dtype}args.weights!=null?this.initialWeights=args.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(layer,nodeIndex){return layer.name+"_ib-"+nodeIndex.toString()}getNodeAtIndex(nodeIndex,attrName){if(this.inboundNodes.length===0)throw new RuntimeError(`The layer has never been called and thus has no defined ${attrName}.`);if(this.inboundNodes.length<=nodeIndex)throw new ValueError(`Asked to get ${attrName} at node ${nodeIndex}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[nodeIndex]}getInputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"input").inputTensors)}getOutputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} is not connected, no input to return.`);return singletonOrArray(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return singletonOrArray(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(lossFn=>lossFn())}get updates(){return this._updates}get built(){return this._built}set built(built){this._built=built}get trainable(){return this.trainable_}set trainable(trainable){this._trainableWeights.forEach(w=>w.trainable=trainable),this.trainable_=trainable}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(w=>w.trainable):[]}set trainableWeights(weights){this._trainableWeights=weights}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(w=>!w.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(weights){this._nonTrainableWeights=weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(inputs){if(inputs=toList(inputs),this.inputSpec==null||this.inputSpec.length===0)return;let inputSpec=toList(this.inputSpec);if(inputs.length!==inputSpec.length)throw new ValueError(`Layer ${this.name} expects ${inputSpec.length} inputs, but it received ${inputs.length} input tensors. Input received: ${inputs}`);for(let inputIndex=0;inputIndexspec.maxNDim)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected max_ndim=${spec.maxNDim}, found ndim=${ndim}`);if(spec.minNDim!=null&&ndim=0?xShape[axis]:xShape[xShape.length+axis];if(value!=null&&[value,null].indexOf(xShapeAtAxis)===-1)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected axis ${axis} of input shape to have value ${value} but got shape ${xShape}.`)}}if(spec.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(inputs);let inputShapes=[];for(let xElem of toList(inputs))inputShapes.push(xElem.shape);this.build(singletonOrArray(inputShapes)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&noneAreSymbolic&&(this._refCount=1)}if(this.assertInputCompatibility(inputs),noneAreSymbolic){let output=this.call(inputs,kwargs),outputList=toList(output),outputListCopy=[];for(let x of outputList)inputsList.indexOf(x)!==-1&&(x=x.clone()),outputListCopy.push(x);if(output=singletonOrArray(outputListCopy),this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}else{let inputShape=collectInputShape(inputs),outputShape=this.computeOutputShape(inputShape),output,outputDType=guessOutputDType(inputs);if(this.warnOnIncompatibleInputShape(Array.isArray(inputs)?inputShape[0]:inputShape),outputShape!=null&&outputShape.length>0&&Array.isArray(outputShape[0])?output=outputShape.map((shape,index)=>new SymbolicTensor(outputDType,shape,this,toList(inputs),kwargs,this.name,index)):output=new SymbolicTensor(outputDType,outputShape,this,toList(inputs),kwargs,this.name),this.addInboundNode(inputs,output,null,null,inputShape,outputShape,kwargs),this._refCount++,this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}})}warnOnIncompatibleInputShape(inputShape){if(this.batchInputShape!=null)if(inputShape.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(inputShape)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let dimMismatch=!1;this.batchInputShape.forEach((dimension,i)=>{dimension!=null&&inputShape[i]!=null&&inputShape[i]!==dimension&&(dimMismatch=!0)}),dimMismatch&&console.warn(`The shape of the input tensor (${JSON.stringify(inputShape)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new AttributeError(`The layer ${this.name} has never been called and thus has no defined output shape.`);let allOutputShapes=[];for(let node of this.inboundNodes){let shapeString=JSON.stringify(node.outputShapes);allOutputShapes.indexOf(shapeString)===-1&&allOutputShapes.push(shapeString)}if(allOutputShapes.length===1){let outputShapes=this.inboundNodes[0].outputShapes;return Array.isArray(outputShapes)&&Array.isArray(outputShapes[0])&&outputShapes.length===1?outputShapes[0]:outputShapes}else throw new AttributeError(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new RuntimeError(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return countParamsInWeights(this.weights)}build(inputShape){this.built=!0}getWeights(trainableOnly=!1){return batchGetValue(trainableOnly?this.trainableWeights:this.weights)}setWeights(weights){tidy(()=>{let params=this.weights;if(params.length!==weights.length)throw new ValueError(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${weights.length}, but the layer was expecting ${params.length} weights. Provided weights: ${weights}...`);if(params.length===0)return;let weightValueTuples=[],paramValues=batchGetValue(params);for(let i=0;iregularizer.apply(weight.read())),trainable==null&&(trainable=!0),trainable?this._trainableWeights.push(weight):this._nonTrainableWeights.push(weight),weight}setFastWeightInitDuringBuild(value){this.fastWeightInitDuringBuild=value}addLoss(losses4){losses4==null||Array.isArray(losses4)&&losses4.length===0||(losses4=toList(losses4),this._losses!==void 0&&this._losses!==null&&this.losses.push(...losses4))}computeOutputShape(inputShape){return inputShape}computeMask(inputs,mask){if(!this.supportsMasking){if(mask!=null)if(Array.isArray(mask))mask.forEach(maskElement=>{if(maskElement!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return mask}addInboundNode(inputTensors,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes,kwargs=null){let inputTensorList=toList(inputTensors);outputTensors=toList(outputTensors),inputMasks=toList(inputMasks),outputMasks=toList(outputMasks),inputShapes=normalizeShapeList(inputShapes),outputShapes=normalizeShapeList(outputShapes);let inboundLayers=[],nodeIndices=[],tensorIndices=[];for(let x of inputTensorList)inboundLayers.push(x.sourceLayer),nodeIndices.push(x.nodeIndex),tensorIndices.push(x.tensorIndex);new Node({outboundLayer:this,inboundLayers,nodeIndices,tensorIndices,inputTensors:inputTensorList,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes},kwargs);for(let i=0;iweight.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let numDisposedVariables=0;return--this._refCount==0&&(numDisposedVariables=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables}}};function collectInputShape(inputTensors){inputTensors=toList(inputTensors);let shapes=[];for(let x of inputTensors)shapes.push(x.shape);return singletonOrArray(shapes)}function guessOutputDType(inputTensors){return"float32"}function getSourceInputs(tensor2,layer,nodeIndex){if((layer==null||nodeIndex!=null&&nodeIndex>0)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex),layer.inboundNodes.length===0)return[tensor2];{let node=layer.inboundNodes[nodeIndex];if(node.inboundLayers.length===0)return node.inputTensors;{let sourceTensors=[];for(let i=0;i0){let values=await Promise.all(promises);for(let i=0;iadd2(this.totals[key],mul(value,batchSize)));this.totals[key]=total,oldTotalsToDispose!=null&&oldTotalsToDispose.dispose()}}}async onEpochEnd(epoch,logs){if(logs!=null)for(let key of this.params.metrics)this.totals[key]!=null&&(typeof this.totals[key]=="number"?logs[key]=this.totals[key]/this.seen:tidy(()=>{let log5=mul(div(1,this.seen),this.totals[key]);logs[key]=log5,this.totals[key].dispose(),keep(logs[key])}))}},History=class extends BaseCallback{async onTrainBegin(logs){this.epoch=[],this.history={}}async onEpochEnd(epoch,logs){logs==null&&(logs={}),this.epoch.push(epoch);for(let key in logs)this.history[key]==null&&(this.history[key]=[]),this.history[key].push(logs[key])}async syncData(){let promises=[],keys=[],indices=[];for(let key in this.history){let valueArray=this.history[key];for(let i=0;inew CustomCallback(callbackConfig,yieldEvery))}var CallbackConstructorRegistry=class{constructor(){}static registerCallbackConstructor(verbosityLevel,callbackConstructor){util_exports.assert(verbosityLevel>=0&&Number.isInteger(verbosityLevel),()=>`Verbosity level is expected to be an integer >= 0, but got ${verbosityLevel}`),CallbackConstructorRegistry.checkForDuplicate(callbackConstructor),CallbackConstructorRegistry.constructors[verbosityLevel]==null&&(CallbackConstructorRegistry.constructors[verbosityLevel]=[]),CallbackConstructorRegistry.constructors[verbosityLevel].push(callbackConstructor)}static checkForDuplicate(callbackConstructor){for(let levelName in CallbackConstructorRegistry.constructors)CallbackConstructorRegistry.constructors[+levelName].forEach(ctor=>{if(ctor===callbackConstructor)throw new ValueError("Duplicate callback constructor.")})}static clear(){CallbackConstructorRegistry.constructors={}}static createCallbacks(verbosityLevel){let constructors=[];for(let levelName in CallbackConstructorRegistry.constructors){let level=+levelName;verbosityLevel>=level&&constructors.push(...CallbackConstructorRegistry.constructors[level])}return constructors.map(ctor=>new ctor)}};CallbackConstructorRegistry.constructors={};function configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics){let history=new History,actualCallbacks=[new BaseLogger,...CallbackConstructorRegistry.createCallbacks(verbose)];callbacks2!=null&&actualCallbacks.push(...callbacks2),actualCallbacks.push(history);let callbackList=new CallbackList(actualCallbacks);return callbackList.setParams({epochs,initialEpoch,samples:numTrainSamples,steps:stepsPerEpoch,batchSize,verbose,doValidation,metrics:callbackMetrics}),{callbackList,history}}function deserialize(config2,customObjects={},fastWeightInit=!1){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"layer",fastWeightInit)}function l2Normalize(x,axis){return tidy(()=>{x.dtype!=="float32"&&(x=x.asType("float32"));let squareSum=sum2(square3(x),axis,!0),epsilonTensor=fill(squareSum.shape,epsilon2()),norm2=sqrt(maximum(squareSum,epsilonTensor));return div(x,norm2)})}function meanSquaredError2(yTrue,yPred){return tidy(()=>mean(square3(sub(yPred,yTrue)),-1))}function meanAbsoluteError(yTrue,yPred){return tidy(()=>mean(abs(sub(yPred,yTrue)),-1))}function meanAbsolutePercentageError(yTrue,yPred){return tidy(()=>{let diff=sub(yTrue,yPred),clippedTrue=clipByValue(abs(yTrue),epsilon2(),Number.MAX_VALUE),absResult=abs(div(diff,clippedTrue));return mul(100,mean(absResult,-1))})}function meanSquaredLogarithmicError(yTrue,yPred){return tidy(()=>{let clippedPred=clipByValue(yPred,epsilon2(),Number.MAX_VALUE),firstLog=log2(add2(1,clippedPred)),clippedTrue=clipByValue(yTrue,epsilon2(),Number.MAX_VALUE),secondLog=log2(add2(1,clippedTrue));return mean(square3(sub(firstLog,secondLog)),-1)})}function squaredHinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(square3(maxResult),-1)})}function hinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(maxResult,-1)})}function categoricalHinge(yTrue,yPred){return tidy(()=>{let pos=sum2(mul(yTrue,yPred),-1),neg4=max(mul(sub(1,yTrue),yPred),-1);return maximum(0,add2(1,sub(neg4,pos)))})}function logcosh(yTrue,yPred){return tidy(()=>{let log222=Math.log(2),predictionDiff=sub(yPred,yTrue),logcoshResult=sub(add2(predictionDiff,softplus(mul(-2,predictionDiff))),log222);return mean(logcoshResult,-1)})}function categoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{if(fromLogits)output=softmax(output);else{let outputSum=sum2(output,output.shape.length-1,!0);output=div(output,outputSum)}return output=clipByValue(output,epsilon2(),1-epsilon2()),neg(sum2(mul(target.toFloat(),log2(output)),output.shape.length-1))})}function sparseCategoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{let flatTarget=floor(flatten2(target)).toInt();output=clipByValue(output,epsilon2(),1-epsilon2());let outputShape=output.shape,oneHotTarget=oneHot(flatTarget,outputShape[outputShape.length-1]).reshape(outputShape);return categoricalCrossentropy(oneHotTarget,output,fromLogits)})}function sigmoidCrossEntropyWithLogits(labels,logits){if(!util_exports.arraysEqual(labels.shape,logits.shape))throw new ValueError(`logits and labels must have the same shape, but got shapes ${JSON.stringify(labels.shape)} and ${JSON.stringify(logits.shape)}`);return tidy(()=>{let reluLogits=logits.relu(),negAbsLogits=logits.abs().neg();return reluLogits.sub(logits.mul(labels)).add(negAbsLogits.exp().log1p())})}function binaryCrossentropy(yTrue,yPred){return tidy(()=>{let y;return y=clipByValue(yPred,epsilon2(),1-epsilon2()),y=log2(div(y,sub(1,y))),mean(sigmoidCrossEntropyWithLogits(yTrue,y),-1)})}function kullbackLeiblerDivergence(yTrue,yPred){return tidy(()=>{let clippedTrue=clipByValue(yTrue,epsilon2(),1),clippedPred=clipByValue(yPred,epsilon2(),1);return sum2(mul(yTrue,log2(div(clippedTrue,clippedPred))),-1)})}function poisson(yTrue,yPred){return tidy(()=>{let logPred=log2(add2(epsilon2(),yPred));return mean(sub(yPred,mul(yTrue,logPred)),-1)})}function cosineProximity(yTrue,yPred){return tidy(()=>{let trueNormalized=l2Normalize(yTrue,-1),predNormalized=l2Normalize(yPred,-1),trueXPred=mul(trueNormalized,predNormalized);return neg(sum2(trueXPred,-1))})}var lossesMap={meanSquaredError:meanSquaredError2,meanAbsoluteError,meanAbsolutePercentageError,meanSquaredLogarithmicError,squaredHinge,hinge,categoricalHinge,logcosh,categoricalCrossentropy,sparseCategoricalCrossentropy,binaryCrossentropy,kullbackLeiblerDivergence,poisson,cosineProximity};function get(identifierOrFn){if(typeof identifierOrFn=="string"){if(identifierOrFn in lossesMap)return lossesMap[identifierOrFn];let errMsg=`Unknown loss ${identifierOrFn}`;throw identifierOrFn.toLowerCase().includes("softmaxcrossentropy")&&(errMsg=`Unknown loss ${identifierOrFn}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new ValueError(errMsg)}else return identifierOrFn}function binaryAccuracy(yTrue,yPred){return tidy(()=>{let threshold2=mul(.5,onesLike(yPred)),yPredThresholded=cast5(greater(yPred,threshold2),yTrue.dtype);return mean(equal(yTrue,yPredThresholded),-1)})}function categoricalAccuracy(yTrue,yPred){return tidy(()=>cast5(equal(argMax(yTrue,-1),argMax(yPred,-1)),"float32"))}function truePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(1)).sum().cast("float32"))}function falseNegatives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(0)).sum().cast("float32"))}function falsePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(0),yPred.equal(1)).sum().cast("float32"))}function precision(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fp=falsePositives(yTrue,yPred),denominator=tp.add(fp);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function recall(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fn=falseNegatives(yTrue,yPred),denominator=tp.add(fn);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function binaryCrossentropy2(yTrue,yPred){return binaryCrossentropy(yTrue,yPred)}function sparseCategoricalAccuracy(yTrue,yPred){return yTrue.rank===yPred.rank&&(yTrue=yTrue.squeeze([yTrue.rank-1])),yPred=yPred.argMax(-1),yPred.dtype!==yTrue.dtype&&(yPred=yPred.asType(yTrue.dtype)),equal(yTrue,yPred).asType("float32")}var mse=meanSquaredError2,MSE=meanSquaredError2,mae=meanAbsoluteError,MAE=meanAbsoluteError,mape=meanAbsolutePercentageError,MAPE=meanAbsolutePercentageError,categoricalCrossentropy2=categoricalCrossentropy,cosine=cosineProximity,sparseCategoricalCrossentropy2=sparseCategoricalCrossentropy,metricsMap={binaryAccuracy,categoricalAccuracy,precision,categoricalCrossentropy:categoricalCrossentropy2,sparseCategoricalCrossentropy:sparseCategoricalCrossentropy2,mse,MSE,mae,MAE,mape,MAPE,cosine};function get2(identifier){if(typeof identifier=="string"&&identifier in metricsMap)return metricsMap[identifier];if(typeof identifier!="string"&&identifier!=null)return identifier;throw new ValueError(`Unknown metric ${identifier}`)}function getLossOrMetricName(fn){if(assert2(fn!==null,`Unknown LossOrMetricFn ${fn}`),typeof fn=="string")return fn;{let fnName;for(let key of Object.keys(lossesMap))if(lossesMap[key]===fn){fnName=key;break}if(fnName!==void 0)return fnName;for(let key of Object.keys(metricsMap))if(metricsMap[key]===fn){fnName=key;break}return fnName!==void 0?fnName:fn.name}}function getOptimizer(identifier){let optimizerMap={Adagrad:()=>train.adagrad(.01),Adadelta:()=>train.adadelta(1,.95,epsilon2()),Adam:()=>train.adam(.001,.9,.999,epsilon2()),Adamax:()=>train.adamax(.002,.9,.999,epsilon2(),0),RMSProp:()=>train.rmsprop(.001,.9,0,epsilon2()),SGD:()=>train.sgd(.01)};if(optimizerMap.adagrad=optimizerMap.Adagrad,optimizerMap.adadelta=optimizerMap.Adadelta,optimizerMap.adam=optimizerMap.Adam,optimizerMap.adamax=optimizerMap.Adamax,optimizerMap.rmsprop=optimizerMap.RMSProp,optimizerMap.sgd=optimizerMap.SGD,identifier in optimizerMap)return optimizerMap[identifier]();throw new ValueError(`Unknown Optimizer ${identifier}`)}var MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH=1*1024*1024;function checkUserDefinedMetadata(userDefinedMetadata,modelName,checkSize=!1){if(userDefinedMetadata==null||typeof userDefinedMetadata!="object"||Object.getPrototypeOf(userDefinedMetadata)!==Object.prototype||!plainObjectCheck(userDefinedMetadata))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(checkSize){let out=JSON.stringify(userDefinedMetadata);out.length>MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH&&console.warn(`User-defined metadata of model "${modelName}" is too large in size (length=${out.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH}.`)}}function plainObjectCheck(x){if(x===null)return!0;if(typeof x=="object")if(Object.getPrototypeOf(x)===Object.prototype){let keys=Object.keys(x);for(let key of keys)if(typeof key!="string"||!plainObjectCheck(x[key]))return!1;return!0}else if(Array.isArray(x)){for(let item of x)if(!plainObjectCheck(item))return!1;return!0}else return!1;else{let xType=typeof x;return xType==="string"||xType==="number"||xType==="boolean"}}function printSummary(model2,lineLength,positions,printFn=console.log){let sequentialLike=isModelSequentialLike(model2),toDisplay=["Layer (type)","Output shape","Param #"];sequentialLike?(lineLength=lineLength||65,positions=positions||[.45,.85,1]):(lineLength=lineLength||98,positions=positions||[.33,.55,.67,1]),positions[positions.length-1]<=1&&(positions=positions.map(p2=>Math.floor(lineLength*p2)));let relevantNodes;if(!sequentialLike){toDisplay.push("Receives inputs"),relevantNodes=[];for(let depth in model2.nodesByDepth)relevantNodes.push(...model2.nodesByDepth[depth])}printFn("_".repeat(lineLength)),printRow(toDisplay,positions,printFn),printFn("=".repeat(lineLength));let layers=model2.layers;for(let i=0;i1||depthNodes.length===1&&depthNodes[0].inboundLayers.length>1){sequentialLike=!1;break}nodes.push(...depthNodes)}if(sequentialLike)for(let layer of model2.layers){let flag=!1;for(let node of layer.inboundNodes)if(nodes.indexOf(node)!==-1)if(flag){sequentialLike=!1;break}else flag=!0;if(!sequentialLike)break}return sequentialLike}function printRow(fields,positions,printFn=console.log){let line="";for(let i=0;i0&&(line=line.slice(0,line.length-1)+" "),line+=fields[i],line=line.slice(0,positions[i]),line+=" ".repeat(positions[i]-line.length);printFn(line)}function printLayerSummary(layer,positions,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let name=layer.name,className=layer.getClassName(),fields=[`${name} (${className})`,outputShape,layer.countParams().toString()];printRow(fields,positions,printFn)}function printLayerSummaryWithConnections(layer,positions,relevantNodes,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let connections=[];for(let node of layer.inboundNodes)if(!(relevantNodes!=null&&relevantNodes.length>0&&relevantNodes.indexOf(node)===-1))for(let i=0;it.name),finalOutputs=[],feedNames=feedDict.names();for(let outputName of outputNames)feedNames.indexOf(outputName)!==-1?finalOutputs.push(feedDict.getValue(outputName)):finalOutputs.push(null);probe!=null&&(probe.maxNumTensors=-Infinity,probe.minNumTensors=Infinity);let fetchAndFeedKey=outputNames.join(",")+"|"+feedDict.names().join(","),sorted,recipientCounts;if(cachedSorted[fetchAndFeedKey]==null){let out=getTopologicalSortAndRecipientCounts(fetchArray,feedDict);sorted=out.sorted,recipientCounts=out.recipientCounts,cachedSorted[fetchAndFeedKey]=sorted,cachedRecipientCounts[fetchAndFeedKey]=recipientCounts}sorted=cachedSorted[fetchAndFeedKey],recipientCounts={},training||Object.assign(recipientCounts,cachedRecipientCounts[fetchAndFeedKey]);let internalFeedDict=new FeedDict(feedDict);for(let i=0;iprobe.maxNumTensors&&(probe.maxNumTensors=numTensors),numTensors0,()=>"Expected at least one fetch, got none");let finalSorted=[],finalRecipientMap={};if(fetches.length===1){let out=getTopologicalSortAndRecipientCountsForOneFetch(fetches[0],feedDict);finalSorted=out.sorted,finalRecipientMap=out.recipientMap}else{let visited=new Set;for(let fetch3 of fetches){let{sorted,recipientMap}=getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict);for(let symbolicTensor of sorted)visited.has(symbolicTensor.name)||(finalSorted.push(symbolicTensor),visited.add(symbolicTensor.name));for(let name in recipientMap)finalRecipientMap[name]==null&&(finalRecipientMap[name]=new Set),recipientMap[name].forEach(recipient=>finalRecipientMap[name].add(recipient))}}return{sorted:finalSorted,recipientCounts:recipientMap2Counts(finalRecipientMap)}}function recipientMap2Counts(recipientMap){let recipientCounts={};for(let name in recipientMap)recipientCounts[name]=recipientMap[name].size;return recipientCounts}function getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict){let visited=new Set,sorted=[],recipientMap={};for(let key of feedDict.names())visited.add(key);let stack2=[],marks=[];for(stack2.push(fetch3);stack2.length>0;){let top=stack2[stack2.length-1];if(visited.has(top.name)){stack2.pop();continue}let topIsMarked=marks[marks.length-1]===stack2.length-1;if(top.inputs.length===0||topIsMarked)stack2.pop(),sorted.push(top),visited.add(top.name),topIsMarked&&marks.pop();else{marks.push(stack2.length-1);for(let input2 of top.inputs)recipientMap[input2.name]==null&&(recipientMap[input2.name]=new Set),recipientMap[input2.name].add(top.name),!visited.has(input2.name)&&stack2.push(input2)}}return{sorted,recipientMap}}function getNodeOutputs(fetch3){let layerOutputs;if(fetch3.sourceLayer.inboundNodes.length===1)layerOutputs=fetch3.sourceLayer.output;else{let nodeIndex=null;for(let i=0;ix.name)}`);unique4(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(x=>x.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let x of this.outputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;this.outputLayers.push(layer),this.outputLayersNodeIndices.push(nodeIndex),this.outputLayersTensorIndices.push(tensorIndex)}for(let x of this.inputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;assert2(nodeIndex===0,"input layer has >1 nodes"),assert2(tensorIndex===0,"input layer has >1 tensors"),this.inputLayers.push(layer),this.inputLayersNodeIndices.push(nodeIndex),this.inputLayersTensorIndices.push(tensorIndex)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let i=0;ix.shape),this.internalOutputShapes=this.outputs.map(x=>x.shape);let nodesDepths={},nodeIDToNode={},layersDepths={},layerIDToLayer={},layerIndices={},nodesInDecreasingDepth=[],buildMapOfGraph=(tensor2,finishedNodes2,nodesInProgress2,layer,nodeIndex,tensorIndex)=>{(layer==null||nodeIndex==null||tensorIndex==null)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex,tensorIndex=tensor2.tensorIndex);let node=layer.inboundNodes[nodeIndex];if(nodesInProgress2.indexOf(node)!==-1)throw new RuntimeError(`The tensor ${tensor2.name} at layer "${layer.name}" is part of a cycle.`);if(finishedNodes2.indexOf(node)!==-1)return;this.containerNodes.add(Container.nodeKey(layer,nodeIndex)),layer.id in layerIndices||(layerIndices[layer.id]=Object.keys(layerIndices).length),nodesInProgress2.indexOf(node)===-1&&nodesInProgress2.push(node);let numInboundLayers=node.inboundLayers.length;for(let i=0;i=0;)nodesInProgress2.splice(nodesInProgress2.indexOf(node),1);nodesInDecreasingDepth.push(node)},finishedNodes=[],nodesInProgress=[];for(let x of this.outputs)buildMapOfGraph(x,finishedNodes,nodesInProgress);let reversedNodesInDecreasingDepth=nodesInDecreasingDepth.slice().reverse();for(let node of reversedNodesInDecreasingDepth){nodeIDToNode[node.id]=node,node.id in nodesDepths||(nodesDepths[node.id]=0);let depth=nodesDepths[node.id],previousDepth=layersDepths[node.outboundLayer.id]==null?0:layersDepths[node.outboundLayer.id];depth=Math.max(depth,previousDepth),layersDepths[node.outboundLayer.id]=depth,layerIDToLayer[node.outboundLayer.id]=node.outboundLayer,nodesDepths[node.id]=depth;for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);this.layers=[];for(let depth of depthKeys){let layersForDepth=layersByDepth[depth];layersForDepth.sort((a,b)=>{let aIndex=layerIndices[a.id],bIndex=layerIndices[b.id];return aIndexbIndex?1:0});for(let layer of layersForDepth)layer instanceof Container&&this.internalContainerRefs.push(layer),this.layers.push(layer)}this.layersByDepth=layersByDepth,depthKeys=Object.keys(nodesByDepth).map(x=>parseInt(x,10)).sort(reverseNumberCompare);let computableTensors=this.inputs.slice(),layersWithCompleteInput=[];for(let depth of depthKeys)for(let node of nodesByDepth[depth]){let layer=node.outboundLayer;if(layer!=null){for(let x of node.inputTensors)if(computableTensors.indexOf(x)===-1)throw new RuntimeError(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${layer.name}". The following previous layers were accessed without issue: ${layersWithCompleteInput}`);for(let x of node.outputTensors)computableTensors.push(x);layersWithCompleteInput.push(layer.name)}}this.nodesByDepth=nodesByDepth;let allNames=this.layers.map(x=>x.name);for(let name of allNames){let numOccurrences=allNames.filter(x=>x===name).length;if(numOccurrences!==1)throw new RuntimeError(`The name "${name}" is used ${numOccurrences} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(allNames))}this.outboundNodes=[],this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(x=>null),outputMasks:this.outputs.map(x=>null),inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs.map(x=>x.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let result={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let layer of this.layers)result.numDisposedVariables+=layer.dispose().numDisposedVariables;for(let container of this.internalContainerRefs)result.numDisposedVariables+=container.dispose().numDisposedVariables}return result.refCountAfterDispose=this._refCount,result}get trainable(){return this.trainable_}set trainable(trainable){this.layers.forEach(layer=>{layer._trainableWeights.forEach(w=>w.trainable=trainable)}),this.trainable_=trainable}get trainableWeights(){if(this._trainableWeights.length>0)throw new ValueError("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let weights=[];for(let layer of this.layers)weights=weights.concat(layer.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let layer of this.layers)weights.push(...layer.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let layer of this.layers)trainableWeights.push(...layer.trainableWeights);return trainableWeights.concat(weights)}return weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(weights,strict=!0){let nameToWeight={},totalWeightsCount=0;for(let layer of this.layers)for(let weight of layer.weights){if(nameToWeight[weight.originalName]!=null)throw new ValueError(`Duplicate weight name: ${weight.originalName}`);nameToWeight[weight.originalName]=weight,totalWeightsCount++}let weightValueTuples=[];for(let name in weights){let validatedName=name;if(nameToWeight[name]==null){let tokens=name.split("/");validatedName=tokens.slice(0,-2).concat([tokens[tokens.length-1]]).join("/")}if(nameToWeight[validatedName]!=null)weightValueTuples.push([nameToWeight[validatedName],weights[name]]);else if(strict)throw new ValueError(`Provided weight data has no target variable: ${name}`);delete nameToWeight[validatedName]}if(strict){let unsetNames=[];for(let name in nameToWeight)unsetNames.push(name);if(unsetNames.length>0)throw new ValueError(`${unsetNames.length} of ${totalWeightsCount} weights are not set: ${unsetNames}`)}batchSetValue(weightValueTuples)}updatedConfig(){let theConfig=this.getConfig(),modelConfig={};return modelConfig.className=this.getClassName(),modelConfig.config=theConfig,modelConfig.kerasVersion=`tfjs-layers ${version10}`,modelConfig.backend="TensorFlow.js",modelConfig}toJSON(unused,returnString=!0){let modelConfig=convertTsToPythonic(this.updatedConfig());return returnString?JSON.stringify(modelConfig):modelConfig}call(inputs,kwargs){return tidy(()=>{inputs=toList(inputs);let feedDict=new FeedDict;for(let i=0;i{inputs=toList(inputs);let masks;return mask==null?masks=pyListRepeat(null,inputs.length):masks=toList(mask),this.runInternalGraph(inputs,masks)[1]})}computeOutputShape(inputShape){let inputShapes=normalizeShapeList(inputShape);if(inputShapes.length!==this.inputLayers.length)throw new ValueError(`Invalid inputShape argument ${inputShape}: model has ${this.inputLayers.length} tensor inputs.`);let layersToOutputShapes={};for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);if(depthKeys.length>1)for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer;if(this.inputLayers.map(x=>x.id).indexOf(layer.id)!==-1)continue;let inputShapes2=[];for(let j=0;jparseInt(x,10)).sort(reverseNumberCompare);for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer,referenceInputTensors=node.inputTensors,referenceOutputTensors=node.outputTensors,computedData=new Array;for(let x of referenceInputTensors)x.id in tensorMap&&computedData.push(tensorMap[x.id]);if(computedData.length===referenceInputTensors.length){let kwargs={},computedTensors,computedMasks,outputTensors2,outputMasks2;if(node.callArgs!=null&&(kwargs=node.callArgs),computedData.length===1){let[computedTensor,computedMask]=computedData[0];kwargs.mask==null&&(kwargs.mask=computedMask),outputTensors2=toList(layer.call(computedTensor,kwargs)),outputMasks2=toList(layer.computeMask(computedTensor,computedMask)),computedTensors=[computedTensor],computedMasks=[computedMask]}else computedTensors=computedData.map(x=>x[0]),computedMasks=computedData.map(x=>x[1]),kwargs.mask==null&&(kwargs.mask=computedMasks),outputTensors2=toList(layer.call(computedTensors,kwargs)),outputMasks2=toList(layer.computeMask(computedTensors,computedMasks));if(layer.activityRegularizer)throw new NotImplementedError("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let i=0;i{let losses4=[];for(let layer of this.layers)for(let nodeIndex=0;nodeIndex0){let nodeData=[];for(let i=0;i0&&layer.apply(singletonOrArray(inputTensors2),kwargs)}function processLayer(layerData){let layerName=layerData.name,layer=deserialize(layerData,config2.customObjects!=null?config2.customObjects:{});layer.setFastWeightInitDuringBuild(fastWeightInit),createdLayers[layerName]=layer,layerData.inboundNodes.forEach(nodeData=>{if(!(nodeData instanceof Array))throw new ValueError(`Corrupted configuration, expected array for nodeData: ${nodeData}`);addUnprocessedNode(layer,nodeData)})}let name=config2.name,layersFromConfig=config2.layers;for(let layerData of layersFromConfig)processLayer(layerData);for(;!isObjectEmpty(unprocessedNodes);)for(let layerData of layersFromConfig){let layer=createdLayers[layerData.name];if(layer.name in unprocessedNodes){let currentUnprocessedNodesForLayer=unprocessedNodes[layer.name];delete unprocessedNodes[layer.name];for(let nodeData of currentUnprocessedNodesForLayer)processNode(layer,nodeData)}}let inputTensors=[],outputTensors=[],inputLayersFromConfig=config2.inputLayers;for(let layerData of inputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;inputTensors.push(layerOutputTensors[tensorIndex])}let outputLayersFromConfig=config2.outputLayers;for(let layerData of outputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;outputTensors.push(layerOutputTensors[tensorIndex])}return new cls({inputs:inputTensors,outputs:outputTensors,name})}get stateful(){if(this._stateful)throw new ValueError("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let layer of this.layers)if(layer.stateful)return!0;return!1}resetStates(){tidy(()=>{this.layers.forEach(layer=>{layer.stateful&&layer.resetStates()})})}};function standardizeSampleOrClassWeights(xWeight,outputNames,weightType){let numOutputs=outputNames.length;if(xWeight==null||Array.isArray(xWeight)&&xWeight.length===0)return outputNames.map(name=>null);if(numOutputs===1)return Array.isArray(xWeight)&&xWeight.length===1?xWeight:typeof xWeight=="object"&&outputNames[0]in xWeight?[xWeight[outputNames[0]]]:[xWeight];if(Array.isArray(xWeight)){if(xWeight.length!==numOutputs)throw new Error(`Provided ${weightType} is an array of ${xWeight.length} element(s), but the model has ${numOutputs} outputs. Make sure a set of weights is provided for each model output.`);return xWeight}else if(typeof xWeight=="object"&&Object.keys(xWeight).length>0&&typeof xWeight[Object.keys(xWeight)[0]]=="object"){let output=[];return outputNames.forEach(outputName=>{outputName in xWeight?output.push(xWeight[outputName]):output.push(null)}),output}else throw new Error(`The model has multiple (${numOutputs}) outputs, so ${weightType} must be either an array with ${numOutputs} elements or an object with ${outputNames} keys. Provided ${weightType} not understood: ${JSON.stringify(xWeight)}`)}function standardizeClassWeights(classWeight,outputNames){return standardizeSampleOrClassWeights(classWeight,outputNames,"classWeight")}async function standardizeWeights(y,sampleWeight,classWeight,sampleWeightMode){if(sampleWeight!=null||sampleWeightMode!=null)throw new Error("Support sampleWeight is not implemented yet");if(classWeight!=null){let yClasses=tidy(()=>{if(y.shape.length===1)return y.clone();if(y.shape.length===2)if(y.shape[1]>1){let axis=1;return y.argMax(axis)}else{if(y.shape[1]===1)return y.reshape([y.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${y.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${y.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),yClassIndices=Array.from(await yClasses.data());dispose(yClasses);let classSampleWeight=[];return yClassIndices.forEach(classIndex=>{if(classWeight[classIndex]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${classIndex} exists in the data but not in classWeight`);classSampleWeight.push(classWeight[classIndex])}),tensor1d(classSampleWeight,"float32")}else return null}function computeWeightedLoss2(losses4,sampleWeights){return mul(losses4,sampleWeights)}var DEFAULT_VALIDATION_BATCH_SIZE=32;function standardizeDataIteratorOutput(model2,iteratorOut){let xs,ys,iteratorOutObj=iteratorOut;xs=iteratorOutObj.xs,ys=iteratorOutObj.ys,util_exports.assert(xs!=null&&ys!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${iteratorOut}`);let flattenedXs=flattenTensorOrArrayOrMap("input",model2.inputNames,xs),flattenedYs=flattenTensorOrArrayOrMap("output",model2.outputNames,ys),batchSize=flattenedXs[0].shape[0];util_exports.assert(flattenedXs.length===model2.inputs.length,()=>`LayersModel has ${model2.inputs.length} inputs, but the dataset provides ${flattenedXs.length} inputs. (Expected input keys: ${JSON.stringify(model2.inputNames)})`),util_exports.assert(flattenedYs.length===model2.outputs.length,()=>`LayersModel has ${model2.outputs.length} outputs, but the dataset provides ${flattenedYs.length} outputs. (Expected output keys: ${JSON.stringify(model2.outputNames)})`);for(let xIndex=0;xIndex`Batch size mismatch: input ${model2.inputNames[xIndex]} has ${flattenedXs[xIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);for(let yIndex=0;yIndex`Batch size mismatch: output ${model2.outputNames[yIndex]} has ${flattenedYs[yIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);return{xs:flattenedXs,ys:flattenedYs}}function flattenTensorOrArrayOrMap(inputOrOutput,names,values){if(values instanceof Tensor)return[values];if(Array.isArray(values))return util_exports.assert(values.length===names.length,()=>`Received an array of ${values.length} Tensors, but expected ${names.length} to match the ${inputOrOutput} keys ${names}.`),values;{let result=[];for(let name of names){if(values[name]==null)throw new ValueError(`The feature data generated by the dataset lacks the required ${inputOrOutput} key '${name}'.`);result.push(values[name])}return result}}function standardizeTensorValidationData(data2){if(data2.length===3)throw new NotImplementedError("Validation with sample weights is not implemented yet.");return{xs:data2[0],ys:data2[1]}}async function fitDataset(model2,dataset,args){let hasBatchesPerEpoch=args.batchesPerEpoch!=null;if(util_exports.assert(model2.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),util_exports.assert(args!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),util_exports.assert(args.epochs!=null&&args.epochs>0&&Number.isInteger(args.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${args.epochs}`),util_exports.assert(!hasBatchesPerEpoch||args.batchesPerEpoch>0&&Number.isInteger(args.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${args.batchesPerEpoch}`),util_exports.assert(args.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),model2.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");model2.isTraining=!0;try{let doValidation=args.validationData!=null,valXs,valYs;if(doValidation)if(isDatasetObject(args.validationData))util_exports.assert(args.validationBatches==null||args.validationBatches>0&&Number.isInteger(args.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${args.validationBatches}`);else{let validationData=standardizeTensorValidationData(args.validationData);valXs=validationData.xs,valYs=validationData.ys}let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),callbackMetrics;doValidation?callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n)):callbackMetrics=outLabels.slice();let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery),verbose=args.verbose==null?1:args.verbose,{callbackList,history}=configureCallbacks(callbacks2,verbose,args.epochs,null,null,getStepsPerEpoch(dataset,args),null,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;let epoch=args.initialEpoch==null?0:args.initialEpoch,dataIterator=await dataset.iterator();for(;epoch=args.batchesPerEpoch:iteratorOut.done){if(doValidation){let valOuts;isDatasetObject(args.validationData)?valOuts=toList(await model2.evaluateDataset(args.validationData,{batches:args.validationBatches})):valOuts=toList(model2.evaluate(valXs,valYs,{batchSize:args.validationBatchSize==null?DEFAULT_VALIDATION_BATCH_SIZE:args.validationBatchSize,verbose:0}));for(let i=0;i0)throw new NotImplementedError("Verbose mode is not implemented yet.");util_exports.assert(!hasBatches||args.batches>0&&Number.isInteger(args.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(args.batches)}`);let dataIterator=isLazyIteratorObject(dataset)?dataset:await dataset.iterator(),numExamples=0,batch=0;for(;hasBatches?batch{if(iteratorOut.value){let{xs,ys}=standardizeDataIteratorOutput(model2,iteratorOut.value),xsAndYs=xs.concat(ys),batchOuts=tidy(()=>f(xsAndYs));if(dispose(xsAndYs),batch===0)for(let i=0;iadd2(outs[i],mul(batchSize,batchOut))),batch>0&&dispose(oldScalar)}dispose(batchOuts),numExamples+=batchSize,++batch}return outs}),iteratorOut.done){hasBatches&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${args.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let i=0;i0&&Number.isInteger(batchSize),()=>`batchSize is required to be a positive integer, but got ${batchSize}`)}function sliceArrays(arrays,start,stop){return arrays==null?[null]:Array.isArray(arrays)?arrays.map(array2=>sliceAlongFirstAxis(array2,start,stop-start)):sliceAlongFirstAxis(arrays,start,stop-start)}function sliceArraysByIndices(arrays,indices){return tidy(()=>arrays==null?null:Array.isArray(arrays)?arrays.map(array2=>sliceArraysByIndices(array2,indices)):gather2(arrays,indices.dtype==="int32"?indices:indices.toInt()))}function makeBatches(size,batchSize){let output=[],batchStart=0,batchEnd=null;for(;batchStart=size&&(batchEnd=size),output.push([batchStart,batchEnd]),batchStart=batchEnd;return output}async function fitLoop(model2,f,ins,outLabels,batchSize,epochs,verbose,callbacks2,valF,valIns,shuffle2,callbackMetrics,initialEpoch,stepsPerEpoch,validationSteps){batchSize==null&&(batchSize=32),epochs==null&&(epochs=1),shuffle2==null&&(shuffle2=!0),initialEpoch==null&&(initialEpoch=0);let doValidation=!1;if(valF!=null&&valIns!=null&&(doValidation=!0),validationSteps!=null&&(doValidation=!0,stepsPerEpoch==null))throw new ValueError("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let numTrainSamples=model2.checkNumSamples(ins,batchSize,stepsPerEpoch,"steps_per_epoch"),indexArray;numTrainSamples!=null&&(indexArray=range5(0,numTrainSamples)),verbose==null&&(verbose=1);let{callbackList,history}=configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;for(let epoch=initialEpoch;epoch{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],batchIds=sliceAlongFirstAxis(epochIndexArray1D,batchStart,batchEnd-batchStart);batchLogs.batch=batchIndex,batchLogs.size=batchEnd-batchStart;let insBatch=sliceArraysByIndices(ins,batchIds),outs=f(insBatch);for(let i=0;i0){if(doValidation=!0,args.validationData.length===2)inputValX=args.validationData[0],inputValY=args.validationData[1];else throw args.validationData.length===3?new NotImplementedError("validationData including sample weights is not supported yet."):new ValueError(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${args.validationData} is invalid.`);let checkBatchAxis2=!0,valStandardized=await model2.standardizeUserData(inputValX,inputValY,null,null,checkBatchAxis2,batchSize);valX=valStandardized[0],valY=valStandardized[1],valIns=valX.concat(valY)}else if(args.validationSplit!=null&&args.validationSplit>0&&args.validationSplit<1){doValidation=!0;let splitAt=Math.floor(inputs[0].shape[0]*(1-args.validationSplit)),originalBatchSize=inputs[0].shape[0];valX=sliceArrays(inputs,splitAt,originalBatchSize),inputs=sliceArrays(inputs,0,splitAt),valY=sliceArrays(targets,splitAt,originalBatchSize),targets=sliceArrays(targets,0,splitAt),valIns=valX.concat(valY)}else args.validationSteps!=null&&(doValidation=!0);let ins=inputs.concat(targets).concat(sampleWeights);model2.checkTrainableWeightsConsistency();let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),valFunction,callbackMetrics;doValidation?(model2.makeTestFunction(),valFunction=model2.testFunction,callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n))):(valFunction=null,valIns=[],callbackMetrics=outLabels.slice());let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery);return await fitLoop(model2,trainFunction,ins,outLabels,batchSize,args.epochs,args.verbose,callbacks2,valFunction,valIns,args.shuffle,callbackMetrics,args.initialEpoch,null,null)}finally{model2.isTraining=!1,disposeNewTensors(inputs,x),disposeNewTensors(targets,y),disposeNewTensors(valX,inputValX),disposeNewTensors(valY,inputValY),sampleWeights!=null&&dispose(sampleWeights)}}function ensureTensorsRank2OrHigher(tensors){let outs=[];tensors instanceof Tensor&&(tensors=[tensors]);for(let i=0;ioldTensorIds.push(t.id));else if(refTensors!=null)for(let name in refTensors){let oldTensor=refTensors[name];oldTensorIds.push(oldTensor.id)}let tensorsToDispose=[];if(tensors instanceof Tensor)oldTensorIds.indexOf(tensors.id)===-1&&tensorsToDispose.push(tensors);else if(Array.isArray(tensors))tensors.forEach(t=>{oldTensorIds.indexOf(t.id)===-1&&tensorsToDispose.push(t)});else if(tensors!=null)for(let name in tensors){let tensor2=tensors[name];oldTensorIds.indexOf(tensor2.id)===-1&&tensorsToDispose.push(tensor2)}tensorsToDispose.forEach(t=>{t.isDisposed||t.dispose()})}function isDataTensor(x){return x instanceof Tensor}function isDataArray(x){return Array.isArray(x)}function isDataDict(x){return!isDataTensor(x)&&!isDataArray(x)}function standardizeInputData(data2,names,shapes,checkBatchAxis=!0,exceptionPrefix=""){if(names==null||names.length===0){if(data2!=null){let gotUnexpectedData=!1;if(isDataArray(data2)&&data2.length>0)gotUnexpectedData=!0;else if(isDataDict(data2)){for(let key in data2)if(data2.hasOwnProperty(key)){gotUnexpectedData=!0;break}}else gotUnexpectedData=!0;if(gotUnexpectedData)throw new ValueError(`Error when checking model ${exceptionPrefix} expected no data, but got ${data2}`)}return[]}if(data2==null)return names.map(name=>null);let arrays;if(isDataDict(data2)){data2=data2,arrays=[];for(let name of names){if(data2[name]==null)throw new ValueError(`No data provided for "${name}". Need data for each key in: ${names}`);arrays.push(data2[name])}}else if(isDataArray(data2)){if(data2=data2,data2.length!==names.length)throw new ValueError(`Error when checking model ${exceptionPrefix}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${names.length} Tensor(s), but instead got the following list of Tensor(s): ${data2}`);arrays=data2}else{if(data2=data2,names.length>1)throw new ValueError(`The model ${exceptionPrefix} expects ${names.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${data2.shape}`);arrays=[data2]}if(arrays=ensureTensorsRank2OrHigher(arrays),shapes!=null)for(let i=0;i=0&&dim!==refDim)throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have shape [${shapes[i]}], but got array with shape [${array2.shape}].`)}}return arrays}function checkArrayLengths(inputs,targets,weights){let setX=unique4(inputs.map(input2=>input2.shape[0]));setX.sort();let setY=unique4(targets.map(target=>target.shape[0]));if(setY.sort(),setX.length>1)throw new ValueError(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(inputs.map(input2=>input2.shape))}`);if(setY.length>1)throw new ValueError(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(targets.map(target=>target.shape))}`);if(setX.length>0&&setY.length>0&&!util_exports.arraysEqual(setX,setY))throw new ValueError(`Input Tensors should have the same number of samples as target Tensors. Found ${setX[0]} input sample(s) and ${setY[0]} target sample(s).`)}function checkLossAndTargetCompatibility(targets,lossFns,outputShapes){let keyLosses=[meanSquaredError2,binaryCrossentropy,categoricalCrossentropy];for(let i=0;i1)throw new ValueError(`The model expects ${names.length} ${exceptionPrefix} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(data2.shape)}.`);arrays=[data2]}if(shapes!=null)for(let i=0;i[]);let wrappedMetrics;if(typeof metrics2=="string"||typeof metrics2=="function")wrappedMetrics=[metrics2];else if(Array.isArray(metrics2)||typeof metrics2=="object")wrappedMetrics=metrics2;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${metrics2}`);if(Array.isArray(wrappedMetrics))return outputNames.map(name=>wrappedMetrics);{let nestedMetrics=[];for(let name of outputNames){let outputMetrics=wrappedMetrics.hasOwnProperty(name)?wrappedMetrics[name]:[];Array.isArray(outputMetrics)||(outputMetrics=[outputMetrics]),nestedMetrics.push(outputMetrics)}return nestedMetrics}}var LAYERS_MODEL_FORMAT_NAME="layers-model",LayersModel=class extends Container{constructor(args){super(args);this.isTraining=!1}summary(lineLength,positions,printFn=console.log){if(!this.built)throw new ValueError("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");printSummary(this,lineLength,positions,printFn)}compile(args){if(args.loss==null&&(args.loss=[]),this.loss=args.loss,typeof args.optimizer=="string")this.optimizer_=getOptimizer(args.optimizer),this.isOptimizerOwned=!0;else{if(!(args.optimizer instanceof Optimizer))throw new ValueError("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=args.optimizer,this.isOptimizerOwned=!1}let lossFunctions=[];if(!Array.isArray(args.loss)&&typeof args.loss!="string"&&typeof args.loss!="function"){args.loss=args.loss;for(let name in args.loss)if(this.outputNames.indexOf(name)===-1)throw new ValueError(`Unknown entry in loss dictionary: "${name}". Only expected the following keys: ${this.outputNames}`);for(let name of this.outputNames)args.loss[name]==null&&console.warn(`Output "${name}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${name} during training`),lossFunctions.push(get(args.loss[name]))}else if(Array.isArray(args.loss)){if(args.loss.length!==this.outputs.length)throw new ValueError(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${args.loss}.`);lossFunctions=args.loss.map(l=>get(l))}else{let lossFunction=get(args.loss);this.outputs.forEach(_=>{lossFunctions.push(lossFunction)})}this.lossFunctions=lossFunctions,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([weightedLoss,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let nestedMetrics=collectMetrics(args.metrics,this.outputNames),appendMetric=(outputIndex,metricName,metricTensor)=>{this.outputNames.length>1&&(metricName=this.outputNames[outputIndex]+"_"+metricName),this.metricsNames.push(metricName),this.metricsTensors.push([metricTensor,outputIndex])};nameScope("metric",()=>{for(let i=0;i{let metricNamePrefix="",metricName,accFn,weightedMetricFn;for(let metric of metrics2){if(typeof metric=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(metric)!==-1){let outputShape=this.internalOutputShapes[i];outputShape[outputShape.length-1]===1||this.lossFunctions[i]===binaryCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=binaryAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=binaryCrossentropy2):this.lossFunctions[i]===sparseCategoricalCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=sparseCategoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=sparseCategoricalCrossentropy2):["accuracy","acc"].indexOf(metric)!==-1?accFn=categoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=categoricalCrossentropy2);let suffix;["accuracy","acc"].indexOf(metric)!==-1?suffix="acc":["crossentropy","ce"].indexOf(metric)!==-1&&(suffix="ce"),weightedMetricFn=accFn,metricName=metricNamePrefix+suffix}else weightedMetricFn=get2(metric),metricName=metricNamePrefix+getLossOrMetricName(metric);let metricResult;nameScope(metricName,()=>{metricResult=weightedMetricFn}),appendMetric(i,metricName,metricResult)}})(outputMetrics)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(x,y,args={}){let batchSize=args.batchSize==null?32:args.batchSize;checkBatchSize(batchSize);let checkBatchAxis=!0,standardizedOuts=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);try{let ins=standardizedOuts[0].concat(standardizedOuts[1]);this.makeTestFunction();let f=this.testFunction,testOuts=this.testLoop(f,ins,batchSize,args.verbose,args.steps);return singletonOrArray(testOuts)}finally{disposeNewTensors(standardizedOuts[0],x),disposeNewTensors(standardizedOuts[1],y)}}async evaluateDataset(dataset,args){return this.makeTestFunction(),evaluateDataset(this,dataset,args)}checkNumSamples(ins,batchSize,steps,stepsName="steps"){let numSamples;if(steps!=null){if(numSamples=null,batchSize!=null)throw new ValueError(`If ${stepsName} is set, batchSize must be null or undefined.Got batchSize = ${batchSize}`)}else if(ins!=null)Array.isArray(ins)?numSamples=ins[0].shape[0]:numSamples=ins.shape[0];else throw new ValueError(`Either the input data should have a defined shape, or ${stepsName} shoud be specified.`);return numSamples}execute(inputs,outputs){if(Array.isArray(outputs)&&outputs.length===0)throw new ValueError("`outputs` is an empty Array, which is not allowed.");let outputsIsArray=Array.isArray(outputs),outputNames=outputsIsArray?outputs:[outputs],outputSymbolicTensors=this.retrieveSymbolicTensors(outputNames),feedDict=new FeedDict;if(inputs instanceof Tensor&&(inputs=[inputs]),Array.isArray(inputs)){if(inputs.length!==this.inputs.length)throw new ValueError(`The number of inputs provided (${inputs.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let i=0;ioutput.name);for(let i=0;i0){let remainingNames=[];throw outputSymbolicTensors.forEach((tensor2,i)=>{tensor2==null&&remainingNames.push(symbolicTensorNames[i])}),new ValueError(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(remainingNames)}`)}return outputSymbolicTensors}predictLoop(ins,batchSize=32,verbose=!1){return tidy(()=>{let numSamples=this.checkNumSamples(ins);if(verbose)throw new NotImplementedError("Verbose predictLoop() is not implemented yet.");let batches=makeBatches(numSamples,batchSize),outsBatches=this.outputs.map(output=>[]);for(let batchIndex=0;batchIndex{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],insBatch=sliceArrays(ins,batchStart,batchEnd),feeds=[];if(Array.isArray(insBatch))for(let i=0;ioutsBatches[i].push(batchOut));return singletonOrArray(outsBatches.map(batches2=>concat(batches2,0)))})}predict(x,args={}){let xsRank2OrHigher=ensureTensorsRank2OrHigher(x);checkInputData(xsRank2OrHigher,this.inputNames,this.feedInputShapes,!1);try{let batchSize=args.batchSize==null?32:args.batchSize;return checkBatchSize(batchSize),this.predictLoop(xsRank2OrHigher,batchSize)}finally{disposeNewTensors(xsRank2OrHigher,x)}}predictOnBatch(x){checkInputData(x,this.inputNames,this.feedInputShapes,!0);let batchSize=(Array.isArray(x)?x[0]:x).shape[0];return this.predictLoop(x,batchSize)}standardizeUserDataXY(x,y,checkBatchAxis=!0,batchSize){if(this.optimizer_==null)throw new RuntimeError("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let outputShapes=[];for(let i=0;i0&&x[0].shape[0]%batchSize!=0)throw new ValueError(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${batchSize}. Found: ${x[0].shape[0]} sample(s).`);return[x,y]}async standardizeUserData(x,y,sampleWeight,classWeight,checkBatchAxis=!0,batchSize){let[standardXs,standardYs]=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);if(sampleWeight!=null)throw new Error("sample weight is not supported yet.");let standardSampleWeights=null;if(classWeight!=null){let classWeights=standardizeClassWeights(classWeight,this.outputNames);standardSampleWeights=[];for(let i=0;i{let numSamples=this.checkNumSamples(ins,batchSize,steps,"steps"),outs=[];if(verbose>0)throw new NotImplementedError("Verbose mode is not implemented yet.");if(steps!=null)throw new NotImplementedError("steps mode in testLoop() is not implemented yet");{let batches=makeBatches(numSamples,batchSize),indexArray=tensor1d(range5(0,numSamples));for(let batchIndex=0;batchIndex1&&(newLabel+=`_${count(outLabels.slice(0,i),label)}`),dedupedOutLabels.push(newLabel)}return dedupedOutLabels}makeTrainFunction(){return data2=>{let lossValues=[],inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),sampleWeights=data2.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),metricsValues=[],totalLossFunction=()=>{let feeds=[];for(let i=0;i1&&i{totalLoss=add2(totalLoss,regularizerLoss)}),totalLoss},variables=this.collectedTrainableWeights.map(param=>param.read()),returnCost=!0;return[this.optimizer_.minimize(totalLossFunction,returnCost,variables)].concat(metricsValues)}}makeTestFunction(){this.testFunction=data2=>tidy(()=>{let valOutputs=[],totalLoss,inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),feeds=[];for(let i=0;itoSnakeCase(name))}else{let outputNames=Object.keys(this.loss);lossNames={};let losses4=this.loss;for(let outputName of outputNames)if(typeof losses4[outputName]=="string")lossNames[outputName]=toSnakeCase(losses4[outputName]);else throw new Error("Serialization of non-string loss is not supported.")}return lossNames}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[toSnakeCase(getLossOrMetricName(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(metric=>toSnakeCase(getLossOrMetricName(metric)));{let metricsIdentifiers={};for(let key in this.metrics)metricsIdentifiers[key]=toSnakeCase(getLossOrMetricName(this.metrics[key]));return metricsIdentifiers}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(trainingConfig){if(trainingConfig.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(trainingConfig.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(trainingConfig.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let tsConfig=convertPythonicToTs(trainingConfig.optimizer_config),optimizer=deserialize(tsConfig),loss;if(typeof trainingConfig.loss=="string")loss=toCamelCase(trainingConfig.loss);else if(Array.isArray(trainingConfig.loss))loss=trainingConfig.loss.map(lossEntry=>toCamelCase(lossEntry));else if(trainingConfig.loss!=null){loss={};for(let key in trainingConfig.loss)loss[key]=toCamelCase(trainingConfig.loss[key])}let metrics2;if(Array.isArray(trainingConfig.metrics))metrics2=trainingConfig.metrics.map(metric=>toCamelCase(metric));else if(trainingConfig.metrics!=null){metrics2={};for(let key in trainingConfig.metrics)metrics2[key]=toCamelCase(trainingConfig.metrics[key])}this.compile({loss,metrics:metrics2,optimizer})}async save(handlerOrURL,config2){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new ValueError(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new ValueError("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let weightDataAndSpecs=await io_exports.encodeWeights(this.getNamedWeights(config2)),returnString=!1,unusedArg=null,modelArtifacts={modelTopology:this.toJSON(unusedArg,returnString),format:LAYERS_MODEL_FORMAT_NAME,generatedBy:`TensorFlow.js tfjs-layers v${version10}`,convertedBy:null};if((config2==null?!1:config2.includeOptimizer)&&this.optimizer!=null){modelArtifacts.trainingConfig=this.getTrainingConfig();let weightType="optimizer",{data:optimizerWeightData,specs:optimizerWeightSpecs}=await io_exports.encodeWeights(await this.optimizer.getWeights(),weightType);weightDataAndSpecs.specs.push(...optimizerWeightSpecs),weightDataAndSpecs.data=io_exports.concatenateArrayBuffers([weightDataAndSpecs.data,optimizerWeightData])}if(this.userDefinedMetadata!=null){let checkSize=!0;checkUserDefinedMetadata(this.userDefinedMetadata,this.name,checkSize),modelArtifacts.userDefinedMetadata=this.userDefinedMetadata}return modelArtifacts.weightData=weightDataAndSpecs.data,modelArtifacts.weightSpecs=weightDataAndSpecs.specs,handlerOrURL.save(modelArtifacts)}setUserDefinedMetadata(userDefinedMetadata){checkUserDefinedMetadata(userDefinedMetadata,this.name),this.userDefinedMetadata=userDefinedMetadata}getUserDefinedMetadata(){return this.userDefinedMetadata}};LayersModel.className="Model";serialization_exports.registerClass(LayersModel);var Functional=class extends LayersModel{};Functional.className="Functional";serialization_exports.registerClass(Functional);async function modelFromJSON(modelAndWeightsConfig,customObjects){"modelTopology"in modelAndWeightsConfig||(modelAndWeightsConfig={modelTopology:modelAndWeightsConfig}),modelAndWeightsConfig=modelAndWeightsConfig;let modelTopology=modelAndWeightsConfig.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let tsConfig=convertPythonicToTs(modelTopology),model2=deserialize(tsConfig,customObjects);if(modelAndWeightsConfig.weightsManifest!=null){let weightValues=await io_exports.loadWeights(modelAndWeightsConfig.weightsManifest,modelAndWeightsConfig.pathPrefix,model2.weights.map(weight=>weight.originalName)),uniqueWeightValues={};for(let weight of model2.weights)uniqueWeightValues[weight.originalName]=weightValues[weight.originalName];model2.loadWeights(uniqueWeightValues),dispose(weightValues)}return model2}async function loadLayersModelInternal(pathOrIOHandler,options){if(options==null&&(options={}),typeof pathOrIOHandler=="string"){let handlers=io_exports.getLoadHandlers(pathOrIOHandler,options);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(pathOrIOHandler,options));else if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) load handlers for URL '${pathOrIOHandler}'`);pathOrIOHandler=handlers[0]}return loadLayersModelFromIOHandler(pathOrIOHandler,void 0,options)}async function loadLayersModelFromIOHandler(handler,customObjects,options){if(options==null&&(options={}),handler.load==null)throw new ValueError("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await handler.load(),modelTopology=artifacts.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let strict=options.strict==null?!0:options.strict,fastWeightInit=artifacts.weightData!=null&&artifacts.weightSpecs!=null&&strict,model2=deserialize(convertPythonicToTs(modelTopology),customObjects,fastWeightInit),trainingConfig=artifacts.trainingConfig;if(trainingConfig!=null&&model2.loadTrainingConfig(trainingConfig),artifacts.userDefinedMetadata!=null&&model2.setUserDefinedMetadata(artifacts.userDefinedMetadata),artifacts.weightData!=null){if(artifacts.weightSpecs==null)throw new ValueError("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights,optimizerWeights}=decodeModelAndOptimizerWeights(artifacts.weightData,artifacts.weightSpecs);model2.loadWeights(modelWeights,strict),model2.optimizer!=null&&optimizerWeights.length>0&&await model2.optimizer.setWeights(optimizerWeights),dispose(modelWeights),dispose(optimizerWeights.map(w=>w.tensor))}return model2}function decodeModelAndOptimizerWeights(buffer2,specs){let name2Tensor=io_exports.decodeWeights(buffer2,specs),modelWeights={},optimizerWeights=[];return specs.forEach(spec=>{spec.group==="optimizer"?optimizerWeights.push({name:spec.name,tensor:name2Tensor[spec.name]}):modelWeights[spec.name]=name2Tensor[spec.name]}),{modelWeights,optimizerWeights}}var Sequential=class extends LayersModel{constructor(args){super({inputs:[],outputs:[]});if(args=args||{},this.trainable=!0,this.built=!1,this.name=args.name!=null?args.name:getUid("sequential_"),args.layers!=null)for(let layer of args.layers)this.add(layer)}checkShape(layer){if(layer.inboundNodes[0].outputTensors[0].shape.some(x=>x<0))throw new ValueError(`Negative dimension size caused by adding layer ${layer.name} with input shape [${layer.inboundNodes[0].inputTensors[0].shape}]`)}add(layer){let isLayerModelInstance=layer instanceof Sequential||layer instanceof LayersModel,modelLayer;if(isLayerModelInstance){if(modelLayer=layer,modelLayer.outputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(modelLayer.inputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(layer.inboundNodes.length===0){if(layer.batchInputShape==null)throw new ValueError("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let x=Input({batchShape:layer.batchInputShape,dtype:layer.dtype,name:layer.name+"_input"});layer.apply(x)}if(isLayerModelInstance)this.outputs=modelLayer.outputs,this.inputs=modelLayer.inputs;else{if(layer.inboundNodes.length!==1)throw new ValueError(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${layer.name} which has ${layer.inboundNodes.length} pre-existing inbound connections.`);if(layer.inboundNodes[0].outputTensors.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[layer.inboundNodes[0].outputTensors[0]],this.inputs=getSourceInputs(this.outputs[0])}this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:pyListRepeat(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs[0].shape})}else{let outputTensor=layer.apply(this.outputs[0]);if(Array.isArray(outputTensor))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[outputTensor],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(layer),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let lastLayerIndex=this.layers.length-1;this.layers[lastLayerIndex].outboundNodes=[],this.outputs=[this.layers[lastLayerIndex].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(inputs,kwargs){return this.model==null&&this.build(),this.model.call(inputs,kwargs)}build(inputShape){if(getExactlyOneShape(inputShape),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new LayersModel({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(lineLength,positions,printFn=console.log){this.built||this.build(),super.summary(lineLength,positions,printFn)}setWeights(weights){this.model==null&&this.build(),this.model.setWeights(weights)}evaluate(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluate(x,y,args)}async evaluateDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluateDataset(dataset,args)}predict(x,args={}){return this.model==null&&this.build(),this.model.predict(x,args)}predictOnBatch(x){return this.model==null&&this.build(),this.model.predictOnBatch(x)}compile(args){this.build(),this.model.compile(args),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(optimizer){this.model.optimizer=optimizer}async fit(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fit(x,y,args)}async fitDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fitDataset(dataset,args)}async trainOnBatch(x,y){return this.model.trainOnBatch(x,y)}static fromConfig(cls,config2,customObjects={},fastWeightInit=!1){let configArray,extraModelConfig={};if(config2 instanceof Array){if(config2[0].className==null||config2[0].className==="Merge")throw new ValueError("Legacy serialization format not supported yet.");configArray=config2}else util_exports.assert(config2.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),configArray=config2.layers,delete config2.layers,extraModelConfig=config2;let model2=new cls(extraModelConfig);if(!(model2 instanceof Sequential))throw new NotImplementedError(`Sequential.fromConfig called on non-Sequential input: ${model2}`);for(let conf of configArray){let layer=deserialize(conf,void 0,fastWeightInit);fastWeightInit&&layer.setFastWeightInitDuringBuild(!0),model2.add(layer)}return model2}set stopTraining(stop){if(this.model==null)throw new ValueError("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=stop}get stopTraining(){if(this.model==null)throw new ValueError("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let layers=[];for(let layer of this.layers){let dict={};dict.className=layer.getClassName(),dict.config=layer.getConfig(),layers.push(dict)}return{name:this.name,layers}}};Sequential.className="Sequential";serialization_exports.registerClass(Sequential);function model(args){return new LayersModel(args)}function sequential(config2){return new Sequential(config2)}function loadLayersModel(pathOrIOHandler,options){return options==null&&(options={}),loadLayersModelInternal(pathOrIOHandler,options)}function input(config2){return Input(config2)}function registerCallbackConstructor(verbosityLevel,callbackConstructor){CallbackConstructorRegistry.registerCallbackConstructor(verbosityLevel,callbackConstructor)}var Activation=class extends serialization_exports.Serializable{getConfig(){return{}}},Elu2=class extends Activation{apply(x,alpha=1){return elu4(x,alpha)}};Elu2.className="elu";serialization_exports.registerClass(Elu2);var Selu2=class extends Activation{apply(x){return selu(x)}};Selu2.className="selu";serialization_exports.registerClass(Selu2);var Relu2=class extends Activation{apply(x){return relu(x)}};Relu2.className="relu";serialization_exports.registerClass(Relu2);var Relu62=class extends Activation{apply(x){return tidy(()=>minimum(6,relu(x)))}};Relu62.className="relu6";serialization_exports.registerClass(Relu62);var Linear=class extends Activation{apply(x){return x}};Linear.className="linear";serialization_exports.registerClass(Linear);var Sigmoid2=class extends Activation{apply(x){return sigmoid(x)}};Sigmoid2.className="sigmoid";serialization_exports.registerClass(Sigmoid2);var HardSigmoid=class extends Activation{apply(x){return hardSigmoid(x)}};HardSigmoid.className="hardSigmoid";serialization_exports.registerClass(HardSigmoid);var Softplus2=class extends Activation{apply(x){return softplus(x)}};Softplus2.className="softplus";serialization_exports.registerClass(Softplus2);var Softsign=class extends Activation{apply(x){return softsign(x)}};Softsign.className="softsign";serialization_exports.registerClass(Softsign);var Tanh2=class extends Activation{apply(x){return tanh2(x)}};Tanh2.className="tanh";serialization_exports.registerClass(Tanh2);var Softmax2=class extends Activation{apply(x,axis=-1){return softmax(x,axis)}};Softmax2.className="softmax";serialization_exports.registerClass(Softmax2);var LogSoftmax2=class extends Activation{apply(x,axis=-1){return logSoftmax(x,axis)}};LogSoftmax2.className="logSoftmax";serialization_exports.registerClass(LogSoftmax2);var Swish=class extends Activation{apply(x,alpha=1){return tidy(()=>sigmoid(x.mul(alpha)).mul(x))}};Swish.className="swish";serialization_exports.registerClass(Swish);function serializeActivation(activation2){return activation2.getClassName()}function deserializeActivation(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"activation")}function getActivation(identifier){if(identifier==null){let config2={};return config2.className="linear",config2.config={},deserializeActivation(config2)}if(typeof identifier=="string"){let config2={};return config2.className=identifier,config2.config={},deserializeActivation(config2)}else return identifier instanceof Activation?identifier:deserializeActivation(identifier)}function assertObjectArgs(args){if(args!=null&&typeof args!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${args}`)}var Regularizer=class extends serialization_exports.Serializable{},L1L2=class extends Regularizer{constructor(args){super();assertObjectArgs(args),this.l1=args==null||args.l1==null?.01:args.l1,this.l2=args==null||args.l2==null?.01:args.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(x){return tidy(()=>{let regularization=zeros([1]);return this.hasL1&&(regularization=add2(regularization,sum2(mul(this.l1,abs(x))))),this.hasL2&&(regularization=add2(regularization,sum2(mul(this.l2,square3(x))))),regularization.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(cls,config2){return new cls({l1:config2.l1,l2:config2.l2})}};L1L2.className="L1L2";serialization_exports.registerClass(L1L2);function l1(args){return assertObjectArgs(args),new L1L2({l1:args!=null?args.l1:null,l2:0})}function l2(args){return assertObjectArgs(args),new L1L2({l2:args!=null?args.l2:null,l1:0})}var REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={l1l2:"L1L2"};function serializeRegularizer(constraint){return serializeKerasObject(constraint)}function deserializeRegularizer(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"regularizer")}function getRegularizer(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config2={className:identifier in REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeRegularizer(config2)}else return identifier instanceof Regularizer?identifier:deserializeRegularizer(identifier)}var ReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null&&(this.maxValue=args.maxValue)}call(inputs,kwargs){inputs=getExactlyOneTensor(inputs);let output=relu(inputs);return this.maxValue!=null&&(output=clipByValue(output,0,this.maxValue)),output}computeOutputShape(inputShape){return inputShape}getConfig(){let config2={maxValue:this.maxValue},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};ReLU.className="ReLU";serialization_exports.registerClass(ReLU);var LeakyReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.DEFAULT_ALPHA=.3,args==null&&(args={}),this.alpha=args.alpha==null?this.DEFAULT_ALPHA:args.alpha}call(inputs,kwargs){let x=getExactlyOneTensor(inputs);return leakyRelu(x,this.alpha)}computeOutputShape(inputShape){return inputShape}getConfig(){let config2={alpha:this.alpha},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};LeakyReLU.className="LeakyReLU";serialization_exports.registerClass(LeakyReLU);var PReLU=class extends Layer{constructor(args){super(args==null?{}:args);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",args==null&&(args={}),this.supportsMasking=!0,this.alphaInitializer=getInitializer(args.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=getRegularizer(args.alphaRegularizer),this.alphaConstraint=getConstraint(args.alphaConstraint),args.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(args.sharedAxes))this.sharedAxes=args.sharedAxes;else if(typeof args.sharedAxes=="number")this.sharedAxes=[args.sharedAxes];else throw new ValueError(`Expected sharedAxes to be a number or an array of numbers, but got ${args.sharedAxes}`)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let paramShape=inputShape.slice(1);if(this.sharedAxes!=null)for(let i of this.sharedAxes)paramShape[i-1]=1;this.alpha=this.addWeight("alpha",paramShape,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let axes={};if(this.sharedAxes!=null)for(let i=1;i(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,1]):x))}function preprocessConv3DInput(x,dataFormat){return tidy(()=>(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,4,1]):x))}function conv1dWithBias(x,kernel,bias,strides=1,padding="valid",dataFormat,dilationRate=1){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.shape.length!==3)throw new ValueError(`The input of a conv1dWithBias operation should be 3, but is ${x.shape.length} instead.`);if(kernel.shape.length!==3)throw new ValueError(`The kernel for a conv1dWithBias operation should be 3, but is ${kernel.shape.length} instead`);if(bias!=null&&bias.shape.length!==1)throw new ValueError(`The bias for a conv1dWithBias operation should be 1, but is ${kernel.shape.length} instead`);if(dataFormat==="channelsFirst"&&(x=transpose(x,[0,2,1])),padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let y=conv1d(x,kernel,strides,padding==="same"?"same":"valid","NWC",dilationRate);return bias!=null&&(y=biasAdd(y,bias)),y})}function conv2dWithBiasActivation(x,kernel,bias,strides=[1,1],padding="valid",dataFormat,dilationRate,activation2=null){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==3&&x.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${x.rank}.`);if(kernel.rank!==3&&kernel.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${x.rank}.`);let y=preprocessConv2DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return y=fused_ops_exports.conv2d({x:y,filter:kernel,strides,pad:padding==="same"?"same":"valid",dilations:dilationRate,dataFormat:"NHWC",bias,activation:activation2}),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function conv3dWithBias(x,kernel,bias,strides=[1,1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==4&&x.rank!==5)throw new ValueError(`conv3dWithBias expects input to be of rank 4 or 5, but received ${x.rank}.`);if(kernel.rank!==4&&kernel.rank!==5)throw new ValueError(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${x.rank}.`);let y=preprocessConv3DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return y=conv3d(y,kernel,strides,padding==="same"?"same":"valid","NDHWC",dilationRate),bias!=null&&(y=biasAdd(y,bias)),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var BaseConv=class extends Layer{constructor(rank,args){super(args);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",BaseConv.verifyArgs(args),this.rank=rank,assertPositiveInteger(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new NotImplementedError(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=normalizeArray(args.kernelSize,rank,"kernelSize"),this.strides=normalizeArray(args.strides==null?1:args.strides,rank,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.activation=getActivation(args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=getConstraint(args.biasConstraint),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.dilationRate=normalizeArray(args.dilationRate==null?1:args.dilationRate,rank,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new ValueError(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new ValueError(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new ValueError(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(args){if(assert2("kernelSize"in args,"required key 'kernelSize' not in config"),typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,3))throw new ValueError(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(args.kernelSize)}.`)}getConfig(){let config2={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:serializeActivation(this.activation),useBias:this.useBias,biasInitializer:serializeInitializer(this.biasInitializer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},Conv=class extends BaseConv{constructor(rank,args){super(rank,args);this.kernel=null,Conv.verifyArgs(args),this.filters=args.filters,assertPositiveInteger(this.filters,"filters"),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([inputDim,this.filters]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[channelAxis]:inputDim}}],this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs,biasValue=this.bias==null?null:this.bias.read(),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName());if(fusedActivationName!=null&&this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate,fusedActivationName);else{if(this.rank===1)outputs=conv1dWithBias(inputs,this.kernel.read(),biasValue,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)outputs=conv3dWithBias(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new NotImplementedError("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(outputs=this.activation.apply(outputs))}return outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let newSpace=[],space=this.dataFormat==="channelsLast"?inputShape.slice(1,inputShape.length-1):inputShape.slice(2);for(let i=0;i 0 but got ${JSON.stringify(args.filters)}`)}},Conv2D2=class extends Conv{constructor(args){super(2,args);Conv2D2.verifyArgs(args)}getConfig(){let config2=super.getConfig();return delete config2.rank,config2}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,2))throw new ValueError(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv2D2.className="Conv2D";serialization_exports.registerClass(Conv2D2);var Conv3D2=class extends Conv{constructor(args){super(3,args);Conv3D2.verifyArgs(args)}getConfig(){let config2=super.getConfig();return delete config2.rank,config2}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!(Array.isArray(args.kernelSize)&&(args.kernelSize.length===1||args.kernelSize.length===3)))throw new ValueError(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(args.kernelSize)}.`)}};Conv3D2.className="Conv3D";serialization_exports.registerClass(Conv3D2);var Conv2DTranspose=class extends Conv2D2{constructor(args){super(args);if(this.inputSpec=[new InputSpec({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new ValueError(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length!==4)throw new ValueError("Input should have rank 4; Received input shape: "+JSON.stringify(inputShape));let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError("The channel dimension of the inputs should be defined. Found `None`.");let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([this.filters,inputDim]);this.kernel=this.addWeight("kernel",kernelShape,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new InputSpec({ndim:4,axes:{[channelAxis]:inputDim}})],this.built=!0}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);if(input2.shape.length!==4)throw new ValueError(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${input2.shape.length}`);let inputShape=input2.shape,batchSize=inputShape[0],hAxis,wAxis;this.dataFormat==="channelsFirst"?(hAxis=2,wAxis=3):(hAxis=1,wAxis=2);let height=inputShape[hAxis],width=inputShape[wAxis],kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1],outHeight=deconvLength(height,strideH,kernelH,this.padding),outWidth=deconvLength(width,strideW,kernelW,this.padding),outputShape=[batchSize,outHeight,outWidth,this.filters];this.dataFormat!=="channelsLast"&&(input2=transpose(input2,[0,2,3,1]));let outputs=conv2dTranspose(input2,this.kernel.read(),outputShape,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(outputs=transpose(outputs,[0,3,1,2])),this.bias!=null&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice(),channelAxis,heightAxis,widthAxis;this.dataFormat==="channelsFirst"?(channelAxis=1,heightAxis=2,widthAxis=3):(channelAxis=3,heightAxis=1,widthAxis=2);let kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1];return outputShape[channelAxis]=this.filters,outputShape[heightAxis]=deconvLength(outputShape[heightAxis],strideH,kernelH,this.padding),outputShape[widthAxis]=deconvLength(outputShape[widthAxis],strideW,kernelW,this.padding),outputShape}getConfig(){let config2=super.getConfig();return delete config2.dilationRate,config2}};Conv2DTranspose.className="Conv2DTranspose";serialization_exports.registerClass(Conv2DTranspose);var SeparableConv=class extends Conv{constructor(rank,config2){super(rank,config2);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,config2.filters==null)throw new ValueError("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(config2.kernelInitializer!=null||config2.kernelRegularizer!=null||config2.kernelConstraint!=null)throw new ValueError("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(config2.padding!=null&&config2.padding!=="same"&&config2.padding!=="valid")throw new ValueError(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(config2.padding)}`);this.depthMultiplier=config2.depthMultiplier==null?1:config2.depthMultiplier,this.depthwiseInitializer=getInitializer(config2.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=getRegularizer(config2.depthwiseRegularizer),this.depthwiseConstraint=getConstraint(config2.depthwiseConstraint),this.pointwiseInitializer=getInitializer(config2.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=getRegularizer(config2.pointwiseRegularizer),this.pointwiseConstraint=getConstraint(config2.pointwiseConstraint)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length{inputs=getExactlyOneTensor(inputs);let output;if(this.rank===1)throw new NotImplementedError("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(inputs=transpose(inputs,[0,2,3,1])),output=separableConv2d(inputs,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(output=biasAdd(output,this.bias.read(),this.dataFormat)),this.activation!=null&&(output=this.activation.apply(output)),this.dataFormat==="channelsFirst"&&(output=transpose(output,[0,3,1,2])),output})}getConfig(){let config2=super.getConfig();return delete config2.rank,delete config2.kernelInitializer,delete config2.kernelRegularizer,delete config2.kernelConstraint,config2.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config2.pointwiseInitializer=serializeInitializer(this.pointwiseInitializer),config2.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config2.pointwiseRegularizer=serializeRegularizer(this.pointwiseRegularizer),config2.depthwiseConstraint=serializeConstraint(this.depthwiseConstraint),config2.pointwiseConstraint=serializeConstraint(this.pointwiseConstraint),config2}};SeparableConv.className="SeparableConv";var SeparableConv2D=class extends SeparableConv{constructor(args){super(2,args)}};SeparableConv2D.className="SeparableConv2D";serialization_exports.registerClass(SeparableConv2D);var Conv1D=class extends Conv{constructor(args){super(1,args);Conv1D.verifyArgs(args),this.inputSpec=[{ndim:3}]}getConfig(){let config2=super.getConfig();return delete config2.rank,delete config2.dataFormat,config2}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,1))throw new ValueError(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv1D.className="Conv1D";serialization_exports.registerClass(Conv1D);var Cropping2D=class extends Layer{constructor(args){super(args);typeof args.cropping=="number"?this.cropping=[[args.cropping,args.cropping],[args.cropping,args.cropping]]:typeof args.cropping[0]=="number"?this.cropping=[[args.cropping[0],args.cropping[0]],[args.cropping[1],args.cropping[1]]]:this.cropping=args.cropping,this.dataFormat=args.dataFormat===void 0?"channelsLast":args.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(inputShape){return this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],inputShape[2]-this.cropping[0][0]-this.cropping[0][1],inputShape[3]-this.cropping[1][0]-this.cropping[1][1]]:[inputShape[0],inputShape[1]-this.cropping[0][0]-this.cropping[0][1],inputShape[2]-this.cropping[1][0]-this.cropping[1][1],inputShape[3]]}call(inputs,kwargs){return tidy(()=>{if(inputs=getExactlyOneTensor(inputs),this.dataFormat==="channelsLast"){let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let config2={cropping:this.cropping,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Cropping2D.className="Cropping2D";serialization_exports.registerClass(Cropping2D);var UpSampling2D=class extends Layer{constructor(args){super(args);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=args.size==null?this.DEFAULT_SIZE:args.size,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.interpolation=args.interpolation==null?"nearest":args.interpolation,checkInterpolationFormat(this.interpolation)}computeOutputShape(inputShape){if(this.dataFormat==="channelsFirst"){let height=inputShape[2]==null?null:this.size[0]*inputShape[2],width=inputShape[3]==null?null:this.size[1]*inputShape[3];return[inputShape[0],inputShape[1],height,width]}else{let height=inputShape[1]==null?null:this.size[0]*inputShape[1],width=inputShape[2]==null?null:this.size[1]*inputShape[2];return[inputShape[0],height,width,inputShape[3]]}}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs),inputShape=input2.shape;if(this.dataFormat==="channelsFirst"){input2=transpose(input2,[0,2,3,1]);let height=this.size[0]*inputShape[2],width=this.size[1]*inputShape[3],resized=this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width]);return transpose(resized,[0,3,1,2])}else{let height=this.size[0]*inputShape[1],width=this.size[1]*inputShape[2];return this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width])}})}getConfig(){let config2={size:this.size,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};UpSampling2D.className="UpSampling2D";serialization_exports.registerClass(UpSampling2D);function depthwiseConv2d4(x,depthwiseKernel,strides=[1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat);let y=preprocessConv2DInput(x,dataFormat);if(x.rank!==4)throw new ValueError(`Input for depthwiseConv2d is required to be 4-D, but is instead ${x.rank}-D`);if(depthwiseKernel.rank!==4)throw new ValueError(`depthwiseKernel is required to be 4-D, but is instead ${depthwiseKernel.rank}-D`);return y=depthwiseConv2d(y,depthwiseKernel,strides,padding==="same"?"same":"valid","NHWC",dilationRate),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}var DepthwiseConv2D=class extends BaseConv{constructor(args){super(2,args);this.depthwiseKernel=null,this.depthMultiplier=args.depthMultiplier==null?1:args.depthMultiplier,this.depthwiseInitializer=getInitializer(args.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=getConstraint(args.depthwiseConstraint),this.depthwiseRegularizer=getRegularizer(args.depthwiseRegularizer)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<4)throw new ValueError(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(inputShape)}.`);let channelAxis=this.dataFormat==="channelsFirst"?1:3;if(inputShape[channelAxis]==null||inputShape[channelAxis]<0)throw new ValueError(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${inputShape[channelAxis]}).`);let inputDim=inputShape[channelAxis],depthwiseKernelShape=[this.kernelSize[0],this.kernelSize[1],inputDim,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",depthwiseKernelShape,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[inputDim*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs=depthwiseConv2d4(inputs,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],outFilters=this.dataFormat==="channelsFirst"?inputShape[1]*this.depthMultiplier:inputShape[3]*this.depthMultiplier,outRows=convOutputLength(rows,this.kernelSize[0],this.padding,this.strides[0]),outCols=convOutputLength(cols,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[inputShape[0],outFilters,outRows,outCols]:[inputShape[0],outRows,outCols,outFilters]}getConfig(){let config2=super.getConfig();return config2.depthMultiplier=this.depthMultiplier,config2.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config2.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config2.depthwiseConstraint=serializeConstraint(this.depthwiseRegularizer),config2}};DepthwiseConv2D.className="DepthwiseConv2D";serialization_exports.registerClass(DepthwiseConv2D);function standardizeArgs(inputs,initialState,constants,numConstants){if(Array.isArray(inputs)){if(initialState!=null||constants!=null)throw new ValueError("When inputs is an array, neither initialState or constants should be provided");numConstants!=null&&(constants=inputs.slice(inputs.length-numConstants,inputs.length),inputs=inputs.slice(0,inputs.length-numConstants)),inputs.length>1&&(initialState=inputs.slice(1,inputs.length)),inputs=inputs[0]}function toListOrNull(x){return x==null||Array.isArray(x)?x:[x]}return initialState=toListOrNull(initialState),constants=toListOrNull(constants),{inputs,initialState,constants}}function rnn(stepFunction,inputs,initialStates,goBackwards=!1,mask,constants,unroll=!1,needPerStepOutputs=!1){return tidy(()=>{let ndim=inputs.shape.length;if(ndim<3)throw new ValueError(`Input should be at least 3D, but is ${ndim}D.`);let axes=[1,0].concat(range5(2,ndim));if(inputs=transpose(inputs,axes),constants!=null)throw new NotImplementedError("The rnn() functoin of the deeplearn.js backend does not support constants yet.");unroll&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),mask!=null&&(mask=mask.asType("bool").asType("float32"),mask.rank===ndim-1&&(mask=expandDims(mask,-1)),mask=transpose(mask,axes)),goBackwards&&(inputs=reverse(inputs,0),mask!=null&&(mask=reverse(mask,0)));let perStepOutputs=[],lastOutput,states=initialStates,timeSteps=inputs.shape[0],perStepInputs=unstack(inputs),perStepMasks;mask!=null&&(perStepMasks=unstack(mask));for(let t=0;tstepFunction(currentInput,states));if(mask==null)lastOutput=stepOutputs[0],states=stepOutputs[1];else{let maskedOutputs=tidy(()=>{let stepMask=perStepMasks[t],negStepMask=onesLike(stepMask).sub(stepMask),output=stepOutputs[0].mul(stepMask).add(states[0].mul(negStepMask)),newStates=states.map((state,i)=>stepOutputs[1][i].mul(stepMask).add(state.mul(negStepMask)));return{output,newStates}});lastOutput=maskedOutputs.output,states=maskedOutputs.newStates}needPerStepOutputs&&perStepOutputs.push(lastOutput)}let outputs;return needPerStepOutputs&&(outputs=stack(perStepOutputs,1)),[lastOutput,outputs,states]})}var RNN=class extends Layer{constructor(args){super(args);let cell;if(args.cell==null)throw new ValueError("cell property is missing for the constructor of RNN.");if(Array.isArray(args.cell)?cell=new StackedRNNCells({cells:args.cell}):cell=args.cell,cell.stateSize==null)throw new ValueError("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=cell,this.returnSequences=args.returnSequences==null?!1:args.returnSequences,this.returnState=args.returnState==null?!1:args.returnState,this.goBackwards=args.goBackwards==null?!1:args.goBackwards,this._stateful=args.stateful==null?!1:args.stateful,this.unroll=args.unroll==null?!1:args.unroll,this.supportsMasking=!0,this.inputSpec=[new InputSpec({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return range5(0,numStates).map(x=>null)}else return this.states_}setStates(states){this.states_=states}computeOutputShape(inputShape){isArrayOfShapes(inputShape)&&(inputShape=inputShape[0]),inputShape=inputShape;let stateSize=this.cell.stateSize;Array.isArray(stateSize)||(stateSize=[stateSize]);let outputDim=stateSize[0],outputShape;if(this.returnSequences?outputShape=[inputShape[0],inputShape[1],outputDim]:outputShape=[inputShape[0],outputDim],this.returnState){let stateShape=[];for(let dim of stateSize)stateShape.push([inputShape[0],dim]);return[outputShape].concat(stateShape)}else return outputShape}computeMask(inputs,mask){return tidy(()=>{Array.isArray(mask)&&(mask=mask[0]);let outputMask=this.returnSequences?mask:null;if(this.returnState){let stateMask=this.states.map(s=>null);return[outputMask].concat(stateMask)}else return outputMask})}get states(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,output=[];for(let i=0;ispec.shape[spec.shape.length-1]),stateSize))throw new ValueError(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=stateSize.map(dim=>new InputSpec({shape:[null,dim]}));this.stateful&&this.resetStates()}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let batchSize=this.inputSpec[0].shape[0];if(batchSize==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_=[zeros([batchSize,this.cell.stateSize])];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_[0]=zeros([batchSize,this.cell.stateSize]);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training===!0?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants;let additionalInputs=[],additionalSpecs=[];if(initialState!=null){kwargs.initialState=initialState,additionalInputs=additionalInputs.concat(initialState),this.stateSpec=[];for(let state of initialState)this.stateSpec.push(new InputSpec({shape:state.shape}));additionalSpecs=additionalSpecs.concat(this.stateSpec)}if(constants!=null&&(kwargs.constants=constants,additionalInputs=additionalInputs.concat(constants),this.numConstants=constants.length),additionalInputs[0]instanceof SymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;inputs=getExactlyOneTensor(inputs),initialState==null&&(this.stateful?initialState=this.states_:initialState=this.getInitialState(inputs));let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(initialState.length!==numStates)throw new ValueError(`RNN Layer has ${numStates} state(s) but was passed ${initialState.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let cellCallKwargs={training},rnnOutputs=rnn((inputs2,states2)=>{let outputs2=this.cell.call([inputs2].concat(states2),cellCallKwargs);return[outputs2[0],outputs2.slice(1)]},inputs,initialState,this.goBackwards,mask,null,this.unroll,this.returnSequences),lastOutput=rnnOutputs[0],outputs=rnnOutputs[1],states=rnnOutputs[2];this.stateful&&this.resetStates(states,training);let output=this.returnSequences?outputs:lastOutput;return this.returnState?[output].concat(states):output})}getInitialState(inputs){return tidy(()=>{let initialState=zeros(inputs.shape);return initialState=sum2(initialState,[1,2]),initialState=expandDims5(initialState),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(dim=>dim>1?tile5(initialState,[1,dim]):initialState):this.cell.stateSize>1?[tile5(initialState,[1,this.cell.stateSize])]:[initialState]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(value)}getConfig(){let baseConfig=super.getConfig(),config2={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(config2.numConstants=this.numConstants);let cellConfig=this.cell.getConfig();return this.getClassName()===RNN.className&&(config2.cell={className:this.cell.getClassName(),config:cellConfig}),Object.assign({},cellConfig,baseConfig,config2)}static fromConfig(cls,config2,customObjects={}){let cellConfig=config2.cell,cell=deserialize(cellConfig,customObjects);return new cls(Object.assign(config2,{cell}))}};RNN.className="RNN";serialization_exports.registerClass(RNN);var RNNCell=class extends Layer{},SimpleRNNCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation==null?this.DEFAULT_ACTIVATION:args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape),this.kernel=this.addWeight("kernel",[inputShape[inputShape.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`SimpleRNNCell expects 2 input Tensors, got ${inputs.length}.`);let prevOutput=inputs[1];inputs=inputs[0];let training=kwargs.training==null?!1:kwargs.training;0onesLike(inputs),rate:this.dropout,training})),0onesLike(prevOutput),rate:this.recurrentDropout,training}));let h,dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask;dpMask!=null?h=dot2(mul(inputs,dpMask),this.kernel.read()):h=dot2(inputs,this.kernel.read()),this.bias!=null&&(h=biasAdd(h,this.bias.read())),recDpMask!=null&&(prevOutput=mul(prevOutput,recDpMask));let output=add2(h,dot2(prevOutput,this.recurrentKernel.read()));return this.activation!=null&&(output=this.activation.apply(output)),[output,output]})}getConfig(){let baseConfig=super.getConfig(),config2={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),recurrentInitializer:serializeInitializer(this.recurrentInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),recurrentRegularizer:serializeRegularizer(this.recurrentRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),recurrentConstraint:serializeConstraint(this.recurrentConstraint),biasConstraint:serializeConstraint(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},baseConfig,config2)}};SimpleRNNCell.className="SimpleRNNCell";serialization_exports.registerClass(SimpleRNNCell);var SimpleRNN=class extends RNN{constructor(args){args.cell=new SimpleRNNCell(args),super(args)}call(inputs,kwargs){return tidy(()=>{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config2){return new cls(config2)}};SimpleRNN.className="SimpleRNN";serialization_exports.registerClass(SimpleRNN);var GRUCell=class extends RNNCell{constructor(args){super(args);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.resetAfter)throw new ValueError("GRUCell does not support reset_after parameter set to true.");this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`GRUCell expects 2 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training==null?!1:kwargs.training,hTMinus1=inputs[1];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:3})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:3}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,z,r,hh;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config2){return config2.implmentation===0&&(config2.implementation=1),new cls(config2)}};GRU.className="GRU";serialization_exports.registerClass(GRU);var LSTMCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=args.unitForgetBias,this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let biasInitializer;if(this.useBias){if(this.unitForgetBias){let capturedBiasInit=this.biasInitializer,capturedUnits=this.units;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let bI=capturedBiasInit.apply([capturedUnits]),bF=new Ones().apply([capturedUnits]),bCAndH=capturedBiasInit.apply([capturedUnits*2]);return concatAlongFirstAxis(concatAlongFirstAxis(bI,bF),bCAndH)}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training;if(inputs=inputs,inputs.length!==3)throw new ValueError(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let hTMinus1=inputs[1],cTMinus1=inputs[2];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:4})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:4}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,i,f,c,o;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config2){return config2.implmentation===0&&(config2.implementation=1),new cls(config2)}};LSTM.className="LSTM";serialization_exports.registerClass(LSTM);var StackedRNNCells=class extends RNNCell{constructor(args){super(args);this.cells=args.cells}get stateSize(){let stateSize=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?stateSize.push(...cell.stateSize):stateSize.push(cell.stateSize);return stateSize}call(inputs,kwargs){return tidy(()=>{inputs=inputs;let states=inputs.slice(1),nestedStates=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?nestedStates.push(states.splice(0,cell.stateSize.length)):nestedStates.push(states.splice(0,1));nestedStates.reverse();let newNestedStates=[],callInputs;for(let i=0;i{nameScope(`RNNCell_${i}`,()=>{cell.build(inputShape),Array.isArray(cell.stateSize)?outputDim=cell.stateSize[0]:outputDim=cell.stateSize,inputShape=[inputShape[0],outputDim]})}),this.built=!0}getConfig(){let baseConfig=super.getConfig(),getCellConfig=cell=>({className:cell.getClassName(),config:cell.getConfig()}),config2={cells:this.cells.map(getCellConfig)};return Object.assign({},baseConfig,config2)}static fromConfig(cls,config2,customObjects={}){let cells=[];for(let cellConfig of config2.cells)cells.push(deserialize(cellConfig,customObjects));return new cls({cells})}get trainableWeights(){if(!this.trainable)return[];let weights=[];for(let cell of this.cells)weights.push(...cell.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let cell of this.cells)trainableWeights.push(...cell.trainableWeights);return trainableWeights.concat(weights)}return weights}getWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.weights);return batchGetValue(weights)}setWeights(weights){let tuples=[];for(let cell of this.cells){let numParams=cell.weights.length,inputWeights=weights.splice(numParams);for(let i=0;idropout2(ones4(),rate),createMask=()=>inTrainPhase(droppedInputs,ones4,training);return!count2||count2<=1?keep(createMask().clone()):Array(count2).fill(void 0).map(createMask).map(m=>keep(m.clone()))}var __rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i{if(this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),kwargs&&kwargs.constants)throw new ValueError("ConvRNN2D cell does not support constants");let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}computeOutputShape(inputShape){let outShape=this.computeSingleOutputShape(inputShape);return this.returnSequences||(outShape=[outShape[0],...outShape.slice(2)]),this.returnState&&(outShape=[outShape,...Array(2).fill([inputShape[0],...outShape.slice(-3)])]),outShape}getInitialState(inputs){return tidy(()=>{let{stateSize}=this.cell,inputShape=inputs.shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)],initialState=zeros(stateShape);return Array.isArray(stateSize)?Array(stateSize.length).fill(initialState):[initialState]})}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let inputShape=this.inputSpec[0].shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)];if(inputShape[0]==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_=[zeros(stateShape)];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_[0]=zeros(stateShape);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}computeSingleOutputShape(inputShape){let{dataFormat,filters,kernelSize,padding,strides,dilationRate}=this.cell,isChannelsFirst=dataFormat==="channelsFirst",h=inputShape[isChannelsFirst?3:2],w=inputShape[isChannelsFirst?4:3],hOut=convOutputLength(h,kernelSize[0],padding,strides[0],dilationRate[0]),wOut=convOutputLength(w,kernelSize[1],padding,strides[1],dilationRate[1]);return[...inputShape.slice(0,2),...isChannelsFirst?[filters,hOut,wOut]:[hOut,wOut,filters]]}};ConvRNN2D.className="ConvRNN2D";var ConvLSTM2DCell=class extends LSTMCell{constructor(args){let{filters,kernelSize,strides,padding,dataFormat,dilationRate}=args;super(Object.assign({},args,{units:filters}));this.filters=filters,assertPositiveInteger(this.filters,"filters"),this.kernelSize=normalizeArray(kernelSize,2,"kernelSize"),this.kernelSize.forEach(size=>assertPositiveInteger(size,"kernelSize")),this.strides=normalizeArray(strides||1,2,"strides"),this.strides.forEach(stride=>assertPositiveInteger(stride,"strides")),this.padding=padding||"valid",checkPaddingMode(this.padding),this.dataFormat=dataFormat||"channelsLast",checkDataFormat(this.dataFormat),this.dilationRate=normalizeArray(dilationRate||1,2,"dilationRate"),this.dilationRate.forEach(rate=>assertPositiveInteger(rate,"dilationRate"))}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],numOfKernels=4,kernelShape=this.kernelSize.concat([inputDim,this.filters*numOfKernels]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let recurrentKernelShape=this.kernelSize.concat([this.filters,this.filters*numOfKernels]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",recurrentKernelShape,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let biasInitializer;if(this.unitForgetBias){let init2=this.biasInitializer,filters=this.filters;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let biasI=init2.apply([filters]),biasF=ones2([filters]),biasCAndO=init2.apply([filters*2]);return concatenate([biasI,biasF,biasCAndO])}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*numOfKernels],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs.length!==3)throw new ValueError(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training||!1,x=inputs[0],hTMinus1=inputs[1],cTMinus1=inputs[2],numOfKernels=4;0onesLike(x),rate:this.dropout,training,count:numOfKernels}));let dropoutMask=this.dropoutMask,applyDropout=(x2,mask,index)=>!mask||!mask[index]?x2:mul(mask[index],x2),xI=applyDropout(x,dropoutMask,0),xF=applyDropout(x,dropoutMask,1),xC=applyDropout(x,dropoutMask,2),xO=applyDropout(x,dropoutMask,3);0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:numOfKernels}));let recDropoutMask=this.recurrentDropoutMask,hI=applyDropout(hTMinus1,recDropoutMask,0),hF=applyDropout(hTMinus1,recDropoutMask,1),hC=applyDropout(hTMinus1,recDropoutMask,2),hO=applyDropout(hTMinus1,recDropoutMask,3),kernelChannelAxis=3,[kernelI,kernelF,kernelC,kernelO]=split(this.kernel.read(),numOfKernels,kernelChannelAxis),[biasI,biasF,biasC,biasO]=this.useBias?split(this.bias.read(),numOfKernels):[null,null,null,null];xI=this.inputConv(xI,kernelI,biasI,this.padding),xF=this.inputConv(xF,kernelF,biasF,this.padding),xC=this.inputConv(xC,kernelC,biasC,this.padding),xO=this.inputConv(xO,kernelO,biasO,this.padding);let[recKernelI,recKernelF,recKernelC,recKernelO]=split(this.recurrentKernel.read(),numOfKernels,kernelChannelAxis);hI=this.recurrentConv(hI,recKernelI),hF=this.recurrentConv(hF,recKernelF),hC=this.recurrentConv(hC,recKernelC),hO=this.recurrentConv(hO,recKernelO);let i=this.recurrentActivation.apply(add2(xI,hI)),f=this.recurrentActivation.apply(add2(xF,hF)),c=add2(mul(f,cTMinus1),mul(i,this.activation.apply(add2(xC,hC)))),h=mul(this.recurrentActivation.apply(add2(xO,hO)),this.activation.apply(c));return[h,h,c]})}getConfig(){let _a=super.getConfig(),{units:_}=_a,baseConfig=__rest(_a,["units"]),config2={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},baseConfig,config2)}inputConv(x,w,b,padding){let out=conv2d(x,w,this.strides,padding||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return b?biasAdd(out,b,this.dataFormat):out}recurrentConv(x,w){return conv2d(x,w,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};ConvLSTM2DCell.className="ConvLSTM2DCell";serialization_exports.registerClass(ConvLSTM2DCell);var ConvLSTM2D=class extends ConvRNN2D{constructor(args){let cell=new ConvLSTM2DCell(args);super(Object.assign({},args,{cell}))}static fromConfig(cls,config2){return new cls(config2)}};ConvLSTM2D.className="ConvLSTM2D";serialization_exports.registerClass(ConvLSTM2D);var Dropout=class extends Layer{constructor(args){super(args);this.rate=Math.max(Math.min(args.rate,1),0),this.noiseShape=args.noiseShape,this.seed=args.seed,this.supportsMasking=!0}getNoiseShape(input2){if(this.noiseShape==null)return this.noiseShape;let inputShape=input2.shape,noiseShape=[];for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(0dropout2(input2,this.rate,noiseShape,this.seed),()=>input2,training)}return inputs})}getConfig(){let config2={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}dispose(){return super.dispose()}};Dropout.className="Dropout";serialization_exports.registerClass(Dropout);var SpatialDropout1D=class extends Dropout{constructor(args){super(args);this.inputSpec=[{ndim:3}]}getNoiseShape(input2){let inputShape=input2.shape;return[inputShape[0],1,inputShape[2]]}};SpatialDropout1D.className="SpatialDropout1D";serialization_exports.registerClass(SpatialDropout1D);var Dense=class extends Layer{constructor(args){super(args);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.batchInputShape==null&&args.inputShape==null&&args.inputDim!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),this.batchInputShape=[batchSize,args.inputDim]}this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation),args.useBias!=null&&(this.useBias=args.useBias),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputLastDim=inputShape[inputShape.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[inputLastDim,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:inputLastDim}}],this.built=!0}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return outputShape[outputShape.length-1]=this.units,outputShape}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName()),output;return fusedActivationName!=null?output=dot2(input2,this.kernel.read(),fusedActivationName,this.bias?this.bias.read():null):(output=dot2(input2,this.kernel.read()),this.bias!=null&&(output=biasAdd(output,this.bias.read())),this.activation!=null&&(output=this.activation.apply(output))),output})}getConfig(){let config2={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Dense.className="Dense";serialization_exports.registerClass(Dense);var Flatten=class extends Layer{constructor(args){args=args||{},super(args),this.inputSpec=[{minNDim:3}],this.dataFormat=args.dataFormat}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);for(let dim of inputShape.slice(1))if(dim==null)throw new ValueError(`The shape of the input to "Flatten" is not fully defined (got ${inputShape.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[inputShape[0],arrayProd(inputShape,1)]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(this.dataFormat==="channelsFirst"&&input2.rank>1){let permutation=[0];for(let i=2;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.activation.apply(input2)})}getConfig(){let config2={activation:serializeActivation(this.activation)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Activation2.className="Activation";serialization_exports.registerClass(Activation2);var RepeatVector=class extends Layer{constructor(args){super(args);this.n=args.n,this.inputSpec=[{ndim:2}]}computeOutputShape(inputShape){return[inputShape[0],this.n,inputShape[1]]}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),repeat(inputs,this.n)))}getConfig(){let config2={n:this.n},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};RepeatVector.className="RepeatVector";serialization_exports.registerClass(RepeatVector);var Reshape2=class extends Layer{constructor(args){super(args);this.targetShape=args.targetShape;for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,outputShape=inputShape.slice(0,1).concat(this.fixUnknownDimension(inputShape.slice(1),this.targetShape));return input2.reshape(outputShape)})}getConfig(){let config2={targetShape:this.targetShape},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Reshape2.className="Reshape";serialization_exports.registerClass(Reshape2);var Permute=class extends Layer{constructor(args){super(args);if(args.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(args.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${args.dims} instead.`);let expectedSortedIndices=range5(1,args.dims.length+1);if(!util_exports.arraysEqual(args.dims.slice().sort(),expectedSortedIndices))throw new Error("Invalid permutation `dims`: "+JSON.stringify(args.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=args.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new InputSpec({ndim:this.dims.length+1})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return this.dims.forEach((dim,i)=>{outputShape[i+1]=inputShape[dim]}),outputShape}call(inputs,kwargs){return transpose(getExactlyOneTensor(inputs),this.dimsIncludingBatch)}getConfig(){let config2={dims:this.dims},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Permute.className="Permute";serialization_exports.registerClass(Permute);var Masking=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null?this.maskValue=args.maskValue==null?0:args.maskValue:this.maskValue=0}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={maskValue:this.maskValue};return Object.assign(config2,baseConfig),config2}computeMask(inputs,mask){let input2=getExactlyOneTensor(inputs),axis=-1;return any(notEqual(input2,this.maskValue),axis)}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),axis=-1,keepDims=!0,booleanMask=any(notEqual(input2,this.maskValue),axis,keepDims);return input2.mul(booleanMask.asType(input2.dtype))})}};Masking.className="Masking";serialization_exports.registerClass(Masking);var Embedding=class extends Layer{constructor(args){super(args);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",args.batchInputShape==null&&args.inputShape==null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),args.inputLength==null?this.batchInputShape=[batchSize,null]:this.batchInputShape=[batchSize].concat(toList(args.inputLength))}this.inputDim=args.inputDim,assertPositiveInteger(this.inputDim,"inputDim"),this.outputDim=args.outputDim,assertPositiveInteger(this.outputDim,"outputDim"),this.embeddingsInitializer=getInitializer(args.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=getRegularizer(args.embeddingsRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.embeddingsConstraint=getConstraint(args.embeddingsConstraint),this.maskZero=args.maskZero,this.supportsMasking=args.maskZero,this.inputLength=args.inputLength}build(inputShape){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(inputShape){}computeMask(inputs,mask){return tidy(()=>this.maskZero?(inputs=getExactlyOneTensor(inputs),notEqual(inputs,zerosLike(inputs))):null)}computeOutputShape(inputShape){if(inputShape=getExactlyOneShape(inputShape),this.inputLength==null)return[...inputShape,this.outputDim];let inLens=toList(this.inputLength);if(inLens.length!==inputShape.length-1)throw new ValueError(`"inputLength" is ${this.inputLength}, but received input shape has shape ${inputShape}`);{let i=0;for(let k=0;k{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return input2.dtype!=="int32"&&(input2=cast5(input2,"int32")),gather2(this.embeddings.read(),input2.as1D()).reshape(getExactlyOneShape(this.computeOutputShape(input2.shape)))})}getConfig(){let config2={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:serializeInitializer(this.embeddingsInitializer),embeddingsRegularizer:serializeRegularizer(this.embeddingsRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),embeddingsConstraint:serializeConstraint(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Embedding.className="Embedding";serialization_exports.registerClass(Embedding);var Merge=class extends Layer{constructor(args){super(args||{});this.supportsMasking=!0}mergeFunction(inputs){throw new NotImplementedError}computeElementwiseOpOutputShape(shape1,shape2){if(shape1==null||shape2==null)return null;if(shape1.length1)throw new ValueError(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(inputShape)}.`);let outputShape=inputShape[0]==null?null:inputShape[0].slice(1);for(let i=1;ishape.length);inputShape.indexOf(null)===-1&&unique4(allRanks).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,this.reshapeRequired){let reshapedInputs=[],inputDims=inputs.map(input2=>input2.rank);if(inputDims.indexOf(null)===-1){let maxNDim=max5(inputDims);for(let x of inputs){let xNDim=x.rank;for(let k=0;k1){let dims=range5(1,xNDim).concat([0]);reshapedInputs.push(transpose(x,dims)),transposed=!0}else reshapedInputs.push(x)}let y=this.mergeFunction(reshapedInputs),yNDim=y.rank;if(transposed){if(yNDim==null){let yShape=y.shape,yNDim2=yShape.length,batchSize=yShape[yNDim2-1],newShape=[batchSize].concat(yShape.slice(0,yShape.length-1));y=transpose(y.reshape([-1,batchSize]),[1,0]).reshape(newShape)}else if(yNDim>1){let dims=[yNDim-1].concat(range5(0,yNDim-1));y=transpose(y,dims)}}return y}}else return this.mergeFunction(inputs)})}computeOutputShape(inputShape){inputShape=inputShape;let outputShape;inputShape[0]==null?outputShape=null:outputShape=inputShape[0].slice(1);for(let i=1;i{if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an Array");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an Array");if(mask.length!==inputs.length)throw new ValueError(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${inputs.length} vs ${mask.length})`);if(mask.every(m=>m==null))return null;mask=mask.map(m=>m==null?m:expandDims(m,0));let output=mask[0];for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0];for(let i=1;i{let output=inputs[0];for(let i=1;i1)throw new ValueError("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(inputShape))}mergeFunction(inputs){return tidy(()=>concatenate(inputs,this.axis))}computeOutputShape(inputShape){if(!(Array.isArray(inputShape)&&Array.isArray(inputShape[0])))throw new ValueError("A `Concatenate` layer should be called on a list of inputs.");let inputShapes=inputShape,outputShape=inputShapes[0].slice(),axis=this.axis<0?outputShape.length+this.axis:this.axis;for(let shape of inputShapes.slice(1)){if(outputShape[axis]==null||shape[axis]==null){outputShape[axis]=null;break}outputShape[axis]+=shape[axis]}return outputShape}computeMask(inputs,mask){if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an array for Concatenate");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an array for Concatenate");if(mask.length!==inputs.length)throw new ValueError(`Mismatch in the length of mask (${mask.length}) and the legnth of inputs (${inputs.length})`);return tidy(()=>{let allNullMasks=!0;if(mask.forEach(m=>{if(m!=null){allNullMasks=!1;return}}),allNullMasks)return null;let outputMasks=[];for(let i=0;i3||y.shape.length>3)throw new NotImplementedError("batchDot is not implemented for tensors of 4D or higher rank yet");if(util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${x.shape.length}`),util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${y.shape.length}`),typeof axes=="number"&&(axes=[axes,axes]),x.dtype==="complex64"||y.dtype==="complex64")throw new NotImplementedError("batchDot is not implemented for complex64-type Tensors yet.");let xNDim=x.shape.length,yNDim=y.shape.length;axes==null&&(axes=[xNDim-1,yNDim-2]);let axesArray=axes;return tidy(()=>{let diff;if(xNDim>yNDim){diff=xNDim-yNDim;let diffShape=[];for(let i=0;ixNDim){diff=yNDim-xNDim;let diffShape=[];for(let i=0;i0){let idx;xNDim>yNDim?idx=xNDim+yNDim-3:idx=xNDim-1;let squeezeAxes=[];for(let i=idx;i"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0],shape2=inputShape[1];if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);if(shape1[axes[0]]!==shape2[axes[1]])throw new ValueError(`Dimension incompatibility: ${shape1[axes[0]]} !== ${shape2[axes[1]]}`)}mergeFunction(inputs){if(inputs.length!==2)throw new ValueError(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${inputs.length} input(s).`);let x1=inputs[0],x2=inputs[1],axes;return Array.isArray(this.axes)?axes=this.axes.map((axis,i)=>interpretAxis(axis,inputs[i].shape.length)):axes=[interpretAxis(this.axes,x1.shape.length),interpretAxis(this.axes,x2.shape.length)],this.normalize&&(x1=l2Normalize(x1,axes[0]),x2=l2Normalize(x2,axes[1])),batchDot(x1,x2,axes)}interpretAxes(shape1,shape2){let axes;return Array.isArray(this.axes)?axes=this.axes:axes=[interpretAxis(this.axes,shape1.length),interpretAxis(this.axes,shape2.length)],axes}computeOutputShape(inputShape){util_exports.assert(Array.isArray(inputShape)&&inputShape.length===2&&Array.isArray(inputShape[0])&&Array.isArray(inputShape[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0].slice(),shape2=inputShape[1].slice();if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);shape1.splice(axes[0],1),shape2.splice(axes[1],1),shape2.splice(0,1);let outputShape=shape1.concat(shape2);return outputShape.length===1&&outputShape.push(1),outputShape}computeMask(inputs,mask){return null}getConfig(){let config2={axes:this.axes,normalize:this.normalize},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Dot.className="Dot";serialization_exports.registerClass(Dot);var GaussianNoise=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.stddev=args.stddev}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={stddev:this.stddev};return Object.assign(config2,baseConfig),config2}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return inTrainPhase(()=>randomNormal2(input2.shape,0,this.stddev).add(input2),()=>input2,kwargs.training||!1)})}};GaussianNoise.className="GaussianNoise";serialization_exports.registerClass(GaussianNoise);var GaussianDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={rate:this.rate};return Object.assign(config2,baseConfig),config2}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.rate>0&&this.rate<1?inTrainPhase(()=>{let stddev=Math.sqrt(this.rate/(1-this.rate));return input2.mul(randomNormal2(input2.shape,1,stddev))},()=>input2,kwargs.training||!1):input2})}};GaussianDropout.className="GaussianDropout";serialization_exports.registerClass(GaussianDropout);var AlphaDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate,this.noiseShape=args.noiseShape}_getNoiseShape(inputs){return this.noiseShape||getExactlyOneTensor(inputs).shape}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={rate:this.rate};return Object.assign(config2,baseConfig),config2}call(inputs,kwargs){return tidy(()=>{if(this.rate<1&&this.rate>0){let noiseShape=this._getNoiseShape(inputs);return inTrainPhase(()=>{let input2=getExactlyOneTensor(inputs),alpha=1.6732632423543772,scale2=1.0507009873554805,alphaP=-alpha*scale2,keptIdx=greaterEqual(randomUniform(noiseShape),this.rate);keptIdx=cast5(keptIdx,"float32");let a=((1-this.rate)*(1+this.rate*alphaP**2))**-.5,b=-a*alphaP*this.rate;return input2.mul(keptIdx).add(keptIdx.add(-1).mul(alphaP)).mul(a).add(b)},()=>getExactlyOneTensor(inputs),kwargs.training||!1)}return inputs})}};AlphaDropout.className="AlphaDropout";serialization_exports.registerClass(AlphaDropout);function batchNormalization(x,mean4,variance,beta,gamma,epsilon3=.001){let out;if(x.rank===2)out=batchNorm2d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===3)out=batchNorm3d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===4)out=batchNorm4d(x,mean4,variance,beta,gamma,epsilon3);else throw new NotImplementedError(`batchNormalization is not implemented for array of rank ${x.rank} yet`);return out}function regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance;return[batchNormalization(x,mean4,variance,beta,gamma,epsilon3),mean4,variance]})}function broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance,targetShape=[];for(let axis of range5(0,x.rank))reductionAxes.indexOf(axis)!==-1?targetShape.push(1):targetShape.push(x.shape[axis]);let broadcastMean=mean4.reshape(targetShape),broadcastVariance=variance.reshape(targetShape),broadcastGamma=gamma==null?null:gamma.reshape(targetShape),broadcastBeta=beta==null?null:beta.reshape(targetShape);return[batchNormalization(x,broadcastMean,broadcastVariance,broadcastBeta,broadcastGamma,epsilon3),mean4,variance]})}function normalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return util_exports.arraysEqual(reductionAxes.slice().sort(),range5(0,x.rank-1))?regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3):broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3)}var BatchNormalization=class extends Layer{constructor(args){args==null&&(args={}),super(args),this.supportsMasking=!0,this.axis=args.axis==null?-1:args.axis,this.momentum=args.momentum==null?.99:args.momentum,this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.movingMeanInitializer=getInitializer(args.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=getInitializer(args.movingVarianceInitializer||"ones"),this.betaConstraint=getConstraint(args.betaConstraint),this.gammaConstraint=getConstraint(args.gammaConstraint),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let axis=this.axis>=0?this.axis:this.axis+inputShape.length,dim=inputShape[axis];if(dim==null)throw new ValueError(`Axis ${axis} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(inputShape)}.`);this.inputSpec=[new InputSpec({ndim:inputShape.length,axes:{[axis]:dim}})];let shape=[dim];this.scale&&(this.gamma=this.addWeight("gamma",shape,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",shape,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",shape,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",shape,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training,input2=getExactlyOneTensor(inputs),inputShape=input2.shape,ndim=inputShape.length,reductionAxes=range5(0,ndim),axis=this.axis>=0?this.axis:this.axis+ndim;reductionAxes.splice(axis,1);let broadcastShape=pyListRepeat(1,ndim);broadcastShape[axis]=inputShape[axis];let sortedReductionAxes=reductionAxes.slice();sortedReductionAxes.sort();let needsBroadcasting=!util_exports.arraysEqual(sortedReductionAxes,range5(0,ndim).slice(0,ndim-1)),normalizeInference=()=>{if(needsBroadcasting){let broadcastMovingMean=this.movingMean.read().reshape(broadcastShape),broadcastMovingVariance=this.movingVariance.read().reshape(broadcastShape),broadcastBeta=this.center?this.beta.read().reshape(broadcastShape):null,broadcastGamma=this.scale?this.gamma.read().reshape(broadcastShape):null;return batchNormalization(input2,broadcastMovingMean,broadcastMovingVariance,broadcastBeta,broadcastGamma,this.epsilon)}else return batchNormalization(input2,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!training)return normalizeInference();let[normedTraining,mean4,variance]=normalizeBatchInTraining(input2,this.gamma.read(),this.beta.read(),reductionAxes,this.epsilon),doMovingAverage=(variable2,value,momentum)=>{tidy(()=>{let decay=1-momentum,origValue=variable2.read(),updateDelta=origValue.sub(value).mul(decay);variable2.write(origValue.sub(updateDelta))})};return(()=>{doMovingAverage(this.movingMean,mean4,this.momentum),doMovingAverage(this.movingVariance,variance,this.momentum)})(),normedTraining})}getConfig(){let config2={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:serializeInitializer(this.betaInitializer),gammaInitializer:serializeInitializer(this.gammaInitializer),movingMeanInitializer:serializeInitializer(this.movingMeanInitializer),movingVarianceInitializer:serializeInitializer(this.movingVarianceInitializer),betaRegularizer:serializeRegularizer(this.betaRegularizer),gammaRegularizer:serializeRegularizer(this.gammaRegularizer),betaConstraint:serializeConstraint(this.betaConstraint),gammaConstraint:serializeConstraint(this.gammaConstraint)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};BatchNormalization.className="BatchNormalization";serialization_exports.registerClass(BatchNormalization);var LayerNormalization=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.axis=args.axis==null?-1:args.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let axis of this.axis)if(!Number.isInteger(axis))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer),this.supportsMasking=!0}build(inputShape){inputShape=getExactlyOneShape(inputShape);let nDims=inputShape.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=nDims)throw new Error(`Invalid axis: ${axis}`);if(this.axis.length!==unique4(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let paramShape=this.axis.map(axis=>inputShape[axis]),trainable=!0;this.scale?this.gamma=this.addWeight("gamma",paramShape,"float32",this.gammaInitializer,this.gammaRegularizer,trainable):this.gamma=null,this.center?this.beta=this.addWeight("beta",paramShape,"float32",this.betaInitializer,this.betaRegularizer,trainable):this.beta=null,this.built=!0}call(inputs,kwargs){let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,nDims=inputShape.length;return tidy(()=>{let keepDims=!0,{mean:mean4,variance}=moments(input2,this.axis,keepDims),broadcastShape=pyListRepeat(1,nDims);for(let dim of this.axis)broadcastShape[dim]=inputShape[dim];let broadcast=v=>v!=null&&v.shape.length!==nDims&&this.axis!==[nDims-1]?v.reshape(broadcastShape):v,scale2=broadcast(this.gamma.read()),offset=broadcast(this.beta.read()),momentsTiling=[],scaleOffsetTiling=[];for(let i=0;i{if(x.rank!==4)throw new ValueError(`temporalPadding expects input tensor to be 4-D, but received a ${x.rank}-D tensor.`);if(padding==null&&(padding=[[1,1],[1,1]]),padding.length!==2||padding[0].length!==2||padding[1].length!==2)throw new ValueError("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(dataFormat==null&&(dataFormat=imageDataFormat()),dataFormat!=="channelsLast"&&dataFormat!=="channelsFirst")throw new ValueError(`Unknown data format: ${dataFormat}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let pattern;return dataFormat==="channelsFirst"?pattern=[[0,0],[0,0],padding[0],padding[1]]:pattern=[[0,0],padding[0],padding[1],[0,0]],pad(x,pattern)})}var ZeroPadding2D=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.dataFormat=args.dataFormat==null?imageDataFormat():args.dataFormat,args.padding==null)this.padding=[[1,1],[1,1]];else if(typeof args.padding=="number")this.padding=[[args.padding,args.padding],[args.padding,args.padding]];else{if(args.padding=args.padding,args.padding.length!==2)throw new ValueError(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${args.padding.length} array.`);let heightPadding,widthPadding;if(typeof args.padding[0]=="number")heightPadding=[args.padding[0],args.padding[0]],widthPadding=[args.padding[1],args.padding[1]];else{if(args.padding=args.padding,args.padding[0].length!==2)throw new ValueError(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${args.padding[0].length} array.`);if(heightPadding=args.padding[0],args.padding[1].length!==2)throw new ValueError(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${args.padding[1].length} array.`);widthPadding=args.padding[1]}this.padding=[heightPadding,widthPadding]}this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows,cols;return this.dataFormat==="channelsFirst"?(inputShape[2]!=null&&inputShape[2]>=0?rows=inputShape[2]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[3]!=null&&inputShape[3]>=0?cols=inputShape[3]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],inputShape[1],rows,cols]):(inputShape[1]!=null&&inputShape[1]>=0?rows=inputShape[1]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[2]!=null&&inputShape[2]>=0?cols=inputShape[2]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],rows,cols,inputShape[3]])}call(inputs,kwargs){return tidy(()=>spatial2dPadding(getExactlyOneTensor(inputs),this.padding,this.dataFormat))}getConfig(){let config2={padding:this.padding,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};ZeroPadding2D.className="ZeroPadding2D";serialization_exports.registerClass(ZeroPadding2D);function pool2d(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv2DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool(x,poolSize,strides,paddingString):y=avgPool(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function pool3d2(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv3DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool3d(x,poolSize,strides,paddingString):y=avgPool3d(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var Pooling1D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=2),super(args),typeof args.poolSize=="number")this.poolSize=[args.poolSize];else if(Array.isArray(args.poolSize)&&args.poolSize.length===1&&typeof args.poolSize[0]=="number")this.poolSize=args.poolSize;else throw new ValueError(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.poolSize)}`);if(assertPositiveInteger(this.poolSize,"poolSize"),args.strides==null)this.strides=this.poolSize;else if(typeof args.strides=="number")this.strides=[args.strides];else if(Array.isArray(args.strides)&&args.strides.length===1&&typeof args.strides[0]=="number")this.strides=args.strides;else throw new ValueError(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.strides)}`);assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let length=convOutputLength(inputShape[1],this.poolSize[0],this.padding,this.strides[0]);return[inputShape[0],length,inputShape[2]]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs),inputs=expandDims5(getExactlyOneTensor(inputs),2);let output=this.poolingFunction(getExactlyOneTensor(inputs),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return squeeze(output,[2])})}getConfig(){let config2={poolSize:this.poolSize,padding:this.padding,strides:this.strides},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},MaxPooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling1D.className="MaxPooling1D";serialization_exports.registerClass(MaxPooling1D);var AveragePooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling1D.className="AveragePooling1D";serialization_exports.registerClass(AveragePooling1D);var Pooling2D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==2)throw new ValueError(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2];return rows=convOutputLength(rows,this.poolSize[0],this.padding,this.strides[0]),cols=convOutputLength(cols,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],rows,cols]:[inputShape[0],rows,cols,inputShape[3]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config2={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},MaxPooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling2D.className="MaxPooling2D";serialization_exports.registerClass(MaxPooling2D);var AveragePooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling2D.className="AveragePooling2D";serialization_exports.registerClass(AveragePooling2D);var Pooling3D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==3)throw new ValueError(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:5})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let depths=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],rows=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],cols=this.dataFormat==="channelsFirst"?inputShape[4]:inputShape[3];return depths=convOutputLength(depths,this.poolSize[0],this.padding,this.strides[0]),rows=convOutputLength(rows,this.poolSize[1],this.padding,this.strides[1]),cols=convOutputLength(cols,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],depths,rows,cols]:[inputShape[0],depths,rows,cols,inputShape[4]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config2={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},MaxPooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling3D.className="MaxPooling3D";serialization_exports.registerClass(MaxPooling3D);var AveragePooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling3D.className="AveragePooling3D";serialization_exports.registerClass(AveragePooling3D);var GlobalPooling1D=class extends Layer{constructor(args){super(args);this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){return[inputShape[0],inputShape[2]]}call(inputs,kwargs){throw new NotImplementedError}},GlobalAveragePooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return mean(input2,1)})}};GlobalAveragePooling1D.className="GlobalAveragePooling1D";serialization_exports.registerClass(GlobalAveragePooling1D);var GlobalMaxPooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return max(input2,1)})}};GlobalMaxPooling1D.className="GlobalMaxPooling1D";serialization_exports.registerClass(GlobalMaxPooling1D);var GlobalPooling2D=class extends Layer{constructor(args){super(args);this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){return inputShape=inputShape,this.dataFormat==="channelsLast"?[inputShape[0],inputShape[3]]:[inputShape[0],inputShape[1]]}call(inputs,kwargs){throw new NotImplementedError}getConfig(){let config2={dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},GlobalAveragePooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?mean(input2,[1,2]):mean(input2,[2,3])})}};GlobalAveragePooling2D.className="GlobalAveragePooling2D";serialization_exports.registerClass(GlobalAveragePooling2D);var GlobalMaxPooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?max(input2,[1,2]):max(input2,[2,3])})}};GlobalMaxPooling2D.className="GlobalMaxPooling2D";serialization_exports.registerClass(GlobalMaxPooling2D);var Wrapper=class extends Layer{constructor(args){super(args);this.layer=args.layer}build(inputShape){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(value){this.layer!=null&&(this.layer.trainable=value)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(weights){this.layer.setWeights(weights)}getConfig(){let config2={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(value)}static fromConfig(cls,config2,customObjects={}){let layerConfig=config2.layer,layer=deserialize(layerConfig,customObjects);delete config2.layer;let newConfig={layer};return Object.assign(newConfig,config2),new cls(newConfig)}},TimeDistributed=class extends Wrapper{constructor(args){super(args);this.supportsMasking=!0}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<3)throw new ValueError(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(inputShape)}`);this.inputSpec=[{shape:inputShape}];let childInputShape=[inputShape[0]].concat(inputShape.slice(2));this.layer.built||(this.layer.build(childInputShape),this.layer.built=!0),super.build(inputShape)}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let childInputShape=[inputShape[0]].concat(inputShape.slice(2)),childOutputShape=this.layer.computeOutputShape(childInputShape),timesteps=inputShape[1];return[childOutputShape[0],timesteps].concat(childOutputShape.slice(1))}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),rnn((inputs2,states)=>[getExactlyOneTensor(this.layer.call(inputs2,kwargs)),[]],inputs,[],!1,null,null,!1,!0)[1]))}};TimeDistributed.className="TimeDistributed";serialization_exports.registerClass(TimeDistributed);function checkBidirectionalMergeMode(value){checkStringTypeUnionValue(VALID_BIDIRECTIONAL_MERGE_MODES,"BidirectionalMergeMode",value)}var DEFAULT_BIDIRECTIONAL_MERGE_MODE="concat",Bidirectional=class extends Wrapper{constructor(args){super(args);let layerConfig=args.layer.getConfig(),forwDict={};forwDict.className=args.layer.getClassName(),forwDict.config=layerConfig,this.forwardLayer=deserialize(forwDict),layerConfig.goBackwards=layerConfig.goBackwards!==!0;let backDict={};if(backDict.className=args.layer.getClassName(),backDict.config=layerConfig,this.backwardLayer=deserialize(backDict),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=args.mergeMode===void 0?DEFAULT_BIDIRECTIONAL_MERGE_MODE:args.mergeMode,checkBidirectionalMergeMode(this.mergeMode),args.weights)throw new NotImplementedError("weights support is not implemented for Bidirectional layer yet.");this._stateful=args.layer.stateful,this.returnSequences=args.layer.returnSequences,this.returnState=args.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=args.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(value){this._trainable=value,this.forwardLayer!=null&&(this.forwardLayer.trainable=value),this.backwardLayer!=null&&(this.backwardLayer.trainable=value)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(weights){let numWeights=weights.length,numeightsOver2=Math.floor(numWeights/2);this.forwardLayer.setWeights(weights.slice(0,numeightsOver2)),this.backwardLayer.setWeights(weights.slice(numeightsOver2))}computeOutputShape(inputShape){let layerShapes=this.forwardLayer.computeOutputShape(inputShape);Array.isArray(layerShapes)&&Array.isArray(layerShapes[0])||(layerShapes=[layerShapes]),layerShapes=layerShapes;let outputShape,outputShapes,stateShape;return this.returnState&&(stateShape=layerShapes.slice(1)),outputShape=layerShapes[0],outputShape=outputShape,this.mergeMode==="concat"?(outputShape[outputShape.length-1]*=2,outputShapes=[outputShape]):this.mergeMode==null?outputShapes=[outputShape,outputShape.slice()]:outputShapes=[outputShape],this.returnState?this.mergeMode==null?outputShapes.concat(stateShape).concat(stateShape.slice()):[outputShape].concat(stateShape).concat(stateShape.slice()):singletonOrArray(outputShapes)}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);if(inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants,Array.isArray(inputs)&&(initialState=inputs.slice(1),inputs=inputs[0]),(initialState==null||initialState.length===0)&&constants==null)return super.apply(inputs,kwargs);let additionalInputs=[],additionalSpecs=[];if(initialState!=null){let numStates=initialState.length;if(numStates%2>0)throw new ValueError("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");kwargs.initialState=initialState,additionalInputs.push(...initialState);let stateSpecs=initialState.map(state=>new InputSpec({shape:state.shape}));this.forwardLayer.stateSpec=stateSpecs.slice(0,numStates/2),this.backwardLayer.stateSpec=stateSpecs.slice(numStates/2),additionalSpecs.push(...stateSpecs)}if(constants!=null)throw new NotImplementedError("Support for constants in Bidirectional layers is not implemented yet.");let isSymbolicTensor=additionalInputs[0]instanceof SymbolicTensor;for(let tensor2 of additionalInputs)if(tensor2 instanceof SymbolicTensor!==isSymbolicTensor)throw new ValueError("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(isSymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let initialState=kwargs.initialState,y,yRev;if(initialState==null)y=this.forwardLayer.call(inputs,kwargs),yRev=this.backwardLayer.call(inputs,kwargs);else{let forwardState=initialState.slice(0,initialState.length/2),backwardState=initialState.slice(initialState.length/2);y=this.forwardLayer.call(inputs,Object.assign(kwargs,{initialState:forwardState})),yRev=this.backwardLayer.call(inputs,Object.assign(kwargs,{initialState:backwardState}))}let states;this.returnState&&(Array.isArray(y)&&(states=y.slice(1).concat(yRev.slice(1))),y=y[0],yRev=yRev[0]),this.returnSequences&&(yRev=reverse(yRev,1));let output;return this.mergeMode==="concat"?output=concatenate([y,yRev]):this.mergeMode==="sum"?output=add2(y,yRev):this.mergeMode==="ave"?output=mul(.5,add2(y,yRev)):this.mergeMode==="mul"?output=mul(y,yRev):this.mergeMode==null&&(output=[y,yRev]),this.returnState?this.mergeMode==null?output.concat(states):[output].concat(states):output})}resetStates(states){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(inputShape){nameScope(this.forwardLayer.name,()=>{this.forwardLayer.build(inputShape)}),nameScope(this.backwardLayer.name,()=>{this.backwardLayer.build(inputShape)}),this.built=!0}computeMask(inputs,mask){Array.isArray(mask)&&(mask=mask[0]);let outputMask;if(this.returnSequences?this.mergeMode==null?outputMask=[mask,mask]:outputMask=mask:this.mergeMode==null?outputMask=[null,null]:outputMask=null,this.returnState){let stateMask=this.forwardLayer.states.map(state=>null);return Array.isArray(outputMask)?outputMask.concat(stateMask).concat(stateMask):[outputMask].concat(stateMask).concat(stateMask)}else return outputMask}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(value),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(value)}getConfig(){let config2={mergeMode:this.mergeMode},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}static fromConfig(cls,config2){let rnnLayer=deserialize(config2.layer);if(delete config2.layer,config2.numConstants!=null)throw new NotImplementedError("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let newConfig=config2;return newConfig.layer=rnnLayer,new cls(newConfig)}};Bidirectional.className="Bidirectional";serialization_exports.registerClass(Bidirectional);function inputLayer(args){return new InputLayer(args)}function elu5(args){return new ELU4(args)}function reLU(args){return new ReLU(args)}function leakyReLU(args){return new LeakyReLU(args)}function prelu5(args){return new PReLU(args)}function softmax5(args){return new Softmax3(args)}function thresholdedReLU(args){return new ThresholdedReLU(args)}function conv1d2(args){return new Conv1D(args)}function conv2d5(args){return new Conv2D2(args)}function conv2dTranspose2(args){return new Conv2DTranspose(args)}function conv3d2(args){return new Conv3D2(args)}function separableConv2d2(args){return new SeparableConv2D(args)}function cropping2D(args){return new Cropping2D(args)}function upSampling2d(args){return new UpSampling2D(args)}function depthwiseConv2d5(args){return new DepthwiseConv2D(args)}function activation(args){return new Activation2(args)}function dense(args){return new Dense(args)}function dropout3(args){return new Dropout(args)}function spatialDropout1d(args){return new SpatialDropout1D(args)}function flatten3(args){return new Flatten(args)}function repeatVector(args){return new RepeatVector(args)}function reshape5(args){return new Reshape2(args)}function permute(args){return new Permute(args)}function embedding(args){return new Embedding(args)}function add4(args){return new Add2(args)}function average(args){return new Average(args)}function concatenate2(args){return new Concatenate(args)}function maximum4(args){return new Maximum2(args)}function minimum4(args){return new Minimum2(args)}function multiply3(args){return new Multiply2(args)}function dot3(args){return new Dot(args)}function batchNormalization2(args){return new BatchNormalization(args)}function layerNormalization(args){return new LayerNormalization(args)}function zeroPadding2d(args){return new ZeroPadding2D(args)}function averagePooling1d(args){return new AveragePooling1D(args)}function avgPool1d(args){return averagePooling1d(args)}function avgPooling1d(args){return averagePooling1d(args)}function averagePooling2d(args){return new AveragePooling2D(args)}function avgPool2d(args){return averagePooling2d(args)}function avgPooling2d(args){return averagePooling2d(args)}function averagePooling3d(args){return new AveragePooling3D(args)}function avgPool3d2(args){return averagePooling3d(args)}function avgPooling3d(args){return averagePooling3d(args)}function globalAveragePooling1d(args){return new GlobalAveragePooling1D(args)}function globalAveragePooling2d(args){return new GlobalAveragePooling2D(args)}function globalMaxPooling1d(args){return new GlobalMaxPooling1D(args)}function globalMaxPooling2d(args){return new GlobalMaxPooling2D(args)}function maxPooling1d(args){return new MaxPooling1D(args)}function maxPooling2d(args){return new MaxPooling2D(args)}function maxPooling3d(args){return new MaxPooling3D(args)}function gru(args){return new GRU(args)}function gruCell(args){return new GRUCell(args)}function lstm(args){return new LSTM(args)}function lstmCell(args){return new LSTMCell(args)}function simpleRNN(args){return new SimpleRNN(args)}function simpleRNNCell(args){return new SimpleRNNCell(args)}function convLstm2d(args){return new ConvLSTM2D(args)}function convLstm2dCell(args){return new ConvLSTM2DCell(args)}function rnn2(args){return new RNN(args)}function stackedRNNCells(args){return new StackedRNNCells(args)}function bidirectional(args){return new Bidirectional(args)}function timeDistributed(args){return new TimeDistributed(args)}var globalMaxPool1d=globalMaxPooling1d,globalMaxPool2d=globalMaxPooling2d,maxPool1d=maxPooling1d,maxPool2d=maxPooling2d;function gaussianNoise(args){return new GaussianNoise(args)}function gaussianDropout(args){return new GaussianDropout(args)}function alphaDropout(args){return new AlphaDropout(args)}function masking(args){return new Masking(args)}var exports_metrics_exports={};__export2(exports_metrics_exports,{MAPE:()=>MAPE2,MSE:()=>MSE2,binaryAccuracy:()=>binaryAccuracy2,binaryCrossentropy:()=>binaryCrossentropy3,categoricalAccuracy:()=>categoricalAccuracy2,categoricalCrossentropy:()=>categoricalCrossentropy3,cosineProximity:()=>cosineProximity2,mape:()=>mape2,meanAbsoluteError:()=>meanAbsoluteError2,meanAbsolutePercentageError:()=>meanAbsolutePercentageError2,meanSquaredError:()=>meanSquaredError3,mse:()=>mse2,precision:()=>precision2,recall:()=>recall2,sparseCategoricalAccuracy:()=>sparseCategoricalAccuracy2});function binaryAccuracy2(yTrue,yPred){return binaryAccuracy(yTrue,yPred)}function binaryCrossentropy3(yTrue,yPred){return binaryCrossentropy2(yTrue,yPred)}function sparseCategoricalAccuracy2(yTrue,yPred){return sparseCategoricalAccuracy(yTrue,yPred)}function categoricalAccuracy2(yTrue,yPred){return categoricalAccuracy(yTrue,yPred)}function categoricalCrossentropy3(yTrue,yPred){return categoricalCrossentropy2(yTrue,yPred)}function precision2(yTrue,yPred){return precision(yTrue,yPred)}function recall2(yTrue,yPred){return recall(yTrue,yPred)}function cosineProximity2(yTrue,yPred){return cosineProximity(yTrue,yPred)}function meanAbsoluteError2(yTrue,yPred){return meanAbsoluteError(yTrue,yPred)}function meanAbsolutePercentageError2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function MAPE2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function mape2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function meanSquaredError3(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function MSE2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function mse2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}var exports_models_exports={};__export2(exports_models_exports,{modelFromJSON:()=>modelFromJSON});var exports_regularizers_exports={};__export2(exports_regularizers_exports,{l1:()=>l12,l1l2:()=>l1l2,l2:()=>l22});function l1l2(config2){return new L1L2(config2)}function l12(config2){return l1(config2)}function l22(config2){return l2(config2)}var Callback=class extends BaseCallback{constructor(){super(...arguments);this.model=null}setModel(model2){if(!(model2 instanceof LayersModel))throw new Error("model must be a LayersModel, not some other Container");this.model=model2}};function less4(currVal,prevVal){return currValprevVal}var EarlyStopping=class extends Callback{constructor(args){super();if(args==null&&(args={}),args.restoreBestWeights)throw new NotImplementedError("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=args.monitor||"val_loss",this.minDelta=Math.abs(args.minDelta||0),this.patience=args.patience||0,this.verbose=args.verbose||0,this.mode=args.mode||"auto",this.baseline=args.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=less4:this.mode==="max"?this.monitorFunc=greater4:this.monitor.indexOf("acc")!==-1?this.monitorFunc=greater4:this.monitorFunc=less4,this.monitorFunc===less4&&(this.minDelta*=-1)}async onTrainBegin(logs){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===less4?Infinity:-Infinity}async onEpochEnd(epoch,logs){await resolveScalarsInLogs(logs);let current=this.getMonitorValue(logs);current!=null&&(this.monitorFunc(current-this.minDelta,this.best)?(this.best=current,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=epoch,this.model.stopTraining=!0)))}async onTrainEnd(logs){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(logs){logs==null&&(logs={});let monitorValue=logs[this.monitor];return monitorValue==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(logs)}`),monitorValue}};function earlyStopping(args){return new EarlyStopping(args)}var callbacks={earlyStopping},DataType;(function(DataType2){DataType2[DataType2.DT_INVALID=0]="DT_INVALID",DataType2[DataType2.DT_FLOAT=1]="DT_FLOAT",DataType2[DataType2.DT_DOUBLE=2]="DT_DOUBLE",DataType2[DataType2.DT_INT32=3]="DT_INT32",DataType2[DataType2.DT_UINT8=4]="DT_UINT8",DataType2[DataType2.DT_INT16=5]="DT_INT16",DataType2[DataType2.DT_INT8=6]="DT_INT8",DataType2[DataType2.DT_STRING=7]="DT_STRING",DataType2[DataType2.DT_COMPLEX64=8]="DT_COMPLEX64",DataType2[DataType2.DT_INT64=9]="DT_INT64",DataType2[DataType2.DT_BOOL=10]="DT_BOOL",DataType2[DataType2.DT_QINT8=11]="DT_QINT8",DataType2[DataType2.DT_QUINT8=12]="DT_QUINT8",DataType2[DataType2.DT_QINT32=13]="DT_QINT32",DataType2[DataType2.DT_BFLOAT16=14]="DT_BFLOAT16",DataType2[DataType2.DT_FLOAT_REF=101]="DT_FLOAT_REF",DataType2[DataType2.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",DataType2[DataType2.DT_INT32_REF=103]="DT_INT32_REF",DataType2[DataType2.DT_UINT8_REF=104]="DT_UINT8_REF",DataType2[DataType2.DT_INT16_REF=105]="DT_INT16_REF",DataType2[DataType2.DT_INT8_REF=106]="DT_INT8_REF",DataType2[DataType2.DT_STRING_REF=107]="DT_STRING_REF",DataType2[DataType2.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",DataType2[DataType2.DT_INT64_REF=109]="DT_INT64_REF",DataType2[DataType2.DT_BOOL_REF=110]="DT_BOOL_REF",DataType2[DataType2.DT_QINT8_REF=111]="DT_QINT8_REF",DataType2[DataType2.DT_QUINT8_REF=112]="DT_QUINT8_REF",DataType2[DataType2.DT_QINT32_REF=113]="DT_QINT32_REF",DataType2[DataType2.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(DataType||(DataType={}));var SaverDef;(function(SaverDef2){let CheckpointFormatVersion;(function(CheckpointFormatVersion2){CheckpointFormatVersion2[CheckpointFormatVersion2.LEGACY=0]="LEGACY",CheckpointFormatVersion2[CheckpointFormatVersion2.V1=1]="V1",CheckpointFormatVersion2[CheckpointFormatVersion2.V2=2]="V2"})(CheckpointFormatVersion=SaverDef2.CheckpointFormatVersion||(SaverDef2.CheckpointFormatVersion={}))})(SaverDef||(SaverDef={}));var CUSTOM_OPS={};function registerOp(name,opFunc){let opMapper={tfOpName:name,category:"custom",inputs:[],attrs:[],customExecutor:opFunc};CUSTOM_OPS[name]=opMapper}function getRegisteredOp(name){return CUSTOM_OPS[name]}function deregisterOp(name){delete CUSTOM_OPS[name]}function getParamValue(paramName,node,tensorMap,context,resourceManager){let inputParam=node.inputParams[paramName];if(inputParam&&inputParam.inputIndexStart!==void 0){let start=inputParam.inputIndexStart,end=inputParam.inputIndexEnd===0?void 0:inputParam.inputIndexEnd===void 0?start+1:inputParam.inputIndexEnd;if(inputParam.type==="tensor")return getTensor(node.inputNames[inputParam.inputIndexStart],tensorMap,context,resourceManager);if(inputParam.type==="tensors")return node.inputNames.slice(start,end).map(name=>getTensor(name,tensorMap,context,resourceManager));let tensor2=getTensor(node.inputNames.slice(start)[0],tensorMap,context,resourceManager),data2=tensor2.dataSync();return inputParam.type==="number"?data2[0]:util_exports.toNestedArray(tensor2.shape,data2)}let attrParam=node.attrParams[paramName];return attrParam&&attrParam.value}function getTensor(name,tensorsMap,context,resourceManager){let[nodeName,index]=parseNodeName(name);if(resourceManager!=null){let tensor2=resourceManager.getHashTableHandleByName(nodeName);if(tensor2!=null)return tensor2}let contextId=context.currentContextIds.find(contextId2=>!!tensorsMap[getNodeNameWithContextId(nodeName,contextId2)]);return contextId!==void 0?tensorsMap[getNodeNameWithContextId(nodeName,contextId)][index]:void 0}function getTensorsForCurrentContenxt(name,tensorsMap,context){return tensorsMap[getNodeNameWithContextId(name,context.currentContextId)]}function getNodeNameAndIndex(inputName,context){let[nodeName,index]=parseNodeName(inputName);return[getNodeNameWithContextId(nodeName,context&&context.currentContextId),index]}function getNodeNameWithContextId(name,contextId){return contextId?`${name}-${contextId}`:name}function parseNodeName(name){let parts=name.split(":");return parts.length===1?[name,0]:[parts[0],Number(parts[parts.length-1])]}function getPadding(node,tensorMap,context){let pad3=getParamValue("pad",node,tensorMap,context);if(pad3==="explicit"){pad3=getParamValue("explicitPaddings",node,tensorMap,context);let explicitPadding=[[0,0],[0,0],[0,0],[0,0]];for(let i=0;i<4;i++)explicitPadding[i][0]=pad3[i*2],explicitPadding[i][1]=pad3[i*2+1];return explicitPadding}return pad3}function cloneTensor(tensor2){return tensor2.kept?tensor2:clone(tensor2)}var arithmetic_exports={};__export2(arithmetic_exports,{json:()=>json});var json=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],basic_math_exports={};__export2(basic_math_exports,{json:()=>json2});var json2=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],control_exports={};__export2(control_exports,{json:()=>json3});var json3=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],convolution_exports={};__export2(convolution_exports,{json:()=>json4});var json4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],creation_exports={};__export2(creation_exports,{json:()=>json5});var json5=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],dynamic_exports={};__export2(dynamic_exports,{json:()=>json6});var json6=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],evaluation_exports={};__export2(evaluation_exports,{json:()=>json7});var json7=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],graph_exports={};__export2(graph_exports,{json:()=>json8});var json8=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],hash_table_exports={};__export2(hash_table_exports,{json:()=>json9});var json9=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],image_exports={};__export2(image_exports,{json:()=>json10});var json10=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],logical_exports={};__export2(logical_exports,{json:()=>json11});var json11=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],matrices_exports={};__export2(matrices_exports,{json:()=>json12});var json12=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],normalization_exports={};__export2(normalization_exports,{json:()=>json13});var json13=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],reduction_exports={};__export2(reduction_exports,{json:()=>json14});var json14=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],slice_join_exports={};__export2(slice_join_exports,{json:()=>json15});var json15=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],spectral_exports={};__export2(spectral_exports,{json:()=>json16});var json16=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],transformation_exports={};__export2(transformation_exports,{json:()=>json17});var json17=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],OperationMapper=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let ops=[arithmetic_exports,basic_math_exports,control_exports,convolution_exports,creation_exports,dynamic_exports,evaluation_exports,logical_exports,image_exports,graph_exports,matrices_exports,normalization_exports,reduction_exports,slice_join_exports,spectral_exports,transformation_exports,hash_table_exports],mappersJson=[].concat(...ops.map(op2=>op2.json));this.opMappers=mappersJson.reduce((map,mapper)=>(map[mapper.tfOpName]=mapper,map),{})}transformGraph(graph2,signature={}){let tfNodes=graph2.node,placeholders=[],weights=[],initNodes=[],nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op.startsWith("Placeholder")?placeholders.push(map[node.name]):node.op==="Const"?weights.push(map[node.name]):(node.input==null||node.input.length===0)&&initNodes.push(map[node.name]),map),{}),inputs=[],outputs=[],inputNodeNameToKey={},outputNodeNameToKey={};signature!=null&&(inputNodeNameToKey=this.mapSignatureEntries(signature.inputs),outputNodeNameToKey=this.mapSignatureEntries(signature.outputs));let allNodes=Object.keys(nodes);allNodes.forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})}),Object.keys(outputNodeNameToKey).length===0?allNodes.forEach(key=>{let node=nodes[key];node.children.length===0&&outputs.push(node)}):Object.keys(outputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node!=null&&(node.signatureKey=outputNodeNameToKey[name],outputs.push(node))}),Object.keys(inputNodeNameToKey).length>0?Object.keys(inputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node&&(node.signatureKey=inputNodeNameToKey[name],inputs.push(node))}):inputs=placeholders;let functions={};graph2.library!=null&&graph2.library.function!=null&&(functions=graph2.library.function.reduce((functions2,func2)=>(functions2[func2.signature.name]=this.mapFunction(func2),functions2),{}));let result={nodes,inputs,outputs,weights,placeholders,signature,functions};return initNodes.length>0&&(result.initNodes=initNodes),result}mapSignatureEntries(entries){return Object.keys(entries||{}).reduce((prev,curr)=>(prev[entries[curr].name]=curr,prev),{})}mapNode(node){let mapper=getRegisteredOp(node.op)||this.opMappers[node.op]||{};node.attr==null&&(node.attr={});let newNode={name:node.name,op:node.op,category:mapper.category,inputNames:(node.input||[]).map(input2=>input2.startsWith("^")?input2.substr(1):input2),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:node.attr};return mapper.inputs!=null&&(newNode.inputParams=mapper.inputs.reduce((map,param)=>(map[param.name]={type:param.type,inputIndexStart:param.start,inputIndexEnd:param.end},map),{})),mapper.attrs!=null&&(newNode.attrParams=mapper.attrs.reduce((map,param)=>{let type=param.type,value;switch(param.type){case"string":value=getStringParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"string[]":value=getStringArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number":value=getNumberParam(node.attr,param.tfName,param.defaultValue||0),value===void 0&&!!param.tfDeprecatedName&&(value=getNumberParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number[]":value=getNumericArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getNumericArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool":value=getBoolParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool[]":value=getBoolArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape":value=getTensorShapeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape[]":value=getTensorShapeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype":value=getDtypeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype[]":value=getDtypeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"func":value=getFuncParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getFuncParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${param.type} for op: ${node.op}`)}return map[param.name]={value,type},map},{})),newNode}mapFunction(functionDef){let tfNodes=functionDef.nodeDef,placeholders=[],weights=[],nodes={};tfNodes!=null&&(nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op==="Const"&&weights.push(map[node.name]),map),{}));let inputs=[],outputs=[];functionDef.signature.inputArg.forEach(arg=>{let[nodeName]=getNodeNameAndIndex(arg.name),node={name:nodeName,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:parseDtypeParam(arg.type),type:"dtype"}},children:[]};node.signatureKey=arg.name,inputs.push(node),nodes[nodeName]=node}),Object.keys(nodes).forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})});let returnNodeMap=functionDef.ret;functionDef.signature.outputArg.forEach(output=>{let[nodeName,index]=getNodeNameAndIndex(returnNodeMap[output.name]),node=nodes[nodeName];node!=null&&(node.defaultOutput=index,outputs.push(node))});let signature=this.mapArgsToSignature(functionDef);return{nodes,inputs,outputs,weights,placeholders,signature}}mapArgsToSignature(functionDef){return{methodName:functionDef.signature.name,inputs:functionDef.signature.inputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg),map),{}),outputs:functionDef.signature.outputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg,functionDef.ret),map),{})}}mapArgToTensorInfo(arg,nameMap2){let name=arg.name;return nameMap2!=null&&(name=nameMap2[name]),{name,dtype:arg.type}}};function decodeBase64(text){let global2=env().global;if(typeof global2.atob!="undefined")return global2.atob(text);if(typeof Buffer!="undefined")return new Buffer(text,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function parseStringParam(s,keepCase){let value=Array.isArray(s)?String.fromCharCode.apply(null,s):decodeBase64(s);return keepCase?value:value.toLowerCase()}function getStringParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param!=null?parseStringParam(param.s,keepCase):def}function getBoolParam(attrs,name,def){let param=attrs[name];return param?param.b:def}function getNumberParam(attrs,name,def){let param=attrs[name]||{},value=param.i!=null?param.i:param.f!=null?param.f:def;return typeof value=="number"?value:parseInt(value,10)}function parseDtypeParam(value){switch(typeof value=="string"&&(value=DataType[value]),value){case DataType.DT_FLOAT:return"float32";case DataType.DT_INT32:case DataType.DT_INT64:case DataType.DT_INT8:case DataType.DT_UINT8:return"int32";case DataType.DT_BOOL:return"bool";case DataType.DT_DOUBLE:return"float32";case DataType.DT_STRING:return"string";default:return null}}function getFuncParam(attrs,name,def){let param=attrs[name];return param&¶m.func?param.func.name:def}function getDtypeParam(attrs,name,def){let param=attrs[name];return param&¶m.type?parseDtypeParam(param.type):def}function getDtypeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.type?param.list.type.map(v=>parseDtypeParam(v)):def}function parseTensorShapeParam(shape){if(!shape.unknownRank)return shape.dim!=null?shape.dim.map(dim=>typeof dim.size=="number"?dim.size:parseInt(dim.size,10)):[]}function getTensorShapeParam(attrs,name,def){let param=attrs[name];return param&¶m.shape?parseTensorShapeParam(param.shape):def}function getNumericArrayParam(attrs,name,def){let param=attrs[name];return param?((param.list.f&¶m.list.f.length?param.list.f:param.list.i)||[]).map(v=>typeof v=="number"?v:parseInt(v,10)):def}function getStringArrayParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param&¶m.list&¶m.list.s?param.list.s.map(v=>parseStringParam(v,keepCase)):def}function getTensorShapeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.shape?param.list.shape.map(v=>parseTensorShapeParam(v)):def}function getBoolArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.b?param.list.b:def}var NodeValueImpl=class{constructor(node,tensorMap,context){this.node=node,this.tensorMap=tensorMap,this.context=context,this.inputs=[],this.attrs={},this.inputs=node.inputNames.map(name=>this.getInput(name)),node.rawAttrs!=null&&(this.attrs=Object.keys(node.rawAttrs).reduce((attrs,key)=>(attrs[key]=this.getAttr(key),attrs),{}))}getInput(name){return getTensor(name,this.tensorMap,this.context)}getAttr(name,defaultValue){let value=this.node.rawAttrs[name];if(value.tensor!=null)return getTensor(name,this.tensorMap,this.context);if(value.i!=null||value.f!=null)return getNumberParam(this.node.rawAttrs,name,defaultValue);if(value.s!=null)return getStringParam(this.node.rawAttrs,name,defaultValue);if(value.b!=null)return getBoolParam(this.node.rawAttrs,name,defaultValue);if(value.shape!=null)return getTensorShapeParam(this.node.rawAttrs,name,defaultValue);if(value.type!=null)return getDtypeParam(this.node.rawAttrs,name,defaultValue);if(value.list!=null){if(value.list.i!=null||value.list.f!=null)return getNumericArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.s!=null)return getStringArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.shape!=null)return getTensorShapeArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.b!=null)return getBoolArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.type!=null)return getDtypeArrayParam(this.node.rawAttrs,name,defaultValue)}return defaultValue}},executeOp=(node,tensorMap,context)=>{switch(node.op){case"BiasAdd":case"AddV2":case"Add":return[add2(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"AddN":return[addN(getParamValue("tensors",node,tensorMap,context))];case"FloorMod":case"Mod":return[mod(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Mul":return[mul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"RealDiv":case"Div":return[div(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"DivNoNan":return[divNoNan(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"FloorDiv":return[floorDiv(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Sub":return[sub(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Minimum":return[minimum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Maximum":return[maximum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Pow":return[pow(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"SquaredDifference":return[squaredDifference(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp2=(node,tensorMap,context)=>{switch(node.op){case"Abs":case"ComplexAbs":return[abs(getParamValue("x",node,tensorMap,context))];case"Acos":return[acos(getParamValue("x",node,tensorMap,context))];case"Acosh":return[acosh(getParamValue("x",node,tensorMap,context))];case"Asin":return[asin(getParamValue("x",node,tensorMap,context))];case"Asinh":return[asinh(getParamValue("x",node,tensorMap,context))];case"Atan":return[atan(getParamValue("x",node,tensorMap,context))];case"Atan2":return[atan2(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context))];case"Atanh":return[atanh(getParamValue("x",node,tensorMap,context))];case"Ceil":return[ceil(getParamValue("x",node,tensorMap,context))];case"Complex":return[complex(getParamValue("real",node,tensorMap,context),getParamValue("imag",node,tensorMap,context))];case"Cos":return[cos(getParamValue("x",node,tensorMap,context))];case"Cosh":return[cosh(getParamValue("x",node,tensorMap,context))];case"Elu":return[elu(getParamValue("x",node,tensorMap,context))];case"Erf":return[erf(getParamValue("x",node,tensorMap,context))];case"Exp":return[exp(getParamValue("x",node,tensorMap,context))];case"Expm1":return[expm1(getParamValue("x",node,tensorMap,context))];case"Floor":return[floor(getParamValue("x",node,tensorMap,context))];case"Log":return[log2(getParamValue("x",node,tensorMap,context))];case"Log1p":return[log1p(getParamValue("x",node,tensorMap,context))];case"Imag":return[imag(getParamValue("x",node,tensorMap,context))];case"Neg":return[neg(getParamValue("x",node,tensorMap,context))];case"Reciprocal":return[reciprocal(getParamValue("x",node,tensorMap,context))];case"Real":return[real(getParamValue("x",node,tensorMap,context))];case"Relu":return[relu(getParamValue("x",node,tensorMap,context))];case"Round":return[round2(getParamValue("x",node,tensorMap,context))];case"Selu":return[selu(getParamValue("x",node,tensorMap,context))];case"Sigmoid":return[sigmoid(getParamValue("x",node,tensorMap,context))];case"Sin":return[sin(getParamValue("x",node,tensorMap,context))];case"Sign":return[sign(getParamValue("x",node,tensorMap,context))];case"Sinh":return[sinh(getParamValue("x",node,tensorMap,context))];case"Softplus":return[softplus(getParamValue("x",node,tensorMap,context))];case"Sqrt":return[sqrt(getParamValue("x",node,tensorMap,context))];case"Square":return[square(getParamValue("x",node,tensorMap,context))];case"Tanh":return[tanh2(getParamValue("x",node,tensorMap,context))];case"Tan":return[tan(getParamValue("x",node,tensorMap,context))];case"ClipByValue":return[clipByValue(getParamValue("x",node,tensorMap,context),getParamValue("clipValueMin",node,tensorMap,context),getParamValue("clipValueMax",node,tensorMap,context))];case"Relu6":return[relu6(getParamValue("x",node,tensorMap,context))];case"Rsqrt":return[rsqrt(getTensor(node.inputNames[0],tensorMap,context))];case"Prod":return[prod(getParamValue("x",node,tensorMap,context),getParamValue("axes",node,tensorMap,context))];case"LeakyRelu":return[leakyRelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];case"Prelu":return[prelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function assertShapesMatchAllowUndefinedSize(shapeA,shapeB,errorMessagePrefix=""){util_exports.assert(shapesEqualAllowUndefinedSize(shapeA,shapeB),()=>errorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function shapesEqualAllowUndefinedSize(n1,n2){if(n1.length!==n2.length)return!1;for(let i=0;i{(keepIds==null||!keepIds.has(tensor2.tensor.id))&&tensor2.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(index){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||index>=this.size())throw new Error(`Tried to read from index ${index}, but array size is: ${this.size()}`);let tensorWithState=this.tensors[index];if(tensorWithState.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${index} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(tensorWithState.cleared=!0),tensorWithState.read=!0,tensorWithState.tensor}readMany(indices){return indices.map(index=>this.read(index))}write(index,tensor2){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||!this.dynamicSize&&index>=this.maxSize)throw new Error(`Tried to write to index ${index}, but array is not resizeable and size is: ${this.maxSize}`);let t=this.tensors[index]||{};if(tensor2.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because the value dtype is ${tensor2.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=tensor2.shape),assertShapesMatchAllowUndefinedSize(this.elementShape,tensor2.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${index}.`),t.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been read.`);if(t.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been written.`);t.tensor=tensor2,keep(tensor2),t.written=!0,this.tensors[index]=t}writeMany(indices,tensors){if(indices.length!==tensors.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${indices.length} is not the same as tensors size: ${tensors.length}.`);indices.forEach((i,index)=>this.write(i,tensors[index]))}gather(indices,dtype){if(!!dtype&&dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${dtype}`);if(indices)indices=indices.slice(0,this.size());else{indices=[];for(let i=0;i=this.maxSize)throw new Error(`Max index must be < array size (${maxIndex} vs. ${this.maxSize})`);this.writeMany(indices,unstack(tensor2,0))}split(length,tensor2){if(tensor2.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${tensor2.dtype}`);let totalLength=0,cumulativeLengths=length.map(len=>(totalLength+=len,totalLength));if(totalLength!==tensor2.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is ${totalLength}, and tensor's shape is: ${tensor2.shape}`);if(!this.dynamicSize&&length.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${length.length}), and the TensorArray is not marked as dynamically resizeable`);let elementPerRow=totalLength===0?0:tensor2.size/totalLength,tensors=[];tidy(()=>{tensor2=reshape(tensor2,[1,totalLength,elementPerRow]);for(let i=0;i{if(elementDtype!==tensor2.dtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${tensor2.dtype}`);assertShapesMatchAllowUndefinedSize(elementShape,tensor2.shape,"TensorList shape mismatch: "),keep(tensor2)}),this.idTensor=scalar(0),this.maxNumElements=maxNumElements,keep(this.idTensor)}get id(){return this.idTensor.id}copy(){return new TensorList([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(keepIds){this.tensors.forEach(tensor2=>{(keepIds==null||!keepIds.has(tensor2.id))&&tensor2.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(elementShape,elementDtype,numElements=-1){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);if(numElements!==-1&&this.tensors.length!==numElements)throw new Error(`Operation expected a list with ${numElements} elements but got a list with ${this.tensors.length} elements.`);return assertShapesMatchAllowUndefinedSize(elementShape,this.elementShape,"TensorList shape mismatch: "),tidy(()=>{let reshapedTensors=this.tensors.map(tensor2=>reshape(tensor2,elementShape));return stack(reshapedTensors,0)})}popBack(elementShape,elementDtype){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let tensor2=this.tensors.pop();return assertShapesMatchAllowUndefinedSize(tensor2.shape,elementShape,"TensorList shape mismatch: "),reshape(tensor2,elementShape)}pushBack(tensor2){if(tensor2.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${tensor2.dtype}, but list elements ${this.elementDtype}`);if(assertShapesMatchAllowUndefinedSize(tensor2.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");keep(tensor2),this.tensors.push(tensor2)}resize(size){if(size<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${size}`);if(this.maxNumElements!==-1&&size>this.maxNumElements)throw new Error(`TensorListResize input size ${size} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=size}getItem(elementIndex,elementShape,elementDtype){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);if(elementIndex<0||elementIndex>this.tensors.length)throw new Error(`Trying to access element ${elementIndex} in a list with ${this.tensors.length} elements.`);if(this.tensors[elementIndex]==null)throw new Error(`element at index ${elementIndex} is null.`);return assertShapesMatchAllowUndefinedSize(this.tensors[elementIndex].shape,elementShape,"TensorList shape mismatch: "),this.tensors[elementIndex]}setItem(elementIndex,tensor2){if(tensor2.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${tensor2.dtype}, but list elements ${this.elementDtype}`);if(elementIndex<0||this.maxNumElements!==-1&&elementIndex>=this.maxNumElements)throw new Error(`Trying to set element ${elementIndex} in a list with max ${this.maxNumElements} elements.`);assertShapesMatchAllowUndefinedSize(this.elementShape,tensor2.shape,"TensorList shape mismatch: "),keep(tensor2),this.tensors[elementIndex]=tensor2}gather(indices,elementDtype,elementShape){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);return assertShapesMatchAllowUndefinedSize(this.elementShape,elementShape,"TensorList shape mismatch: "),indices=indices.slice(0,this.size()),indices.length===0?tensor([],[0].concat(this.elementShape)):tidy(()=>{let tensors=indices.map(i=>reshape(this.tensors[i],elementShape));return stack(tensors,0)})}concat(elementDtype,elementShape){if(!!elementDtype&&elementDtype!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${elementDtype}`);return assertShapesMatchAllowUndefinedSize(this.elementShape,elementShape,"TensorList shape mismatch: "),this.size()===0?tensor([],[0].concat(this.elementShape)):tidy(()=>{let tensors=this.tensors.map(t=>reshape(t,elementShape));return concat(tensors,0)})}};function fromTensor(tensor2,elementShape,elementDtype){let dtype=tensor2.dtype;if(tensor2.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${tensor2.shape}`);if(tensor2.dtype!==elementDtype)throw new Error(`Invalid data types; op elements ${tensor2.dtype}, but list elements ${elementDtype}`);let outputShape=tensor2.shape.slice(1);assertShapesMatchAllowUndefinedSize(outputShape,elementShape,"TensorList shape mismatch: ");let tensorList=unstack(tensor2);return new TensorList(tensorList,elementShape,dtype)}function reserve(elementShape,elementDtype,numElements){return new TensorList([],elementShape,elementDtype,numElements)}function scatter(tensor2,indices,elementShape,numElements){if(indices.length!==tensor2.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${indices.length} vs. ${tensor2.shape[0]}`);let maxIndex=Math.max(...indices);if(numElements!=null&&numElements!==-1&&maxIndex>=numElements)throw new Error(`Max index must be < array size (${maxIndex} vs. ${numElements})`);let list=new TensorList([],elementShape,tensor2.dtype,numElements),tensors=unstack(tensor2,0);return indices.forEach((value,index)=>{list.setItem(value,tensors[index])}),list}function split2(tensor2,length,elementShape){let totalLength=0,cumulativeLengths=length.map(len=>(totalLength+=len,totalLength));if(totalLength!==tensor2.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${totalLength}, and tensor's shape is: ${tensor2.shape}`);let elementPerRow=totalLength===0?0:tensor2.size/totalLength,tensors=tidy(()=>{let tensors2=[];tensor2=reshape(tensor2,[1,totalLength,elementPerRow]);for(let i=0;i{switch(node.op){case"If":case"StatelessIf":{let thenFunc=getParamValue("thenBranch",node,tensorMap,context),elseFunc=getParamValue("elseBranch",node,tensorMap,context),cond=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context);return(await cond.data())[0]?context.functionMap[thenFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap):context.functionMap[elseFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap)}case"While":case"StatelessWhile":{let bodyFunc=getParamValue("body",node,tensorMap,context),condFunc=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context),condResult=await context.functionMap[condFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap),argIds=args.map(tensor2=>tensor2.id),condValue=await condResult[0].data();condResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let result=args;for(;condValue[0];){let origResult=result;result=await context.functionMap[bodyFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);let resultIds=result.map(tensor2=>tensor2.id);origResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let condResult2=await context.functionMap[condFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);condValue=await condResult2[0].data(),condResult2.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()})}return result}case"LoopCond":{let pred=getParamValue("pred",node,tensorMap,context);return[cloneTensor(pred)]}case"Switch":{let pred=getParamValue("pred",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context);return data2.kept||(data2=cloneTensor(data2)),(await pred.data())[0]?[void 0,data2]:[data2,void 0]}case"Merge":{let inputName=node.inputNames.find(name=>getTensor(name,tensorMap,context)!==void 0);if(inputName){let data2=getTensor(inputName,tensorMap,context);return[cloneTensor(data2)]}return}case"Enter":{let frameId=getParamValue("frameName",node,tensorMap,context),data2=getParamValue("tensor",node,tensorMap,context);return context.enterFrame(frameId),[cloneTensor(data2)]}case"Exit":{let data2=getParamValue("tensor",node,tensorMap,context);return context.exitFrame(),[cloneTensor(data2)]}case"NextIteration":{let data2=getParamValue("tensor",node,tensorMap,context);return context.nextIteration(),[cloneTensor(data2)]}case"TensorArrayV3":{let size=getParamValue("size",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),dynamicSize=getParamValue("dynamicSize",node,tensorMap,context),clearAfterRead=getParamValue("clearAfterRead",node,tensorMap,context),identicalElementShapes=getParamValue("identicalElementShapes",node,tensorMap,context),name=getParamValue("name",node,tensorMap,context),tensorArray=new TensorArray(name,dtype,size,elementShape,identicalElementShapes,dynamicSize,clearAfterRead);return context.addTensorArray(tensorArray),[tensorArray.idTensor,scalar(1)]}case"TensorArrayWriteV3":{let id=getParamValue("tensorArrayId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),writeTensorArray=context.getTensorArray(id.id);return writeTensorArray.write(index,writeTensor),[writeTensorArray.idTensor]}case"TensorArrayReadV3":{let readId=getParamValue("tensorArrayId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context);return[context.getTensorArray(readId.id).read(readIndex)]}case"TensorArrayGatherV3":{let gatherId=getParamValue("tensorArrayId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),gatherDtype=getParamValue("dtype",node,tensorMap,context);return[context.getTensorArray(gatherId.id).gather(gatherIndices,gatherDtype)]}case"TensorArrayScatterV3":{let scatterId=getParamValue("tensorArrayId",node,tensorMap,context),scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),scatterTensorArray=context.getTensorArray(scatterId.id);return scatterTensorArray.scatter(scatterIndices,scatterTensor),[scatterTensorArray.idTensor]}case"TensorArrayConcatV3":{let concatId=getParamValue("tensorArrayId",node,tensorMap,context),concatTensorArray=context.getTensorArray(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context);return[concatTensorArray.concat(concatDtype)]}case"TensorArraySplitV3":{let splitId=getParamValue("tensorArrayId",node,tensorMap,context),splitTensor=getParamValue("tensor",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),splitTensorArray=context.getTensorArray(splitId.id);return splitTensorArray.split(lengths,splitTensor),[splitTensorArray.idTensor]}case"TensorArraySizeV3":{let sizeId=getParamValue("tensorArrayId",node,tensorMap,context),sizeTensorArray=context.getTensorArray(sizeId.id);return[scalar(sizeTensorArray.size(),"int32")]}case"TensorArrayCloseV3":{let closeId=getParamValue("tensorArrayId",node,tensorMap,context),closeTensorArray=context.getTensorArray(closeId.id);return closeTensorArray.clearAndClose(),[closeTensorArray.idTensor]}case"TensorListSetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.setItem(index,writeTensor),[tensorList.idTensor]}case"TensorListGetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).getItem(readIndex,elementShape,elementDType)]}case"TensorListScatterV2":case"TensorListScatter":{let scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context),tensorList=scatter(scatterTensor,scatterIndices,elementShape,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElementsParam;node.op==="TensorListReserve"?numElementsParam="numElements":numElementsParam="maxNumElements";let numElements=getParamValue(numElementsParam,node,tensorMap,context),tensorList=reserve(elementShape,elementDtype,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListGather":{let gatherId=getParamValue("tensorListId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(gatherId.id).gather(gatherIndices,elementDtype,elementShape)]}case"TensorListStack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context);return[context.getTensorList(idTensor.id).stack(elementShape,elementDtype,numElements)]}case"TensorListFromTensor":{let tensor2=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),tensorList=fromTensor(tensor2,elementShape,elementDtype);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListConcat":{let concatId=getParamValue("tensorListId",node,tensorMap,context),tensorList=context.getTensorList(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context);return[tensorList.concat(concatDtype,elementShape)]}case"TensorListPushBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.pushBack(writeTensor),[tensorList.idTensor]}case"TensorListPopBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).popBack(elementShape,elementDType)]}case"TensorListSplit":{let splitTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),tensorList=split2(splitTensor,lengths,elementShape);return context.addTensorList(tensorList),[tensorList.idTensor]}default:throw TypeError(`Node type ${node.op} is not implemented`)}};function fusedConvAndDepthWiseParams(node,tensorMap,context){let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",isBatchNorm=extraOp==="fusedbatchnorm",numArgs=getParamValue("numArgs",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(isBatchNorm)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context),[biasArg,preluArg]=getParamValue("args",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);return{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}}var executeOp4=(node,tensorMap,context)=>{switch(node.op){case"Conv1D":{let stride=getParamValue("stride",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilation=getParamValue("dilation",node,tensorMap,context);return[conv1d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),stride,pad3,dataFormat,dilation)]}case"Conv2D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"_FusedConv2D":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.conv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"FusedDepthwiseConv2dNative":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.depthwiseConv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let shape=getParamValue("outputShape",node,tensorMap,context),stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context);return[conv2dTranspose(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),shape,[stride[1],stride[2]],pad3)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthwiseConv2d(getParamValue("input",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"Conv3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv3d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2],stride[3]],pad3,dataFormat,[dilations[1],dilations[2],dilations[3]])]}case"AvgPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPoolWithArgmax":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context),includeBatchInIndex=getParamValue("includeBatchInIndex",node,tensorMap,context),{result,indexes}=maxPoolWithArgmax(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3,includeBatchInIndex);return[result,indexes]}case"AvgPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"MaxPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"Dilation2D":{let strides=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),strideHeight=strides[1],strideWidth=strides[2],dilationHeight=dilations[1],dilationWidth=dilations[2];return[dilation2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[strideHeight,strideWidth],pad3,[dilationHeight,dilationWidth],"NHWC")]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp5=(node,tensorMap,context)=>{switch(node.op){case"Fill":{let shape=getParamValue("shape",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),value=getParamValue("value",node,tensorMap,context);return[fill(shape,value,dtype)]}case"LinSpace":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),num=getParamValue("num",node,tensorMap,context);return[linspace(start,stop,num)]}case"Multinomial":{let logits=getParamValue("logits",node,tensorMap,context),numSamples=getParamValue("numSamples",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[multinomial(logits,numSamples,seed)]}case"OneHot":{let indices=getParamValue("indices",node,tensorMap,context),depth=getParamValue("depth",node,tensorMap,context),onValue=getParamValue("onValue",node,tensorMap,context),offValue=getParamValue("offValue",node,tensorMap,context);return[oneHot(indices,depth,onValue,offValue)]}case"Ones":return[ones2(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"OnesLike":return[onesLike(getParamValue("x",node,tensorMap,context))];case"RandomUniform":return[randomUniform(getParamValue("shape",node,tensorMap,context),getParamValue("minval",node,tensorMap,context),getParamValue("maxval",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"Range":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),step4=getParamValue("step",node,tensorMap,context);return[range(start,stop,step4,getParamValue("dtype",node,tensorMap,context))]}case"TruncatedNormal":{let shape=getParamValue("shape",node,tensorMap,context),mean4=getParamValue("mean",node,tensorMap,context),stdDev=getParamValue("stdDev",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[truncatedNormal(shape,mean4,stdDev,getParamValue("dtype",node,tensorMap,context),seed)]}case"Zeros":return[zeros(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ZerosLike":return[zerosLike(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function nmsParams(node,tensorMap,context){let boxes=getParamValue("boxes",node,tensorMap,context),scores=getParamValue("scores",node,tensorMap,context),maxOutputSize=getParamValue("maxOutputSize",node,tensorMap,context),iouThreshold=getParamValue("iouThreshold",node,tensorMap,context),scoreThreshold=getParamValue("scoreThreshold",node,tensorMap,context),softNmsSigma=getParamValue("softNmsSigma",node,tensorMap,context);return{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}var executeOp6=async(node,tensorMap,context)=>{switch(node.op){case"NonMaxSuppressionV5":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}=nmsParams(node,tensorMap,context),result=await image.nonMaxSuppressionWithScoreAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return[result.selectedIndices,result.selectedScores]}case"NonMaxSuppressionV4":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context),padToMaxOutputSize=getParamValue("padToMaxOutputSize",node,tensorMap,context),result=await image.nonMaxSuppressionPaddedAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize);return[result.selectedIndices,result.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context);return[await image.nonMaxSuppressionAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold)]}case"Where":{let condition=cast(getParamValue("condition",node,tensorMap,context),"bool"),result=[await whereAsync(condition)];return condition.dispose(),result}case"ListDiff":return setdiff1dAsync(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context));default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp7=(node,tensorMap,context)=>{switch(node.op){case"TopKV2":{let x=getParamValue("x",node,tensorMap,context),k=getParamValue("k",node,tensorMap,context),sorted=getParamValue("sorted",node,tensorMap,context),result=topk(x,k,sorted);return[result.values,result.indices]}case"Unique":{let x=getParamValue("x",node,tensorMap,context),result=unique(x);return[result.values,result.indices]}case"UniqueV2":{let x=getParamValue("x",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),result=unique(x,axis);return[result.values,result.indices]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp8=(node,tensorMap,context)=>{switch(node.op){case"Const":return tensorMap[node.name];case"PlaceholderWithDefault":let def=getParamValue("default",node,tensorMap,context);return[getTensor(node.name,tensorMap,context)||def];case"Placeholder":return[getTensor(node.name,tensorMap,context)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let data22=getParamValue("x",node,tensorMap,context);return[cloneTensor(data22)]}case"IdentityN":return getParamValue("x",node,tensorMap,context).map(t=>cloneTensor(t));case"Snapshot":let snapshot=getParamValue("x",node,tensorMap,context);return[cloneTensor(snapshot)];case"Shape":return[tensor1d(getParamValue("x",node,tensorMap,context).shape,"int32")];case"ShapeN":return getParamValue("x",node,tensorMap,context).map(t=>tensor1d(t.shape));case"Size":return[scalar(getParamValue("x",node,tensorMap,context).size,"int32")];case"Rank":return[scalar(getParamValue("x",node,tensorMap,context).rank,"int32")];case"NoOp":return[scalar(1)];case"Print":let input2=getParamValue("x",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context),message=getParamValue("message",node,tensorMap,context),summarize=getParamValue("summarize",node,tensorMap,context);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(message);for(let i=0;ivalue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(keys,values){this.checkKeyAndValueTensor(keys,values);let $keys=await keys.data();return this.tensorMap.forEach(value=>value.dispose()),this.tensorMap.clear(),tidy(()=>{let $values=unstack(values),keysLength=$keys.length,valuesLength=$values.length;util_exports.assert(keysLength===valuesLength,()=>`The number of elements doesn't match, keys has ${keysLength} elements, the values has ${valuesLength} elements.`);for(let i=0;i{let result=[];for(let i=0;i<$keys.length;i++){let key=$keys[i],value=this.findWithDefault(key,defaultValue);result.push(value)}return stack(result)})}findWithDefault(key,defaultValue){let result=this.tensorMap.get(key);return result!=null?result:defaultValue}checkKeyAndValueTensor(key,value){if(key.dtype!==this.keyDType)throw new Error(`Expect key dtype ${this.keyDType}, but got ${key.dtype}`);if(value.dtype!==this.valueDType)throw new Error(`Expect value dtype ${this.valueDType}, but got ${value.dtype}`)}},executeOp9=async(node,tensorMap,context,resourceManager)=>{switch(node.op){case"HashTable":case"HashTableV2":{let keyDType=getParamValue("keyDType",node,tensorMap,context),valueDType=getParamValue("valueDType",node,tensorMap,context),hashTable2=new HashTable(keyDType,valueDType);return resourceManager.addHashTable(node.name,hashTable2),[hashTable2.handle]}case"LookupTableImport":case"LookupTableImportV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).import(keys,values)]}case"LookupTableFind":case"LookupTableFindV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).find(keys,defaultValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp10=(node,tensorMap,context)=>{switch(node.op){case"ResizeBilinear":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeBilinear(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"ResizeNearestNeighbor":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeNearestNeighbor(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"CropAndResize":{let image3=getParamValue("image",node,tensorMap,context),boxes=getParamValue("boxes",node,tensorMap,context),boxInd=getParamValue("boxInd",node,tensorMap,context),cropSize=getParamValue("cropSize",node,tensorMap,context),method=getParamValue("method",node,tensorMap,context),extrapolationValue=getParamValue("extrapolationValue",node,tensorMap,context);return[image.cropAndResize(image3,boxes,boxInd,cropSize,method,extrapolationValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp11=(node,tensorMap,context)=>{switch(node.op){case"Equal":return[equal(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"NotEqual":return[notEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Greater":return[greater(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"GreaterEqual":return[greaterEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Less":return[less(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LessEqual":return[lessEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalAnd":return[logicalAnd(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalNot":return[logicalNot(getParamValue("a",node,tensorMap,context))];case"LogicalOr":return[logicalOr(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Select":case"SelectV2":return[where(getParamValue("condition",node,tensorMap,context),getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp12=(node,tensorMap,context)=>{switch(node.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[matMul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context),getParamValue("transposeA",node,tensorMap,context),getParamValue("transposeB",node,tensorMap,context))];case"Transpose":return[transpose(getParamValue("x",node,tensorMap,context),getParamValue("perm",node,tensorMap,context))];case"_FusedMatMul":let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",numArgs=getParamValue("numArgs",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[biasArg,preluArg]=getParamValue("args",node,tensorMap,context);return[fused_ops_exports.matMul({a:getParamValue("a",node,tensorMap,context),b:getParamValue("b",node,tensorMap,context),transposeA:getParamValue("transposeA",node,tensorMap,context),transposeB:getParamValue("transposeB",node,tensorMap,context),bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp13=(node,tensorMap,context)=>{switch(node.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"FusedBatchNormV3":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"LRN":return[localResponseNormalization(getParamValue("x",node,tensorMap,context),getParamValue("radius",node,tensorMap,context),getParamValue("bias",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context),getParamValue("beta",node,tensorMap,context))];case"Softmax":return[softmax(getParamValue("x",node,tensorMap,context))];case"LogSoftmax":return[logSoftmax(getParamValue("x",node,tensorMap,context))];case"SparseToDense":return[sparseToDense(getParamValue("sparseIndices",node,tensorMap,context),getParamValue("outputShape",node,tensorMap,context),getParamValue("sparseValues",node,tensorMap,context),getParamValue("defaultValue",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp14=(node,tensorMap,context)=>{switch(node.op){case"Max":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[max(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Mean":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[mean(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Min":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[min(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Sum":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[sum2(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"All":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[all(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Any":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[any(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"ArgMax":{let axis=getParamValue("axis",node,tensorMap,context);return[argMax(getParamValue("x",node,tensorMap,context),axis)]}case"ArgMin":{let axis=getParamValue("axis",node,tensorMap,context);return[argMin(getParamValue("x",node,tensorMap,context),axis)]}case"Prod":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[prod(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Cumsum":{let axis=getParamValue("axis",node,tensorMap,context),exclusive=getParamValue("exclusive",node,tensorMap,context),reverse5=getParamValue("reverse",node,tensorMap,context);return[cumsum(getParamValue("x",node,tensorMap,context),axis,exclusive,reverse5)]}case"Bincount":let x=getParamValue("x",node,tensorMap,context),weights=getParamValue("weights",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context);return[bincount(x,weights,size)];case"DenseBincount":{let x2=getParamValue("x",node,tensorMap,context),weights2=getParamValue("weights",node,tensorMap,context),size2=getParamValue("size",node,tensorMap,context),binaryOutput=getParamValue("binaryOutput",node,tensorMap,context);return[denseBincount(x2,weights2,size2,binaryOutput)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp15=(node,tensorMap,context)=>{switch(node.op){case"ConcatV2":case"Concat":{let n=getParamValue("n",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),inputs=getParamValue("tensors",node,tensorMap,context);return inputs=inputs.slice(0,n),[concat(inputs,axis)]}case"Gather":{let input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),0)]}case"GatherV2":{let axis=getParamValue("axis",node,tensorMap,context),batchDims=getParamValue("batchDims",node,tensorMap,context),input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),axis,batchDims)]}case"Reverse":{let dims=getParamValue("dims",node,tensorMap,context),axis=[];for(let i=0;i{let axis=getParamValue("axis",node,tensorMap,context),tensors=getParamValue("tensors",node,tensorMap,context),shape=tensors[0].shape,squeezedShape=squeeze(tensors[0]).shape,mapped=tensors.map(tensor2=>{let sameShape=util_exports.arraysEqual(tensor2.shape,shape);if(!sameShape&&!util_exports.arraysEqual(squeeze(tensor2).shape,squeezedShape))throw new Error("the input tensors shape does not match");return sameShape?tensor2:reshape(tensor2,shape)});return[stack(mapped,axis)]});case"Unpack":{let axis=getParamValue("axis",node,tensorMap,context),tensor2=getParamValue("tensor",node,tensorMap,context);return unstack(tensor2,axis)}case"Tile":{let reps=getParamValue("reps",node,tensorMap,context);return[tile(getParamValue("x",node,tensorMap,context),reps)]}case"Split":case"SplitV":{let axis=getParamValue("axis",node,tensorMap,context),numOrSizeSplits=getParamValue("numOrSizeSplits",node,tensorMap,context),tensor2=getParamValue("x",node,tensorMap,context);return split(tensor2,numOrSizeSplits,axis)}case"ScatterNd":{let indices=getParamValue("indices",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context),shape=getParamValue("shape",node,tensorMap,context);return[scatterND(indices,values,shape)]}case"GatherNd":{let x=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gatherND(x,indices)]}case"SparseToDense":{let indices=getParamValue("sparseIndices",node,tensorMap,context),shape=getParamValue("outputShape",node,tensorMap,context),sparseValues=getParamValue("sparseValues",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[sparseToDense(indices,sparseValues,shape,sparseValues.dtype===defaultValue.dtype?defaultValue:cast(defaultValue,sparseValues.dtype))]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp16=(node,tensorMap,context)=>{switch(node.op){case"FFT":return[fft(getParamValue("x",node,tensorMap,context))];case"IFFT":return[ifft(getParamValue("x",node,tensorMap,context))];case"RFFT":return[rfft(getParamValue("x",node,tensorMap,context))];case"IRFFT":return[irfft(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp17=(node,tensorMap,context)=>{switch(node.op){case"Cast":return[cast(getParamValue("x",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ExpandDims":{let axis=getParamValue("axis",node,tensorMap,context);return[expandDims(getParamValue("x",node,tensorMap,context),axis)]}case"Squeeze":{let axis=getParamValue("axis",node,tensorMap,context);return[squeeze(getParamValue("x",node,tensorMap,context),axis)]}case"Reshape":return[reshape(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];case"MirrorPad":return[mirrorPad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("mode",node,tensorMap,context))];case"PadV2":case"Pad":return[pad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("constantValue",node,tensorMap,context))];case"SpaceToBatchND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),paddings=getParamValue("paddings",node,tensorMap,context);return[spaceToBatchND(getParamValue("x",node,tensorMap,context),blockShape,paddings)]}case"BatchToSpaceND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),crops=getParamValue("crops",node,tensorMap,context);return[batchToSpaceND(getParamValue("x",node,tensorMap,context),blockShape,crops)]}case"DepthToSpace":{let blockSize=getParamValue("blockSize",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthToSpace(getParamValue("x",node,tensorMap,context),blockSize,dataFormat)]}case"BroadcastTo":return[broadcastTo(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function executeOp18(node,tensorMap,context,resourceManager){let value=((node2,tensorMap2,context2)=>{switch(node2.category){case"arithmetic":return tidy(()=>executeOp(node2,tensorMap2,context2));case"basic_math":return tidy(()=>executeOp2(node2,tensorMap2,context2));case"control":return executeOp3(node2,tensorMap2,context2);case"convolution":return tidy(()=>executeOp4(node2,tensorMap2,context2));case"creation":return tidy(()=>executeOp5(node2,tensorMap2,context2));case"dynamic":return executeOp6(node2,tensorMap2,context2);case"evaluation":return tidy(()=>executeOp7(node2,tensorMap2,context2));case"image":return tidy(()=>executeOp10(node2,tensorMap2,context2));case"graph":return tidy(()=>executeOp8(node2,tensorMap2,context2));case"logical":return tidy(()=>executeOp11(node2,tensorMap2,context2));case"matrices":return tidy(()=>executeOp12(node2,tensorMap2,context2));case"normalization":return tidy(()=>executeOp13(node2,tensorMap2,context2));case"reduction":return tidy(()=>executeOp14(node2,tensorMap2,context2));case"slice_join":return tidy(()=>executeOp15(node2,tensorMap2,context2));case"spectral":return tidy(()=>executeOp16(node2,tensorMap2,context2));case"transformation":return tidy(()=>executeOp17(node2,tensorMap2,context2));case"hash_table":return executeOp9(node2,tensorMap2,context2,resourceManager);case"custom":let opMapper=getRegisteredOp(node2.op);if(opMapper&&opMapper.customExecutor)return opMapper.customExecutor(new NodeValueImpl(node2,tensorMap2,context2));throw TypeError(`Custom op ${node2.op} is not registered.`);default:throw TypeError(`Unknown op '${node2.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(node,tensorMap,context);return util_exports.isPromise(value)?value.then(data2=>[].concat(data2)):[].concat(value)}var ExecutionContext=class{constructor(weightMap={},tensorArrayMap={},tensorListMap={},functionMap={}){this.weightMap=weightMap,this.tensorArrayMap=tensorArrayMap,this.tensorListMap=tensorListMap,this.functionMap=functionMap,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(id,frameName){return{id,frameName,iterationId:0}}set currentContext(contexts2){this.contexts!==contexts2&&(this.contexts=contexts2,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let names=[];for(let i=0;icontext.id===0&&context.iterationId===0?"":`${context.frameName}-${context.iterationId}`).join("/"):""}enterFrame(frameId){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,frameId)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let context=Object.assign({},this.contexts[this.contexts.length-1]);context.iterationId+=1,context.id=this.lastId,this.contexts.splice(-1,1,context),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(name){return this.weightMap[name]}addTensorArray(tensorArray){this.tensorArrayMap[tensorArray.id]=tensorArray}getTensorArray(id){return this.tensorArrayMap[id]}addTensorList(tensorList){this.tensorListMap[tensorList.id]=tensorList}getTensorList(id){return this.tensorListMap[id]}dispose(keepIds){for(let key in this.tensorArrayMap)this.tensorArrayMap[key].clearAndClose(keepIds);for(let key in this.tensorListMap)this.tensorListMap[key].clearAndClose(keepIds)}};function getExecutionSubgraph(inputs,outputs,weightMap,initNodes){let usedNodes=new Set,missingInputs=[],dynamicNode=null,syncInputs=null,seen=new Set,inputNodeNames=Object.keys(inputs).map(name=>parseNodeName(name)[0]),initNodeNames=[];initNodes!=null&&(initNodeNames=initNodes.map(node=>parseNodeName(node.name)[0]));let frontier=[...outputs];for(;frontier.length>0;){let node=frontier.pop();if((isControlFlow(node)||isDynamicShape(node)||isHashTable(node))&&dynamicNode==null&&(dynamicNode=node,syncInputs=dynamicNode.children.map(child=>child.name).filter(name=>usedNodes.has(name))),usedNodes.add(node.name),weightMap[node.name]==null&&inputNodeNames.indexOf(node.name)===-1&&initNodeNames.indexOf(node.name)===-1){if(node.inputs.length===0){missingInputs.push(node.name);continue}node.inputs.forEach(input2=>{seen.has(input2.name)||(seen.add(input2.name),frontier.push(input2))})}}return{inputs,outputs,usedNodes,missingInputs,dynamicNode,syncInputs}}function getNodesInTopologicalOrder(graph2,weightMap,executionInfo){let{usedNodes,inputs}=executionInfo,frontier=[],inputNodes=Object.keys(inputs).map(name=>parseNodeName(name)[0]).map(name=>graph2.nodes[name]),initNodes=graph2.initNodes;inputNodes.forEach(input2=>{usedNodes.has(input2.name)&&frontier.push(input2)}),graph2.weights.forEach(weight=>{usedNodes.has(weight.name)&&frontier.push(weight)}),initNodes!=null&&initNodes.forEach(node=>{usedNodes.has(node.name)&&frontier.push(node)});let seen=new Set,orderedNodes=[];for(;frontier.length>0;){let node=frontier.pop();seen.add(node.name),weightMap[node.name]||orderedNodes.push(node),node.children.forEach(child=>{!seen.has(child.name)&&usedNodes.has(child.name)&&child.inputs.every(input2=>seen.has(input2.name))&&frontier.push(child)})}return orderedNodes}var CONTROL_FLOW_OPS=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],DYNAMIC_SHAPE_OPS=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],HASH_TABLE_OPS=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function isControlFlow(node){return CONTROL_FLOW_OPS.indexOf(node.op)>=0}function isDynamicShape(node){return DYNAMIC_SHAPE_OPS.indexOf(node.op)>=0}function isHashTable(node){return HASH_TABLE_OPS.indexOf(node.op)>=0}var GraphExecutor=class{constructor(graph2,parent){this.graph=graph2,this.parent=parent,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=graph2.outputs,this._inputs=graph2.inputs,this._initNodes=graph2.initNodes,this._signature=graph2.signature,this._functions=graph2.functions,graph2.functions!=null&&Object.keys(graph2.functions).forEach(name=>{this._functionExecutorMap[name]=new GraphExecutor(graph2.functions[name],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(weightMap){let weightIds=Object.keys(weightMap).map(key=>weightMap[key].map(tensor2=>tensor2.id));this._weightIds=[].concat(...weightIds),this._weightMap=weightMap}set resourceManager(resourceManager){this._resourceManager=resourceManager}get inputs(){return this._inputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(node=>node.signatureKey||node.name)}get outputNodes(){return this._outputs.map(node=>{let name=node.signatureKey||node.name;return node.defaultOutput?`${name}:${node.defaultOutput}`:name})}get functions(){return Object.keys(this._functions).reduce((map,key)=>(map[key]=this._functions[key].signature,map),{})}getCompilationKey(inputs,outputs){let sortedInputs=inputs.map(node=>node.name).sort(),sortedOutputs=outputs.map(node=>node.name).sort();return sortedInputs.join(this.SEPERATOR)+"--"+sortedOutputs.join(this.SEPERATOR)}compile(inputs,outputs){let executionInfo=getExecutionSubgraph(inputs,outputs,this.weightMap,this._initNodes),{missingInputs,dynamicNode,syncInputs}=executionInfo;if(dynamicNode!=null)throw new Error(`This execution contains the node '${dynamicNode.name}', which has the dynamic op '${dynamicNode.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${syncInputs}]`);if(missingInputs.length>0){let outNames=outputs.map(n=>n.name),inNames=Object.keys(inputs);throw new Error(`Cannot compute the outputs [${outNames}] from the provided inputs [${inNames}]. Missing the following inputs: [${missingInputs}]`)}return getNodesInTopologicalOrder(this.graph,this.weightMap,executionInfo)}execute(inputs,outputs){inputs=this.mapInputs(inputs);let names=Object.keys(inputs).sort();this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs);let inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputs.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let compilationKey=this.getCompilationKey(inputNodes,outputNodes),orderedNodes=this.compiledMap.get(compilationKey);orderedNodes==null&&(orderedNodes=this.compile(inputs,outputNodes),this.compiledMap.set(compilationKey,orderedNodes));let tensorArrayMap={},tensorListMap={};return tidy(()=>{let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let tensorsToKeep=this.getFrozenTensorIds(tensorsMap),intermediateTensorConsumerCount={};for(let i=0;igetTensor(name,tensorsMap,context))})}getFrozenTensorIds(tensorMap){let ids=[].concat.apply([],Object.keys(tensorMap).map(key=>tensorMap[key]).map(tensors=>tensors.map(tensor2=>tensor2.id)));return new Set(ids)}checkTensorForDisposal(nodeName,node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount){node.category==="control"||outputNames.indexOf(nodeName)!==-1||(tensorMap[nodeName].forEach(tensor2=>{tensor2!=null&&(intermediateTensorConsumerCount[tensor2.id]=(intermediateTensorConsumerCount[tensor2.id]||0)+node.children.length)}),node.inputs.forEach(input2=>{if(input2.category!=="control"){let tensors=getTensorsForCurrentContenxt(input2.name,tensorMap,context);tensors!=null&&tensors.forEach(tensor2=>{if(tensor2&&!tensorsToKeep.has(tensor2.id)){let count2=intermediateTensorConsumerCount[tensor2.id];count2===1?(tensor2.dispose(),delete intermediateTensorConsumerCount[tensor2.id]):count2!=null&&intermediateTensorConsumerCount[tensor2.id]--}})}}))}async executeAsync(inputs,outputs){return this._executeAsync(inputs,outputs)}async _executeAsync(inputs,outputs,isFunctionExecution=!1,tensorArrayMap={},tensorListMap={}){isFunctionExecution||(inputs=this.mapInputs(inputs),this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs));let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorMap=await this.executeWithControlFlow(inputs,context,outputs,isFunctionExecution),results=outputs.map(name=>getTensor(name,tensorMap,context)),outputIds=results.map(t=>t.id),inputIds=Object.keys(inputs).map(name=>inputs[name].id),keepIds=new Set([...outputIds,...inputIds,...this.weightIds]);return Object.keys(tensorMap).forEach(key=>{tensorMap[key].forEach(tensor2=>{tensor2&&!tensor2.isDisposed&&!keepIds.has(tensor2.id)&&tensor2.dispose()})}),this.parent==null&&context.dispose(keepIds),results}async executeFunctionAsync(inputs,tensorArrayMap,tensorListMap){let mappedInputs=inputs.reduce((map,tensor2,index)=>(map[this.inputs[index].name]=tensor2,map),{});return this._executeAsync(mappedInputs,this.outputNodes,!0,tensorArrayMap,tensorListMap)}async executeWithControlFlow(inputs,context,outputNames,isFunctionExecution){let names=Object.keys(inputs),inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputNames.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let{usedNodes,missingInputs,dynamicNode,syncInputs}=getExecutionSubgraph(inputs,outputNodes,this.weightMap,this._initNodes),stack2=[...inputNodes,...this.graph.weights,...this._initNodes||[]].map(node=>({node,contexts:context.currentContext})),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let intermediateTensorConsumerCount={},tensorsToKeep=this.getFrozenTensorIds(tensorsMap),added={};for(;stack2.length>0;){let promises=this.processStack(inputNodes,stack2,context,tensorsMap,added,tensorsToKeep,outputNodeNames,intermediateTensorConsumerCount,usedNodes);await Promise.all(promises)}dynamicNode==null&&!isFunctionExecution&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let missingOutputs=outputNodes.filter(node=>!isControlFlow(node)&&!getTensor(node.name,tensorsMap,context)).map(node=>node.name);if(missingOutputs.length>0){let alternativeMsg="";throw dynamicNode!=null&&(alternativeMsg=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${syncInputs}]`),new Error(`Cannot compute the outputs [${missingOutputs}] from the provided inputs [${names}]. Consider providing the following inputs: [${missingInputs}]. ${alternativeMsg}`)}return tensorsMap}processStack(inputNodes,stack2,context,tensorMap,added,tensorsToKeep,outputNames,intermediateTensorConsumerCount,usedNodes){let promises=[];for(;stack2.length>0;){let item=stack2.pop();context.currentContext=item.contexts;let nodeName="";if(item.node.op==="Enter"&&getParamValue("isConstant",item.node,tensorMap,context)&&([nodeName]=getNodeNameAndIndex(item.node.name,context)),tensorMap[item.node.name]==null){let tensors=executeOp18(item.node,tensorMap,context,this._resourceManager);nodeName||([nodeName]=getNodeNameAndIndex(item.node.name,context));let currentContext=context.currentContext;util_exports.isPromise(tensors)?promises.push(tensors.then(t=>(tensorMap[nodeName]=t,context.currentContext=currentContext,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes),t))):(tensorMap[nodeName]=tensors,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes))}else this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes)}return promises}processChildNodes(node,stack2,context,tensorMap,added,usedNodes){node.children.forEach(childNode=>{let[nodeName]=getNodeNameAndIndex(childNode.name,context);added[nodeName]||!usedNodes.has(childNode.name)||(childNode.op==="Merge"?childNode.inputNames.some(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})):childNode.inputNames.every(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})))})}dispose(){Object.keys(this.weightMap).forEach(key=>this.weightMap[key].forEach(tensor2=>tensor2.dispose()))}checkInputShapeAndType(inputs){Object.keys(inputs).forEach(name=>{let input2=inputs[name],[nodeName]=parseNodeName(name),node=this.graph.nodes[nodeName];if(node.attrParams.shape&&node.attrParams.shape.value){let shape=node.attrParams.shape.value,match=shape.length===input2.shape.length&&input2.shape.every((dim,index)=>shape[index]===-1||shape[index]===dim);util_exports.assert(match,()=>`The shape of dict['${node.name}'] provided in model.execute(dict) must be [${shape}], but was [${input2.shape}]`)}node.attrParams.dtype&&node.attrParams.dtype.value&&util_exports.assert(input2.dtype===node.attrParams.dtype.value,()=>`The dtype of dict['${node.name}'] provided in model.execute(dict) must be ${node.attrParams.dtype.value}, but was ${input2.dtype}`)})}mapInputs(inputs){let result={};for(let inputName in inputs)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[inputName]!=null){let tensor2=this._signature.inputs[inputName];result[tensor2.name]=inputs[inputName]}else result[inputName]=inputs[inputName];return result}checkInputs(inputs){let notInGraph=Object.keys(inputs).filter(name=>{let[nodeName]=parseNodeName(name);return this.graph.nodes[nodeName]==null});if(notInGraph.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${notInGraph}] that are not part of graph`)}mapOutputs(outputs){return outputs.map(name=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[name]!=null?this._signature.outputs[name].name:name,{})}checkOutputs(outputs){outputs.forEach(name=>{let[normalizedName]=parseNodeName(name);if(!this.graph.nodes[normalizedName])throw new Error(`The output '${name}' is not found in the graph`)})}},ResourceManager=class{constructor(hashTableNameToHandle={},hashTableMap={}){this.hashTableNameToHandle=hashTableNameToHandle,this.hashTableMap=hashTableMap}addHashTable(name,hashTable2){this.hashTableNameToHandle[name]=hashTable2.handle,this.hashTableMap[hashTable2.id]=hashTable2}getHashTableHandleByName(name){return this.hashTableNameToHandle[name]}getHashTableById(id){return this.hashTableMap[id]}dispose(){for(let key in this.hashTableMap)this.hashTableMap[key].clearAndClose(),delete this.hashTableMap[key];for(let name in this.hashTableNameToHandle)this.hashTableNameToHandle[name].dispose(),delete this.hashTableNameToHandle[name]}},TFHUB_SEARCH_PARAM="?tfjs-format=file",DEFAULT_MODEL_NAME="model.json",GraphModel=class{constructor(modelUrl,loadOptions={}){this.modelUrl=modelUrl,this.loadOptions=loadOptions,this.version="n/a",loadOptions==null&&(this.loadOptions={}),this.resourceManager=new ResourceManager}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let path=this.modelUrl;if(path.load!=null)this.handler=path;else if(this.loadOptions.requestInit!=null)this.handler=io_exports.browserHTTPRequest(path,this.loadOptions);else{let handlers=io_exports.getLoadHandlers(path,this.loadOptions);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(path,this.loadOptions));else if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) load handlers for URL '${[path]}'`);this.handler=handlers[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await this.handler.load();return this.loadSync(artifacts)}loadSync(artifacts){this.artifacts=artifacts;let graph2=this.artifacts.modelTopology,signature;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?signature=this.artifacts.userDefinedMetadata.signature:signature=this.artifacts.signature,this.signature=signature,this.version=`${graph2.versions.producer}.${graph2.versions.minConsumer}`;let weightMap=io_exports.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new GraphExecutor(OperationMapper.Instance.transformGraph(graph2,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(weightMap),this.executor.resourceManager=this.resourceManager,artifacts.modelInitializer!=null&&artifacts.modelInitializer.node!=null){let initializer=OperationMapper.Instance.transformGraph(artifacts.modelInitializer);this.initializer=new GraphExecutor(initializer),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(handlerOrURL,config3){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new Error(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return handlerOrURL.save(this.artifacts)}predict(inputs,config3){return this.execute(inputs,this.outputNodes)}normalizeInputs(inputs){if(!(inputs instanceof Tensor)&&!Array.isArray(inputs))return inputs;if(inputs=Array.isArray(inputs)?inputs:[inputs],inputs.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${inputs.length} input tensors.`);return this.inputNodes.reduce((map,inputName,i)=>(map[inputName]=inputs[i],map),{})}normalizeOutputs(outputs){return outputs=outputs||this.outputNodes,Array.isArray(outputs)?outputs:[outputs]}execute(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=this.executor.execute(inputs,outputs);return result.length>1?result:result[0]}async executeAsync(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=await this.executor.executeAsync(inputs,outputs);return result.length>1?result:result[0]}convertTensorMapToTensorsMap(map){return Object.keys(map).reduce((newMap,key)=>(newMap[key]=[map[key]],newMap),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function loadGraphModel(modelUrl,options={}){if(modelUrl==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");options==null&&(options={}),options.fromTFHub&&modelUrl.load==null&&(modelUrl.endsWith("/")||(modelUrl=modelUrl+"/"),modelUrl=`${modelUrl}${DEFAULT_MODEL_NAME}${TFHUB_SEARCH_PARAM}`);let model2=new GraphModel(modelUrl,options);return await model2.load(),model2}var version11="2.8.3",dist_exports={};__export2(dist_exports,{CSVDataset:()=>CSVDataset,Dataset:()=>Dataset,FileDataSource:()=>FileDataSource,TextLineDataset:()=>TextLineDataset,URLDataSource:()=>URLDataSource,array:()=>array,csv:()=>csv,func:()=>func,generator:()=>generator,microphone:()=>microphone,version_data:()=>version12,webcam:()=>webcam,zip:()=>zip});var seedrandom4=__toModule2(require_seedrandom6()),seedrandom3=__toModule2(require_seedrandom6());function deepMap(input2,mapFn){return deepMapInternal(input2,mapFn)}function deepMapInternal(input2,mapFn,seen=new Map,containedIn=new Set){if(input2==null)return null;if(containedIn.has(input2))throw new Error("Circular references are not supported.");if(seen.has(input2))return seen.get(input2);let result=mapFn(input2);if(result.recurse&&result.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let child=input2[k],childResult=deepMapInternal(child,mapFn,seen,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return seen.set(input2,result.value),result.value}function deepZip(inputs,zipFn=zipToList){return deepZipInternal(inputs,zipFn)}function deepZipInternal(inputs,zipFn,containedIn=new Set){let input2=inputs[0];if(containedIn.has(input2))throw new Error("Circular references are not supported.");let result=zipFn(inputs);if(result.recurse&&result.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let children=inputs.map(x=>x[k]),childResult=deepZipInternal(children,zipFn,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return result.value}function zipToList(x){return x===null?null:isIterable2(x[0])?{value:null,recurse:!0}:{value:x,recurse:!1}}async function deepMapAndAwaitAll(input2,mapFn){let seen=new Map;deepMapInternal(input2,mapFn,seen);for(let key of Array.from(seen.keys())){let value=seen.get(key);if(util_exports.isPromise(value)){let mappedValue=await value;seen.set(key,mappedValue)}}return deepMapInternal(input2,mapFn,seen)}function isIterable2(obj){return obj!=null&&!ArrayBuffer.isView(obj)&&(Array.isArray(obj)||typeof obj=="object"&&!(obj instanceof Tensor))}function canTensorify(obj){return obj==null||isPrimitive(obj)||Array.isArray(obj)||typeof obj=="object"&&obj instanceof Tensor||util_exports.isTypedArray(obj)}function isPrimitive(value){return value===null||typeof value!="object"&&typeof value!="function"}function deepClone(container){return deepMap(container,cloneIfTensor)}function cloneIfTensor(item){return item instanceof Tensor?{value:item.clone(),recurse:!1}:isIterable2(item)?{value:null,recurse:!0}:{value:item,recurse:!1}}var RingBuffer=class{constructor(capacity){if(this.capacity=capacity,this.begin=0,this.end=0,capacity==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(capacity<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(capacity),this.doubledCapacity=2*capacity}wrap(index){for(;index<0;)index+=this.doubledCapacity;return index%this.doubledCapacity}get(index){if(index<0)throw new RangeError("Can't get item at a negative index.");return this.data[index%this.capacity]}set(index,value){if(index<0)throw new RangeError("Can't set item at a negative index.");this.data[index%this.capacity]=value}length(){let length=this.end-this.begin;return length<0&&(length=this.doubledCapacity+length),length}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,value),this.end=this.wrap(this.end+1)}pushAll(values){for(let value of values)this.push(value)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let result=this.get(this.end);return this.set(this.end,void 0),result}unshift(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,value)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let result=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),result}shuffleExcise(relativeIndex){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let index=this.wrap(this.begin+relativeIndex),result=this.get(index);return this.set(index,this.pop()),result}},GrowingRingBuffer=class extends RingBuffer{constructor(){super(GrowingRingBuffer.INITIAL_CAPACITY)}isFull(){return!1}push(value){super.isFull()&&this.expand(),super.push(value)}unshift(value){super.isFull()&&this.expand(),super.unshift(value)}expand(){let newCapacity=this.capacity*2,newData=new Array(newCapacity),len=this.length();for(let i=0;ix===!0)}rowMajorBatch(batchSize,smallLastBatch=!0){return new RowMajorBatchIterator(this,batchSize,smallLastBatch)}columnMajorBatch(batchSize,smallLastBatch=!0,zipFn=zipToList){return this.rowMajorBatch(batchSize,smallLastBatch).map(x=>deepZip(x,zipFn))}concatenate(iterator,baseErrorHandler){return new ChainedIterator(iteratorFromItems([this,iterator]),baseErrorHandler)}take(count2){return count2<0||count2==null?this:new TakeIterator(this,count2)}skip(count2){return count2<0||count2==null?this:new SkipIterator(this,count2)}prefetch(bufferSize){return new PrefetchIterator(this,bufferSize)}shuffle(windowSize,seed){return new ShuffleIterator(this,windowSize,seed)}serial(){return new SerialIterator(this)}},ArrayIterator=class extends LazyIterator{constructor(items){super();this.items=items,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let item=this.items[this.trav];return this.trav++,{value:deepClone(item),done:!1}}},FunctionCallIterator=class extends LazyIterator{constructor(nextFn){super();this.nextFn=nextFn}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},SerialIterator=class extends LazyIterator{constructor(upstream){super();this.upstream=upstream,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},SkipIterator=class extends LazyIterator{constructor(upstream,maxCount){super();this.upstream=upstream,this.maxCount=maxCount,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},RowMajorBatchIterator=class extends LazyIterator{constructor(upstream,batchSize,enableSmallLastBatch=!0){super();this.upstream=upstream,this.batchSize=batchSize,this.enableSmallLastBatch=enableSmallLastBatch,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let batch=[];for(;batch.length0?{value:batch,done:!1}:{value:null,done:!0};batch.push(item.value)}return{value:batch,done:!1}}},FilterIterator=class extends LazyIterator{constructor(upstream,predicate){super();this.upstream=upstream,this.predicate=predicate,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let item=await this.upstream.next();if(item.done||this.predicate(item.value))return item;dispose(item.value)}}},MapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Map`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},ErrorHandlingLazyIterator=class extends LazyIterator{constructor(upstream,handler){super();this.upstream=upstream,this.handler=handler,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},AsyncMapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=await this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},OneToManyIterator=class extends LazyIterator{constructor(){super();this.outputQueue=new GrowingRingBuffer,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},FlatmapIterator=class extends OneToManyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let item=await this.upstream.next();if(item.done)return!1;let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mappedArray=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mappedArray);this.outputQueue.pushAll(mappedArray);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return!0}},ChainedIterator=class extends LazyIterator{constructor(iterators,baseErrorHandler){super();this.baseErrorHandler=baseErrorHandler,this.lastRead=null,this.iterator=null,this.moreIterators=iterators}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(lastRead){if(await lastRead,this.iterator==null){let iteratorResult=await this.moreIterators.next();if(iteratorResult.done)return{value:null,done:!0};this.iterator=iteratorResult.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let itemResult=await this.iterator.next();return itemResult.done?(this.iterator=null,this.readFromChain(lastRead)):itemResult}},ZipMismatchMode;(function(ZipMismatchMode2){ZipMismatchMode2[ZipMismatchMode2.FAIL=0]="FAIL",ZipMismatchMode2[ZipMismatchMode2.SHORTEST=1]="SHORTEST",ZipMismatchMode2[ZipMismatchMode2.LONGEST=2]="LONGEST"})(ZipMismatchMode||(ZipMismatchMode={}));var ZipIterator=class extends LazyIterator{constructor(iterators,mismatchMode=ZipMismatchMode.FAIL){super();this.iterators=iterators,this.mismatchMode=mismatchMode,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(afterState){await afterState;let numIterators=0,iteratorsDone=0;function getNext(container){return container instanceof LazyIterator?{value:container.next().then(x=>(numIterators++,x.done&&iteratorsDone++,x.value)),recurse:!1}:{value:null,recurse:!0}}let mapped=await deepMapAndAwaitAll(this.iterators,getNext);if(numIterators===iteratorsDone)return{value:null,done:!0};if(iteratorsDone>0)switch(this.mismatchMode){case ZipMismatchMode.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ZipMismatchMode.SHORTEST:return{value:null,done:!0};case ZipMismatchMode.LONGEST:default:}return this.count++,{value:mapped,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},PrefetchIterator=class extends LazyIterator{constructor(upstream,bufferSize){super();this.upstream=upstream,this.bufferSize=bufferSize,this.buffer=new RingBuffer(bufferSize)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let v=this.upstream.next();this.buffer.push(v)}}next(){return this.refill(),this.buffer.shift()}},ShuffleIterator=class extends PrefetchIterator{constructor(upstream,windowSize,seed){super(upstream,windowSize);this.upstream=upstream,this.windowSize=windowSize,this.upstreamExhausted=!1,this.random=seedrandom3.alea(seed||util_exports.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(max6){return Math.floor(this.random()*max6)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let chosenIndex=this.chooseIndex(),result=await this.buffer.shuffleExcise(chosenIndex);if(result.done)this.upstreamExhausted=!0;else return this.refill(),result}return{value:null,done:!0}}},Dataset=class{constructor(){this.size=null}batch(batchSize,smallLastBatch=!0){let base2=this;util_exports.assert(batchSize>0,()=>`batchSize needs to be positive, but it is + ${totalLength}, and tensor's shape is: ${tensor2.shape}`);let elementPerRow=totalLength===0?0:tensor2.size/totalLength,tensors=tidy(()=>{let tensors2=[];tensor2=reshape(tensor2,[1,totalLength,elementPerRow]);for(let i=0;i{switch(node.op){case"If":case"StatelessIf":{let thenFunc=getParamValue("thenBranch",node,tensorMap,context),elseFunc=getParamValue("elseBranch",node,tensorMap,context),cond=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context);return(await cond.data())[0]?context.functionMap[thenFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap):context.functionMap[elseFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap)}case"While":case"StatelessWhile":{let bodyFunc=getParamValue("body",node,tensorMap,context),condFunc=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context),condResult=await context.functionMap[condFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap),argIds=args.map(tensor2=>tensor2.id),condValue=await condResult[0].data();condResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let result=args;for(;condValue[0];){let origResult=result;result=await context.functionMap[bodyFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);let resultIds=result.map(tensor2=>tensor2.id);origResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let condResult2=await context.functionMap[condFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);condValue=await condResult2[0].data(),condResult2.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()})}return result}case"LoopCond":{let pred=getParamValue("pred",node,tensorMap,context);return[cloneTensor(pred)]}case"Switch":{let pred=getParamValue("pred",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context);return data2.kept||(data2=cloneTensor(data2)),(await pred.data())[0]?[void 0,data2]:[data2,void 0]}case"Merge":{let inputName=node.inputNames.find(name=>getTensor(name,tensorMap,context)!==void 0);if(inputName){let data2=getTensor(inputName,tensorMap,context);return[cloneTensor(data2)]}return}case"Enter":{let frameId=getParamValue("frameName",node,tensorMap,context),data2=getParamValue("tensor",node,tensorMap,context);return context.enterFrame(frameId),[cloneTensor(data2)]}case"Exit":{let data2=getParamValue("tensor",node,tensorMap,context);return context.exitFrame(),[cloneTensor(data2)]}case"NextIteration":{let data2=getParamValue("tensor",node,tensorMap,context);return context.nextIteration(),[cloneTensor(data2)]}case"TensorArrayV3":{let size=getParamValue("size",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),dynamicSize=getParamValue("dynamicSize",node,tensorMap,context),clearAfterRead=getParamValue("clearAfterRead",node,tensorMap,context),identicalElementShapes=getParamValue("identicalElementShapes",node,tensorMap,context),name=getParamValue("name",node,tensorMap,context),tensorArray=new TensorArray(name,dtype,size,elementShape,identicalElementShapes,dynamicSize,clearAfterRead);return context.addTensorArray(tensorArray),[tensorArray.idTensor,scalar(1)]}case"TensorArrayWriteV3":{let id=getParamValue("tensorArrayId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),writeTensorArray=context.getTensorArray(id.id);return writeTensorArray.write(index,writeTensor),[writeTensorArray.idTensor]}case"TensorArrayReadV3":{let readId=getParamValue("tensorArrayId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context);return[context.getTensorArray(readId.id).read(readIndex)]}case"TensorArrayGatherV3":{let gatherId=getParamValue("tensorArrayId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),gatherDtype=getParamValue("dtype",node,tensorMap,context);return[context.getTensorArray(gatherId.id).gather(gatherIndices,gatherDtype)]}case"TensorArrayScatterV3":{let scatterId=getParamValue("tensorArrayId",node,tensorMap,context),scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),scatterTensorArray=context.getTensorArray(scatterId.id);return scatterTensorArray.scatter(scatterIndices,scatterTensor),[scatterTensorArray.idTensor]}case"TensorArrayConcatV3":{let concatId=getParamValue("tensorArrayId",node,tensorMap,context),concatTensorArray=context.getTensorArray(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context);return[concatTensorArray.concat(concatDtype)]}case"TensorArraySplitV3":{let splitId=getParamValue("tensorArrayId",node,tensorMap,context),splitTensor=getParamValue("tensor",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),splitTensorArray=context.getTensorArray(splitId.id);return splitTensorArray.split(lengths,splitTensor),[splitTensorArray.idTensor]}case"TensorArraySizeV3":{let sizeId=getParamValue("tensorArrayId",node,tensorMap,context),sizeTensorArray=context.getTensorArray(sizeId.id);return[scalar(sizeTensorArray.size(),"int32")]}case"TensorArrayCloseV3":{let closeId=getParamValue("tensorArrayId",node,tensorMap,context),closeTensorArray=context.getTensorArray(closeId.id);return closeTensorArray.clearAndClose(),[closeTensorArray.idTensor]}case"TensorListSetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.setItem(index,writeTensor),[tensorList.idTensor]}case"TensorListGetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).getItem(readIndex,elementShape,elementDType)]}case"TensorListScatterV2":case"TensorListScatter":{let scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context),tensorList=scatter(scatterTensor,scatterIndices,elementShape,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElementsParam;node.op==="TensorListReserve"?numElementsParam="numElements":numElementsParam="maxNumElements";let numElements=getParamValue(numElementsParam,node,tensorMap,context),tensorList=reserve(elementShape,elementDtype,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListGather":{let gatherId=getParamValue("tensorListId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(gatherId.id).gather(gatherIndices,elementDtype,elementShape)]}case"TensorListStack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context);return[context.getTensorList(idTensor.id).stack(elementShape,elementDtype,numElements)]}case"TensorListFromTensor":{let tensor2=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),tensorList=fromTensor(tensor2,elementShape,elementDtype);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListConcat":{let concatId=getParamValue("tensorListId",node,tensorMap,context),tensorList=context.getTensorList(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context);return[tensorList.concat(concatDtype,elementShape)]}case"TensorListPushBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.pushBack(writeTensor),[tensorList.idTensor]}case"TensorListPopBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).popBack(elementShape,elementDType)]}case"TensorListSplit":{let splitTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),tensorList=split2(splitTensor,lengths,elementShape);return context.addTensorList(tensorList),[tensorList.idTensor]}default:throw TypeError(`Node type ${node.op} is not implemented`)}};function fusedConvAndDepthWiseParams(node,tensorMap,context){let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",isBatchNorm=extraOp==="fusedbatchnorm",numArgs=getParamValue("numArgs",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(isBatchNorm)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context),[biasArg,preluArg]=getParamValue("args",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);return{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}}var executeOp4=(node,tensorMap,context)=>{switch(node.op){case"Conv1D":{let stride=getParamValue("stride",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilation=getParamValue("dilation",node,tensorMap,context);return[conv1d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),stride,pad3,dataFormat,dilation)]}case"Conv2D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"_FusedConv2D":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.conv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"FusedDepthwiseConv2dNative":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.depthwiseConv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let shape=getParamValue("outputShape",node,tensorMap,context),stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context);return[conv2dTranspose(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),shape,[stride[1],stride[2]],pad3)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthwiseConv2d(getParamValue("input",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"Conv3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv3d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2],stride[3]],pad3,dataFormat,[dilations[1],dilations[2],dilations[3]])]}case"AvgPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPoolWithArgmax":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context),includeBatchInIndex=getParamValue("includeBatchInIndex",node,tensorMap,context),{result,indexes}=maxPoolWithArgmax(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3,includeBatchInIndex);return[result,indexes]}case"AvgPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"MaxPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"Dilation2D":{let strides=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),strideHeight=strides[1],strideWidth=strides[2],dilationHeight=dilations[1],dilationWidth=dilations[2];return[dilation2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[strideHeight,strideWidth],pad3,[dilationHeight,dilationWidth],"NHWC")]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp5=(node,tensorMap,context)=>{switch(node.op){case"Fill":{let shape=getParamValue("shape",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),value=getParamValue("value",node,tensorMap,context);return[fill(shape,value,dtype)]}case"LinSpace":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),num=getParamValue("num",node,tensorMap,context);return[linspace(start,stop,num)]}case"Multinomial":{let logits=getParamValue("logits",node,tensorMap,context),numSamples=getParamValue("numSamples",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[multinomial(logits,numSamples,seed)]}case"OneHot":{let indices=getParamValue("indices",node,tensorMap,context),depth=getParamValue("depth",node,tensorMap,context),onValue=getParamValue("onValue",node,tensorMap,context),offValue=getParamValue("offValue",node,tensorMap,context);return[oneHot(indices,depth,onValue,offValue)]}case"Ones":return[ones2(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"OnesLike":return[onesLike(getParamValue("x",node,tensorMap,context))];case"RandomUniform":return[randomUniform(getParamValue("shape",node,tensorMap,context),getParamValue("minval",node,tensorMap,context),getParamValue("maxval",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"Range":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),step4=getParamValue("step",node,tensorMap,context);return[range(start,stop,step4,getParamValue("dtype",node,tensorMap,context))]}case"TruncatedNormal":{let shape=getParamValue("shape",node,tensorMap,context),mean4=getParamValue("mean",node,tensorMap,context),stdDev=getParamValue("stdDev",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[truncatedNormal(shape,mean4,stdDev,getParamValue("dtype",node,tensorMap,context),seed)]}case"Zeros":return[zeros(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ZerosLike":return[zerosLike(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function nmsParams(node,tensorMap,context){let boxes=getParamValue("boxes",node,tensorMap,context),scores=getParamValue("scores",node,tensorMap,context),maxOutputSize=getParamValue("maxOutputSize",node,tensorMap,context),iouThreshold=getParamValue("iouThreshold",node,tensorMap,context),scoreThreshold=getParamValue("scoreThreshold",node,tensorMap,context),softNmsSigma=getParamValue("softNmsSigma",node,tensorMap,context);return{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}var executeOp6=async(node,tensorMap,context)=>{switch(node.op){case"NonMaxSuppressionV5":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}=nmsParams(node,tensorMap,context),result=await image.nonMaxSuppressionWithScoreAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return[result.selectedIndices,result.selectedScores]}case"NonMaxSuppressionV4":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context),padToMaxOutputSize=getParamValue("padToMaxOutputSize",node,tensorMap,context),result=await image.nonMaxSuppressionPaddedAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize);return[result.selectedIndices,result.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context);return[await image.nonMaxSuppressionAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold)]}case"Where":{let condition=cast(getParamValue("condition",node,tensorMap,context),"bool"),result=[await whereAsync(condition)];return condition.dispose(),result}case"ListDiff":return setdiff1dAsync(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context));default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp7=(node,tensorMap,context)=>{switch(node.op){case"TopKV2":{let x=getParamValue("x",node,tensorMap,context),k=getParamValue("k",node,tensorMap,context),sorted=getParamValue("sorted",node,tensorMap,context),result=topk(x,k,sorted);return[result.values,result.indices]}case"Unique":{let x=getParamValue("x",node,tensorMap,context),result=unique(x);return[result.values,result.indices]}case"UniqueV2":{let x=getParamValue("x",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),result=unique(x,axis);return[result.values,result.indices]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp8=(node,tensorMap,context)=>{switch(node.op){case"Const":return tensorMap[node.name];case"PlaceholderWithDefault":let def=getParamValue("default",node,tensorMap,context);return[getTensor(node.name,tensorMap,context)||def];case"Placeholder":return[getTensor(node.name,tensorMap,context)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let data22=getParamValue("x",node,tensorMap,context);return[cloneTensor(data22)]}case"IdentityN":return getParamValue("x",node,tensorMap,context).map(t=>cloneTensor(t));case"Snapshot":let snapshot=getParamValue("x",node,tensorMap,context);return[cloneTensor(snapshot)];case"Shape":return[tensor1d(getParamValue("x",node,tensorMap,context).shape,"int32")];case"ShapeN":return getParamValue("x",node,tensorMap,context).map(t=>tensor1d(t.shape));case"Size":return[scalar(getParamValue("x",node,tensorMap,context).size,"int32")];case"Rank":return[scalar(getParamValue("x",node,tensorMap,context).rank,"int32")];case"NoOp":return[scalar(1)];case"Print":let input2=getParamValue("x",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context),message=getParamValue("message",node,tensorMap,context),summarize=getParamValue("summarize",node,tensorMap,context);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(message);for(let i=0;ivalue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(keys,values){this.checkKeyAndValueTensor(keys,values);let $keys=await keys.data();return this.tensorMap.forEach(value=>value.dispose()),this.tensorMap.clear(),tidy(()=>{let $values=unstack(values),keysLength=$keys.length,valuesLength=$values.length;util_exports.assert(keysLength===valuesLength,()=>`The number of elements doesn't match, keys has ${keysLength} elements, the values has ${valuesLength} elements.`);for(let i=0;i{let result=[];for(let i=0;i<$keys.length;i++){let key=$keys[i],value=this.findWithDefault(key,defaultValue);result.push(value)}return stack(result)})}findWithDefault(key,defaultValue){let result=this.tensorMap.get(key);return result!=null?result:defaultValue}checkKeyAndValueTensor(key,value){if(key.dtype!==this.keyDType)throw new Error(`Expect key dtype ${this.keyDType}, but got ${key.dtype}`);if(value.dtype!==this.valueDType)throw new Error(`Expect value dtype ${this.valueDType}, but got ${value.dtype}`)}},executeOp9=async(node,tensorMap,context,resourceManager)=>{switch(node.op){case"HashTable":case"HashTableV2":{let keyDType=getParamValue("keyDType",node,tensorMap,context),valueDType=getParamValue("valueDType",node,tensorMap,context),hashTable2=new HashTable(keyDType,valueDType);return resourceManager.addHashTable(node.name,hashTable2),[hashTable2.handle]}case"LookupTableImport":case"LookupTableImportV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).import(keys,values)]}case"LookupTableFind":case"LookupTableFindV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).find(keys,defaultValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp10=(node,tensorMap,context)=>{switch(node.op){case"ResizeBilinear":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeBilinear(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"ResizeNearestNeighbor":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeNearestNeighbor(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"CropAndResize":{let image3=getParamValue("image",node,tensorMap,context),boxes=getParamValue("boxes",node,tensorMap,context),boxInd=getParamValue("boxInd",node,tensorMap,context),cropSize=getParamValue("cropSize",node,tensorMap,context),method=getParamValue("method",node,tensorMap,context),extrapolationValue=getParamValue("extrapolationValue",node,tensorMap,context);return[image.cropAndResize(image3,boxes,boxInd,cropSize,method,extrapolationValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp11=(node,tensorMap,context)=>{switch(node.op){case"Equal":return[equal(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"NotEqual":return[notEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Greater":return[greater(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"GreaterEqual":return[greaterEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Less":return[less(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LessEqual":return[lessEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalAnd":return[logicalAnd(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalNot":return[logicalNot(getParamValue("a",node,tensorMap,context))];case"LogicalOr":return[logicalOr(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Select":case"SelectV2":return[where(getParamValue("condition",node,tensorMap,context),getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp12=(node,tensorMap,context)=>{switch(node.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[matMul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context),getParamValue("transposeA",node,tensorMap,context),getParamValue("transposeB",node,tensorMap,context))];case"Transpose":return[transpose(getParamValue("x",node,tensorMap,context),getParamValue("perm",node,tensorMap,context))];case"_FusedMatMul":let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",numArgs=getParamValue("numArgs",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[biasArg,preluArg]=getParamValue("args",node,tensorMap,context);return[fused_ops_exports.matMul({a:getParamValue("a",node,tensorMap,context),b:getParamValue("b",node,tensorMap,context),transposeA:getParamValue("transposeA",node,tensorMap,context),transposeB:getParamValue("transposeB",node,tensorMap,context),bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp13=(node,tensorMap,context)=>{switch(node.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"FusedBatchNormV3":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"LRN":return[localResponseNormalization(getParamValue("x",node,tensorMap,context),getParamValue("radius",node,tensorMap,context),getParamValue("bias",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context),getParamValue("beta",node,tensorMap,context))];case"Softmax":return[softmax(getParamValue("x",node,tensorMap,context))];case"LogSoftmax":return[logSoftmax(getParamValue("x",node,tensorMap,context))];case"SparseToDense":return[sparseToDense(getParamValue("sparseIndices",node,tensorMap,context),getParamValue("outputShape",node,tensorMap,context),getParamValue("sparseValues",node,tensorMap,context),getParamValue("defaultValue",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp14=(node,tensorMap,context)=>{switch(node.op){case"Max":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[max(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Mean":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[mean(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Min":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[min(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Sum":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[sum2(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"All":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[all(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Any":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[any(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"ArgMax":{let axis=getParamValue("axis",node,tensorMap,context);return[argMax(getParamValue("x",node,tensorMap,context),axis)]}case"ArgMin":{let axis=getParamValue("axis",node,tensorMap,context);return[argMin(getParamValue("x",node,tensorMap,context),axis)]}case"Prod":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[prod(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Cumsum":{let axis=getParamValue("axis",node,tensorMap,context),exclusive=getParamValue("exclusive",node,tensorMap,context),reverse5=getParamValue("reverse",node,tensorMap,context);return[cumsum(getParamValue("x",node,tensorMap,context),axis,exclusive,reverse5)]}case"Bincount":let x=getParamValue("x",node,tensorMap,context),weights=getParamValue("weights",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context);return[bincount(x,weights,size)];case"DenseBincount":{let x2=getParamValue("x",node,tensorMap,context),weights2=getParamValue("weights",node,tensorMap,context),size2=getParamValue("size",node,tensorMap,context),binaryOutput=getParamValue("binaryOutput",node,tensorMap,context);return[denseBincount(x2,weights2,size2,binaryOutput)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp15=(node,tensorMap,context)=>{switch(node.op){case"ConcatV2":case"Concat":{let n=getParamValue("n",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),inputs=getParamValue("tensors",node,tensorMap,context);return inputs=inputs.slice(0,n),[concat(inputs,axis)]}case"Gather":{let input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),0)]}case"GatherV2":{let axis=getParamValue("axis",node,tensorMap,context),batchDims=getParamValue("batchDims",node,tensorMap,context),input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),axis,batchDims)]}case"Reverse":{let dims=getParamValue("dims",node,tensorMap,context),axis=[];for(let i=0;i{let axis=getParamValue("axis",node,tensorMap,context),tensors=getParamValue("tensors",node,tensorMap,context),shape=tensors[0].shape,squeezedShape=squeeze(tensors[0]).shape,mapped=tensors.map(tensor2=>{let sameShape=util_exports.arraysEqual(tensor2.shape,shape);if(!sameShape&&!util_exports.arraysEqual(squeeze(tensor2).shape,squeezedShape))throw new Error("the input tensors shape does not match");return sameShape?tensor2:reshape(tensor2,shape)});return[stack(mapped,axis)]});case"Unpack":{let axis=getParamValue("axis",node,tensorMap,context),tensor2=getParamValue("tensor",node,tensorMap,context);return unstack(tensor2,axis)}case"Tile":{let reps=getParamValue("reps",node,tensorMap,context);return[tile(getParamValue("x",node,tensorMap,context),reps)]}case"Split":case"SplitV":{let axis=getParamValue("axis",node,tensorMap,context),numOrSizeSplits=getParamValue("numOrSizeSplits",node,tensorMap,context),tensor2=getParamValue("x",node,tensorMap,context);return split(tensor2,numOrSizeSplits,axis)}case"ScatterNd":{let indices=getParamValue("indices",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context),shape=getParamValue("shape",node,tensorMap,context);return[scatterND(indices,values,shape)]}case"GatherNd":{let x=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gatherND(x,indices)]}case"SparseToDense":{let indices=getParamValue("sparseIndices",node,tensorMap,context),shape=getParamValue("outputShape",node,tensorMap,context),sparseValues=getParamValue("sparseValues",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[sparseToDense(indices,sparseValues,shape,sparseValues.dtype===defaultValue.dtype?defaultValue:cast(defaultValue,sparseValues.dtype))]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp16=(node,tensorMap,context)=>{switch(node.op){case"FFT":return[fft(getParamValue("x",node,tensorMap,context))];case"IFFT":return[ifft(getParamValue("x",node,tensorMap,context))];case"RFFT":return[rfft(getParamValue("x",node,tensorMap,context))];case"IRFFT":return[irfft(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp17=(node,tensorMap,context)=>{switch(node.op){case"Cast":return[cast(getParamValue("x",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ExpandDims":{let axis=getParamValue("axis",node,tensorMap,context);return[expandDims(getParamValue("x",node,tensorMap,context),axis)]}case"Squeeze":{let axis=getParamValue("axis",node,tensorMap,context);return[squeeze(getParamValue("x",node,tensorMap,context),axis)]}case"Reshape":return[reshape(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];case"MirrorPad":return[mirrorPad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("mode",node,tensorMap,context))];case"PadV2":case"Pad":return[pad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("constantValue",node,tensorMap,context))];case"SpaceToBatchND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),paddings=getParamValue("paddings",node,tensorMap,context);return[spaceToBatchND(getParamValue("x",node,tensorMap,context),blockShape,paddings)]}case"BatchToSpaceND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),crops=getParamValue("crops",node,tensorMap,context);return[batchToSpaceND(getParamValue("x",node,tensorMap,context),blockShape,crops)]}case"DepthToSpace":{let blockSize=getParamValue("blockSize",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthToSpace(getParamValue("x",node,tensorMap,context),blockSize,dataFormat)]}case"BroadcastTo":return[broadcastTo(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function executeOp18(node,tensorMap,context,resourceManager){let value=((node2,tensorMap2,context2)=>{switch(node2.category){case"arithmetic":return tidy(()=>executeOp(node2,tensorMap2,context2));case"basic_math":return tidy(()=>executeOp2(node2,tensorMap2,context2));case"control":return executeOp3(node2,tensorMap2,context2);case"convolution":return tidy(()=>executeOp4(node2,tensorMap2,context2));case"creation":return tidy(()=>executeOp5(node2,tensorMap2,context2));case"dynamic":return executeOp6(node2,tensorMap2,context2);case"evaluation":return tidy(()=>executeOp7(node2,tensorMap2,context2));case"image":return tidy(()=>executeOp10(node2,tensorMap2,context2));case"graph":return tidy(()=>executeOp8(node2,tensorMap2,context2));case"logical":return tidy(()=>executeOp11(node2,tensorMap2,context2));case"matrices":return tidy(()=>executeOp12(node2,tensorMap2,context2));case"normalization":return tidy(()=>executeOp13(node2,tensorMap2,context2));case"reduction":return tidy(()=>executeOp14(node2,tensorMap2,context2));case"slice_join":return tidy(()=>executeOp15(node2,tensorMap2,context2));case"spectral":return tidy(()=>executeOp16(node2,tensorMap2,context2));case"transformation":return tidy(()=>executeOp17(node2,tensorMap2,context2));case"hash_table":return executeOp9(node2,tensorMap2,context2,resourceManager);case"custom":let opMapper=getRegisteredOp(node2.op);if(opMapper&&opMapper.customExecutor)return opMapper.customExecutor(new NodeValueImpl(node2,tensorMap2,context2));throw TypeError(`Custom op ${node2.op} is not registered.`);default:throw TypeError(`Unknown op '${node2.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(node,tensorMap,context);return util_exports.isPromise(value)?value.then(data2=>[].concat(data2)):[].concat(value)}var ExecutionContext=class{constructor(weightMap={},tensorArrayMap={},tensorListMap={},functionMap={}){this.weightMap=weightMap,this.tensorArrayMap=tensorArrayMap,this.tensorListMap=tensorListMap,this.functionMap=functionMap,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(id,frameName){return{id,frameName,iterationId:0}}set currentContext(contexts2){this.contexts!==contexts2&&(this.contexts=contexts2,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let names=[];for(let i=0;icontext.id===0&&context.iterationId===0?"":`${context.frameName}-${context.iterationId}`).join("/"):""}enterFrame(frameId){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,frameId)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let context=Object.assign({},this.contexts[this.contexts.length-1]);context.iterationId+=1,context.id=this.lastId,this.contexts.splice(-1,1,context),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(name){return this.weightMap[name]}addTensorArray(tensorArray){this.tensorArrayMap[tensorArray.id]=tensorArray}getTensorArray(id){return this.tensorArrayMap[id]}addTensorList(tensorList){this.tensorListMap[tensorList.id]=tensorList}getTensorList(id){return this.tensorListMap[id]}dispose(keepIds){for(let key in this.tensorArrayMap)this.tensorArrayMap[key].clearAndClose(keepIds);for(let key in this.tensorListMap)this.tensorListMap[key].clearAndClose(keepIds)}};function getExecutionSubgraph(inputs,outputs,weightMap,initNodes){let usedNodes=new Set,missingInputs=[],dynamicNode=null,syncInputs=null,seen=new Set,inputNodeNames=Object.keys(inputs).map(name=>parseNodeName(name)[0]),initNodeNames=[];initNodes!=null&&(initNodeNames=initNodes.map(node=>parseNodeName(node.name)[0]));let frontier=[...outputs];for(;frontier.length>0;){let node=frontier.pop();if((isControlFlow(node)||isDynamicShape(node)||isHashTable(node))&&dynamicNode==null&&(dynamicNode=node,syncInputs=dynamicNode.children.map(child=>child.name).filter(name=>usedNodes.has(name))),usedNodes.add(node.name),weightMap[node.name]==null&&inputNodeNames.indexOf(node.name)===-1&&initNodeNames.indexOf(node.name)===-1){if(node.inputs.length===0){missingInputs.push(node.name);continue}node.inputs.forEach(input2=>{seen.has(input2.name)||(seen.add(input2.name),frontier.push(input2))})}}return{inputs,outputs,usedNodes,missingInputs,dynamicNode,syncInputs}}function getNodesInTopologicalOrder(graph2,weightMap,executionInfo){let{usedNodes,inputs}=executionInfo,frontier=[],inputNodes=Object.keys(inputs).map(name=>parseNodeName(name)[0]).map(name=>graph2.nodes[name]),initNodes=graph2.initNodes;inputNodes.forEach(input2=>{usedNodes.has(input2.name)&&frontier.push(input2)}),graph2.weights.forEach(weight=>{usedNodes.has(weight.name)&&frontier.push(weight)}),initNodes!=null&&initNodes.forEach(node=>{usedNodes.has(node.name)&&frontier.push(node)});let seen=new Set,orderedNodes=[];for(;frontier.length>0;){let node=frontier.pop();seen.add(node.name),weightMap[node.name]||orderedNodes.push(node),node.children.forEach(child=>{!seen.has(child.name)&&usedNodes.has(child.name)&&child.inputs.every(input2=>seen.has(input2.name))&&frontier.push(child)})}return orderedNodes}var CONTROL_FLOW_OPS=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],DYNAMIC_SHAPE_OPS=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],HASH_TABLE_OPS=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function isControlFlow(node){return CONTROL_FLOW_OPS.indexOf(node.op)>=0}function isDynamicShape(node){return DYNAMIC_SHAPE_OPS.indexOf(node.op)>=0}function isHashTable(node){return HASH_TABLE_OPS.indexOf(node.op)>=0}var GraphExecutor=class{constructor(graph2,parent){this.graph=graph2,this.parent=parent,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=graph2.outputs,this._inputs=graph2.inputs,this._initNodes=graph2.initNodes,this._signature=graph2.signature,this._functions=graph2.functions,graph2.functions!=null&&Object.keys(graph2.functions).forEach(name=>{this._functionExecutorMap[name]=new GraphExecutor(graph2.functions[name],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(weightMap){let weightIds=Object.keys(weightMap).map(key=>weightMap[key].map(tensor2=>tensor2.id));this._weightIds=[].concat(...weightIds),this._weightMap=weightMap}set resourceManager(resourceManager){this._resourceManager=resourceManager}get inputs(){return this._inputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(node=>node.signatureKey||node.name)}get outputNodes(){return this._outputs.map(node=>{let name=node.signatureKey||node.name;return node.defaultOutput?`${name}:${node.defaultOutput}`:name})}get functions(){return Object.keys(this._functions).reduce((map,key)=>(map[key]=this._functions[key].signature,map),{})}getCompilationKey(inputs,outputs){let sortedInputs=inputs.map(node=>node.name).sort(),sortedOutputs=outputs.map(node=>node.name).sort();return sortedInputs.join(this.SEPERATOR)+"--"+sortedOutputs.join(this.SEPERATOR)}compile(inputs,outputs){let executionInfo=getExecutionSubgraph(inputs,outputs,this.weightMap,this._initNodes),{missingInputs,dynamicNode,syncInputs}=executionInfo;if(dynamicNode!=null)throw new Error(`This execution contains the node '${dynamicNode.name}', which has the dynamic op '${dynamicNode.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${syncInputs}]`);if(missingInputs.length>0){let outNames=outputs.map(n=>n.name),inNames=Object.keys(inputs);throw new Error(`Cannot compute the outputs [${outNames}] from the provided inputs [${inNames}]. Missing the following inputs: [${missingInputs}]`)}return getNodesInTopologicalOrder(this.graph,this.weightMap,executionInfo)}execute(inputs,outputs){inputs=this.mapInputs(inputs);let names=Object.keys(inputs).sort();this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs);let inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputs.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let compilationKey=this.getCompilationKey(inputNodes,outputNodes),orderedNodes=this.compiledMap.get(compilationKey);orderedNodes==null&&(orderedNodes=this.compile(inputs,outputNodes),this.compiledMap.set(compilationKey,orderedNodes));let tensorArrayMap={},tensorListMap={};return tidy(()=>{let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let tensorsToKeep=this.getFrozenTensorIds(tensorsMap),intermediateTensorConsumerCount={};for(let i=0;igetTensor(name,tensorsMap,context))})}getFrozenTensorIds(tensorMap){let ids=[].concat.apply([],Object.keys(tensorMap).map(key=>tensorMap[key]).map(tensors=>tensors.map(tensor2=>tensor2.id)));return new Set(ids)}checkTensorForDisposal(nodeName,node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount){node.category==="control"||outputNames.indexOf(nodeName)!==-1||(tensorMap[nodeName].forEach(tensor2=>{tensor2!=null&&(intermediateTensorConsumerCount[tensor2.id]=(intermediateTensorConsumerCount[tensor2.id]||0)+node.children.length)}),node.inputs.forEach(input2=>{if(input2.category!=="control"){let tensors=getTensorsForCurrentContenxt(input2.name,tensorMap,context);tensors!=null&&tensors.forEach(tensor2=>{if(tensor2&&!tensorsToKeep.has(tensor2.id)){let count2=intermediateTensorConsumerCount[tensor2.id];count2===1?(tensor2.dispose(),delete intermediateTensorConsumerCount[tensor2.id]):count2!=null&&intermediateTensorConsumerCount[tensor2.id]--}})}}))}async executeAsync(inputs,outputs){return this._executeAsync(inputs,outputs)}async _executeAsync(inputs,outputs,isFunctionExecution=!1,tensorArrayMap={},tensorListMap={}){isFunctionExecution||(inputs=this.mapInputs(inputs),this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs));let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorMap=await this.executeWithControlFlow(inputs,context,outputs,isFunctionExecution),results=outputs.map(name=>getTensor(name,tensorMap,context)),outputIds=results.map(t=>t.id),inputIds=Object.keys(inputs).map(name=>inputs[name].id),keepIds=new Set([...outputIds,...inputIds,...this.weightIds]);return Object.keys(tensorMap).forEach(key=>{tensorMap[key].forEach(tensor2=>{tensor2&&!tensor2.isDisposed&&!keepIds.has(tensor2.id)&&tensor2.dispose()})}),this.parent==null&&context.dispose(keepIds),results}async executeFunctionAsync(inputs,tensorArrayMap,tensorListMap){let mappedInputs=inputs.reduce((map,tensor2,index)=>(map[this.inputs[index].name]=tensor2,map),{});return this._executeAsync(mappedInputs,this.outputNodes,!0,tensorArrayMap,tensorListMap)}async executeWithControlFlow(inputs,context,outputNames,isFunctionExecution){let names=Object.keys(inputs),inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputNames.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let{usedNodes,missingInputs,dynamicNode,syncInputs}=getExecutionSubgraph(inputs,outputNodes,this.weightMap,this._initNodes),stack2=[...inputNodes,...this.graph.weights,...this._initNodes||[]].map(node=>({node,contexts:context.currentContext})),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let intermediateTensorConsumerCount={},tensorsToKeep=this.getFrozenTensorIds(tensorsMap),added={};for(;stack2.length>0;){let promises=this.processStack(inputNodes,stack2,context,tensorsMap,added,tensorsToKeep,outputNodeNames,intermediateTensorConsumerCount,usedNodes);await Promise.all(promises)}dynamicNode==null&&!isFunctionExecution&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let missingOutputs=outputNodes.filter(node=>!isControlFlow(node)&&!getTensor(node.name,tensorsMap,context)).map(node=>node.name);if(missingOutputs.length>0){let alternativeMsg="";throw dynamicNode!=null&&(alternativeMsg=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${syncInputs}]`),new Error(`Cannot compute the outputs [${missingOutputs}] from the provided inputs [${names}]. Consider providing the following inputs: [${missingInputs}]. ${alternativeMsg}`)}return tensorsMap}processStack(inputNodes,stack2,context,tensorMap,added,tensorsToKeep,outputNames,intermediateTensorConsumerCount,usedNodes){let promises=[];for(;stack2.length>0;){let item=stack2.pop();context.currentContext=item.contexts;let nodeName="";if(item.node.op==="Enter"&&getParamValue("isConstant",item.node,tensorMap,context)&&([nodeName]=getNodeNameAndIndex(item.node.name,context)),tensorMap[item.node.name]==null){let tensors=executeOp18(item.node,tensorMap,context,this._resourceManager);nodeName||([nodeName]=getNodeNameAndIndex(item.node.name,context));let currentContext=context.currentContext;util_exports.isPromise(tensors)?promises.push(tensors.then(t=>(tensorMap[nodeName]=t,context.currentContext=currentContext,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes),t))):(tensorMap[nodeName]=tensors,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes))}else this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes)}return promises}processChildNodes(node,stack2,context,tensorMap,added,usedNodes){node.children.forEach(childNode=>{let[nodeName]=getNodeNameAndIndex(childNode.name,context);added[nodeName]||!usedNodes.has(childNode.name)||(childNode.op==="Merge"?childNode.inputNames.some(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})):childNode.inputNames.every(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})))})}dispose(){Object.keys(this.weightMap).forEach(key=>this.weightMap[key].forEach(tensor2=>tensor2.dispose()))}checkInputShapeAndType(inputs){Object.keys(inputs).forEach(name=>{let input2=inputs[name],[nodeName]=parseNodeName(name),node=this.graph.nodes[nodeName];if(node.attrParams.shape&&node.attrParams.shape.value){let shape=node.attrParams.shape.value,match=shape.length===input2.shape.length&&input2.shape.every((dim,index)=>shape[index]===-1||shape[index]===dim);util_exports.assert(match,()=>`The shape of dict['${node.name}'] provided in model.execute(dict) must be [${shape}], but was [${input2.shape}]`)}node.attrParams.dtype&&node.attrParams.dtype.value&&util_exports.assert(input2.dtype===node.attrParams.dtype.value,()=>`The dtype of dict['${node.name}'] provided in model.execute(dict) must be ${node.attrParams.dtype.value}, but was ${input2.dtype}`)})}mapInputs(inputs){let result={};for(let inputName in inputs)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[inputName]!=null){let tensor2=this._signature.inputs[inputName];result[tensor2.name]=inputs[inputName]}else result[inputName]=inputs[inputName];return result}checkInputs(inputs){let notInGraph=Object.keys(inputs).filter(name=>{let[nodeName]=parseNodeName(name);return this.graph.nodes[nodeName]==null});if(notInGraph.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${notInGraph}] that are not part of graph`)}mapOutputs(outputs){return outputs.map(name=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[name]!=null?this._signature.outputs[name].name:name,{})}checkOutputs(outputs){outputs.forEach(name=>{let[normalizedName]=parseNodeName(name);if(!this.graph.nodes[normalizedName])throw new Error(`The output '${name}' is not found in the graph`)})}},ResourceManager=class{constructor(hashTableNameToHandle={},hashTableMap={}){this.hashTableNameToHandle=hashTableNameToHandle,this.hashTableMap=hashTableMap}addHashTable(name,hashTable2){this.hashTableNameToHandle[name]=hashTable2.handle,this.hashTableMap[hashTable2.id]=hashTable2}getHashTableHandleByName(name){return this.hashTableNameToHandle[name]}getHashTableById(id){return this.hashTableMap[id]}dispose(){for(let key in this.hashTableMap)this.hashTableMap[key].clearAndClose(),delete this.hashTableMap[key];for(let name in this.hashTableNameToHandle)this.hashTableNameToHandle[name].dispose(),delete this.hashTableNameToHandle[name]}},TFHUB_SEARCH_PARAM="?tfjs-format=file",DEFAULT_MODEL_NAME="model.json",GraphModel=class{constructor(modelUrl,loadOptions={}){this.modelUrl=modelUrl,this.loadOptions=loadOptions,this.version="n/a",loadOptions==null&&(this.loadOptions={}),this.resourceManager=new ResourceManager}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let path=this.modelUrl;if(path.load!=null)this.handler=path;else if(this.loadOptions.requestInit!=null)this.handler=io_exports.browserHTTPRequest(path,this.loadOptions);else{let handlers=io_exports.getLoadHandlers(path,this.loadOptions);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(path,this.loadOptions));else if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) load handlers for URL '${[path]}'`);this.handler=handlers[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await this.handler.load();return this.loadSync(artifacts)}loadSync(artifacts){this.artifacts=artifacts;let graph2=this.artifacts.modelTopology,signature;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?signature=this.artifacts.userDefinedMetadata.signature:signature=this.artifacts.signature,this.signature=signature,this.version=`${graph2.versions.producer}.${graph2.versions.minConsumer}`;let weightMap=io_exports.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new GraphExecutor(OperationMapper.Instance.transformGraph(graph2,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(weightMap),this.executor.resourceManager=this.resourceManager,artifacts.modelInitializer!=null&&artifacts.modelInitializer.node!=null){let initializer=OperationMapper.Instance.transformGraph(artifacts.modelInitializer);this.initializer=new GraphExecutor(initializer),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(handlerOrURL,config2){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new Error(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return handlerOrURL.save(this.artifacts)}predict(inputs,config2){return this.execute(inputs,this.outputNodes)}normalizeInputs(inputs){if(!(inputs instanceof Tensor)&&!Array.isArray(inputs))return inputs;if(inputs=Array.isArray(inputs)?inputs:[inputs],inputs.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${inputs.length} input tensors.`);return this.inputNodes.reduce((map,inputName,i)=>(map[inputName]=inputs[i],map),{})}normalizeOutputs(outputs){return outputs=outputs||this.outputNodes,Array.isArray(outputs)?outputs:[outputs]}execute(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=this.executor.execute(inputs,outputs);return result.length>1?result:result[0]}async executeAsync(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=await this.executor.executeAsync(inputs,outputs);return result.length>1?result:result[0]}convertTensorMapToTensorsMap(map){return Object.keys(map).reduce((newMap,key)=>(newMap[key]=[map[key]],newMap),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function loadGraphModel(modelUrl,options={}){if(modelUrl==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");options==null&&(options={}),options.fromTFHub&&modelUrl.load==null&&(modelUrl.endsWith("/")||(modelUrl=modelUrl+"/"),modelUrl=`${modelUrl}${DEFAULT_MODEL_NAME}${TFHUB_SEARCH_PARAM}`);let model2=new GraphModel(modelUrl,options);return await model2.load(),model2}var version11="2.8.3",dist_exports={};__export2(dist_exports,{CSVDataset:()=>CSVDataset,Dataset:()=>Dataset,FileDataSource:()=>FileDataSource,TextLineDataset:()=>TextLineDataset,URLDataSource:()=>URLDataSource,array:()=>array,csv:()=>csv,func:()=>func,generator:()=>generator,microphone:()=>microphone,version_data:()=>version12,webcam:()=>webcam,zip:()=>zip});var seedrandom4=__toModule2(require_seedrandom6()),seedrandom3=__toModule2(require_seedrandom6());function deepMap(input2,mapFn){return deepMapInternal(input2,mapFn)}function deepMapInternal(input2,mapFn,seen=new Map,containedIn=new Set){if(input2==null)return null;if(containedIn.has(input2))throw new Error("Circular references are not supported.");if(seen.has(input2))return seen.get(input2);let result=mapFn(input2);if(result.recurse&&result.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let child=input2[k],childResult=deepMapInternal(child,mapFn,seen,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return seen.set(input2,result.value),result.value}function deepZip(inputs,zipFn=zipToList){return deepZipInternal(inputs,zipFn)}function deepZipInternal(inputs,zipFn,containedIn=new Set){let input2=inputs[0];if(containedIn.has(input2))throw new Error("Circular references are not supported.");let result=zipFn(inputs);if(result.recurse&&result.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let children=inputs.map(x=>x[k]),childResult=deepZipInternal(children,zipFn,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return result.value}function zipToList(x){return x===null?null:isIterable2(x[0])?{value:null,recurse:!0}:{value:x,recurse:!1}}async function deepMapAndAwaitAll(input2,mapFn){let seen=new Map;deepMapInternal(input2,mapFn,seen);for(let key of Array.from(seen.keys())){let value=seen.get(key);if(util_exports.isPromise(value)){let mappedValue=await value;seen.set(key,mappedValue)}}return deepMapInternal(input2,mapFn,seen)}function isIterable2(obj){return obj!=null&&!ArrayBuffer.isView(obj)&&(Array.isArray(obj)||typeof obj=="object"&&!(obj instanceof Tensor))}function canTensorify(obj){return obj==null||isPrimitive(obj)||Array.isArray(obj)||typeof obj=="object"&&obj instanceof Tensor||util_exports.isTypedArray(obj)}function isPrimitive(value){return value===null||typeof value!="object"&&typeof value!="function"}function deepClone(container){return deepMap(container,cloneIfTensor)}function cloneIfTensor(item){return item instanceof Tensor?{value:item.clone(),recurse:!1}:isIterable2(item)?{value:null,recurse:!0}:{value:item,recurse:!1}}var RingBuffer=class{constructor(capacity){if(this.capacity=capacity,this.begin=0,this.end=0,capacity==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(capacity<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(capacity),this.doubledCapacity=2*capacity}wrap(index){for(;index<0;)index+=this.doubledCapacity;return index%this.doubledCapacity}get(index){if(index<0)throw new RangeError("Can't get item at a negative index.");return this.data[index%this.capacity]}set(index,value){if(index<0)throw new RangeError("Can't set item at a negative index.");this.data[index%this.capacity]=value}length(){let length=this.end-this.begin;return length<0&&(length=this.doubledCapacity+length),length}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,value),this.end=this.wrap(this.end+1)}pushAll(values){for(let value of values)this.push(value)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let result=this.get(this.end);return this.set(this.end,void 0),result}unshift(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,value)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let result=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),result}shuffleExcise(relativeIndex){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let index=this.wrap(this.begin+relativeIndex),result=this.get(index);return this.set(index,this.pop()),result}},GrowingRingBuffer=class extends RingBuffer{constructor(){super(GrowingRingBuffer.INITIAL_CAPACITY)}isFull(){return!1}push(value){super.isFull()&&this.expand(),super.push(value)}unshift(value){super.isFull()&&this.expand(),super.unshift(value)}expand(){let newCapacity=this.capacity*2,newData=new Array(newCapacity),len=this.length();for(let i=0;ix===!0)}rowMajorBatch(batchSize,smallLastBatch=!0){return new RowMajorBatchIterator(this,batchSize,smallLastBatch)}columnMajorBatch(batchSize,smallLastBatch=!0,zipFn=zipToList){return this.rowMajorBatch(batchSize,smallLastBatch).map(x=>deepZip(x,zipFn))}concatenate(iterator,baseErrorHandler){return new ChainedIterator(iteratorFromItems([this,iterator]),baseErrorHandler)}take(count2){return count2<0||count2==null?this:new TakeIterator(this,count2)}skip(count2){return count2<0||count2==null?this:new SkipIterator(this,count2)}prefetch(bufferSize){return new PrefetchIterator(this,bufferSize)}shuffle(windowSize,seed){return new ShuffleIterator(this,windowSize,seed)}serial(){return new SerialIterator(this)}},ArrayIterator=class extends LazyIterator{constructor(items){super();this.items=items,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let item=this.items[this.trav];return this.trav++,{value:deepClone(item),done:!1}}},FunctionCallIterator=class extends LazyIterator{constructor(nextFn){super();this.nextFn=nextFn}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},SerialIterator=class extends LazyIterator{constructor(upstream){super();this.upstream=upstream,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},SkipIterator=class extends LazyIterator{constructor(upstream,maxCount){super();this.upstream=upstream,this.maxCount=maxCount,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},RowMajorBatchIterator=class extends LazyIterator{constructor(upstream,batchSize,enableSmallLastBatch=!0){super();this.upstream=upstream,this.batchSize=batchSize,this.enableSmallLastBatch=enableSmallLastBatch,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let batch=[];for(;batch.length0?{value:batch,done:!1}:{value:null,done:!0};batch.push(item.value)}return{value:batch,done:!1}}},FilterIterator=class extends LazyIterator{constructor(upstream,predicate){super();this.upstream=upstream,this.predicate=predicate,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let item=await this.upstream.next();if(item.done||this.predicate(item.value))return item;dispose(item.value)}}},MapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Map`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},ErrorHandlingLazyIterator=class extends LazyIterator{constructor(upstream,handler){super();this.upstream=upstream,this.handler=handler,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},AsyncMapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=await this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},OneToManyIterator=class extends LazyIterator{constructor(){super();this.outputQueue=new GrowingRingBuffer,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},FlatmapIterator=class extends OneToManyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let item=await this.upstream.next();if(item.done)return!1;let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mappedArray=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mappedArray);this.outputQueue.pushAll(mappedArray);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return!0}},ChainedIterator=class extends LazyIterator{constructor(iterators,baseErrorHandler){super();this.baseErrorHandler=baseErrorHandler,this.lastRead=null,this.iterator=null,this.moreIterators=iterators}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(lastRead){if(await lastRead,this.iterator==null){let iteratorResult=await this.moreIterators.next();if(iteratorResult.done)return{value:null,done:!0};this.iterator=iteratorResult.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let itemResult=await this.iterator.next();return itemResult.done?(this.iterator=null,this.readFromChain(lastRead)):itemResult}},ZipMismatchMode;(function(ZipMismatchMode2){ZipMismatchMode2[ZipMismatchMode2.FAIL=0]="FAIL",ZipMismatchMode2[ZipMismatchMode2.SHORTEST=1]="SHORTEST",ZipMismatchMode2[ZipMismatchMode2.LONGEST=2]="LONGEST"})(ZipMismatchMode||(ZipMismatchMode={}));var ZipIterator=class extends LazyIterator{constructor(iterators,mismatchMode=ZipMismatchMode.FAIL){super();this.iterators=iterators,this.mismatchMode=mismatchMode,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(afterState){await afterState;let numIterators=0,iteratorsDone=0;function getNext(container){return container instanceof LazyIterator?{value:container.next().then(x=>(numIterators++,x.done&&iteratorsDone++,x.value)),recurse:!1}:{value:null,recurse:!0}}let mapped=await deepMapAndAwaitAll(this.iterators,getNext);if(numIterators===iteratorsDone)return{value:null,done:!0};if(iteratorsDone>0)switch(this.mismatchMode){case ZipMismatchMode.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ZipMismatchMode.SHORTEST:return{value:null,done:!0};case ZipMismatchMode.LONGEST:default:}return this.count++,{value:mapped,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},PrefetchIterator=class extends LazyIterator{constructor(upstream,bufferSize){super();this.upstream=upstream,this.bufferSize=bufferSize,this.buffer=new RingBuffer(bufferSize)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let v=this.upstream.next();this.buffer.push(v)}}next(){return this.refill(),this.buffer.shift()}},ShuffleIterator=class extends PrefetchIterator{constructor(upstream,windowSize,seed){super(upstream,windowSize);this.upstream=upstream,this.windowSize=windowSize,this.upstreamExhausted=!1,this.random=seedrandom3.alea(seed||util_exports.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(max6){return Math.floor(this.random()*max6)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let chosenIndex=this.chooseIndex(),result=await this.buffer.shuffleExcise(chosenIndex);if(result.done)this.upstreamExhausted=!0;else return this.refill(),result}return{value:null,done:!0}}},Dataset=class{constructor(){this.size=null}batch(batchSize,smallLastBatch=!0){let base2=this;util_exports.assert(batchSize>0,()=>`batchSize needs to be positive, but it is ${batchSize}`);let size;return this.size===Infinity||this.size==null?size=this.size:smallLastBatch?size=Math.ceil(this.size/batchSize):size=Math.floor(this.size/batchSize),datasetFromIteratorFn(async()=>(await base2.iterator()).columnMajorBatch(batchSize,smallLastBatch,deepBatchConcat),size)}concatenate(dataset){let base2=this,size;return this.size===Infinity||dataset.size===Infinity?size=Infinity:this.size!=null&&dataset.size!=null?size=this.size+dataset.size:size=null,datasetFromIteratorFn(async()=>(await base2.iterator()).concatenate(await dataset.iterator()),size)}filter(predicate){let base2=this,size;return this.size===Infinity?size=Infinity:size=null,datasetFromIteratorFn(async()=>(await base2.iterator()).filter(x=>tidy(()=>predicate(x))),size)}async forEachAsync(f){return(await this.iterator()).forEachAsync(f)}map(transform){let base2=this;return datasetFromIteratorFn(async()=>(await base2.iterator()).map(x=>tidy(()=>transform(x))),this.size)}mapAsync(transform){let base2=this;return datasetFromIteratorFn(async()=>(await base2.iterator()).mapAsync(transform),this.size)}prefetch(bufferSize){if(bufferSize==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let base2=this;return datasetFromIteratorFn(async()=>(await base2.iterator()).prefetch(bufferSize),this.size)}repeat(count2){let base2=this,size;return this.size!=null&&count2>0?size=this.size*count2:count2===0?size=0:this.size!=null&&(count2===void 0||count2<0)?size=Infinity:size=null,datasetFromIteratorFn(async()=>{let iteratorIterator=iteratorFromFunction(async()=>({value:await base2.iterator(),done:!1}));return iteratorFromConcatenated(iteratorIterator.take(count2))},size)}skip(count2){let base2=this,size;return this.size!=null&&count2>=0&&this.size>=count2?size=this.size-count2:this.size!=null&&(this.size(await base2.iterator()).skip(count2),size)}shuffle(bufferSize,seed,reshuffleEachIteration=!0){if(bufferSize==null||bufferSize<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let base2=this,random=seedrandom4.alea(seed||util_exports.now().toString());return datasetFromIteratorFn(async()=>{let seed2=random.int32();return reshuffleEachIteration&&(seed2+=random.int32()),(await base2.iterator()).shuffle(bufferSize,seed2.toString())},this.size)}take(count2){let base2=this,size;return this.size!=null&&this.size>count2?size=count2:this.size!=null&&this.size<=count2?size=this.size:size=null,datasetFromIteratorFn(async()=>(await base2.iterator()).take(count2),size)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Dataset.MAX_BUFFER_SIZE=1e4;function datasetFromIteratorFn(iteratorFn,size=null){return new class extends Dataset{constructor(){super(...arguments);this.size=size}async iterator(){return iteratorFn()}}}function array(items){return datasetFromIteratorFn(async()=>iteratorFromItems(items),items.length)}function zip(datasets){if(!isIterable2(datasets))throw new Error("The argument to zip() must be an object or array.");let size;if(Array.isArray(datasets))for(let i=0;i{let streams=await deepMapAndAwaitAll(datasets,d=>{if(d instanceof Dataset)return{value:d.iterator(),recurse:!1};if(isIterable2(d))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return iteratorFromZipped(streams,ZipMismatchMode.SHORTEST)},size)}function deepBatchConcat(rows){if(rows===null)return null;let exampleRow=rows[0];return canTensorify(exampleRow)?{value:batchConcat(rows),recurse:!1}:{value:null,recurse:!0}}function batchConcat(arrays){if(arrays.length===0)throw new Error("Can't make a batch of zero elements.");return arrays[0]instanceof Tensor?stack(arrays):tensor(arrays)}var TextLineDataset=class extends Dataset{constructor(input2){super();this.input=input2}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(line=>(line.endsWith("\r")&&(line=line.slice(0,-1)),line))}},CODE_QUOTE='"',STATE_OUT=Symbol("out"),STATE_FIELD=Symbol("field"),STATE_QUOTE=Symbol("quote"),STATE_QUOTE_AFTER_QUOTE=Symbol("quoteafterquote"),STATE_WITHIN_QUOTE_IN_QUOTE=Symbol("quoteinquote"),CSVDataset=class extends Dataset{constructor(input2,csvConfig){super();this.input=input2,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new TextLineDataset(input2),csvConfig||(csvConfig={}),this.hasHeader=csvConfig.hasHeader!==!1,this.fullColumnNames=csvConfig.columnNames,this.columnConfigs=csvConfig.columnConfigs,this.configuredColumnsOnly=csvConfig.configuredColumnsOnly,csvConfig.delimWhitespace?(util_exports.assert(csvConfig.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=csvConfig.delimiter?csvConfig.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let columnNamesFromFile=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!columnNamesFromFile)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&columnNamesFromFile&&util_exports.assert(columnNamesFromFile.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+columnNamesFromFile.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=columnNamesFromFile);let counts=this.fullColumnNames.reduce((countAcc,name)=>(countAcc[name]=countAcc[name]+1||1,countAcc),{}),duplicateNames=Object.keys(counts).filter(name=>counts[name]>1);if(util_exports.assert(duplicateNames.length===0,()=>"Duplicate column names found: "+duplicateNames.toString()),this.columnConfigs){for(let key of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(key)===-1)throw new Error('The key "'+key+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let firstElement=await(await this.base.iterator()).next();if(firstElement.done)throw new Error("No data was found for CSV parsing.");let firstLine=firstElement.value;return this.parseRow(firstLine,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let lines=await this.base.iterator();return this.hasHeader&&(lines=lines.skip(1)),lines.map(x=>this.makeDataElement(x))}makeDataElement(line){let values=this.parseRow(line),features={},labels={};for(let i=0;i14||!Number.isInteger(fftSizeLog2))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=microphoneConfig.numFramesPerSpectrogram||43,this.sampleRateHz=microphoneConfig.sampleRateHz,this.columnTruncateLength=microphoneConfig.columnTruncateLength||this.fftSize,this.audioTrackConstraints=microphoneConfig.audioTrackConstraints,this.smoothingTimeConstant=microphoneConfig.smoothingTimeConstant||0,this.includeSpectrogram=microphoneConfig.includeSpectrogram!==!1,this.includeWaveform=microphoneConfig.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(microphoneConfig={}){if(env().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let microphoneIterator=new MicrophoneIterator(microphoneConfig);return await microphoneIterator.start(),microphoneIterator}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let ctxConstructor=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new ctxConstructor,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let streamSource=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,streamSource.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let spectrogramTensor,waveformTensor,audioDataQueue=await this.getAudioData();if(this.includeSpectrogram){let freqData=this.flattenQueue(audioDataQueue.freqDataQueue);spectrogramTensor=this.getTensorFromAudioDataArray(freqData,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let timeData=this.flattenQueue(audioDataQueue.timeDataQueue);waveformTensor=this.getTensorFromAudioDataArray(timeData,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:spectrogramTensor,waveform:waveformTensor},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let freqDataQueue=[],timeDataQueue=[],currentFrames=0;return new Promise(resolve=>{let intervalID=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&resolve({freqDataQueue,timeDataQueue}),freqDataQueue.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),timeDataQueue.push(this.timeData.slice())),++currentFrames===this.numFrames&&(clearInterval(intervalID),resolve({freqDataQueue,timeDataQueue}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(queue){let frameSize=queue[0].length,freqData=new Float32Array(queue.length*frameSize);return queue.forEach((data2,i)=>freqData.set(data2,i*frameSize)),freqData}getTensorFromAudioDataArray(freqData,shape){let vals=new Float32Array(util_exports.sizeFromShape(shape));return vals.set(freqData,vals.length-freqData.length),tensor(vals,shape)}},WebcamIterator=class extends LazyIterator{constructor(webcamVideoElement,webcamConfig){super();if(this.webcamVideoElement=webcamVideoElement,this.webcamConfig=webcamConfig,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=tensor1d([0],"int32"),this.webcamConfig.centerCrop){let widthCroppingRatio=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,heightCroppingRatio=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,widthCropStart=(1-widthCroppingRatio)/2,heightCropStart=(1-heightCroppingRatio)/2,widthCropEnd=widthCropStart+widthCroppingRatio,heightCropEnd=heightCroppingRatio+heightCropStart;this.cropBox=tensor2d([heightCropStart,widthCropStart,heightCropEnd,widthCropEnd],[1,4])}else this.cropBox=tensor2d([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(webcamVideoElement,webcamConfig={}){if(env().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!webcamVideoElement){if(webcamVideoElement=document.createElement("video"),!webcamConfig.resizeWidth||!webcamConfig.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");webcamVideoElement.width=webcamConfig.resizeWidth,webcamVideoElement.height=webcamConfig.resizeHeight}let webcamIterator=new WebcamIterator(webcamVideoElement,webcamConfig);return await webcamIterator.start(),webcamIterator}async start(){this.webcamConfig.facingMode&&util_exports.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(error){console.log(error),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(resolve=>{this.webcamVideoElement.onloadedmetadata=()=>{resolve()}})}async next(){if(this.isClosed)return{value:null,done:!0};let img;try{img=browser_exports.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(img),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{img.dispose()}else return{value:img,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(img){return tidy(()=>{let expandedImage=img.toFloat().expandDims(0),resizedImage;resizedImage=image.cropAndResize(expandedImage,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let shape=resizedImage.shape;return resizedImage.reshape(shape.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(track=>track.stop());try{this.webcamVideoElement.srcObject=null}catch(error){console.log(error),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},DataSource=class{},StringIterator=class extends LazyIterator{split(separator){return new SplitIterator(this,separator)}},SplitIterator=class extends StringIterator{constructor(upstream,separator){super();this.upstream=upstream,this.impl=new SplitIteratorImpl(upstream,separator)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},SplitIteratorImpl=class extends OneToManyIterator{constructor(upstream,separator){super();this.upstream=upstream,this.separator=separator,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let chunkResult=await this.upstream.next();if(chunkResult.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let lines=chunkResult.value.split(this.separator);lines[0]=this.carryover+lines[0];for(let line of lines.slice(0,-1))this.outputQueue.push(line);return this.carryover=lines[lines.length-1],!0}},ByteChunkIterator=class extends LazyIterator{decodeUTF8(){return new Utf8Iterator(this)}},Utf8Iterator=class extends StringIterator{constructor(upstream){super();this.upstream=upstream,this.impl=new Utf8IteratorImpl(upstream)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Utf8IteratorImpl=class extends OneToManyIterator{constructor(upstream){super();if(this.upstream=upstream,env().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder}=require_string_decoder();this.decoder=new StringDecoder("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let chunkResult=await this.upstream.next(),chunk;if(chunkResult.done)return!1;chunk=chunkResult.value;let text;return env().get("IS_BROWSER")?text=this.decoder.decode(chunk,{stream:!0}):text=this.decoder.write(Buffer.from(chunk.buffer)),this.outputQueue.push(text),!0}},FileChunkIterator=class extends ByteChunkIterator{constructor(file,options={}){super();this.file=file,this.options=options,util_exports.assert(file instanceof Uint8Array||(env().get("IS_BROWSER")?file instanceof File||file instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=options.offset||0,this.chunkSize=options.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((resolve,reject)=>{let end=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)resolve(new Uint8Array(this.file.slice(this.offset,end)));else{let fileReader=new FileReader;fileReader.onload=event=>{let data2=fileReader.result;if(data2 instanceof ArrayBuffer&&(data2=new Uint8Array(data2)),!(data2 instanceof Uint8Array))return reject(new TypeError("FileReader returned unknown type."));resolve(data2)},fileReader.onabort=event=>reject(new Error("Aborted")),fileReader.onerror=event=>reject(new Error(event.type));let slice5=this.file.slice(this.offset,end);fileReader.readAsArrayBuffer(slice5)}this.offset=end}),done:!1}}};async function urlChunkIterator(url,options={}){let urlString,requestInit;typeof url=="string"?urlString=url:(urlString=url.url,requestInit=getRequestInitFromRequest(url));let response=await util_exports.fetch(urlString,requestInit);if(response.ok){let uint8Array=new Uint8Array(await response.arrayBuffer());return new FileChunkIterator(uint8Array,options)}else throw new Error(response.statusText)}var getRequestInitFromRequest=request=>({method:request.method,headers:request.headers,body:request.body,mode:request.mode,credentials:request.credentials,cache:request.cache,redirect:request.redirect,referrer:request.referrer,integrity:request.integrity});function isLocalPath(source){return typeof source=="string"&&source.substr(0,7)==="file://"}var FileDataSource=class extends DataSource{constructor(input2,options={}){super();this.input=input2,this.options=options}async iterator(){if(isLocalPath(this.input)&&env().get("IS_NODE")){let fs=require("fs");this.input=fs.readFileSync(this.input.substr(7))}return new FileChunkIterator(this.input,this.options)}},URLDataSource=class extends DataSource{constructor(url,fileOptions={}){super();this.url=url,this.fileOptions=fileOptions}async iterator(){return isLocalPath(this.url)?new FileDataSource(this.url,this.fileOptions).iterator():urlChunkIterator(this.url,this.fileOptions)}};function csv(source,csvConfig={}){return new CSVDataset(new URLDataSource(source),csvConfig)}function func(f){let iter=iteratorFromFunction(f);return datasetFromIteratorFn(async()=>iter)}function generator(generator2){return datasetFromIteratorFn(async()=>{let gen=await generator2();return iteratorFromFunction(()=>gen.next())})}async function webcam(webcamVideoElement,webcamConfig){return WebcamIterator.create(webcamVideoElement,webcamConfig)}async function microphone(microphoneConfig){return MicrophoneIterator.create(microphoneConfig)}var version12="2.8.3",version13={tfjs:version,"tfjs-core":version2,"tfjs-data":version3,"tfjs-layers":version4,"tfjs-converter":version5,"tfjs-backend-cpu":version7,"tfjs-backend-webgl":version8,"tfjs-backend-wasm":version9};var config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);setWebGLContext(2,gl);let ctx=new GPGPUContext(gl);registerBackend(config.name,()=>new MathBackendWebGL(ctx),config.priority),getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};registerKernel(newKernelConfig)}),ENV.set("WEBGL_VERSION",2),ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet());var models={},config2={},anchors=[],kMidHipCenter=0,kPoseDetectKeyNum=2,kFullBodySizeRot=1;function calculateScale(min_scale,max_scale,stride_index,num_strides){return num_strides===1?(min_scale+max_scale)*.5:min_scale+(max_scale-min_scale)*1*stride_index/(num_strides-1)}function generateAnchors(){let options={};options.strides=[],options.aspect_ratios=[],options.feature_map_height=[],options.num_layers=4,options.min_scale=.1484375,options.max_scale=.75,options.input_size_height=128,options.input_size_width=128,options.anchor_offset_x=.5,options.anchor_offset_y=.5,options.strides.push(8),options.strides.push(16),options.strides.push(16),options.strides.push(16),options.aspect_ratios.push(1),options.reduce_boxes_in_lowest_layer=!1,options.interpolated_scale_aspect_ratio=1,options.fixed_anchor_size=!0;let layer_id=0;for(;layer_id0){let scale_next=last_same_stride_layer===options.strides.length-1?1:calculateScale(options.min_scale,options.max_scale,last_same_stride_layer+1,options.strides.length);scales.push(Math.sqrt(scale2*scale_next)),aspect_ratios.push(options.interpolated_scale_aspect_ratio)}}last_same_stride_layer++}for(let i=0;iconfig2.pose.scoreThreshold){let idx=(4+2*kPoseDetectKeyNum)*i,sx=boxes[idx+0],sy=boxes[idx+1],w=boxes[idx+2]/config2.pose.inputSize,h=boxes[idx+3]/config2.pose.inputSize,cx=(sx+anchors[i].x_center*config2.pose.inputSize)/config2.pose.inputSize,cy=(sy+anchors[i].y_center*config2.pose.inputSize)/config2.pose.inputSize;region.score=Math.round(1e3*score)/1e3,region.box=[cx-w*.5,cy-h*.5,w*.5,h*.5];let keys=new Array(kPoseDetectKeyNum);for(let j=0;j{config2=cfg;let resize=image.resizeBilinear(image3,[config2.pose.inputSize,config2.pose.inputSize],!1),enhance=div(resize,127.5).sub(1);dispose(resize);let logits=await models.blazepose.predict(enhance);dispose(enhance);let regions=await decode(logits);logits[0].dispose(),logits[1].dispose(),log("poses",regions),resolve(regions)}):null}function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot4(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},pose:{enabled:!1,scoreThreshold:.6,iouThreshold:.3,modelPath:"../models/blazepose.json",inputSize:128},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` +`).map(line=>(line.endsWith("\r")&&(line=line.slice(0,-1)),line))}},CODE_QUOTE='"',STATE_OUT=Symbol("out"),STATE_FIELD=Symbol("field"),STATE_QUOTE=Symbol("quote"),STATE_QUOTE_AFTER_QUOTE=Symbol("quoteafterquote"),STATE_WITHIN_QUOTE_IN_QUOTE=Symbol("quoteinquote"),CSVDataset=class extends Dataset{constructor(input2,csvConfig){super();this.input=input2,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new TextLineDataset(input2),csvConfig||(csvConfig={}),this.hasHeader=csvConfig.hasHeader!==!1,this.fullColumnNames=csvConfig.columnNames,this.columnConfigs=csvConfig.columnConfigs,this.configuredColumnsOnly=csvConfig.configuredColumnsOnly,csvConfig.delimWhitespace?(util_exports.assert(csvConfig.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=csvConfig.delimiter?csvConfig.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let columnNamesFromFile=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!columnNamesFromFile)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&columnNamesFromFile&&util_exports.assert(columnNamesFromFile.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+columnNamesFromFile.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=columnNamesFromFile);let counts=this.fullColumnNames.reduce((countAcc,name)=>(countAcc[name]=countAcc[name]+1||1,countAcc),{}),duplicateNames=Object.keys(counts).filter(name=>counts[name]>1);if(util_exports.assert(duplicateNames.length===0,()=>"Duplicate column names found: "+duplicateNames.toString()),this.columnConfigs){for(let key of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(key)===-1)throw new Error('The key "'+key+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let firstElement=await(await this.base.iterator()).next();if(firstElement.done)throw new Error("No data was found for CSV parsing.");let firstLine=firstElement.value;return this.parseRow(firstLine,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let lines=await this.base.iterator();return this.hasHeader&&(lines=lines.skip(1)),lines.map(x=>this.makeDataElement(x))}makeDataElement(line){let values=this.parseRow(line),features={},labels={};for(let i=0;i14||!Number.isInteger(fftSizeLog2))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=microphoneConfig.numFramesPerSpectrogram||43,this.sampleRateHz=microphoneConfig.sampleRateHz,this.columnTruncateLength=microphoneConfig.columnTruncateLength||this.fftSize,this.audioTrackConstraints=microphoneConfig.audioTrackConstraints,this.smoothingTimeConstant=microphoneConfig.smoothingTimeConstant||0,this.includeSpectrogram=microphoneConfig.includeSpectrogram!==!1,this.includeWaveform=microphoneConfig.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(microphoneConfig={}){if(env().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let microphoneIterator=new MicrophoneIterator(microphoneConfig);return await microphoneIterator.start(),microphoneIterator}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let ctxConstructor=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new ctxConstructor,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let streamSource=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,streamSource.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let spectrogramTensor,waveformTensor,audioDataQueue=await this.getAudioData();if(this.includeSpectrogram){let freqData=this.flattenQueue(audioDataQueue.freqDataQueue);spectrogramTensor=this.getTensorFromAudioDataArray(freqData,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let timeData=this.flattenQueue(audioDataQueue.timeDataQueue);waveformTensor=this.getTensorFromAudioDataArray(timeData,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:spectrogramTensor,waveform:waveformTensor},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let freqDataQueue=[],timeDataQueue=[],currentFrames=0;return new Promise(resolve=>{let intervalID=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&resolve({freqDataQueue,timeDataQueue}),freqDataQueue.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),timeDataQueue.push(this.timeData.slice())),++currentFrames===this.numFrames&&(clearInterval(intervalID),resolve({freqDataQueue,timeDataQueue}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(queue){let frameSize=queue[0].length,freqData=new Float32Array(queue.length*frameSize);return queue.forEach((data2,i)=>freqData.set(data2,i*frameSize)),freqData}getTensorFromAudioDataArray(freqData,shape){let vals=new Float32Array(util_exports.sizeFromShape(shape));return vals.set(freqData,vals.length-freqData.length),tensor(vals,shape)}},WebcamIterator=class extends LazyIterator{constructor(webcamVideoElement,webcamConfig){super();if(this.webcamVideoElement=webcamVideoElement,this.webcamConfig=webcamConfig,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=tensor1d([0],"int32"),this.webcamConfig.centerCrop){let widthCroppingRatio=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,heightCroppingRatio=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,widthCropStart=(1-widthCroppingRatio)/2,heightCropStart=(1-heightCroppingRatio)/2,widthCropEnd=widthCropStart+widthCroppingRatio,heightCropEnd=heightCroppingRatio+heightCropStart;this.cropBox=tensor2d([heightCropStart,widthCropStart,heightCropEnd,widthCropEnd],[1,4])}else this.cropBox=tensor2d([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(webcamVideoElement,webcamConfig={}){if(env().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!webcamVideoElement){if(webcamVideoElement=document.createElement("video"),!webcamConfig.resizeWidth||!webcamConfig.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");webcamVideoElement.width=webcamConfig.resizeWidth,webcamVideoElement.height=webcamConfig.resizeHeight}let webcamIterator=new WebcamIterator(webcamVideoElement,webcamConfig);return await webcamIterator.start(),webcamIterator}async start(){this.webcamConfig.facingMode&&util_exports.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(error){console.log(error),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(resolve=>{this.webcamVideoElement.onloadedmetadata=()=>{resolve()}})}async next(){if(this.isClosed)return{value:null,done:!0};let img;try{img=browser_exports.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(img),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{img.dispose()}else return{value:img,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(img){return tidy(()=>{let expandedImage=img.toFloat().expandDims(0),resizedImage;resizedImage=image.cropAndResize(expandedImage,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let shape=resizedImage.shape;return resizedImage.reshape(shape.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(track=>track.stop());try{this.webcamVideoElement.srcObject=null}catch(error){console.log(error),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},DataSource=class{},StringIterator=class extends LazyIterator{split(separator){return new SplitIterator(this,separator)}},SplitIterator=class extends StringIterator{constructor(upstream,separator){super();this.upstream=upstream,this.impl=new SplitIteratorImpl(upstream,separator)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},SplitIteratorImpl=class extends OneToManyIterator{constructor(upstream,separator){super();this.upstream=upstream,this.separator=separator,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let chunkResult=await this.upstream.next();if(chunkResult.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let lines=chunkResult.value.split(this.separator);lines[0]=this.carryover+lines[0];for(let line of lines.slice(0,-1))this.outputQueue.push(line);return this.carryover=lines[lines.length-1],!0}},ByteChunkIterator=class extends LazyIterator{decodeUTF8(){return new Utf8Iterator(this)}},Utf8Iterator=class extends StringIterator{constructor(upstream){super();this.upstream=upstream,this.impl=new Utf8IteratorImpl(upstream)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Utf8IteratorImpl=class extends OneToManyIterator{constructor(upstream){super();if(this.upstream=upstream,env().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder}=require_string_decoder();this.decoder=new StringDecoder("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let chunkResult=await this.upstream.next(),chunk;if(chunkResult.done)return!1;chunk=chunkResult.value;let text;return env().get("IS_BROWSER")?text=this.decoder.decode(chunk,{stream:!0}):text=this.decoder.write(Buffer.from(chunk.buffer)),this.outputQueue.push(text),!0}},FileChunkIterator=class extends ByteChunkIterator{constructor(file,options={}){super();this.file=file,this.options=options,util_exports.assert(file instanceof Uint8Array||(env().get("IS_BROWSER")?file instanceof File||file instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=options.offset||0,this.chunkSize=options.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((resolve,reject)=>{let end=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)resolve(new Uint8Array(this.file.slice(this.offset,end)));else{let fileReader=new FileReader;fileReader.onload=event=>{let data2=fileReader.result;if(data2 instanceof ArrayBuffer&&(data2=new Uint8Array(data2)),!(data2 instanceof Uint8Array))return reject(new TypeError("FileReader returned unknown type."));resolve(data2)},fileReader.onabort=event=>reject(new Error("Aborted")),fileReader.onerror=event=>reject(new Error(event.type));let slice5=this.file.slice(this.offset,end);fileReader.readAsArrayBuffer(slice5)}this.offset=end}),done:!1}}};async function urlChunkIterator(url,options={}){let urlString,requestInit;typeof url=="string"?urlString=url:(urlString=url.url,requestInit=getRequestInitFromRequest(url));let response=await util_exports.fetch(urlString,requestInit);if(response.ok){let uint8Array=new Uint8Array(await response.arrayBuffer());return new FileChunkIterator(uint8Array,options)}else throw new Error(response.statusText)}var getRequestInitFromRequest=request=>({method:request.method,headers:request.headers,body:request.body,mode:request.mode,credentials:request.credentials,cache:request.cache,redirect:request.redirect,referrer:request.referrer,integrity:request.integrity});function isLocalPath(source){return typeof source=="string"&&source.substr(0,7)==="file://"}var FileDataSource=class extends DataSource{constructor(input2,options={}){super();this.input=input2,this.options=options}async iterator(){if(isLocalPath(this.input)&&env().get("IS_NODE")){let fs=require("fs");this.input=fs.readFileSync(this.input.substr(7))}return new FileChunkIterator(this.input,this.options)}},URLDataSource=class extends DataSource{constructor(url,fileOptions={}){super();this.url=url,this.fileOptions=fileOptions}async iterator(){return isLocalPath(this.url)?new FileDataSource(this.url,this.fileOptions).iterator():urlChunkIterator(this.url,this.fileOptions)}};function csv(source,csvConfig={}){return new CSVDataset(new URLDataSource(source),csvConfig)}function func(f){let iter=iteratorFromFunction(f);return datasetFromIteratorFn(async()=>iter)}function generator(generator2){return datasetFromIteratorFn(async()=>{let gen=await generator2();return iteratorFromFunction(()=>gen.next())})}async function webcam(webcamVideoElement,webcamConfig){return WebcamIterator.create(webcamVideoElement,webcamConfig)}async function microphone(microphoneConfig){return MicrophoneIterator.create(microphoneConfig)}var version12="2.8.3",version13={tfjs:version,"tfjs-core":version2,"tfjs-data":version3,"tfjs-layers":version4,"tfjs-converter":version5,"tfjs-backend-cpu":version7,"tfjs-backend-webgl":version8,"tfjs-backend-wasm":version9};var config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);setWebGLContext(2,gl);let ctx=new GPGPUContext(gl);registerBackend(config.name,()=>new MathBackendWebGL(ctx),config.priority),getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};registerKernel(newKernelConfig)}),ENV.set("WEBGL_VERSION",2),ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet());var models={};async function load(config2){return models.blazepose||(models.blazepose=await loadGraphModel(config2.pose.modelPath),log(`load model: ${config2.pose.modelPath.match(/\/(.*)\./)[1]}`)),models.blazepose}async function predict(image3,config2){return models.blazepose?new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.pose.inputSize,config2.pose.inputSize],!1),enhance=div(resize,127.5).sub(1);dispose(resize);let logits=await models.blazepose.predict(enhance);dispose(enhance),logits.map(logit=>logit.dispose()),resolve(logits)}):null}function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot4(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},pose:{enabled:!1,scoreThreshold:.6,iouThreshold:.3,modelPath:"../models/blazepose.json",inputSize:256},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` /9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu bmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob @@ -4771,7 +4771,7 @@ AAAAAAJAAAAAAAAAAAAAABAJEAAAAAAAAAAAAAAAIEoBKAAAAAAAAAAAAAAABAlAAAAAAAIAAAAA BAkBAkBAkBAlACEgMZjdjbFW8bWrEx8YWANb6Fp+bfwab+vLDKMFK9qxH5L0bAr8OPRPKz2AY7J2 SbAjYZAI2E7AIEgIEgIEgMdkSy2NgY7MdlmyNoBXsxmFuyNgVTVjNV3KjlBRNTlXTVHKCrlIqt5T lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/ -2Q==`;var version14="0.9.23";var now2=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tfjs_esm_exports,this.version=version14,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig){this.state="load";let timeStamp=now2();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${version6}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose,this.models.blazepose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null),this.models.blazepose||(this.config.pose.enabled?load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)),this.config.pose.enabled&&!this.models.blazepose&&(this.models.blazepose=await load(this.config)));let current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){let timeStamp=now2();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath),await env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now2();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input2,this.config));this.perf.face=Math.trunc(now2()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input2);error&&(log(error,input2),resolve({error}));let poseRes,blazeposeRes,handRes,faceRes,timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine().startScope(),this.analyze("Start Scope:"),timeStamp=now2();let process3=image2.process(input2,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Pose:"),this.config.async?(blazeposeRes=this.config.pose.enabled?predict(process3.tensor,this.config):[],this.perf.pose&&delete this.perf.pose):(this.state="run:pose",timeStamp=now2(),blazeposeRes=this.config.pose.enabled?await predict(process3.tensor,this.config):[],this.perf.pose=Math.trunc(now2()-timeStamp)),this.analyze("End Pose:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.analyze("End Hand:"),this.config.async&&([faceRes,poseRes,blazeposeRes,handRes]=await Promise.all([faceRes,poseRes,blazeposeRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,pose:blazeposeRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res=>res.blob());userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let blob;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(!blob)return null;let bitmap=await createImageBitmap(blob),t0=now2(),warmup=await this.detect(bitmap,config_exports),t1=now2();return bitmap.close(),log("Warmup",this.config.warmup,t1-t0,warmup),this.config.videoOptimized=video,warmup}};export{Human as default}; +2Q==`;var version14="0.9.24";var now2=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tfjs_esm_exports,this.version=version14,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig){this.state="load";let timeStamp=now2();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${version6}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose,this.models.blazepose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null),this.models.blazepose||(this.config.pose.enabled?load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)),this.config.pose.enabled&&!this.models.blazepose&&(this.models.blazepose=await load(this.config)));let current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){let timeStamp=now2();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath),await env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now2();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input2,this.config));this.perf.face=Math.trunc(now2()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input2);error&&(log(error,input2),resolve({error}));let poseRes,blazeposeRes,handRes,faceRes,timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine().startScope(),this.analyze("Start Scope:"),timeStamp=now2();let process3=image2.process(input2,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Pose:"),this.config.async?(blazeposeRes=this.config.pose.enabled?predict(process3.tensor,this.config):[],this.perf.pose&&delete this.perf.pose):(this.state="run:pose",timeStamp=now2(),blazeposeRes=this.config.pose.enabled?await predict(process3.tensor,this.config):[],this.perf.pose=Math.trunc(now2()-timeStamp)),this.analyze("End Pose:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.analyze("End Hand:"),this.config.async&&([faceRes,poseRes,blazeposeRes,handRes]=await Promise.all([faceRes,poseRes,blazeposeRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,pose:blazeposeRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmupBitmap(){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res2=>res2.blob()),blob,res;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(blob){let bitmap=await createImageBitmap(blob);res=await this.detect(bitmap,config_exports),bitmap.close()}return res}async warmupCanvas(){return new Promise(resolve=>{let src,size=0;switch(this.config.warmup){case"face":size=256,src="data:image/jpeg;base64,"+face;break;case"full":size=1200,src="data:image/jpeg;base64,"+body;break;default:src=null}let img=new Image(size,size);img.onload=()=>{let canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(size,size):document.createElement("canvas");canvas.width=size,canvas.height=size;let ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);let data2=ctx.getImageData(0,0,size,size);this.detect(data2,config_exports).then(res=>resolve(res))},src?img.src=src:resolve(null)})}async warmup(userConfig){let t0=now2();userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let res;typeof createImageBitmap=="function"?res=await this.warmupBitmap():res=await this.warmupCanvas(),this.config.videoOptimized=video;let t1=now2();return log("Warmup",this.config.warmup,t1-t0,res),res}};export{Human as default}; /** * @license * Copyright 2017 Google LLC. All Rights Reserved. diff --git a/dist/human.esm.js.map b/dist/human.esm.js.map index c7a5d083..592271ce 100644 --- a/dist/human.esm.js.map +++ b/dist/human.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/blazeface/blazeface.js", "../src/blazeface/box.js", "../src/blazeface/util.js", "../src/blazeface/coords.js", "../src/blazeface/facepipeline.js", "../src/blazeface/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/posenet/modelBase.js", "../src/posenet/heapSort.js", "../src/posenet/buildParts.js", "../src/posenet/keypoints.js", "../src/posenet/vectors.js", "../src/posenet/decoders.js", "../src/posenet/decodePose.js", "../src/posenet/decodeMultiple.js", "../src/posenet/util.js", "../src/posenet/modelPoseNet.js", "../src/posenet/posenet.js", "../src/handpose/handdetector.js", "../src/handpose/handpipeline.js", "../src/handpose/anchors.js", "../src/handpose/handpose.js", "../src/gesture/gesture.js", "../src/imagefx.js", "../src/image.js", "../src/log.js", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../src/tfjs/tf-browser.js", "../src/tfjs/backend.js", "../src/human.js", "../src/blazepose/blazepose.js", "../src/handpose/box.js", "../src/handpose/util.js", "../config.js", "../src/sample.js"], - "sourcesContent": ["import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var _scriptDir=undefined;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":169,\"maximum\":169+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13056;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":151,\"maximum\":151+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport { version as tfjs } from '@tensorflow/tfjs/package.json';\nimport { version as versionCore } from '@tensorflow/tfjs-core/package.json';\nimport { version as versionData } from '@tensorflow/tfjs-data/package.json';\nimport { version as versionLayers } from '@tensorflow/tfjs-layers/package.json';\nimport { version as versionConverter } from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs,\n 'tfjs-core': versionCore,\n 'tfjs-data': versionData,\n 'tfjs-layers': versionLayers,\n 'tfjs-converter': versionConverter,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './blazeface/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './posenet/posenet.js';\nimport * as blazepose from './blazepose/blazepose.js';\nimport * as handpose from './handpose/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.blazepose || (this.config.pose.enabled ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.pose.enabled && !this.models.blazepose) this.models.blazepose = await blazepose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let blazeposeRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run posenet\n this.analyze('Start Pose:');\n if (this.config.async) {\n blazeposeRes = this.config.pose.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.perf.pose) delete this.perf.pose;\n } else {\n this.state = 'run:pose';\n timeStamp = now();\n blazeposeRes = this.config.pose.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.perf.pose = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Pose:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, blazeposeRes, handRes] = await Promise.all([faceRes, poseRes, blazeposeRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, pose: blazeposeRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig) {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let blob;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (!blob) return null;\n const bitmap = await createImageBitmap(blob);\n const t0 = now();\n const warmup = await this.detect(bitmap, config);\n const t1 = now();\n bitmap.close();\n log('Warmup', this.config.warmup, (t1 - t0), warmup);\n this.config.videoOptimized = video;\n return warmup;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n// import * as helpers from './helpers.js';\n// import * as profile from '../profile.js';\n\nconst models = {};\nlet config = {};\nconst anchors = [];\nconst kMidHipCenter = 0;\nconst kPoseDetectKeyNum = 2;\nconst kFullBodySizeRot = 1;\n\nfunction calculateScale(min_scale, max_scale, stride_index, num_strides) {\n if (num_strides === 1) return (min_scale + max_scale) * 0.5;\n return min_scale + (max_scale - min_scale) * 1.0 * stride_index / (num_strides - 1.0);\n}\n\nexport function generateAnchors() {\n const options = {};\n options.strides = [];\n options.aspect_ratios = [];\n options.feature_map_height = [];\n options.num_layers = 4;\n options.min_scale = 0.1484375;\n options.max_scale = 0.75;\n options.input_size_height = 128;\n options.input_size_width = 128;\n options.anchor_offset_x = 0.5;\n options.anchor_offset_y = 0.5;\n options.strides.push(8);\n options.strides.push(16);\n options.strides.push(16);\n options.strides.push(16);\n options.aspect_ratios.push(1.0);\n options.reduce_boxes_in_lowest_layer = false;\n options.interpolated_scale_aspect_ratio = 1.0;\n options.fixed_anchor_size = true;\n let layer_id = 0;\n while (layer_id < options.strides.length) {\n const anchor_height = [];\n const anchor_width = [];\n const aspect_ratios = [];\n const scales = [];\n // For same strides, we merge the anchors in the same order.\n let last_same_stride_layer = layer_id;\n while (last_same_stride_layer < options.strides.length && options.strides[last_same_stride_layer] === options.strides[layer_id]) {\n const scale = calculateScale(options.min_scale, options.max_scale, last_same_stride_layer, options.strides.length);\n if (last_same_stride_layer === 0 && options.reduce_boxes_in_lowest_layer) {\n // For first layer, it can be specified to use predefined anchors.\n aspect_ratios.push(1.0);\n aspect_ratios.push(2.0);\n aspect_ratios.push(0.5);\n scales.push(0.1);\n scales.push(scale);\n scales.push(scale);\n } else {\n for (let aspect_ratio_id = 0; aspect_ratio_id < options.aspect_ratios.length; ++aspect_ratio_id) {\n aspect_ratios.push(options.aspect_ratios[aspect_ratio_id]);\n scales.push(scale);\n }\n if (options.interpolated_scale_aspect_ratio > 0.0) {\n const scale_next = last_same_stride_layer === options.strides.length - 1 ? 1.0 : calculateScale(options.min_scale, options.max_scale, last_same_stride_layer + 1, options.strides.length);\n scales.push(Math.sqrt(scale * scale_next));\n aspect_ratios.push(options.interpolated_scale_aspect_ratio);\n }\n }\n last_same_stride_layer++;\n }\n for (let i = 0; i < aspect_ratios.length; ++i) {\n const ratio_sqrts = Math.sqrt(aspect_ratios[i]);\n anchor_height.push(scales[i] / ratio_sqrts);\n anchor_width.push(scales[i] * ratio_sqrts);\n }\n let feature_map_height = 0;\n let feature_map_width = 0;\n if (options.feature_map_height.length) {\n feature_map_height = options.feature_map_height[layer_id];\n feature_map_width = options.feature_map_width[layer_id];\n } else {\n const stride = options.strides[layer_id];\n feature_map_height = Math.ceil(1.0 * options.input_size_height / stride);\n feature_map_width = Math.ceil(1.0 * options.input_size_width / stride);\n }\n for (let y = 0; y < feature_map_height; ++y) {\n for (let x = 0; x < feature_map_width; ++x) {\n for (let anchor_id = 0; anchor_id < anchor_height.length; ++anchor_id) {\n const x_center = (x + options.anchor_offset_x) * 1.0 / feature_map_width;\n const y_center = (y + options.anchor_offset_y) * 1.0 / feature_map_height;\n const new_anchor = {};\n new_anchor.x_center = x_center;\n new_anchor.y_center = y_center;\n if (options.fixed_anchor_size) {\n new_anchor.w = 1.0;\n new_anchor.h = 1.0;\n } else {\n new_anchor.w = anchor_width[anchor_id];\n new_anchor.h = anchor_height[anchor_id];\n }\n anchors.push(new_anchor);\n }\n }\n }\n layer_id = last_same_stride_layer;\n }\n}\n\nexport async function load(cfg) {\n config = cfg;\n if (!models.blazepose) {\n models.blazepose = await tf.loadGraphModel(config.pose.modelPath);\n log(`load model: ${config.pose.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n generateAnchors();\n return models.blazepose;\n}\n\nfunction rotateRegion(region) {\n const x0 = region.keys[kMidHipCenter].x;\n const y0 = region.keys[kMidHipCenter].y;\n const x1 = (region.box[0] + region.box[2]) * 0.5;\n const y1 = (region.box[1] + region.box[3]) * 0.5;\n const target_angle = Math.PI * 0.5;\n const angle = target_angle - Math.atan2(-(y1 - y0), x1 - x0);\n return Math.round(1000 * (angle - 2 * Math.PI * Math.floor((angle - (-Math.PI)) / (2 * Math.PI)))) / 1000;\n}\n\nfunction rotateVecor(vec, rotation) {\n const sx = vec.x;\n const sy = vec.y;\n vec.x = sx * Math.cos(rotation) - sy * Math.sin(rotation);\n vec.y = sx * Math.sin(rotation) + sy * Math.cos(rotation);\n}\n\nasync function decode(logits) {\n const scores = await logits[0].data();\n const boxes = await logits[1].data();\n // todo: add nms\n // todo scale output with image.shape\n const regions = [];\n for (let i = 0; i < anchors.length; i++) {\n const region = {};\n const score = 1.0 / (1.0 + Math.exp(-scores[i]));\n if (score > config.pose.scoreThreshold) {\n const idx = (4 + 2 * kPoseDetectKeyNum) * i;\n /* boundary box */\n const sx = boxes[idx + 0];\n const sy = boxes[idx + 1];\n const w = boxes[idx + 2] / config.pose.inputSize;\n const h = boxes[idx + 3] / config.pose.inputSize;\n const cx = (sx + anchors[i].x_center * config.pose.inputSize) / config.pose.inputSize;\n const cy = (sy + anchors[i].y_center * config.pose.inputSize) / config.pose.inputSize;\n region.score = Math.round(1000 * score) / 1000;\n region.box = [cx - w * 0.5, cy - h * 0.5, w * 0.5, h * 0.5];\n /* landmark positions (6 keys) */\n const keys = new Array(kPoseDetectKeyNum);\n for (let j = 0; j < kPoseDetectKeyNum; j++) {\n const lx = (boxes[idx + 4 + (2 * j) + 0] + anchors[i].x_center * config.pose.inputSize) / config.pose.inputSize;\n const ly = (boxes[idx + 4 + (2 * j) + 1] + anchors[i].y_center * config.pose.inputSize) / config.pose.inputSize;\n keys[j] = { x: lx, y: ly };\n }\n region.keys = keys;\n region.angle = rotateRegion(region);\n // add points\n const x_center = region.keys[kMidHipCenter].x * config.pose.inputSize;\n const y_center = region.keys[kMidHipCenter].y * config.pose.inputSize;\n const x_scale = region.keys[kFullBodySizeRot].x * config.pose.inputSize;\n const y_scale = region.keys[kFullBodySizeRot].y * config.pose.inputSize;\n // Bounding box size as double distance from center to scale point.\n const box_size = Math.sqrt((x_scale - x_center) * (x_scale - x_center) + (y_scale - y_center) * (y_scale - y_center)) * 2.0;\n /* RectTransformationCalculator::TransformNormalizedRect() */\n const roi_cx = region.angle === 0.0 ? x_center + box_size : x_center + box_size * Math.cos(region.angle) - box_size * Math.sin(region.angle);\n const roi_cy = region.angle === 0.0 ? y_center + box_size : y_center + box_size * Math.sin(region.angle) + box_size * Math.cos(region.angle);\n const long_side = Math.max(box_size, box_size);\n const roi_w = long_side * 1.5;\n const roi_h = long_side * 1.5;\n region.center = { x: roi_cx / config.pose.inputSize, y: roi_cy / config.pose.inputSize };\n region.size = { x: roi_w / config.pose.inputSize, y: roi_h / config.pose.inputSize };\n /* calculate ROI coordinates */\n const dx = roi_w * 0.5;\n const dy = roi_h * 0.5;\n region.coords = [];\n region.coords[0] = { x: -dx, y: -dy };\n region.coords[1] = { x: +dx, y: -dy };\n region.coords[2] = { x: +dx, y: +dy };\n region.coords[3] = { x: -dx, y: +dy };\n for (let j = 0; j < 4; j++) {\n rotateVecor(region.coords[i], region.angle);\n region.coords[j].x = (region.coords[j].x + roi_cx) / config.pose.inputSize;\n region.coords[j].y = (region.coords[j].y + roi_cy) / config.pose.inputSize;\n }\n\n regions.push(region);\n }\n }\n return regions;\n}\n\nexport async function predict(image, cfg) {\n if (!models.blazepose) return null;\n return new Promise(async (resolve) => {\n config = cfg;\n const resize = tf.image.resizeBilinear(image, [config.pose.inputSize, config.pose.inputSize], false);\n const enhance = tf.div(resize, 127.5).sub(1);\n tf.dispose(resize);\n const logits = await models.blazepose.predict(enhance);\n // todo: add landmarks model\n tf.dispose(enhance);\n const regions = await decode(logits);\n logits[0].dispose();\n logits[1].dispose();\n log('poses', regions);\n resolve(regions);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n pose: {\n enabled: false,\n scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n modelPath: '../models/blazepose.json',\n inputSize: 128, // fixed value\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n"], - "mappings": "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B,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,I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AAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,CACC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EA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CH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,UC/viBd,0CAIA,iBAA8B,mCAC9B,aAA8B,mCAC9B,SAAyB,8BAEnB,iBAAmB,CACvB,MAAO,CAAC,EAAG,EAAG,EAAG,GACjB,YAAa,CAAC,EAAG,EAAG,EAAG,GACvB,aAAc,CAAC,EAAG,GAAI,GAAI,IAC1B,WAAY,CAAC,GAAI,GAAI,GAAI,IACzB,MAAO,CAAC,GAAI,GAAI,GAAI,IACpB,SAAU,CAAC,IAdb,eAkBE,YAAY,cACV,KAAK,aAAe,mBAGf,kBACL,MAAO,uBAGH,eAAc,OAAO,SACzB,GAAM,aAAc,KAAM,MAAK,aAAa,cAAc,OAAO,SACjE,GAAI,CAAC,YAAa,MAAO,GACzB,GAAM,OAAQ,GACd,OAAW,cAAc,cACvB,GAAM,aAAc,GACpB,GAAI,WAAW,UACb,OAAW,OAAO,QAAO,KAAK,kBAC5B,YAAY,KAAO,iBAAiB,KAAK,IAAI,AAAC,OAAU,WAAW,UAAU,QAGjF,GAAM,KAAM,WAAW,IAAM,CAC3B,KAAK,IAAI,EAAG,WAAW,IAAI,QAAQ,IACnC,KAAK,IAAI,EAAG,WAAW,IAAI,QAAQ,IACnC,KAAK,IAAI,OAAM,MAAM,GAAI,WAAW,IAAI,YAAY,IAAM,WAAW,IAAI,QAAQ,GACjF,KAAK,IAAI,OAAM,MAAM,GAAI,WAAW,IAAI,YAAY,IAAM,WAAW,IAAI,QAAQ,IAC/E,EACJ,MAAM,KAAK,CACT,WAAY,WAAW,WACvB,IACA,UAAW,WAAW,UACtB,cAGJ,MAAO,SAGX,QAAQ,SAAW,SAEnB,qBAAoB,SAClB,GAAM,CAAC,kBAAmB,eAAiB,KAAM,SAAQ,IAAI,CAC3D,QAAO,KAAK,QAAU,AAAG,eAAe,QAAO,KAAK,SAAS,UAAW,CAAE,UAAW,QAAO,KAAK,SAAS,UAAU,SAAS,eAAkB,KAC/I,QAAO,KAAK,UAAY,AAAG,eAAe,QAAO,KAAK,SAAS,UAAW,CAAE,UAAW,QAAO,KAAK,SAAS,UAAU,SAAS,eAAkB,OAG7I,aAAe,GAAiB,2BAAa,kBAAmB,QAAO,KAAK,UAAmB,kBAE/F,aAAe,GAAiB,2BAAa,aAAc,cAAe,QAAO,KAAK,WACtF,SAAW,GAAI,UAAS,cAC9B,MAAI,SAAO,KAAK,SAAS,IAAI,eAAe,QAAO,KAAK,SAAS,UAAU,MAAM,YAAY,MACzF,QAAO,KAAK,WAAW,IAAI,eAAe,QAAO,KAAK,SAAS,UAAU,MAAM,YAAY,MACxF,SAET,QAAQ,KAAO,QCrEf,iDAAQ,KAAO,AAAC,MACd,GAAI,CAAC,IAAK,MAAO,GACjB,GAAM,UAAW,GACjB,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,KAE9B,GAAM,WAAY,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,aACrD,WAAa,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,cACtD,KAAO,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,QACtD,AAAI,MAAQ,WAAa,YAAe,UAAU,SAAS,EAAI,KAAK,SAAS,GAAO,WAAW,SAAS,EAAI,KAAK,SAAS,EAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,cAC3J,AAAI,MAAQ,WAAc,UAAU,SAAS,EAAI,KAAK,SAAS,EAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,oBACjG,MAAQ,YAAe,WAAW,SAAS,EAAI,KAAK,SAAS,GAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,qBAG5G,GAAM,cAAe,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,gBACxD,cAAgB,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,iBAC/D,AAAI,cAAgB,eAAe,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,WAAY,aAAa,SAAS,EAAI,cAAc,SAAS,EAAK,OAAS,YAElJ,MAAO,WAGT,QAAQ,KAAO,AAAC,MACd,GAAI,CAAC,IAAK,MAAO,GACjB,GAAM,UAAW,GACjB,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,IAC9B,GAAI,IAAI,GAAG,MAAQ,IAAI,GAAG,KAAK,OAAS,GACtC,GAAM,WAAY,IAAI,GAAG,KAAK,IAAI,GAAK,IAAI,GAAG,KAAK,KAAK,GACxD,AAAI,KAAK,IAAI,WAAa,GAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,kBAC3D,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,UAAU,UAAY,EAAI,QAAU,WAEvE,AADa,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,GAAK,IAAI,GAAG,KAAK,KAAK,IAAM,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,GAAK,IAAI,GAAG,KAAK,KAAK,IACxG,IAAK,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,mBAElD,AADc,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,GAAK,IAAI,GAAG,KAAK,KAAK,IAAM,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,GAAK,IAAI,GAAG,KAAK,KAAK,IACxG,IAAK,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,oBACvD,GAAM,WAAY,KAAK,IAAI,IAAK,IAAM,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,GAAK,IAAI,GAAG,KAAK,IAAI,IAAM,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,GAAK,IAAI,GAAG,KAAK,KAAK,KACzI,AAAI,UAAY,IAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,SAAS,KAAK,MAAM,qBAC1E,GAAM,WAAY,IAAI,GAAG,KAAK,KAAK,GACnC,AAAI,KAAK,IAAI,WAAa,IAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,QAAQ,UAAY,EAAI,KAAO,WAGnG,MAAO,WAGT,QAAQ,KAAO,AAAC,MACd,GAAI,CAAC,IAAK,MAAO,GACjB,GAAM,UAAW,GACjB,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,KAC9B,GAAI,CAAC,IAAI,GAAG,aAAe,CAAC,IAAI,GAAG,YAAY,aAAe,CAAC,IAAI,GAAG,YAAY,aAAc,SAChG,GAAM,WAAY,IAAI,GAAG,YAAY,YAAY,GAAG,GAAK,IAAI,GAAG,YAAY,YAAY,GAAG,GACrF,UAAY,IAAI,GAAG,YAAY,YAAY,GAAG,GAAK,IAAI,GAAG,YAAY,YAAY,GAAG,GACrF,SAAW,KAAK,IAAI,UAAY,WAEhC,WAAa,IAAI,GAAG,YAAY,aAAa,GAAG,GAAK,IAAI,GAAG,YAAY,aAAa,GAAG,GACxF,WAAa,IAAI,GAAG,YAAY,aAAa,GAAG,GAAK,IAAI,GAAG,YAAY,aAAa,GAAG,GACxF,UAAY,KAAK,IAAI,WAAa,YAGxC,AAAI,AADe,KAAK,IAAI,SAAW,WAAa,KAAK,IAAI,SAAU,WACtD,KAAM,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,sBAE3D,MAAO,WAGT,QAAQ,KAAO,AAAC,MACd,GAAI,CAAC,IAAK,MAAO,GACjB,GAAM,UAAW,GACjB,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,KAC9B,GAAM,SAAU,GAChB,OAAW,CAAC,OAAQ,MAAQ,QAAO,QAAQ,IAAI,GAAG,aAChD,AAAI,SAAW,YAAY,QAAQ,KAAK,CAAE,KAAM,OAAO,cAAe,SAAU,IAAI,KAEtF,GAAI,SAAW,QAAQ,OAAS,GAC9B,GAAM,SAAU,QAAQ,OAAO,CAAC,KAAM,IAAO,KAAK,SAAS,GAAK,EAAE,SAAS,GAAK,KAAO,GACjF,QAAU,QAAQ,OAAO,CAAC,KAAM,IAAO,KAAK,SAAS,GAAK,EAAE,SAAS,GAAK,KAAO,GACvF,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,GAAG,QAAQ,gBAAgB,QAAQ,aAGzE,MAAO,aC1ET,yCAOA,GAAM,cAAe,SAAU,GAAI,aAAc,gBAC/C,GAAM,UAAW,SAAU,OAAQ,OAAQ,YACzC,GAAM,GAAI,GAAI,QAAO,MAAQ,OAAS,eAAgB,MACtD,OAAO,QAAQ,EAAG,CAAC,MAAO,OACxB,YAAW,MAAQ,EACZ,SAIL,SAAW,SAAU,OAAQ,MACjC,GAAM,QAAS,GAAG,aAAa,MAI/B,GAHA,GAAG,aAAa,OAAQ,QACxB,GAAG,cAAc,QAEb,CAAC,GAAG,mBAAmB,OAAQ,GAAG,gBAEpC,KAAM,IAAI,OAAM,4BAA6B,GAAG,iBAAiB,SAEnE,MAAO,SAGT,KAAK,QAAU,GACf,KAAK,UAAY,GAEjB,GAAM,MAAO,SAAS,aAAc,GAAG,eACjC,KAAO,SAAS,eAAgB,GAAG,iBAOzC,GALA,KAAK,GAAK,GAAG,gBACb,GAAG,aAAa,KAAK,GAAI,MACzB,GAAG,aAAa,KAAK,GAAI,MACzB,GAAG,YAAY,KAAK,IAEhB,CAAC,GAAG,oBAAoB,KAAK,GAAI,GAAG,aAEtC,KAAM,IAAI,OAAM,yBAA0B,GAAG,kBAAkB,KAAK,KAGtE,GAAG,WAAW,KAAK,IAGnB,SAAS,aAAc,YAAa,KAAK,WACzC,OAAW,KAAK,MAAK,UACnB,KAAK,UAAU,GAAK,GAAG,kBAAkB,KAAK,GAAI,GAIpD,SAAS,aAAc,UAAW,KAAK,SACvC,SAAS,eAAgB,UAAW,KAAK,SACzC,OAAW,KAAK,MAAK,QACnB,KAAK,QAAQ,GAAK,GAAG,mBAAmB,KAAK,GAAI,IAI/C,iBAAmB,SAAU,QACjC,AAAK,QAAQ,QAAS,IACtB,GAAI,YAAa,EACb,eAAiB,KACjB,aAAe,GACf,yBAA2B,GAC3B,kBAAoB,CAAC,KAAM,MAC3B,aAAe,GACf,OAAS,GACT,QAAU,GACV,cAAgB,KAChB,gBAAkB,KAChB,QAAU,OAAO,QAAU,SAAS,cAAc,UAGlD,oBAAsB,GAEtB,GAAK,QAAQ,WAAW,SAC9B,GAAI,CAAC,GAAI,KAAM,IAAI,OAAM,+BAEzB,KAAK,UAAY,SAAU,MAEzB,GAAM,MAAO,MAAM,UAAU,MAAM,KAAK,UAAW,GAC7C,OAAS,QAAQ,MAEvB,aAAa,KAAK,CAAE,KAAM,OAAQ,QAGpC,KAAK,MAAQ,WACX,aAAe,IAGjB,KAAK,MAAQ,SAAU,QAcrB,GAbA,QAAQ,OAAM,MAAO,OAAM,QAC3B,WAAa,EAGR,gBAAgB,gBAAiB,GAAG,iBACzC,GAAG,YAAY,GAAG,WAAY,gBAC9B,GAAG,cAAc,GAAG,WAAY,GAAG,eAAgB,GAAG,eACtD,GAAG,cAAc,GAAG,WAAY,GAAG,eAAgB,GAAG,eACtD,GAAG,cAAc,GAAG,WAAY,GAAG,mBAAoB,GAAG,SAC1D,GAAG,cAAc,GAAG,WAAY,GAAG,mBAAoB,GAAG,SAC1D,GAAG,WAAW,GAAG,WAAY,EAAG,GAAG,KAAM,GAAG,KAAM,GAAG,cAAe,QAGhE,aAAa,SAAW,EAE1B,eACO,QAGT,OAAS,GAAI,EAAG,EAAI,aAAa,OAAQ,KACvC,aAAgB,IAAM,aAAa,OAAS,EAC5C,GAAM,GAAI,aAAa,GACvB,EAAE,KAAK,MAAM,KAAM,EAAE,MAAQ,IAG/B,MAAO,UAGT,GAAM,SAAU,SAAU,MAAO,QAE/B,GAAI,UAAU,QAAU,SAAW,UAQnC,GANA,QAAQ,MAAQ,MAChB,OAAS,MACT,QAAQ,OAAS,OACjB,QAAU,OAGN,CAAC,eAEH,GAAM,UAAW,GAAI,cAAa,CAChC,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EACrC,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,IAGrC,AAAC,cAAgB,GAAG,eAAgB,GAAG,WAAW,GAAG,aAAc,eACnE,GAAG,WAAW,GAAG,aAAc,SAAU,GAAG,aAI5C,GAAG,YAAY,GAAG,+BAAgC,IAGpD,GAAG,SAAS,EAAG,EAAG,OAAQ,SAG1B,kBAAoB,CAAC,KAAM,QAGvB,oBAAsB,SAAU,OAEpC,yBAAkB,OAAS,kBAAkB,QAAU,0BAA0B,OAAQ,SAClF,kBAAkB,QAGrB,0BAA4B,SAAU,MAAO,QACjD,GAAM,KAAM,GAAG,oBACf,GAAG,gBAAgB,GAAG,YAAa,KAEnC,GAAM,cAAe,GAAG,qBACxB,GAAG,iBAAiB,GAAG,aAAc,cAErC,GAAM,SAAU,GAAG,gBACnB,UAAG,YAAY,GAAG,WAAY,SAC9B,GAAG,WAAW,GAAG,WAAY,EAAG,GAAG,KAAM,MAAO,OAAQ,EAAG,GAAG,KAAM,GAAG,cAAe,MAEtF,GAAG,cAAc,GAAG,WAAY,GAAG,mBAAoB,GAAG,QAC1D,GAAG,cAAc,GAAG,WAAY,GAAG,mBAAoB,GAAG,QAC1D,GAAG,cAAc,GAAG,WAAY,GAAG,eAAgB,GAAG,eACtD,GAAG,cAAc,GAAG,WAAY,GAAG,eAAgB,GAAG,eAEtD,GAAG,qBAAqB,GAAG,YAAa,GAAG,kBAAmB,GAAG,WAAY,QAAS,GAEtF,GAAG,YAAY,GAAG,WAAY,MAC9B,GAAG,gBAAgB,GAAG,YAAa,MAE5B,CAAE,IAAK,UAGV,MAAQ,SAAU,OAtL1B,UAuLI,GAAI,QAAS,KACT,OAAS,KACT,MAAQ,GAGZ,AAAI,aAAe,EAEjB,OAAS,eAIT,OAAS,wBAAoB,4BAApB,eAA+C,QAE1D,aAGA,AAAI,cAAgB,CAAE,OAAQ,KAAK,cAGjC,QAAS,KACT,MAAQ,WAAa,GAAM,GAG3B,0BAA4B,0BAA2B,GAAK,EAE5D,OAAS,wBAAoB,4BAApB,eAA+C,KAI1D,GAAG,YAAY,GAAG,WAAY,QAC9B,GAAG,gBAAgB,GAAG,YAAa,QAEnC,GAAG,UAAU,gBAAgB,QAAQ,MAAQ,MAAQ,GAAK,GAC1D,GAAG,WAAW,GAAG,UAAW,EAAG,IAG3B,eAAiB,SAAU,gBAC/B,GAAI,oBAAoB,gBACtB,uBAAkB,oBAAoB,gBACtC,GAAG,WAAW,gBAAgB,IACvB,gBAIT,gBAAkB,GAAI,cAAa,GAAI,OAAO,gBAAiB,gBAE/D,GAAM,WAAY,aAAa,kBACzB,SAAW,EAAI,UACrB,UAAG,wBAAwB,gBAAgB,UAAU,KACrD,GAAG,oBAAoB,gBAAgB,UAAU,IAAK,EAAG,GAAG,MAAO,GAAO,SAAU,EAAI,WACxF,GAAG,wBAAwB,gBAAgB,UAAU,IACrD,GAAG,oBAAoB,gBAAgB,UAAU,GAAI,EAAG,GAAG,MAAO,GAAO,SAAU,EAAI,WAEvF,oBAAoB,gBAAkB,gBAC/B,iBAGL,KAAO,CAAE,aAAc,GAEvB,OAAS,GACb,OAAO,gBAAkB,CACvB,yBACA,sBACA,qBACA,oBACA,uBAEA,oBACA,YACA,mDACA,KACA,KAAK;AAAA,GAEP,OAAO,kBAAoB,CACzB,yBACA,oBACA,6BAEA,oBACA,0CACA,KACA,KAAK;AAAA,GAEP,GAAI,SAAU,GAKd,QAAQ,YAAc,SAAU,QAE9B,GAAM,GAAI,GAAI,cAAa,QAC3B,EAAE,IAAM,IACR,EAAE,IAAM,IACR,EAAE,KAAO,IACT,EAAE,KAAO,IAGT,GAAM,QAAU,EAAE,MAAQ,GAAK,EAAE,KAAO,GAAK,EAAE,KAAO,GAAK,EAAE,MAAQ,GAAK,EAAE,MAAQ,GAAK,EAAE,MAAQ,GAAK,EAAE,MAAQ,GAAK,EAAE,MAAQ,EAC7H,QAAQ,YAAY,OAAO,cAC3B,QAAQ,YAAY,OAAO,WAEzB,QAAU,eAAe,QAC/B,GAAG,WAAW,QAAQ,QAAQ,EAAG,GACjC,SAGF,QAAQ,YAAY,OAAS,GAC7B,QAAQ,YAAY,OAAO,WAAa,CACtC,yBACA,oBACA,6BACA,uBAEA,oBACA,oCACA,6EACA,6EACA,kFACA,kFACA,KACA,KAAK;AAAA,GACP,QAAQ,YAAY,OAAO,cAAgB,CACzC,yBACA,oBACA,6BACA,uBAEA,oBACA,oCACA,gEACA,gEACA,oEACA,wBACA,KACA,KAAK;AAAA,GAEP,QAAQ,WAAa,SAAU,YAC7B,GAAM,GAAK,aAAc,GAAK,EAC9B,QAAQ,YAAY,CAClB,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,WAAa,SAAU,QAC7B,GAAM,GAAK,SAAU,GAAK,EAAI,EAAI,EAC5B,EAAM,GAAI,GAAK,IACrB,QAAQ,YAAY,CAClB,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,WAAa,WACnB,QAAQ,WAAW,KAGrB,QAAQ,SAAW,SAAU,QAC3B,GAAM,GAAK,SAAU,GAAK,EACpB,EAAI,KAAQ,GAAI,GAEtB,QAAQ,YAAY,CAClB,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,SAAW,WACjB,QAAQ,SAAS,KAGnB,QAAQ,IAAM,SAAU,UACtB,SAAY,WAAY,GAAK,IAAM,KAAK,GACxC,GAAM,MAAM,KAAK,IAAI,UACf,KAAM,KAAK,IAAI,UACf,KAAO,KACP,KAAO,KACP,KAAO,KAEb,QAAQ,YAAY,CAClB,KAAO,KAAO,GAAI,MAAQ,KAAO,CAAC,KAAO,KAAO,KAAO,CAAC,KAAQ,KAAO,CAAC,KAAO,KAAO,KAAO,CAAC,KAAQ,KAAO,GAAI,MAAO,EAAG,EAC3H,KAAO,KAAO,CAAC,KAAQ,KAAO,KAAQ,KAAO,KAAO,GAAI,MAAQ,KAAO,IAAQ,KAAO,KAAO,CAAC,KAAQ,KAAO,MAAS,EAAG,EACzH,KAAO,KAAO,CAAC,KAAQ,KAAO,CAAE,GAAI,MAAQ,KAAO,KAAO,CAAC,KAAQ,KAAO,KAAO,KAAO,KAAO,GAAI,MAAQ,KAAO,KAAO,EAAG,EAC5H,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,oBAAsB,WAC5B,QAAQ,YAAY,CAClB,SAAW,QAAW,SAAW,EAAG,MACpC,SAAW,QAAW,SAAW,EAAG,MACpC,SAAW,QAAW,SAAW,EAAG,MACpC,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,MAAQ,WACd,QAAQ,YAAY,CAClB,KAAO,SAAW,UAAY,EAAG,EACjC,KAAO,SAAW,UAAY,EAAG,EACjC,KAAO,SAAW,UAAY,EAAG,EACjC,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,QAAU,WAChB,QAAQ,YAAY,CAClB,kBAAoB,mBAAqB,mBAAqB,EAAG,kBACjE,qBAAuB,kBAAoB,mBAAqB,EAAG,mBACnE,mBAAqB,oBAAsB,mBAAqB,EAAG,mBACnE,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,eAAiB,WACvB,QAAQ,YAAY,CAClB,kBAAoB,kBAAoB,oBAAsB,EAAG,kBACjE,mBAAqB,kBAAoB,mBAAqB,EAAG,kBACjE,kBAAoB,mBAAqB,kBAAoB,EAAG,kBAChE,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,WAAa,WACnB,QAAQ,YAAY,CAClB,mBAAoB,mBAAqB,oBAAsB,EAAG,kBAClE,oBAAsB,mBAAoB,oBAAsB,EAAG,mBACnE,oBAAsB,mBAAqB,mBAAoB,EAAG,kBAClE,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,YAAc,WACpB,QAAQ,YAAY,CAClB,mBAAoB,mBAAqB,oBAAsB,EAAG,mBAClE,mBAAqB,mBAAoB,oBAAsB,EAAG,mBAClE,kBAAoB,mBAAqB,kBAAmB,EAAG,mBAC/D,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,SAAW,WACjB,QAAQ,YAAY,CAClB,MAAO,MAAQ,MAAQ,EAAG,EAC1B,MAAQ,MAAO,MAAQ,EAAG,EAC1B,MAAQ,MAAQ,MAAO,EAAG,EAC1B,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,WAAa,WACnB,QAAQ,YAAY,CAClB,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,KAOhB,QAAQ,YAAc,SAAU,QAC9B,GAAM,GAAI,GAAI,cAAa,QACrB,WAAa,EAAI,OACjB,WAAa,EAAI,QAEjB,QAAU,eAAe,QAAQ,YAAY,QACnD,GAAG,WAAW,QAAQ,QAAQ,EAAG,GACjC,GAAG,UAAU,QAAQ,QAAQ,GAAI,WAAY,YAC7C,SAGF,QAAQ,YAAY,OAAS,CAC3B,yBACA,oBACA,6BACA,mBACA,sBAEA,oBACA,2CACA,4DACA,mEAEA,6DACA,sCACA,6DAEA,oEACA,6DACA,4CAEA,kBACA,yCACA,yCACA,wCACA,0BACA,KACA,KAAK;AAAA,GAEP,QAAQ,YAAc,WACpB,QAAQ,YAAY,KAAK,KAAM,CAC7B,EAAG,EAAG,EACN,EAAG,GAAI,EACP,EAAG,EAAG,KAIV,QAAQ,OAAS,WACf,QAAQ,YAAY,KAAK,KAAM,CAC7B,GAAI,EAAG,EACP,GAAI,EAAG,EACP,GAAI,EAAG,KAIX,QAAQ,OAAS,WACf,QAAQ,YAAY,KAAK,KAAM,CAC7B,GAAI,GAAI,GACR,EAAG,EAAG,EACN,EAAG,EAAG,KAIV,QAAQ,QAAU,SAAU,QAC1B,GAAM,GAAI,QAAU,EACpB,QAAQ,YAAY,KAAK,KAAM,CAC7B,EAAG,GAAK,EAAG,EACX,GAAK,EAAG,EAAI,EAAI,EAAG,GAAK,EACxB,EAAG,GAAK,EAAG,KAIf,QAAQ,OAAS,SAAU,MACzB,GAAM,GAAI,MAAQ,EAClB,QAAQ,YAAY,KAAK,KAAM,CAC7B,GAAK,EAAG,GAAK,EAAG,EAChB,GAAK,EAAG,EAAG,EAAI,EACf,EAAG,EAAI,EAAG,EAAI,KAOlB,QAAQ,KAAO,SAAU,MACvB,GAAM,WAAa,KAAO,EAAK,OACzB,UAAa,KAAO,EAAK,QAEzB,QAAU,eAAe,QAAQ,KAAK,QAG5C,GAAG,UAAU,QAAQ,QAAQ,GAAI,EAAG,WACpC,MAAM,KAAK,cAGX,GAAG,UAAU,QAAQ,QAAQ,GAAI,UAAW,GAC5C,SAGF,QAAQ,KAAK,OAAS,CACpB,yBACA,oBACA,6BACA,mBAEA,oBACA,4BACA,8FACA,yFACA,wFACA,wFACA,wFACA,uFACA,uFACA,uFACA,uFACA,uFACA,wFACA,wFACA,wFACA,yFACA,8FACA,KACA,KAAK;AAAA,GAKP,QAAQ,SAAW,SAAU,MAC3B,GAAM,WAAa,KAAQ,OACrB,UAAa,KAAQ,QAErB,QAAU,eAAe,QAAQ,SAAS,QAGhD,GAAG,UAAU,QAAQ,QAAQ,KAAM,UAAW,WAC9C,SAGF,QAAQ,SAAS,OAAS,CACxB,yBACA,oBACA,qBACA,6BAEA,yCACA,uCACA,IAEA,oBACA,4BACA,oCACA,6CACA,KACA,KAAK;AAAA,IAGT,QAAQ,OAAS,mBChmBjB,uCAEA,YAAyB,8BAGrB,SAAW,KACX,UAAY,KAKhB,kBAAiB,OAAO,SACtB,GAAI,SACJ,GAAI,iBAAoB,QACtB,QAAS,AAAG,MAAM,aAElB,GAAM,eAAgB,OAAM,cAAgB,OAAM,YAAc,OAAM,OAAU,OAAM,OAAU,OAAM,MAAM,GAAK,EAC3G,eAAiB,OAAM,eAAiB,OAAM,aAAe,OAAM,QAAW,OAAM,OAAU,OAAM,MAAM,GAAK,EACjH,YAAc,cACd,aAAe,eAKnB,GAJA,AAAI,QAAO,OAAO,MAAQ,EAAG,YAAc,QAAO,OAAO,MAChD,QAAO,OAAO,OAAS,GAAG,aAAc,cAAiB,SAAO,OAAO,OAAS,iBACzF,AAAI,QAAO,OAAO,OAAS,EAAG,aAAe,QAAO,OAAO,OAClD,QAAO,OAAO,MAAQ,GAAG,cAAe,eAAkB,SAAO,OAAO,MAAQ,gBACrF,CAAC,aAAe,CAAC,aACnB,WAAI,uBAAwB,QACrB,KAET,AAAI,EAAC,UAAa,SAAS,QAAU,aAAiB,SAAS,SAAW,eACxE,UAAY,MAAO,kBAAoB,YAAe,GAAI,iBAAgB,YAAa,cAAgB,SAAS,cAAc,UAC1H,SAAS,QAAU,aAAa,UAAS,MAAQ,aACjD,SAAS,SAAW,cAAc,UAAS,OAAS,eAE1D,GAAM,KAAM,SAAS,WAAW,MAGhC,GAFA,AAAI,iBAAiB,WAAW,IAAI,aAAa,OAAO,EAAG,GACtD,IAAI,UAAU,OAAO,EAAG,EAAG,cAAe,eAAgB,EAAG,EAAG,SAAS,MAAO,SAAS,QAC1F,QAAO,OAAO,SAOhB,GANI,EAAC,KAAK,IAAM,CAAC,WAAc,SAAS,QAAU,UAAU,OAAW,SAAS,SAAW,UAAU,SACnG,WAAa,MAAO,kBAAoB,YAAe,GAAI,iBAAgB,SAAS,MAAO,SAAS,QAAU,SAAS,cAAc,UACjI,UAAU,QAAU,SAAS,OAAO,WAAU,MAAQ,SAAS,OAC/D,UAAU,SAAW,SAAS,QAAQ,WAAU,OAAS,SAAS,QACtE,KAAK,GAAK,AAAG,IAAI,MAAM,WAAa,GAAY,gBAAO,CAAE,OAAQ,YAAe,MAE9E,CAAC,KAAK,GAAI,MAAO,UACrB,KAAK,GAAG,QACR,KAAK,GAAG,UAAU,aAAc,QAAO,OAAO,YAC1C,QAAO,OAAO,WAAa,GAAG,KAAK,GAAG,UAAU,WAAY,QAAO,OAAO,UAC1E,QAAO,OAAO,YAAc,GAAG,KAAK,GAAG,UAAU,UAAW,QAAO,OAAO,WAC1E,QAAO,OAAO,OAAS,GAAG,KAAK,GAAG,UAAU,OAAQ,QAAO,OAAO,MAClE,QAAO,OAAO,aAAe,GAAG,KAAK,GAAG,UAAU,aAAc,QAAO,OAAO,YAC9E,QAAO,OAAO,MAAQ,GAAG,KAAK,GAAG,UAAU,MAAO,QAAO,OAAO,KAChE,QAAO,OAAO,UAAU,KAAK,GAAG,UAAU,YAC1C,QAAO,OAAO,OAAO,KAAK,GAAG,UAAU,SACvC,QAAO,OAAO,SAAS,KAAK,GAAG,UAAU,WACzC,QAAO,OAAO,OAAO,KAAK,GAAG,UAAU,SACvC,QAAO,OAAO,YAAY,KAAK,GAAG,UAAU,cAC5C,QAAO,OAAO,aAAa,KAAK,GAAG,UAAU,eAC7C,QAAO,OAAO,UAAU,KAAK,GAAG,UAAU,YAC1C,QAAO,OAAO,WAAa,GAAG,KAAK,GAAG,UAAU,WAAY,QAAO,OAAO,UAC9E,KAAK,GAAG,MAAM,cAuBd,WAAY,SAEd,GAAI,QACJ,GAAI,UAAU,MACZ,GAAM,OAAQ,CAAC,UAAU,OAAQ,UAAU,MAAO,GAClD,OAAS,AAAG,SAAS,UAAU,KAAM,MAAO,iBAClC,QAAO,UAAY,SAAa,oBAAqB,WAE/D,OAAS,AAAG,gBAAQ,WAAW,gBAG/B,GAAM,YAAc,MAAO,kBAAoB,YAAe,GAAI,iBAAgB,YAAa,cAAgB,SAAS,cAAc,UACtI,WAAW,MAAQ,YACnB,WAAW,OAAS,aACpB,GAAM,SAAU,WAAW,WAAW,MACtC,uBAAS,UAAU,UAAW,EAAG,GACjC,GAAM,OAAO,6BAAS,aAAa,EAAG,EAAG,YAAa,cACtD,OAAS,AAAG,gBAAQ,WAAW,OAEjC,GAAM,QAAS,OAAO,UACtB,QAAS,OAAO,WAAW,GAC3B,OAAO,UACP,OAAO,UAET,MAAO,CAAE,eAAQ,OAAQ,QAAO,OAAO,OAAS,UAAY,MAG9D,QAAQ,QAAU,WC5GX,gBAAgB,KACrB,GAAM,IAAK,GAAI,MACT,GAAK,GAAG,GAAG,WAAW,WAAW,SAAS,EAAG,QAAQ,GAAG,aAAa,WAAW,SAAS,EAAG,QAAQ,GAAG,aAAa,WAAW,SAAS,EAAG,QAAQ,GAAG,kBAAkB,WAAW,SAAS,EAAG,OAErM,AAAI,KAAK,QAAQ,IAAI,GAAI,SAAU,GAAG,y9YCLxC,gBAAA,YAAA,QCAA,aAAA,YAAA,CAAA,QAAA,UA2BC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,cAAc,MACZ,GAAI,IAAK,KAAM,KAAO,OAEtB,GAAG,KAAO,WACR,GAAI,GAAI,QAAU,GAAG,GAAK,GAAG,EAAI,sBACjC,MAAA,IAAG,GAAK,GAAG,GACX,GAAG,GAAK,GAAG,GACJ,GAAG,GAAK,EAAK,IAAG,EAAI,EAAI,IAIjC,GAAG,EAAI,EACP,GAAG,GAAK,KAAK,KACb,GAAG,GAAK,KAAK,KACb,GAAG,GAAK,KAAK,KACb,GAAG,IAAM,KAAK,MACV,GAAG,GAAK,GAAK,IAAG,IAAM,GAC1B,GAAG,IAAM,KAAK,MACV,GAAG,GAAK,GAAK,IAAG,IAAM,GAC1B,GAAG,IAAM,KAAK,MACV,GAAG,GAAK,GAAK,IAAG,IAAM,GAC1B,KAAO,KAGT,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACF,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,MAAK,MACd,MAAQ,MAAQ,KAAK,MACrB,KAAO,GAAG,KACd,MAAA,MAAK,MAAQ,WAAa,MAAQ,IAAG,OAAS,WAAe,GAC7D,KAAK,OAAS,WACZ,MAAO,QAAU,QAAS,QAAW,GAAK,uBAE5C,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGT,gBACE,GAAI,GAAI,WAEJ,KAAO,SAAS,OAClB,MAAO,MAAK,WACZ,OAAS,GAAI,EAAG,EAAI,MAAK,OAAQ,KAC/B,GAAK,MAAK,WAAW,GACrB,GAAI,GAAI,mBAAsB,EAC9B,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EACL,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EAAI,WAEX,MAAQ,KAAM,GAAK,uBAGrB,MAAO,MAIL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,KAAO,OAIZ,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UC9GnC,eAAA,YAAA,CAAA,QAAA,UAGC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAAM,QAAU,GAEzB,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EAGP,GAAG,KAAO,WACR,GAAI,GAAI,GAAG,EAAK,GAAG,GAAK,GACxB,MAAA,IAAG,EAAI,GAAG,EACV,GAAG,EAAI,GAAG,EACV,GAAG,EAAI,GAAG,EACH,GAAG,GAAM,GAAG,IAAM,GAAM,EAAK,IAAM,GAGxC,OAAU,MAAO,GAEnB,GAAG,EAAI,KAGP,SAAW,KAIb,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAS,GAAI,IACvC,GAAG,GAAK,QAAQ,WAAW,GAAK,EAChC,GAAG,OAIP,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,OAAS,OAId,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UC7EnC,eAAA,YAAA,CAAA,QAAA,UAGC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAAM,QAAU,GAGzB,GAAG,KAAO,WACR,GAAI,GAAK,GAAG,EAAK,GAAG,IAAM,EAC1B,MAAA,IAAG,EAAI,GAAG,EAAG,GAAG,EAAI,GAAG,EAAG,GAAG,EAAI,GAAG,EAAG,GAAG,EAAI,GAAG,EACzC,IAAG,EAAK,GAAG,EAAI,OAAS,GAC5B,IAAG,EAAK,GAAG,EAAK,GAAG,GAAK,EAAO,GAAK,GAAK,IAAO,GAGtD,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EAEH,OAAU,MAAO,GAEnB,GAAG,EAAI,KAGP,SAAW,KAIb,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAS,GAAI,IACvC,GAAG,GAAK,QAAQ,WAAW,GAAK,EAC5B,GAAK,QAAQ,QACf,IAAG,EAAI,GAAG,GAAK,GAAK,GAAG,IAAM,GAE/B,GAAG,OAIP,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,OAAS,OAId,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UClFnC,kBAAA,YAAA,CAAA,QAAA,UAKC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAGT,GAAG,KAAO,WAER,GAAI,GAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAG,EAAG,EAC9B,MAAA,GAAI,EAAE,GAAI,GAAM,IAAM,EAAI,EAAI,EAAK,GAAK,GACxC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,GACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,EACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,GAAK,EACnC,EAAI,EAAG,EAAI,EAAK,GAAI,EAAI,EAAK,GAAK,GAAK,GAAK,EAAK,GAAK,EACtD,EAAE,GAAK,EACP,GAAG,EAAK,EAAI,EAAK,EACV,GAGT,eAAc,IAAI,OAChB,GAAI,GAAG,EAAG,EAAI,GAEd,GAAI,QAAU,OAAO,GAEnB,EAAI,EAAE,GAAK,UAIX,KADA,MAAO,GAAK,MACP,EAAI,EAAG,EAAI,MAAK,OAAQ,EAAE,EAC7B,EAAE,EAAI,GAAM,EAAE,EAAI,IAAM,GACnB,MAAK,WAAW,GAAK,EAAG,EAAI,EAAK,IAAM,GAIhD,KAAO,EAAE,OAAS,GAAG,EAAE,KAAK,GAC5B,IAAK,EAAI,EAAG,EAAI,GAAK,EAAE,KAAO,EAAG,EAAE,EAAE,CAOrC,IANI,GAAK,EAAG,EAAI,EAAE,GAAK,GAAS,EAAI,EAAE,GAEtC,IAAG,EAAI,EACP,IAAG,EAAI,EAGF,EAAI,IAAK,EAAI,EAAG,EAAE,EACrB,IAAG,OAIP,MAAK,GAAI,MAGX,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EAAE,QACV,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MACd,MAAQ,MAAM,MAAO,CAAE,GAAI,OAC/B,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAM,GAAG,KAAK,MAAO,IACzB,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,UAAY,OAIjB,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UC9FnC,gBAAA,YAAA,CAAA,QAAA,UAyBC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAGT,GAAG,KAAO,WACR,GAAI,GAAI,GAAG,EACP,EAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAG,EAE3B,MAAA,IAAG,EAAI,EAAK,EAAI,WAAc,EAE9B,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GAEX,EAAI,EAAE,GAAK,EAAI,EACf,GAAG,EAAI,EAEC,EAAK,GAAK,IAAM,IAAQ,GAGlC,eAAc,IAAI,OAChB,GAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAI,GAAI,MAAQ,IAYnC,IAXI,QAAU,OAAO,GAEnB,GAAI,MACJ,MAAO,MAGP,OAAO,MAAO,KACd,EAAI,EACJ,MAAQ,KAAK,IAAI,MAAO,MAAK,SAG1B,EAAI,EAAG,EAAI,IAAK,EAAI,MAAO,EAAE,EAE5B,OAAM,IAAK,MAAK,WAAY,GAAI,IAAM,MAAK,SAE3C,IAAM,GAAG,GAAI,GACjB,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,GAAK,EACV,GAAK,IAAM,GACP,GAAK,GACP,GAAK,EAAI,WAAc,EACvB,EAAK,EAAE,EAAI,MAAS,EAAI,EACxB,EAAU,GAAL,EAAU,EAAI,EAAI,GAW3B,IAPI,GAAK,KACP,GAAG,QAAQ,MAAK,QAAU,GAAK,KAAO,IAKxC,EAAI,IACC,EAAI,EAAI,IAAK,EAAI,EAAG,EAAE,EACzB,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GACX,EAAE,GAAK,EAAI,EAGb,IAAG,EAAI,EACP,IAAG,EAAI,EACP,IAAG,EAAI,EAGT,MAAK,GAAI,MAGX,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAGT,cAAc,KAAM,MACd,MAAQ,MAAM,MAAO,CAAE,GAAI,OAC/B,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAM,GAAG,KAAK,MAAO,IACzB,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,QAAU,OAIf,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UChJnC,eAAA,YAAA,CAAA,QAAA,UAIC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAAM,QAAU,GAGzB,GAAG,KAAO,WACR,GAAI,GAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAI,GAAG,EACzC,MAAA,GAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,GAAG,EAAI,EAAK,GAAK,GAAO,IAAM,GAAM,EACpC,GAAG,EAAI,EAAK,EAAI,EAAK,EACrB,GAAG,EAAK,GAAK,GAAO,IAAM,GAAM,EACzB,GAAG,EAAK,EAAI,EAAK,GAmB1B,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,WAAa,EACpB,GAAG,EAAI,WAEH,OAAS,KAAK,MAAM,MAEtB,IAAG,EAAK,KAAO,WAAe,EAC9B,GAAG,EAAI,KAAO,GAGd,SAAW,KAIb,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAS,GAAI,IACvC,GAAG,GAAK,QAAQ,WAAW,GAAK,EAChC,GAAG,OAIP,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,OAAS,OAId,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UCnGnC,eAAA,YAAA,QCAA,mBAAA,YAAA,CAAA,QAAA,UAwBC,AAAA,UAAU,MAAM,MAIjB,GAAI,SAAS,KACT,MAAQ,IACR,OAAS,EACT,OAAS,GACT,QAAU,SACV,WAAa,KAAK,IAAI,MAAO,QAC7B,aAAe,KAAK,IAAI,EAAG,QAC3B,SAAW,aAAe,EAC1B,KAAO,MAAQ,EACf,WAMJ,qBAAoB,KAAM,QAAS,UACjC,GAAI,KAAM,GACV,QAAW,SAAW,GAAQ,CAAE,QAAS,IAAU,SAAW,GAG9D,GAAI,WAAY,OAAO,SACrB,QAAQ,QAAU,CAAC,KAAM,SAAS,QACjC,MAAQ,KAAQ,WAAa,KAAM,GAAI,KAGtC,KAAO,GAAI,MAAK,KAIhB,KAAO,WAIT,OAHI,GAAI,KAAK,EAAE,QACX,EAAI,WACJ,EAAI,EACD,EAAI,cACT,EAAK,GAAI,GAAK,MACd,GAAK,MACL,EAAI,KAAK,EAAE,GAEb,KAAO,GAAK,UACV,GAAK,EACL,GAAK,EACL,KAAO,EAET,MAAQ,GAAI,GAAK,GAGnB,MAAA,MAAK,MAAQ,WAAa,MAAO,MAAK,EAAE,GAAK,GAC7C,KAAK,MAAQ,WAAa,MAAO,MAAK,EAAE,GAAK,YAC7C,KAAK,OAAS,KAGd,OAAO,SAAS,KAAK,GAAI,OAGjB,SAAQ,MAAQ,UACpB,SAAS,MAAM,MAAM,aAAc,OAUjC,MATI,QAEE,OAAM,GAAK,KAAK,MAAO,MAE3B,MAAK,MAAQ,WAAa,MAAO,MAAK,KAAM,MAK1C,aAAgB,MAAK,SAAW,MAAa,OAIrC,QAElB,KACA,UACA,UAAY,SAAU,QAAQ,OAAU,MAAQ,KAChD,QAAQ,OAEV,KAAK,OAAS,SAAW,YAYzB,cAAc,KACZ,GAAI,GAAG,OAAS,IAAI,OAChB,GAAK,KAAM,EAAI,EAAG,EAAI,GAAG,EAAI,GAAG,EAAI,EAAG,EAAI,GAAG,EAAI,GAMtD,IAHK,QAAU,KAAM,CAAC,WAGf,EAAI,OACT,EAAE,GAAK,IAET,IAAK,EAAI,EAAG,EAAI,MAAO,IACrB,EAAE,GAAK,EAAE,EAAI,KAAQ,EAAI,IAAI,EAAI,QAAW,GAAI,EAAE,KAClD,EAAE,GAAK,EAIR,AAAA,IAAG,EAAI,SAAS,QAIf,OAFI,IAAG,EAAI,EACP,GAAI,GAAG,EAAG,GAAI,GAAG,EAAG,GAAI,GAAG,EACxB,UACL,GAAI,GAAE,GAAI,KAAQ,GAAI,GACtB,EAAI,EAAI,MAAQ,GAAE,KAAS,IAAE,IAAK,GAAE,GAAI,KAAQ,GAAI,KAAQ,IAAE,IAAK,KAErE,MAAA,IAAG,EAAI,GAAG,GAAG,EAAI,GACV,IAIN,OAOL,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAOT,kBAAiB,IAAK,OACpB,GAAI,QAAS,GAAI,IAAO,MAAO,KAAM,KACrC,GAAI,OAAS,KAAO,SAClB,IAAK,OAAQ,KACX,IAAM,OAAO,KAAK,SAAQ,IAAI,MAAO,MAAQ,UAAc,IAG/D,MAAQ,QAAO,OAAS,OAAS,KAAO,SAAW,IAAM,IAAM,KAQjE,gBAAgB,KAAM,KAEpB,OADI,YAAa,KAAO,GAAI,MAAO,EAAI,EAChC,EAAI,WAAW,QACpB,IAAI,KAAO,GACT,KAAS,QAAS,IAAI,KAAO,GAAK,IAAM,WAAW,WAAW,KAElE,MAAO,UAAS,KAQlB,oBACE,IACE,GAAI,KACJ,MAAI,aAAe,KAAM,WAAW,aAElC,IAAM,IAAI,OAEV,KAAM,GAAI,YAAW,OACpB,SAAO,QAAU,QAAO,UAAU,gBAAgB,MAE9C,SAAS,WACT,GACP,GAAI,SAAU,QAAO,UACjB,QAAU,SAAW,QAAQ,QACjC,MAAO,CAAC,CAAC,GAAI,MAAM,QAAQ,QAAS,QAAO,OAAQ,SAAS,SAQhE,kBAAkB,GAChB,MAAO,QAAO,aAAa,MAAM,EAAG,GAgBtC,GANA,OAAO,KAAK,SAAU,OAMjB,MAAO,SAAW,UAAY,OAAO,SACxC,OAAO,QAAU,YAEjB,IACE,WAAqB,uBACd,UACC,OAAO,SAAW,YAAc,OAAO,KACjD,OAAO,WAAa,MAAO,iBAK3B,GACA,QCrPF,oBAAA,YAAA,CAAA,QAAA,UAYA,GAAI,OAAe,eAKf,OAAiB,iBAKjB,OAAiB,iBAQjB,UAAoB,oBASpB,QAAkB,kBAOlB,OAAiB,iBAIjB,GAAa,qBAEjB,GAAG,KAAO,MACV,GAAG,OAAS,OACZ,GAAG,OAAS,OACZ,GAAG,UAAY,UACf,GAAG,QAAU,QACb,GAAG,OAAS,OAEZ,OAAO,QAAU,KC3DjB,cAAA,YAAA,CAAA,QAAA,UA2BC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,cAAc,MACZ,GAAI,IAAK,KAAM,KAAO,OAEtB,GAAG,KAAO,WACR,GAAI,GAAI,QAAU,GAAG,GAAK,GAAG,EAAI,sBACjC,MAAA,IAAG,GAAK,GAAG,GACX,GAAG,GAAK,GAAG,GACJ,GAAG,GAAK,EAAK,IAAG,EAAI,EAAI,IAIjC,GAAG,EAAI,EACP,GAAG,GAAK,KAAK,KACb,GAAG,GAAK,KAAK,KACb,GAAG,GAAK,KAAK,KACb,GAAG,IAAM,KAAK,MACV,GAAG,GAAK,GAAK,IAAG,IAAM,GAC1B,GAAG,IAAM,KAAK,MACV,GAAG,GAAK,GAAK,IAAG,IAAM,GAC1B,GAAG,IAAM,KAAK,MACV,GAAG,GAAK,GAAK,IAAG,IAAM,GAC1B,KAAO,KAGT,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACF,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,MAAK,MACd,MAAQ,MAAQ,KAAK,MACrB,KAAO,GAAG,KACd,MAAA,MAAK,MAAQ,WAAa,MAAQ,IAAG,OAAS,WAAe,GAC7D,KAAK,OAAS,WACZ,MAAO,QAAU,QAAS,QAAW,GAAK,uBAE5C,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGT,gBACE,GAAI,GAAI,WAEJ,KAAO,SAAS,OAClB,MAAO,MAAK,WACZ,OAAS,GAAI,EAAG,EAAI,MAAK,OAAQ,KAC/B,GAAK,MAAK,WAAW,GACrB,GAAI,GAAI,mBAAsB,EAC9B,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EACL,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EAAI,WAEX,MAAQ,KAAM,GAAK,uBAGrB,MAAO,MAIL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,KAAO,OAIZ,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UC9GnC,gBAAA,YAAA,CAAA,QAAA,UAGC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAAM,QAAU,GAEzB,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EAGP,GAAG,KAAO,WACR,GAAI,GAAI,GAAG,EAAK,GAAG,GAAK,GACxB,MAAA,IAAG,EAAI,GAAG,EACV,GAAG,EAAI,GAAG,EACV,GAAG,EAAI,GAAG,EACH,GAAG,GAAM,GAAG,IAAM,GAAM,EAAK,IAAM,GAGxC,OAAU,MAAO,GAEnB,GAAG,EAAI,KAGP,SAAW,KAIb,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAS,GAAI,IACvC,GAAG,GAAK,QAAQ,WAAW,GAAK,EAChC,GAAG,OAIP,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,OAAS,OAId,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UC7EnC,gBAAA,YAAA,CAAA,QAAA,UAGC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAAM,QAAU,GAGzB,GAAG,KAAO,WACR,GAAI,GAAK,GAAG,EAAK,GAAG,IAAM,EAC1B,MAAA,IAAG,EAAI,GAAG,EAAG,GAAG,EAAI,GAAG,EAAG,GAAG,EAAI,GAAG,EAAG,GAAG,EAAI,GAAG,EACzC,IAAG,EAAK,GAAG,EAAI,OAAS,GAC5B,IAAG,EAAK,GAAG,EAAK,GAAG,GAAK,EAAO,GAAK,GAAK,IAAO,GAGtD,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EAEH,OAAU,MAAO,GAEnB,GAAG,EAAI,KAGP,SAAW,KAIb,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAS,GAAI,IACvC,GAAG,GAAK,QAAQ,WAAW,GAAK,EAC5B,GAAK,QAAQ,QACf,IAAG,EAAI,GAAG,GAAK,GAAK,GAAG,IAAM,GAE/B,GAAG,OAIP,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,OAAS,OAId,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UClFnC,mBAAA,YAAA,CAAA,QAAA,UAKC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAGT,GAAG,KAAO,WAER,GAAI,GAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAG,EAAG,EAC9B,MAAA,GAAI,EAAE,GAAI,GAAM,IAAM,EAAI,EAAI,EAAK,GAAK,GACxC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,GACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,EACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,GAAK,EACnC,EAAI,EAAG,EAAI,EAAK,GAAI,EAAI,EAAK,GAAK,GAAK,GAAK,EAAK,GAAK,EACtD,EAAE,GAAK,EACP,GAAG,EAAK,EAAI,EAAK,EACV,GAGT,eAAc,IAAI,OAChB,GAAI,GAAG,EAAG,EAAI,GAEd,GAAI,QAAU,OAAO,GAEnB,EAAI,EAAE,GAAK,UAIX,KADA,MAAO,GAAK,MACP,EAAI,EAAG,EAAI,MAAK,OAAQ,EAAE,EAC7B,EAAE,EAAI,GAAM,EAAE,EAAI,IAAM,GACnB,MAAK,WAAW,GAAK,EAAG,EAAI,EAAK,IAAM,GAIhD,KAAO,EAAE,OAAS,GAAG,EAAE,KAAK,GAC5B,IAAK,EAAI,EAAG,EAAI,GAAK,EAAE,KAAO,EAAG,EAAE,EAAE,CAOrC,IANI,GAAK,EAAG,EAAI,EAAE,GAAK,GAAS,EAAI,EAAE,GAEtC,IAAG,EAAI,EACP,IAAG,EAAI,EAGF,EAAI,IAAK,EAAI,EAAG,EAAE,EACrB,IAAG,OAIP,MAAK,GAAI,MAGX,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EAAE,QACV,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MACd,MAAQ,MAAM,MAAO,CAAE,GAAI,OAC/B,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAM,GAAG,KAAK,MAAO,IACzB,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,UAAY,OAIjB,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UC9FnC,iBAAA,YAAA,CAAA,QAAA,UAyBC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAGT,GAAG,KAAO,WACR,GAAI,GAAI,GAAG,EACP,EAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAG,EAE3B,MAAA,IAAG,EAAI,EAAK,EAAI,WAAc,EAE9B,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GAEX,EAAI,EAAE,GAAK,EAAI,EACf,GAAG,EAAI,EAEC,EAAK,GAAK,IAAM,IAAQ,GAGlC,eAAc,IAAI,OAChB,GAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAI,GAAI,MAAQ,IAYnC,IAXI,QAAU,OAAO,GAEnB,GAAI,MACJ,MAAO,MAGP,OAAO,MAAO,KACd,EAAI,EACJ,MAAQ,KAAK,IAAI,MAAO,MAAK,SAG1B,EAAI,EAAG,EAAI,IAAK,EAAI,MAAO,EAAE,EAE5B,OAAM,IAAK,MAAK,WAAY,GAAI,IAAM,MAAK,SAE3C,IAAM,GAAG,GAAI,GACjB,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,GAAK,EACV,GAAK,IAAM,GACP,GAAK,GACP,GAAK,EAAI,WAAc,EACvB,EAAK,EAAE,EAAI,MAAS,EAAI,EACxB,EAAU,GAAL,EAAU,EAAI,EAAI,GAW3B,IAPI,GAAK,KACP,GAAG,QAAQ,MAAK,QAAU,GAAK,KAAO,IAKxC,EAAI,IACC,EAAI,EAAI,IAAK,EAAI,EAAG,EAAE,EACzB,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GACX,EAAE,GAAK,EAAI,EAGb,IAAG,EAAI,EACP,IAAG,EAAI,EACP,IAAG,EAAI,EAGT,MAAK,GAAI,MAGX,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAGT,cAAc,KAAM,MACd,MAAQ,MAAM,MAAO,CAAE,GAAI,OAC/B,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAM,GAAG,KAAK,MAAO,IACzB,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,QAAU,OAIf,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UChJnC,gBAAA,YAAA,CAAA,QAAA,UAIC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAAM,QAAU,GAGzB,GAAG,KAAO,WACR,GAAI,GAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAI,GAAG,EACzC,MAAA,GAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,GAAG,EAAI,EAAK,GAAK,GAAO,IAAM,GAAM,EACpC,GAAG,EAAI,EAAK,EAAI,EAAK,EACrB,GAAG,EAAK,GAAK,GAAO,IAAM,GAAM,EACzB,GAAG,EAAK,EAAI,EAAK,GAmB1B,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,WAAa,EACpB,GAAG,EAAI,WAEH,OAAS,KAAK,MAAM,MAEtB,IAAG,EAAK,KAAO,WAAe,EAC9B,GAAG,EAAI,KAAO,GAGd,SAAW,KAIb,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAS,GAAI,IACvC,GAAG,GAAK,QAAQ,WAAW,GAAK,EAChC,GAAG,OAIP,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,OAAS,OAId,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UCnGnC,oBAAA,YAAA,CAAA,QAAA,UAwBC,AAAA,UAAU,MAAM,MAIjB,GAAI,SAAS,KACT,MAAQ,IACR,OAAS,EACT,OAAS,GACT,QAAU,SACV,WAAa,KAAK,IAAI,MAAO,QAC7B,aAAe,KAAK,IAAI,EAAG,QAC3B,SAAW,aAAe,EAC1B,KAAO,MAAQ,EACf,WAMJ,qBAAoB,KAAM,QAAS,UACjC,GAAI,KAAM,GACV,QAAW,SAAW,GAAQ,CAAE,QAAS,IAAU,SAAW,GAG9D,GAAI,WAAY,OAAO,SACrB,QAAQ,QAAU,CAAC,KAAM,SAAS,QACjC,MAAQ,KAAQ,WAAa,KAAM,GAAI,KAGtC,KAAO,GAAI,MAAK,KAIhB,KAAO,WAIT,OAHI,GAAI,KAAK,EAAE,QACX,EAAI,WACJ,EAAI,EACD,EAAI,cACT,EAAK,GAAI,GAAK,MACd,GAAK,MACL,EAAI,KAAK,EAAE,GAEb,KAAO,GAAK,UACV,GAAK,EACL,GAAK,EACL,KAAO,EAET,MAAQ,GAAI,GAAK,GAGnB,MAAA,MAAK,MAAQ,WAAa,MAAO,MAAK,EAAE,GAAK,GAC7C,KAAK,MAAQ,WAAa,MAAO,MAAK,EAAE,GAAK,YAC7C,KAAK,OAAS,KAGd,OAAO,SAAS,KAAK,GAAI,OAGjB,SAAQ,MAAQ,UACpB,SAAS,MAAM,MAAM,aAAc,OAUjC,MATI,QAEE,OAAM,GAAK,KAAK,MAAO,MAE3B,MAAK,MAAQ,WAAa,MAAO,MAAK,KAAM,MAK1C,aAAgB,MAAK,SAAW,MAAa,OAIrC,QAElB,KACA,UACA,UAAY,SAAU,QAAQ,OAAU,MAAQ,KAChD,QAAQ,OAEV,KAAK,OAAS,SAAW,YAYzB,cAAc,KACZ,GAAI,GAAG,OAAS,IAAI,OAChB,GAAK,KAAM,EAAI,EAAG,EAAI,GAAG,EAAI,GAAG,EAAI,EAAG,EAAI,GAAG,EAAI,GAMtD,IAHK,QAAU,KAAM,CAAC,WAGf,EAAI,OACT,EAAE,GAAK,IAET,IAAK,EAAI,EAAG,EAAI,MAAO,IACrB,EAAE,GAAK,EAAE,EAAI,KAAQ,EAAI,IAAI,EAAI,QAAW,GAAI,EAAE,KAClD,EAAE,GAAK,EAIR,AAAA,IAAG,EAAI,SAAS,QAIf,OAFI,IAAG,EAAI,EACP,GAAI,GAAG,EAAG,GAAI,GAAG,EAAG,GAAI,GAAG,EACxB,UACL,GAAI,GAAE,GAAI,KAAQ,GAAI,GACtB,EAAI,EAAI,MAAQ,GAAE,KAAS,IAAE,IAAK,GAAE,GAAI,KAAQ,GAAI,KAAQ,IAAE,IAAK,KAErE,MAAA,IAAG,EAAI,GAAG,GAAG,EAAI,GACV,IAIN,OAOL,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAOT,kBAAiB,IAAK,OACpB,GAAI,QAAS,GAAI,IAAO,MAAO,KAAM,KACrC,GAAI,OAAS,KAAO,SAClB,IAAK,OAAQ,KACX,IAAM,OAAO,KAAK,SAAQ,IAAI,MAAO,MAAQ,UAAc,IAG/D,MAAQ,QAAO,OAAS,OAAS,KAAO,SAAW,IAAM,IAAM,KAQjE,gBAAgB,KAAM,KAEpB,OADI,YAAa,KAAO,GAAI,MAAO,EAAI,EAChC,EAAI,WAAW,QACpB,IAAI,KAAO,GACT,KAAS,QAAS,IAAI,KAAO,GAAK,IAAM,WAAW,WAAW,KAElE,MAAO,UAAS,KAQlB,oBACE,IACE,GAAI,KACJ,MAAI,aAAe,KAAM,WAAW,aAElC,IAAM,IAAI,OAEV,KAAM,GAAI,YAAW,OACpB,SAAO,QAAU,QAAO,UAAU,gBAAgB,MAE9C,SAAS,WACT,GACP,GAAI,SAAU,QAAO,UACjB,QAAU,SAAW,QAAQ,QACjC,MAAO,CAAC,CAAC,GAAI,MAAM,QAAQ,QAAS,QAAO,OAAQ,SAAS,SAQhE,kBAAkB,GAChB,MAAO,QAAO,aAAa,MAAM,EAAG,GAgBtC,GANA,OAAO,KAAK,SAAU,OAMjB,MAAO,SAAW,UAAY,OAAO,SACxC,OAAO,QAAU,YAEjB,IACE,WAAqB,uBACd,UACC,OAAO,SAAW,YAAc,OAAO,KACjD,OAAO,WAAa,MAAO,iBAK3B,GACA,QCrPF,oBAAA,YAAA,CAAA,QAAA,UAYA,GAAI,OAAe,gBAKf,OAAiB,kBAKjB,OAAiB,kBAQjB,UAAoB,qBASpB,QAAkB,mBAOlB,OAAiB,kBAIjB,GAAa,sBAEjB,GAAG,KAAO,MACV,GAAG,OAAS,OACZ,GAAG,OAAS,OACZ,GAAG,UAAY,UACf,GAAG,QAAU,QACb,GAAG,OAAS,OAEZ,OAAO,QAAU,KC3DjB,aAAA,YAAA,QCAA,uBAAA,YAAA,QCAA,mBAAA,YAAA,QCAA,wCAAA,YAAA,CAAA,QAAA,UACA,GAAI,+BAAiC,WACnC,GAAI,YAAa,MAAO,WAAa,aAAe,SAAS,cAAgB,SAAS,cAAc,IAAM,OAC1G,MAAI,OAAO,aAAe,aAAa,YAAa,YAAc,YAEpE,SAAS,gCACP,+BAAgC,gCAAiC,GAEnE,4BAA4B,MAAG,YAAW,QAAQ,SAAQ,2BAA2B,WAAW,QAAe,MAAM,4BAA4B,MAAG,YAAW,QAAQ,SAAQ,2BAA2B,WAAW,QAAe,OAAO,6BAA6B,MAAG,YAAW,QAAQ,SAAQ,2BAA2B,WAAW,QAAe,OAAO,6BAA6B,MAAG,YAAW,QAAQ,SAAQ,2BAA2B,WAAW,QAAe,QAAQ,6BAA6B,MAAG,YAAW,QAAQ,SAAQ,2BAA2B,WAAW,QAAe,QAAQ,GAAI,QAAO,MAAO,iCAAgC,YAAY,+BAA8B,GAAO,YAAW,OAAc,gBAAgB,GAAO,IAAI,IAAI,MAAO,QAAW,OAAO,eAAe,MAAM,iBAAgB,KAAK,OAAO,MAAM,GAAI,YAAW,GAAO,YAAY,iBAAqB,MAAM,SAAS,OAAO,SAAS,KAAM,UAAa,mBAAmB,GAAU,sBAAsB,GAAU,oBAAoB,GAAU,qBAAqB,GAAM,mBAAmB,MAAO,SAAS,SAAS,sBAAsB,MAAO,gBAAgB,WAAW,oBAAoB,MAAO,UAAU,UAAU,MAAO,SAAQ,UAAW,UAAU,MAAO,SAAQ,SAAS,MAAO,SAAS,qBAAqB,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,sBAAsB,GAAI,wBAAuB,OAAO,wBAA2B,GAAS,wBAAwB,SAAO,OAAO,OAAU,aAAa,OAAO,aAAgB,eAAe,OAAO,gBAAkB,GAAI,iBAAgB,GAAG,oBAAoB,MAAM,MAAG,QAAO,WAAsB,OAAO,WAAc,KAAK,iBAAwB,gBAAgB,KAAK,GAAI,OAAM,UAAU,WAAW,eAAmB,OAAW,SAAS,GAAG,qBAAwB,sBAAuB,gBAAwB,eAAQ,QAAQ,iBAAiB,IAAS,gBAAgB,UAAU,IAAI,MAAM,SAAoB,SAAS,QAAQ,MAAI,SAAO,QAAe,eAAU,UAAS,UAAiB,gBAAQ,SAAS,SAAS,UAAa,UAAiB,OAAO,aAAgB,SAAS,OAAO,KAAK,SAAS,WAAW,SAAoB,UAAU,GAAI,KAAI,MAAM,SAAS,IAAM,MAAI,KAAI,QAAQ,KAAI,GAAI,YAAW,MAAK,QAAO,IAAI,QAAe,KAAQ,QAAQ,KAAQ,OAAO,GAAG,aAAY,QAAQ,KAAQ,GAAG,QAAQ,MAAM,MAAK,WAAW,QAAQ,KAAQ,MAAM,GAAG,QAAQ,GAAM,oBAAoB,SAAS,IAAI,GAAG,CAAE,cAAc,aAAa,KAAM,MAAM,QAAQ,GAAM,qBAAqB,OAAO,MAAM,SAAS,QAAQ,QAAQ,KAAQ,SAAS,OAAO,QAAW,WAAW,MAAM,8BAA8B,GAAI,mBAAkB,IAAI,kBAA0B,+BAAwB,GAAG,KAAA,SAAQ,MAAM,2GAAiH,EAAE,OAAO,kBAAkB,WAAe,sBAAyB,OAAO,OAAM,aAAa,OAAM,SAAoB,GAAG,MAAO,MAAK,KAAI,WAAW,SAAoB,GAAG,GAAI,OAAK,MAAG,OAAO,aAAa,WAAmB,GAAI,YAAW,WAAW,IAAI,OAAK,KAAK,EAAE,UAAU,QAAO,MAAO,QAAO,UAAiB,QAAS,MAAO,aAAY,YAAa,WAAW,WAAmB,MAAO,YAAW,aAAa,YAAW,WAAa,MAAO,OAAO,YAAY,OAAM,SAAS,QAAQ,KAAK,UAAY,MAAO,QAAQ,aAAgB,OAAO,UAAU,aAAY,SAAQ,IAAG,QAAQ,IAAI,MAAM,QAAQ,KAAK,QAAQ,MAAM,MAAO,WAAW,YAAY,SAAS,QAAe,qBAAoB,wBAA0B,uBAAuB,gBAAgB,KAAK,SAAS,KAAa,SAAS,eAAe,iBAAgB,SAAS,cAAc,KAAO,aAAY,iBAAgB,aAAc,gBAAgB,QAAQ,WAAW,EAAG,gBAAgB,gBAAgB,OAAO,EAAE,gBAAgB,YAAY,KAAK,GAAQ,gBAAgB,GAAM,oBAAqB,OAAM,SAAoB,SAAS,QAAQ,MAAI,SAAO,QAAe,eAAU,UAAS,UAAiB,gBAAQ,SAAS,SAAS,UAAa,UAAiB,OAAO,aAAgB,SAAS,OAAO,KAAK,SAAS,WAAW,SAAoB,UAAU,GAAI,KAAI,MAAM,SAAS,IAAM,MAAI,KAAI,QAAQ,KAAI,GAAI,YAAW,MAAK,QAAO,IAAI,QAAe,MAAU,OAAM,SAAoB,KAAK,GAAI,KAAI,GAAI,gBAAe,MAAA,KAAI,KAAK,MAAM,IAAI,IAAO,IAAI,KAAK,MAAa,IAAI,cAAiB,uBAAuB,YAAW,SAAoB,KAAK,GAAI,KAAI,GAAI,gBAAe,MAAA,KAAI,KAAK,MAAM,IAAI,IAAO,IAAI,aAAa,cAAc,IAAI,KAAK,MAAa,GAAI,YAAW,IAAI,YAAW,UAAU,SAAmB,IAAI,OAAO,SAAS,GAAI,KAAI,GAAI,gBAAe,IAAI,KAAK,MAAM,IAAI,IAAM,IAAI,aAAa,cAAc,IAAI,OAAO,WAAsB,GAAG,IAAI,QAAQ,KAAK,IAAI,QAAQ,GAAG,IAAI,UAAU,OAAO,IAAI,UAAU,OAAO,WAAW,IAAI,QAAQ,QAAQ,IAAI,KAAK,QAAO,eAAe,SAAS,OAAO,SAAS,MAAM,QAAgB,qBAAwB,MAAO,cAAc,aAAa,aAAoB,qBAAc,aAAa,GAAI,KAAI,OAAO,OAAU,QAAQ,IAAI,KAAK,SAAa,IAAI,OAAO,UAAa,QAAQ,KAAK,KAAK,SAAS,IAAI,MAAO,iBAAoB,gBAAgB,eAAe,MAAM,QAAO,KAAK,gBAAgB,MAAM,gBAAgB,KAAQ,OAAO,WAAa,YAAW,OAAO,WAAgB,OAAO,aAAe,aAAY,OAAO,aAAkB,OAAO,MAAQ,OAAM,OAAO,MAAQ,GAAI,cAAa,QAAQ,KAAS,cAAc,QAAQ,MAAU,wBAAwB,QAAQ,gBAAoB,WAAc,OAAO,YAAc,YAAW,OAAO,YAAc,GAAI,eAAiB,OAAO,eAAiB,eAAc,OAAO,eAAoB,MAAO,cAAc,UAAU,IAAI,mCAAmC,GAAI,YAAe,UAAU,GAAI,aAAY,MAAM,CAAC,QAAU,IAAI,QAAU,IAAI,EAAE,QAAU,YAAgB,WAAe,iBAAiB,EAAM,aAAa,EAAM,MAAM,GAAU,WAAW,EAAE,iBAAgB,UAAU,MAAU,WAAW,MAAM,qBAAqB,MAAO,kBAAkB,OAAO,GAAI,OAAK,OAAO,IAAI,OAAO,MAAA,SAAO,MAAK,gCAAgC,MAAM,8BAAqC,MAAK,eAAe,MAAM,WAAW,SAAS,KAAK,MAAM,GAAI,KAAI,CAAC,OAAS,SAAS,KAAK,GAAI,MAAI,EAAE,GAAG,KAAM,MAAuB,MAAM,GAAG,GAAI,KAAK,KAAI,QAAQ,GAAG,EAAE,KAAI,WAAW,KAAK,aAAa,IAAI,KAAI,KAAK,MAAO,OAAK,MAAQ,SAAS,KAAK,GAAI,MAAI,WAAW,IAAI,QAAQ,MAAA,oBAAmB,IAAI,MAAY,OAAM,4BAA4B,MAAK,MAAG,cAAa,SAAgB,aAAa,MAAQ,aAAa,UAAiB,QAAQ,MAAY,KAAI,GAAI,OAAK,SAAS,OAAW,MAAM,GAAO,OAAM,EAAE,GAAG,KAAM,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,KAAK,GAAI,WAAU,IAAI,SAAS,IAAO,UAAc,UAAQ,GAAE,QAAM,aAAY,MAAM,GAAG,UAAU,KAAK,KAAS,MAAM,GAAG,KAAK,GAAK,GAAI,KAAI,MAAK,MAAM,KAAK,OAAO,MAAA,KAAI,mBAAmB,KAAQ,SAAQ,GAAE,aAAa,QAAc,IAAI,eAAe,MAAM,WAAW,SAAS,MAAM,SAAS,UAAU,GAAG,GAAI,aAAY,SAAS,MAAM,SAAS,MAAM,MAAO,QAAO,WAAe,WAAW,aAAa,SAAS,MAAG,aAAY,aAAa,CAAC,KAAa,SAAS,OAAc,WAAW,MAAO,OAAM,MAAM,WAAW,SAAS,UAAU,OAAO,2BAA2B,KAAK,IAAI,gBAAyD,OAArC,QAAO,IAAI,eAAmB,IAAI,GAAS,CAAE,MAAK,UAAS,GAAI,IAAG,KAAK,OAAO,GAAG,CAAC,GAAG,MAAO,KAAI,GAAG,CAAE,IAAG,MAAM,KAAK,OAAO,aAAa,IAAI,SAAS,GAAI,IAAG,KAAK,OAAO,GAAG,GAAI,IAAG,MAAM,KAAK,KAAK,OAAO,aAAc,IAAG,KAAK,EAAE,IAAI,SAAS,GAAI,IAAG,KAAK,OAAO,GAA4F,GAArF,IAAG,MAAM,IAAK,GAAI,IAAG,KAAK,GAAG,IAAI,EAAE,GAAQ,GAAI,IAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,OAAO,GAAM,GAAG,MAAO,KAAK,OAAO,aAAa,SAAS,GAAI,IAAG,GAAG,MAAM,KAAK,OAAO,aAAa,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,MAAO,KAAI,sBAAsB,IAAI,gBAAgB,MAAO,KAAI,kBAAkB,mBAAmB,IAAI,gBAAgB,GAAG,2BAA2B,IAAI,KAAK,OAAO,iBAAiB,GAAG,CAAE,iBAAgB,GAAG,MAAO,GAA0D,OAApD,UAAS,OAAW,OAAO,OAAO,gBAAgB,EAAU,EAAE,EAAE,EAAE,IAAI,OAAO,EAAE,GAAG,GAAI,GAAE,IAAI,WAAW,GAAG,GAAG,GAAG,OAAO,GAAG,OAAO,GAAI,IAAG,IAAI,WAAW,EAAE,GAAG,EAAE,MAAQ,IAAE,OAAO,IAAI,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG,QAAQ,OAAO,MAAM,KAAK,UAAU,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,EAAE,KAAK,UAAU,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,GAAG,KAAK,UAAU,IAAI,GAAG,EAAE,GAAG,KAAK,UAAU,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,GAAG,KAAK,UAAU,IAAI,GAAG,GAAG,GAAG,KAAK,UAAU,IAAI,GAAG,EAAE,GAAG,KAAK,UAAU,IAAI,EAAE,IAAI,MAAA,MAAK,QAAQ,EAAS,OAAO,SAAS,sBAAsB,IAAI,OAAO,iBAAiB,MAAO,mBAAkB,IAAI,mBAAmB,OAAO,iBAAiB,yBAAyB,KAAe,OAAN,KAAI,EAAU,EAAE,EAAE,EAAE,IAAI,OAAO,EAAE,GAAG,GAAI,GAAE,IAAI,WAAW,GAAM,GAAG,OAAO,GAAG,OAAM,GAAE,MAAQ,IAAE,OAAO,IAAI,IAAI,WAAW,EAAE,GAAG,MAAQ,GAAG,IAAI,EAAE,IAAY,GAAG,KAAK,KAAK,EAAU,GAAG,MAAM,KAAK,EAAO,KAAK,EAAE,MAAO,KAAI,4BAA4B,OAAM,SAAQ,mBAAmB,IAAI,OAAM,SAAQ,GAAI,gBAAe,MAAM,iBAAiB,EAAE,UAAU,MAAG,GAAE,SAAS,GAAG,IAAG,SAAS,EAAE,UAAgB,EAAE,GAAI,SAAO,MAAM,OAAO,OAAO,QAAQ,OAAO,QAAQ,QAAQ,QAAQ,oCAAoC,KAAK,QAAO,IAAI,OAAO,MAAS,MAAM,GAAI,WAAU,KAAK,OAAO,OAAU,OAAO,GAAI,YAAW,KAAK,OAAO,OAAU,OAAO,GAAI,YAAW,KAAK,OAAO,OAAU,OAAO,GAAI,YAAW,KAAK,OAAO,QAAW,QAAQ,GAAI,aAAY,KAAK,OAAO,QAAW,QAAQ,GAAI,aAAY,KAAK,OAAO,QAAW,QAAQ,GAAI,cAAa,KAAK,OAAO,QAAW,QAAQ,GAAI,cAAa,KAAK,GAAI,YAAW,QAAQ,SAAS,WAAW,UAAU,MAAM,aAAa,QAAQ,eAAe,MAAsC,uBAAuB,OAAO,gBAAmB,SAAS,GAAG,uBAAwB,WAAW,OAAO,WAAc,QAAO,OAAO,eAAkB,OAAO,WAAe,WAAW,OAAO,mBAAmB,WAAW,GAAI,aAAY,OAAO,CAAC,QAAU,uBAAuB,eAAe,QAAU,WAAW,eAAe,OAAS,KAAU,CAAE,YAAW,iBAAkB,oBAAoB,KAAA,KAAI,+NAAkO,qBAAqB,QAAQ,IAAI,qHAA2H,MAAM,cAAmB,YAAY,SAAO,WAAW,QAAO,uBAAuB,QAAO,WAAW,2BAA2B,SAAY,wBAAwB,qBAAoB,gBAAgB,GAAG,cAAa,8BAA8B,YAAW,KAAM,WAAU,OAAO,IAAG,GAAI,UAAS,WAAU,QAAQ,GAAG,MAAO,WAAU,YAAY,SAAS,QAAQ,SAAS,GAAI,OAAK,SAAS,KAAQ,MAAO,QAAO,SAAa,SAAS,MAAM,OAAW,OAAO,UAAa,OAAW,OAAO,WAAc,MAAK,SAAS,KAAW,MAAK,SAAS,MAAM,OAAU,KAAK,SAAS,MAAO,GAAI,cAAa,GAAO,WAAW,GAAO,WAAW,GAAO,WAAW,GAAO,cAAc,GAAO,mBAAmB,GAAS,wBAAuB,oBAAmB,IAAK,kBAAkB,GAAG,CAAA,wBAA8B,GAAG,OAAO,OAAsF,IAAxE,MAAO,QAAO,QAAW,YAAW,QAAO,OAAU,CAAC,OAAO,SAAiB,OAAO,OAAU,QAAQ,YAAY,OAAO,OAAU,SAAU,qBAAqB,eAAc,uBAAuB,mBAAmB,GAAK,qBAAqB,YAAY,mBAAsB,wBAA8B,qBAAqB,YAAY,mBAAmB,GAAG,CAAA,wBAA8B,GAAG,OAAO,QAA0F,IAA3E,MAAO,QAAO,SAAY,YAAW,QAAO,QAAW,CAAC,OAAO,UAAkB,OAAO,QAAW,QAAQ,aAAa,OAAO,QAAW,SAAU,qBAAqB,gBAAe,qBAAqB,IAAI,aAAa,QAAQ,IAAI,sBAAsB,IAAI,cAAc,QAAQ,IAAI,GAAI,WAAU,KAAK,KAAS,WAAW,KAAK,MAAU,gBAAgB,EAAM,qBAAqB,KAAS,sBAAsB,KAAK,0BAA0B,IAAI,QAAO,CAAC,uBAAuB,uDAAuD,kBAAqB,OAAO,wBAA2B,OAAO,uBAA0B,iBAAkB,6BAA6B,IAA6G,GAAzG,kBAAqB,OAAO,wBAA2B,OAAO,uBAA0B,iBAAoB,iBAAiB,GAAM,wBAAuB,MAAM,eAAc,sBAAsB,qBAAqB,MAAQ,wBAAuB,GAAI,UAAS,sBAAsB,sBAAsB,KAAK,YAAa,OAAO,gBAAmB,GAAG,OAAO,gBAAmB,GAAG,eAAe,MAAM,KAAG,QAAO,SAAY,OAAO,QAAW,MAAS,wBAAuB,QAAQ,MAAM,uBAAwB,GAAI,SAAO,OAAO,MAAM,GAAG,IAAI,MAAM,IAAI,MAAM,MAAM,GAAK,WAAW,EAAE,KAAK,SAAS,KAAK,+CAAqD,GAAI,aAAY,aAAa,MAAM,mBAAmB,IAAI,QAAQ,MAAO,QAAO,UAAU,WAAW,IAAI,WAAW,QAAQ,IAAI,QAAQ,UAAU,EAAE,GAAI,eAAc,wCAAwC,mBAAmB,UAAU,MAAO,WAAU,SAAS,eAAe,GAAI,eAAc,UAAU,mBAAmB,UAAU,MAAO,WAAU,SAAS,eAAe,GAAI,gBAAe,uCAA2C,UAAU,iBAAiB,gBAAe,WAAW,iBAAgB,qBAAqB,IAAI,GAAG,WAAY,MAAO,IAAI,YAAW,YAAY,GAAG,WAAY,MAAO,YAAW,gBAAqB,KAAK,wDAAyD,MAAK,MAAM,OAAM,4BAA4B,MAAG,CAAC,YAAa,qBAAoB,wBAAwB,MAAO,QAAQ,YAAY,CAAC,UAAU,gBAAwB,MAAM,eAAe,CAAC,YAAY,gBAAgB,KAAK,SAAS,UAAU,GAAG,CAAC,SAAS,GAAO,KAAK,uCAAuC,eAAe,IAAI,MAAO,UAAS,gBAAmB,MAAM,WAAW,MAAO,eAAqB,GAAI,SAAQ,SAAS,QAAQ,QAAQ,QAAQ,eAAe,sBAAsB,GAAI,MAAK,CAAC,EAAI,eAAe,yBAAyB,SAAS,SAAQ,GAAI,UAAQ,SAAS,QAAgD,GAAxC,OAAO,IAAO,SAAQ,WAAW,QAAU,CAAC,wBAAwB,GAAI,kBAAiB,QAAQ,cAAc,OAAO,QAAQ,cAAc,QAAQ,SAAS,GAAG,QAAQ,uBAAuB,EAAE,WAAe,EAAE,kBAAiB,oBAAoB,yBAA6B,wBAAwB,iBAAiB,oBAAoB,mCAAmC,QAAQ,gBAAgB,OAAO,SAAY,OAAO,QAAW,gCAAgC,UAAU,MAAO,oBAAmB,KAAK,SAAS,QAAQ,MAAO,aAAY,YAAY,OAAO,QAAQ,KAAK,SAAS,SAAS,QAAQ,IAAI,0CAA0C,QAAQ,MAAM,UAAU,4BAA4B,GAAG,CAAC,YAAY,MAAO,aAAY,sBAAuB,YAAY,CAAC,UAAU,iBAAiB,CAAC,UAAU,iBAAiB,MAAO,QAAQ,WAAY,MAAM,eAAe,CAAC,YAAY,gBAAgB,KAAK,SAAS,UAAU,GAAI,QAAO,YAAY,qBAAqB,SAAS,MAAM,MAAO,QAAO,KAAK,0BAA0B,SAAS,QAAQ,IAAI,kCAAkC,QAAQ,IAAI,6CAA6C,uBAAuB,mCAAoC,OAAO,wBAAuB,2BAA4B,GAAG,OAAO,gBAAoB,IAAI,GAAI,UAAQ,OAAO,gBAAmB,KAAK,iBAAiB,MAAO,gBAAc,GAAG,MAAA,KAAI,sDAAsD,GAAU,GAAO,MAAA,oBAAyB,GAAG,GAAI,YAAW,GAAG,0BAA0B,QAAQ,cAAkB,wBAAuB,WAAW,KAAK,CAAC,KAAK,WAAW,wBAAwB,GAAI,eAAc,EAAM,iCAAiC,EAAM,iCAAiC,EAAE,gCAAgC,WAAW,oBAAoB,qBAAqB,WAAW,WAAW,EAAE,oBAAoB,oBAAoB,EAAE,oBAAoB,oBAAoB,EAAE,cAAc,WAAW,iCAAiC,oBAAoB,iCAAiC,oBAAoB,OAAO,uBAA0B,uBAAuB,GAAI,aAAY,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,QAAQ,IAAI,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,GAAG,OAAO,GAAG,MAAM,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,GAAG,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,GAAG,KAAK,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,GAAG,UAAU,GAAG,QAAQ,IAAI,QAAQ,EAAE,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,IAAI,aAAa,IAAI,WAAW,GAAG,QAAQ,GAAG,aAAa,EAAE,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,IAAI,aAAa,GAAG,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,IAAI,aAAa,GAAG,YAAY,GAAG,SAAS,EAAE,aAAa,GAAG,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,IAAI,cAAc,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,IAAI,OAAO,IAAI,OAAO,GAAG,OAAO,GAAG,QAAQ,IAAI,UAAU,IAAI,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,WAAW,GAAG,SAAS,KAAS,iCAAiC,MAAM,gCAAgC,KAAK,QAAO,GAAG,MAAM,GAAG,KAAK,mBAAmB,QAAQ,KAAK,IAAM,OAAM,EAAE,MAAM,IAAI,GAAG,QAAO,EAAE,MAAO,GAAK,QAAO,YAAW,QAAM,UAAS,GAAI,uBAAsB,QAAQ,KAAK,oBAAoB,kCAAkC,GAAO,gBAAgB,EAAE,GAAG,uBAAuB,MAAM,GAAI,YAAW,QAAQ,gBAAgB,oBAAoB,kCAAkC,EAAE,sBAAsB,GAAG,GAAG,YAAY,uBAAuB,GAAE,OAAM,gBAAgB,EAAK,QAAO,GAAE,MAAO,GAAG,GAAI,KAAI,QAAQ,OAAO,oBAAoB,MAAM,EAAE,QAAO,GAAG,KAAK,EAAE,MAAO,KAAI,gBAAgB,KAAK,+CAA+C,IAAI,OAAO,uBAA0B,uBAAuB,uBAAuB,aAAa,GAAG,uBAAuB,KAAK,uFAAuF,GAAG,CAAC,YAAY,KAAK,oDAAoD,oBAAoB,YAAY,IAAI,GAAG,EAAE,GAAI,SAAQ,QAAQ,SAAS,aAAa,QAAQ,OAAO,YAAY,QAAQ,eAAe,SAAS,QAAQ,eAAe,OAAO,QAAQ,eAAe,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,OAAO,QAAQ,OAAU,yBAAyB,aAAa,GAAG,uBAAuB,KAAK,yFAAyF,GAAG,CAAC,YAAY,KAAK,sDAAsD,GAAI,SAAQ,QAAQ,SAAS,aAAa,QAAQ,OAAO,YAAY,CAAC,IAAM,WAAW,0BAA0B,aAAa,GAAG,uBAAuB,KAAK,0FAA0F,GAAG,CAAC,YAAY,KAAK,uDAAuD,oBAAoB,YAAY,IAAI,GAAG,EAAE,GAAI,SAAQ,QAAQ,SAAS,aAAa,GAAG,SAAS,GAAI,QAAO,QAAQ,OAAO,QAAQ,mBAAmB,SAAS,GAAI,SAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,YAAY,EAAE,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,WAAW,uBAAuB,QAAQ,gBAAgB,CAAC,sBAAsB,GAAG,4CAA4C,QAAQ,kBAAkB,oBAAoB,WAAiC,OAAlB,iBAAgB,EAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAG,QAAQ,uBAAuB,QAAQ,gBAAgB,MAAM,OAAQ,GAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,oBAAoB,QAAQ,gBAAgB,EAAE,GAAG,EAAE,oBAAoB,QAAQ,gBAAgB,IAAI,GAAG,QAAQ,gBAAgB,GAAI,SAAQ,QAAQ,gBAAgB,IAAI,oBAAoB,SAAS,GAAG,QAA4B,OAAhB,WAAU,MAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,oBAAoB,UAAU,EAAE,GAAG,EAAE,QAAQ,MAAM,oBAAoB,QAAQ,gBAAgB,KAAK,EAAE,WAAW,QAAQ,MAAM,oBAAoB,QAAQ,gBAAgB,IAAI,EAAE,QAAQ,iBAAiB,QAAQ,MAAM,oBAAoB,QAAQ,gBAAgB,IAAI,EAAE,KAAK,WAAW,aAAa,SAAS,GAAG,aAAa,KAAK,gBAAgB,aAAa,gBAAgB,WAAW,GAAG,QAAQ,eAAe,MAAM,KAAM,QAAQ,aAAa,OAAO,GAAG,QAAQ,aAAa,QAAQ,QAAQ,aAAa,KAAQ,wBAAwB,kBAAiB,4BAA4B,WAAW,SAAS,UAAU,GAAI,IAAG,gBAAmB,IAAI,SAAQ,MAAM,oBAAoB,GAAG,GAAG,EAAE,UAAU,QAAQ,MAAM,oBAAoB,GAAG,GAAG,EAAE,GAAG,QAAQ,MAAM,oBAAoB,GAAG,IAAI,EAAE,GAAG,QAAQ,MAAM,oBAAoB,GAAG,IAAI,EAAE,GAAG,QAAQ,kBAAkB,uBAAuB,GAAG,EAAE,YAAY,uBAAuB,EAAE,EAAE,GAAG,iBAAiB,EAAK,wBAAwB,YAAY,CAAC,IAAM,WAAY,aAAa,WAAW,QAAQ,kBAAkB,QAAQ,MAAM,oBAAoB,iBAAiB,GAAG,EAAE,IAAI,QAAQ,MAAM,oBAAoB,iBAAiB,GAAG,EAAE,GAAG,uBAAuB,iBAAiB,EAAE,YAAY,iBAAiB,aAAa,EAAE,uBAAuB,EAAE,EAAE,GAAG,YAAY,CAAC,IAAM,gBAAgB,oBAAoB,WAAW,OAAQ,KAAK,SAAQ,UAAU,GAAI,SAAQ,QAAQ,SAAS,GAAM,SAAS,QAAQ,QAAQ,QAAQ,mBAAmB,QAAQ,QAAS,QAAQ,SAAS,GAAG,OAAQ,GAAE,EAAE,EAAE,QAAQ,cAAc,OAAO,EAAE,GAAG,GAAI,QAAO,QAAQ,cAAc,GAAG,OAAO,YAAY,QAAQ,cAAc,GAAG,OAAQ,GAAE,EAAE,EAAE,QAAQ,eAAe,OAAO,EAAE,GAAG,GAAI,QAAO,QAAQ,eAAe,GAAO,QAAQ,OAAO,QAAQ,QAAQ,eAAe,SAAS,OAAO,YAAY,QAAQ,eAAe,IAAI,eAAe,SAAS,SAAS,GAAI,SAAe,GAAG,QAAQ,kBAAkB,GAAI,WAAU,oBAAoB,QAAQ,iBAAiB,KAAK,GAAG,oBAAoB,QAAQ,iBAAiB,KAAK,GAAG,EAAE,MAAM,WAAW,MAAM,QAAQ,kBAAkB,QAAQ,iBAAiB,EAAK,QAAQ,mBAAmB,QAAQ,WAAU,MAAM,QAAQ,WAAW,QAAQ,UAAU,EAAK,QAAQ,QAAO,SAAQ,OAAO,QAAQ,QAAM,mBAAmB,SAAS,QAAQ,MAAO,SAAQ,SAAS,OAAO,QAAQ,QAAQ,QAAQ,cAAc,KAAK,QAAQ,QAAQ,eAAe,OAAO,QAAQ,eAAe,QAAQ,QAAQ,GAAG,QAAQ,eAAe,OAAO,SAAS,OAAO,QAAQ,QAAW,sBAAsB,SAAS,SAAQ,uBAAuB,SAAS,OAAO,mBAAmB,OAAO,UAAU,SAAS,GAAG,GAAI,GAAE,EAAE,KAAY,IAAI,EAAE,IAAqG,GAA3F,OAAO,SAAQ,SAAQ,oCAAoC,OAAO,QAAQ,kBAAoB,EAAE,cAAiB,EAAE,cAAiB,iBAAiB,GAAI,QAAO,QAAQ,SAAS,EAAE,cAAiB,OAAQ,OAAO,OAAO,YAAY,EAAE,KAAK,EAAE,cAAsB,QAAQ,MAAM,0CAA0C,IAAI,uBAAuB,EAAE,aAAgB,uCAAuC,QAAQ,oCAAoC,OAAU,OAAO,GAAG,MAAM,8BAA+B,uDAAuD,MAAM,cAAe,eAAe,EAAE,cAAc,MAAM,gBAAiB,iBAAiB,EAAE,gBAAmB,MAAM,aAAc,cAAc,EAAE,gBAAmB,MAAM,eAAgB,gBAAgB,EAAE,gBAAmB,MAAM,SAAU,OAAO,OAAO,GAAQ,mBAAkB,kBAAkB,QAAW,OAAO,YAAY,QAAO,aAAa,MAAO,QAAO,oBAAoB,MAAM,QAAS,IAAI,UAAU,EAAE,SAAY,KAAK,EAAE,cAAiB,MAAM,WAAY,IAAI,UAAU,EAAE,SAAY,KAAK,EAAE,cAAiB,MAAM,QAAS,MAAM,UAAU,EAAE,SAAY,KAAK,EAAE,cAAiB,MAAM,QAAQ,GAAI,UAAS,OAAO,SAAS,QAAQ,KAAK,oBAAoB,OAAO,QAAQ,OAAO,IAAI,GAAM,UAAU,QAAQ,mBAAmB,YAAiB,OAAM,aAAc,QAAQ,mBAAmB,QAAgB,MAAM,iBAAkB,QAAQ,sBAAsB,EAAE,MAAc,EAAE,KAAK,SAAS,eAAgB,OAAO,YAAY,EAAE,MAAW,IAAI,kCAAkC,KAAK,QAAQ,oCAAoC,QAAW,OAAO,QAAQ,SAAS,GAAG,IAAI,0BAA0B,EAAE,SAAS,IAAI,EAAE,OAAO,KAAK,EAAE,UAAa,qBAAqB,QAAO,GAAG,UAAU,SAAS,OAAM,OAAO,UAAU,CAAC,eAAc,OAAO,GAAG,QAAQ,SAAS,OAAM,OAAO,QAAQ,SAAQ,OAAO,GAAG,OAAO,SAAS,OAAM,QAAQ,IAAI,qDAAoD,OAAO,YAAY,CAAC,IAAM,OAAO,UAAY,OAAO,qBAAwB,YAAW,WAAwB,WAAwB,aAA4B,kBAAmC,qBAAqB,WAAW,GAAI,eAAc,WAAW,6CAA6C,QAAQ,cAAc,KAAK,GAAI,QAAO,iBAAiB,aAAa,WAAuI,MAAzH,SAAQ,cAAc,QAAQ,GAAG,SAAQ,uBAAuB,QAAQ,uBAAuB,QAAQ,cAAc,KAAO,QAAQ,cAAc,OAAO,EAAS,QAAQ,cAAc,MAAkB,MAAM,aAAa,SAAS,OAAqC,OAA1B,GAAE,YAAY,MAAM,MAAY,YAAY,MAAM,GAAE,IAAK,6BAA6B,SAAS,UAAU,WAAW,SAAS,SAAS,UAAU,SAAS,aAAa,UAAU,OAAO,oBAAuB,oBAAoB,4BAA4B,MAAO,eAAc,OAAO,iBAAoB,iBAAiB,wBAAwB,UAAU,SAAS,KAAK,OAAM,MAAM,qBAAqB,aAAa,WAAW,SAAS,CAAC,SAAS,aAAa,UAAU,mBAAmB,KAAK,MAAK,aAAa,OAAM,qBAAqB,sBAAsB,KAAK,MAAM,GAAI,YAAW,MAAM,KAAK,MAAM,GAAI,qBAAuB,oBAAqB,oBAAoB,WAAW,GAAI,GAAE,QAAQ,SAAY,MAAO,GAAE,GAAG,IAAI,EAAE,GAAG,KAAa,uBAAwB,oBAAoB,WAAW,MAAO,aAAY,MAAM,OAAO,+BAA0C,MAAO,UAAU,YAAa,oBAAoB,QAAa,oBAAoB,WAAW,MAAO,aAAY,OAAO,kBAAkB,OAAO,MAAA,qBAAoB,qBAAqB,GAAG,MAAa,MAAM,iBAAiB,MAAK,KAAK,GAAG,uBAAuB,MAAO,qCAAoC,EAAE,EAAE,MAAK,KAAK,WAAW,QAAQ,CAAC,KAAK,MAAK,MAAU,0CAA0C,eAAe,cAAc,GAAG,gBAAgB,aAAc,YAAY,CAAC,IAAM,wCAAwC,uBAAwB,YAAY,CAAC,aAAe,eAAe,IAAM,4BAA4B,GAAI,SAAQ,QAAQ,SAAS,gBAAoB,OAAO,SAAS,QAAQ,OAAO,GAAG,CAAC,OAAQ,OAAO,OAAO,YAAY,CAAC,IAAM,uBAAuB,MAAO,GAAE,kBAAkB,QAAQ,2DAA2D,eAAe,WAAW,eAAe,eAAe,EAAE,UAAU,UAAU,EAAE,gCAAgC,KAAK,IAAI,SAAS,GAAG,MAAM,GAAG,KAAK,mBAAmB,QAAQ,KAAK,GAAK,MAAM,IAAI,GAAG,uBAAuB,GAAI,KAAI,QAAQ,KAAK,oBAAoB,MAAM,EAAE,IAAI,SAAS,GAAG,MAAM,YAAY,MAAM,IAAI,GAAG,MAAM,YAAY,MAAM,GAAG,GAAG,MAAM,KAAK,MAAO,GAAE,KAAK,6CAA6C,SAAS,GAAI,WAAU,QAAQ,KAAK,oBAAoB,MAAM,GAAG,GAAG,KAAK,UAAU,MAAM,GAAG,GAAI,MAAK,YAAY,MAAU,KAAK,KAAK,QAAQ,QAAQ,MAAM,oBAAoB,kCAAkC,EAAE,MAA8B,OAApB,gBAAe,KAAW,MAAM,iBAAuC,GAAvB,KAAK,YAAY,MAAS,KAAK,KAAM,MAAM,IAAI,+CAA+C,KAAK,QAAQ,KAAK,oBAAoB,kCAAkC,GAAG,MAAO,IAAG,8CAA8C,MAAO,kCAAiC,EAAE,8CAA8C,MAAO,kCAAiC,EAAE,gCAAgC,KAAK,IAAI,KAAK,mBAAmB,WAAW,KAAK,IAAI,IAAI,KAAK,yCAAyC,MAAO,WAAU,oBAAuB,6CAA6C,MAAM,MAAgH,OAAtG,aAAY,UAAU,OAAO,EAAM,OAAM,YAAgB,KAAK,WAAW,YAAY,GAAO,EAAE,MAAM,EAAU,EAAE,EAAE,EAAE,YAAY,IAAK,oBAAoB,EAAE,GAAG,UAAU,EAAE,GAAG,GAAI,KAAI,0CAA0C,MAAM,YAAY,KAAK,MAAM,MAAA,cAAa,QAAc,IAAI,GAAI,gDAA+C,GAAG,0BAA0B,OAAO,KAAS,iBAAiB,OAAO,kBAAiB,MAAM,IAAG,GAAI,MAAK,iBAAiB,MAAM,KAAK,OAAO,EAAS,OAAH,IAAS,GAAG,mBAAmB,WAAc,KAAK,KAAK,KAAK,IAAK,KAAI,IAAI,EAAE,CAAC,EAAE,KAAK,KAAK,oBAAoB,KAAK,IAAI,KAAK,GAAO,KAAI,IAAI,EAAE,CAAC,EAAE,KAAK,KAAK,oBAAoB,KAAK,IAAI,KAAK,GAAG,MAAO,MAAK,+CAA+C,MAAM,YAAY,MAAM,+CAA+C,OAAO,YAA0B,OAAV,GAAE,MAAM,EAAU,EAAE,EAAE,EAAE,YAAY,IAAK,+CAA+C,GAAG,oBAAoB,EAAE,GAAG,GAAI,cAAa,MAAM,EAAM,MAAM,aAAyC,WAAW,CAAC,MAAM,GAA9C,qBAAqB,OAA4B,GAAG,cAAc,GAAI,QAAO,+CAA+C,GAAO,UAAU,+CAA+C,GAAO,UAAU,iBAAiB,OAAO,WAAW,MAAO,OAAK,MAAM,KAAK,WAAW,MAAO,OAAK,MAAM,KAAK,gDAAgD,qCAAqC,MAAO,oBAAmB,OAAO,mCAAmC,MAAM,IAAI,MAAA,YAAW,KAAK,KAAK,QAAO,WAAW,QAAQ,IAAI,2BAA2B,WAAW,QAAe,QAAQ,KAAK,iCAAiC,eAAe,cAAc,gBAAgB,EAAE,GAAI,SAAQ,4BAA4B,GAAG,eAAe,QAAS,MAAO,GAAM,GAAI,eAAc,MAAU,YAAY,WAAW,GAAG,cAAc,YAAa,MAAO,GAA+B,OAArB,aAAY,SAAiB,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,GAAI,mBAAkB,QAAS,GAAE,GAAG,SAAS,kBAAkB,KAAK,IAAI,kBAAkB,cAAc,WAAW,GAAI,SAAQ,KAAK,IAAI,YAAY,QAAQ,KAAK,IAAI,YAAY,cAAc,mBAAmB,gBAAoB,YAAY,0BAA0B,SAAS,GAAG,YAAa,MAAO,GAAM,MAAO,GAAM,GAAI,UAAS,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,WAAW,EAAE,0BAA0B,KAAK,gBAAgB,KAAK,gBAAgB,KAAK,+BAA+B,GAAM,wBAAwB,WAAW,OAAQ,GAAE,SAAS,cAAc,OAAO,EAAE,GAAG,EAAE,EAAE,EAAG,SAAS,eAAe,GAAG,SAAS,cAAc,GAAG,SAAS,cAAc,IAAI,6BAA6B,WAAe,SAAS,gCAAgC,YAAW,KAAK,SAAS,yBAAyB,SAAS,+BAA+B,KAAO,cAAc,GAAG,UAAU,SAAS,eAAe,WAAW,UAAU,gCAAgC,KAAK,MAAM,GAAG,KAAK,QAAQ,KAAK,OAAO,MAAO,GAAM,OAAQ,MAAK,MAAM,GAAG,KAAK,KAAI,KAAK,IAAG,MAAO,GAAM,MAAO,GAAK,OAAQ,KAAK,UAAS,eAAe,GAAI,MAAK,SAAS,cAAc,GAAG,GAAG,KAAK,gBAAgB,gBAAgB,uBAAuB,KAAK,SAAS,UAAW,OAAQ,SAAS,cAAc,KAAK,CAAC,eAA8B,WAAsB,WAAoB,SAAS,cAAc,KAAK,SAAS,EAAE,GAAG,MAAO,GAAE,WAAW,EAAE,cAAc,oBAAoB,SAAS,gBAAgB,OAAQ,GAAE,EAAE,EAAE,SAAS,cAAc,OAAO,EAAE,EAAM,SAAS,cAAc,GAAG,gBAAgB,gBAAgB,UAAS,cAAc,OAAO,EAAE,GAAG,EAAE,IAAK,+BAA+B,WAAW,MAAO,UAAS,gBAAgB,SAAS,oBAAoB,qBAAqB,iBAAiB,WAAW,GAAI,SAAS,iCAAyC,OAAQ,GAAE,EAAE,EAAE,SAAS,cAAc,OAAO,EAAE,GAAG,GAAI,MAAK,SAAS,cAAc,GAAG,SAAS,cAAc,OAAO,EAAE,GAAG,EAAE,EAAE,KAAK,eAAe,MAAM,KAAK,KAAK,YAAY,eAAe,EAAE,oBAAoB,KAAK,cAAc,GAAG,0BAA0B,SAAS,OAAO,iBAAiB,OAAQ,GAAE,EAAE,EAAE,SAAS,cAAc,OAAO,EAAE,EAAM,SAAS,cAAc,GAAG,QAAQ,QAAS,EAAC,iBAAiB,iBAAiB,SAAS,cAAc,GAAG,kBAAkB,SAAS,eAAe,MAAQ,eAAe,SAAS,GAAG,GAAI,GAAE,SAAS,cAAc,GAAG,EAAE,OAAO,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,SAAS,cAAc,OAAO,EAAE,IAAI,wBAAwB,SAAS,cAAc,GAAI,gBAAe,SAAwB,OAAO,EAAE,SAAS,eAAe,SAAS,oBAAoB,aAAa,SAAS,mBAAmB,aAAa,YAAY,OAAO,SAAS,mBAAmB,EAAE,SAAS,gBAAgB,GAAG,aAAa,aAAc,aAAa,kBAAkB,eAAe,aAAa,OAAO,iBAAiB,aAAa,gBAAgB,eAAe,aAAa,YAAY,SAAS,cAAc,KAAK,cAAc,SAAS,mCAAoC,QAAQ,GAAE,EAAE,EAAE,SAAS,cAAc,OAAO,EAAE,EAAM,SAAS,cAAc,GAAG,QAAQ,aAAa,QAAQ,SAAS,cAAc,GAAG,iBAAiB,aAAa,iBAAiB,SAAS,eAAe,MAAS,+BAA+B,SAAS,aAAa,iBAAiB,YAAY,UAAU,UAAU,GAAI,UAAS,YAAgB,QAAQ,WAAW,IAAI,oBAAoB,SAAS,GAAG,YAAY,oBAAoB,QAAQ,GAAG,GAAG,UAAU,oBAAoB,QAAQ,GAAG,GAAG,SAAS,mCAAmC,aAAa,UAAU,iBAAiB,UAAU,SAAS,aAAa,WAAW,gCAAgC,SAAS,cAAc,OAAO,kBAAmB,GAAE,MAAO,OAAO,GAAE,MAAO,SAAQ,4CAA4C,MAAO,gBAAe,qBAAqB,SAAS,QAAQ,MAAI,QAAmB,QAAQ,OAAa,UAAa,QAAQ,OAAa,UAAiB,QAAQ,OAAO,SAAS,OAAO,SAAS,GAAtH,IAA0H,kBAAkB,WAAW,MAAO,UAAS,mBAAmB,SAAS,0BAA0B,yBAAyB,UAAU,GAAI,QAAO,gBAAgB,UAAU,EAAM,QAAQ,QAAQ,QAAQ,MAAA,cAAa,SAAS,QAAQ,QAAe,QAAQ,kEAAkE,aAAa,aAAa,MAAM,QAAQ,GAAI,UAAS,YAAgB,QAAQ,WAAW,IAAQ,gBAAgB,EAAK,cAAc,iBAAgB,gBAAgB,eAAc,oBAAoB,SAAS,GAAG,gBAAgB,oBAAoB,QAAQ,GAAG,GAAG,MAAM,oBAAoB,QAAQ,GAAG,GAAG,OAAO,mCAAmC,aAAa,UAAU,EAAE,gBAAgB,SAAS,aAAa,UAAU,+DAA+D,aAAa,aAAa,MAAM,QAAQ,aAAa,aAAa,aAAa,cAAc,GAAG,yDAAyD,aAAa,aAAa,MAAM,QAAQ,kCAAkC,SAAS,MAAO,SAAQ,EAAE,aAAa,SAAS,QAAQ,GAAI,oBAAmB,CAAC,EAAE,MAAO,WAAW,YAAY,SAAS,EAAE,MAAO,SAAS,YAAY,OAAO,GAAG,2BAA2B,QAAQ,OAAO,yBAAyB,QAAQ,GAAI,YAAW,mBAAmB,SAAU,OAAO,WAAW,YAAY,SAAS,cAAc,QAAQ,QAAW,MAAO,YAAW,iCAAiC,QAAQ,MAAO,mBAAkB,QAAQ,4DAA4D,OAAO,MAAM,QAAQ,GAAI,QAAO,wBAAwB,QAAQ,GAAG,CAAC,OAAO,MAAM,GAA2I,GAArI,OAAO,iBAAiB,qBAAoB,OAAO,iBAAiB,GAAG,MAAM,oBAAoB,OAAO,gBAAgB,GAAG,GAAG,QAAU,OAAO,iBAAiB,CAAC,OAAO,6BAAgC,OAAO,iBAAgB,QAAO,OAAO,iBAAgB,GAAI,oBAAmB,GAAM,GAAG,OAAO,aAAa,OAAO,YAAY,OAAO,GAAI,cAAa,OAAO,YAAY,MAAM,aAAa,MAAM,mBAAmB,aAAa,KAAK,GAAG,aAAa,KAAK,GAAG,aAAa,KAAK,OAAO,OAAO,aAAa,KAAK,OAAO,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,OAAU,oBAAoB,OAAO,YAAY,MAAM,SAAS,EAAE,EAAE,MAAM,gBAAiB,OAAO,iBAAiB,GAAI,cAAa,oBAAoB,OAAO,gBAAgB,GAAG,GAAG,MAAA,uDAAsD,aAAa,OAAO,MAAM,QAAe,MAAO,OAAM,GAAG,MAAO,GAAE,yDAAyD,OAAO,MAAM,QAAQ,MAAG,wBAA8B,oCAAoC,EAAE,EAAE,OAAO,MAAM,QAAe,mDAAmD,OAAO,MAAM,QAAQ,6CAA6C,OAAO,MAAM,QAAQ,GAAI,QAAO,wBAAwB,QAAQ,MAAG,QAAe,mDAAmD,OAAO,MAAM,QAAoB,gDAAgD,OAAO,MAAM,QAAS,+CAA+C,WAAW,UAAU,UAAU,EAAE,qCAAqC,SAAS,MAAM,SAAS,SAAS,EAAE,KAAK,KAAK,EAAE,+CAA+C,KAAK,GAAI,KAAI,IAAI,aAAa,0BAA0B,GAAG,IAAK,MAAA,KAAI,oBAAuB,SAAS,MAAM,SAAS,IAAI,yBAA4B,MAAM,UAAU,IAAI,oBAAuB,SAAS,KAAK,MAAM,OAAM,WAAW,IAAI,yBAA4B,KAAK,MAAM,OAAM,YAAY,IAAI,sBAAyB,SAAS,KAAK,OAAM,KAAK,QAAQ,WAAW,IAAI,2BAA8B,KAAK,OAAM,KAAK,QAAQ,YAAmB,EAAG,gDAAgD,KAAK,GAAI,KAAI,IAAI,aAAa,2BAA2B,GAAG,IAAK,MAAA,KAAI,kBAAqB,WAAW,MAAO,KAAI,wBAA2B,IAAI,kBAAqB,SAAS,KAAK,IAAI,qBAAwB,MAAM,IAAI,gBAAmB,SAAS,KAAK,IAAI,mBAAsB,MAAM,IAAI,cAAiB,SAAS,KAAK,MAAO,KAAI,iBAAoB,MAAa,EAAG,2CAA2C,KAAK,GAAI,KAAI,IAAI,aAAa,sBAAsB,GAAG,IAAK,MAAA,KAAI,YAAe,SAAS,EAAE,MAAM,IAAI,iBAAoB,EAAE,OAAc,EAAG,GAAI,IAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,GAAG,cAAc,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,KAAK,kBAAkB,GAAG,gBAAgB,GAAG,aAAa,GAAG,YAAY,GAAG,gBAAgB,EAAE,KAAK,WAA8E,OAA/D,qBAAoB,GAAI,cAAa,GAAG,uBAA+B,EAAE,EAAE,EAAE,GAAG,sBAAsB,IAAK,GAAG,yBAAyB,GAAG,oBAAoB,SAAS,EAAE,EAAE,GAAkE,OAA3D,mBAAkB,GAAI,YAAW,GAAG,uBAA+B,EAAE,EAAE,EAAE,GAAG,sBAAsB,IAAK,GAAG,uBAAuB,GAAG,kBAAkB,SAAS,EAAE,EAAE,IAAK,YAAY,SAAqB,WAAe,GAAG,WAAW,IAAG,UAAU,YAAY,SAAS,SAAS,OAA4B,OAAjB,KAAI,GAAG,UAAkB,EAAE,MAAM,OAAO,EAAE,IAAI,IAAK,MAAM,GAAG,KAAK,MAAO,MAAK,sBAAsB,IAAI,yBAAyB,CAAC,GAAG,uBAAuB,CAAC,GAAG,UAAU,SAAS,OAAO,OAAM,OAAO,QAAsB,OAAV,QAAO,GAAW,EAAE,EAAE,EAAE,OAAM,EAAE,GAAG,GAAI,KAAI,OAAO,oBAAoB,OAAO,EAAE,GAAG,GAAG,GAAG,QAAQ,aAAa,oBAAoB,OAAO,EAAE,GAAG,GAAG,IAAI,EAAE,OAAU,KAAK,MAAO,SAAQ,cAAc,SAAS,OAAO,wBAAwB,GAAI,KAAI,OAAO,WAAW,QAAQ,wBAAwB,GAAG,CAAC,IAAI,MAAO,GAAE,GAAI,QAAO,GAAG,gBAAgB,IAAI,wBAAwB,MAAO,SAAQ,gBAAgB,SAAS,IAAI,wBAAwB,GAAI,QAAO,QAAQ,GAAG,oBAAoB,OAAO,GAAG,GAAG,gBAAgB,GAAI,SAAQ,CAAC,OAAc,WAAW,uBAAuB,QAAQ,uBAAuB,aAAa,MAAM,KAAK,MAAG,KAAI,QAAO,KAAI,OAAO,YAAY,SAAQ,GAAG,SAAS,QAAQ,QAAW,OAAO,wBAAuB,2BAA4B,aAAa,uBAAuB,4BAA2B,GAAG,eAAe,SAAgB,QAAQ,mBAAmB,SAAS,eAAe,MAAA,IAAG,eAAe,GAAG,SAAS,eAAe,OAAO,IAAI,MAAM,GAAG,gBAAgB,GAAG,eAAe,MAAY,CAAE,gBAAe,CAAC,QAAQ,WAAW,SAAS,eAAe,MAAO,IAAG,SAAS,gBAAgB,cAAc,SAAS,eAAkB,GAAG,iBAAiB,GAAG,SAAS,gBAAe,IAAG,eAAe,MAAQ,MAAO,WAAW,UAAS,SAAS,0BAA0B,GAAG,SAAS,eAAe,MAAM,QAAW,GAAG,SAAS,gBAAgB,GAAG,SAAS,eAAe,MAAM,QAAO,IAAG,SAAS,eAAe,MAAM,OAAO,YAAY,QAAU,MAAM,GAAG,SAAS,eAAe,QAAQ,GAAG,SAAS,eAAe,MAAM,eAAe,SAAS,SAA+C,GAAlC,SAAQ,SAAQ,GAAG,gBAAkB,CAAA,QAAQ,oBAA0B,QAAQ,mBAAmB,GAAK,GAAI,QAAM,QAAQ,MAAM,sCAAsC,QAAO,uCAAuC,QAAO,kCAAkC,QAAO,OAAM,sBAAsB,OAAM,aAAa,4BAA4B,GAAI,gCAA+B,CAAC,oBAAoB,yBAAyB,2BAA2B,0BAA0B,gCAAgC,sBAAsB,yBAAyB,iCAAiC,iBAAiB,qBAAqB,yBAAyB,2BAA2B,gCAAgC,mBAAmB,yBAAyB,qBAAqB,iCAAiC,8BAA8B,2BAA2B,WAAW,gCAAgC,2BAA2B,+BAA+B,gCAAgC,yBAAyB,qCAAqC,kCAAkC,yCAA6C,KAAK,OAAM,0BAA0B,GAAG,KAAK,QAAQ,SAAS,KAAQ,+BAA+B,QAAQ,MAAM,IAAI,OAAM,aAAa,SAAS,qBAAqB,SAAS,SAA0O,OAA7N,IAAE,GAAG,SAAS,SAAa,OAAO,GAAG,aAAa,SAAS,CAAC,SAAS,GAAG,iBAAiB,EAAE,mBAAmB,GAAG,0BAA0B,IAAQ,OAAO,OAAO,SAAa,YAAY,MAAM,oBAAoB,GAAE,OAAe,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,GAAI,GAAE,MAAM,iBAAiB,GAAE,GAAO,KAAK,EAAE,KAAK,OAAO,iBAAiB,KAAK,IAAI,OAAO,iBAAiB,KAAK,OAAO,GAAM,KAAK,MAAM,KAAK,KAAK,MAAK,KAAK,MAAM,EAAE,KAAK,YAAY,OAAM,GAAI,KAAI,MAAM,mBAAmB,GAAE,MAAM,GAAG,KAAK,GAAI,IAAG,GAAG,SAAS,GAAG,UAAU,OAAO,MAAM,CAAC,EAAE,KAAK,IAAI,GAAG,SAAS,IAAI,IAAI,OAAQ,GAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,GAAI,GAAE,KAAK,IAAI,EAAE,IAAI,IAAI,MAAM,mBAAmB,GAAE,GAAG,GAAG,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,IAAI,SAAa,qCAAqC,CAAC,UAAU,YAAY,oBAAoB,6CAA6C,OAAO,YAAY,GAAI,mBAAkB,GAAO,EAAE,YAAY,EAAE,kBAAkB,MAAS,CAAC,CAAC,oBAAoB,EAAG,IAAG,IAAI,kBAAkB,MAAS,CAAC,CAAC,oBAAoB,EAAG,IAAG,IAAI,kBAAkB,QAAW,CAAC,CAAC,oBAAoB,EAAG,IAAG,IAAI,kBAAkB,UAAa,CAAC,CAAC,oBAAoB,EAAG,KAAI,IAAI,kBAAkB,mBAAsB,CAAC,CAAC,oBAAoB,EAAG,KAAI,IAAI,kBAAkB,sBAAyB,CAAC,CAAC,oBAAoB,EAAG,KAAI,IAAI,GAAI,iBAAgB,oBAAoB,EAAG,KAAI,IAAI,kBAAkB,gBAAmB,qCAAqC,iBAAiB,kBAAkB,6BAAgC,CAAC,CAAC,oBAAoB,EAAG,KAAI,IAAI,kBAAkB,aAAa,oBAAoB,EAAG,KAAI,IAAI,kBAAkB,aAAa,oBAAoB,EAAG,KAAI,IAAI,kBAAkB,0BAA0B,oBAAoB,EAAG,KAAI,IAAI,kBAAkB,oBAAoB,oBAAoB,EAAG,KAAI,IAAI,kBAAkB,yBAAyB,oBAAoB,EAAG,KAAI,IAAI,kBAAkB,6BAA6B,oBAAoB,EAAG,KAAI,IAAI,GAAI,QAAO,wBAAwB,QAAQ,GAAG,CAAC,OAAQ,MAAM,GAAG,GAAG,kBAAkB,oBAAqB,MAAM,GAAG,GAAI,eAAc,GAAG,cAAc,OAAO,mBAAmB,MAAO,eAAc,0CAA0C,GAAG,KAAI,MAAO,qCAAoC,GAAG,KAAI,GAAI,MAAK,CAAC,UAAU,SAAS,UAAU,GAAI,aAAY,gEAAgE,MAAO,aAAY,KAAK,UAAU,MAAM,IAAI,eAAe,SAAS,MAAM,gBAAyB,OAAL,IAAG,EAAU,EAAE,MAAM,OAAO,EAAE,GAAG,EAAE,KAAK,GAAI,MAAK,MAAM,GAAM,OAAO,IAAK,MAAM,OAAO,EAAE,GAAW,OAAO,KAAM,OAAM,OAAO,EAAE,GAAG,MAAa,IAAI,OAAM,OAAO,EAAE,GAAG,MAAM,GAAG,eAAgB,KAAK,GAAG,KAAM,MAAM,QAAQ,MAAO,MAAO,QAAO,UAAU,SAAS,MAAM,GAAI,YAAW,KAAK,OAAO,KAAK,IAAI,cAAc,KAAK,OAAO,MAAM,IAAI,MAAA,MAAK,KAAK,eAAe,KAAK,MAAM,KAAK,OAAO,SAAS,IAAG,MAAM,CAAC,CAAC,KAAI,CAAC,YAAY,KAAK,KAAQ,CAAC,MAAM,CAAC,YAAY,MAAK,KAAO,MAAM,eAAe,OAAM,KAAW,YAAW,IAAI,IAAI,MAAM,QAAQ,SAAS,MAAM,GAAI,QAAO,KAAK,UAAU,MAAM,KAAK,OAAO,GAAG,IAAI,OAAO,GAAG,MAAG,CAAC,MAAM,CAAC,IAAW,IAAO,MAAK,KAAI,IAAI,OAAO,EAAE,IAAI,OAAO,IAAU,KAAK,MAAK,SAAS,SAAS,MAAM,GAAG,OAAO,IAAI,MAAM,IAAI,GAAI,WAAU,KAAK,YAAY,KAAK,MAAG,aAAY,GAAU,KAAY,KAAK,OAAO,UAAU,IAAI,QAAQ,SAAS,MAAM,MAAO,MAAK,UAAU,MAAM,IAAI,KAAK,WAAW,GAAI,OAAM,MAAM,UAAU,MAAM,KAAK,UAAU,GAAG,MAAO,MAAK,UAAU,MAAM,KAAK,OAAO,MAAM,SAAS,EAAE,GAAG,MAAO,MAAK,UAAU,EAAE,IAAI,KAAS,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,SAAS,OAAO,MAAM,GAAI,SAAO,SAAS,QAAQ,QAAW,OAAO,GAAG,OAAO,GAAK,WAAS,EAAE,IAAI,KAAK,kBAAkB,QAAO,IAAI,QAAO,OAAO,GAAO,QAAO,KAAK,OAAQ,QAAQ,OAAU,IAAI,WAAW,SAAS,SAAS,EAAE,GAAI,KAAI,oBAAoB,SAAS,QAAQ,GAAG,GAAG,MAAO,MAAK,OAAO,SAAS,KAAK,GAAI,KAAI,aAAa,KAAK,MAAO,MAAK,MAAM,SAAS,IAAI,MAAM,MAAO,OAAM,mBAAmB,IAAI,MAAG,wBAA8B,oCAAoC,EAAE,EAAE,IAAW,EAAE,kBAAkB,GAAG,WAAW,YAAY,OAAO,WAAW,GAAG,uBAAuB,MAAO,qCAAoC,EAAE,EAAE,GAAG,WAAW,YAAY,OAAO,WAAW,mBAAmB,GAAG,IAAI,OAAO,MAAM,GAAG,uBAAuB,MAAO,qCAAoC,EAAE,EAAE,GAAG,IAAI,OAAO,MAAgB,OAAN,KAAI,EAAU,EAAE,EAAE,EAAE,OAAO,KAAyF,OAAhF,KAAI,oBAAoB,IAAI,EAAE,GAAG,GAAO,IAAI,oBAAoB,IAAK,GAAE,EAAE,IAAI,GAAW,EAAE,EAAE,EAAE,IAAI,IAAK,SAAS,UAAU,GAAG,mBAAmB,IAAI,IAAI,KAAK,IAAI,MAAA,qBAAoB,MAAM,GAAG,IAAW,EAAE,8BAA8B,UAAS,GAAI,SAAQ,QAAQ,aAAa,MAAS,UAAQ,UAAU,+BAA+B,QAAQ,KAAQ,QAAQ,eAAe,MAAM,SAAQ,aAAa,IAAG,QAAQ,aAAa,KAAK,WAAW,WAAW,QAAQ,OAAO,wBAAwB,cAAc,GAAG,uBAAuB,KAAK,wFAAwF,GAAI,QAAO,QAAQ,eAAe,GAAG,OAAO,UAAU,OAAU,KAAK,kBAAkB,GAAG,CAAC,aAAa,YAAY,KAAK,kCAAkC,QAAQ,eAAe,KAAK,QAAqC,OAAzB,WAAU,QAAQ,IAAI,GAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAG,oBAAoB,UAAU,EAAE,GAAG,GAAG,EAAE,GAAI,WAAU,aAAa,UAAU,aAAa,UAAc,QAAQ,QAAQ,SAAS,aAAa,aAAa,CAAC,OAAc,UAAU,aAAa,UAAU,UAAU,aAAa,UAAU,kBAAkB,aAAa,kBAAkB,OAAO,aAAa,YAAY,iBAAiB,aAAa,aAAiB,IAAI,QAAQ,kBAAkB,EAAE,QAAQ,MAAM,oBAAoB,IAAK,IAAG,GAAG,GAAG,QAAQ,MAAM,oBAAoB,IAAK,IAAG,GAAG,GAAG,QAAQ,MAAM,oBAAoB,IAAK,IAAG,GAAG,GAAG,QAAQ,MAAM,oBAAoB,IAAK,KAAI,GAAG,aAAa,UAAU,QAAQ,MAAM,oBAAoB,IAAK,MAAK,GAAG,WAAW,QAAQ,MAAM,oBAAoB,IAAK,KAAI,GAAG,GAAG,QAAQ,MAAM,oBAAoB,IAAK,KAAI,GAAG,QAAQ,kBAAkB,QAAQ,MAAM,oBAAoB,IAAK,KAAI,GAAG,IAAI,QAAQ,MAAM,oBAAoB,IAAK,MAAK,GAAG,aAAa,WAAW,QAAQ,MAAM,oBAAoB,IAAK,KAAI,GAAG,aAAa,WAAW,QAAQ,MAAM,oBAAoB,IAAK,KAAI,GAAG,WAAW,QAAQ,MAAM,oBAAoB,IAAK,KAAI,GAAG,GAAG,WAAW,QAAQ,MAAM,oBAAoB,IAAK,KAAI,IAAI,GAAG,aAAa,UAAU,QAAQ,MAAM,oBAAoB,IAAK,KAAI,IAAI,GAAG,aAAa,aAAa,QAAQ,MAAM,oBAAoB,IAAK,KAAI,IAAI,GAAG,aAAa,WAAW,GAAI,aAAY,8BAAkC,cAAc,YAAY,GAAG,QAAQ,MAAM,oBAAoB,IAAK,MAAK,GAAG,eAAe,OAAO,QAAQ,QAAQ,GAAI,KAAI,CAAC,IAAM,MAAM,cAAgB,aAAa,aAAa,IAAM,aAAa,IAAI,iBAAmB,aAAa,YAAY,aAAe,aAAa,YAAY,eAAiB,aAAa,mBAAmB,UAAY,aAAa,UAAU,UAAY,aAAa,WAAW,OAAO,WAAW,WAAW,IAAI,KAAK,YAAY,MAAM,OAAO,YAAY,IAAI,aAAa,eAAkB,OAAO,QAAQ,QAAO,aAAa,MAAO,QAAO,YAAY,gCAAgC,OAAO,OAAO,YAAY,GAAG,CAAC,QAAQ,CAAC,WAAW,MAAO,aAAY,OAAO,GAAG,CAAC,OAAQ,MAAA,KAAI,4DAAmE,YAAY,MAAM,GAAI,OAAK,oBAAoB,OAAO,IAAI,GAAG,GAAG,QAAO,OAAQ,MAAA,KAAI,6CAA6C,OAAO,wEAA+E,YAAY,MAAM,GAAI,aAAY,QAAQ,KAAK,oBAAoB,OAAO,IAAI,IAAI,GAAO,UAAU,QAAQ,KAAK,oBAAoB,OAAO,IAAI,IAAI,GAAG,MAAG,SAAO,qBAAoB,QAAQ,GAAG,aAAe,YAAW,qBAAoB,YAAY,GAAG,WAAiB,EAAE,yBAAyB,MAAO,eAAc,EAAE,OAAO,cAAiB,cAAc,yBAAyB,YAAY,KAAK,cAAc,KAAK,GAAG,MAAO,oBAAoB,YAAa,MAAA,KAAI,uFAA8F,EAAE,GAAG,CAAC,YAAa,MAAA,KAAI,qDAA4D,GAAG,GAAI,cAAa,GAAO,MAAM,EAAE,GAAG,wBAAyB,cAAa,SAAS,GAAG,OAAQ,MAAO,uCAAsC,UAAU,YAAY,KAAK,cAAc,KAAK,GAAG,MAAM,MAAO,OAAM,GAAI,WAAU,EAAM,UAAU,EAAM,SAAS,EAAM,YAAY,EAAM,UAAU,EAAE,GAAG,MAAM,UAAU,oBAAoB,MAAM,GAAG,WAAW,MAAM,UAAU,oBAAoB,KAAK,GAAG,GAAG,SAAS,oBAAoB,KAAK,IAAI,KAAK,EAAE,GAAI,cAAa,oBAAoB,KAAK,IAAI,KAAK,EAAE,GAAG,cAAc,GAAI,iBAAgB,oBAAoB,KAAK,IAAI,GAAO,cAAc,oBAAoB,KAAK,IAAI,GAAO,gBAAgB,QAAQ,oCAAoC,QAAQ,oCAAoC,gBAAgB,uBAAuB,gBAAgB,KAAK,GAAG,KAAK,IAAI,YAAY,oBAAoB,KAAK,IAAI,GAAG,UAAU,oBAAoB,KAAK,IAAI,GAAG,oBAAoB,KAAK,IAAI,GAAG,gBAAgB,oBAAoB,KAAK,IAAI,GAAG,kBAAmB,aAAY,oBAAoB,KAAK,IAAI,GAAG,UAAU,oBAAoB,KAAK,IAAI,OAAS,WAAU,QAAQ,GAAI,mBAAkB,WAAW,EAAK,kBAAmB,UAAU,UAAU,GAAG,WAAgB,YAAW,UAAU,QAAO,UAAU,IAAqC,OAA9B,mBAAiB,QAAQ,KAAa,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,oBAAqB,oBAAkB,GAAG,GAAG,EAAE,oBAAoB,aAAa,GAAG,kBAAiB,oBAAoB,kBAAiB,IAAI,GAAG,kBAAiB,GAAI,SAAQ,kBAAiB,IAAI,oBAAoB,SAAS,GAAG,QAAQ,GAAI,cAAa,CAAC,UAAoB,UAAoB,kBAAoC,YAAwB,UAAoB,SAAkB,aAAa,cAAc,YAAY,kBAAiB,mBAAmB,gBAAgB,IAAQ,cAA2B,MAAG,wBAAwB,cAAa,IAAI,cAAc,YAAY,aAAa,eAAmB,eAAe,cAAqB,EAAE,iBAAiB,GAAG,MAAA,GAAE,CAAC,EAAS,GAAG,EAAG,CAAC,WAAW,EAAG,IAAK,CAAC,UAAU,EAAE,IAAK,kBAAkB,MAAM,GAAG,uBAAuB,MAAO,qCAAoC,EAAE,EAAE,MAAM,OAAO,UAAW,IAAG,MAAO,WAAW,IAAG,GAAI,aAAY,WAAW,MAAO,aAAY,UAAW,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,SAAS,SAAS,OAAO,QAAQ,QAAQ,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,IAAG,MAAO,YAAY,QAAQ,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,SAAS,IAAG,MAAM,OAAQ,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,SAAS,SAAS,QAAQ,QAAQ,SAAS,SAAS,SAAS,QAAQ,IAAG,MAAO,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,GAAE,MAAO,UAAU,QAAQ,QAAQ,IAAG,MAAO,QAAQ,QAAQ,QAAQ,IAAG,MAAO,gBAAgB,QAAQ,GAAE,MAAO,WAAW,QAAQ,IAAG,MAAO,QAAQ,QAAQ,IAAG,MAAO,UAAU,GAAE,MAAO,aAAa,GAAE,MAAO,WAAW,IAAG,MAAO,WAAW,IAAG,MAAO,WAAW,IAAG,MAAO,WAAW,IAAG,MAAO,SAAS,IAAG,MAAO,SAAS,IAAG,MAAO,SAAS,IAAG,MAAO,SAAS,GAAE,MAAO,SAAS,KAAI,MAAO,QAAQ,IAAG,MAAO,QAAQ,GAAE,MAAO,QAAQ,GAAE,MAAO,OAAO,IAAG,MAAO,OAAO,IAAI,MAAG,OAAO,YAAY,UAAgB,UAAU,qBAAwB,EAAY,MAAA,UAAS,IAAU,GAAO,uBAA0D,QAAQ,aAA3C,QAAQ,sBAAgD,GAAI,OAAM,GAAG,OAAO,GAAI,sBAAqB,CAAC,KAAK,QAAQ,gDAAgD,UAAU,SAAS,UAAU,UAAc,cAAc,CAAC,EAAI,eAAe,EAAI,aAAa,EAAI,iCAAiC,EAAI,OAAO,EAAI,kDAAkD,EAAI,uBAAuB,EAAI,uBAAuB,EAAI,oBAAoB,EAAI,mCAAmC,EAAI,mCAAmC,EAAI,uBAAuB,EAAI,8BAA8B,EAAI,sCAAsC,EAAI,wBAAwB,EAAI,oCAAoC,EAAI,sCAAsC,EAAI,4BAA4B,EAAI,iCAAiC,EAAI,UAAU,EAAI,SAAS,EAAI,UAAU,EAAI,eAAe,OAAS,YAAY,OAAO,WAAc,EAAI,qBAAqB,EAAI,sBAAsB,EAAI,gBAAgB,EAAI,cAAc,EAAI,QAAQ,EAAI,SAAS,MAAQ,WAAe,IAAI,aAAa,OAAO,IAAO,IAAI,GAAI,oBAAmB,OAAO,mBAAsB,WAAW,MAAO,oBAAmB,OAAO,mBAAsB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,iBAAiB,OAAO,iBAAoB,WAAW,MAAO,kBAAiB,OAAO,iBAAoB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,aAAa,OAAO,aAAgB,WAAW,MAAO,cAAa,OAAO,aAAgB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,aAAa,OAAO,aAAgB,WAAW,MAAO,cAAa,OAAO,aAAgB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,qBAAqB,OAAO,qBAAwB,WAAW,MAAO,sBAAqB,OAAO,qBAAwB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,eAAe,OAAO,eAAkB,WAAW,MAAO,gBAAe,OAAO,eAAkB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,uBAAuB,OAAO,uBAA0B,WAAW,MAAO,wBAAuB,OAAO,uBAA0B,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,eAAe,OAAO,eAAkB,WAAW,MAAO,gBAAe,OAAO,eAAkB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,gBAAgB,OAAO,gBAAmB,WAAW,MAAO,iBAAgB,OAAO,gBAAmB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,aAAa,OAAO,aAAgB,WAAW,MAAO,cAAa,OAAO,aAAgB,OAAO,IAAO,GAAM,MAAM,KAAK,YAAgB,sBAAsB,OAAO,sBAAyB,WAAW,MAAO,uBAAsB,OAAO,sBAAyB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,YAAY,OAAO,YAAe,WAAW,MAAO,aAAY,OAAO,YAAe,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,qBAAqB,OAAO,qBAAwB,WAAW,MAAO,sBAAqB,OAAO,qBAAwB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,qBAAqB,OAAO,qBAAwB,WAAW,MAAO,sBAAqB,OAAO,qBAAwB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,qBAAqB,OAAO,qBAAwB,WAAW,MAAO,sBAAqB,OAAO,qBAAwB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,gBAAgB,OAAO,gBAAmB,WAAW,MAAO,iBAAgB,OAAO,gBAAmB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,kBAAkB,OAAO,kBAAqB,WAAW,MAAO,mBAAkB,OAAO,kBAAqB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,mBAAmB,OAAO,mBAAsB,WAAW,MAAO,oBAAmB,OAAO,mBAAsB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,4BAA4B,OAAO,4BAA+B,WAAW,MAAO,6BAA4B,OAAO,4BAA+B,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,kBAAkB,OAAO,kBAAqB,WAAW,MAAO,mBAAkB,OAAO,kBAAqB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,yBAAyB,OAAO,yBAA4B,WAAW,MAAO,0BAAyB,OAAO,yBAA4B,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,yBAAyB,OAAO,yBAA4B,WAAW,MAAO,0BAAyB,OAAO,yBAA4B,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,6CAA6C,OAAO,6CAAgD,WAAW,MAAO,8CAA6C,OAAO,6CAAgD,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,gDAAgD,OAAO,gDAAmD,WAAW,MAAO,iDAAgD,OAAO,gDAAmD,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,4CAA4C,OAAO,4CAA+C,WAAW,MAAO,6CAA4C,OAAO,4CAA+C,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,mCAAmC,OAAO,mCAAsC,WAAW,MAAO,oCAAmC,OAAO,mCAAsC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,qCAAqC,OAAO,qCAAwC,WAAW,MAAO,sCAAqC,OAAO,qCAAwC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,oCAAoC,OAAO,oCAAuC,WAAW,MAAO,qCAAoC,OAAO,oCAAuC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,sCAAsC,OAAO,sCAAyC,WAAW,MAAO,uCAAsC,OAAO,sCAAyC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,sCAAsC,OAAO,sCAAyC,WAAW,MAAO,uCAAsC,OAAO,sCAAyC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,sCAAsC,OAAO,sCAAyC,WAAW,MAAO,uCAAsC,OAAO,sCAAyC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,oDAAoD,OAAO,oDAAuD,WAAW,MAAO,qDAAoD,OAAO,oDAAuD,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,sCAAsC,OAAO,sCAAyC,WAAW,MAAO,uCAAsC,OAAO,sCAAyC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,sCAAsC,OAAO,sCAAyC,WAAW,MAAO,uCAAsC,OAAO,sCAAyC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,sCAAsC,OAAO,sCAAyC,WAAW,MAAO,uCAAsC,OAAO,sCAAyC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,sCAAsC,OAAO,sCAAyC,WAAW,MAAO,uCAAsC,OAAO,sCAAyC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,sCAAsC,OAAO,sCAAyC,WAAW,MAAO,uCAAsC,OAAO,sCAAyC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,0CAA0C,OAAO,0CAA6C,WAAW,MAAO,2CAA0C,OAAO,0CAA6C,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,mCAAmC,OAAO,mCAAsC,WAAW,MAAO,oCAAmC,OAAO,mCAAsC,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,qBAAqB,OAAO,qBAAwB,WAAW,MAAO,sBAAqB,OAAO,qBAAwB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,aAAa,OAAO,aAAgB,WAAW,MAAO,cAAa,OAAO,aAAgB,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,IAAO,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,IAAO,MAAM,KAAK,YAAY,OAAO,IAAO,IAAI,OAAO,MAAS,MAAM,OAAO,QAAW,QAAQ,OAAO,QAAW,QAAQ,OAAO,cAAiB,cAAc,OAAO,WAAc,WAAW,OAAO,WAAc,WAAW,GAAI,WAAU,OAAO,KAAQ,SAAS,OAAM,GAAG,UAAW,MAAK,aAAa,GAAI,KAAI,OAAO,qBAAwB,OAAO,qBAAwB,WAAc,KAAI,MAAM,MAAK,SAAS,MAAO,SAAQ,oBAAoB,QAAQ,KAAK,KAAK,aAAa,KAAK,QAAQ,gCAAgC,OAAO,IAAI,KAAK,OAAO,OAAO,sBAAsB,qBAAyB,WAAU,MAAU,WAAU,uBAAsB,YAAW,aAAa,MAAkE,GAA5D,KAAK,MAAM,WAAc,gBAAgB,GAAU,UAAY,gBAAgB,GAAE,OAAO,iBAAoB,WAAiB,WAAU,GAAK,OAAO,UAAa,GAAQ,CAAA,OAAa,eAAc,UAAa,OAAO,sBAAwB,OAAO,uBAA0B,YAAa,OAAO,UAAc,QAAO,UAAa,cAAc,WAAW,WAAW,WAAW,WAAW,OAAO,UAAa,KAAK,GAAG,SAAS,IAAQ,QAA2B,GAAlB,OAAO,IAAO,IAAO,OAAO,QAA0F,IAA3E,MAAO,QAAO,SAAY,YAAW,QAAO,QAAW,CAAC,OAAO,UAAkB,OAAO,QAAW,OAAO,GAAG,OAAO,QAAW,QAAS,MAAI,yBAAuB,eAAc,IAAS,wBAAuB,MAG9hvE,mCAIL,MAAO,UAAY,UAAY,MAAO,SAAW,SAC/C,OAAO,QAAU,8BACV,MAAO,SAAW,YAAc,OAAO,IAC9C,OAAO,GAAI,WAAa,MAAO,iCACxB,MAAO,UAAY,UAC1B,SAAQ,8BAAmC,iCCpBjD,0BAAA,YAAA,CAAA,QAAA,UACA,GAAI,mBAAqB,WACvB,GAAI,YAAa,MAAO,WAAa,aAAe,SAAS,cAAgB,SAAS,cAAc,IAAM,OAC1G,MAAI,OAAO,aAAe,aAAa,YAAa,YAAc,YAEpE,SAAS,oBACP,mBAAoB,oBAAqB,GAE3C,GAAI,QAAO,MAAO,qBAAoB,YAAY,mBAAkB,GAAO,gBAAgB,GAAO,IAAI,IAAI,MAAO,QAAW,OAAO,eAAe,MAAM,iBAAgB,KAAK,OAAO,MAAM,GAAI,YAAW,GAAO,YAAY,iBAAqB,MAAM,SAAS,OAAO,SAAS,KAAM,UAAa,mBAAmB,GAAU,sBAAsB,GAAU,oBAAoB,GAAU,qBAAqB,GAAM,mBAAmB,MAAO,SAAS,SAAS,sBAAsB,MAAO,gBAAgB,WAAW,oBAAoB,MAAO,UAAU,UAAU,MAAO,SAAQ,UAAW,UAAU,MAAO,SAAQ,SAAS,MAAO,SAAS,qBAAqB,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,sBAAsB,GAAI,iBAAgB,GAAG,oBAAoB,MAAM,MAAG,QAAO,WAAsB,OAAO,WAAc,KAAK,iBAAwB,gBAAgB,KAAK,GAAI,OAAM,UAAU,WAAW,eAAmB,OAAW,SAAY,oBAAwB,uBAAuB,gBAAwB,eAAQ,QAAQ,iBAAiB,IAAS,gBAAgB,UAAU,IAAI,MAAM,SAAoB,SAAS,QAAQ,MAAI,SAAO,QAAe,eAAU,UAAS,UAAiB,gBAAQ,SAAS,SAAS,UAAa,UAAiB,OAAO,aAAgB,SAAS,OAAO,KAAK,SAAS,WAAW,SAAoB,UAAU,GAAI,KAAI,MAAM,SAAS,IAAM,MAAI,KAAI,QAAQ,KAAI,GAAI,YAAW,MAAK,QAAO,IAAI,QAAe,KAAQ,QAAQ,KAAQ,OAAO,GAAG,aAAY,QAAQ,KAAQ,GAAG,QAAQ,MAAM,MAAK,WAAW,QAAQ,KAAQ,MAAM,GAAG,QAAQ,GAAM,oBAAoB,SAAS,IAAI,GAAG,CAAE,cAAc,aAAa,KAAM,MAAM,QAAQ,GAAM,qBAAqB,OAAO,MAAM,SAAS,QAAQ,QAAQ,KAAQ,SAAS,OAAO,QAAW,WAAW,MAAM,+BAAsC,qBAAyB,OAAO,OAAM,aAAa,OAAM,SAAoB,GAAG,MAAO,MAAK,KAAI,WAAW,SAAoB,GAAG,GAAI,OAAK,MAAG,OAAO,aAAa,WAAmB,GAAI,YAAW,WAAW,IAAI,OAAK,KAAK,EAAE,UAAU,QAAO,MAAO,QAAO,UAAiB,QAAS,MAAO,aAAY,YAAa,WAAW,WAAmB,MAAO,YAAW,aAAa,YAAW,WAAa,MAAO,OAAO,YAAY,OAAM,SAAS,QAAQ,KAAK,UAAY,MAAO,QAAQ,aAAgB,OAAO,UAAU,aAAY,SAAQ,IAAG,QAAQ,IAAI,MAAM,QAAQ,KAAK,QAAQ,MAAM,MAAO,WAAW,YAAY,SAAS,QAAe,qBAAoB,wBAA0B,uBAAuB,gBAAgB,KAAK,SAAS,KAAa,SAAS,eAAe,iBAAgB,SAAS,cAAc,KAAO,YAAY,iBAAgB,YAAc,gBAAgB,QAAQ,WAAW,EAAG,gBAAgB,gBAAgB,OAAO,EAAE,gBAAgB,YAAY,KAAK,GAAQ,gBAAgB,GAAI,MAAM,SAAoB,KAAK,GAAI,KAAI,GAAI,gBAAe,MAAA,KAAI,KAAK,MAAM,IAAI,IAAO,IAAI,KAAK,MAAa,IAAI,cAAiB,uBAAuB,YAAW,SAAoB,KAAK,GAAI,KAAI,GAAI,gBAAe,MAAA,KAAI,KAAK,MAAM,IAAI,IAAO,IAAI,aAAa,cAAc,IAAI,KAAK,MAAa,GAAI,YAAW,IAAI,YAAW,UAAU,SAAmB,IAAI,OAAO,SAAS,GAAI,KAAI,GAAI,gBAAe,IAAI,KAAK,MAAM,IAAI,IAAM,IAAI,aAAa,cAAc,IAAI,OAAO,WAAsB,GAAG,IAAI,QAAQ,KAAK,IAAI,QAAQ,GAAG,IAAI,UAAU,OAAO,IAAI,UAAU,OAAO,WAAW,IAAI,QAAQ,QAAQ,IAAI,KAAK,OAAO,eAAe,SAAS,OAAO,SAAS,MAAM,QAAa,GAAI,KAAI,OAAO,OAAU,QAAQ,IAAI,KAAK,SAAa,IAAI,OAAO,UAAa,QAAQ,KAAK,KAAK,SAAS,IAAI,MAAO,iBAAoB,gBAAgB,eAAe,MAAM,QAAO,KAAK,gBAAgB,MAAM,gBAAgB,KAAQ,OAAO,WAAa,YAAW,OAAO,WAAgB,OAAO,aAAe,aAAY,OAAO,aAAkB,OAAO,MAAQ,OAAM,OAAO,MAAQ,GAAI,YAAc,OAAO,YAAc,YAAW,OAAO,YAAc,GAAI,eAAiB,OAAO,eAAiB,eAAc,OAAO,eAAoB,MAAO,cAAc,UAAU,IAAI,mCAAmC,GAAI,YAAe,UAAU,GAAI,aAAY,MAAM,CAAC,QAAU,IAAI,QAAU,IAAI,EAAE,QAAU,YAAgB,MAAM,GAAU,WAAW,EAAE,iBAAgB,UAAU,MAAU,WAAW,MAAM,qBAAqB,MAAO,kBAAkB,OAAO,GAAI,OAAK,OAAO,IAAI,OAAO,MAAA,SAAO,MAAK,gCAAgC,MAAM,8BAAqC,MAAK,eAAe,MAAM,WAAW,SAAS,KAAK,MAAM,GAAI,KAAI,CAAC,OAAS,SAAS,KAAK,GAAI,MAAI,EAAE,GAAG,KAAM,MAAuB,MAAM,GAAG,GAAI,KAAK,KAAI,QAAQ,GAAG,EAAE,KAAI,WAAW,KAAK,aAAa,IAAI,KAAI,KAAK,MAAO,OAAK,MAAQ,SAAS,KAAK,GAAI,MAAI,WAAW,IAAI,QAAQ,MAAA,oBAAmB,IAAI,MAAY,OAAM,4BAA4B,MAAK,MAAG,cAAa,SAAgB,aAAa,MAAQ,aAAa,UAAiB,QAAQ,MAAY,KAAI,GAAI,OAAK,SAAS,OAAW,MAAM,GAAO,OAAM,EAAE,GAAG,KAAM,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,KAAK,GAAI,WAAU,IAAI,SAAS,IAAO,UAAc,UAAQ,GAAE,QAAM,aAAY,MAAM,GAAG,UAAU,KAAK,KAAS,MAAM,GAAG,KAAK,GAAK,GAAI,KAAI,MAAK,MAAM,KAAK,OAAO,MAAA,KAAI,mBAAmB,KAAQ,SAAQ,GAAE,aAAa,QAAc,IAAI,eAAe,MAAM,WAAW,SAAS,MAAM,SAAS,UAAU,GAAG,GAAI,aAAY,SAAS,MAAM,SAAS,MAAM,MAAO,QAAO,WAAe,WAAW,aAAa,SAAS,MAAG,aAAY,aAAa,CAAC,KAAa,SAAS,OAAc,WAAW,MAAO,OAAM,MAAM,WAAW,SAAS,UAAU,OAAO,GAAI,aAAY,MAAO,cAAc,YAAY,GAAI,aAAY,QAAQ,OAAU,2BAA2B,KAAK,IAAI,gBAA6D,OAAzC,QAAO,IAAI,eAAmB,OAAO,IAAU,KAAK,SAAS,CAAE,SAAQ,SAAQ,EAAE,OAAO,GAAG,OAAO,IAAI,IAAI,KAAK,UAAU,YAAa,MAAO,aAAY,OAAO,KAAK,SAAS,IAAI,SAAyB,OAAP,KAAI,GAAS,IAAI,SAAQ,GAAI,IAAG,KAAK,OAAO,GAAG,CAAE,IAAG,MAAM,KAAK,OAAO,aAAa,IAAI,SAAS,GAAI,IAAG,KAAK,OAAO,GAAG,GAAI,IAAG,MAAM,KAAK,KAAK,OAAO,aAAc,IAAG,KAAK,EAAE,IAAI,SAAS,GAAI,IAAG,KAAK,OAAO,GAA4F,GAArF,IAAG,MAAM,IAAK,GAAI,IAAG,KAAK,GAAG,IAAI,EAAE,GAAQ,GAAI,IAAG,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,OAAO,GAAM,GAAG,MAAO,KAAK,OAAO,aAAa,SAAS,GAAI,IAAG,GAAG,MAAM,KAAK,OAAO,aAAa,MAAM,IAAI,GAAG,MAAM,GAAG,OAAQ,MAAO,KAAI,sBAAsB,IAAI,gBAAgB,MAAO,KAAI,kBAAkB,OAAO,IAAI,gBAAgB,GAAG,2BAA2B,IAAI,KAAK,OAAO,iBAAiB,GAAG,CAAE,iBAAgB,GAAG,MAAO,GAA0D,OAApD,UAAS,OAAW,OAAO,OAAO,gBAAgB,EAAU,EAAE,EAAE,EAAE,IAAI,OAAO,EAAE,GAAG,GAAI,GAAE,IAAI,WAAW,GAAG,GAAG,GAAG,OAAO,GAAG,OAAO,GAAI,IAAG,IAAI,WAAW,EAAE,GAAG,EAAE,MAAQ,IAAE,OAAO,IAAI,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG,QAAQ,OAAO,MAAM,KAAK,UAAU,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,EAAE,KAAK,UAAU,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,GAAG,KAAK,UAAU,IAAI,GAAG,EAAE,GAAG,KAAK,UAAU,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,GAAG,KAAK,UAAU,IAAI,GAAG,GAAG,GAAG,KAAK,UAAU,IAAI,GAAG,EAAE,GAAG,KAAK,UAAU,IAAI,EAAE,IAAI,MAAA,MAAK,QAAQ,EAAS,OAAO,SAAS,sBAAsB,IAAI,OAAO,iBAAiB,MAAO,mBAAkB,IAAI,OAAO,OAAO,iBAAiB,4BAA4B,OAAM,SAAQ,MAAM,IAAI,OAAM,SAAQ,GAAI,SAAO,MAAM,OAAO,OAAO,QAAQ,OAAO,QAAQ,QAAQ,QAAQ,oCAAoC,KAAK,QAAO,IAAI,OAAO,MAAS,MAAM,GAAI,WAAU,KAAK,OAAO,OAAU,OAAO,GAAI,YAAW,KAAK,OAAO,OAAU,OAAO,GAAI,YAAW,KAAK,OAAO,OAAU,OAAO,GAAI,YAAW,KAAK,OAAO,QAAW,QAAQ,GAAI,aAAY,KAAK,OAAO,QAAW,QAAQ,GAAI,aAAY,KAAK,OAAO,QAAW,QAAQ,GAAI,cAAa,KAAK,OAAO,QAAW,QAAQ,GAAI,cAAa,KAAK,GAAI,wBAAuB,OAAO,gBAAmB,SAAS,8BAA8B,YAAW,KAAM,WAAU,OAAO,IAAG,GAAI,UAAS,WAAU,QAAQ,GAAG,MAAO,WAAU,YAAY,SAAS,QAAQ,SAAS,GAAI,OAAK,SAAS,KAAQ,MAAO,QAAO,SAAa,SAAS,MAAM,OAAW,OAAO,UAAa,OAAW,OAAO,WAAc,MAAK,SAAS,KAAW,MAAK,SAAS,MAAM,OAAU,KAAK,SAAS,MAAO,GAAI,cAAa,GAAO,WAAW,GAAO,WAAW,GAAO,cAAc,GAAO,mBAAmB,GAAU,cAAc,GAAM,kBAAkB,GAAG,OAAO,OAAsF,IAAxE,MAAO,QAAO,QAAW,YAAW,QAAO,OAAU,CAAC,OAAO,SAAiB,OAAO,OAAU,QAAQ,YAAY,OAAO,OAAU,SAAU,qBAAqB,cAAc,uBAAuB,mBAAmB,GAAK,qBAAqB,YAAY,mBAAmB,qBAAqB,YAAY,uBAAuB,cAAc,GAAK,mBAAmB,GAAG,OAAO,QAA0F,IAA3E,MAAO,QAAO,SAAY,YAAW,QAAO,QAAW,CAAC,OAAO,UAAkB,OAAO,QAAW,QAAQ,aAAa,OAAO,QAAW,SAAU,qBAAqB,eAAe,qBAAqB,IAAI,aAAa,QAAQ,IAAI,sBAAsB,IAAI,cAAc,QAAQ,IAAI,GAAI,WAAU,KAAK,KAAS,WAAW,KAAK,MAAU,gBAAgB,EAAM,qBAAqB,KAAS,sBAAsB,KAAK,0BAA0B,IAAI,kBAAqB,OAAO,wBAA2B,OAAO,uBAA0B,iBAAkB,6BAA6B,IAA6G,GAAzG,kBAAqB,OAAO,wBAA2B,OAAO,uBAA0B,iBAAoB,iBAAiB,GAAM,wBAAuB,MAAM,eAAc,sBAAsB,qBAAqB,MAAQ,wBAAuB,GAAI,UAAS,sBAAsB,sBAAsB,KAAK,YAAa,OAAO,gBAAmB,GAAG,OAAO,gBAAmB,GAAG,eAAe,MAAM,KAAG,QAAO,SAAY,OAAO,QAAW,MAAM,MAAM,GAAG,IAAI,MAAM,IAAI,MAAM,MAAM,GAAK,WAAW,EAAE,KAAK,SAAS,KAAK,+CAAqD,GAAI,aAAY,aAAa,MAAM,mBAAmB,IAAI,QAAQ,MAAO,QAAO,UAAU,WAAW,IAAI,WAAW,QAAQ,IAAI,QAAQ,UAAU,EAAE,GAAI,eAAc,wCAAwC,mBAAmB,UAAU,MAAO,WAAU,SAAS,eAAe,GAAI,eAAc,UAAU,mBAAmB,UAAU,MAAO,WAAU,SAAS,eAAe,GAAI,gBAAe,yBAA6B,UAAU,iBAAiB,gBAAe,WAAW,iBAAgB,qBAAqB,IAAI,GAAG,WAAY,MAAO,IAAI,YAAW,YAAY,GAAG,WAAY,MAAO,YAAW,gBAAqB,KAAK,wDAAyD,MAAK,MAAM,OAAM,4BAA4B,MAAG,CAAC,YAAa,qBAAoB,wBAAwB,MAAO,QAAQ,YAAY,CAAC,UAAU,gBAAwB,MAAM,eAAe,CAAC,YAAY,gBAAgB,KAAK,SAAS,UAAU,GAAG,CAAC,SAAS,GAAO,KAAK,uCAAuC,eAAe,IAAI,MAAO,UAAS,gBAAmB,MAAM,WAAW,MAAO,eAAqB,GAAI,SAAQ,SAAS,QAAQ,QAAQ,QAAQ,eAAe,sBAAsB,GAAI,MAAK,CAAC,IAAM,cAAc,uBAAyB,eAAe,yBAAyB,SAAS,SAAQ,GAAI,UAAQ,SAAS,QAAQ,OAAO,IAAO,SAAQ,WAAW,SAAQ,OAAU,2BAA2B,WAAW,QAAQ,oBAAoB,oBAAoB,iBAAiB,oBAAoB,mCAAmC,QAAQ,gBAAgB,OAAO,UAAa,gCAAgC,UAAU,MAAO,oBAAmB,KAAK,SAAS,QAAQ,MAAO,aAAY,YAAY,OAAO,QAAQ,KAAK,SAAS,SAAS,QAAQ,IAAI,0CAA0C,QAAQ,MAAM,UAAU,4BAA4B,GAAG,CAAC,YAAY,MAAO,aAAY,sBAAuB,YAAY,CAAC,UAAU,iBAAiB,CAAC,UAAU,iBAAiB,MAAO,QAAQ,WAAY,MAAM,eAAe,CAAC,YAAY,gBAAgB,KAAK,SAAS,UAAU,GAAI,QAAO,YAAY,qBAAqB,SAAS,MAAM,MAAO,QAAO,KAAK,0BAA0B,SAAS,QAAQ,IAAI,kCAAkC,QAAQ,IAAI,6CAA6C,uBAAuB,mCAAoC,OAAO,wBAAuB,2BAA4B,GAAG,OAAO,gBAAoB,IAAI,GAAI,UAAQ,OAAO,gBAAmB,KAAK,iBAAiB,MAAO,gBAAc,GAAG,MAAA,KAAI,sDAAsD,GAAU,GAAO,MAAA,oBAAyB,GAAG,WAAW,OAAO,0CAA0C,aAAa,2BAA2B,WAAW,QAAQ,GAAI,MAAK,CAAC,UAAU,SAAS,UAAU,GAAI,aAAY,gEAAgE,MAAO,aAAY,KAAK,UAAU,MAAM,IAAI,eAAe,SAAS,MAAM,gBAAyB,OAAL,IAAG,EAAU,EAAE,MAAM,OAAO,EAAE,GAAG,EAAE,KAAK,GAAI,MAAK,MAAM,GAAM,OAAO,IAAK,MAAM,OAAO,EAAE,GAAW,OAAO,KAAM,OAAM,OAAO,EAAE,GAAG,MAAa,IAAI,OAAM,OAAO,EAAE,GAAG,MAAM,GAAG,eAAgB,KAAK,GAAG,KAAM,MAAM,QAAQ,MAAO,MAAO,QAAO,UAAU,SAAS,MAAM,GAAI,YAAW,KAAK,OAAO,KAAK,IAAI,cAAc,KAAK,OAAO,MAAM,IAAI,MAAA,MAAK,KAAK,eAAe,KAAK,MAAM,KAAK,OAAO,SAAS,IAAG,MAAM,CAAC,CAAC,KAAI,CAAC,YAAY,KAAK,KAAQ,CAAC,MAAM,CAAC,YAAY,MAAK,KAAO,MAAM,eAAe,OAAM,KAAW,YAAW,IAAI,IAAI,MAAM,QAAQ,SAAS,MAAM,GAAI,QAAO,KAAK,UAAU,MAAM,KAAK,OAAO,GAAG,IAAI,OAAO,GAAG,MAAG,CAAC,MAAM,CAAC,IAAW,IAAO,MAAK,KAAI,IAAI,OAAO,EAAE,IAAI,OAAO,IAAU,KAAK,MAAK,SAAS,SAAS,MAAM,GAAG,OAAO,IAAI,MAAM,IAAI,GAAI,WAAU,KAAK,YAAY,KAAK,MAAG,aAAY,GAAU,KAAY,KAAK,OAAO,UAAU,IAAI,QAAQ,SAAS,MAAM,MAAO,MAAK,UAAU,MAAM,IAAI,KAAK,WAAW,GAAI,OAAM,MAAM,UAAU,MAAM,KAAK,UAAU,GAAG,MAAO,MAAK,UAAU,MAAM,KAAK,OAAO,MAAM,SAAS,EAAE,GAAG,MAAO,MAAK,UAAU,EAAE,IAAI,KAAS,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,UAAU,SAAS,OAAO,MAAM,GAAI,SAAO,SAAS,QAAQ,QAAW,OAAO,GAAG,OAAO,GAAK,WAAS,EAAE,IAAI,KAAK,kBAAkB,QAAO,IAAI,QAAO,OAAO,GAAO,QAAO,KAAK,OAAQ,QAAQ,OAAU,IAAI,WAAW,SAAS,SAAS,EAAE,GAAI,KAAI,OAAO,SAAS,QAAQ,GAAG,GAAG,MAAO,MAAK,OAAO,SAAS,KAAK,GAAI,KAAI,aAAa,KAAK,MAAO,MAAK,MAAM,SAAS,IAAI,MAAM,MAAO,OAAM,mBAAmB,IAAI,MAAO,GAAE,kBAAkB,GAAG,WAAW,YAAY,OAAO,YAAY,mBAAmB,GAAG,IAAI,OAAO,MAAgB,OAAN,KAAI,EAAU,EAAE,EAAE,EAAE,OAAO,KAA+D,OAAtD,KAAI,OAAO,IAAI,EAAE,GAAG,GAAO,IAAI,OAAO,IAAK,GAAE,EAAE,IAAI,GAAW,EAAE,EAAE,EAAE,IAAI,IAAK,SAAS,UAAU,GAAG,OAAO,IAAI,IAAI,KAAK,IAAI,MAAA,QAAO,MAAM,GAAG,IAAW,EAAE,eAAe,QAAQ,KAAK,QAAQ,oBAAoB,MAAM,MAAM,MAAM,iBAAiB,GAAG,MAAA,GAAE,CAAC,EAAS,GAAG,EAAG,CAAC,WAAW,EAAG,IAAK,CAAC,UAAU,EAAE,IAAK,GAAI,eAAc,CAAC,gCAAkC,iCAAiC,SAAW,UAAU,QAAU,SAAS,SAAW,UAAU,UAAY,WAAW,OAAS,SAAa,IAAI,aAAa,OAAO,IAAO,IAAI,GAAI,OAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,iBAAiB,OAAO,iBAAoB,WAAW,MAAO,kBAAiB,OAAO,iBAAoB,OAAO,IAAO,iBAAoB,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,cAAiB,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,QAAW,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,aAAa,OAAO,aAAgB,WAAW,MAAO,cAAa,OAAO,aAAgB,OAAO,IAAO,aAAgB,MAAM,KAAK,YAAgB,aAAa,OAAO,aAAgB,WAAW,MAAO,cAAa,OAAO,aAAgB,OAAO,IAAO,aAAgB,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,QAAW,MAAM,KAAK,YAAgB,qBAAqB,OAAO,qBAAwB,WAAW,MAAO,sBAAqB,OAAO,qBAAwB,OAAO,IAAO,qBAAwB,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,eAAe,OAAO,eAAkB,WAAW,MAAO,gBAAe,OAAO,eAAkB,OAAO,IAAO,eAAkB,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,QAAW,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,cAAiB,MAAM,KAAK,YAAgB,uBAAuB,OAAO,uBAA0B,WAAW,MAAO,wBAAuB,OAAO,uBAA0B,OAAO,IAAO,uBAA0B,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,OAAU,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,eAAe,OAAO,eAAkB,WAAW,MAAO,gBAAe,OAAO,eAAkB,OAAO,IAAO,eAAkB,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,OAAU,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,UAAa,MAAM,KAAK,YAAgB,gBAAgB,OAAO,gBAAmB,WAAW,MAAO,iBAAgB,OAAO,gBAAmB,OAAO,IAAO,gBAAmB,MAAM,KAAK,YAAgB,aAAa,OAAO,aAAgB,WAAW,MAAO,cAAa,OAAO,aAAgB,OAAO,IAAO,aAAgB,MAAM,KAAK,YAAgB,sBAAsB,OAAO,sBAAyB,WAAW,MAAO,uBAAsB,OAAO,sBAAyB,OAAO,IAAO,sBAAyB,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,QAAW,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,UAAa,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,cAAiB,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,WAAc,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,WAAc,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,YAAY,OAAO,YAAe,WAAW,MAAO,aAAY,OAAO,YAAe,OAAO,IAAO,YAAe,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,UAAa,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,qBAAqB,OAAO,qBAAwB,WAAW,MAAO,sBAAqB,OAAO,qBAAwB,OAAO,IAAO,qBAAwB,MAAM,KAAK,YAAgB,qBAAqB,OAAO,qBAAwB,WAAW,MAAO,sBAAqB,OAAO,qBAAwB,OAAO,IAAO,qBAAwB,MAAM,KAAK,YAAgB,qBAAqB,OAAO,qBAAwB,WAAW,MAAO,sBAAqB,OAAO,qBAAwB,OAAO,IAAO,qBAAwB,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,UAAa,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,QAAW,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,OAAU,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,OAAU,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,OAAU,MAAM,KAAK,YAAgB,gBAAgB,OAAO,gBAAmB,WAAW,MAAO,iBAAgB,OAAO,gBAAmB,OAAO,IAAO,gBAAmB,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,kBAAkB,OAAO,kBAAqB,WAAW,MAAO,mBAAkB,OAAO,kBAAqB,OAAO,IAAO,kBAAqB,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,OAAU,MAAM,KAAK,YAAgB,OAAO,OAAO,OAAU,WAAW,MAAO,QAAO,OAAO,OAAU,OAAO,IAAO,OAAU,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,WAAc,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,UAAa,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,SAAS,OAAO,SAAY,WAAW,MAAO,UAAS,OAAO,SAAY,OAAO,IAAO,SAAY,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,QAAW,MAAM,KAAK,YAAgB,mBAAmB,OAAO,mBAAsB,WAAW,MAAO,oBAAmB,OAAO,mBAAsB,OAAO,IAAO,mBAAsB,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,cAAiB,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,KAAK,OAAO,KAAQ,WAAW,MAAO,MAAK,OAAO,KAAQ,OAAO,IAAO,KAAQ,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,WAAc,MAAM,KAAK,YAAgB,cAAc,OAAO,cAAiB,WAAW,MAAO,eAAc,OAAO,cAAiB,OAAO,IAAO,cAAiB,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,QAAW,MAAM,KAAK,YAAgB,MAAM,OAAO,MAAS,WAAW,MAAO,OAAM,OAAO,MAAS,OAAO,IAAO,MAAS,MAAM,KAAK,YAAgB,QAAQ,OAAO,QAAW,WAAW,MAAO,SAAQ,OAAO,QAAW,OAAO,IAAO,QAAW,MAAM,KAAK,YAAgB,UAAU,OAAO,UAAa,WAAW,MAAO,WAAU,OAAO,UAAa,OAAO,IAAO,WAAc,MAAM,KAAK,YAAgB,WAAW,OAAO,WAAc,WAAW,MAAO,YAAW,OAAO,WAAc,OAAO,IAAO,YAAe,MAAM,KAAK,YAAgB,aAAa,OAAO,aAAgB,WAAW,MAAO,cAAa,OAAO,aAAgB,OAAO,IAAO,cAAiB,MAAM,KAAK,YAAY,OAAO,IAAO,IAAI,OAAO,MAAS,MAAM,GAAI,WAAU,OAAO,KAAQ,SAAS,OAAM,GAAG,UAAW,MAAK,aAAa,GAAI,KAAI,OAAO,qBAAwB,OAAO,qBAAwB,WAAc,KAAI,MAAM,MAAK,SAAS,MAAO,SAAQ,oBAAoB,QAAQ,KAAK,KAAK,aAAa,KAAK,QAAQ,gCAAgC,OAAO,IAAI,KAAK,OAAO,OAAO,GAAI,YAAW,GAAM,sBAAsB,qBAAyB,WAAU,MAAU,WAAU,uBAAsB,YAAW,kBAAkB,MAAM,GAAI,eAAc,OAAO,QAAW,IAAI,gBAAgB,GAAI,KAAI,EAAE,KAAK,IAAI,UAAY,GAAG,GAAG,YAAa,YAAY,OAAY,GAAG,GAAG,UAAU,cAAc,GAAK,YAAY,GAAI,OAAM,EAAK,GAAG,MAAO,IAAI,UAAU,EAAE,OAAO,OAAM,CAAC,EAAE,EAAE,QAAO,IAAI,qBAAqB,OAAO,MAAM,EAAE,YAAY,WAAW,IAAM,aAAa,MAAkE,GAA5D,KAAK,MAAM,WAAc,gBAAgB,GAAU,UAAY,gBAAgB,GAAE,OAAO,iBAAoB,WAAiB,WAAU,GAAK,OAAO,UAAa,GAAQ,CAAA,OAAa,eAAc,UAAa,OAAO,sBAAwB,OAAO,uBAA6B,cAAa,SAAS,MAAM,YAAa,OAAO,UAAc,QAAO,UAAa,cAAc,WAAW,WAAW,WAAW,WAAW,OAAO,UAAa,KAAK,GAAG,SAAS,IAAQ,QAAS,OAAO,IAAO,IAAI,cAAc,OAAO,UAAa,UAAU,eAAe,SAAS,GAAa,gBAAqB,OAAM,GAAK,WAAW,OAAO,cAAiB,OAAO,QAAU,OAAO,OAAU,SAAQ,MAAM,OAAO,GAAI,YAAW,UAAS,GAAG,OAAO,QAA0F,IAA3E,MAAO,QAAO,SAAY,YAAW,QAAO,QAAW,CAAC,OAAO,UAAkB,OAAO,QAAW,OAAO,GAAG,OAAO,QAAW,QAAS,GAAI,cAAa,GAAK,MAAG,QAAO,cAAgB,cAAa,IAAM,cAAc,GAAK,MAGrj2B,uBAIL,MAAO,UAAY,UAAY,MAAO,SAAW,SAC/C,OAAO,QAAU,kBACV,MAAO,SAAW,YAAc,OAAO,IAC9C,OAAO,GAAI,WAAa,MAAO,qBACxB,MAAO,UAAY,UAC1B,SAAQ,kBAAuB,qBCpBrC,cAAA,YAAA,CAAA,QAAA,UA2BC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,cAAc,MACZ,GAAI,IAAK,KAAM,KAAO,OAEtB,GAAG,KAAO,WACR,GAAI,GAAI,QAAU,GAAG,GAAK,GAAG,EAAI,sBACjC,MAAA,IAAG,GAAK,GAAG,GACX,GAAG,GAAK,GAAG,GACJ,GAAG,GAAK,EAAK,IAAG,EAAI,EAAI,IAIjC,GAAG,EAAI,EACP,GAAG,GAAK,KAAK,KACb,GAAG,GAAK,KAAK,KACb,GAAG,GAAK,KAAK,KACb,GAAG,IAAM,KAAK,MACV,GAAG,GAAK,GAAK,IAAG,IAAM,GAC1B,GAAG,IAAM,KAAK,MACV,GAAG,GAAK,GAAK,IAAG,IAAM,GAC1B,GAAG,IAAM,KAAK,MACV,GAAG,GAAK,GAAK,IAAG,IAAM,GAC1B,KAAO,KAGT,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACT,EAAE,GAAK,EAAE,GACF,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,MAAK,MACd,MAAQ,MAAQ,KAAK,MACrB,KAAO,GAAG,KACd,MAAA,MAAK,MAAQ,WAAa,MAAQ,IAAG,OAAS,WAAe,GAC7D,KAAK,OAAS,WACZ,MAAO,QAAU,QAAS,QAAW,GAAK,uBAE5C,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGT,gBACE,GAAI,GAAI,WAEJ,KAAO,SAAS,OAClB,MAAO,OAAO,OACd,OAAS,GAAI,EAAG,EAAI,MAAK,OAAQ,KAC/B,GAAK,MAAK,WAAW,GACrB,GAAI,GAAI,mBAAsB,EAC9B,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EACL,EAAI,IAAM,EACV,GAAK,EACL,GAAK,EAAI,WAEX,MAAQ,KAAM,GAAK,uBAGrB,MAAO,MAIL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,KAAO,OAIZ,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UC9GnC,gBAAA,YAAA,CAAA,QAAA,UAGC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAAM,QAAU,GAEzB,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EAGP,GAAG,KAAO,WACR,GAAI,GAAI,GAAG,EAAK,GAAG,GAAK,GACxB,MAAA,IAAG,EAAI,GAAG,EACV,GAAG,EAAI,GAAG,EACV,GAAG,EAAI,GAAG,EACH,GAAG,GAAM,GAAG,IAAM,GAAM,EAAK,IAAM,GAGxC,OAAU,MAAO,GAEnB,GAAG,EAAI,KAGP,SAAW,KAIb,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAS,GAAI,IACvC,GAAG,GAAK,QAAQ,WAAW,GAAK,EAChC,GAAG,OAIP,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,OAAS,OAId,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UC7EnC,gBAAA,YAAA,CAAA,QAAA,UAGC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAAM,QAAU,GAGzB,GAAG,KAAO,WACR,GAAI,GAAK,GAAG,EAAK,GAAG,IAAM,EAC1B,MAAA,IAAG,EAAI,GAAG,EAAG,GAAG,EAAI,GAAG,EAAG,GAAG,EAAI,GAAG,EAAG,GAAG,EAAI,GAAG,EACzC,IAAG,EAAK,GAAG,EAAI,OAAS,GAC5B,IAAG,EAAK,GAAG,EAAK,GAAG,GAAK,EAAO,GAAK,GAAK,IAAO,GAGtD,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,EAEH,OAAU,MAAO,GAEnB,GAAG,EAAI,KAGP,SAAW,KAIb,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAS,GAAI,IACvC,GAAG,GAAK,QAAQ,WAAW,GAAK,EAC5B,GAAK,QAAQ,QACf,IAAG,EAAI,GAAG,GAAK,GAAK,GAAG,IAAM,GAE/B,GAAG,OAIP,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,OAAS,OAId,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UClFnC,mBAAA,YAAA,CAAA,QAAA,UAKC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAGT,GAAG,KAAO,WAER,GAAI,GAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAG,EAAG,EAC9B,MAAA,GAAI,EAAE,GAAI,GAAM,IAAM,EAAI,EAAI,EAAK,GAAK,GACxC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,GACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,IAAM,EACpC,EAAI,EAAG,EAAI,EAAK,GAAI,GAAK,EAAK,GAAK,EACnC,EAAI,EAAG,EAAI,EAAK,GAAI,EAAI,EAAK,GAAK,GAAK,GAAK,EAAK,GAAK,EACtD,EAAE,GAAK,EACP,GAAG,EAAK,EAAI,EAAK,EACV,GAGT,eAAc,IAAI,OAChB,GAAI,GAAG,EAAG,EAAI,GAEd,GAAI,QAAU,OAAO,GAEnB,EAAI,EAAE,GAAK,UAIX,KADA,MAAO,GAAK,MACP,EAAI,EAAG,EAAI,MAAK,OAAQ,EAAE,EAC7B,EAAE,EAAI,GAAM,EAAE,EAAI,IAAM,GACnB,MAAK,WAAW,GAAK,EAAG,EAAI,EAAK,IAAM,GAIhD,KAAO,EAAE,OAAS,GAAG,EAAE,KAAK,GAC5B,IAAK,EAAI,EAAG,EAAI,GAAK,EAAE,KAAO,EAAG,EAAE,EAAE,CAOrC,IANI,GAAK,EAAG,EAAI,EAAE,GAAK,GAAS,EAAI,EAAE,GAEtC,IAAG,EAAI,EACP,IAAG,EAAI,EAGF,EAAI,IAAK,EAAI,EAAG,EAAE,EACrB,IAAG,OAIP,MAAK,GAAI,MAGX,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EAAE,QACV,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MACd,MAAQ,MAAM,MAAO,CAAE,GAAI,OAC/B,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAM,GAAG,KAAK,MAAO,IACzB,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,UAAY,OAIjB,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UC9FnC,iBAAA,YAAA,CAAA,QAAA,UAyBC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAGT,GAAG,KAAO,WACR,GAAI,GAAI,GAAG,EACP,EAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAG,EAE3B,MAAA,IAAG,EAAI,EAAK,EAAI,WAAc,EAE9B,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GAEX,EAAI,EAAE,GAAK,EAAI,EACf,GAAG,EAAI,EAEC,EAAK,GAAK,IAAM,IAAQ,GAGlC,eAAc,IAAI,OAChB,GAAI,GAAG,EAAG,EAAG,EAAG,EAAG,EAAI,GAAI,MAAQ,IAYnC,IAXI,QAAU,OAAO,GAEnB,GAAI,MACJ,MAAO,MAGP,OAAO,MAAO,KACd,EAAI,EACJ,MAAQ,KAAK,IAAI,MAAO,MAAK,SAG1B,EAAI,EAAG,EAAI,IAAK,EAAI,MAAO,EAAE,EAE5B,OAAM,IAAK,MAAK,WAAY,GAAI,IAAM,MAAK,SAE3C,IAAM,GAAG,GAAI,GACjB,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,GAAK,EACV,GAAK,IAAM,GACP,GAAK,GACP,GAAK,EAAI,WAAc,EACvB,EAAK,EAAE,EAAI,MAAS,EAAI,EACxB,EAAU,GAAL,EAAU,EAAI,EAAI,GAW3B,IAPI,GAAK,KACP,GAAG,QAAQ,MAAK,QAAU,GAAK,KAAO,IAKxC,EAAI,IACC,EAAI,EAAI,IAAK,EAAI,EAAG,EAAE,EACzB,EAAI,EAAG,EAAI,GAAM,KACjB,EAAI,EAAE,EAAM,EAAI,EAAK,KACrB,GAAK,GAAK,GACV,GAAK,GAAK,GACV,GAAK,IAAM,GACX,GAAK,IAAM,GACX,EAAE,GAAK,EAAI,EAGb,IAAG,EAAI,EACP,IAAG,EAAI,EACP,IAAG,EAAI,EAGT,MAAK,GAAI,MAGX,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAGT,cAAc,KAAM,MACd,MAAQ,MAAM,MAAO,CAAE,GAAI,OAC/B,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAM,GAAG,KAAK,MAAO,IACzB,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,QAAU,OAIf,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UChJnC,gBAAA,YAAA,CAAA,QAAA,UAIC,AAAA,UAAS,QAAQ,QAAQ,SAE1B,gBAAgB,MACd,GAAI,IAAK,KAAM,QAAU,GAGzB,GAAG,KAAO,WACR,GAAI,GAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAI,GAAG,EAAG,EAAI,GAAG,EACzC,MAAA,GAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,EAAK,GAAK,GAAO,IAAM,EAAK,EAC5B,EAAK,EAAI,EAAK,EACd,GAAG,EAAI,EAAK,GAAK,GAAO,IAAM,GAAM,EACpC,GAAG,EAAI,EAAK,EAAI,EAAK,EACrB,GAAG,EAAK,GAAK,GAAO,IAAM,GAAM,EACzB,GAAG,EAAK,EAAI,EAAK,GAmB1B,GAAG,EAAI,EACP,GAAG,EAAI,EACP,GAAG,EAAI,WAAa,EACpB,GAAG,EAAI,WAEH,OAAS,KAAK,MAAM,MAEtB,IAAG,EAAK,KAAO,WAAe,EAC9B,GAAG,EAAI,KAAO,GAGd,SAAW,KAIb,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAS,GAAI,IACvC,GAAG,GAAK,QAAQ,WAAW,GAAK,EAChC,GAAG,OAIP,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACD,EAGT,cAAc,KAAM,MAClB,GAAI,IAAK,GAAI,QAAO,MAChB,MAAQ,MAAQ,KAAK,MACrB,KAAO,WAAa,MAAQ,IAAG,SAAW,GAAK,YACnD,MAAA,MAAK,OAAS,WACZ,EACE,IAAI,KAAM,GAAG,SAAW,GACpB,IAAO,IAAG,SAAW,GAAK,WAC1B,OAAU,KAAM,KAAQ,IAAK,UAC1B,SAAW,GACpB,MAAO,SAET,KAAK,MAAQ,GAAG,KAChB,KAAK,MAAQ,KACT,OACE,OAAO,QAAU,UAAU,KAAK,MAAO,IAC3C,KAAK,MAAQ,WAAa,MAAO,MAAK,GAAI,MAErC,KAGL,SAAU,QAAO,QACnB,QAAO,QAAU,KACR,SAAU,QAAO,IAC1B,QAAO,WAAa,MAAO,QAE3B,KAAK,OAAS,OAId,QACC,MAAO,SAAW,UAAY,OAC9B,MAAO,SAAW,YAAc,UCnGnC,oBAAA,YAAA,CAAA,QAAA,UAwBC,AAAA,UAAU,QAAQ,MAAM,MAKzB,GAAI,OAAQ,IACR,OAAS,EACT,OAAS,GACT,QAAU,SACV,WAAa,KAAK,IAAI,MAAO,QAC7B,aAAe,KAAK,IAAI,EAAG,QAC3B,SAAW,aAAe,EAC1B,KAAO,MAAQ,EACf,WAMJ,qBAAoB,KAAM,QAAS,UACjC,GAAI,KAAM,GACV,QAAW,SAAW,GAAQ,CAAE,QAAS,IAAU,SAAW,GAG9D,GAAI,WAAY,OAAO,SACrB,QAAQ,QAAU,CAAC,KAAM,SAAS,QACjC,MAAQ,KAAQ,WAAa,KAAM,GAAI,KAGtC,KAAO,GAAI,MAAK,KAIhB,KAAO,WAIT,OAHI,GAAI,KAAK,EAAE,QACX,EAAI,WACJ,EAAI,EACD,EAAI,cACT,EAAK,GAAI,GAAK,MACd,GAAK,MACL,EAAI,KAAK,EAAE,GAEb,KAAO,GAAK,UACV,GAAK,EACL,GAAK,EACL,KAAO,EAET,MAAQ,GAAI,GAAK,GAGnB,MAAA,MAAK,MAAQ,WAAa,MAAO,MAAK,EAAE,GAAK,GAC7C,KAAK,MAAQ,WAAa,MAAO,MAAK,EAAE,GAAK,YAC7C,KAAK,OAAS,KAGd,OAAO,SAAS,KAAK,GAAI,OAGjB,SAAQ,MAAQ,UACpB,SAAS,MAAM,MAAM,aAAc,OAUjC,MATI,QAEE,OAAM,GAAK,KAAK,MAAO,MAE3B,MAAK,MAAQ,WAAa,MAAO,MAAK,KAAM,MAK1C,aAAgB,MAAK,SAAW,MAAa,OAIrC,QAElB,KACA,UACA,UAAY,SAAU,QAAQ,OAAU,MAAQ,KAChD,QAAQ,OAaV,cAAc,KACZ,GAAI,GAAG,OAAS,IAAI,OAChB,GAAK,KAAM,EAAI,EAAG,EAAI,GAAG,EAAI,GAAG,EAAI,EAAG,EAAI,GAAG,EAAI,GAMtD,IAHK,QAAU,KAAM,CAAC,WAGf,EAAI,OACT,EAAE,GAAK,IAET,IAAK,EAAI,EAAG,EAAI,MAAO,IACrB,EAAE,GAAK,EAAE,EAAI,KAAQ,EAAI,IAAI,EAAI,QAAW,GAAI,EAAE,KAClD,EAAE,GAAK,EAIR,AAAA,IAAG,EAAI,SAAS,QAIf,OAFI,IAAG,EAAI,EACP,GAAI,GAAG,EAAG,GAAI,GAAG,EAAG,GAAI,GAAG,EACxB,UACL,GAAI,GAAE,GAAI,KAAQ,GAAI,GACtB,EAAI,EAAI,MAAQ,GAAE,KAAS,IAAE,IAAK,GAAE,GAAI,KAAQ,GAAI,KAAQ,IAAE,IAAK,KAErE,MAAA,IAAG,EAAI,GAAG,GAAG,EAAI,GACV,IAIN,OAOL,cAAc,EAAG,GACf,MAAA,GAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EACR,EAAE,EAAI,EAAE,EAAE,QACH,EAOT,kBAAiB,IAAK,OACpB,GAAI,QAAS,GAAI,IAAO,MAAO,KAAM,KACrC,GAAI,OAAS,KAAO,SAClB,IAAK,OAAQ,KACX,IAAM,OAAO,KAAK,SAAQ,IAAI,MAAO,MAAQ,UAAc,IAG/D,MAAQ,QAAO,OAAS,OAAS,KAAO,SAAW,IAAM,IAAM,KAQjE,gBAAgB,KAAM,KAEpB,OADI,YAAa,KAAO,GAAI,MAAO,EAAI,EAChC,EAAI,WAAW,QACpB,IAAI,KAAO,GACT,KAAS,QAAS,IAAI,KAAO,GAAK,IAAM,WAAW,WAAW,KAElE,MAAO,UAAS,KAQlB,oBACE,IACE,GAAI,KACJ,MAAI,aAAe,KAAM,WAAW,aAElC,IAAM,IAAI,OAEV,KAAM,GAAI,YAAW,OACpB,SAAO,QAAU,QAAO,UAAU,gBAAgB,MAE9C,SAAS,WACT,GACP,GAAI,SAAU,QAAO,UACjB,QAAU,SAAW,QAAQ,QACjC,MAAO,CAAC,CAAC,GAAI,MAAM,QAAQ,QAAS,QAAO,OAAQ,SAAS,SAQhE,kBAAkB,GAChB,MAAO,QAAO,aAAa,MAAM,EAAG,GAgBtC,GANA,OAAO,KAAK,SAAU,OAMjB,MAAO,SAAW,UAAY,OAAO,SACxC,OAAO,QAAU,YAEjB,IACE,WAAqB,uBACd,UACC,OAAO,SAAW,YAAc,OAAO,IACjD,OAAO,WAAa,MAAO,eAG3B,KAAK,OAAS,SAAW,cAQxB,MAAO,OAAS,YAAe,KAAO,QACvC,GACA,QC3PF,oBAAA,YAAA,CAAA,QAAA,UAYA,GAAI,OAAe,gBAKf,OAAiB,kBAKjB,OAAiB,kBAQjB,UAAoB,qBASpB,QAAkB,mBAOlB,OAAiB,kBAIjB,GAAa,sBAEjB,GAAG,KAAO,MACV,GAAG,OAAS,OACZ,GAAG,OAAS,OACZ,GAAG,UAAY,UACf,GAAG,QAAU,QACb,GAAG,OAAS,OAEZ,OAAO,QAAU,KC3DjB,uBAAA,YAAA,QAAA,QAAA,QAAA,SAAA,QAAA,SAAA,QAAA,SAAA,QAAA,SAAA,QCsBa,gBAAkB,KAClB,gBAAkB,KAvB/B,YAAA,MAiDE,YAAoB,UAAgC,WAAhC,KAAA,QAAA,UAAgC,KAAA,UAAA,UAH5C,KAAA,KAAO,GAAI,SACX,KAAA,aAAe,EAIvB,IAAI,QACF,MAAK,MAAK,KAAK,IAAI,SACjB,KAAK,UAAU,SAAS,KAAK,QAAS,QAEjC,KAAK,KAAK,IAAI,QAGvB,IAAI,OAAgB,OAClB,KAAK,eACL,KAAK,KAAK,IAAI,OAAQ,OAGxB,IAAI,QACF,MAAO,MAAK,KAAK,IAAI,QAGvB,OAAO,QACL,MAAA,MAAK,eACE,KAAK,KAAK,OAAO,QAG1B,aACE,MAAO,MAAK,eAzEhB,cAAA,MAiGE,KAAK,GACH,MAAO,mBAAkB,QAE3B,KAAK,QACH,MAAO,mBAAkB,QAE3B,SAAS,QACP,MAAO,mBAAkB,YAE3B,aACE,MAAO,mBAAkB,cAE3B,YAAY,QACV,MAAO,mBAAkB,eAE3B,MAAM,OAAuB,MAAiB,OAC5C,MAAO,mBAAkB,SAE3B,KAAK,OAAgB,OAAuB,MAAiB,OAE3D,MAAO,mBAAkB,QAE3B,SACE,MAAO,mBAAkB,UAG3B,iBACE,MAAO,mBAAkB,kBAG3B,UACE,MAAO,MAAK,mBAAqB,GAAK,gBAAkB,gBAG1D,YACI,EAAa,EAAa,WAC1B,YACF,MAAO,mBAAkB,eAG3B,iBACI,CAAC,EAAG,EAAG,WAAY,WAAY,KAAM,WAAA,YAAY,yBAEnD,MAAO,mBAAkB,oBAG3B,MAAwB,EAAM,MAAiB,MAC7C,MAAO,mBAAkB,SAE3B,aACI,EAAM,MAAiB,IAAe,SACxC,MAAO,mBAAkB,gBAE3B,QAAQ,EAAW,MACjB,MAAO,mBAAkB,WAE3B,QAA0B,EAAM,MAC9B,MAAO,mBAAkB,WAG3B,OAAO,QAAmB,MACxB,MAAO,mBAAkB,UAG3B,IAAsB,GACpB,MAAO,mBAAkB,OAG3B,IAAI,EAAW,GACb,MAAO,mBAAkB,OAE3B,KAAuB,SACrB,MAAO,mBAAkB,QAE3B,SAAS,EAAW,GAClB,MAAO,mBAAkB,YAE3B,SAAS,EAAW,GAClB,MAAO,mBAAkB,YAE3B,WAAW,EAAW,GACpB,MAAO,mBAAkB,cAE3B,SAAS,EAAW,GAClB,MAAO,mBAAkB,YAG3B,IAAI,EAAW,MACb,MAAO,mBAAkB,OAE3B,KAAK,EAAW,MACd,MAAO,mBAAkB,QAG3B,mBACI,EAAM,WAAsB,aAC9B,MAAO,mBAAkB,sBAG3B,OAAO,EAAW,MAChB,MAAO,mBAAkB,UAE3B,OAAO,EAAW,MAChB,MAAO,mBAAkB,UAG3B,MAAM,EAAW,GACf,MAAO,mBAAkB,SAE3B,SAAS,EAAW,GAClB,MAAO,mBAAkB,YAG3B,KAAK,EAAW,GACd,MAAO,mBAAkB,QAE3B,UAAU,EAAW,GACnB,MAAO,mBAAkB,aAG3B,QAAQ,EAAW,GACjB,MAAO,mBAAkB,WAE3B,aAAa,EAAW,GACtB,MAAO,mBAAkB,gBAG3B,WAA6B,GAC3B,MAAO,mBAAkB,cAE3B,WAAW,EAAW,GACpB,MAAO,mBAAkB,cAE3B,UAAU,EAAW,GACnB,MAAO,mBAAkB,aAG3B,MAAM,WACJ,MAAO,mBAAkB,SAE3B,OAAO,UAAmB,EAAW,GACnC,MAAO,mBAAkB,UAG3B,KAAuB,EAAM,EAAW,QACtC,MAAO,mBAAkB,QAG3B,IAAI,EAAW,MACb,MAAO,mBAAkB,OAE3B,QAAQ,EAAW,GACjB,MAAO,mBAAkB,WAG3B,IAAI,EAAW,GACb,MAAO,mBAAkB,OAG3B,IAAI,EAAW,MACb,MAAO,mBAAkB,OAE3B,QAAQ,EAAW,GACjB,MAAO,mBAAkB,WAG3B,IAAI,EAAW,MACb,MAAO,mBAAkB,OAE3B,IAAI,EAAW,MACb,MAAO,mBAAkB,OAG3B,kBAAkB,EAAW,GAC3B,MAAO,mBAAkB,qBAG3B,KAAuB,GACrB,MAAO,mBAAkB,QAE3B,MAAwB,GACtB,MAAO,mBAAkB,SAE3B,MAAwB,GACtB,MAAO,mBAAkB,SAG3B,KAAuB,GACrB,MAAO,mBAAkB,QAG3B,MAAwB,GACtB,MAAO,mBAAkB,SAE3B,MAAwB,GACtB,MAAO,mBAAkB,SAE3B,SAA2B,GACzB,MAAO,mBAAkB,YAG3B,IAAsB,EAAM,GAC1B,MAAO,mBAAkB,OAE3B,IAAsB,GACpB,MAAO,mBAAkB,OAE3B,MAAwB,GACtB,MAAO,mBAAkB,SAE3B,QAA0B,EAAM,KAC9B,MAAO,mBAAkB,WAE3B,IAAsB,GACpB,MAAO,mBAAkB,OAE3B,MAAwB,GACtB,MAAO,mBAAkB,SAE3B,KAAuB,GACrB,MAAO,mBAAkB,QAE3B,MAAwB,GACtB,MAAO,mBAAkB,SAE3B,OAAyB,GACvB,MAAO,mBAAkB,UAE3B,WAA6B,GAC3B,MAAO,mBAAkB,cAE3B,KAAuB,GACrB,MAAO,mBAAkB,QAE3B,MAAwB,GACtB,MAAO,mBAAkB,SAE3B,MAAwB,EAAM,GAC5B,MAAO,mBAAkB,SAE3B,IAAsB,GACpB,MAAO,mBAAkB,OAE3B,OAAyB,GAAO,GAC9B,MAAO,mBAAkB,UAE3B,KAAuB,GACrB,MAAO,mBAAkB,QAE3B,IAAsB,GACpB,MAAO,mBAAkB,OAG3B,KAAuB,EAAM,KAAa,MACxC,MAAO,mBAAkB,QAG3B,IAAsB,GACpB,MAAO,mBAAkB,OAE3B,WAA6B,GAC3B,MAAO,mBAAkB,cAG3B,QAA0B,GACxB,MAAO,mBAAkB,WAG3B,SAA2B,GACzB,MAAO,mBAAkB,YAG3B,IAAsB,GACpB,MAAO,mBAAkB,OAE3B,IAAsB,GACpB,MAAO,mBAAkB,OAE3B,IAAsB,GACpB,MAAO,mBAAkB,OAG3B,KAAuB,GACrB,MAAO,mBAAkB,QAE3B,KAAuB,GACrB,MAAO,mBAAkB,QAE3B,KAAuB,GACrB,MAAO,mBAAkB,QAE3B,MAAwB,EAAM,GAC5B,MAAO,mBAAkB,SAG3B,KAAuB,GACrB,MAAO,mBAAkB,QAE3B,KAAuB,GACrB,MAAO,mBAAkB,QAE3B,KAAuB,GACrB,MAAO,mBAAkB,QAG3B,MAAwB,GACtB,MAAO,mBAAkB,SAE3B,MAAwB,GACtB,MAAO,mBAAkB,SAE3B,MAAwB,GACtB,MAAO,mBAAkB,SAG3B,IAAsB,GACpB,MAAO,mBAAkB,OAG3B,KAAuB,EAAM,OAC3B,MAAO,mBAAkB,QAG3B,YACI,CAAC,MAAA,OAAO,OAAQ,SAAU,KAAM,WAAA,YAAY,yBAE9C,MAAO,mBAAkB,eAG3B,OAAO,EAAa,OAAkB,UACpC,MAAO,mBAAkB,UAE3B,eAAe,GAAc,OAAkB,UAE7C,MAAO,mBAAkB,kBAE3B,gBAAgB,EAAa,GAAc,UACzC,MAAO,mBAAkB,mBAG3B,qBACI,CAAC,MAAA,OAAO,OAAQ,SAAU,KAAM,WAAA,YAAY,yBAE9C,MAAO,mBAAkB,wBAG3B,gBAAgB,OAAiB,OAAkB,UAEjD,MAAO,mBAAkB,mBAE3B,wBAAwB,GAAc,OAAkB,UAEtD,MAAO,mBAAkB,2BAE3B,yBAAyB,EAAa,GAAc,UAElD,MAAO,mBAAkB,4BAE3B,OAAO,EAAa,OAAkB,UACpC,MAAO,mBAAkB,UAE3B,eAAe,GAAc,OAAkB,UAE7C,MAAO,mBAAkB,kBAE3B,gBAAgB,EAAa,GAAc,UACzC,MAAO,mBAAkB,mBAE3B,QAAQ,EAAa,UACnB,MAAO,mBAAkB,WAE3B,gBAAgB,GAAc,EAAa,EAAa,UAEtD,MAAO,mBAAkB,mBAE3B,QAAQ,EAAa,UACnB,MAAO,mBAAkB,WAE3B,gBAAgB,GAAc,EAAa,UACzC,MAAO,mBAAkB,mBAE3B,UAAU,EAAa,UACrB,MAAO,mBAAkB,aAE3B,kBAAkB,GAAc,EAAa,UAC3C,MAAO,mBAAkB,qBAE3B,UAAU,EAAa,UACrB,MAAO,mBAAkB,aAE3B,kBACI,GAAc,EAAa,EAAa,UAC1C,MAAO,mBAAkB,qBAG3B,QAA0C,EAAM,OAE9C,MAAO,mBAAkB,WAE3B,KAAuB,EAAM,OAC3B,MAAO,mBAAkB,QAG3B,KAAuB,EAAM,MAC3B,MAAO,mBAAkB,QAG3B,IACI,EAAM,SAAmC,eAC3C,MAAO,mBAAkB,OAG3B,UAA4B,EAAM,MAChC,MAAO,mBAAkB,aAG3B,OAAyB,EAAM,QAAiB,KAAc,UAAY,GAExE,MAAO,mBAAkB,UAG3B,SAAS,EAAW,SAClB,MAAO,mBAAkB,YAG3B,UACI,QAAiB,QAAiB,OACpC,MAAO,mBAAkB,aAG3B,eACI,EAAM,WAAsB,OAC9B,MAAO,mBAAkB,kBAG3B,eACI,EAAM,WAAsB,UAC9B,MAAO,mBAAkB,kBAG3B,eACI,EAAa,UAAmB,SAAkB,aAClD,kBACF,MAAO,mBAAkB,kBAG3B,uBAAuB,GAAc,EAAa,cAEhD,MAAO,mBAAkB,0BAG3B,sBACI,EAAa,UAAmB,SAAkB,aAClD,kBACF,MAAO,mBAAkB,yBAG3B,8BACI,GAAc,EAAa,cAC7B,MAAO,mBAAkB,iCAG3B,UACI,EAAa,MAAyB,SACtC,OAA4B,OAC5B,iBACF,MAAO,mBAAkB,aAG3B,6BACI,EAAa,OAAgB,KAAc,MAC3C,MACF,MAAO,mBAAkB,gCAG3B,QACI,GAAc,WAAsB,YAAuB,OAC3D,KAAc,MAAe,MAC/B,MAAO,mBAAkB,WAG3B,YACI,OAAkB,WAAqB,WACvC,MACF,MAAO,mBAAkB,eAG3B,OAAO,QAAmB,MAAe,QAAiB,UAExD,MAAO,mBAAkB,UAG3B,OAAO,EAAW,KAAc,UAAoB,UAElD,MAAO,mBAAkB,UAG3B,kBACI,MAAiB,OAAkB,cACnC,aAAsB,gBACxB,MAAO,mBAAkB,qBAG3B,IAAI,GACF,MAAO,mBAAkB,OAE3B,KAAK,GACH,MAAO,mBAAkB,QAE3B,QAA0B,MAAS,OACjC,MAAO,mBAAkB,WAE3B,KAAuB,QACrB,MAAO,mBAAkB,QAE3B,KAAuB,QACrB,MAAO,mBAAkB,QAG3B,cACI,OAAiB,MAAiB,SAClC,SAA4B,OAC5B,oBACF,MAAO,mBAAkB,iBAG3B,aAAa,EAAa,UAAmB,YAC3C,MAAO,mBAAkB,gBAI3B,MAAwB,MAAU,WAAsB,MACtD,MAAO,mBAAkB,SAG3B,cACI,cAAuB,aAAsB,YAC7C,cACF,MAAO,mBAAkB,iBAG3B,KAAK,GACH,MAAO,mBAAkB,QAG3B,KACI,MAAoB,MAAsB,OAC5C,MAAO,mBAAkB,QAG3B,SAAyB,GACvB,MAAO,mBAAkB,YAG3B,UAA0B,GACxB,MAAO,mBAAkB,aAG3B,SAAS,MAAe,KAAc,KACpC,MAAO,mBAAkB,YAG3B,UACE,MAAO,mBAAkB,aAI7B,2BAA2B,YACzB,KAAM,IAAI,OACN,IAAI,sICznBJ,iBAAkB,QAEtB,GAAI,SAAU,OAAM,OAChB,KAAO,EACP,MAAQ,EAEZ,KAAO,QAAU,GAEf,MAAS,KAAK,SAAW,QAAW,EAEpC,UAEA,KAAO,OAAM,SACb,OAAM,SAAW,OAAM,OACvB,OAAM,OAAS,KAKb,eAAgB,KAAa,EAAW,MAC5C,MAAO,MAAK,IAAI,KAAK,KAAK,IAAI,EAAG,OAG7B,2BAA4B,KAChC,MAAO,KAAM,GAAM,EAAI,IAAM,IAAM,EAG/B,aAAc,KAClB,GAAI,MAAM,EACV,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,IAC9B,MAAO,IAAI,GAEb,MAAO,MAUH,qBAAsB,EAAW,GACrC,GAAM,GAAI,KAAK,SACf,MAAQ,GAAI,EAAM,GAAI,GAAK,EAIvB,qBAAsB,EAAe,GACzC,GAAI,QAAS,EACb,OAAS,GAAI,EAAG,EAAI,EAAE,OAAQ,KAC5B,GAAM,MAAO,OAAO,EAAE,IAAM,OAAO,EAAE,IACrC,QAAU,KAAO,KAEnB,MAAO,QAkBH,gBAAiB,KAAe,KACpC,GAAI,CAAC,KACH,KAAM,IAAI,OAAM,MAAO,MAAQ,SAAW,IAAM,OAI9C,2BACF,OAAkB,OAAkB,mBAAqB,IAC3D,OACI,YAAY,OAAQ,QACpB,IAAM,mBAAqB,WAAW,cAAc,qBAGpD,uBAAwB,GAC5B,OACI,GAAK,KACL,IAAM,iEAsBN,iBAEF,IAA0B,OAAc,GAAI,eAAiB,IAI/D,GAHI,QAAU,MACZ,QAAS,IAEP,MAAM,QAAQ,MAAQ,aAAa,MAAQ,CAAC,eAC9C,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,EAAE,EAChC,QAAQ,IAAI,GAAI,OAAQ,oBAG1B,QAAO,KAAK,KAEd,MAAO,QAcH,uBAAwB,OAC5B,GAAI,MAAM,SAAW,EAEnB,MAAO,GAET,GAAI,MAAO,MAAM,GACjB,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,IAChC,MAAQ,MAAM,GAEhB,MAAO,MAGH,uBAAwB,OAC5B,MAAO,OAAM,SAAW,EAGpB,qBAAsB,GAAgB,IAC1C,GAAI,KAAO,GACT,MAAO,GAMT,GAJI,IAAM,MAAQ,IAAM,MAIpB,GAAG,SAAW,GAAG,OACnB,MAAO,GAET,OAAS,GAAI,EAAG,EAAI,GAAG,OAAQ,IAC7B,GAAI,GAAG,KAAO,GAAG,GACf,MAAO,GAGX,MAAO,GAGH,eAAgB,GACpB,MAAO,GAAI,GAAM,EAGb,cAAe,GAEnB,GAAK,KAAa,MAAQ,KAExB,MAAQ,MAAa,KAAK,GAE5B,GAAI,IAAM,SACR,MAAO,GACF,GAAI,IAAM,UACf,MAAO,GACF,CACL,GAAM,KAAM,KAAK,IAAI,EAAI,GACzB,MAAQ,KAAM,GAAM,KAAM,IAIxB,6BAA8B,MAClC,GAAM,OAAQ,KAAK,KAAK,KAAK,KAAK,OAClC,MAAO,CAAC,MAAO,KAAK,KAAK,KAAO,QAe5B,+BAAgC,GACpC,GAAM,iBAAkB,GAAI,aAAY,GACxC,OAAS,GAAI,EAAG,EAAI,EAAG,EAAE,EACvB,gBAAgB,GAAK,EAEvB,MAAA,SAAQ,iBACD,gBAGH,kBAAmB,EAAW,MAClC,MAAI,OAAQ,EAAE,OACL,EAEF,EAAI,IAAI,OAAO,KAAO,EAAE,QAG3B,qBACF,QAAwB,QAAW,SAAoB,EACvD,YACF,MAAO,IAAI,SAAc,CAAC,QAAS,UACjC,GAAI,UAAW,EAET,MAAQ,KACZ,GAAI,WACF,UACA,OAGF,WAEA,GAAM,aAAc,QAAQ,UAE5B,GAAI,YAAc,MAAQ,UAAY,YACpC,SACA,OAEF,WAAW,MAAO,cAGpB,UAaE,gCACF,MAAiB,MACnB,GAAI,WAAY,EACZ,YAAc,GAElB,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,EAAE,EAClC,GAAI,MAAM,IAAM,EACd,WAAa,MAAM,WACV,MAAM,KAAO,IACtB,GAAI,cAAgB,GAClB,KAAM,OACF,yDACmB,uBAAuB,KAEhD,YAAc,UACL,MAAM,GAAK,EACpB,KAAM,OAAM,gCAAgC,MAAM,aAAa,KAInE,GAAI,cAAgB,IAClB,GAAI,KAAO,GAAK,OAAS,UACvB,KAAM,OAAM,QAAQ,yCAAyC,SAE/D,MAAO,OAGT,GAAI,YAAc,EAChB,KAAM,OACF,qCAAqC,oCAG3C,GAAI,KAAO,WAAc,EACvB,KAAM,OACF,wDACO,UAAU,aAGvB,GAAM,UAAW,MAAM,QACvB,MAAA,UAAS,aAAe,KAAO,UACxB,SAGH,wBACF,KAAuB,OACzB,GAAM,MAAO,MAAM,OAGnB,MAAA,MAAO,MAAQ,KAAO,MAAM,IAAI,CAAC,EAAG,IAAM,GAAK,GAAG,OAAO,MAGzD,OACI,KAAK,MAAM,IAAM,IAAM,CAAC,MAAQ,GAAK,MACrC,IACI,+CAA+C,SAAS,sBAC5C,QAGpB,OACI,KAAK,MAAM,IAAM,MAAM,KACvB,IAAM,0DACU,QAGb,KAAK,IAAI,GAAK,EAAI,EAAI,KAAO,EAAI,GAIpC,sBAAuB,MAAiB,MAE5C,GAAM,UAAqB,GACrB,SAAqB,GACrB,aAAe,MAAQ,MAAQ,MAAM,QAAQ,OAAS,KAAK,SAAW,EACtE,KAAQ,MAAQ,MAAQ,aAC1B,KACA,eAAe,KAAM,OAAO,OAC5B,EAAI,EACR,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,EAAE,GAClC,GAAI,MAAQ,MACV,GAAI,KAAK,KAAO,GAAK,MAAM,KAAO,EAChC,KAAM,IAAI,OACN,sBAAsB,oBAAoB,MAAM,gBAEjD,AAAA,MAAK,IAAM,MAAQ,KAAK,GAAK,IAAM,MAAM,KAAO,GACnD,UAAS,KAAK,MAAM,IACpB,SAAS,KAAK,IAEZ,KAAK,IAAM,GACb,IAGA,MAAM,KAAO,GACf,UAAS,KAAK,MAAM,IACpB,SAAS,KAAK,IAGlB,MAAO,CAAC,SAAU,UAGd,gCACF,MAAU,MACZ,GAAI,QAAS,KACb,GAAI,OAAS,MAAQ,QAAU,UAC7B,OAAS,GAAI,cAAa,cACjB,QAAU,QACnB,OAAS,GAAI,YAAW,cACf,QAAU,OACnB,OAAS,GAAI,YAAW,UAExB,MAAM,IAAI,OAAM,qBAAqB,SAEvC,MAAO,QAGH,2BACF,MAAU,MACZ,GAAI,QAAS,KACb,GAAI,OAAS,MAAQ,QAAU,UAC7B,OAAS,GAAI,cAAa,cACjB,QAAU,QACnB,OAAS,GAAI,YAAW,cACf,QAAU,OACnB,OAAS,GAAI,YAAW,cACf,QAAU,SACnB,OAAS,GAAI,OAAgB,UAE7B,MAAM,IAAI,OAAM,qBAAqB,SAEvC,MAAO,QAGH,kCACF,KAA+B,OACjC,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,KAC/B,GAAM,KAAM,KAAK,GACjB,GAAI,MAAM,MAAQ,CAAC,SAAS,KAC1B,KAAM,OAAM,oBAAoB,iCAAiC,SAMjE,sBAAuB,OAC3B,MAAO,SAAU,QAAU,QAAU,aAAe,QAAU,WAC1D,QAAU,SAAW,QAAU,SAO/B,yBAA0B,QAAmB,SAUjD,MATI,CAAA,WAAY,aAGZ,UAAY,WAAa,UAAY,aAGrC,UAAY,SAAW,UAAY,WAAa,UAAY,aAG5D,UAAY,QAAU,UAAY,QAMlC,sBAAuB,GAC3B,MAAO,aAAa,eAAgB,YAAa,aAC7C,YAAa,YAGb,yBAA0B,OAC9B,GAAI,QAAU,WAAa,QAAU,QACnC,MAAO,GACF,GAAI,QAAU,YACnB,MAAO,GACF,GAAI,QAAU,OACnB,MAAO,GAEP,KAAM,IAAI,OAAM,iBAAiB,SAU/B,8BAA+B,KACnC,GAAI,KAAO,KACT,MAAO,GAET,GAAI,OAAQ,EACZ,MAAA,KAAI,QAAQ,GAAK,OAAS,EAAE,QACrB,MAIH,kBAAmB,OACvB,MAAO,OAAO,QAAU,UAAY,gBAAiB,QAGjD,mBAAoB,OACxB,MAAO,OAAO,QAAU,UAGpB,kBAAmB,OACvB,MAAO,OAAO,QAAU,SAGpB,oBAAqB,QACzB,MAAI,OAAM,QAAQ,QACT,WAAW,OAAO,IAEvB,iBAAkB,cACb,UACE,iBAAkB,aAAc,iBAAkB,YACpD,QACE,SAAS,QACX,UACE,SAAS,QACX,SACE,UAAU,QACZ,OAEF,UAGH,oBAAqB,GACzB,MAAO,CAAC,CAAE,IAAK,EAAE,aAAe,EAAE,MAAQ,EAAE,OAGxC,wBAAyB,KAAc,OAC3C,OAAS,GAAI,MAAO,EAAI,KAAM,EAAE,EAC9B,GAAI,KAAO,GAAM,EACf,MAAO,GAGX,MAAO,MAGH,wBAAyB,OAC7B,GAAM,MAAO,MAAM,OACnB,GAAI,KAAO,EACT,MAAO,GAKT,GAAM,SAAU,GAAI,OAAM,KAAO,GACjC,QAAQ,KAAO,GAAK,MAAM,KAAO,GACjC,OAAS,GAAI,KAAO,EAAG,GAAK,EAAG,EAAE,EAC/B,QAAQ,GAAK,QAAQ,EAAI,GAAK,MAAM,EAAI,GAE1C,MAAO,SAGT,2BAA2B,OAAgB,MAAiB,GAC1D,GAAM,KAAM,GAAI,OAChB,GAAI,MAAM,SAAW,GACnB,GAAM,GAAI,MAAM,GAChB,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,IAAI,GAAK,EAAE,OAAS,QAGtB,GAAM,GAAI,MAAM,GACV,KAAO,MAAM,MAAM,GACnB,IAAM,KAAK,OAAO,CAAC,IAAK,IAAM,IAAM,GAC1C,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,IAAI,GAAK,kBAAkB,OAAS,EAAI,IAAK,KAAM,GAGvD,MAAO,KAIH,uBAAwB,MAAiB,GAC7C,GAAI,MAAM,SAAW,EAEnB,MAAO,GAAE,GAEX,GAAM,MAAO,MAAM,OAAO,CAAC,IAAK,IAAM,IAAM,GAC5C,GAAI,OAAS,EAEX,MAAO,GAET,GAAI,OAAS,EAAE,OACb,KAAM,IAAI,OAAM,IAAI,wCAAwC,EAAE,WAGhE,MAAO,mBAAkB,EAAG,MAAO,GAG/B,4BACF,KAAc,OAChB,GAAM,QAAQ,oBAAoB,KAAM,OACxC,OAAS,GAAI,EAAG,EAAI,OAAM,OAAQ,IAChC,OAAM,GAAK,EAEb,MAAO,QAGH,6BACF,KAAc,OAChB,GAAI,OAAS,MAAQ,QAAU,WAAa,QAAU,YACpD,MAAO,IAAI,cAAa,MACnB,GAAI,QAAU,QACnB,MAAO,IAAI,YAAW,MACjB,GAAI,QAAU,OACnB,MAAO,IAAI,YAAW,MAEtB,KAAM,IAAI,OAAM,qBAAqB,SASnC,mCACF,MAAiB,OACnB,GAAM,MAAO,MAAM,OAAO,CAAC,KAAM,OAAS,KAAO,KAAM,GACvD,GAAI,OAAS,MAAQ,QAAU,UAC7B,MAAO,eAAc,MAAO,GAAI,cAAa,OACxC,GAAI,QAAU,QACnB,MAAO,eAAc,MAAO,GAAI,YAAW,OACtC,GAAI,QAAU,OACnB,MAAO,eAAc,MAAO,GAAI,YAAW,OAE3C,KAAM,IAAI,OAAM,qBAAqB,SAInC,4CAA6C,OACjD,MAAM,QAAQ,UACZ,OACI,OAAO,UAAU,UAAY,SAAW,EACxC,IACI,0EACU,aAYhB,oBACF,KAAgB,KAAc,SAChC,GAAI,OAAS,EACX,MAAO,GACF,GAAI,OAAS,EAClB,MAAO,MAAK,GAEd,GAAI,OAAQ,KAAK,KAAK,OAAS,GAC/B,OAAS,GAAI,EAAG,EAAI,KAAK,OAAS,EAAG,EAAE,EACrC,OAAS,QAAQ,GAAK,KAAK,GAE7B,MAAO,OAWH,oBACF,MAAe,KAAc,SAC/B,GAAI,OAAS,EACX,MAAO,GACF,GAAI,OAAS,EAClB,MAAO,CAAC,OAEV,GAAM,MAAiB,GAAI,OAAM,MACjC,OAAS,GAAI,EAAG,EAAI,KAAK,OAAS,EAAG,EAAE,EACrC,KAAK,GAAK,KAAK,MAAM,MAAQ,QAAQ,IACrC,OAAS,KAAK,GAAK,QAAQ,GAE7B,MAAA,MAAK,KAAK,OAAS,GAAK,MACjB,KAQH,mBAAoB,QAOxB,MAAO,SAAU,OAAO,MAAQ,MAAO,QAAO,MAAS,WCrqBzD,GAAM,2BAA4B,YArBlC,YAAA,MAkDE,YAAmB,SAAA,KAAA,OAAA,QATX,KAAA,MAAe,GACf,KAAA,aAAwD,GAExD,KAAA,SAAkB,GAOxB,KAAK,mBAGP,YAAY,aAAsB,UAC5B,KAAK,UAAY,MACnB,QAAQ,KACJ,YAAY,KAAK,oEACgB,aAEvC,KAAK,aAAe,aACpB,KAAK,SAAW,SAGlB,aACI,SAAkB,aAClB,SAKF,GAJA,KAAK,aAAa,UAAY,CAAC,aAAc,SAIzC,KAAK,SAAS,WAAa,MAC7B,GAAM,WAAY,KAAK,SAAS,UAChC,QAAQ,KACJ,qCAAqC,aAAa,cACtD,KAAK,IAAI,SAAU,iBAIjB,UAAS,UACb,MAAI,YAAY,MAAK,MACZ,KAAK,MAAM,UAGpB,MAAK,MAAM,UAAY,KAAM,MAAK,aAAa,UACxC,KAAK,MAAM,WAGpB,IAAI,UACF,GAAI,WAAY,MAAK,MACnB,MAAO,MAAK,MAAM,UAGpB,GAAM,WAAY,KAAK,aAAa,UACpC,GAAI,UAAU,WACZ,KAAM,IAAI,OACN,QAAQ,8EAId,MAAA,MAAK,MAAM,UAAY,UAEhB,KAAK,MAAM,UAGpB,UAAU,UACR,MAAO,MAAK,IAAI,UAGlB,QAAQ,UACN,MAAO,MAAK,IAAI,UAGlB,WACE,MAAO,MAAK,SAGV,YACF,MAAO,MAAK,MAGd,IAAI,SAAkB,OACpB,GAAI,KAAK,aAAa,WAAa,KACjC,KAAM,IAAI,OACN,mBAAmB,2CAEzB,KAAK,MAAM,UAAY,MACnB,KAAK,aAAa,UAAU,SAAW,MACzC,KAAK,aAAa,UAAU,QAAQ,OAIhC,aAAa,UACnB,GAAI,KAAK,aAAa,WAAa,KACjC,KAAM,IAAI,OACN,yBAAyB,4CAE/B,MAAO,MAAK,aAAa,UAAU,eAGrC,SAAS,OACP,KAAK,MAAQ,OAAO,OAAO,GAAI,OAGjC,QACE,KAAK,MAAQ,GACb,KAAK,SAAW,GAChB,KAAK,mBAGC,mBACN,GAAI,MAAO,MAAK,QAAW,aACvB,MAAO,MAAK,OAAO,UAAa,aAChC,MAAO,MAAK,OAAO,SAAS,QAAW,YACzC,OAGF,GAAM,WAAY,eAAe,KAAK,OAAO,SAAS,QAClD,4BAA6B,YACb,UAAU,2BAA2B,MAAM,KACnD,QAAQ,WAChB,GAAM,CAAC,IAAK,OAAS,SAAS,MAAM,KACpC,KAAK,SAAS,KAAO,WAAW,IAAK,WAMvC,wBAAyB,aAC7B,GAAM,QAAS,GACf,MAAA,aAAY,QAAQ,8BAA+B,CAAC,KAAM,IACxD,aAAY,OAAQ,EAAE,GAAI,EAAE,IACrB,EAAE,KAAK,OAET,OAGT,qBACI,OAAiC,KAAc,OACjD,OAAO,mBAAmB,OAAS,mBAAmB,OAAS,IAGjE,oBAAoB,SAAkB,OAEpC,GADA,MAAQ,MAAM,cACV,QAAU,QAAU,QAAU,QAChC,MAAO,SAAU,OACZ,GAAI,GAAG,CAAE,UAAY,MAC1B,MAAO,CAAC,MAEV,KAAM,IAAI,OACN,oCAAoC,kBAAkB,aAWtD,eACJ,MAAO,KAGF,GAAI,KAAmB,KACxB,8BAA+B,aACnC,IAAM,YC1LR,GAAI,iBAEE,8BACJ,GAAI,iBAAmB,MAErB,GAAI,IACJ,GAAI,MAAQ,SAAY,YACtB,GAAK,eACI,MAAQ,SAAY,YAC7B,GAAK,eACI,MAAQ,UAAa,YAC9B,GAAK,gBACI,MAAQ,OAAU,YAC3B,GAAK,SAEL,MAAM,IAAI,OAAM,kCAElB,gBAAkB,GAEpB,MAAO,iBAIT,wBACE,GAAM,IAAK,qBACX,MAAI,IAAG,YAAc,MACnB,IAAG,WAAa,GAAI,MAEf,GAAG,WAUN,mBAAuB,IAAa,OACxC,GAAM,WAAY,eAClB,GAAI,UAAU,IAAI,KAChB,MAAO,WAAU,IAAI,KAChB,CACL,GAAM,WAAY,QAClB,MAAA,WAAU,IAAI,IAAK,WACZ,UAAU,IAAI,MCzClB,GAAM,KAAM,MAGN,KAAO,OAGP,MAAQ,QAGR,IAAM,MAGN,KAAO,OAGP,IAAM,MAON,IAAM,MAON,OAAS,SAMT,OAAS,SAMT,KAAO,OAGP,MAAQ,QAGR,KAAO,OAGP,MAAQ,QAGR,MAAQ,QAGR,QAAU,UASV,YAAc,cAQd,UAAY,YAWZ,cAAgB,gBAUhB,YAAc,cAOd,eAAiB,iBASjB,SAAW,WAMX,YAAc,cAOd,KAAO,OAMP,KAAO,OAGP,YAAc,cAOd,QAAU,UAGV,WAAa,aAGb,OAAS,SAMT,OAAS,SAUT,qBAAuB,uBAUvB,oBAAsB,sBAUtB,OAAS,SAST,uBAAyB,yBASzB,sBAAwB,wBASxB,IAAM,MAGN,KAAO,OAGP,OAAS,SAQT,cAAgB,gBAShB,cAAgB,gBAOhB,aAAe,eAOf,sBAAwB,wBAWxB,oCACT,sCAWS,mCACT,qCAWS,KAAO,OAGP,WAAa,aAQb,wBAA0B,0BAI1B,yBAA2B,2BAI3B,QAAU,UAGV,IAAM,MAGN,QAAU,UAGV,IAAM,MAGN,MAAQ,QAGR,IAAM,MAGN,WAAa,aAMb,MAAQ,QAGR,IAAM,MAGN,KAAO,OAOP,cAAgB,gBAGhB,MAAQ,QAGR,SAAW,WAGX,eAAiB,iBAOjB,SAAW,WAOX,SAAW,WAGX,QAAU,UAGV,aAAe,eAGf,SAAW,WAGX,KAAO,OAGP,KAAO,OAGP,SAAW,WAGX,MAAQ,QAGR,MAAQ,QAGR,UAAY,YAMZ,KAAO,OAGP,UAAY,YAGZ,SAAW,WAMX,IAAM,MAGN,MAAQ,QAGR,WAAa,aAGb,WAAa,aAGb,UAAY,YAGZ,WAAa,aAMb,IAAM,MASN,QAAU,UASV,IAAM,MAON,QAAU,UAGV,QAAU,UASV,YAAc,cASd,UAAY,YAWZ,cAAgB,gBAWhB,kBAAoB,oBASpB,KAAO,OAOP,IAAM,MAON,QAAU,UAGV,UAAY,YAOZ,IAAM,MAGN,YAAc,cAQd,SAAW,WAGX,IAAM,MAGN,SAAW,WAGX,oBAAsB,sBAStB,oBAAsB,sBAUtB,oBAAsB,sBAUtB,SAAW,WAGX,OAAS,SAQT,KAAO,OAMP,MAAQ,QAOR,KAAO,OAGP,IAAM,MAGN,MAAQ,QAGR,KAAO,OAOP,MAAQ,QAQR,KAAO,OAGP,WAAa,aAGb,KAAO,OAGP,QAAU,UAMV,sBAAwB,wBAQxB,0BAA4B,4BAK5B,eAAiB,iBAQjB,mBAAqB,qBAIrB,MAAQ,QAGR,QAAU,UAMV,MAAQ,QAGR,MAAQ,QAGR,UAAY,YAMZ,OAAS,SAGT,KAAO,OAGP,MAAQ,QAMR,IAAM,MAGN,KAAO,OAGP,KAAO,OAGP,QAAU,UAGV,SAAW,WAGX,KAAO,OAGP,IAAM,MAON,eAAiB,iBAOjB,OAAS,SAOT,QAAU,UAMV,kBAAoB,oBAGpB,OAAS,SAGT,IAAM,MAGN,cAAgB,gBAOhB,aAAe,eAaf,IAAM,MAGN,KAAO,OAGP,KAAO,OAMP,KAAO,OAOP,UAAY,YAMZ,OAAS,SAQT,OAAS,SAMT,mBAAqB,qBAOrB,UAAY,YAMZ,KAAO,OAMP,WAAa,aASb,iBAAmB,mBAQnB,aAAe,eAgBf,YAAc,cAiBd,qBAAuB,uBCh3B9B,eACF,UAAU,iBAAkB,IAAM,GAAI,MACpC,aACF,UAAU,eAAgB,IAAM,GAAI,MAoElC,mBACF,WAAoB,aACtB,GAAM,KAAM,QAAQ,WAAY,aAChC,MAAO,gBAAe,IAAI,KAOtB,qBAAsB,YAC1B,MAAO,cAAa,IAAI,YAGpB,8BAA+B,aACnC,GAAM,IAAK,eAAe,UACpB,OAAyB,GAE/B,QACE,GAAM,CAAC,KAAM,OAAS,GAAG,OACzB,GAAI,KACF,MAEF,GAAM,CAAC,IAAK,SAAU,MAChB,CAAC,WAAa,IAAI,MAAM,KAC1B,YAAY,aACd,OAAO,KAAK,SAGhB,MAAO,QAcH,wBAAyB,SAC7B,GAAM,CAAC,WAAY,aAAe,QAC5B,IAAM,QAAQ,WAAY,aAC5B,eAAe,IAAI,MACrB,QAAQ,KACJ,eAAe,4BACX,sCAEV,eAAe,IAAI,IAAK,SAWpB,0BAA2B,SAC/B,GAAM,CAAC,YAAc,QAEjB,aAAa,IAAI,aAGf,MAAM,QAAQ,UAChB,QAAQ,KAAK,gCAAgC,eAGjD,aAAa,IAAI,WAAY,SAUzB,0BACF,WAAoB,aACtB,GAAM,KAAM,QAAQ,WAAY,aAChC,GAAI,CAAC,eAAe,IAAI,KACtB,KAAM,IAAI,OACN,eAAe,4BACX,kCAEV,eAAe,OAAO,KAIlB,4BAA6B,YACjC,GAAI,CAAC,aAAa,IAAI,YACpB,KAAM,IAAI,OACN,iBAAiB,6CAEvB,aAAa,OAAO,YAShB,+BACF,sBAA+B,gBACjB,qBAAqB,uBAC7B,QAAQ,eACd,GAAM,iBACF,OAAO,OAAO,GAAI,aAAc,CAAC,YAAa,iBAClD,eAAe,mBAInB,iBAAiB,WAAoB,aACnC,MAAO,GAAG,eAAe,aCrN3B,GAAA,cAAA,GAAA,UAAA,aAAA,CAAA,YAAA,IAAA,YAAA,OAAA,IAAA,OAAA,mCAAA,IAAA,mCAAA,cAAA,IAAA,cAAA,kBAAA,IAAA,kBAAA,qBAAA,IAAA,qBAAA,gBAAA,IAAA,gBAAA,yBAAA,IAAA,yBAAA,MAAA,IAAA,MAAA,eAAA,IAAA,eAAA,kBAAA,IAAA,kBAAA,sBAAA,IAAA,sBAAA,aAAA,IAAA,aAAA,YAAA,IAAA,YAAA,aAAA,IAAA,aAAA,MAAA,IAAA,OAAA,QAAA,IAAA,QAAA,kBAAA,IAAA,kBAAA,uBAAA,IAAA,uBAAA,gBAAA,IAAA,gBAAA,WAAA,IAAA,WAAA,WAAA,IAAA,WAAA,uBAAA,IAAA,uBAAA,UAAA,IAAA,UAAA,WAAA,IAAA,WAAA,MAAA,IAAA,MAAA,SAAA,IAAA,SAAA,UAAA,IAAA,UAAA,cAAA,IAAA,cAAA,SAAA,IAAA,SAAA,aAAA,IAAA,aAAA,aAAA,IAAA,aAAA,WAAA,IAAA,WAAA,mBAAA,IAAA,mBAAA,0BAAA,IAAA,0BAAA,oBAAA,IAAA,oBAAA,eAAA,IAAA,eAAA,kBAAA,IAAA,kBAAA,IAAA,IAAA,IAAA,eAAA,IAAA,eAAA,YAAA,IAAA,YAAA,YAAA,IAAA,YAAA,SAAA,IAAA,SAAA,QAAA,IAAA,QAAA,cAAA,IAAA,cAAA,oBAAA,IAAA,oBAAA,aAAA,IAAA,aAAA,IAAA,IAAA,IAAA,KAAA,IAAA,KAAA,cAAA,IAAA,cAAA,aAAA,IAAA,eAyBM,2BACF,MAAiB,OACnB,MAAI,SAAU,SACL,aAAa,OAGf,aAAa,CAAC,OAAQ,OAG/B,4BAA4B,EAAe,OACzC,MAAQ,aAAa,eAAgB,QAAU,WAC1C,YAAa,aAAc,QAAU,SACrC,YAAa,aAAc,QAAU,OAGtC,sBAAuB,EAAe,OAC1C,GAAI,QAAU,SACZ,KAAM,IAAI,OAAM,6CASlB,GAPI,MAAM,QAAQ,IAChB,GAAS,QAAQ,IAGf,MAAM,QAAQ,UACX,yBAAyB,EAAe,OAE3C,mBAAmB,EAAG,OACxB,MAAO,GAET,GAAI,OAAS,MAAQ,QAAU,WAAa,QAAU,YACpD,MAAO,IAAI,cAAa,GACnB,GAAI,QAAU,QACnB,MAAO,IAAI,YAAW,GACjB,GAAI,QAAU,QACnB,GAAM,MAAO,GAAI,YAAY,EAAe,QAC5C,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,EAC7B,KAAK,MAAO,EAAe,MAAQ,GACrC,MAAK,GAAK,GAGd,MAAO,UAEP,MAAM,IAAI,OAAM,qBAAqB,SAenC,eACJ,MAAO,OAAM,SAAS,MAmBlB,gBACF,KAAc,cAChB,MAAO,OAAM,SAAS,MAAM,KAAM,cAW9B,sBAAuB,EAAW,SAAW,SACjD,MAAA,UAAW,UAAY,QAChB,MAAM,SAAS,OAAO,EAAG,UAW5B,sBAAuB,MAAmB,SAAW,SACzD,MAAA,UAAW,UAAY,QAChB,MAAM,SAAS,OAAO,MAAO,UClItC,GAAA,UAAA,MAiCE,YAAoB,aAAoC,QAApC,KAAA,aAAA,aAAoC,KAAA,OAAA,OAClD,QAAU,MACZ,MAAK,OAAS,GAAI,SAItB,cAAc,WAAoB,OAAwB,GAExD,GAAI,SACE,oBAAsB,KAC1B,QAAU,KAEN,MAAQ,KAAK,aAAa,KAAK,qBAErC,GAAI,MAAM,QAAQ,gCAChB,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,KAClC,GAAM,QAAS,QAAQ,GAGvB,OAAO,OAAO,KAAK,aACjB,0BAA0B,WAAY,OAAO,MAAO,cAe1D,MAVsB,CACpB,WACA,QACA,OACA,OAAQ,MAAM,KAAK,QAAU,OAAO,UACpC,UAAW,MAAM,KACb,QAAU,OAAO,qBAAuB,KACpC,OAAO,sBACP,KAKZ,iBAAiB,eACf,GAAM,CAAC,WAAY,QAAS,OAAQ,OAAQ,WAAa,cAEzD,QAAQ,QAAQ,SACd,QAAQ,IAAI,CAAC,OAAO,OAAQ,OAAQ,YAAY,KAAK,iBACnD,KAAK,OAAO,iBACR,WAAY,OAAQ,eAAe,GAAI,eAAe,GAAI,OAC1D,eAAe,UAMrB,mCACF,KAAsB,MAAU,YAClC,GAAI,QAAU,UAEZ,MAAO,GAET,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,KAC/B,GAAM,KAAM,KAAK,GACjB,GAAI,MAAM,MAAQ,CAAC,SAAS,KAE1B,MAAA,SAAQ,KAAK,SAAS,yBAAyB,eACxC,GAGX,MAAO,GAlGT,GAAA,QAAA,MAsGE,iBACI,KAAc,OAAgB,KAC9B,OAAgC,OAChC,WACF,GAAM,OAAO,MAAO,SAAW,SAAgB,SAAS,GAAG,WAAY,GAC7B,OAAO,MAC3C,WAAkB,SAAS,KAAM,IACjC,KAAO,OAAO,KACd,KAAO,OAAO,KACd,MAAa,SAAS,OAAO,MAAM,WAAY,IACjD,uBAAyB,GAE7B,OAAW,SAAQ,SACjB,GAAM,QAAQ,OAAO,OACrB,GAAI,QAAS,MAGX,GAAM,YAAa,OAAM,OAAS,OAAO,MACnC,UAAY,WAAW,OAC7B,wBACI,GAAG,UAAS,cAAc,UAAY,EAAI,WAAa,OAI/D,QAAQ,IACJ,KAAK,gBAAiB,WAAW,SAAS,WAAY,UAClD,4BAA6B,YACjC,mBAAoB,YAAa,aAAc,gBAC/C,eAAgB,sBCvFlB,8BACF,KAAkB,GAAc,GAGlC,GAAM,cAA8C,GAC9C,WAA0C,GAChD,OAAS,GAAI,EAAG,EAAI,GAAG,OAAQ,IAC7B,aAAa,GAAG,GAAG,IAAM,GAG3B,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,KAC/B,GAAM,MAAO,KAAK,GACZ,WAAa,KAAK,OACxB,OAAW,aAAa,aACtB,GAAM,QAAQ,WAAW,WAErB,cAAgB,GACpB,OAAS,GAAI,EAAG,EAAI,GAAG,OAAQ,IAC7B,GAAI,aAAa,OAAM,KACrB,KAAK,QAAQ,QAAQ,QAAU,aAAa,OAAO,IAAM,IACzD,cAAgB,GAChB,WAAW,KAAK,IAAM,GACtB,MAIJ,GAAI,cACF,OAMN,GAAM,gBAAgD,GACtD,eAAe,EAAE,IAAM,GACvB,GAAM,UAAwC,GAE9C,OAAS,GAAI,KAAK,OAAS,EAAG,GAAK,EAAG,KACpC,GAAM,MAAO,KAAK,GACZ,WAAa,KAAK,OAGxB,OAAS,GAAI,EAAG,EAAI,KAAK,QAAQ,OAAQ,IACvC,GAAI,eAAe,KAAK,QAAQ,GAAG,KACjC,OAAW,aAAa,YACtB,eAAe,WAAW,WAAW,IAAM,GAC3C,SAAS,KAAK,IAAM,GAEtB,OAMN,GAAM,cAA2B,GACjC,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,KAC/B,GAAM,MAAO,KAAK,GAElB,GAAI,WAAW,KAAK,KAAO,SAAS,KAAK,KAEvC,GAAM,cAA8C,GACpD,OAAW,aAAa,MAAK,QAC3B,GAAM,WAAY,KAAK,OAAO,WAC1B,aAAa,UAAU,KACzB,cAAa,WAAa,WAK9B,GAAM,YAAa,OAAO,OAAO,GAAI,MACrC,WAAW,OAAS,aACpB,WAAW,QAAU,KAAK,QAE1B,aAAa,KAAK,aAItB,MAAO,cAUH,gCACF,6BACA,aAA0B,MAC1B,MAEF,OAAS,GAAI,aAAa,OAAS,EAAG,GAAK,EAAG,KAC5C,GAAM,MAAO,aAAa,GAEpB,IAAgB,GAYtB,GAXA,KAAK,QAAQ,QAAQ,IACnB,GAAM,YAAa,6BAA6B,EAAE,IAC9C,YAAc,KAChB,IAAI,KAAK,YAIT,IAAI,KAAK,QAIT,KAAK,UAAY,KACnB,KAAM,IAAI,OACN,4DACO,KAAK,eAIlB,GAAM,gBAAiB,KAAK,SAAS,KAErC,OAAW,aAAa,MAAK,QAC3B,GAAI,CAAE,aAAa,iBACjB,KAAM,IAAI,OACN,iCAAiC,yCACH,OAAO,KAAK,oBAIhD,GAAM,IAAK,MAAK,IAAM,eAAe,cACrC,GAAI,GAAG,QAAU,UACf,KAAM,IAAI,OACN,4BACI,KAAK,qCACN,iDAAiD,GAAG,UAE7D,GAAM,GAAI,KAAK,OAAO,WACtB,GAAI,CAAM,YAAY,GAAG,MAAO,EAAE,OAChC,KAAM,IAAI,OACN,4BACI,KAAK,sCACL,yBAAyB,GAAG,wDACL,EAAE,UAGnC,GAAI,6BAA6B,EAAE,KAAO,KACxC,6BAA6B,EAAE,IAAM,QAErC,GAAM,aAAc,6BAA6B,EAAE,IACnD,6BAA6B,EAAE,IAAM,KAAI,YAAa,IACtD,YAAY,aCvKpB,GAAM,uBAAwB,GAExB,2BAA6B,EAE7B,sBAAwB,EAExB,wBACF,KAA2B,MAAiB,MAC5C,SACF,GAAM,SAAU,eAAe,OACzB,UAAY,wBAAwB,KAAM,MAAO,MAAO,SACxD,KAAO,MAAM,OACb,UAAY,kBAAkB,KAAM,MAAO,MAAO,QAAS,WAC3D,MAAQ,CAAC,UACf,MAAI,UACF,OAAM,KAAK,YAAY,SACvB,MAAM,KAAK,WAAW,QACtB,MAAM,KAAK,aAAa,UACxB,MAAM,KAAK,cAEb,MAAM,KAAK,UAAU,IAAI,GAAK,OAAS,GAAG,KAAK;IACxC,MAAM,KAAK;GAGpB,iCACI,KAA2B,MAAiB,MAC5C,SACF,GAAM,GAAI,cAAc,OAClB,QAAU,QAAQ,QAAQ,OAAS,GACnC,UAAY,GAAI,OAAM,SAAS,KAAK,GACpC,KAAO,MAAM,OACb,eACF,QAAU,YAAc,oBAAoB,MAAQ,KAExD,GAAI,KAAO,EACT,OAAS,KAAM,EAAG,IAAM,EAAI,QAAS,OACnC,GAAM,QAAS,IAAM,QACrB,OAAS,GAAI,EAAG,EAAI,QAAS,IAC3B,UAAU,GAAK,KAAK,IAChB,UAAU,GACV,YAAY,eAAe,OAAS,GAAI,EAAG,OAAO,QAI5D,MAAO,WAGT,qBACI,IAAqC,KAAa,OACpD,GAAI,QACJ,MAAI,OAAM,QAAQ,KAChB,OAAS,GAAG,WAAW,IAAI,GAAG,QAAQ,6BAC/B,WAAW,IAAI,GAAG,QAAQ,2BACxB,SAAS,KAClB,OAAS,IAAI,OACJ,QAAU,OACnB,OAAS,gBAAgB,KAEzB,OAAS,WAAW,IAAI,QAAQ,wBAAwB,WAGnD,SAAS,OAAQ,MAG1B,yBAAyB,GACvB,MAAO,KAAM,EAAI,QAAU,OAG7B,2BACI,KAA2B,MAAiB,MAC5C,QAAmB,UAAqB,OAAS,IACnD,GAAM,mBAAoB,QAAU,YAAc,EAAI,EAEhD,KAAO,MAAM,GACb,KAAO,MAAM,OACnB,GAAI,OAAS,GACX,GAAI,QAAU,aACZ,GAAM,cAAe,oBAAoB,MACzC,MAAO,CAAC,YAAY,aAAa,GAAI,EAAG,QAE1C,MAAI,SAAU,OACL,CAAC,gBAAgB,KAAK,KAExB,CAAC,KAAK,GAAG,YAGlB,GAAI,OAAS,GACX,GAAI,KAAO,uBACT,GAAM,eAAgB,2BAA6B,kBAE/C,UAAY,MAAM,KAClB,KAAK,MAAM,EAAG,gBACd,SAAW,MAAM,KAAqC,KAAK,MAC1D,MAAO,4BAA8B,kBACtC,KAAO,oBACX,MAAI,SAAU,aACZ,WAAY,oBAAoB,WAChC,SAAW,oBAAoB,WAE1B,CACL,IACA,UAAU,IAAI,CAAC,EAAG,IAAM,YAAY,EAAG,UAAU,GAAI,QAChD,KAAK,MACV,UACA,SACK,IACG,CAAC,EAAG,IAAM,YACN,EAAG,UAAU,KAAO,2BAA6B,GAAI,QAC5D,KAAK,MACV,KAGJ,GAAM,aACF,QAAU,YAAc,oBAAoB,MACpB,MAAM,KAAoB,MAEtD,MAAO,CACL,IACA,YAAY,IAAI,CAAC,EAAG,IAAM,YAAY,EAAG,UAAU,GAAI,QAClD,KAAK,MACV,KAKJ,GAAM,UAAW,MAAM,MAAM,GACvB,WAAa,QAAQ,MAAM,GAC3B,OAAS,QAAQ,GAAK,kBACtB,MAAkB,GACxB,GAAI,KAAO,uBACT,OAAS,GAAI,EAAG,EAAI,2BAA4B,KAC9C,GAAM,OAAQ,EAAI,OACZ,IAAM,MAAQ,OACpB,MAAM,KAAK,GAAG,kBACV,KAAK,MAAM,MAAO,KAAM,SAAU,MAAO,WAAY,UACrD,KAEN,MAAM,KAAK,OACX,OAAS,GAAI,KAAO,2BAA4B,EAAI,KAAM,KACxD,GAAM,OAAQ,EAAI,OACZ,IAAM,MAAQ,OACpB,MAAM,KAAK,GAAG,kBACV,KAAK,MAAM,MAAO,KAAM,SAAU,MAAO,WAAY,UACrD,IAAM,KAAO,SAGnB,QAAS,GAAI,EAAG,EAAI,KAAM,KACxB,GAAM,OAAQ,EAAI,OACZ,IAAM,MAAQ,OACpB,MAAM,KAAK,GAAG,kBACV,KAAK,MAAM,MAAO,KAAM,SAAU,MAAO,WAAY,UACrD,IAAM,KAAO,IAGrB,GAAM,KAAM,OAAS,EAAI,IAAM,GAC/B,MAAM,GAAK,IAAM,MAAM,GAAK,IAC5B,OAAS,GAAI,EAAG,EAAI,MAAM,OAAS,EAAG,IACpC,MAAM,GAAK,IAAM,MAAM,GAAK,IAE9B,GAAI,YAAa;EACjB,OAAS,GAAI,EAAG,EAAI,KAAM,IACxB,YAAc;EAEhB,MAAA,OAAM,MAAM,OAAS,GACjB,IAAM,MAAM,MAAM,OAAS,GAAK,IAAO,QAAS,GAAK,YAClD,MAGT,6BAA6B,MAE3B,GAAM,eAAyC,GAC/C,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,GAAK,EACpC,cAAc,KAAK,CAAC,KAAK,GAAI,KAAK,EAAI,KAExC,MAAO,eCnMT,GAAA,cAAA,MA6CE,YAAY,MAA2B,MAAU,QAI/C,GAJqC,KAAA,MAAA,MACrC,KAAK,MAAQ,MAAM,QACnB,KAAK,KAAY,cAAc,OAE3B,QAAU,MACZ,GAAM,GAAI,OAAO,OACZ,OACD,IAAM,KAAK,KACX,IAAM,qBAAqB,qDACG,KAAK,UAEzC,GAAI,QAAU,YACZ,KAAM,IAAI,OACN,8JAIN,KAAK,OAAS,QAAe,kBAAkB,MAAO,KAAK,MAC3D,KAAK,QAAU,eAAe,OAWhC,IAAI,SAA6B,MAC3B,KAAK,SAAW,GAClB,MAAO,CAAC,IAEL,OACD,KAAK,SAAW,KAAK,KACrB,IAAM,uCAAuC,KAAK,gCAC3B,KAAK,SAEhC,GAAM,OAAQ,KAAK,WAAW,MAC9B,KAAK,OAAO,OAAS,MAUvB,OAAO,MACD,KAAK,SAAW,GAClB,MAAO,CAAC,IAEV,GAAI,GAAI,EACR,OAAW,OAAO,OAChB,GAAI,IAAM,GAAK,KAAO,KAAK,MAAM,IAC/B,GAAM,KAAM,qCAAqC,wBAC3B,KAAK,QAC3B,KAAM,IAAI,OAAM,KAElB,IAEF,GAAI,OAAQ,KAAK,KAAK,OAAS,GAC/B,OAAS,IAAI,EAAG,GAAI,KAAK,OAAS,EAAG,EAAE,GACrC,OAAS,KAAK,QAAQ,IAAK,KAAK,IAElC,MAAO,MAAK,OAAO,OAGrB,WAAW,MACT,GAAI,KAAK,OAAS,EAChB,MAAO,GACF,GAAI,KAAK,OAAS,EACvB,MAAO,MAAK,GAEd,GAAI,OAAQ,KAAK,KAAK,OAAS,GAC/B,OAAS,GAAI,EAAG,EAAI,KAAK,OAAS,EAAG,EAAE,EACrC,OAAS,KAAK,QAAQ,GAAK,KAAK,GAElC,MAAO,OAGT,WAAW,OACT,GAAI,KAAK,OAAS,EAChB,MAAO,GACF,GAAI,KAAK,OAAS,EACvB,MAAO,CAAC,OAEV,GAAM,MAAiB,GAAI,OAAM,KAAK,MAAM,QAC5C,OAAS,GAAI,EAAG,EAAI,KAAK,OAAS,EAAG,EAAE,EACrC,KAAK,GAAK,KAAK,MAAM,MAAQ,KAAK,QAAQ,IAC1C,OAAS,KAAK,GAAK,KAAK,QAAQ,GAElC,MAAA,MAAK,KAAK,OAAS,GAAK,MACjB,QAGL,QACF,MAAO,MAAK,MAAM,OAQpB,WACE,MAAO,aAAY,WAAW,KAAK,OAAQ,KAAK,MAAO,KAAK,SAiC5D,UAAiC,KAEjC,UAAuB,KAEvB,qBAA8C,KAW5C,0BAA2B,IAC/B,UAAY,GAQR,sBAAuB,SAC3B,UAAY,QAOR,iCAAkC,IACtC,qBAAuB,GA1NzB,GAAA,QAAA,MA8QE,YAAY,MAAoB,MAAiB,OAAgB,IAXjE,KAAA,KAAO,GAoIG,KAAA,mBAAqB,GAxH7B,KAAK,MAAQ,MAAM,QACnB,KAAK,MAAQ,OAAS,UACtB,KAAK,KAAY,cAAc,OAC/B,KAAK,QAAU,eAAe,OAC9B,KAAK,OAAS,OACd,KAAK,GAAK,GACV,KAAK,SAAY,KAAK,KAAO,EAAI,KAAK,KAAK,WAAa,YAGtD,QACF,MAAO,MAAK,MAAM,YAQd,UACJ,GAAM,MAAO,KAAM,MAAK,OACxB,MAAO,WAAU,OAAO,KAAK,MAAO,KAAK,MAAY,MAOvD,aACE,MAAO,WAAU,OAAO,KAAK,MAAO,KAAK,MAAY,KAAK,iBAStD,SACJ,GAAM,MAAO,KAAM,MAAK,OACxB,MAAO,eAAc,KAAK,MAAO,MASnC,YACE,MAAO,eAAc,KAAK,MAAO,KAAK,iBASlC,QACJ,KAAK,kBACL,GAAM,OAAO,YAAY,KAAK,KAAK,QACnC,GAAI,KAAK,QAAU,UACjB,GAAM,OAAQ,KAAM,OACpB,IACE,MAAO,OAAM,IAAI,GAAU,aAAa,UACxC,IACA,KAAM,IAAI,OACN,kGAIR,MAAO,OAST,WACE,KAAK,kBACL,GAAM,OAAO,YAAY,SAAS,KAAK,QACvC,GAAI,KAAK,QAAU,SACjB,IACE,MAAQ,OAAsB,IAAI,GAAU,aAAa,UAEzD,IACA,KAAM,IAAI,OACN,iGAIR,MAAO,YAIH,SACJ,KAAK,kBACL,GAAM,OAAO,KAAM,aAAY,KAAK,KAAK,QACzC,MAAI,MAAK,QAAU,SACV,MAEA,GAAI,YAAY,MAAoB,QAS/C,UACM,KAAK,YAGT,aAAY,cAAc,MAC1B,KAAK,mBAAqB,OAIxB,cACF,MAAO,MAAK,mBAGd,kBACE,GAAI,KAAK,WACP,KAAM,IAAI,OAAM,uBAYpB,MAAM,QAAU,IACd,MAAO,WAAU,MAAM,KAAM,SAO/B,QACE,MAAA,MAAK,kBACE,UAAU,MAAM,MAQzB,SAAS,QAAU,IACjB,GAAM,MAAO,KAAK,WAClB,MAAO,gBAAe,KAAM,KAAK,MAAO,KAAK,MAAO,SAGtD,KAAqB,OACnB,MAAA,MAAK,kBACE,UAAU,KAAK,KAAW,OAEnC,SAAS,UAAY,GAAM,KAAe,OACxC,MAAA,MAAK,kBACE,YAAY,aAAa,KAAM,UAAW,KAAM,SAI3D,OAAO,eAAe,OAAQ,OAAO,YAAa,CAChD,MAAQ,UAMC,CAAC,CAAC,UAAY,SAAS,MAAQ,MAAQ,SAAS,UAAY,MAC/D,SAAS,iBAAmB,OAncpC,GAAA,UAAA,aAueqD,QAGnD,YACI,aAAgC,UAAoB,KACpD,UACF,MACI,aAAa,MAAO,aAAa,MAAO,aAAa,OAAQ,UAH/B,KAAA,UAAA,UAIlC,KAAK,KAAO,KAWd,OAAO,UACL,GAAI,SAAS,QAAU,KAAK,MAC1B,KAAM,IAAI,OACN,2BAA2B,SAAS,8BACjB,KAAK,qBAE9B,GAAI,CAAM,YAAY,SAAS,MAAO,KAAK,OACzC,KAAM,IAAI,OACN,2BAA2B,SAAS,8BACjB,KAAK,qBAE9B,YAAY,cAAc,MAC1B,KAAK,OAAS,SAAS,OACvB,YAAY,OAAO,KAAM,MAG3B,UACE,YAAY,gBAAgB,MAC5B,KAAK,mBAAqB,KAI9B,OAAO,eAAe,SAAU,OAAO,YAAa,CAClD,MAAQ,UACC,mBAAoB,SAAU,SAAS,QAAU,MACpD,SAAS,iBAAkB,YCnhBnC,GAAA,qBAAA,GAAA,UAAA,oBAAA,CAAA,iBAAA,IAAA,iBAAA,sBAAA,IAAA,sBAAA,eAAA,IAAA,eAAA,eAAA,IAAA,iBCgEA,GAAY,MAAZ,AAAA,UAAY,OACV,MAAA,GAAA,KACA,MAAA,GAAA,KACA,MAAA,GAAA,KACA,MAAA,GAAA,KACA,MAAA,GAAA,KACA,MAAA,GAAA,KACA,MAAA,GAAA,OAPU,MAAA,MAAI,KAqBhB,GAAK,mBAAL,AAAA,UAAK,oBACH,mBAAA,QAAA,UACA,mBAAA,MAAA,QACA,mBAAA,KAAA,QACA,mBAAA,UAAA,cAJG,mBAAA,mBAAiB,KAOtB,GAAK,kBAAL,AAAA,UAAK,mBACH,kBAAA,QAAA,UACA,kBAAA,MAAA,QACA,kBAAA,KAAA,OACA,kBAAA,UAAA,cAJG,kBAAA,kBAAgB,KAOrB,GAAK,qBAAL,AAAA,UAAK,sBACH,qBAAA,QAAA,UACA,qBAAA,MAAA,UACA,qBAAA,KAAA,UACA,qBAAA,UAAA,cAJG,qBAAA,qBAAmB,KAOxB,GAAK,uBAAL,AAAA,UAAK,wBACH,uBAAA,QAAA,YACA,uBAAA,MAAA,YACA,uBAAA,KAAA,YACA,uBAAA,UAAA,cAJG,uBAAA,uBAAqB,KAO1B,GAAM,eAAgB,CACpB,QAAW,oBACX,MAAS,kBACT,KAAQ,iBACR,UAAa,uBAGT,oBAAqB,MAAiB,OAC1C,GAAI,QAAU,UAAY,QAAU,UAClC,GAAI,QAAU,UAAY,QAAU,SAClC,MAAO,SAET,KAAM,IAAI,OAAM,kBAAkB,cAAc,SAElD,MAAO,eAAc,OAAO,OAIxB,oBAAqB,MACzB,MAAO,YAAW,KAAM,SD9GpB,wBAA2C,EAAM,GACrD,GAAI,EAAE,QAAU,EAAE,MAChB,MAAO,CAAC,EAAG,GAEb,GAAM,OAAQ,WAAW,EAAE,MAAO,EAAE,OACpC,MAAO,CAAC,EAAE,KAAK,OAAQ,EAAE,KAAK,QAG1B,0BAA2B,EAAW,GAC1C,OACI,EAAE,QAAU,EAAE,MACd,IAAM,2BAA2B,EAAE,qBACpB,EAAE,2BAGjB,wBAAyB,QAAgB,YAC7C,MAAO,YAAW,KAAK,GAAK,EAAE,KAAO,QAAO,IAexC,+BAAgC,QACpC,GAAM,MAAiB,GACjB,KAAO,GAAI,KACjB,MAAA,qBAAoB,OAAQ,KAAM,MAC3B,KAGT,6BACI,UAA4B,KAAgB,MAC9C,GAAI,WAAa,KACf,OAEF,GAAI,oBAAqB,SACvB,KAAK,KAAK,WACV,OAEF,GAAI,CAAC,WAAW,WACd,OAGF,GAAM,UAAW,UACjB,OAAW,KAAK,WACd,GAAM,KAAM,SAAS,GAChB,KAAK,IAAI,MACZ,MAAK,IAAI,KACT,oBAAoB,IAAK,KAAM,QAMrC,oBAAoB,KAClB,MAAO,OAAM,QAAQ,MAAQ,MAAO,MAAQ,SErF9C,GAAA,aAAA,MAoFA,cAEE,KAAA,oBAAwC,GAExC,KAAA,eAAiB,EACjB,KAAA,SAAW,EACX,KAAA,WAAa,EACb,KAAA,iBAAmB,EACnB,KAAA,eAAiB,EAMjB,KAAA,cAAgB,EAGhB,KAAA,YAAc,EAId,KAAA,WAA2B,GAK3B,KAAA,kBAA8B,GAC9B,KAAA,YAAc,EAEd,KAAA,WAAa,GAAI,SAQjB,KAAA,UAAY,GACZ,KAAA,cAA6B,CAC3B,SAAU,EACV,WAAY,EACZ,UAAW,EACX,QAAS,GACT,OAAQ,QACJ,eACF,MAAO,OAAM,KAAK,GAAI,KAAI,KAAK,QAAQ,IAAI,GAAK,EAAE,UAItD,UACE,OAAW,gBAAgB,MAAK,oBAC9B,KAAK,oBAAoB,cAAc,YAvI7C,OAAA,MA4JE,YAAmB,MAAA,KAAA,IAAA,KAbnB,KAAA,SAA0C,GAC1C,KAAA,gBAKI,GAKI,KAAA,qBAAuB,EAG7B,KAAK,MAAQ,GAAI,kBAGb,SACJ,GAAI,KAAK,oBAAsB,KAC7B,MAAO,MAAK,mBAAmB,KAAK,QAEtC,GAAI,KAAK,iBAAmB,KAC1B,OAEF,GAAM,gBAAiB,KAAK,oBAE5B,OAAS,GAAI,EAAG,EAAI,eAAe,OAAQ,KACzC,GAAM,aAAc,eAAe,GAEnC,GADgB,KAAM,MAAK,kBAAkB,aAAa,SAExD,KAAM,MAAK,WAAW,aACtB,QAIJ,KAAM,IAAI,OACN,6EAIF,WACF,GAAI,KAAK,oBAAsB,KAC7B,KAAM,IAAI,OACN,YAAY,KAAK,kIAIvB,GAAI,KAAK,iBAAmB,MAC1B,GAAM,CAAC,KAAM,WAAa,KAAK,kCAC/B,GAAI,UACF,KAAM,IAAI,OACN,iCAAiC,2HAIvC,KAAK,WAAW,MAElB,MAAO,MAAK,gBAGd,eACE,MAAO,QAAO,KAAK,KAAK,iBAG1B,YAAY,aACV,GAAI,CAAE,eAAe,MAAK,UAGxB,GAAI,cAAe,MAAK,iBACtB,GAAM,CAAC,WAAa,KAAK,kBAAkB,aAC3C,GAAI,UAEF,MAAO,UAGT,OAAO,MAGX,MAAO,MAAK,SAAS,aAGvB,mBAAmB,aAEjB,MAAM,eAAe,MAAK,gBAGnB,KAAK,gBAAgB,aAAa,QAFhC,KAKX,gBACI,YACA,QACA,SAAW,GACb,MAAI,eAAe,MAAK,gBACtB,SAAQ,KACJ,GAAG,iFAEA,IAET,MAAK,gBAAgB,aAAe,CAAC,QAAS,UACvC,SAGH,YAAW,aACf,GAAI,KAAK,gBAAgB,cAAgB,KACvC,KAAM,IAAI,OAAM,iBAAiB,sCAGnC,GADA,KAAK,YAAc,YACf,KAAK,SAAS,cAAgB,MAChC,KAAK,gBAAkB,KACvB,GAAM,CAAC,QAAS,WAAa,KAAK,kBAAkB,aAEpD,GAAI,CADW,WAAY,KAAM,SAAU,SAEzC,MAAO,GAGX,MAAA,MAAK,gBAAkB,KAAK,SAAS,aACrC,KAAK,yBAEL,KAAK,SAAW,GAAI,UAAS,KAAK,iBAE3B,GAGD,yBACU,qBAAqB,KAAK,aAClC,QAAQ,SACV,OAAO,WAAa,MACtB,OAAO,UAAU,KAAK,mBAKpB,yBAAyB,aACf,qBAAqB,aAC7B,QAAQ,SACV,OAAO,aAAe,MACxB,OAAO,YAAY,KAAK,SAAS,gBAW/B,kBAAkB,aAExB,GAAM,sBAAuB,KAAK,gBAAgB,aAClD,GAAI,sBAAwB,KAC1B,KAAM,IAAI,OACN,6BAA6B,uCAGnC,IACE,GAAM,WAAU,qBAAqB,UAMrC,GAAI,WAAW,CAAE,qBAAmB,iBAChC,MAAO,WAAQ,MAAS,YAC1B,GAAM,WAAY,EAAE,KAAK,qBACnB,QACF,UACK,KAAK,iBAEA,UAAY,KAAK,qBACZ,GAET,MAAK,SAAS,aAAe,gBAC7B,KAAK,mBAAqB,KACnB,KAER,MAAM,KAED,WAAY,KAAK,sBAGrB,MAAK,mBAAqB,KAC1B,QAAQ,KACJ,6BAA6B,sBACjC,QAAQ,KAAK,IAAI,OAAS,IAAI,UACvB,KAEjB,MAAA,MAAK,mBAAqB,QACnB,CAAC,QAAS,UAAW,QAE5B,OAAA,MAAK,SAAS,aAAe,UACtB,CAAC,QAAS,GAAM,UAAW,UAE7B,KACP,MAAA,SAAQ,KAAK,6BAA6B,sBAC1C,QAAQ,KAAK,IAAI,OAAS,IAAI,SACvB,CAAC,QAAS,GAAO,UAAW,KAIvC,cAAc,aACZ,GAAI,CAAE,eAAe,MAAK,iBACxB,KAAM,IAAI,OAAM,GAAG,6CAEjB,KAAK,cAAgB,aAAe,KAAK,oBAAsB,MAGjE,KAAK,uBAGH,cAAe,MAAK,UACtB,MAAK,yBAAyB,aAC9B,KAAK,SAAS,aAAa,UAC3B,MAAO,MAAK,SAAS,cAGvB,MAAO,MAAK,gBAAgB,aAGxB,KAAK,cAAgB,aACvB,MAAK,mBAAqB,KAC1B,KAAK,YAAc,KACnB,KAAK,gBAAkB,MAInB,oBACN,GAAI,OAAO,KAAK,KAAK,iBAAiB,SAAW,EAC/C,KAAM,IAAI,OAAM,iCAElB,MAAO,QAAO,KAAK,KAAK,iBAAiB,KAAK,CAAC,EAAW,IAEjD,KAAK,gBAAgB,GAAG,SAC3B,KAAK,gBAAgB,GAAG,UAIxB,kCAEN,GAAM,gBAAiB,KAAK,oBAE5B,OAAS,GAAI,EAAG,EAAI,eAAe,OAAQ,KACzC,GAAM,aAAc,eAAe,GAC7B,CAAC,QAAS,WAAa,KAAK,kBAAkB,aACpD,GAAI,WAAa,QACf,MAAO,CAAC,KAAM,YAAa,WAG/B,KAAM,IAAI,OACN,0EAIN,SAAS,UAAwB,QAC/B,GAAM,MAAO,KAAK,MAAM,WAAW,IAAI,QACjC,WAAa,KAAK,QAClB,OAAS,KAAK,SAAS,QAG7B,WAAW,YAAY,QACvB,KAAK,QAAU,UACf,UAAQ,KAAK,OAAQ,OAAQ,KAAK,MAAO,KAAK,OAC1C,KAAK,0BAGP,KAAK,MAAM,kBAAkB,KAAK,MAAM,kBAAkB,OAAS,KAIvE,KAAgC,SAA6B,IAE3D,GAAI,MAAe,KACnB,GAAI,IAAM,MAER,GAAI,MAAO,WAAa,WACtB,KAAM,IAAI,OAAM,uCAElB,GAAK,cAGL,GAAI,MAAO,WAAa,UAAY,CAAE,oBAAoB,SACxD,KAAM,IAAI,OACN,kFAGN,GAAI,MAAO,KAAO,WAChB,KAAM,IAAI,OACN,kFAGN,KAAO,SAIT,GAAI,QACJ,MAAO,MAAK,UACR,IAAM,KAAK,WAAW,MAAO,IAAM,KAAK,SAAS,QAAS,IACxD,QAAS,KACL,iBAAkB,UACpB,QAAQ,MAAM,2CAET,SAIP,UAAa,MAAmB,IAAiB,GACvD,QACA,IACE,GAAM,KAAM,IACZ,MAAA,OACO,UACA,IACP,KAAA,OACM,IAKF,eACN,MAAO,QAAO,eAIR,iBACN,MAAO,QAAO,iBAYR,MAAM,GACZ,GAAM,GAAI,KAAK,qBAAqB,EAAE,OAAQ,EAAE,MAAO,EAAE,OACnD,OAAS,CAAC,GACV,MAAQ,IAAgB,EAC5B,EAAG,KACD,GAAM,OAAQ,UACR,WAAa,CAAC,EAAG,IACjB,MAAQ,CAAC,OAEf,MAAO,QAAO,cACV,WAAW,UAAQ,KAAK,GAAI,OAC5B,WAAoC,KAAiB,KACrD,UAGF,MAAkB,GACxB,MAAA,MAAK,YAAY,KAAK,MAAM,YAAY,KAAM,OAAQ,CAAC,GAAI,MAAM,MAAO,IACjE,EAgBT,UACI,WAAoB,OAAwB,MAC5C,aAAyB,eAC3B,GAAM,aAAoB,KACpB,cAAsB,KAI5B,MAAO,MAAK,cACR,YAAa,OAAQ,cAAe,WAAY,MAAO,aACvD,eAGE,yBACN,MAAO,MAAK,IAAI,QAAQ,WAGlB,sBACJ,WAAoB,iBACpB,UACF,GAAM,iBAAkB,KAAK,QAAQ,aAGjC,iBAAmB,EACvB,SAAS,QAAQ,OAGf,kBAAqB,KAAK,QAAU,YAAc,EAAI,IAQxD,GAAM,UACF,KAAK,MAAM,kBAAkB,KAAK,MAAM,kBAAkB,OAAS,GACjE,cACF,gBAAkB,iBAAmB,iBAAmB,SAC5D,GAAI,cAAgB,EAClB,KAAM,IAAI,OACN,YAAY,KAAK,6CACb,0CAA0C,eAQtD,cACI,YAA6B,OAC7B,cACA,WAAqB,MAAsB,aAC3C,eACF,GAAI,SACA,MAAkB,GAChB,SAAW,KAAK,WAClB,YAAc,MAChB,YACI,KAAK,MAAM,aAAe,KAAO,KAAK,MAAM,YAAY,KAAO,IAGrE,GAAM,mBAAoB,KAAK,MAAM,SAC/B,mBAAqB,KAAK,MAAM,WAElC,KAAK,0BACP,KAAK,MAAM,kBAAkB,KAAK,GAGpC,GAAI,aACA,KAAK,aAAe,MAMtB,KAAK,QAEP,GAAM,QAAS,UAAU,WAAY,KAAK,aACtC,IACJ,GAAI,QAAU,KACZ,YAAa,KACX,GAAM,kBAAmB,KAAK,QAAQ,aACtC,IAAM,OAAO,WAAW,CAAC,OAAQ,MAAO,QAAS,KAAK,UACtD,GAAM,UAAW,MAAM,QAAQ,KAAO,IAAM,CAAC,KACzC,KAAK,0BACP,KAAK,sBAAsB,WAAY,iBAAkB,UAG3D,GAAM,YAAa,SAAS,IAAK,UAI/B,GAAK,QAAmB,MAAQ,KAC9B,MAAO,SAET,GAAM,CAAC,OAAQ,MAAO,OAAS,QAC/B,MAAO,MAAK,qBAAqB,OAAQ,MAAO,SAOlD,GAAI,UACF,GAAI,eACA,KAAK,sBAAsB,WAAY,OAAQ,YACnD,GAAI,eAAiB,MAKf,eAAiB,MACnB,eAAgB,IAElB,GAAM,YAAa,WAAW,OAAO,CAAC,EAAG,IAAM,cAAc,IAC7D,cAAiB,eAAgB,IAAI,QAAQ,OAAO,YAEtD,MAAQ,KAAK,2BAA2B,eAE1C,MAAO,kBAGT,GAAI,aAAe,KACjB,KAAM,IAAI,OAAM,iBACZ,8DAEN,GAAM,UAA0B,UAI1B,CAAC,UAGL,OAAQ,QAAQ,IAAI,SAAU,KAAK,KAAK,KAAK,MAAM,aAGrD,YAAa,KACX,GAAM,kBAAmB,KAAK,QAAQ,aACtC,IAAM,KAAK,KAAK,IAAM,YAAY,KAAK,QAAS,WAChD,GAAM,MAAQ,MAAM,QAAQ,KAAO,IAAM,CAAC,KAC1C,MAAI,MAAK,0BACP,KAAK,sBAAsB,WAAY,iBAAkB,MAEpD,MAKX,GAAI,eACJ,MAAA,MAAK,UACD,IAAM,KAAK,MAAM,cAAe,IAAM,KAAK,MAAM,cAAe,KAC1D,CAAC,KAAK,IAAI,QAAQ,UAAY,CAAC,KAAK,MAAM,UAC5C,QAAU,cAEV,eAAgB,KAAK,SAAS,cAC1B,WAAY,OAAQ,IAAM,eAC1B,KAAK,IAAI,QAAQ,UACnB,KAAK,SAAS,iBAAiB,eAEjC,QAAU,cAAc,WAI5B,UACF,KAAK,YACD,WAAY,OAAQ,QAAS,cAAe,MAAO,OAGrD,KAAK,MAAM,WACb,KAAK,MAAM,cAAc,QAAQ,KAAK,CACpC,KAAM,WACN,WAAY,KAAK,MAAM,SAAW,kBAClC,mBAAoB,KAAK,MAAM,SAC/B,aAAc,KAAK,MAAM,WAAa,mBACtC,qBAAsB,KAAK,MAAM,WACjC,YAAa,OAAO,KAAK,QAAQ,IAC7B,KAAO,OAAO,MAAQ,KAAO,OAAO,KAAK,MAAQ,MACrD,aAAc,QAAQ,IAAI,MAAQ,KAAK,OACvC,aAAc,cAAc,OAC5B,UAAW,cAAc,YAGrB,MAAM,QAAQ,KAAO,QAAU,QAAQ,GAQzC,2BAA2B,SAEjC,MADc,SAAQ,IAAI,SAAU,KAAK,KAAK,KAAK,MAAM,WAcnD,sBACJ,WAAoB,OACpB,SACF,GAAM,YAAa,YAAY,YAC/B,GAAI,YAAc,MAChB,GAAM,cAAyB,WAAW,cAAgB,GACpD,cAA2B,WAAW,eAAiB,GAIzD,mBACA,WAAW,cACR,QACD,MAAM,QAAQ,QACd,IAAM,0DAEV,mBAAqB,OAAO,KAAK,QAAQ,IAAK,KAAQ,OAAO,OAE7D,mBAAqB,aAAa,IAAK,WAAc,OAAO,YAG9D,GAAM,qBACF,QAAQ,OAAO,CAAC,EAAG,IAAM,cAAc,IAE3C,MAAO,oBAAmB,OAAO,qBAInC,MAAO,MAQT,WACI,OAAoB,MAAiB,MACrC,WACF,GAAI,QAAU,KACZ,KAAM,IAAI,OAAM,iDAElB,MAAQ,OAAS,UACjB,UAAU,WAAW,KAAK,QAC1B,GAAI,aAAc,OACd,QAAU,UAAiB,SAAS,OAAO,KAC7C,aAAe,OAAoB,IAAI,GAAU,aAAa,KAEhE,GAAM,QAAS,UAAQ,MAAM,YAAa,MAAO,OAC3C,EAAI,GAAI,QAAO,MAAO,MAAO,OAAQ,KAAK,gBAIhD,GAHA,KAAK,OAAO,EAAG,WAGX,QAAU,UACZ,GAAM,MAAO,KAAK,MAAM,WAAW,IAAI,QACjC,SAAW,qBAAqB,aACtC,KAAK,MAAM,UAAY,SAAW,KAAK,MACvC,KAAK,MAAQ,SAEf,MAAO,GAQT,qBACI,OAAgB,MAAiB,MACjC,WACF,MAAQ,OAAS,UACjB,GAAM,GAAI,GAAI,QAAO,MAAO,MAAO,OAAQ,KAAK,gBAChD,MAAA,MAAK,OAAO,EAAG,WACR,EAGT,aACI,aAAsB,UAAY,GAAM,KACxC,OACF,KAAO,MAAQ,KAAK,iBAAiB,WACjC,OAAS,MAAQ,QAAU,aAAa,OAC1C,cAAe,aAAa,KAAK,QAEnC,GAAM,GAAI,GAAI,UAAS,aAAc,UAAW,KAAM,KAAK,gBAC3D,GAAI,KAAK,MAAM,oBAAoB,EAAE,OAAS,KAC5C,KAAM,IAAI,OAAM,sBAAsB,EAAE,+BAE1C,MAAA,MAAK,MAAM,oBAAoB,EAAE,MAAQ,EACzC,KAAK,OAAO,EAAG,KAAK,SACb,EAGT,OAAO,EAAW,WAChB,GAAM,UAAW,KAAK,MAAM,WAAW,IAAI,EAAE,QACzC,KAAK,MAAM,WAAW,IAAI,EAAE,QAAQ,SACpC,EAKJ,GAJA,KAAK,MAAM,aACP,EAAE,QAAU,UACd,KAAK,MAAM,mBAET,WAAa,GACf,KAAK,MAAM,iBAIX,GAAI,OAAQ,EACR,EAAE,QAAU,aAAe,EAAE,QAAU,UACzC,OAAQ,EAAE,KAAY,gBAAgB,EAAE,QAE1C,KAAK,MAAM,WAAW,IAAI,EAAE,OAAQ,CAClC,QAAS,WAAW,KAAK,QACzB,MAAO,EAAE,MACT,MAAO,EAAE,MACT,MACA,SAAU,IAEZ,KAAK,MAAM,UAAY,MAGzB,KAAK,MAAM,WAAW,IAAI,EAAE,QAAQ,WAE9B,YAAa,WACjB,KAAK,MAAM,GAIf,cAAc,GACZ,GAAI,CAAC,KAAK,MAAM,WAAW,IAAI,EAAE,QAC/B,OAGF,KAAK,MAAM,aACP,EAAE,QAAU,UACd,KAAK,MAAM,mBAEb,GAAM,MAAO,KAAK,MAAM,WAAW,IAAI,EAAE,QACxB,KAAK,UAEN,EAGV,GAAE,QAAU,aACd,MAAK,MAAM,UAAY,KAAK,OAE9B,KAAK,MAAM,iBAEX,KAAK,QAAQ,YAAY,EAAE,QAC3B,KAAK,MAAM,WAAW,OAAO,EAAE,SAE/B,KAAK,MAAM,WAAW,IAAI,EAAE,QAAQ,WAOxC,mBACE,OAAW,WAAW,MAAK,MAAM,qBAC/B,GAAM,GAAI,KAAK,MAAM,oBAAoB,SACzC,KAAK,gBAAgB,IAIzB,gBAAgB,GACd,KAAK,cAAc,GACf,KAAK,MAAM,oBAAoB,EAAE,OAAS,MAC5C,MAAO,MAAK,MAAM,oBAAoB,EAAE,MAI5C,SACE,GAAM,MAAO,KAAK,QAAQ,SAC1B,MAAA,MAAK,WAAa,KAAK,MAAM,WAC7B,KAAK,eAAiB,KAAK,MAAM,eACjC,KAAK,SAAW,KAAK,MAAM,SACvB,KAAK,MAAM,iBAAmB,GAChC,MAAK,WAAa,GACd,KAAK,SAAW,MAClB,MAAK,QAAU,IAEjB,KAAK,QAAQ,KACT,0EAGC,UAGH,SAAQ,OAEZ,KAAK,MAAM,UAAY,GAEvB,GAAM,YAAa,KAAK,MAAM,SACxB,gBAAkB,KAAK,MAAM,WAEnC,KAAK,MAAM,cAAc,QAAU,GACnC,KAAK,MAAM,cAAc,OAAS,KAAM,SAExC,KAAK,MAAM,UAAY,GAEvB,KAAK,MAAM,cAAc,UAAY,KAAK,IACtC,GAAG,KAAK,MAAM,cAAc,QAAQ,IAAI,GAAK,EAAE,qBACnD,KAAK,MAAM,cAAc,SAAW,KAAK,MAAM,SAAW,WAC1D,KAAK,MAAM,cAAc,WACrB,KAAK,MAAM,WAAa,gBAC5B,OAAW,UAAU,MAAK,MAAM,cAAc,QAC5C,OAAO,aAAe,KAAM,QAAO,aACnC,OAAO,UAAY,KAAM,QAAO,UAElC,MAAO,MAAK,MAAM,cAGpB,WACE,MAAO,MAAK,MAAM,cAAgB,GAAK,KAAK,MAAM,cAAgB,EAG5D,YACJ,WAAoB,OAAwB,QAC5C,cAAyB,MAAiB,OAC5C,GAAM,UACF,CAAC,GAAI,KAAK,MAAM,iBAAkB,WAAY,OAAQ,QAAS,OAE7D,WAAa,YAAY,YAC3B,YAAc,MAChB,eAAgB,WAAW,UAEzB,eAAiB,MACnB,UAAS,SAAY,KAGnB,KAAM,IAAI,IAAI,CAAC,GAAI,KACjB,GAAI,IAAM,MACR,GAAM,QAAS,QAAQ,GACjB,KAAY,oBAAoB,OAAO,KAAM,OAAO,OAC1D,MAAO,MAAK,WAAW,KAAM,OAAO,MAAO,OAAO,OAEpD,MAAO,MAIF,cAAc,IAAI,OAAS,EAAI,IAAM,IAAI,GAAI,MAAO,SAG/D,KAAK,MAAM,WAAW,KAAK,UAG7B,KAAuB,QACrB,MAAA,QAAO,KAAO,GACP,OAGD,YACF,KAAK,MAAM,gBAAkB,GAC/B,MAAK,MAAM,WAAa,IAE1B,KAAK,MAAM,gBAGL,UACN,KAAK,MAAM,gBAOb,WAAW,MACT,GAAM,WAAwB,CAC5B,MAAO,GACP,KAAM,gBACN,GAAI,KAAK,MAAM,eAEb,MACF,WAAU,KAAO,MAEnB,KAAK,MAAM,WAAW,KAAK,WAC3B,KAAK,MAAM,YAAc,UAO3B,SAAS,QACP,GAAM,wBAAyB,sBAAsB,QAC/C,0BACF,GAAI,KAAI,uBAAuB,IAAI,GAAK,EAAE,KAG9C,OAAS,GAAI,EAAG,EAAI,KAAK,MAAM,YAAY,MAAM,OAAQ,KACvD,GAAM,SAAS,KAAK,MAAM,YAAY,MAAM,GACxC,CAAC,QAAO,MAAQ,CAAC,0BAA0B,IAAI,QAAO,KACxD,QAAO,UAIX,GAAM,UAAW,KAAK,MAAM,WAAW,MACvC,KAAK,MAAM,YAAc,KAAK,MAAM,WAAW,SAAW,EACtD,KACA,KAAK,MAAM,WAAW,KAAK,MAAM,WAAW,OAAS,GAGzD,uBAAuB,QAAQ,UAGzB,CAAC,QAAO,MAAQ,QAAO,UAAY,SAAS,IAC9C,KAAK,MAAM,WAWjB,UACI,EAAY,GAAc,GAC1B,iBAAmB,IAGrB,GAFK,OACD,GAAG,OAAS,EAAG,IAAM,6CACrB,IAAM,MAAQ,GAAG,QAAU,UAC7B,KAAM,IAAI,OAAM,0CAA0C,GAAG,UAG/D,GAAM,GAAI,KAAK,UACX,IAAM,KAAK,YAAa,IAAM,KAAK,UACnC,IAAM,KAAK,KAAK,UAAW,IAE1B,OACD,YAAa,QACb,IAAM,kDAEV,GAAM,cAAe,qBAAqB,KAAK,MAAM,WAAY,GAAI,GACrE,GAAI,CAAC,kBAAoB,aAAa,SAAW,GAAK,GAAG,OAAS,EAChE,KAAM,IAAI,OACN,uIAKN,MAAO,MAAK,KAAK,WAAY,KAC3B,GAAM,wBAAuD,GAC7D,uBAAuB,EAAE,IAAO,IAAM,KAAQ,KAAK,EAAE,OAAS,GAG9D,uBACI,uBAAwB,aAExB,IAAK,KAAK,KAAK,IAEf,KACJ,GAAM,QAAQ,GAAG,IAAI,GAAK,uBAAuB,EAAE,KAEnD,MAAI,MAAK,MAAM,gBAAkB,GAG/B,MAAK,MAAM,WAAW,QAAQ,OAC5B,OAAW,WAAU,MAAK,MACxB,QAAO,YAGX,KAAK,MAAM,WAAa,MAEnB,CAAC,MAAO,EAAG,MAAA,UAItB,WAA6B,GAE3B,MAAK,QACI,WAAW,GAChB,IAAM,qDACH,IAAI,UACJ,OACD,OAAO,MAAM,GAAK,YAAa,SAC/B,IAAM,oEAGV,GAAI,KAIE,SAA2B,GACjC,MAAA,QAAO,QAAQ,CAAC,OAAO,KACrB,SAAS,GAAK,SAET,KAAK,cACR,CAAC,EAAG,OACF,KAAM,EAAM,GAAG,OAAQ,MAClB,OACD,IAAI,gBAAiB,QACrB,IAAM,8FAEL,OACI,WAAW,IAAI,UACpB,IAAM,oGAEH,IAAI,OAEb,SACA,CAAC,GAAO,SACN,GAAM,SAAU,IAAI,SAAS,GAAI,OAC3B,OACF,MAAM,QAAQ,SAAW,QAAU,CAAC,SACnC,OACD,OAAM,SAAW,OAAO,OACxB,IAAM,uKAGL,OACD,OAAM,MAAM,GAAK,YAAa,SAC9B,IAAM,wIAGV,GAAM,SAAyC,GAC/C,MAAA,QAAM,QAAQ,CAAC,MAAM,KACnB,QAAQ,GAAK,IAAM,QAEd,WAKjB,SAAS,QAGP,MADa,MAAK,MAAM,WAAW,IAAI,QAC3B,QAAQ,SAAS,QAE/B,KAAK,QAGH,MADa,MAAK,MAAM,WAAW,IAAI,QAC3B,QAAQ,KAAK,aAGrB,MAAK,OACT,GAAM,OAAQ,MACR,WAAa,KAAM,MAAK,QAAQ,KAAK,OAC3C,MAAA,YAAW,OAAS,MAAQ,MACrB,WASD,MAAwB,QAC9B,MAAI,MAAK,MAAM,aAAe,MAC5B,QAAO,QAAU,KAAK,MAAM,YAAY,GACxC,KAAK,MAAM,YAAY,MAAM,KAAK,SAG7B,UAGL,uBACF,MAAO,MAAK,MAAM,oBAOpB,QAEE,KAAK,uBAEL,KAAK,MAAM,UACX,KAAK,IAAI,QACT,KAAK,MAAQ,GAAI,aAEjB,OAAW,eAAe,MAAK,SAC7B,KAAK,yBAAyB,aAC9B,KAAK,SAAS,aAAa,UAC3B,MAAO,MAAK,SAAS,aAEvB,KAAK,YAAc,KACnB,KAAK,gBAAkB,KACvB,KAAK,mBAAqB,OAnuBb,OAAA,aAAe,EAKf,OAAA,eAAiB,EAkuBlC,cAAc,OACZ,GAAM,QAAS,mBAAmB,cAAc,OAAQ,WACxD,MAAO,QAAO,WAAW,OAAQ,MAAO,WAGpC,2BACJ,GAAM,IAAK,qBACX,GAAI,GAAG,WAAa,MAClB,GAAM,aAAc,GAAI,aAAY,IACpC,GAAG,UAAY,GAAI,QAAO,aAE5B,MAAA,sBAAqB,GAAG,UAAU,KAIlC,iBAAiB,IAAM,GAAG,WACnB,GAAG,UAGL,GAAM,QAAS,kBAQhB,aAAc,EAAW,GAE7B,GAAM,QAAS,CAAC,EAAG,GACnB,MAAO,QAAO,UAAU,IAAK,QCltC/B,GAAA,qBAAA,GAAA,UAAA,oBAAA,CAAA,UAAA,IAAA,UAAA,SAAA,IAAA,WAkBA,+BACE,MAAO,OAAO,YAAc,aAAe,WAAa,KAGpD,oBACJ,GAAI,uBAEF,GAAM,GAAI,UAAU,WAAa,UAAU,QAAW,OAAe,MAErE,MAAO,2TACK,KAAK,IAEb,0kDACK,KAAK,EAAE,OAAO,EAAG,IAE5B,MAAO,GAGH,qBACJ,MAAQ,OAAO,SAAW,aAAe,OAAO,UAAY,MAEvD,MAAO,oBAAsB,YClBpC,GAAM,MAAM,MAOZ,KAAI,aAAa,QAAS,IAAM,GAAO,aACjC,YACF,QAAQ,KACJ,iJAOR,KAAI,aAAa,aAAc,IAAkB,aAGjD,KAAI,aACA,UACA,IAAO,MAAO,UAAY,aACrB,MAAO,SAAQ,UAAa,aAC5B,MAAO,SAAQ,SAAS,MAAS,aAG1C,KAAI,aACA,YACA,IAAM,MAAO,YAAc,aAAe,WAAa,MACnD,UAAU,WAAa,MAAQ,SAAS,KAAK,UAAU,YACvD,aAAa,KAAK,UAAU,SAMpC,KAAI,aAAa,OAAQ,IAAM,IAM/B,KAAI,aACA,qCAAsC,IAAM,KAAI,QAAQ,UAG5D,KAAI,aAAa,+BAAgC,IAAM,IAGvD,KAAI,aAAa,UAAW,IAAM,IAGlC,KAAI,aAAa,+BAAgC,IAAM,ICnDjD,oBAAqB,IAAiB,OAC1C,GAAI,WAAwB,IAE5B,GAAI,aAAa,KACf,MAAO,SAAU,SAAW,GAAK,CAAC,IAAI,QAExC,GAAI,CAAC,MAAM,QAAQ,KACjB,MAAO,GAET,GAAM,OAAkB,GAExB,KAAO,MAAM,QAAQ,YACd,aAAa,YAAc,QAAU,UAC1C,MAAM,KAAK,UAAU,QACrB,UAAY,UAAU,GAExB,MAAI,OAAM,QAAQ,MACd,MAAM,QAAQ,uCAChB,2BAA2B,IAAK,MAAO,IAGlC,MAGT,oCACI,IAAiB,MAAiB,SAEpC,GADA,QAAU,SAAW,GACjB,CAAE,MAAM,QAAQ,MAAS,CAAC,aAAa,MACzC,OACI,MAAM,SAAW,EACjB,IAAM,eAAe,QAAQ,KAAK,+DACU,MAAM,eACtD,OAEF,OACI,MAAM,OAAS,EACf,IAAM,eAAe,QAAQ,KAAK,oDACR,IAAI,mBAClC,OACI,IAAI,SAAW,MAAM,GACrB,IAAM,eAAe,QAAQ,KAAK,sBAAsB,MAAM,wBACrC,IAAI,mBACjC,GAAM,UAAW,MAAM,MAAM,GAC7B,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,EAAE,EAChC,2BAA2B,IAAI,GAAI,SAAU,QAAQ,OAAO,IAIhE,qBACI,cACA,YAAuB,QAAiB,cAC1C,GAAI,gBAAkB,qBAGtB,GAAI,eAAiB,KACnB,KAAM,IAAI,OAAM,kCAElB,GAAI,gBAAkB,WAAa,gBAAkB,aACjD,gBAAkB,WAAa,cAAgB,SACjD,KAAM,IAAI,OACN,aAAa,uBAAuB,yBAC9B,iCAAiC,uBAIzC,yBACF,EAAiB,QAAiB,aAClC,aAAuD,WACzD,GAAI,YAAa,QACf,MAAA,aAAY,aAAc,EAAE,MAAO,QAAS,cACrC,EAET,GAAI,eAAgB,WAAW,GAS/B,GANI,gBAAkB,UAClB,CAAC,OAAQ,QAAS,WAAW,QAAQ,eAAiB,GACxD,eAAgB,cAElB,YAAY,aAAc,cAAe,QAAS,cAE7C,GAAK,MACL,CAAC,aAAa,IAAM,CAAC,MAAM,QAAQ,IAAM,MAAO,IAAM,UACtD,MAAO,IAAM,WAAa,MAAO,IAAM,UAC1C,GAAM,MAAO,GAAK,KAAO,OAAU,EAAS,YAAY,KACxD,KAAM,IAAI,OACN,aAAa,uBAAuB,0DACF,SAExC,GAAM,eAAgB,WAAW,EAAG,eAChC,CAAC,aAAa,IAAM,CAAC,MAAM,QAAQ,IACrC,GAAI,CAAC,IAGP,GAAM,QAAS,gBAAkB,SAC7B,aAAa,EAAG,eAChB,QAAQ,EAAe,GAHJ,IAIvB,MAAO,QAAO,WAAW,OAAQ,cAAe,eAG5C,8BACF,IAA0B,QAAiB,aAC3C,aAAuD,WACzD,GAAI,CAAC,MAAM,QAAQ,KACjB,KAAM,IAAI,OACN,YAAY,qBAAqB,2DAIvC,MADgB,KACD,IACX,CAAC,EAAG,IACA,gBAAgB,EAAG,GAAG,WAAW,KAAM,aAAc,eCnHxD,GAAM,iBAAkB,OAOzB,YAAiC,GACrC,GAAM,MAAO,OAAO,KAAK,GACzB,GAAI,KAAK,SAAW,EAClB,KAAM,IAAI,OACN,yGAEG,KAAK,gBAGd,GAAI,QAAS,KAAK,GACZ,GAAK,EAAE,QAGT,OAAO,SAAS,MAClB,QAAS,OAAO,UAAU,EAAG,OAAO,OAAS,IAI/C,OAAS,OAAS,gBAGlB,GAAM,IAAK,IAAI,QACb,OAAO,WAAW,QAClB,IACE,GAAM,QAAS,GAAG,GAAG,MACrB,MAAI,WAAU,SACZ,QAAQ,MAAM,2CAEhB,OAAO,SAAS,QACT,aACA,IACP,KAAA,QAAO,SAAS,MACV,KAGV,MAAA,QAAO,eAAe,GAAI,OAAQ,CAAC,MAAO,OAAQ,aAAc,KAGzD,GClBT,kBAAoC,MAAoB,OACtD,GAAM,OAAQ,gBAAgB,MAAM,OAAQ,WACtC,MAAQ,gBAAgB,MAAM,OAAQ,WACvC,kBACD,MAAM,MAAO,MAAM,MACnB,yBAAyB,MAAM,aAAa,MAAM,8CAGtD,GAAM,QAAwB,CAAC,KAAM,MAAO,KAAM,OAClD,MAAO,QAAO,UAAU,QAAS,QAG5B,GAAM,SAAU,GAAG,CAAC,WClCrB,oBACF,OAAoB,MAAiB,cACrC,OAIF,GAHI,OAAS,MACX,OAAQ,WAAW,SAEjB,QAAU,YACZ,KAAM,IAAI,OACN,oFAGN,GAAI,CAAC,aAAa,SAAW,CAAC,MAAM,QAAQ,SACxC,MAAO,SAAW,UAAY,MAAO,SAAW,WAChD,MAAO,SAAW,SACpB,KAAM,IAAI,OACN,4HAGN,GAAI,OAAS,MACX,mCAAmC,OAEnC,GAAM,cAAe,cAAc,OAC7B,aAAe,cAAc,eACnC,OACI,eAAiB,aACjB,IACI,iCAAiC,kCAC9B,+BAA+B,gBAE1C,OAAS,GAAI,EAAG,EAAI,cAAc,OAAQ,EAAE,GAC1C,GAAM,UAAW,cAAc,GACzB,kBAAoB,IAAM,cAAc,OAAS,EACnD,WAAa,cAAc,MAAM,MAAM,IACvC,GACJ,OACI,cAAc,KAAO,MAAM,IAAM,CAAC,kBAClC,IAAM,gDACE,qDACM,aAItB,MAAI,CAAC,aAAa,SAAW,CAAC,MAAM,QAAQ,SAC1C,QAAS,CAAC,SAGZ,MAAQ,OAAS,cACjB,OAAS,QAAU,SACf,aAAa,OAAQ,OACrB,QAAQ,OAAoB,GAAI,IAC7B,OAAO,WAAW,OAAsB,MAAO,OCtBlD,gBACF,OAAoB,MAAqB,OAC3C,GAAM,eAAgB,WAAW,OAAQ,OACzC,MAAO,YAAW,OAAQ,MAAO,cAAe,OCjC3C,GAAM,sBAAkD,CAC7D,QAAW,EACX,QAAW,EACX,MAAS,EACT,OAAU,EACV,MAAS,EACT,KAAQ,EACR,UAAa,GCFT,wBAA0B,EAmBhC,6BACI,QAAuC,OAGzC,GAAM,OAAgC,GAChC,aAA2C,GAE3C,MAAkB,MAAM,QAAQ,SAClC,QAAQ,IAAI,SAAU,QAAO,MAC7B,OAAO,KAAK,SAEhB,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,EAAE,GAClC,GAAM,MAAO,MAAM,GACb,EAAI,MAAM,QAAQ,SAAW,QAAQ,GAAG,OAAS,QAAQ,MAC/D,GAAI,EAAE,QAAU,WAAa,EAAE,QAAU,SAAW,EAAE,QAAU,QAC5D,EAAE,QAAU,UAAY,EAAE,QAAU,YACtC,KAAM,IAAI,OAAM,gCAAgC,UAAU,EAAE,SAE9D,GAAM,MAA6B,CAAC,KAAM,MAAO,EAAE,MAAO,MAAO,EAAE,OACnE,GAAI,EAAE,QAAU,UACd,GAAM,WAAY,GAAI,SAAoB,KAAM,WAC9C,GAAM,MAAO,KAAM,GAAE,QACf,cAAgB,KAAK,OAAO,CAAC,GAAG,IAAM,GAAI,EAAE,OAAQ,GACtD,wBAA0B,KAAK,OAC7B,MAAQ,GAAI,YAAW,eACzB,OAAS,EACb,OAAS,IAAI,EAAG,GAAI,KAAK,OAAQ,MAC/B,GAAM,KAAM,KAAK,IACX,cACF,GAAI,YAAW,GAAI,aAAY,CAAC,IAAI,SAAS,QACjD,MAAM,IAAI,cAAe,QACzB,QAAU,wBACV,MAAM,IAAI,IAAK,QACf,QAAU,IAAI,OAEhB,QAAQ,SAEV,aAAa,KAAK,eAElB,cAAa,KAAK,EAAE,QAElB,OAAS,MACX,MAAK,MAAQ,OAEf,MAAM,KAAK,MAGb,GAAM,cAAe,KAAM,SAAQ,IAAI,cACvC,MAAO,CAAC,KAAM,uBAAuB,cAAe,OAkBhD,uBACF,QAAqB,OAEvB,GAAM,KAAsB,GACxB,cACA,OAAS,EACb,OAAW,QAAQ,QACjB,GAAM,MAAO,KAAK,KACZ,MAAQ,KAAK,MACb,MAAQ,KAAK,MACb,KAAO,cAAc,OACvB,OAEJ,GAAI,gBAAkB,OACpB,GAAM,cAAe,KAAK,aAC1B,GAAI,aAAa,QAAU,SAAW,aAAa,QAAU,UAC3D,GAAI,CAAE,QAAS,eAAgB,SAAW,eACxC,KAAM,IAAI,OACN,UAAU,KAAK,0BAA0B,aAAa,oEAGnD,aAAa,QAAU,WAChC,GAAI,QAAU,UACZ,KAAM,IAAI,OACN,UAAU,KAAK,0BAA0B,aAAa,yDACH,cAGzD,MAAM,IAAI,OACN,UAAU,KAAK,uCACO,aAAa,+EAIzC,GAAM,wBAAyB,qBAAqB,aAAa,OAC3D,WACF,QAAO,MAAM,OAAQ,OAAS,KAAO,wBACnC,eAAkB,aAAa,QAAU,QAC3C,GAAI,YAAW,YACf,GAAI,aAAY,YACpB,GAAI,QAAU,UACZ,GAAI,aAAa,QAAU,SAAW,aAAa,QAAU,UAC3D,OAAS,GAAI,cAAa,eAAe,QACzC,OAAS,GAAI,EAAG,EAAI,eAAe,OAAQ,KACzC,GAAM,GAAI,eAAe,GACzB,OAAO,GAAK,EAAI,aAAa,MAAQ,aAAa,aAE3C,aAAa,QAAU,UAC5B,gBAAkB,QACpB,eAAgB,qBAElB,OAAS,cAAc,oBAEvB,MAAM,IAAI,OACN,iCAAiC,aAAa,0CAG3C,QAAU,SACnB,GAAI,aAAa,QAAU,SAAW,aAAa,QAAU,SAC3D,KAAM,IAAI,OACN,iCAAiC,aAAa,gCAGpD,OAAS,GAAI,YAAW,eAAe,QACvC,OAAS,GAAI,EAAG,EAAI,eAAe,OAAQ,KACzC,GAAM,GAAI,eAAe,GACzB,OAAO,GAAK,KAAK,MAAM,EAAI,aAAa,MAAQ,aAAa,UAG/D,MAAM,IAAI,OAAM,gCAAgC,UAAU,SAE5D,QAAU,KAAO,+BACR,QAAU,UACnB,GAAM,OAAO,cAAc,KAAK,OAChC,OAAS,GACT,OAAS,GAAI,EAAG,EAAI,MAAM,KACxB,GAAM,YAAa,GAAI,aACnB,QAAO,MAAM,OAAQ,OAAS,0BAA0B,GAC5D,QAAU,wBACV,GAAM,OAAQ,GAAI,YAAW,QAAO,MAAM,OAAQ,OAAS,aAC1D,OAAwB,KAAK,OAC9B,QAAU,iBAGZ,GAAM,aAAc,qBAAqB,OACnC,WAAa,QAAO,MAAM,OAAQ,OAAS,KAAO,aAExD,GAAI,QAAU,UACZ,OAAS,GAAI,cAAa,oBACjB,QAAU,QACnB,OAAS,GAAI,YAAW,oBACf,QAAU,OACnB,OAAS,GAAI,YAAW,oBACf,QAAU,aACnB,OAAS,GAAI,cAAa,YAC1B,GAAM,OAAO,GAAI,cAAa,OAAO,OAAS,GACxC,OAAQ,GAAI,cAAa,OAAO,OAAS,GAC/C,OAAS,GAAI,EAAG,EAAI,MAAK,OAAQ,IAC/B,MAAK,GAAK,OAAO,EAAI,GACrB,OAAM,GAAK,OAAO,EAAI,EAAI,GAE5B,GAAM,YAAa,OAAO,MAAM,MAAO,WACjC,YAAc,OAAO,OAAO,MAAO,WACzC,IAAI,MAAQ,QAAQ,WAAY,aAChC,WAAW,UACX,YAAY,cAEZ,MAAM,IAAI,OAAM,gCAAgC,UAAU,SAE5D,QAAU,KAAO,YAEf,QAAU,aACZ,KAAI,MAAQ,OAAO,OAAQ,MAAO,QAGtC,MAAO,KAMH,gCAAiC,IAErC,GAAI,KAAO,KACT,KAAM,IAAI,OAAM,wBAAwB,KAAK,UAAU,OAGzD,GAAI,iBAAkB,EAShB,aAA6B,GACnC,GAAG,QAAS,IAMV,GALA,iBAAmB,EAAE,WAErB,aAAa,KACT,EAAE,aAAe,EAAE,OAAO,WAAa,EACA,GAAK,GAAE,YAAoB,IAClE,CAAE,aAAoB,eAAgB,YAAoB,aACxD,YAAoB,aACxB,KAAM,IAAI,OAAM,mCAAmC,EAAE,YAAY,UAKrE,GAAM,GAAI,GAAI,YAAW,iBACrB,OAAS,EACb,MAAA,cAAa,QAAS,IACpB,EAAE,IAAI,GAAI,YAAW,EAAE,QAAS,QAChC,QAAU,EAAE,aAGP,EAAE,OAIX,GAAM,eAAgB,MAAO,SAAW,aACnC,OAAO,OAAS,aAAe,MAAO,OAAS,aAC/C,MAAO,OAAS,aAWf,0BAA2B,KAC/B,MAAI,eACK,OAAO,WAAW,KAEpB,GAAI,MAAK,CAAC,MAAM,KASnB,mCAAoC,SACxC,GAAI,cACF,MAAO,QAAO,KAAK,SAAQ,SAAS,UAEtC,GAAM,KAAM,GAAI,YAAW,SACvB,EAAI,GACR,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,EAAI,EAAG,IACrC,GAAK,OAAO,aAAa,IAAI,IAE/B,MAAO,MAAK,GASR,mCAAoC,KACxC,GAAI,eACF,GAAM,KAAM,OAAO,KAAK,IAAK,UAC7B,MAAO,KAAI,OAAO,MAAM,IAAI,WAAY,IAAI,WAAa,IAAI,YAE/D,GAAM,GAAI,KAAK,KACT,QAAS,GAAI,YAAW,EAAE,QAChC,OAAS,GAAI,EAAG,EAAI,EAAE,OAAQ,EAAE,EAC9B,QAAO,IAAI,CAAC,EAAE,WAAW,IAAK,GAEhC,MAAO,SAAO,OASV,iCAAkC,SACtC,GAAI,QAAQ,SAAW,EACrB,MAAO,SAAQ,GAGjB,GAAI,iBAAkB,EACtB,QAAQ,QAAS,UACf,iBAAmB,QAAO,aAG5B,GAAM,MAAO,GAAI,YAAW,iBACxB,OAAS,EACb,MAAA,SAAQ,QAAS,UACf,KAAK,IAAI,GAAI,YAAW,SAAS,QACjC,QAAU,QAAO,aAEZ,KAAK,OAUR,kBAAmB,MACvB,GAAM,WAAY,IAElB,IADA,KAAO,KAAK,OACL,KAAK,SAAS,YACnB,KAAO,KAAK,MAAM,EAAG,KAAK,OAAS,GAErC,GAAM,OAAQ,KAAK,MAAM,WACzB,MAAO,OAAM,MAAM,OAAS,GAQxB,sCAAuC,gBAE3C,GAAI,eAAe,wBAAyB,aAC1C,KAAM,IAAI,OAAM,uDAGlB,MAAO,CACL,UAAW,GAAI,MACf,kBAAmB,OACnB,mBAAoB,eAAe,eAAiB,KAChD,EACA,iBAAiB,KAAK,UAAU,eAAe,gBACnD,iBAAkB,eAAe,aAAe,KAC5C,EACA,iBAAiB,KAAK,UAAU,eAAe,cACnD,gBAAiB,eAAe,YAAc,KAC1C,EACA,eAAe,WAAW,YAUlC,sCACE,GAAM,iBAAmB,IACvB,GAAI,GAAI,GAAK,GACT,EAAI,EAER,KAAQ,GAAI,UAAgB,GAC1B,GAAK,QACL,IAAM,EAER,MAAA,IAAK,CAAC,QACN,GAAK,UAEE,EAAI,GAGP,aAAe,GAAI,aAAY,MAErC,aAAa,GAAK,EAClB,OAAS,GAAI,EAAG,EAAI,KAAM,IACxB,aAAa,GAAK,gBAAgB,GAEpC,OAAS,GAAI,KAAM,EAAI,KAAM,IAC3B,aAAa,GAAK,UAAe,GAAI,MAAS,IAGhD,MAAO,cAST,uCACE,GAAM,eAAgB,GAAI,aAAY,IAEtC,cAAc,GAAK,EACnB,cAAc,IAAM,WACpB,cAAc,IAAM,WACpB,cAAc,IAAM,WACpB,OAAS,GAAI,EAAG,EAAI,GAAI,IACtB,cAAc,GAAK,GAAK,GAE1B,OAAS,GAAI,GAAI,EAAI,GAAI,IACvB,cAAc,GAAK,WAAe,GAAI,IAAO,IAG/C,MAAO,eAST,qCACE,GAAM,aAAc,GAAI,aAAY,IAEpC,OAAS,GAAI,EAAG,EAAI,GAAI,IACtB,YAAY,GAAK,KAEnB,MAAA,aAAY,GAAK,YAAY,IAAM,EAE5B,YAUH,6BAKJ,GAAM,cAAe,6BACf,cAAgB,8BAChB,YAAc,4BAEpB,MAAQ,kBACN,GAAM,SAAS,GAAI,aAAY,EAAI,eAAe,QAC5C,iBAAmB,GAAI,aAAY,SACzC,OAAS,OAAQ,EAAG,MAAQ,eAAe,OAAQ,SACjD,GAAM,aAAc,eAAe,OAC7B,YACF,aAAa,YAAY,aAAe,IAAO,aAAc,OAC7D,cAAc,aAAe,IACjC,iBAAiB,OAAS,YAE5B,MAAO,IAAI,cAAa,UClf5B,GAAA,kBAAA,MA6BE,cACE,KAAK,YAAc,GACnB,KAAK,YAAc,SAGN,eACb,MAAI,kBAAiB,UAAY,MAC/B,kBAAiB,SAAW,GAAI,mBAE3B,iBAAiB,eASnB,oBAAmB,YACxB,iBAAiB,cAAc,YAAY,KAAK,kBAS3C,oBAAmB,YACxB,iBAAiB,cAAc,YAAY,KAAK,kBAW3C,iBAAgB,KACrB,MAAO,kBAAiB,YAAY,IAAK,cAWpC,iBAAgB,IAAsB,aAE3C,MAAO,kBAAiB,YAAY,IAAK,OAAQ,mBAGpC,aACX,IAAsB,YACtB,aACF,GAAM,eAA6B,GAInC,MAHgB,eAAgB,OAC5B,iBAAiB,cAAc,YAC/B,iBAAiB,cAAc,aAC3B,QAAQ,SACd,GAAM,SAAU,OAAO,IAAK,aACxB,UAAY,MACd,cAAc,KAAK,WAGhB,gBAIE,mBAAsB,YAC/B,iBAAiB,mBAAmB,YAC3B,mBAAsB,YAC/B,iBAAiB,mBAAmB,YAC3B,gBAAmB,KAC5B,iBAAiB,gBAAgB,KACxB,gBACT,CAAC,IAAsB,cACnB,iBAAiB,gBAAgB,IAAK,aCtFxC,cAAgB,eAChB,iBAAmB,EAKnB,iBAAmB,eAInB,gBAAkB,mBAexB,+BACE,GAAI,CAAC,MAAM,QAAQ,cAIjB,KAAM,IAAI,OACN,2FAIN,GAAM,WAAiB,MAAO,SAAW,YAAc,KAAO,OACxD,QAAU,UAAU,WAAa,UAAU,cAC7C,UAAU,iBAAmB,UAAU,aACvC,UAAU,cACd,GAAI,SAAW,KACb,KAAM,IAAI,OACN,6DAEN,MAAO,SAGT,uBAAuB,aACrB,GAAM,IAAK,YAAY,OACvB,GAAG,kBAAkB,iBAAkB,CAAC,QAAS,cACjD,GAAG,kBAAkB,gBAAiB,CAAC,QAAS,cA1ElD,GAAA,kBAAA,MAwFE,YAAY,WAGV,GAFA,KAAK,UAAY,sBAEb,WAAa,MAAQ,CAAC,UACxB,KAAM,IAAI,OACN,kEAEN,KAAK,UAAY,eAGb,MAAK,gBAET,GAAI,eAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,4FAIN,MAAO,MAAK,eAAe,KAAK,UAAW,qBAIvC,QACJ,MAAO,MAAK,eAAe,KAAK,WAiB1B,eAAe,UAAmB,gBAExC,MAAO,IAAI,SAAmC,CAAC,QAAS,UACtD,GAAM,aAAc,KAAK,UAAU,KAAK,cAAe,kBACvD,YAAY,gBAAkB,IAAM,cAAc,aAElD,YAAY,UAAY,KACtB,GAAM,IAAK,YAAY,OAEvB,GAAI,gBAAkB,MAEpB,GAAM,SAAU,GAAG,YAAY,iBAAkB,YAE3C,WADa,QAAQ,YAAY,kBACT,IAAI,KAAK,WACvC,WAAW,UAAY,KACrB,GAAI,WAAW,QAAU,KACvB,MAAA,IAAG,QACI,OAAO,GAAI,OACd,gCAAgC,KAAK,6BAGzC,QAAQ,WAAW,OAAO,iBAG9B,WAAW,QAAU,OACnB,IAAG,QACI,OAAO,WAAW,QAE3B,QAAQ,WAAa,IAAM,GAAG,aAG9B,GAAM,oBACF,6BAA6B,gBAE3B,OAAS,GAAG,YAAY,gBAAiB,aAC3C,UAAY,OAAO,YAAY,iBAC7B,eACF,UAAU,IAAI,CAAC,UAAW,KAAK,UAAW,qBAC1C,QACJ,eAAe,UAAY,KAEzB,QAAU,GAAG,YAAY,iBAAkB,aAE3C,GAAM,iBADa,QAAQ,YAAY,kBACJ,IAAI,CACrC,UAAW,KAAK,UAChB,eACA,qBAEF,gBAAgB,UAAY,IAAM,QAAQ,CAAC,qBAC3C,gBAAgB,QAAU,QAGxB,UAAY,OAAO,YAAY,iBAC/B,GAAM,mBAAoB,UAAU,OAAO,KAAK,WAChD,kBAAkB,UAAY,IAC5B,IAAG,QACI,OAAO,gBAAgB,QAEhC,kBAAkB,QAAU,QAC1B,IAAG,QACI,OAAO,gBAAgB,UAIpC,eAAe,QAAU,OACvB,IAAG,QACI,OAAO,eAAe,QAE/B,OAAO,WAAa,KACd,SAAW,KACb,GAAG,QAEH,QAAQ,WAAa,IAAM,GAAG,WAKtC,YAAY,QAAU,OAAS,OAAO,YAAY,WAvHtC,iBAAA,WAAa,eA4HxB,GAAM,iBAA6B,KACnC,MAAM,QAAQ,eAGb,CAAC,MAAM,QAAQ,MAAQ,IAAI,WAAW,iBAAiB,YAClD,iBAAiB,IAAI,MAAM,iBAAiB,WAAW,SAHzD,KASX,iBAAiB,mBAAmB,iBACpC,iBAAiB,mBAAmB,iBAmB9B,0BAA2B,WAC/B,MAAO,IAAI,kBAAiB,WAG9B,0BAA0B,KACxB,MAAO,KAAI,WAAW,iBAAiB,YACnC,IAAI,MAAM,iBAAiB,WAAW,QACtC,IAxPN,GAAA,yBAAA,MA8PE,cACE,KAAK,UAAY,2BAGb,cACJ,MAAO,IAAI,SACP,CAAC,QAAS,UACR,GAAM,aACF,KAAK,UAAU,KAAK,cAAe,kBACvC,YAAY,gBAAkB,IAAM,cAAc,aAElD,YAAY,UAAY,KACtB,GAAM,IAAK,YAAY,OACjB,GAAK,GAAG,YAAY,gBAAiB,YAUrC,kBATQ,GAAG,YAAY,iBASY,SACzC,kBAAkB,UAAY,KAC5B,GAAM,KAA4C,GAClD,OAAW,QAAQ,mBAAkB,OACnC,IAAI,KAAK,WAAa,KAAK,mBAE7B,QAAQ,MAEV,kBAAkB,QAAU,OAC1B,IAAG,QACI,OAAO,kBAAkB,QAElC,GAAG,WAAa,IAAM,GAAG,SAE3B,YAAY,QAAU,OAAS,OAAO,YAAY,cAIpD,aAAY,MAChB,MAAA,MAAO,iBAAiB,MACjB,GAAI,SAA4B,CAAC,QAAS,UAC/C,GAAM,aAAc,KAAK,UAAU,KAAK,cAAe,kBACvD,YAAY,gBAAkB,IAAM,cAAc,aAElD,YAAY,UAAY,KACtB,GAAM,IAAK,YAAY,OACjB,OAAS,GAAG,YAAY,gBAAiB,aACzC,UAAY,OAAO,YAAY,iBAE/B,eAAiB,UAAU,IAAI,MACjC,QACJ,eAAe,UAAY,KACzB,GAAI,eAAe,QAAU,KAC3B,MAAA,IAAG,QACI,OAAO,GAAI,OACd,gCAAgC,wBAE/B,CAEL,GAAM,mBAAoB,UAAU,OAAO,MACrC,gBAAkB,KAEtB,QAAU,GAAG,YAAY,iBAAkB,aAE3C,GAAM,oBADa,QAAQ,YAAY,kBACD,OAAO,MAC7C,mBAAmB,UAAY,IAC3B,QAAQ,eAAe,OAAO,oBAClC,mBAAmB,QAAU,OACzB,OAAO,eAAe,QAI5B,kBAAkB,UAAY,gBAC9B,kBAAkB,QAAU,OAC1B,mBACA,GAAG,QACI,OAAO,eAAe,UAInC,eAAe,QAAU,OACvB,IAAG,QACI,OAAO,eAAe,QAG/B,OAAO,WAAa,KACd,SAAW,KACb,GAAG,QAEH,QAAQ,WAAa,IAAM,GAAG,UAIpC,YAAY,QAAU,OAAS,OAAO,YAAY,WCrUlD,eAAiB,IACjB,YAAc,sBACd,YAAc,OACd,sBAAwB,iBACxB,oBAAsB,eACtB,mBAAqB,cACrB,sBAAwB,iBA8B9B,sBAAsB,MAOpB,MAAO,CACL,KAAM,CAAC,YAAa,KAAM,aAAa,KAAK,gBAC5C,SAAU,CAAC,YAAa,KAAM,uBAAuB,KAAK,gBAC1D,YAAa,CAAC,YAAa,KAAM,qBAAqB,KAAK,gBAC3D,WAAY,CAAC,YAAa,KAAM,oBAAoB,KAAK,gBACzD,cACI,CAAC,YAAa,KAAM,uBAAuB,KAAK,iBAWxD,6BAA6B,KAC3B,GAAM,OAAQ,IAAI,MAAM,gBACxB,GAAI,MAAM,OAAS,EACjB,KAAM,IAAI,OAAM,uBAAuB,OAEzC,MAAO,OAAM,MAAM,EAAG,MAAM,OAAS,GAAG,KAAK,gBAG/C,2BAA0B,KACxB,MAAO,KAAI,WAAW,oBAAoB,YACtC,IAAI,MAAM,oBAAoB,WAAW,QACzC,IAhGN,GAAA,qBAAA,MAuHE,YAAY,WACV,GAAI,CAAC,MAAM,QAAQ,eAAiB,MAAO,SAAW,aAClD,MAAO,QAAO,cAAiB,YAKjC,KAAM,IAAI,OACN,2DAIN,GAFA,KAAK,GAAK,OAAO,aAEb,WAAa,MAAQ,CAAC,UACxB,KAAM,IAAI,OACN,sEAEN,KAAK,UAAY,UACjB,KAAK,KAAO,aAAa,KAAK,gBAY1B,MAAK,gBACT,GAAI,eAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,4FAEC,CACL,GAAM,UAAW,KAAK,UAAU,eAAe,eACzC,YAAc,KAAK,UAAU,eAAe,aAE5C,mBACF,6BAA6B,gBAEjC,IACE,KAAK,GAAG,QAAQ,KAAK,KAAK,KAAM,KAAK,UAAU,qBAC/C,KAAK,GAAG,QAAQ,KAAK,KAAK,SAAU,UACpC,KAAK,GAAG,QAAQ,KAAK,KAAK,YAAa,aACvC,KAAK,GAAG,QACJ,KAAK,KAAK,WACV,0BAA0B,eAAe,aAC7C,GAAM,QAAyB,CAC7B,OAAQ,eAAe,OACvB,YAAa,eAAe,YAC5B,YAAa,eAAe,aAE9B,MAAI,gBAAe,WAAa,MAC9B,QAAO,UAAY,eAAe,WAEhC,eAAe,qBAAuB,MACxC,QAAO,oBAAsB,eAAe,qBAE1C,eAAe,kBAAoB,MACrC,QAAO,iBAAmB,eAAe,kBAE3C,KAAK,GAAG,QAAQ,KAAK,KAAK,cAAe,KAAK,UAAU,SAEjD,CAAC,0BACD,KAEP,KAAA,MAAK,GAAG,WAAW,KAAK,KAAK,MAC7B,KAAK,GAAG,WAAW,KAAK,KAAK,UAC7B,KAAK,GAAG,WAAW,KAAK,KAAK,aAC7B,KAAK,GAAG,WAAW,KAAK,KAAK,YAC7B,KAAK,GAAG,WAAW,KAAK,KAAK,eAEvB,GAAI,OACN,yBAAyB,KAAK,kHAER,mBAAmB,wCACrB,mBAAmB,qCACpB,mBAAmB,2BAa1C,QACJ,GAAM,MACF,KAAK,MAAM,KAAK,GAAG,QAAQ,KAAK,KAAK,OACzC,GAAI,MAAQ,KACV,KAAM,IAAI,OACN,kDAAkD,KAAK,cAG7D,GAAI,KAAK,oBAAsB,OAC7B,KAAM,IAAI,OACN,6EAIN,GAAM,KAAsB,GAGtB,SAAW,KAAK,MAAM,KAAK,GAAG,QAAQ,KAAK,KAAK,WACtD,GAAI,UAAY,KACd,KAAM,IAAI,OACN,4CAA4C,KAAK,0BAGvD,IAAI,cAAgB,SAGpB,GAAM,aAAc,KAAK,MAAM,KAAK,GAAG,QAAQ,KAAK,KAAK,cACzD,GAAI,aAAe,KACjB,KAAM,IAAI,OACN,gDAAgD,KAAK,2BAG3D,IAAI,YAAc,YAGlB,GAAM,gBAAiB,KAAK,GAAG,QAAQ,KAAK,KAAK,eACjD,GAAI,gBAAkB,MACpB,GAAM,UAAW,KAAK,MAAM,gBAC5B,IAAI,OAAS,SAAS,OACtB,IAAI,YAAc,SAAS,YAC3B,IAAI,YAAc,SAAS,YACvB,SAAS,WAAgB,MAC3B,KAAI,UAAY,SAAS,WAEvB,SAAS,qBAA0B,MACrC,KAAI,oBAAsB,SAAS,qBAEjC,SAAS,kBAAuB,MAClC,KAAI,iBAAmB,SAAS,kBAKpC,GAAM,kBAAmB,KAAK,GAAG,QAAQ,KAAK,KAAK,YACnD,GAAI,kBAAoB,KACtB,KAAM,IAAI,OACN,wDACI,KAAK,2BAEf,MAAA,KAAI,WAAa,0BAA0B,kBAEpC,MA1JO,oBAAA,WAAa,kBA8JxB,GAAM,oBAAgC,KACtC,MAAM,QAAQ,eAGb,CAAC,MAAM,QAAQ,MAAQ,IAAI,WAAW,oBAAoB,YACrD,oBACH,IAAI,MAAM,oBAAoB,WAAW,SAJxC,KAUX,iBAAiB,mBAAmB,oBACpC,iBAAiB,mBAAmB,oBA0B9B,6BAA8B,WAClC,MAAO,IAAI,qBAAoB,WA3TjC,GAAA,4BAAA,MAiUE,cACE,OACI,MAAM,QAAQ,cACd,IAAM,4CACV,OACI,MAAO,SAAW,aACd,MAAO,QAAO,cAAiB,YACnC,IAAM,2DACV,KAAK,GAAK,OAAO,kBAGb,cACJ,GAAM,KAA4C,GAC5C,OAAS,YAAc,eACvB,OAAS,eAAiB,YAChC,OAAS,GAAI,EAAG,EAAI,KAAK,GAAG,OAAQ,EAAE,GACpC,GAAM,KAAM,KAAK,GAAG,IAAI,GACxB,GAAI,IAAI,WAAW,SAAW,IAAI,SAAS,SACzC,GAAM,WAAY,oBAAoB,KACtC,IAAI,WAAa,KAAK,MAAM,KAAK,GAAG,QAAQ,OAGhD,MAAO,UAGH,aAAY,MAChB,KAAO,kBAAiB,MACxB,GAAM,MAAO,aAAa,MAC1B,GAAI,KAAK,GAAG,QAAQ,KAAK,OAAS,KAChC,KAAM,IAAI,OAAM,8BAA8B,SAEhD,GAAM,MAAO,KAAK,MAAM,KAAK,GAAG,QAAQ,KAAK,OAE7C,MAAA,MAAK,GAAG,WAAW,KAAK,MACxB,KAAK,GAAG,WAAW,KAAK,UACxB,KAAK,GAAG,WAAW,KAAK,aACxB,KAAK,GAAG,WAAW,KAAK,YACjB,OCrUL,kBAAoB,MAjC1B,0BAAA,MAyCE,cACE,KAAK,SAAW,SAGH,eACb,MAAI,2BAA0B,UAAY,MACxC,2BAA0B,SAAW,GAAI,4BAEpC,0BAA0B,eAS5B,iBAAgB,OAAgB,SACrC,OAAO,QAAU,KAAM,IAAM,yCACzB,OAAO,SAAS,oBAClB,QAAS,OAAO,MAAM,EAAG,OAAO,QAAQ,qBAE1C,OAAO,OAAO,OAAS,EAAG,IAAM,uCAChC,GAAM,UAAW,0BAA0B,cAC3C,OACI,SAAS,SAAS,SAAW,KAC7B,IAAM,2DACF,YACR,SAAS,SAAS,QAAU,cAGvB,YAAW,QAChB,GAAM,SAAU,KAAK,cAAc,SAAS,QAC5C,GAAI,SAAW,KACb,KAAM,IAAI,OAAM,yCAAyC,WAE3D,MAAO,eAGF,cACL,MAAO,QAAO,KAAK,KAAK,cAAc,YAY1C,kBAAkB,KAChB,GAAI,IAAI,QAAQ,qBAAuB,GACrC,KAAM,IAAI,OACN,6EAEG,0BAA0B,aAAa,KAAK,QAErD,MAAO,CACL,OAAQ,IAAI,MAAM,mBAAmB,GACrC,KAAM,IAAI,MAAM,mBAAmB,IAIvC,kCACI,UAAmB,QACnB,aAAe,IACjB,OACI,YAAc,QACd,IAAM,wCAAwC,cAElD,GAAM,cAAe,iBAAiB,gBAAgB,WACtD,OACI,aAAa,OAAS,EACtB,IAAM,kEACF,cACR,OACI,aAAa,OAAS,EACtB,IAAM,yCAAyC,aAAa,wCACxB,cACxC,GAAM,aAAc,aAAa,GAE3B,aAAe,iBAAiB,gBAAgB,SACtD,OACI,aAAa,OAAS,EACtB,IAAM,uEACK,YACf,OACI,aAAa,OAAS,EACtB,IAAM,yCAAyC,aAAa,6CACnB,YAC7C,GAAM,aAAc,aAAa,GAE3B,aAAe,SAAS,WAAW,OACnC,WAAa,SAAS,WAAW,KACjC,WAAa,eAAiB,SAAS,WAAW,OAElD,eAAiB,KAAM,aAAY,OAKrC,cAAgB,YAClB,KAAM,2BAA0B,WAAW,cACtC,YAAY,YAGnB,GAAM,YAAa,KAAM,aAAY,KAAK,gBAK1C,MAAI,eAAgB,CAAC,YACnB,KAAM,2BAA0B,WAAW,cACtC,YAAY,YAGZ,WAAW,mBAsCpB,4BACE,GAAM,SAAU,0BAA0B,aACpC,IAA2C,GACjD,OAAW,UAAU,UACnB,GAAM,WACF,KAAM,2BAA0B,WAAW,QAAQ,aACvD,OAAW,QAAQ,YACjB,GAAM,KAAM,OAAS,kBAAoB,KACzC,IAAI,KAAO,UAAU,OAGzB,MAAO,KAoCT,2BAA2B,KACzB,GAAM,eAAgB,SAAS,KAE/B,MADgB,2BAA0B,WAAW,cAAc,QACpD,YAAY,cAAc,MAkD3C,yBACI,UAAmB,SAErB,MAAO,oBAAmB,UAAW,QADhB,IAkDvB,yBACI,UAAmB,SAErB,MAAO,oBAAmB,UAAW,QADhB,IC/VvB,GAAA,iBAAA,MA+BE,MAAM,KAAc,OAClB,MAAO,OAAM,KAAM,OAGrB,MACE,MAAO,aAAY,MAGrB,OAAO,KAAc,UACnB,GAAI,WAAa,SAAW,WAAa,OACvC,KAAM,IAAI,OACN,kDAAkD,YAExD,MAAI,MAAK,aAAe,MACtB,MAAK,YAAc,GAAI,cAElB,KAAK,YAAY,OAAO,MAEjC,OAAO,MAAmB,UACxB,MAAO,IAAI,aAAY,UAAU,OAAO,SAI5C,GAAI,MAAM,IAAI,eACZ,MAAM,YAAY,UAAW,GAAI,kBAGjC,IACE,0BAA0B,gBACtB,oBAAoB,WAAY,GAAI,mCACjC,MAIT,IACE,0BAA0B,gBACtB,iBAAiB,WAAY,GAAI,gCAC9B,OC/CJ,GAAM,cAAe,CAE1B,YAAa,IAAc,mBAIzB,YA3BJ,aAAA,MA6CE,cAEE,KAAK,KAAe,gBAGpB,KAAK,YAAc,GAAI,MAAK,KAAK,YAGnC,MAAM,KAAc,cAClB,MAAI,OAAM,OAAO,OAAS,KACjB,MAAM,OAAO,MAAM,KAAM,cAG9B,cAAe,MACjB,aAAc,aAAa,eAEtB,YAAY,KAAM,eAG3B,MACE,GAAM,OAAO,QAAQ,SACrB,MAAO,OAAK,GAAK,IAAO,MAAK,GAAK,IAGpC,OAAO,KAAc,UACnB,GAAI,WAAa,SAAW,WAAa,OACvC,KAAM,IAAI,OACN,sDAAsD,YAE5D,MAAO,MAAK,YAAY,OAAO,MAEjC,OAAO,MAAmB,UACxB,MAAI,OAAM,SAAW,EACZ,GAEF,GAAI,MAAK,KAAK,YAAY,UAAU,OAAO,SAIlD,MAAM,IAAI,YACZ,MAAM,YAAY,OAAQ,GAAI,eCtC1B,gBACF,MAAoB,MAAW,UAC/B,QACF,MAAA,OAAQ,OAAS,UACZ,mCAAmC,OACjC,GAAI,cAAmB,MAAO,MAAO,QCb9C,eAAiC,EAAiB,OAChD,GAAM,IAAK,gBAAgB,EAAG,IAAK,QAGnC,GAAI,CAAM,aAAa,OACrB,KAAM,IAAI,OAAM,mCAAmC,SAErD,GAAI,QAAU,UAAY,GAAG,QAAU,UACnC,QAAU,UAAY,GAAG,QAAU,SACrC,KAAM,IAAI,OAAM,yCAGlB,GAAM,QAAqB,CAAC,EAAG,IACzB,MAAmB,CAAC,OAE1B,MAAO,QAAO,UACV,KAAM,OAAgC,OAGrC,GAAM,MAAO,GAAG,CAAC,QClBxB,gBAAkC,GAEhC,GAAM,QAAyB,CAAC,EADrB,gBAAgB,EAAG,IAAK,QAAS,sBAK5C,MAAO,QAAO,UAAU,SAAU,QAG7B,GAAM,OAAQ,GAAG,CAAC,SCjBnB,gBAAkC,EAAM,QAAU,IACtD,QAAQ,IAAI,EAAE,SAAS,UCZzB,kBAcA,GAAM,YAAuB,CAC3B,OACA,KACA,MACA,MAAA,QAEF,aAAa,YCzCb,GAAA,YAAA,GAAA,UAAA,WAAA,CAAA,aAAA,IAAA,aAAA,mBAAA,IAAA,mBAAA,wBAAA,IAAA,wBAAA,UAAA,IAAA,UAAA,cAAA,IAAA,cAAA,cAAA,IAAA,cAAA,WAAA,IAAA,WAAA,gBAAA,IAAA,gBAAA,6BAAA,IAAA,6BAAA,gBAAA,IAAA,gBAAA,KAAA,IAAA,KAAA,aAAA,IAAA,aAAA,WAAA,IAAA,WAAA,YAAA,IAAA,YAAA,UAAA,IAAA,UAAA,mBAAA,IAAA,mBAAA,mBAAA,IAAA,mBAAA,YAAA,IAAA,YAAA,qBAAA,IAAA,qBAAA,gBAAA,IAAA,kBC6BA,GAAM,0BAA2B,QAC3B,4BAA8B,QAC9B,mCAAqC,eAE3C,eAAkB,GAChB,MAAO,IAAI,SAAQ,SAAW,WAAW,UAAU,KAAK,GAlC1D,GAAA,kBAAA,MA6CE,YAAY,gBACV,GAAI,CAAC,MAAM,QAAQ,cAGjB,KAAM,IAAI,OACN,uFAIF,eAAe,WAAW,iBAAiB,aAC7C,gBAAiB,eAAe,MAAM,iBAAiB,WAAW,SAEhE,iBAAkB,MAAQ,eAAe,SAAW,IACtD,gBAAiB,0BAGnB,KAAK,sBAAwB,eAAiB,4BAC9C,KAAK,mBACD,eAAiB,wCAGjB,MAAK,gBACT,GAAI,MAAQ,WAAc,YACxB,KAAM,IAAI,OACN,2FAGN,GAAM,YAAa,OAAO,IAAI,gBAAgB,GAAI,MAC9C,CAAC,eAAe,YAAa,CAAC,KAAM,8BAExC,GAAI,eAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,yFAEC,CACL,GAAM,iBAAyC,CAAC,CAC9C,MAAO,CAAC,KAAO,KAAK,oBACpB,QAAS,eAAe,cAEpB,+BAA4C,CAChD,cAAe,eAAe,cAC9B,OAAQ,eAAe,OACvB,YAAa,eAAe,YAC5B,YAAa,eAAe,YAC5B,iBAEE,eAAe,WAAa,MAC9B,gCAA+B,UAAY,eAAe,WAExD,eAAe,qBAAuB,MACxC,gCAA+B,oBAC3B,eAAe,qBAEjB,eAAe,kBAAoB,MACrC,gCAA+B,iBAC3B,eAAe,kBAErB,GAAM,mCACF,OAAO,IAAI,gBAAgB,GAAI,MAC3B,CAAC,KAAK,UAAU,iCAChB,CAAC,KAAM,sBAIT,WAAa,KAAK,YAAc,KAAO,SAAS,cAAc,KACvB,KAAK,WAQlD,GAPA,WAAW,SAAW,KAAK,sBAC3B,WAAW,KAAO,kCAIlB,KAAM,OAAM,IAAM,WAAW,cAAc,GAAI,YAAW,WAEtD,eAAe,YAAc,MAC/B,GAAM,kBAAmB,KAAK,kBAAoB,KAC9C,SAAS,cAAc,KACvB,KAAK,iBACT,iBAAiB,SAAW,KAAK,mBACjC,iBAAiB,KAAO,WACxB,KAAM,OACF,IAAM,iBAAiB,cAAc,GAAI,YAAW,WAG1D,MAAO,CAAC,mBAAoB,6BAA6B,oBArF7C,iBAAA,WAAa,eA3C/B,GAAA,cAAA,MAwIE,YAAY,OACV,GAAI,OAAS,MAAQ,MAAM,OAAS,EAClC,KAAM,IAAI,OACN,wEACgB,SAEtB,KAAK,MAAQ,WAGT,QACJ,GAAM,UAAW,KAAK,MAAM,GACtB,YAAc,KAAK,MAAM,MAAM,GAErC,MAAO,IAAI,SAAwB,CAAC,QAAS,UAC3C,GAAM,YAAa,GAAI,YACvB,WAAW,OAAU,QAEnB,GAAM,WAAY,KAAK,MAAO,MAAM,OAAe,QAC7C,cAAgB,UAAU,cAChC,GAAI,eAAiB,MACnB,OAAO,GAAI,OACP,4CAA4C,SAAS,SACzD,OAGE,YAAY,SAAW,GACzB,QAAQ,CAAC,gBAGX,GAAM,iBAAkB,UAAU,gBAClC,GAAI,iBAAmB,MACrB,OAAO,GAAI,OACP,6CAA6C,SAAS,SAC1D,OAGF,GAAI,YACJ,IACE,WACI,KAAK,4BAA4B,gBAAiB,mBAC/C,KACP,OAAO,KACP,OAGF,GAAM,aAAsC,GACtC,MAAkB,GAClB,eAAgC,GACtC,gBAAgB,QAAQ,eACtB,aAAa,MAAM,QAAQ,OACzB,MAAM,KAAK,MACX,eAAe,KAAK,QAEtB,YAAY,KAAK,GAAG,aAAa,WAGnC,gBAAgB,QAAQ,eACtB,aAAa,MAAM,QAAQ,OACzB,GAAM,kBAAmB,GAAI,YAC7B,iBAAiB,OAAU,SAEzB,GAAM,YAAc,OAAM,OAAe,OACnC,MAAQ,MAAM,QAAQ,MAE5B,GADA,eAAe,OAAS,WACpB,eAAe,QAAQ,QAAU,IACnC,GAAM,QAAyB,CAC7B,cACA,YACA,WAAY,wBAAwB,gBACpC,OAAQ,UAAU,OAClB,YAAa,UAAU,YACvB,YAAa,UAAU,aAErB,UAAU,WAAa,MACzB,QAAO,UAAY,UAAU,WAE3B,UAAU,qBAAuB,MACnC,QAAO,oBAAsB,UAAU,qBAErC,UAAU,kBAAoB,MAChC,QAAO,iBAAmB,UAAU,kBAEtC,QAAQ,UAGZ,iBAAiB,QAAU,OACvB,OAAO,6CAA6C,UACxD,iBAAiB,kBAAkB,WAAW,YAIpD,WAAW,QAAU,OAAS,OAC1B,sEACc,SAAS,6EAE3B,WAAW,WAAW,YAOlB,4BACJ,SAAiC,OACnC,GAAM,WAAsB,GACtB,UAAY,MAAM,IAAI,MAAQ,SAAS,KAAK,OAC5C,WAAqC,GAC3C,OAAW,SAAS,UAClB,MAAM,MAAM,QAAQ,OAClB,GAAM,cAAe,SAAS,MAC9B,GAAI,UAAU,QAAQ,gBAAkB,GACtC,KAAM,IAAI,OACN,uDACI,iBAGV,GADA,UAAU,KAAK,cACX,UAAU,QAAQ,gBAAkB,GACtC,KAAM,IAAI,OACN,8BAA8B,kCAElC,WAAW,MAAQ,MAAM,UAAU,QAAQ,iBAKjD,GAAI,UAAU,SAAW,MAAM,OAC7B,KAAM,IAAI,OACN,wDACI,UAAU,oDACV,MAAM,YAEhB,MAAO,cAIE,uBAAoC,KAC1C,MAAM,QAAQ,eAGb,CAAC,MAAM,QAAQ,MAAQ,IAAI,WAAW,iBAAiB,YAClD,iBAAiB,IAAI,MAAM,iBAAiB,WAAW,SAHzD,KASX,iBAAiB,mBAAmB,wBAyC9B,0BAA2B,eAAiB,SAChD,MAAO,IAAI,kBAAiB,gBA2CxB,sBAAuB,OAC3B,MAAO,IAAI,cAAa,OCnVpB,iCACF,SAAmC,WACnC,cAAwB,aAC1B,cAAc,UACd,cAAgB,eAAiB,KAAO,EAAI,cAC5C,YAAc,aAAe,KAAO,EAAI,YACxC,cAAc,cAAe,aAC7B,GAAI,iBAAkB,EAEhB,gBAAmB,SACvB,SAAQ,KAAK,QACX,GAAM,UAAW,cACb,GAAE,gBAAkB,SAAS,OAAU,aAAc,eAEzD,MAAA,YAAW,UACJ,QAEF,SAGT,uBAAuB,WACrB,OACI,WAAY,MAAQ,MAAM,QAAQ,YAAa,UAAS,OAAS,EACjE,IAAM,uCAGZ,uBAAuB,eAAuB,cAC5C,OACI,gBAAiB,GAAK,gBAAiB,EACvC,IAAM,oEACmB,kBAC7B,OACI,cAAe,GAAK,cAAe,EACnC,IAAM,kEACiB,gBAC3B,OACI,cAAe,eACf,IAAM,yEACmB,kCAClB,gBAGb,MAAO,SAAQ,IAAI,SAAS,IAAI,kBCnClC,wCACI,UAAqB,aACnB,aAAe,MACjB,aAAc,IAGhB,GAAM,WAAY,YAAY,WAAa,KAAO,MAAM,SAAS,MACf,YAAY,UAGxD,SAAW,UAAU,IACvB,UACI,UAAU,SAAU,YAAY,YAAa,CAAC,SAAU,MAE1D,mBAAqB,EACrB,iBAAmB,GAQnB,eANY,aAAY,YAAc,KACxC,KAAM,SAAQ,IAAI,UAClB,KAAM,yBACF,SAAU,YAAY,WAAY,mBAClC,mBAEyB,IAAI,UAAY,SAAS,eAEpD,oBAAsB,GACtB,kBAAoB,EAO1B,MALgB,aAAY,YAAc,KACtC,KAAM,SAAQ,IAAI,gBAClB,KAAM,yBACF,eAAgB,YAAY,WAAY,oBACxC,mBAaV,2BACI,SAAiC,eAAiB,GAClD,YACA,aAWF,MAFoB,sBAFE,WAClB,yBAAyB,UAAW,CAAC,eAGtB,SAAU,eAAgB,aA2BzC,8BACF,sBAGF,MAAO,OACI,SAAiC,eAAiB,GAClD,eAGT,GAAM,wBAAyB,SAAS,IAAI,IAAM,IAC5C,oBAKF,GACE,aACF,aAAe,KAAO,YAAY,IAAI,IAAM,IAAS,GACnD,uBAAmC,GAwCzC,GAvCA,SAAS,QAAQ,CAAC,oBAAqB,cACrC,GAAI,aAAc,EAClB,oBAAoB,QAAQ,QAAQ,eAClC,GAAM,UAAY,gBAAkB,cAChC,aAAa,aAAa,MAC1B,aAAa,MAEX,aAAe,qBAAqB,UACjC,cAAc,aAAa,OAE9B,4BAA8B,KAClC,uBAAuB,YAAc,GACjC,oBAAoB,aAAe,MACrC,qBAAoB,YAAc,IAGpC,oBAAoB,YAAY,KAAK,CACnC,cAAe,aACf,YACA,UAAW,gBAIX,aAAe,KACjB,YAAY,QAAQ,CAAC,WAAY,eAC3B,aAAe,aAAa,MAC9B,+BACA,aAAa,aAAe,MAIhC,8BAGF,uBAAuB,KAAK,aAAa,MACzC,aAAe,iBAIf,CAAC,aAAa,MAAM,OAAS,QAC/B,GAAM,iBAAkB,YAAY,OAAO,CAAC,EAAG,IAAM,CAAC,aAAa,IACnE,KAAM,IAAI,OACN,kDACG,gBAAgB,KAAK;wCAErB,uBAAuB,KAAK,UAKrC,GAAM,qBACF,uBAAuB,OAAO,CAAC,YAAa,YAAa,IACnD,cACF,YAAY,KAAK,GAEZ,aACN,IAED,UAAsB,GAC5B,oBAAoB,QAAQ,IAC1B,SAAS,GAAG,MAAM,QAAQ,WACxB,GAAM,UAAW,eACX,gBAAe,SAAS,KAAa,GAAN,KAAY,SACjD,UAAU,KAAK,cAGnB,GAAM,SAAU,KAAM,sBAAqB,WAErC,iBAAmC,GACrC,kBAAoB,EACxB,MAAA,qBAAoB,QAAQ,IAC1B,GAAM,YAAa,SAAS,GAAG,MAAM,OAEjC,WAAa,EACjB,OAAS,IAAI,EAAG,GAAI,WAAY,KAC9B,YAAc,QAAQ,kBAAoB,IAAG,WAI/C,GAAM,aAAc,GAAI,aAAY,YAC9B,gBAAkB,GAAI,YAAW,aACnC,kBAAoB,EACxB,OAAS,IAAI,EAAG,GAAI,WAAY,MAC9B,GAAM,SAAS,GAAI,YAAW,QAAQ,kBAAoB,KAC1D,gBAAgB,IAAI,QAAQ,mBAC5B,mBAAqB,QAAO,WAGP,oBAAoB,GAC5B,QAAQ,eACrB,GAAM,YAAa,YAAY,MAC3B,aAAa,YACb,aAAa,YAAc,aAAa,WACtC,gBACF,cAAc,WAAY,CAAC,aAAa,gBAC5C,OAAW,QAAQ,iBACjB,iBAAiB,MAAQ,gBAAgB,QAI7C,mBAAqB,aAGhB,kBCrNX,GAAM,wBAAyB,2BACzB,UAAY,mBAhClB,YAAA,MA+CE,YAAY,KAAc,aAgCxB,GAvCO,KAAA,eAAiB,OAQpB,aAAe,MACjB,aAAc,IAEhB,KAAK,iBAAmB,YAAY,iBACpC,KAAK,WAAa,YAAY,WAC9B,KAAK,mBAAqB,YAAY,mBAElC,YAAY,WAAa,KAC3B,QACI,MAAO,aAAY,WAAc,WACjC,IAAM,+HAGV,KAAK,MAAQ,YAAY,WAEzB,KAAK,MAAQ,MAAM,SAAS,MAG9B,OACI,MAAQ,MAAQ,KAAK,OAAS,EAC9B,IAAM,2DAGN,MAAM,QAAQ,OAChB,OACI,KAAK,SAAW,EAChB,IAAM,iEACmB,KAAK,YAEpC,KAAK,KAAO,KAER,YAAY,aAAe,MAC3B,YAAY,YAAY,MAAQ,KAClC,KAAM,IAAI,OACN,sEAEN,KAAK,YAAc,YAAY,aAAe,QAG1C,MAAK,gBACT,GAAI,eAAe,wBAAyB,aAC1C,KAAM,IAAI,OACN,2FAIN,GAAM,OAAO,OAAO,OAAO,CAAC,OAAQ,KAAK,gBAAiB,KAAK,aAC/D,MAAK,KAAO,GAAI,UAEhB,GAAM,iBAAyC,CAAC,CAC9C,MAAO,CAAC,uBACR,QAAS,eAAe,cAEpB,+BAA4C,CAChD,cAAe,eAAe,cAC9B,OAAQ,eAAe,OACvB,YAAa,eAAe,YAC5B,YAAa,eAAe,YAC5B,iBAEE,eAAe,WAAa,MAC9B,gCAA+B,UAAY,eAAe,WAExD,eAAe,qBAAuB,MACxC,gCAA+B,oBAC3B,eAAe,qBAEjB,eAAe,kBAAoB,MACrC,gCAA+B,iBAC3B,eAAe,kBAGrB,MAAK,KAAK,OACN,aACA,GAAI,MACA,CAAC,KAAK,UAAU,iCAChB,CAAC,KAAM,YACX,cAEA,eAAe,YAAc,MAC/B,MAAK,KAAK,OACN,oBACA,GAAI,MAAK,CAAC,eAAe,YAAa,CAAC,KAAM,yBAC7C,qBAGN,GAAM,UAAW,KAAM,MAAK,MAAM,KAAK,KAAM,OAE7C,GAAI,SAAS,GACX,MAAO,CACL,mBAAoB,6BAA6B,gBACjD,UAAW,CAAC,WAGd,KAAM,IAAI,OACN,gEACG,SAAS,gBAYd,QACJ,GAAM,oBAAqB,KAAM,MAAK,MAAM,KAAK,KAAM,KAAK,aAE5D,GAAI,CAAC,mBAAmB,GACtB,KAAM,IAAI,OACN,cAAc,KAAK,gCAChB,mBAAmB,iFAG5B,GAAI,aACJ,IACE,YAAc,KAAM,oBAAmB,aAChC,GACP,GAAI,SAAU,+CAA+C,KAAK,QAGlE,KAAI,MAAK,KAAK,SAAS,OACrB,SAAW,+UAOX,SAAW,uEAGP,GAAI,OAAM,SAElB,GAAM,eAAgB,YAAY,cAC5B,gBAAkB,YAAY,gBAC9B,YAAc,YAAY,YAC1B,YAAc,YAAY,YAC1B,OAAS,YAAY,OACrB,UAAY,YAAY,UACxB,oBAAsB,YAAY,oBAGxC,GAAI,eAAiB,MAAQ,iBAAmB,KAC9C,KAAM,IAAI,OACN,2BAA2B,KAAK,iEAItC,GAAI,aACA,WACA,iBAAmB,MAErB,EAAC,YAAa,YADE,KAAM,MAAK,YAAY,kBAIzC,GAAM,WAA4B,CAChC,cACA,YACA,WACA,YACA,YACA,QAGE,WAAa,MACf,WAAU,UAAY,WAEpB,qBAAuB,MACzB,WAAU,oBAAsB,qBAGlC,GAAM,aAAc,YAAY,iBAChC,MAAI,cACF,WAAU,iBAAmB,aAGxB,eAGK,aAAY,iBAExB,GAAM,YAAa,MAAM,QAAQ,KAAK,MAAQ,KAAK,KAAK,GAAK,KAAK,KAC5D,CAAC,OAAQ,QAAU,SAAS,YAC5B,WAAa,KAAK,kBAAoB,OAEtC,YAAc,GACpB,OAAW,SAAS,iBAClB,YAAY,KAAK,GAAG,MAAM,SAG5B,GAAM,WAAsB,GACtB,YAAsC,GAC5C,OAAW,gBAAgB,iBACzB,OAAW,QAAQ,cAAa,MAC1B,KAAK,oBAAsB,KAC7B,YAAY,KAAK,KAAK,mBAAmB,OAEzC,UAAU,KAAK,WAAa,KAAO,QAKrC,KAAK,oBACP,UAAU,KAAK,GAAG,KAAM,SAAQ,IAAI,cAGtC,GAAM,SAAU,KAAM,0BAAyB,UAAW,CACxD,YAAa,KAAK,YAClB,UAAW,KAAK,MAChB,WAAY,KAAK,aAEnB,MAAO,CAAC,YAAa,wBAAwB,YA7N/B,YAAA,iBAAmB,eA4O/B,kBAAmB,KACvB,GAAM,WAAY,IAAI,YAAY,KAC5B,gBAAkB,IAAI,YAAY,KAClC,OAAS,IAAI,UAAU,EAAG,WAC1B,OACF,gBAAkB,UAAY,IAAI,UAAU,iBAAmB,GACnE,MAAO,CAAC,OAAS,IAAK,QAGlB,sBAAuB,KAC3B,MAAO,KAAI,MAAM,YAAY,mBAAqB,KAG7C,GAAM,YACT,CAAC,IAAa,eACZ,GAAI,MAAO,QAAU,aAChB,cAAe,MAAQ,YAAY,WAAa,MAInD,MAAO,MACF,CACL,GAAI,QAAS,GAMb,GALI,MAAM,QAAQ,KAChB,OAAS,IAAI,MAAM,SAAW,aAAa,UAE3C,OAAS,aAAa,KAEpB,OACF,MAAO,MAAK,IAAK,aAGrB,MAAO,OAEb,iBAAiB,mBAAmB,YACpC,iBAAiB,mBAAmB,YAwE9B,cAAe,KAAc,aACjC,MAAO,IAAI,aAAY,KAAM,aAQzB,4BACF,KAAc,aAChB,MAAO,MAAK,KAAM,aC5YpB,GAAA,mBAAA,MAwBE,YAA6B,gBAAA,KAAA,eAAA,oBAEvB,QACJ,MAAO,MAAK,iBA3BhB,iBAAA,MAgCE,YACqB,aAAA,KAAA,YAAA,iBAGf,MAAK,gBACT,MAAO,MAAK,YAAY,kBAyBtB,oBACF,eAAmC,YACnC,WAA0B,gBAC5B,MAAI,WAAU,SAAW,EAElB,eAAkC,eAAiB,MACnD,eAAkC,aAAe,KAE7C,GAAI,mBAAkB,gBAI7B,SAAQ,KACJ,yNAIG,GAAI,mBAAkB,CAAC,cAAe,kBAK/C,SAAQ,KACJ,yNAIG,GAAI,mBAAkB,CAC3B,cAAe,eACf,YACA,WACA,kBAoBA,yBACF,aAEF,MAAO,IAAI,kBAAiB,aCpH9B,GAAA,cAAA,GAAA,UAAA,aAAA,CAAA,gBAAA,IAAA,kBC2CA,iBACI,EAAsB,EAAsB,WAAa,GACzD,WAAa,IACf,GAAI,IAAK,gBAAgB,EAAG,IAAK,UAC7B,GAAK,gBAAgB,EAAG,IAAK,UACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,GAAM,QAA4B,CAAC,EAAG,GAAI,EAAG,IACvC,MAA0B,CAAC,WAAY,YAE7C,MAAO,QAAO,UACV,YAAa,OAAgC,OAG5C,GAAM,QAAS,GAAG,CAAC,UCX1B,iBACI,QAA4B,MAAe,QAAU,EACrD,SAAW,GACb,GAAI,MAAQ,EACV,KAAM,IAAI,OAAM,iDAAiD,SAInE,GAAM,QAAuB,CAAC,QAFb,gBAAgB,QAAS,UAAW,SAAU,UAGzD,MAAqB,CAAC,MAAO,QAAS,UAE5C,MAAO,QAAO,UACV,OAAQ,OACR,OAGC,GAAM,QAAS,GAAG,CAAC,UCf1B,oBAAsC,EAAiB,MACrD,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAgBnC,GAdI,MAAQ,MACV,MAAO,GAAG,MAAM,IAAI,CAAC,EAAG,IAAM,GAAG,WAE9B,OACD,GAAG,OAAS,KAAK,OACjB,IAAM,qCAAqC,GAAG,kCACb,SACrC,KAAK,QAAQ,OACN,OACD,MAAQ,GAAK,KAAO,GAAG,KACvB,IAAM,+CAA+C,GAAG,KAAO,aAC/C,UAGlB,GAAG,MAAQ,EACb,MAAO,IAAG,QAGZ,GAAM,QAA0B,CAAC,EAAG,IAC9B,MAAwB,CAAC,MAE/B,MAAO,QAAO,UACV,UAAW,OAAgC,OAG1C,GAAM,WAAY,GAAG,CAAC,aClBvB,0BACF,OAA6B,YAC7B,YACF,GAAM,SAAU,gBAAgB,OAAQ,SAAU,mBAC5C,aACF,gBAAgB,YAAa,cAAe,mBAE3C,OACD,YAAc,MAAQ,WAAa,GAAK,OAAO,UAAU,YACzD,IAAM,+DACS,cACd,OACD,QAAQ,OAAS,EACjB,IAAM,gDAAgD,QAAQ,QAC7D,OACD,aAAa,OAAS,EACtB,IAAM,qDACS,aAAa,QAC3B,OACD,QAAQ,MAAM,KAAO,aAAa,MAAM,GACxC,IAAM,uCACC,QAAQ,MAAM,UAAU,aAAa,MAAM,uEAEjD,OACD,WAAa,GAAK,OAAO,UAAU,YACnC,IAAM,4DACC,cAIX,GAAM,cAAe,OAAO,KAAK,QAAS,SAAU,YAC9C,kBACF,OAAO,KAAK,aAAc,SAAU,YAClC,cAA0B,UAAU,cACpC,QAAoB,OAAO,cAAe,mBAChD,MAAO,MAAK,QAAS,SAGhB,GAAM,iBAAkB,GAAG,CAAC,mBC/FnC,gBAAA,GAAA,UAAA,gBAAA,CAAA,WAAA,IAAA,WAAA,SAAA,IAAA,WC+CM,kBACF,OAAsB,MACtB,OAEF,GADA,cAAc,QACV,OAAS,MAAQ,MAAM,SAAW,EACpC,KAAM,IAAI,OAAM,mDAElB,GAAM,eAAgB,WAAW,OAAQ,OACzC,GAAI,cAAc,SAAW,GAAK,cAAc,SAAW,EACzD,KAAM,IAAI,OACN,oEAEN,GAAI,cAAc,SAAW,GAAK,OAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAO,YAAW,OAAQ,MAAO,cAAe,ODnClD,GAAI,qBAyBJ,qBACI,OAEA,YAAc,GAEhB,GAAI,YAAc,EAChB,KAAM,IAAI,OACN,kEAEN,GAAI,QAAU,KACZ,KAAM,IAAI,OAAM,4DAElB,GAAI,aAAc,GACd,YAAc,GACd,QAAU,GACV,QAAU,GACV,aAAe,GACf,cAAgB,GACpB,GAAK,OAAqB,eAAgB,YACxC,YAAc,WAEZ,MAAQ,YAAe,aAAe,iBAAkB,WAC1D,YAAc,WAEZ,MAAQ,mBAAsB,aAC9B,iBAAkB,kBACpB,QAAU,WAER,MAAQ,mBAAsB,aAC9B,iBAAkB,kBACpB,QAAU,WAEA,OAAe,YAAc,KACvC,aAAe,WAEb,MAAQ,cAAiB,aACzB,iBAAkB,aACpB,cAAgB,OAEhB,MAAM,IAAI,OACN,qPAIY,OAAc,YAAY,QAE5C,GAAI,SACF,GAAM,+BAAgC,EACtC,GAAI,SACC,OAA4B,WACzB,8BACN,KAAM,IAAI,OACN,yGAOR,GADe,UAAU,WAAY,OAAO,cAC9B,MACZ,GAAM,QAA2B,CAAC,QAC5B,MAAyB,CAAC,aAChC,MAAO,QAAO,UACV,WAAY,OACZ,OAGN,GAAM,CAAC,MAAO,QAAU,QACpB,CACG,OAA4B,WAC5B,OAA4B,aAE/B,CAAC,OAAO,MAAO,OAAO,QACtB,KAEA,aACF,KAEK,OAAe,WAAW,MAAM,aAAa,EAAG,EAAG,MAAO,QAAQ,KAC9D,aAAe,YACxB,KAAQ,OAAiC,KAChC,UAAW,SAAW,gBAC3B,sBAAuB,MACzB,qBAAsB,SAAS,cAAc,UAAU,WAAW,OAEpE,oBAAoB,OAAO,MAAQ,MACnC,oBAAoB,OAAO,OAAS,OACpC,oBAAoB,UAChB,OAA4B,EAAG,EAAG,MAAO,QAC7C,KAAO,oBAAoB,aAAa,EAAG,EAAG,MAAO,QAAQ,MAE/D,GAAI,QACJ,GAAI,cAAgB,EAClB,OAAS,GAAI,YAAW,WAExB,GAAM,WAAY,MAAQ,OAC1B,OAAS,GAAI,YAAW,UAAY,aACpC,OAAS,GAAI,EAAG,EAAI,UAAW,IAC7B,OAAS,SAAU,EAAG,QAAU,YAAa,EAAE,QAC7C,OAAO,EAAI,YAAc,SAAW,KAAK,EAAI,EAAI,SAKvD,MAAO,UAAS,OAD2B,CAAC,OAAQ,MAAO,aACzB,SAsBpC,wBACI,IACA,QACF,GAAI,MAAO,gBAAgB,IAAK,MAAO,YACvC,GAAI,CAAE,eAAe,UAEnB,GAAM,mBAAoB,KAC1B,KAAO,KAAK,kBAAmB,SAC/B,kBAAkB,UAEpB,GAAI,KAAK,OAAS,GAAK,KAAK,OAAS,EACnC,KAAM,IAAI,OACN,wDAAwD,KAAK,SAEnE,GAAM,CAAC,OAAQ,OAAS,KAAK,MAAM,MAAM,EAAG,GACtC,MAAQ,KAAK,OAAS,EAAI,EAAI,KAAK,MAAM,GAE/C,GAAI,MAAQ,GAAK,QAAU,EACzB,KAAM,IAAI,OACN,0DACqB,SAG3B,GAAI,KAAK,QAAU,WAAa,KAAK,QAAU,QAC7C,KAAM,IAAI,OACN,kCAAkC,KAAK,+CAI7C,GAAM,OAAO,KAAM,MAAK,OAClB,WAAa,KAAK,QAAU,UAAY,IAAM,EAC9C,MAAQ,GAAI,mBAAkB,MAAQ,OAAS,GAErD,OAAS,GAAI,EAAG,EAAI,OAAS,MAAO,EAAE,GACpC,GAAM,MAAO,CAAC,EAAG,EAAG,EAAG,KAEvB,OAAS,GAAI,EAAG,EAAI,MAAO,KACzB,GAAM,OAAQ,MAAK,EAAI,MAAQ,GAE/B,GAAI,KAAK,QAAU,WACjB,GAAI,MAAQ,GAAK,MAAQ,EACvB,KAAM,IAAI,OACN,mFACiC,kBAE9B,KAAK,QAAU,SACpB,OAAQ,GAAK,MAAQ,KACvB,KAAM,IAAI,OACN,mFACmC,UAIvC,QAAU,EACZ,MAAK,GAAK,MAAQ,WAClB,KAAK,GAAK,MAAQ,WAClB,KAAK,GAAK,MAAQ,YAElB,KAAK,GAAK,MAAQ,WAItB,GAAM,GAAI,EAAI,EACd,MAAM,EAAI,GAAK,KAAK,MAAM,KAAK,IAC/B,MAAM,EAAI,GAAK,KAAK,MAAM,KAAK,IAC/B,MAAM,EAAI,GAAK,KAAK,MAAM,KAAK,IAC/B,MAAM,EAAI,GAAK,KAAK,MAAM,KAAK,IAGjC,GAAI,QAAU,MACZ,OAAO,MAAQ,MACf,OAAO,OAAS,OAChB,GAAM,KAAM,OAAO,WAAW,MACxB,UAAY,GAAI,WAAU,MAAO,MAAO,QAC9C,IAAI,aAAa,UAAW,EAAG,GAEjC,MAAI,QAAS,KACX,KAAK,UAEA,MAGF,GAAM,YAAa,GAAG,CAAC,cErP9B,uBAAA,GAAA,UAAA,uBAAA,CAAA,mBAAA,IAAA,qBAUM,4BAA6B,QAAoB,SAErD,GAAM,YAAa,QAAO,MAAM,OAC1B,YAAc,QAAQ,MAAM,OAClC,GAAI,WAAa,EACf,KAAM,IAAI,OACN,4EACqB,eAE3B,GAAI,YAAc,EAChB,KAAM,IAAI,OACN,8EACqB,gBAE3B,GAAI,QAAQ,QAAU,QACpB,KAAM,IAAI,OACN,yEACsB,QAAQ,UAEpC,GAAI,QAAQ,MAAM,YAAc,GAAK,WACnC,KAAM,IAAI,OACN,iEACG,QAAQ,MAAM,YAAc,UAAU,cAG/C,GAAI,cAAc,QAAO,SAAW,EAClC,KAAM,IAAI,OACN,mEACiB,QAAO,UAG9B,GAAM,cAAe,QAAQ,MACvB,UAAY,aAAa,aAAa,OAAS,GAIjD,QAAU,EACd,OAAS,GAAI,EAAG,EAAI,aAAa,OAAS,EAAG,EAAE,EAC7C,SAAW,aAAa,GAG1B,GAAM,YAAa,QAAO,MAEpB,YAAc,aAAa,QACjC,YAAY,MAEZ,GAAI,WAAY,EAChB,OAAS,GAAI,UAAW,EAAI,WAAY,EAAE,EACxC,WAAa,WAAW,GACxB,YAAY,KAAK,WAAW,IAG9B,GAAM,SACF,CAAC,GAAG,eAAe,QAAO,OAAO,IAAI,QAAU,OAAS,WACvD,GAAG,MAAM,EAAG,WAEjB,MAAO,CAAC,YAAa,QAAS,UAAW,SCjE3C,GAAA,yBAAA,GAAA,UAAA,wBAAA,CAAA,gBAAA,IAAA,gBAAA,cAAA,IAAA,cAAA,oBAAA,IAAA,sBAQM,6BACF,MAAiB,QAAiB,SACpC,GAAM,UAAY,QAAQ,KAAO,EAAK,QAAQ,MAAM,QAAQ,KAAO,GAAK,EAClE,SAAY,QAAQ,KAAO,EAAK,QAAQ,KAAO,EAAI,EAEnD,WAAa,6FACyB,QAAQ,yBAC5B,QAAQ,iBAAiB,oBAC9B,2BAA2B,YAE9C,GAAI,QAAQ,KAAO,SACjB,KAAM,IAAI,OAAM,WAAa,kBAAkB,cAEjD,GAAI,MAAM,OAAS,SAAY,SAAQ,KAAO,UAC5C,KAAM,IAAI,OACN,WACA,0BAA0B,SAAY,SAAQ,KAAO,aAE3D,GAAI,QAAQ,OAAS,SAAW,MAAM,OAAS,SAC7C,KAAM,IAAI,OACN,WAAa,mBAAmB,SAAW,MAAM,OAAS,YAEhE,OAAS,GAAI,EAAG,EAAI,SAAU,EAAE,EAC9B,GAAI,QAAQ,MAAM,KAAO,QAAQ,MAAM,GACrC,KAAM,IAAI,OACN,WACA,kBAAkB,OAAO,QAAQ,MAAM,wBAAwB,OAC3D,QAAQ,MAAM,QAG1B,OAAS,GAAI,EAAG,EAAI,QAAQ,KAAO,SAAU,EAAE,EAC7C,GAAI,QAAQ,MAAM,EAAI,YAAc,MAAM,EAAI,UAC5C,KAAM,IAAI,OACN,WACA,kBAAkB,EAAI,cAClB,QAAQ,MAAM,EAAI,uBAAuB,EAAI,cAC7C,MAAM,EAAI,cAmBlB,uBACF,QAAiB,QAAiB,OACpC,GAAI,QAAQ,KAAO,EACjB,KAAM,IAAI,OACN,+EACqB,QAAQ,SAEnC,GAAI,QAAQ,KAAO,EACjB,KAAM,IAAI,OACN,+EACqB,QAAQ,SAEnC,GAAI,QAAQ,QAAU,QACpB,KAAM,IAAI,OAAM,0DACZ,QAAQ,SAEd,GAAI,MAAM,OAAS,EACjB,KAAM,IAAI,OACN,6DAA6D,SAGnE,GAAI,MAAM,SAAW,GACnB,GAAI,QAAQ,OAAS,EACnB,KAAM,IAAI,OAAM,sDACZ,QAAQ,SAEd,GAAI,QAAQ,OAAS,EACnB,KAAM,IAAI,OAAM,sDACZ,QAAQ,SAIhB,oBAAoB,MAAO,QAAS,SAYhC,yBACF,QAAqB,QACrB,OAEF,GAAM,aAAc,QAAQ,MAAM,OAC5B,UAAa,YAAc,EAAK,QAAQ,MAAM,YAAc,GAAK,EAKjE,QAAU,MAAM,OAElB,UAAY,EAChB,OAAS,GAAI,UAAW,EAAI,QAAS,EAAE,EACrC,WAAa,MAAM,GAGrB,GAAM,cAAgB,UAAY,EAAK,EAAI,UACrC,WAAa,cAAc,QAAQ,OAAS,aAE5C,QAAU,CAAC,GAAG,eAAe,MAAM,MAAM,EAAG,YAAa,GACzD,WAAa,cAAc,OACjC,MAAO,CAAC,UAAW,WAAY,UAAW,QAAS,YCnJrD,GAAA,oBAAA,GAAA,UAAA,mBAAA,CAAA,kBAAA,IAAA,kBAAA,kBAAA,IAAA,kBAAA,gBAAA,IAAA,gBAAA,kBAAA,IAAA,kBAAA,iBAAA,IAAA,iBAAA,WAAA,IAAA,WAAA,iBAAA,IAAA,iBAAA,UAAA,IAAA,UAAA,aAAA,IAAA,aAAA,2BAAA,IAAA,2BAAA,YAAA,IAAA,YAAA,0BAAA,IAAA,0BAAA,eAAA,IAAA,eAAA,sBAAA,IAAA,wBA8BM,2BACF,OAAmB,MAAiB,MACtC,GAAM,WAAY,OAAM,MAAM,OACzB,OACD,YAAc,MAAM,OACpB,IAAM,iBAAiB,+BAA+B,2CAClB,eACnC,OACD,YAAc,KAAK,OACnB,IAAM,iBAAiB,8BAA8B,0CACjB,eAExC,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC1B,OACD,MAAM,GAAK,KAAK,IAAM,OAAM,MAAM,GAClC,IAAM,iBAAiB,qBAAqB,aAAa,OACjD,MAAM,GAAK,KAAK,kCAAkC,OAChD,OAAM,MAAM,OAKxB,oBAAqB,MACzB,GAAM,MAAO,GACT,KAAO,EACX,KAAO,KAAO,GACR,KAAO,GACT,KAAK,KAAK,MAEZ,MAAQ,EACR,OAEF,MAAO,MAIH,yBACF,MAAiB,IAAe,SAClC,GAAM,MAAO,GACb,OAAS,MAAO,EAAG,KAAO,MAAM,OAAQ,OACtC,KAAK,MAAQ,KAAK,KAAM,KAAI,MAAQ,MAAM,OAAS,QAAQ,OAE7D,MAAO,MAKH,+BACF,QAAmB,uBAAgC,cACnD,YACF,GAAM,YAAa,CAAC,GAAG,SACvB,OAAS,GAAI,WAAW,OAAQ,EAAI,WAAW,OAAQ,IACrD,WAAW,KAAK,GAElB,OAAS,GAAI,EAAG,EAAI,cAAe,IAC7B,IAAM,EACR,WAAW,wBAA0B,EAErC,YAAW,OACP,uBAAwB,EACxB,GACJ,WAAW,OAGf,MAAO,YAGT,yBACI,uBAAgC,cAChC,gBACF,MAAI,iBAAkB,uBACb,eAGF,eAAkB,eAAgB,GAG3C,uBAAuB,cAAuB,wBAC5C,GAAM,YAAa,GACnB,OAAS,GAAI,EAAG,EAAI,cAAe,IACjC,WAAW,KAAK,uBAAyB,GAE3C,MAAO,YAIH,2BACF,WAAsB,aAAwB,oBAC9C,MAAiB,IAAe,QAAmB,UACnD,QACA,cACF,GAAM,WAAY,WAAW,OACzB,gBAAkB,GAAI,OAAM,WAC5B,cAAgB,GAAI,OAAM,WAC1B,kBAAoB,GAAI,OAAM,WAClC,GAAI,aAAa,QAAU,oBAAsB,GAC/C,GAAM,WAAY,aAAa,GAIzB,cAAgB,oBAAsB,EAC5C,gBAAkB,2BACd,UAAW,UAAW,cAAe,MAAO,YAChD,cAAgB,0BACZ,QAAS,UAAW,cAAe,IAAK,YAC5C,kBACI,sBAAsB,QAAS,UAAW,cAAe,gBAE7D,QAAS,MAAO,EAAG,KAAO,UAAW,OACnC,gBAAgB,MAAQ,aACpB,UAAW,MAAO,QAAS,WAAY,KAAM,cACjD,cAAc,MACV,YAAY,QAAS,IAAK,QAAS,WAAY,KAAM,cACzD,kBAAkB,MAAQ,eAAe,QAAS,KAAM,cAI5D,MAAO,CACL,MAAO,gBACP,IAAK,cACL,QAAS,mBAMP,oCACF,UAAmB,uBAAgC,cACnD,cAAyB,YAC3B,GAAM,YAAa,CAAC,GAAG,YACjB,WAAa,cAAc,cAAe,wBAEhD,OAAS,MAAO,EAAG,KAAO,WAAW,OAAQ,OAC3C,GAAI,WAAW,QAAQ,MAAQ,GAC7B,WAAW,MAAQ,OAEnB,GAAM,cACF,gBAAgB,uBAAwB,cAAe,MACvD,cAAgB,cAAc,cAC9B,UAAY,GAAK,cACnB,eAAgB,GAGlB,WAAW,MAAQ,cAGvB,MAAO,YAKH,mCACF,QAAiB,uBAAgC,cACjD,YAAuB,YACzB,GAAM,YAAa,CAAC,GAAG,YACjB,WAAa,cAAc,cAAe,wBAEhD,OAAS,MAAO,EAAG,KAAO,WAAW,OAAQ,OAC3C,GAAI,WAAW,QAAQ,MAAQ,GAC7B,WAAW,MAAQ,OAAO,sBAE1B,GAAM,cACF,gBAAgB,uBAAwB,cAAe,MACvD,cAAgB,YAAY,cAC5B,QAAU,GAAK,cACjB,eAAgB,OAAO,kBAEzB,WAAW,MAAQ,cAIvB,OAAS,GAAI,EAAG,EAAI,WAAW,OAAQ,KAErC,GAAM,UAAW,WAAW,GACxB,WAAW,GAAK,GAClB,YAAW,IAAM,UAEnB,WAAW,GAAU,MAAM,EAAG,WAAW,GAAI,WAAW,IAE1D,MAAO,YAGH,wBACF,QAAmB,KAAc,cACnC,GAAI,QAAS,QAAQ,MACrB,MAAI,cAAgB,GAAK,MAAS,QAAU,OAC1C,QAAS,GAGJ,OAGH,sBACF,UAAmB,aAAwB,QAC3C,WAAsB,KAAc,cAEtC,GAAI,OAAQ,aAAa,MACnB,OAAS,QAAQ,OAAS,EAI5B,AAAA,WAAY,GAAK,MAAQ,aAAe,GAAK,MAAQ,OAAS,OAC5D,QAAS,EAIX,MAAQ,OAAO,iBAGf,MAAQ,OAAO,kBAKnB,GAAM,UAAW,WAAW,MAC5B,MAAI,OAAQ,GACV,QAAS,UAIX,MAAa,MAAM,EAAG,MAAO,SAAW,GAEjC,MAGH,qBACF,QAAiB,YAAuB,QACxC,WAAsB,KAAc,cAEtC,GAAI,MAAO,YAAY,MACjB,OAAS,QAAQ,OAAS,EAI5B,AAAA,SAAW,GAAK,MAAS,aAAgB,GAAK,MAAS,MAAQ,OAC7D,QAAS,EAGX,KAAO,OAAO,iBAGd,KAAO,OAAO,kBAKlB,GAAM,UAAW,WAAW,MAC5B,MAAI,MAAO,GACT,OAAQ,UAMN,OAAS,EAEX,KAAY,MAAM,EAAG,KAAM,UAG3B,KAAY,MAAM,GAAI,KAAM,SAAW,GAGlC,KAOH,0BACF,MAAiB,MAAiB,MAEpC,GAAI,iBAAkB,KAAK,OAC3B,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,IAC/B,GAAI,KAAK,GAAK,GACZ,gBAAkB,EAClB,MAIJ,OAAS,GAAI,gBAAkB,EAAG,EAAI,KAAK,OAAQ,IACjD,GAAI,MAAM,GAAK,GAAK,KAAK,KAAO,MAAM,GACpC,MAAO,GAGX,MAAO,GAGH,2BAA4B,MAAiB,SACjD,GAAI,YAAa,MAAM,OAAS,EAAI,MAAM,MAAM,OAAS,GAAK,EAC9D,OAAS,GAAI,EAAG,EAAI,MAAM,OAAS,EAAG,IACpC,YAAc,MAAM,GAAK,QAAQ,GAEnC,MAAO,YAGH,0BACF,EAAe,MAAwB,MAEzC,GAAI,QACE,MAAQ,EAAE,MAAM,OAClB,MAAO,QAAU,SACnB,OAAS,CAAC,MAAO,GAAG,GAAI,OAAM,MAAQ,GAAG,KAAK,IACrC,MAAM,OAAS,MACxB,OAAS,MAAM,OAAO,GAAI,OAAM,MAAQ,MAAM,QAAQ,KAAK,IAE3D,OAAS,MAAM,QAEjB,OAAO,QAAQ,IACR,OACD,IAAM,GAAI,IAAM,uDAEtB,GAAI,OACJ,MAAI,OAAQ,KACV,MAAQ,GAAI,OAAM,OAAO,KAAK,IACrB,MAAO,OAAS,SACzB,MAAQ,CAAC,KAAM,GAAG,GAAI,OAAM,MAAQ,GAAG,KAAK,KACnC,KAAK,OAAS,MACvB,MAAQ,KAAK,OAAO,GAAI,OAAM,MAAQ,KAAK,QAAQ,KAAK,KAExD,MAAQ,KAEV,MAAQ,MAAM,IAAI,CAAC,EAAG,IAChB,GAAK,EACA,EAEF,QACD,IAAM,GACN,IAAM,qDACC,mCAAmC,MACvC,EAAE,MAAM,GAAK,OAAO,KAGxB,CAAC,OAAQ,OAGZ,mBACF,OAAkB,MAAiB,IAAe,QAClD,UAAmB,QAAiB,aACpC,YAAqB,gBAEvB,GAAI,QAAS,MAAM,QACf,KAAO,IAAI,QACX,SAAW,QAEX,SAAW,MACb,UAAW,GAAI,OAAM,OAAO,SAG9B,GAAM,cAAe,WAAW,cAChC,GAAI,aAAa,OAAS,EACxB,KAAM,IAAI,OAAM,8CAGlB,GAAI,eAAiB,GAAK,cAAgB,EACxC,KAAM,IAAI,OACN,iEAGN,GAAI,eAAiB,GAAK,iBAAmB,EAC3C,KAAM,IAAI,OACN,oEAGN,GAAM,qBAAsB,OAAO,OAAS,OAAO,OAG7C,WAAa,WAAW,aACxB,SAAW,OAAO,QACxB,WAAW,QAAQ,OACjB,OAAO,MAAQ,EACf,KAAK,MAAQ,EACb,SAAS,OAAO,KAAM,EAAG,KAG3B,GAAM,CACJ,MAAO,gBACP,IAAK,cACL,QAAS,mBAEP,kBACI,SAAU,aAAc,oBAAqB,OAAQ,KAAM,SAC3D,UAAW,QAAS,cAC5B,OAAS,gBACT,KAAO,cACP,SAAW,kBAEX,GAAM,YAAa,WAAW,gBAE9B,WAAW,QAAQ,OACjB,KAAK,MAAQ,OAAO,MAAQ,EAC5B,SAAS,MAAQ,IAInB,GAAM,MAAO,gBAAgB,OAAQ,KAAM,UAErC,SAAW,KAAK,OAAO,CAAC,EAAG,OAAS,WAAW,QAAQ,QAAU,IAIvE,MAAO,CAAC,WAFW,SAAS,MAAM,GAAK,IAAM,GAEzB,OAAQ,KAAM,SAAU,KAAM,SAAU,UC/a9D,GAAA,uBAAA,GAAA,UAAA,sBAAA,CAAA,aAAA,IAAA,aAAA,iBAAA,IAAA,iBAAA,cAAA,IAAA,gBAAA,GAAA,cAAA,MA0EE,eACE,MAAQ,MAAK,YACR,gBAiBA,YACH,IAAiC,SACnC,MAAO,IAAI,KAAI,WA/FnB,iBAAA,MAiHE,cACE,KAAK,aAAe,SAMf,UACL,MAAI,kBAAiB,UAAY,MAC/B,kBAAiB,SAAW,GAAI,mBAE3B,iBAAiB,eAMnB,UAAiC,KACtC,iBAAiB,SAAS,aAAa,IAAI,WACvC,CAAC,IAAK,IAAI,cA4BZ,uBACF,KACF,OACI,IAAI,WAAa,KACjB,IAAM,+EAEV,OACI,MAAO,KAAI,WAAc,SACzB,IAAM,sDACF,MAAO,KAAI,WACnB,OACI,IAAI,UAAU,OAAS,EACvB,IAAM,qFAGV,iBAAiB,SAAS,KC/K5B,GAAA,mBAAA,GAAA,UAAA,kBAAA,CAAA,qBAAA,IAAA,qBAAA,cAAA,IAAA,cAAA,wBAAA,IAAA,wBAAA,kBAAA,IAAA,kBAAA,kBAAA,IAAA,kBAAA,mBAAA,IAAA,mBAAA,oBAAA,IAAA,oBAAA,oBAAA,IAAA,oBAAA,YAAA,IAAA,cAsBA,GAAM,sBAAuB,KAChB,qBAAuB,GAE9B,2BACF,OACA,SAAoD,UACtD,MAAI,WAAW,MACb,UAAU,eAEL,sBACH,OAAQ,SAAU,CAAC,EAAG,IAAM,SAAS,EAAa,EAAa,WAG/D,uBACJ,MAAO,QAAO,QAAQ,mBAAqB,GAAK,qBACA,qBAGlD,+BACI,OAAoB,SACpB,WACF,GAAI,gBAAiB,GAOrB,GANI,cAAa,SAAW,aAAa,YACvC,gBAAiB,IAEf,aAAa,SAAW,aAAa,WACvC,gBAAiB,IAEf,gBACF,GAAM,OAAQ,OAAO,YAAY,KAC3B,MAAQ,SAAS,YAAY,KAEnC,GAAI,QAAU,MACZ,KAAM,IAAI,OACN,yCAAyC,oBAC5B,SAIrB,GAAI,MAAM,QAAQ,SAAW,MAAM,QAAQ,WACzC,GAAM,aAAc,WAAW,QACzB,cAAgB,WAAW,UACjC,GAAI,CAAC,YAAY,YAAa,eAC5B,KAAM,IAAI,OACN,0CACY,4BAA4B,kBAIhD,GAAM,YACF,aAAa,QAAU,OAAS,QAAQ,QACtC,aAAe,aAAa,UAC9B,SACA,QAAQ,UAEZ,GAAI,WAAW,SAAW,aAAa,OACrC,KAAM,IAAI,OACN,yCAAyC,WAAW,uBACvC,aAAa;YACb;YACA,iBAEnB,OAAS,GAAI,EAAG,EAAI,aAAa,OAAQ,EAAE,GACzC,GAAM,GAAI,WAAW,GACf,EAAI,aAAa,GAEvB,GAAI,CAAC,UAAU,EAAG,GAChB,KAAM,IAAI,OACN,yBAAyB,QAAQ,eAAe,QAAQ;YAC3C;YACA,kBAUjB,6BAA8B,GAAuB,MACzD,KAAK,KAAK,IAAM,KAAK,OAAQ,IAAM,QAG/B,2BAA4B,OAAoB,UACpD,GAAM,MAAM,MAAO,WAAa,UAAY,MAAO,WAAa,UACxD,MAAO,WAAa,UACxB,CAAC,UACD,SACJ,MAAI,UAAS,SAAW,SAAU,OAAoB,KAClD,SAAS,WAAa,SAAU,SAAsB,IAEjD,sBAAsB,OAAQ,KAAK,CAAC,EAAG,IAAM,GAAK,GAEpD,sBACH,OAAQ,SAAU,CAAC,EAAG,IAAM,SAAS,EAAa,EAAa,IAG/D,4BAA6B,EAAW,EAAW,UAIvD,GAHI,UAAW,MACb,UAAU,eAER,CAAC,SAAS,EAAG,EAAG,UAClB,KAAM,IAAI,OAAM,8BAA8B,mBAAmB,KAIrE,kBAAkB,EAAW,EAAW,UACtC,MAAI,CAAC,SAAS,IAAM,CAAC,SAAS,GACrB,GAEL,CAAA,OAAM,IAAM,MAAM,IAAM,KAAK,IAAI,EAAI,GAAK,UAM1C,6BACF,OAA6B,IAAa,MAC5C,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,GAAI,OAAO,GAAK,KAAO,OAAO,GAAK,KACjC,KAAM,IAAI,OACN,sBAAsB,OAAO,WAAW,cAAc,QAK1D,iCACF,OAAqB,UAGvB,OAAO,GAAI,cAAa,SAAS,QAAQ,GAAI,cAAa,WAItD,uBAAwB,GAE5B,OAAS,GAAI,EAAG,EAAK,EAAgB,OAAQ,KAC3C,GAAM,KAAM,EAAE,GACV,MAAM,QAAQ,KAChB,cAAc,KAEd,EAAE,GAAK,aAAa,KAGxB,MAAO,GCpKT,GAAM,UAAU,QC6BV,0BACJ,MAAM,IAAI,OAAQ,IAiBd,2BACJ,MAAM,IAAI,QAAS,IAIf,sCACJ,MAAM,IAAI,+BAAgC,IAC1C,QAAQ,KAAK,0DAIT,yBAA0B,KAC1B,MAAM,QAAQ,iCAChB,QAAQ,KACJ,IAAM,+EAId,wBAAwB,iBAOlB,4BACJ,OAAO,mBAQH,kBACJ,MAAO,QAwBH,kBACJ,MAAO,QAAO,SAkCV,iBAAkB,GAEtB,MAAO,QAAO,QAAQ,GA2ClB,cACF,SAA6B,IAC/B,MAAO,QAAO,KAAK,SAAU,IAczB,iBAAkB,WACN,sBAAsB,WAC9B,QAAQ,SAAU,QAAO,WAmC7B,cAAiC,QACrC,MAAO,QAAO,KAAK,QA4Bf,cAAe,GACnB,MAAO,QAAO,KAAK,GAkBf,oBAAqB,aACzB,MAAO,QAAO,WAAW,aAUrB,iBACJ,MAAO,QAAO,QASV,sBACJ,MAAO,QAAO,YAQV,uBAAwB,MAC5B,OAAO,cAAc,MAOjB,qBAAsB,MAC1B,MAAO,QAAO,YAAY,MAQtB,4BAA6B,MAEjC,MAAO,QAAO,mBAAmB,MAkB7B,yBACF,KAAc,QACd,SAAW,GACb,MAAO,QAAO,gBAAgB,KAAM,QAAS,UAWzC,mBACJ,MAAO,QAAO,QASV,qBAAsB,aAAsB,UAChD,MAAM,YAAY,aAAc,UC7UlC,cAAgC,EAAsB,GACpD,GAAI,IAAK,gBAAgB,EAAG,IAAK,OAC7B,GAAK,gBAAgB,EAAG,IAAK,OACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,GAAM,QAAoB,CAAC,EAAG,GAAI,EAAG,IAErC,MAAO,QAAO,UAAU,IAAK,QAGxB,GAAM,MAAM,GAAG,CAAC,OCNvB,mBACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,YAC7B,GAAK,gBAAgB,EAAG,IAAK,YACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,GAAM,QAAyB,CAAC,EAAG,GAAI,EAAG,IAE1C,MAAO,QAAO,UAAU,SAAU,QAG7B,GAAM,UAAW,GAAG,CAAC,YCZ5B,cAAgC,EAAsB,GACpD,GAAI,IAAK,gBAAgB,EAAG,IAAK,OAC7B,GAAK,gBAAgB,EAAG,IAAK,OAGjC,GAFA,CAAC,GAAI,IAAM,eAAe,GAAI,IAE1B,GAAG,QAAU,SAAW,GAAG,QAAU,QACvC,MAAO,UAAS,GAAI,IAGtB,GAAM,QAAwB,CAAC,EAAG,GAAI,EAAG,IACnC,MAAQ,GAGd,MAAO,QAAO,UAAU,QAAS,OAAgC,OAG5D,GAAM,KAAM,GAAG,CAAC,OChBvB,cAAgC,EAAsB,GACpD,GAAI,IAAK,gBAAgB,EAAG,IAAK,OAC7B,GAAK,gBAAgB,EAAG,IAAK,OACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,GAAM,QAAyB,CAAC,EAAG,GAAI,EAAG,IAE1C,MAAO,QAAO,UAAU,SAAU,QAE7B,GAAM,KAAM,GAAG,CAAC,OCvBvB,cAAgC,GAC9B,GAAM,IAAK,gBAAgB,EAAG,IAAK,OAEnC,GAAI,GAAG,QAAU,aACf,GAAM,QAA2B,CAAC,EAAG,IACrC,MAAO,QAAO,UAAU,WAAY,aAEpC,GAAM,QAAoB,CAAC,EAAG,IAC9B,MAAO,QAAO,UAAU,IAAK,SAI1B,GAAM,KAAM,GAAG,CAAC,OCdvB,eAAiC,GAE/B,GAAM,QAAqB,CAAC,EADjB,gBAAgB,EAAG,IAAK,SAGnC,MAAO,QAAO,UAAU,KAAM,QAEzB,GAAM,MAAO,GAAG,CAAC,QCHxB,gBAAkC,GAEhC,GAAM,QAAsB,CAAC,EADlB,gBAAgB,EAAG,IAAK,UAGnC,MAAO,QAAO,UAAU,MAAO,QAE1B,GAAM,OAAQ,GAAG,CAAC,SCNzB,eAAiC,SAC1B,OACD,MAAM,QAAQ,SACd,IAAM,8DACL,OACD,QAAQ,QAAU,EAClB,IAAM,uDACC,QAAQ,UAEnB,GAAM,UACF,QAAQ,IAAI,CAAC,EAAG,IAAM,gBAAgB,EAAG,UAAU,IAAK,SAEtD,YAAc,SAAS,GAC7B,SAAS,QAAQ,IACf,GAAI,EAAE,QAAU,YAAY,MAC1B,KAAM,IAAI,OACN,8DAIR,SAAS,QAAQ,IACf,GAAI,CAAM,YAAY,EAAE,MAAO,YAAY,OACzC,KAAM,IAAI,OACN,8DAIR,GAAM,QAAqB,SAE3B,MAAO,QAAO,UAAU,KAAM,QAGzB,GAAM,MAAO,GAAG,CAAC,QCfxB,cACI,EAAsB,KAAwB,KAAM,SAAW,IAGjE,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,MAAO,SAGpC,MAAkB,CAAC,KAAM,UAE/B,MAAO,QAAO,UACV,IAAK,OAAgC,OAGpC,GAAM,KAAM,GAAG,CAAC,OCXvB,cACI,EAAsB,KAAwB,KAAM,SAAW,IAGjE,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,MAAO,SAGpC,MAAkB,CAAC,KAAM,UAE/B,MAAO,QAAO,UACV,IAAK,OAAgC,OAIpC,GAAM,KAAM,GAAG,CAAC,OCjBvB,iBAAmC,EAAsB,KAAO,GAG9D,GAAM,QAAuB,CAAC,EAFnB,gBAAgB,EAAG,IAAK,WAG7B,MAAqB,CAAC,MAE5B,MAAO,QAAO,UACV,OAAQ,OAAgC,OAGvC,GAAM,QAAS,GAAG,CAAC,UCV1B,iBAAmC,EAAsB,KAAO,GAG9D,GAAM,QAAuB,CAAC,EAFnB,gBAAgB,EAAG,IAAK,WAG7B,MAAqB,CAAC,MAE5B,MAAO,QAAO,UACV,OAAQ,OAAgC,OAGvC,GAAM,QAAS,GAAG,CAAC,UCxB1B,eAAiC,GAE/B,GAAM,QAAqB,CAAC,EADjB,gBAAgB,EAAG,IAAK,SAGnC,MAAO,QAAO,UAAU,KAAM,QAEzB,GAAM,MAAO,GAAG,CAAC,QCJxB,gBAAkC,GAGhC,GAAM,QAAsB,CAAC,EAFlB,gBAAgB,EAAG,IAAK,UAInC,MAAO,QAAO,UAAU,MAAO,QAE1B,GAAM,OAAQ,GAAG,CAAC,SCRzB,eAAiC,GAG/B,GAAM,QAAqB,CAAC,EAFjB,gBAAgB,EAAG,IAAK,SAInC,MAAO,QAAO,UAAU,KAAM,QAEzB,GAAM,MAAO,GAAG,CAAC,QCFxB,gBACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,SAC7B,GAAK,gBAAgB,EAAG,IAAK,SACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,GAAM,QAAsB,CAAC,EAAG,GAAI,EAAG,IAEvC,MAAO,QAAO,UAAU,MAAO,QAG1B,GAAM,OAAQ,GAAG,CAAC,SCfzB,gBAAkC,GAGhC,GAAM,QAAsB,CAAC,EAFlB,gBAAgB,EAAG,IAAK,UAInC,MAAO,QAAO,UAAU,MAAO,QAE1B,GAAM,OAAQ,GAAG,CAAC,SCmDnB,+BACF,WACA,YAAuC,QACvC,KAA4B,WAAqB,OACjD,WAKF,GAAM,eAAgB,WAAW,GAC3B,aACF,CAAC,GAAG,YAAa,eACf,YAAc,wBAAwB,YAE5C,MAAO,mBACH,WAAY,aAAc,QAAS,UAAW,KAC9C,KAAyB,KAAsB,aAG/C,2BACF,QACA,WAAqC,QACrC,UAAoC,KACpC,aACA,WAA6C,gBAC/C,GAAM,CAAC,aAAc,aAAe,gBAAgB,YAEhD,YACJ,GAAI,aAAe,eACjB,YAAc,CAAC,aAAc,YAAa,QAAQ,GAAI,QAAQ,YACrD,aAAe,gBACxB,YAAc,CAAC,aAAc,YAAa,QAAQ,GAAI,QAAQ,QAE9D,MAAM,IAAI,OAAM,sBAAsB,cAGxC,MAAO,mBACH,QAAS,YAAa,QAAS,UAAW,KAAK,aAAc,GAC7D,YAMA,2BACF,QACA,WACA,QACA,UAA4C,KAC5C,aACA,WAA8B,SAChC,GAAM,CAAC,YAAa,aAAc,aAAe,iBAAiB,YAE9D,YACA,YACJ,GAAI,aAAe,QACjB,YAAc,eACd,YACI,CAAC,YAAa,aAAc,YAAa,QAAQ,GAAI,QAAQ,YACxD,aAAe,QACxB,YAAc,gBACd,YACI,CAAC,YAAa,aAAc,YAAa,QAAQ,GAAI,QAAQ,QAEjE,MAAM,IAAI,OAAM,sBAAsB,cAGxC,MAAO,mBACH,QAAS,YAAa,QAAS,UAAW,KAAK,GAAO,YACtD,cAOA,2BACF,QACA,YACA,QAAkC,UAClC,KACA,aAAuC,UAAY,GACnD,WAA6C,gBAC/C,GAAI,CAAC,UAAW,SAAU,QAAS,YAAc,CAAC,GAAI,GAAI,GAAI,IAC9D,GAAI,aAAe,eACjB,CAAC,UAAW,SAAU,QAAS,YAAc,gBACpC,aAAe,gBACxB,CAAC,UAAW,WAAY,SAAU,SAAW,YAE7C,MAAM,IAAI,OAAM,sBAAsB,cAGxC,GAAM,CAAC,aAAc,YAAY,CAAG,gBAAkB,YAChD,CAAC,aAAc,aAAe,gBAAgB,SAC9C,CAAC,eAAgB,eAAiB,gBAAgB,WAElD,sBACF,uBAAuB,aAAc,gBACnC,qBACF,uBAAuB,YAAa,eAClC,CAAC,QAAS,UAAW,UAAY,iBACnC,KAAK,SAAU,QAAS,aAAc,YAAa,sBACnD,qBAAsB,aAAc,YAElC,YAAc,UAAY,eAAiB,WAAa,eAE1D,SACJ,MAAI,cAAe,gBACjB,SAAW,CAAC,UAAW,YAAa,UAAW,UACtC,aAAe,gBACxB,UAAW,CAAC,UAAW,UAAW,SAAU,cAGvC,CACL,UACA,WACA,SACA,QACA,WACA,UACA,SACA,YACA,QACA,aACA,YACA,aACA,YACA,sBACA,qBACA,eACA,cACA,QACA,SACA,aA0CE,2BACF,QACA,YACA,QACA,UAA4C,KAC5C,UAAY,GACZ,WAA6C,eAC7C,cACF,GAAI,CAAC,UAAW,QAAS,SAAU,QAAS,YACxC,CAAC,GAAI,GAAI,GAAI,GAAI,IACrB,GAAI,aAAe,eACjB,CAAC,UAAW,QAAS,SAAU,QAAS,YAAc,gBAC7C,aAAe,gBACxB,CAAC,UAAW,WAAY,QAAS,SAAU,SAAW,YAEtD,MAAM,IAAI,OAAM,sBAAsB,cAGxC,GAAM,CAAC,YAAa,aAAc,YAAY,CAAG,gBAC7C,YACE,CAAC,YAAa,aAAc,aAAe,iBAAiB,SAC5D,CAAC,cAAe,eAAgB,eAClC,iBAAiB,WAEf,qBACF,uBAAuB,YAAa,eAClC,sBACF,uBAAuB,aAAc,gBACnC,qBACF,uBAAuB,YAAa,eAClC,CAAC,QAAS,SAAU,UAAW,UAAY,mBAC7C,KAAK,QAAS,SAAU,QAAS,YAAa,aAAc,YAC5D,qBAAsB,sBAAuB,qBAC7C,cAEE,YAAc,UAAY,eAAiB,WAAa,eAE1D,SACJ,MAAI,cAAe,gBACjB,SAAW,CAAC,UAAW,YAAa,SAAU,UAAW,UAChD,aAAe,gBACxB,UAAW,CAAC,UAAW,SAAU,UAAW,SAAU,cAGjD,CACL,UACA,WACA,QACA,SACA,QACA,WACA,SACA,UACA,SACA,YACA,QACA,YACA,aACA,YACA,YACA,aACA,YACA,qBACA,sBACA,qBACA,cACA,eACA,cACA,QACA,SACA,aAIJ,8BACI,QAA2B,UAAmB,OAC9C,QAAkB,cAChB,SAAW,MACb,SAAU,kBAAkB,QAAS,UAAW,SAElD,GAAM,WAAY,QAAQ,GACpB,UAAY,QAAQ,GAEpB,WACF,MAAO,WAAY,UAAY,EAAI,SAAW,OAAS,EAAG,cACxD,WACF,MAAO,WAAY,UAAY,EAAI,SAAW,OAAS,EAAG,cAE9D,MAAO,CAAC,WAAY,YAGtB,8BACI,QAA2C,UAC3C,YAAqB,OAAgB,QACrC,cACE,SAAW,MACb,SAAU,kBAAkB,QAAS,UAAW,SAElD,GAAM,YAAa,QAAQ,GACrB,UAAY,QAAQ,GACpB,UAAY,QAAQ,GAEpB,aACF,MAAO,YAAa,UAAY,EAAI,SAAW,OAAS,EAAG,cACzD,WACF,MAAO,WAAY,UAAY,EAAI,SAAW,OAAS,EAAG,cACxD,WACF,MAAO,WAAY,UAAY,EAAI,SAAW,OAAS,EAAG,cAE9D,MAAO,CAAC,aAAc,WAAY,WAAY,aAG1C,2BACF,WACA,UAAmB,OAAgB,SAAW,GAChD,GAAM,oBAAqB,uBAAuB,UAAW,UAC7D,MAAO,MAAK,MACP,YAAW,GAAM,QAAS,GAAK,OAAS,oBAAsB,GAGrE,yBAAyB,OACvB,MAAI,OAAO,QAAU,SACZ,CAAC,MAAO,MAAO,OAEpB,MAAM,SAAW,EACZ,CAAC,MAAM,GAAI,MAAM,GAAI,GAEvB,MAGT,0BAA0B,OAExB,MAAO,OAAO,QAAU,SAAW,CAAC,MAAO,MAAO,OAAS,MAc7D,gCAAgC,WAAoB,UAClD,MAAI,WAAY,EACP,WAGF,WAAc,YAAa,GAAM,UAAW,GAGrD,0BACI,KAA4C,SAC5C,QAAiB,aAAsB,YACvC,aAAsB,YACtB,aACA,YAEF,GAAI,SACA,UACA,SAEJ,GAAI,MAAO,OAAQ,UAEjB,QAAU,CAAC,IAAK,KAAK,OAAQ,KAAK,KAAM,KAAK,MAAO,KAAK,KADxC,OAAQ,EAAK,QAAU,UAExC,GAAM,UAAW,qBACb,CAAC,SAAU,SAAU,aAAc,aAAc,KAAK,cAC1D,UAAY,SAAS,GACrB,SAAW,SAAS,WACX,OAAQ,QACjB,UAAY,KAAK,KAAK,SAAW,cACjC,SAAW,KAAK,KAAK,QAAU,aAC/B,GAAM,gBACF,KAAK,IAAI,EAAI,WAAY,GAAK,aAAe,aAAe,UAC1D,cACF,KAAK,IAAI,EAAI,UAAW,GAAK,YAAc,YAAc,SACvD,IAAM,KAAK,MAAM,eAAiB,GAClC,OAAS,eAAiB,IAC1B,KAAO,KAAK,MAAM,cAAgB,GAClC,MAAQ,cAAgB,KAC9B,QAAU,CAAC,IAAK,OAAQ,KAAM,MAAO,KAAM,gBAClC,OAAQ,QACjB,QAAU,CAAC,IAAK,EAAG,OAAQ,EAAG,KAAM,EAAG,MAAO,EAAG,KAAM,SACvD,UAAY,KAAK,KAAM,UAAW,aAAe,GAAK,cACtD,SAAW,KAAK,KAAM,SAAU,YAAc,GAAK,qBAC1C,MAAO,OAAQ,UACxB,GAAM,KAAM,aAAe,eAAiB,KAAI,GAAG,GAAK,KAAI,GAAG,GACzD,OAAS,aAAe,eAAiB,KAAI,GAAG,GAAK,KAAI,GAAG,GAC5D,KAAO,aAAe,eAAiB,KAAI,GAAG,GAAK,KAAI,GAAG,GAC1D,MAAQ,aAAe,eAAiB,KAAI,GAAG,GAAK,KAAI,GAAG,GAIjE,QAAU,CAAC,IAAK,OAAQ,KAAM,MAAO,KAHpB,MAAQ,GAAK,SAAW,GAAK,OAAS,GAAK,QAAU,EAClE,QACA,YAEJ,UAAY,MACP,UAAW,aAAe,IAAM,QAAU,aAAe,EAC1D,cACJ,SAAW,MACN,SAAU,YAAc,KAAO,OAAS,YAAc,EAAG,kBAE9D,MAAM,OAAM,8BAA8B,QAE5C,MAAO,CAAC,QAAS,UAAW,UAG9B,4BACI,KAA4B,QAAiB,SAC7C,QAAiB,YAAqB,aACtC,YAAqB,YAAqB,aAC1C,YAAqB,cAMvB,GAAI,SACA,SACA,UACA,SAEJ,GAAI,MAAO,OAAQ,UAEjB,QAAU,CACR,IAAK,KACL,OAAQ,KACR,KAAM,KACN,MAAO,KACP,MAAO,KACP,KAAM,KACN,KARe,OAAQ,EAAK,QAAU,UAUxC,GAAM,UAAW,qBACb,CAAC,QAAS,SAAU,QAAS,GAAI,YAAa,EAAG,YAAa,KAC9D,cACJ,SAAW,SAAS,GACpB,UAAY,SAAS,GACrB,SAAW,SAAS,WACX,OAAQ,QACjB,SAAW,KAAK,KAAK,QAAU,aAC/B,UAAY,KAAK,KAAK,SAAW,cACjC,SAAW,KAAK,KAAK,QAAU,aAC/B,GAAM,eAAiB,UAAW,GAAK,YAAc,YAAc,QAC7D,eACD,WAAY,GAAK,aAAe,aAAe,SAC9C,cAAiB,UAAW,GAAK,YAAc,YAAc,QAC7D,MAAQ,KAAK,MAAM,cAAgB,GACnC,KAAO,cAAgB,MACvB,IAAM,KAAK,MAAM,eAAiB,GAClC,OAAS,eAAiB,IAC1B,KAAO,KAAK,MAAM,cAAgB,GAClC,MAAQ,cAAgB,KAE9B,QAAU,CAAC,IAAK,OAAQ,KAAM,MAAO,MAAO,KAAM,KAAM,gBAC/C,OAAQ,QACjB,QAAU,CACR,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,EACP,MAAO,EACP,KAAM,EACN,KAAM,SAER,SAAW,KAAK,KAAM,SAAU,YAAc,GAAK,aACnD,UAAY,KAAK,KAAM,UAAW,aAAe,GAAK,cACtD,SAAW,KAAK,KAAM,SAAU,YAAc,GAAK,iBAEnD,MAAM,OAAM,8BAA8B,QAE5C,MAAO,CAAC,QAAS,SAAU,UAAW,UASxC,eAAe,MAAe,cAC5B,GAAI,CAAC,aACH,MAAO,MAAK,MAAM,OAEpB,OAAQ,kBACD,QAEH,MAAO,MAAK,MAAM,WACf,OAEH,MAAO,MAAK,KAAK,WACd,QACH,MAAO,MAAK,MAAM,eAElB,KAAM,IAAI,OAAM,wBAAwB,iBAIxC,2BAA4B,OAChC,GAAM,CAAC,KAAM,KAAM,MAAQ,gBAAgB,OAC3C,MAAO,QAAS,GAAK,OAAS,GAAK,OAAS,EAGxC,wCACF,QAA0B,WAC5B,MAAO,mBAAkB,UAAY,kBAAkB,WAUnD,iCAAkC,YAEtC,GAAI,aAAe,OACjB,MAAO,eACF,GAAI,aAAe,OACxB,MAAO,gBAEP,KAAM,IAAI,OAAM,sBAAsB,cC9hB1C,kBACI,EAAsB,OAGxB,GAAM,QAAwB,CAAC,EAFpB,gBAAgB,EAAG,IAAK,UAAW,sBAGxC,MAAsB,CAAC,OAC7B,MAAO,QAAO,UACV,QAAS,OAAgC,OAExC,GAAM,SAAU,GAAG,CAAC,WCX3B,kBACI,EAAiB,WACjB,QAAkC,KAClC,iBACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,UAAW,WACxC,UAAY,EAEb,OACS,+BAA+B,QAAS,WAClD,IAAM,wEACa,0BAA0B,cAEjD,GAAI,KAAM,GACN,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAGtD,OACD,IAAI,OAAS,EACb,IAAM,mDAAmD,IAAI,SAE7D,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,wEACiB,+BAA+B,SAG5D,GAAM,QAAwB,CAAC,EAAG,KAE5B,MAAsB,CAAC,WAAY,QAAS,IAAA,KAAK,iBAGnD,IAAM,OAAO,UACH,QAAS,OACT,OAId,MAFA,KAAM,KAAK,IAAK,GAAG,OAEf,aACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAGtD,IAGF,GAAM,SAAU,GAAG,CAAC,WCvB3B,oBACI,EAAiB,WACjB,QAA0C,KAC1C,gBACA,WAA8B,QAC9B,WACE,WAAa,KACf,UAAY,CAAC,EAAG,EAAG,GAEnB,gBACI,+DAIN,GAAM,IAAK,gBAAgB,EAAG,IAAK,YAAa,WAE5C,IAAM,GACN,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAGnE,OACD,IAAI,OAAS,EACb,IAAM,qDAAqD,IAAI,SAC9D,OACD,aAAe,QACf,IAAM,gFACuB,cAC5B,OACS,+BAA+B,QAAS,WAClD,IAAM,0EACa,0BAA0B,cAE7C,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,0EACiB,+BAA+B,SAG5D,GAAM,QAA0B,CAAC,EAAG,KAE9B,MACF,CAAC,WAAY,QAAS,IAAA,KAAK,gBAAiB,WAAY,WAGxD,IAAM,OAAO,UACH,UAAW,OACX,OAId,MAFA,KAAM,KAAK,IAAK,IAAI,OAEhB,aACK,QACI,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAIhE,IAGF,GAAM,WAAY,GAAG,CAAC,aCvE7B,iBAAmC,QAA8B,KAAO,GACtE,OAAO,QAAQ,QAAU,EAAG,IAAM,sCAElC,GAAM,UACF,qBAAqB,QAAS,UAAW,SAAU,qBAWvD,GATI,SAAS,GAAG,QAAU,aACxB,SAAS,QAAQ,UACf,GAAI,QAAO,QAAU,YACnB,KAAM,IAAI,OAAM;uBACD,QAAO,aAKxB,SAAS,SAAW,EACtB,MAAO,OAAM,SAAS,IAGxB,GAAM,QAAuB,SACvB,KAAoB,CAAC,MAE3B,MAAO,QAAO,UACV,OAAQ,OAAgC,MAGvC,GAAM,QAAS,GAAG,CAAC,UCxD1B,kBAAoC,GAGlC,GAAM,QAAwB,CAAC,EAFpB,gBAAgB,EAAG,IAAK,YAInC,MAAO,QAAO,UAAU,QAAS,QAE5B,GAAM,SAAU,GAAG,CAAC,WCgB3B,gBACI,EAAiB,MAAwB,MAC3C,GAAM,IAAK,gBAAgB,EAAG,IAAK,QAAS,qBAE5C,GAAI,GAAG,OAAS,EACd,KAAM,IAAI,OAAM,kCAGlB,GAAM,QAAsB,CAAC,EAAG,IAC1B,MAAoB,CAAC,MAAO,MAElC,MAAO,QAAO,UACV,MAAO,OAAgC,OAGtC,GAAM,OAAQ,GAAG,CAAC,SCtCzB,eAAiC,GAG/B,GAAM,QAAqB,CAAC,EAFjB,gBAAgB,EAAG,IAAK,SAInC,MAAO,QAAO,UAAU,KAAM,QAEzB,GAAM,OAAO,GAAG,CAAC,QCCxB,wBACI,WAA+B,WAC/B,SAA+B,MAC/B,EAAwB,GAC1B,GAAM,aACF,gBAAgB,WAAY,aAAc,iBACxC,YACF,gBAAgB,WAAY,aAAc,iBACxC,UAAY,gBAAgB,SAAU,WAAY,iBAClD,MAAQ,gBAAgB,MAAM,OAAQ,iBACtC,GAAK,gBAAgB,EAAG,IAAK,iBAC7B,GAAK,gBAAgB,EAAG,IAAK,iBAE7B,SAAW,OAAO,CAAC,MAAO,IAAK,GAC/B,SAAW,OAAO,SAAU,aAC5B,IAAgB,KAAI,SAAU,WAG9B,UAAY,IAAI,MAAM,GACtB,UAAY,IAAI,MAAM,GAAK,EAC3B,UAA8B,CAAC,UAAW,WAC1C,EAAI,MAAM,IAAK,CAAC,EAAG,GAAI,WACvB,EAAI,MAAM,IAAK,CAAC,EAAG,WAAY,WAC/B,EAAI,MAAM,IAAK,CAAC,EAAG,UAAY,GAAI,WACnC,EAAI,MAAM,IAAK,CAAC,EAAG,UAAY,GAAI,WAEnC,KACF,KAAI,IAAI,QAAQ,GAAI,MAAK,IACrB,IAAI,GAAI,QAAQ,KAAI,YAAa,MACnC,KAAiB,IAAI,MAAK,MAAO,QAAQ,IAC/C,MAAO,CAAC,KAAM,MAGT,GAAM,eAAgB,GAAG,CAAC,iBCHjC,yBACI,EAAiB,WAAsB,OACzC,GAAM,IAAK,gBAAgB,EAAG,IAAK,kBAC7B,MAAO,WAAW,OAAO,CAAC,EAAG,IAAM,EAAI,GAExC,OACD,GAAG,MAAQ,EAAI,WAAW,OAC1B,IAAM,iBAAiB,GAAG,+CACtB,WAAW,UAEd,OACD,MAAM,SAAW,WAAW,OAC5B,IAAM,mBACF,MAAM,oDACN,WAAW,UAEd,OACD,GAAG,MAAM,GAAK,OAAS,EACvB,IAAM,yBACI,GAAG,MAAM,wEACe,WAAW,KAAK,cAAc,SAEpE,GAAM,QAA+B,CAAC,EAAG,IACnC,MAA6B,CAAC,WAAY,OAEhD,MAAO,QAAO,UACV,eAAgB,OAChB,OAGC,GAAM,gBAAiB,GAAG,CAAC,kBCtF5B,eAAgC,GACpC,GAAI,KACJ,MAAI,GAAE,OAAS,GAAK,EAAE,OAAS,EAC7B,IAAM,QAAQ,EAAG,CAAC,EAAG,EAAG,EAAG,EAAE,OACpB,EAAE,OAAS,EACpB,IAAM,QAAQ,EAAG,CAAC,EAAG,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,KACnC,EAAE,OAAS,EACpB,IAAM,QAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,KAErD,IAAM,EAGD,ICwBT,oBACI,EAAyB,MACzB,SACA,OACA,OACA,iBACE,iBAAmB,MACrB,iBAAkB,MAEpB,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAC7B,MAAQ,gBAAgB,MAAM,OAAQ,aACtC,UAAY,gBAAgB,SAAU,WAAY,aACpD,OACA,QAAS,MACX,QAAS,gBAAgB,OAAO,QAAS,cAE3C,GAAI,SACA,QAAU,MACZ,SAAU,gBAAgB,OAAQ,SAAU,cAGzC,OACD,MAAM,OAAS,UAAU,KACzB,IAAM,gFAEL,OACD,SAAW,MAAQ,MAAM,OAAS,QAAQ,KAC1C,IAAM,8EAEL,OACD,QAAU,MAAQ,MAAM,OAAS,OAAO,KACxC,IAAM,6EAKV,GAAM,QAA+B,CACnC,EAHoB,MAAM,IAI1B,MAAO,OACP,OAAQ,QACR,KAAM,MACN,SAAU,WAGN,MAA6B,CAAC,iBAG9B,IAAM,OAAO,UACH,eAAgB,OAChB,OAEhB,MAAO,SAAQ,IAAK,GAAG,OAGlB,GAAM,WAAY,GAAG,CAAC,aC3E7B,sBACI,EAAwB,MACxB,SACA,OAAuC,OACvC,iBACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAC7B,MAAQ,gBAAgB,MAAM,OAAQ,aACtC,UAAY,gBAAgB,SAAU,WAAY,aACpD,OACA,QAAS,MACX,QAAS,gBAAgB,OAAO,QAAS,cAE3C,GAAI,SACJ,MAAI,SAAU,MACZ,SAAU,gBAAgB,OAAQ,SAAU,cAEzC,OACD,GAAG,OAAS,EACZ,IAAM,uDACC,GAAG,SACT,OACD,MAAM,OAAS,GAAK,MAAM,OAAS,EACnC,IAAM,oEACU,MAAM,SACrB,OACD,UAAU,OAAS,GAAK,UAAU,OAAS,EAC3C,IAAM,wEACc,UAAU,SAC9B,QAAU,MACP,OACD,OAAO,OAAS,GAAK,OAAO,OAAS,EACrC,IAAM,qEACc,OAAO,SAE7B,SAAW,MACR,OACD,QAAQ,OAAS,GAAK,QAAQ,OAAS,EACvC,IAAM,sEACc,QAAQ,SAG3B,UAAU,GAAI,MAAO,UAAW,QAAS,OAAQ,iBAGnD,GAAM,aAAc,GAAG,CAAC,eC5C/B,sBACI,EAAwB,MACxB,SACA,OAAuC,OACvC,iBACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAC7B,MAAQ,gBAAgB,MAAM,OAAQ,aACtC,UAAY,gBAAgB,SAAU,WAAY,aACpD,OACA,QAAS,MACX,QAAS,gBAAgB,OAAO,QAAS,cAE3C,GAAI,SACJ,MAAI,SAAU,MACZ,SAAU,gBAAgB,OAAQ,SAAU,cAEzC,OACD,GAAG,OAAS,EACZ,IAAM,uDACC,GAAG,SACT,OACD,MAAM,OAAS,GAAK,MAAM,OAAS,EACnC,IAAM,oEACU,MAAM,SACrB,OACD,UAAU,OAAS,GAAK,UAAU,OAAS,EAC3C,IAAM,wEACc,UAAU,SAC9B,QAAU,MACP,OACD,OAAO,OAAS,GAAK,OAAO,OAAS,EACrC,IAAM,qEACc,OAAO,SAE7B,SAAW,MACR,OACD,QAAQ,OAAS,GAAK,QAAQ,OAAS,EACvC,IAAM,sEACc,QAAQ,SAG3B,UAAU,GAAI,MAAO,UAAW,QAAS,OAAQ,iBAGnD,GAAM,aAAc,GAAG,CAAC,eC5C/B,sBACI,EAAwB,MACxB,SACA,OAAuC,OACvC,iBACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAC7B,MAAQ,gBAAgB,MAAM,OAAQ,aACtC,UAAY,gBAAgB,SAAU,WAAY,aACpD,OACA,QAAS,MACX,QAAS,gBAAgB,OAAO,QAAS,cAE3C,GAAI,SACJ,MAAI,SAAU,MACZ,SAAU,gBAAgB,OAAQ,SAAU,cAEzC,OACD,GAAG,OAAS,EACZ,IAAM,uDACC,GAAG,SACT,OACD,MAAM,OAAS,GAAK,MAAM,OAAS,EACnC,IAAM,oEACU,MAAM,SACrB,OACD,UAAU,OAAS,GAAK,UAAU,OAAS,EAC3C,IAAM,wEACc,UAAU,SAC9B,QAAU,MACP,OACD,OAAO,OAAS,GAAK,OAAO,OAAS,EACrC,IAAM,qEACc,OAAO,SAE7B,SAAW,MACR,OACD,QAAQ,OAAS,GAAK,QAAQ,OAAS,EACvC,IAAM,sEACc,QAAQ,SAE3B,UAAU,GAAI,MAAO,UAAW,QAAS,OAAQ,iBAGnD,GAAM,aAAc,GAAG,CAAC,eCjC/B,mBACI,EAAiB,QAAuB,MAC1C,GAAM,IAAK,gBAAgB,EAAG,IAAK,YAC7B,SAAW,gBAAgB,QAAS,UAAW,YAEhD,OACD,GAAG,QAAU,QACb,IAAM,yDAC8B,GAAG,SACtC,OAAO,MAAQ,EAAG,IAAM,sCAAsC,SAC9D,OACD,SAAS,OAAS,GAAG,MAAQ,SAAS,OAAS,EAC/C,IAAM,gGACgC,GAAG,yBAClC,SAAS,UAEpB,GAAM,QAAyB,CAAC,EAAG,GAAI,QAAS,UAC1C,MAAuB,CAAC,MAE9B,MAAO,QAAO,UACV,SAAU,OAAgC,OAGzC,GAAM,UAAW,GAAG,CAAC,YCzB5B,sBACI,EAAsB,OACxB,GAAI,QAAQ,gBAAgB,EAAG,cAAe,KACxC,OAAS,OAAM,MAErB,GAAI,MAAM,KAAK,GAAK,CAAE,GAAI,IAAM,EAAI,GAAM,GACxC,KAAM,IAAI,OAAM,2CAA2C,WAG7D,GAAI,MAAM,OAAS,OAAM,KACvB,KAAM,IAAI,OAAM,+BAA+B,MAAM,uBACjD,OAAM,SAGZ,GAAI,MAAM,OAAS,OAAM,MACvB,GAAM,UAAW,OAAM,MAAM,QAC7B,KAAO,SAAS,OAAS,MAAM,QAC7B,SAAS,QAAQ,GAEnB,OAAQ,QAAQ,OAAO,UAGzB,GAAM,YAAa,OAAM,MACnB,KAAiB,MAAM,KAAK,OAClC,OAAS,GAAI,MAAM,OAAS,EAAG,GAAK,EAAG,IACrC,GAAI,WAAW,KAAO,MAAM,GAC1B,KAAK,GAAK,UACD,OAAM,MAAM,KAAO,EAC5B,KAAM,IAAI,OACN,mBAAmB,mCAAmC,WAK9D,GAFa,KAAK,IAAI,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,IAAI,OAAO,GAAK,GAAK,GAExD,SAAW,EAClB,MAAO,OAAM,QAIf,GAAM,QAAqB,CAAC,EAAG,QACzB,MAAmB,CAAC,MAC1B,MAAO,QAAO,UACV,KAAM,OAAgC,OAGrC,GAAM,aAAc,GAAG,CAAC,eClD/B,eAAiC,GAG/B,GAAM,QAAqB,CAAC,EAFjB,gBAAgB,EAAG,IAAK,SAGnC,MAAO,QAAO,UAAU,KAAM,QAEzB,GAAM,MAAO,GAAG,CAAC,QCHxB,sBACI,EAAiB,aAAsB,cACzC,GAAM,IAAK,gBAAgB,EAAG,IAAK,eAC9B,OACA,cAAgB,aACjB,IAAM,uBAAuB,oDACK,kBAEtC,GAAM,QAA4B,CAAC,EAAG,IAChC,MAA0B,CAAC,aAAc,cAE/C,MAAO,QAAO,UACV,YAAa,OAAgC,OAG5C,GAAM,aAAc,GAAG,CAAC,eCvB/B,mBAAmB,SACjB,MAAO,QAAO,QAAS,GAGlB,GAAM,UAAW,GAAG,CAAC,YCY5B,mBACI,QAAqC,MACvC,MAAO,QAAO,QAAS,MAGlB,GAAM,UAAW,GAAG,CAAC,YCD5B,mBACI,QAAqC,MACvC,MAAO,QAAO,QAAS,MAGlB,GAAM,UAAW,GAAG,CAAC,YC5B5B,mBACI,QAAqC,MACvC,MAAO,QAAO,QAAS,MAGlB,GAAM,UAAW,GAAG,CAAC,YC0B5B,iBACI,EAAiB,OACjB,QACA,KACA,WAA4B,OAC5B,UAAqC,CAAC,EAAG,GACzC,iBACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,UAC7B,QAAU,gBAAgB,OAAQ,SAAU,UAE9C,IAAM,GACN,aAAe,GAEf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAGtD,OACD,IAAI,OAAS,EACb,IAAM,uDAAuD,IAAI,SAChE,OACD,QAAQ,OAAS,EACjB,IAAM,wDACC,QAAQ,SACf,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,uEACiB,+BAA+B,SAG5D,GAAM,SAAU,aAAe,OAAS,IAAI,MAAM,GAAK,IAAI,MAAM,GAC5D,OACD,UAAY,QAAQ,MAAM,GAC1B,IAAM,oCAAoC,8CACZ,QAAQ,MAAM,OAC3C,OACS,+BAA+B,QAAS,WAClD,IAAM,uEACa,0BAA0B,cAEjD,GAAM,QAAuB,CAAC,EAAG,IAAK,OAAQ,SACxC,MACY,CAAC,QAAS,IAAA,KAAK,WAAY,UAAW,iBAGlD,IAAM,OAAO,UACH,OAAQ,OACR,OAEhB,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEtD,IAGF,GAAM,QAAS,GAAG,CAAC,UChE1B,iBACI,EAAiB,OAA6B,OAC9C,KACA,WAA0B,MAAO,SAAW,EAC5C,iBACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,UAC7B,QAAU,gBAAgB,OAAQ,SAAU,UAE9C,IAAM,GACN,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,MAGzC,OACD,IAAI,OAAS,EACb,IAAM,uDAAuD,IAAI,SAChE,OACD,QAAQ,OAAS,EACjB,IAAM,wDACC,QAAQ,SACf,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,uEACiB,+BAA+B,SAGvD,OACD,IAAI,MAAM,KAAO,QAAQ,MAAM,GAC/B,IAAM,oCAAoC,IAAI,MAAM,yCACtB,QAAQ,MAAM,OAC3C,OACS,+BAA+B,OAAQ,UACjD,IAAM,oEACY,wBAAwB,aACzC,OACD,aAAe,MACf,IAAM,sCACF,mDAER,GAAM,UAAW,QACb,QAAS,CAAC,EAAG,QAAQ,MAAM,GAAI,QAAQ,MAAM,GAAI,QAAQ,MAAM,KAC7D,QAAU,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,EAAG,IAAI,MAAM,GAAI,IAAI,MAAM,KAMjE,IAAM,OACP,QAAuB,SANM,CAAC,EAAG,QAMsB,KAHnC,OAFW,CAAC,EAAG,UAMP,iBAEjC,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,KAGxC,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAGtD,GAAM,QAAS,GAAG,CAAC,UChE1B,8BACI,OAAmE,GACnE,OAAkB,QAClB,KACA,WAA4B,OAC5B,iBACG,OACD,OAAO,SAAW,GAAG,KACrB,IAAM,sBACE,OAAO,2BAA2B,GAAG,oBAEjD,GAAI,UAAW,OACX,KAAO,GACP,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,KAAO,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,KAC1D,SAAW,CAAC,EAAG,OAAO,GAAI,OAAO,GAAI,OAAO,KAGzC,OACD,SAAS,SAAW,EACpB,IACI,qEACG,SAAS,WACf,OACD,KAAK,OAAS,EACd,IAAM,4DACM,KAAK,QAChB,OACD,OAAO,OAAS,EAChB,IAAM,gEACM,OAAO,QACvB,GAAM,SAAU,aAAe,OAAS,SAAS,GAAK,SAAS,GACzD,SAAW,aAAe,OAAS,KAAK,MAAM,GAAK,KAAK,MAAM,GAC/D,OACD,UAAY,OAAO,MAAM,GACzB,IAAM,4CAA4C,8CACd,OAAO,MAAM,OAChD,OACD,WAAa,OAAO,MAAM,GAC1B,IAAM,6CAA6C,gDACd,OAAO,MAAM,OAClD,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,+EACiB,+BAA+B,SAG5D,GAAM,QAAoC,CAAC,GAAI,KAAM,QAE/C,MACF,CAAC,QAAS,IAAA,KAAK,WAAY,gBAAiB,WAAY,UAGtD,IAAM,OAAO,UACH,oBAAqB,OACrB,OAEhB,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEtD,IAGF,GAAM,qBAAsB,GAAG,CAAC,uBC1EvC,0BACI,EAAiB,OACjB,YACA,QAAkC,KAClC,iBACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,mBAC7B,QAAU,gBAAgB,OAAQ,SAAU,mBAElD,MAAO,qBACH,YAAa,GAAI,QAAS,QAAS,KAAK,OAAQ,iBAG/C,GAAM,iBAAkB,GAAG,CAAC,mBCMnC,iBACI,EAAiB,OACjB,QAA0C,KAC1C,WAA8B,QAC9B,UAA6C,CAAC,EAAG,EAAG,IACtD,GAAM,IAAK,gBAAgB,EAAG,IAAK,UAC7B,QAAU,gBAAgB,OAAQ,SAAU,UAE9C,IAAM,GACN,aAAe,GAEf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAEnE,OACD,IAAI,OAAS,EACb,IAAM,uDAAuD,IAAI,SAChE,OACD,QAAQ,OAAS,EACjB,IAAM,wDACC,QAAQ,SACd,OACD,IAAI,MAAM,KAAO,QAAQ,MAAM,GAC/B,IAAM,oCAAoC,IAAI,MAAM,yCACtB,QAAQ,MAAM,OAC3C,OACD,+BAA+B,QAAS,WACxC,IAAM,uEACa,0BAA0B,cAC5C,OACD,aAAe,QACf,IAAM,sCACF,qDAER,GAAM,QAAuB,CAAC,EAAG,IAAK,OAAQ,SAExC,MAAqB,CAAC,QAAS,IAAA,KAAK,WAAY,WAGhD,IAAM,OAAO,UACH,OAAQ,OACR,OAEhB,MAAI,cACK,QACI,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAGhE,IAGF,GAAM,QAAS,GAAG,CAAC,UCrE1B,8BACI,OAGA,GAAO,OAAkB,QACzB,MACG,OACD,OAAO,SAAW,GAAG,KACrB,IAAM,sBACE,OAAO,2BAA2B,GAAG,oBAEjD,GAAI,UAAW,OACX,KAAO,GACP,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,KAAO,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,KACvE,SAAW,CAAC,EAAG,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,KAGzD,GAAM,SAAU,SAAS,GACnB,SAAW,KAAK,MAAM,GACvB,OACD,SAAS,SAAW,EACpB,IACI,qEACG,SAAS,WACf,OACD,KAAK,OAAS,EACd,IAAM,4DACM,KAAK,QAChB,OACD,OAAO,OAAS,EAChB,IAAM,gEACM,OAAO,QAClB,OACD,UAAY,OAAO,MAAM,GACzB,IAAM,4CAA4C,8CACd,OAAO,MAAM,OAChD,OACD,WAAa,OAAO,MAAM,GAC1B,IAAM,6CAA6C,gDACd,OAAO,MAAM,OAEtD,GAAM,QAAsC,CAAC,GAAI,KAAM,QAEjD,MAC2B,CAAC,IAAA,KAAK,QAAS,WAAY,UAGtD,IAAM,OAAO,UACH,sBAAuB,OACvB,OAEhB,MAAI,cACK,QACI,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAGhE,IAGF,GAAM,qBAAsB,GAAG,CAAC,uBChEvC,0BACI,EAAiB,OACjB,YAGA,QAA0C,MAC5C,GAAM,IAAK,gBAAgB,EAAG,IAAK,mBAC7B,QAAU,gBAAgB,OAAQ,SAAU,mBAElD,MAAO,qBAAoB,YAAa,GAAI,QAAS,QAAS,MAGzD,GAAM,iBAAkB,GAAG,CAAC,mBChBnC,cAAgC,GAG9B,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,QAInC,MAAO,QAAO,UAAU,IAAK,QAExB,GAAM,KAAM,GAAG,CAAC,OCPvB,eAAiC,GAE/B,GAAM,QAAqB,CAAC,EADjB,gBAAgB,EAAG,IAAK,SAGnC,MAAO,QAAO,UAAU,KAAM,QAEzB,GAAM,MAAO,GAAG,CAAC,QCMxB,iBACI,EAAsB,KAAO,EAAG,UAAY,GAAO,SAAU,IAG/D,GAAM,QAAuB,CAAC,EAFnB,gBAAgB,EAAG,IAAK,WAG7B,MAAqB,CAAC,KAAM,UAAW,QAAA,UAE7C,MAAO,QAAO,UACV,OAAQ,OAAgC,OAGvC,GAAM,QAAS,GAAG,CAAC,UCd1B,wBACI,EAAiB,QAAuB,KACxC,aAAe,IACjB,GAAM,IAAK,gBAAgB,EAAG,IAAK,iBAC7B,SAAW,gBAAgB,QAAS,UAAW,iBAEhD,OACD,GAAG,QAAU,QACb,IAAM,8DAC8B,GAAG,SACtC,OACD,GAAG,MAAQ,EACX,IAAM,sEACM,GAAG,SACd,OAAO,MAAQ,EAAG,IAAM,sCAAsC,SAC9D,OACD,SAAS,OAAS,GAAG,MAAQ,SAAS,OAAS,EAC/C,IACI,+FAC8B,GAAG,yBAC9B,SAAS,UAEpB,GAAM,QAA8B,CAAC,EAAG,GAAI,QAAS,UAC/C,MAA4B,CAAC,KAAM,cAEzC,MAAO,QAAO,UACV,cAAe,OACf,OAGC,GAAM,eAAgB,GAAG,CAAC,iBCZjC,uBACI,EAA0B,UAC1B,WAA4B,QAC9B,GAAM,IAAK,gBAAgB,EAAG,IAAK,gBAE7B,YAAe,aAAe,OAAU,GAAG,MAAM,GAAK,GAAG,MAAM,GAC/D,WAAc,aAAe,OAAU,GAAG,MAAM,GAAK,GAAG,MAAM,GAC9D,WAAc,aAAe,OAAU,GAAG,MAAM,GAAK,GAAG,MAAM,GAE/D,OACD,YAAc,WAAa,EAC3B,IAAM;MACN,mBAAmB;MACnB,GAAG,SAEF,OACD,WAAa,WAAa,EAC1B,IAAM;MACN,kBAAkB;UACd,GAAG,SAEN,OACA,WAAc,WAAY,YAAe,EAC1C,IAAM,8CACF,UAAY,oBACZ,gDAAgD,GAAG,SAE3D,GAAM,QAA6B,CAAC,EAAG,IACjC,MAA2B,CAAC,UAAW,YAE7C,MAAO,QAAO,UACV,aAAc,OACd,OAGC,GAAM,cAAe,GAAG,CAAC,gBC3BhC,0BACI,EAAiB,OACjB,QAAkC,KAClC,WAA4B,OAC5B,UAAqC,CAAC,EAAG,GACzC,iBACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,mBAC7B,QAAU,gBAAgB,OAAQ,SAAU,mBAE9C,IAAM,GACN,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAEtD,OACD,IAAI,OAAS,EACb,IAAM,gEACM,IAAI,SACf,OACD,QAAQ,OAAS,EACjB,IAAM,iEACC,QAAQ,SACd,OACD,IAAI,MAAM,KAAO,QAAQ,MAAM,GAC/B,IAAM,uDACE,IAAI,MAAM,qDACJ,QAAQ,MAAM,OAE5B,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,gFACiB,+BAA+B,SAG5D,GAAM,QAAsC,CAAC,EAAG,IAAK,OAAQ,SACvD,MACF,CAAC,QAAS,IAAA,KAAK,WAAY,UAAW,iBAGpC,IAAM,OAAO,UACH,sBAAuB,OACvB,OAEhB,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEtD,IAGF,GAAM,iBAAkB,GAAG,CAAC,mBC9EnC,eAAe,GAGb,GAAM,QAAqB,CAAC,EAFjB,gBAAgB,EAAG,IAAK,SAInC,MAAO,QAAO,UAAU,KAAM,QAGzB,GAAM,MAAO,GAAG,CAAC,QCMxB,qBACI,EAAiB,OACjB,QAAkC,KAClC,UAAqC,CAAC,EAAG,GACzC,WAAqB,QACvB,GAAM,IAAK,gBAAgB,EAAG,IAAK,cAC7B,QAAU,gBAAgB,OAAQ,SAAU,cAE7C,OACD,GAAG,OAAS,GAAK,GAAG,OAAS,EAC7B,IAAM,gEACC,GAAG,SACT,OACD,QAAQ,OAAS,EACjB,IAAM,4DACC,QAAQ,SACd,OACD,aAAe,OACf,IAAM,gFACuB,cAEjC,GAAI,KAAM,GACN,aAAe,GAEf,GAAG,OAAS,GACd,KAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,KACzD,aAAe,IAGjB,GAAM,QAA2B,CAAC,EAAG,IAAK,OAAQ,SAC5C,MAAyB,CAAC,QAAS,IAAA,KAAK,WAGxC,IAAM,OAAO,UACH,WAAY,OACZ,OAEhB,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAGtD,IAGF,GAAM,YAAa,GAAG,CAAC,cC9ExB,0BACF,QAAmB,UACrB,GAAM,QAAS,QAAQ,OACjB,KAAiB,GACvB,OAAS,GAAI,EAAG,EAAI,OAAQ,KAC1B,GAAM,KAAM,OAAS,EAAI,EACnB,EAAI,QAAQ,MAAQ,EAChB,AAAA,UAAS,SAAS,OAAS,EAAI,IAAM,GACvC,GAAK,IAAM,GACjB,KAAK,QAAQ,KAGjB,MAAO,MAOH,0BACF,QAAmB,UACrB,GAAM,QAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,SAAS,OAAQ,KACnC,GAAM,OAAQ,QAAQ,QAAQ,OAAS,EAAI,GACrC,QAAU,SAAS,OAAS,EAAI,EAChC,OAAS,SAAS,SACpB,AAAA,QAAS,MAAS,QAAU,GAAK,OAAS,IAC5C,OAAO,QAAQ,SAGnB,MAAO,QAGH,oCACF,OAAkB,QACpB,GAAM,QAAmB,GACnB,EAAI,KAAK,IAAI,OAAO,OAAQ,OAAO,QAEzC,OAAS,GAAI,EAAG,EAAI,EAAG,KACrB,GAAI,GAAI,OAAO,OAAO,OAAS,EAAI,GAC/B,GAAK,MACP,GAAI,GAEN,GAAI,GAAI,OAAO,OAAO,OAAS,EAAI,GAInC,GAHI,GAAK,MACP,GAAI,GAEF,IAAM,EACR,OAAO,QAAQ,WACN,IAAM,EACf,OAAO,QAAQ,WACN,IAAM,GACf,GAAM,QAAS,wDACR,cAAc,UACrB,KAAM,OAAM,YAEZ,QAAO,QAAQ,GAGnB,MAAO,QC3CT,gBACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,SAC7B,GAAK,gBAAgB,EAAG,IAAK,SACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAAsB,CAAC,EAAG,GAAI,EAAG,IAEvC,MAAO,QAAO,UAAU,MAAO,QAG1B,GAAM,OAAQ,GAAG,CAAC,SCHzB,gBACI,UAA8B,EAAiB,GACjD,GAAM,IAAK,gBAAgB,EAAG,IAAK,SAC7B,GAAK,gBAAgB,EAAG,IAAK,SAC7B,WAAa,gBAAgB,UAAW,YAAa,QAAS,QAI9D,eAAiB,2BAA2B,GAAG,MAAO,GAAG,OACzD,cAAgB,YAAY,GAAI,gBAChC,cAAgB,YAAY,GAAI,gBAClC,WAAW,OAAS,GAGtB,OACI,WAAW,MAAM,KAAO,GAAG,MAAM,GACjC,IAAM,kEAGR,WAAW,OAAS,GAEtB,kBACI,WAAW,MAAO,cAAc,MAAO,oBAG7C,GAAM,QAAuB,CAC3B,UAAW,WACX,EAAG,cACH,EAAG,eAEL,MAAO,QAAO,UAAU,OAAQ,QAG3B,GAAM,OAAQ,GAAG,CAAC,SC9CzB,oBAAsC,GAEpC,GAAM,QAA0B,CAAC,EADtB,gBAAgB,EAAG,IAAK,cAEnC,MAAO,QAAO,UAAU,UAAW,QAE9B,GAAM,WAAY,GAAG,CAAC,aCc7B,mBACI,EAAsB,GAExB,GAAI,IAAK,gBAAgB,EAAG,IAAK,OAC7B,GAAK,gBAAgB,EAAG,IAAK,OACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,GAAM,WAAY,IAAI,GAAI,IACpB,OAAQ,UAAU,WAClB,YAAc,MAAM,GAAI,QAC9B,MAAO,OAAM,YAAa,OAAO,WAG5B,GAAM,UAAW,GAAG,CAAC,YC5B5B,cAAc,GAAuB,IACnC,GAAM,KAAM,gBAAgB,GAAI,KAAM,OAChC,IAAM,gBAAgB,GAAI,KAAM,OAEjC,OACA,KAAI,OAAS,GAAK,IAAI,OAAS,IAAO,KAAI,OAAS,GAAK,IAAI,OAAS,GACtE,IAAM,+DACC,IAAI,YAAY,IAAI,SAE/B,GAAM,SAAW,IAAI,OAAS,EAAI,IAAI,KAAO,IAAI,MAAM,GACjD,QAAW,IAAI,OAAS,EAAI,IAAI,KAAO,IAAI,MAAM,GAOvD,GALK,OACD,UAAY,QACZ,IAAM,gEACC,eAAe,YAEtB,IAAI,OAAS,GAAK,IAAI,OAAS,GACjC,GAAM,MAAO,QAAQ,IAAK,CAAC,EAAG,KACxB,KAAO,QAAQ,IAAK,CAAC,GAAI,IACzB,KAAO,OAAO,KAAM,MAC1B,MAAO,SAAQ,KAAM,YACZ,IAAI,OAAS,GAAK,IAAI,OAAS,GACxC,GAAM,MAAO,QAAQ,IAAK,CAAC,EAAG,KACxB,KAAO,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,KAC7C,KAAO,OAAO,KAAM,MAC1B,MAAO,SAAQ,KAAM,CAAC,KAAK,eAClB,IAAI,OAAS,GAAK,IAAI,OAAS,GACxC,GAAM,MAAO,QAAQ,IAAK,CAAC,GAAI,IACzB,KAAO,OAAO,IAAK,MACzB,MAAO,SAAQ,KAAM,CAAC,KAAK,YAE3B,GAAM,MAAO,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,KAEnD,MADa,QAAO,IAAK,OAKtB,GAAM,KAAM,GAAG,CAAC,OC3CvB,cAAgC,GAG9B,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,QAInC,MAAO,QAAO,UAAU,IAAK,QAGxB,GAAM,KAAM,GAAG,CAAC,OCLvB,cAAgC,GAC9B,GAAI,IAAK,gBAAgB,EAAG,IAAK,OAC5B,OACD,GAAG,QAAU,SAAW,GAAG,QAAU,UACrC,IAAM,6CAEN,GAAG,QAAU,SACf,IAAK,KAAK,GAAI,YAGhB,GAAM,QAAoB,CAAC,EAAG,IAC9B,MAAO,QAAO,UAAU,IAAK,QAExB,GAAM,KAAM,GAAG,CAAC,OChBvB,cAAgC,GAG9B,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,QAGnC,MAAO,QAAO,UAAU,IAAK,QAExB,GAAM,KAAM,GAAG,CAAC,OCAvB,qBAAuC,EAAsB,KAAO,GAClE,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAAc,qBAE5C,OAAO,MAAQ,GAAG,KAAM,IAAM,sCAEnC,GAAM,QAA2B,CAAC,MAAO,IACnC,MAAyB,CAAC,IAAK,MAErC,MAAO,QAAO,UACV,WAAY,OAAgC,OAG3C,GAAM,YAAa,GAAG,CAAC,cCjB9B,gBAAkC,GAGhC,GAAM,QAAsB,CAAC,EAFlB,gBAAgB,EAAG,IAAK,UAGnC,MAAO,QAAO,UAAU,MAAO,QAE1B,GAAM,OAAQ,GAAG,CAAC,SCQzB,eAAiC,EAAiB,MAChD,GAAM,IAAK,gBAAgB,EAAG,IAAK,OAAQ,qBACtC,OACD,GAAG,OAAS,KAAK,OACjB,IAAM,qCAAqC,GAAG,kCACb,SAErC,GAAM,QAAqB,CAAC,EAAG,IACzB,MAAmB,CAAC,MAE1B,MAAO,QAAO,UACV,KAAM,OACN,OAGC,GAAM,MAAO,GAAG,CAAC,QC5BxB,cACI,QAAiB,WACjB,WAKA,MAAkB,WAChB,YAAc,MAChB,YAAa,SAEf,GAAM,MAAO,OAAO,CAAC,QAAS,YAAa,OACrC,EAAI,SAAW,WAAa,QAAU,WAC5C,OAAS,GAAI,EAAG,EAAI,EAAG,EAAE,EACvB,KAAK,IAAI,EAAG,EAAG,GAEjB,GAAM,KAAgB,QAAQ,KAAK,WAAY,CAAC,QAAS,aACzD,GAAI,YAAc,KAChB,MAAO,KAEP,GAAI,WAAW,SAAW,EACxB,MAAO,MAAK,WAAW,IAAK,GAAI,CAAC,WAAW,GAAI,EAAG,IAC9C,GAAI,WAAW,SAAW,EAE/B,MAAO,MACI,WAAW,WAAW,IAAK,GAAI,GAC/B,CAAC,WAAW,GAAI,WAAW,GAAI,EAAG,IACxC,GAAI,WAAW,SAAW,EAE/B,MAAO,MAAK,WAAW,WAAW,WAAW,IAAK,GAAI,GAAI,GAAI,CACrD,WAAW,GAAI,WAAW,GAAI,WAAW,GAAI,EAAG,IAGzD,KAAM,IAAI,OACN,qEAE8B,WAAmB,YAKpD,GAAM,KAAM,GAAG,CAAC,OC5CvB,cACI,MAAoB,MAAsB,OAC5C,GAAM,OAAmB,CAAC,MAAO,MAAO,OAExC,MAAO,QAAO,UAAU,KAAM,GAAI,OCJpC,gBAAkC,GAGhC,GAAM,QAAsB,CAAC,EAFlB,gBAAgB,EAAG,IAAK,UAGnC,MAAO,QAAO,UAAU,MAAO,QAE1B,GAAM,OAAQ,GAAG,CAAC,SCUzB,iBACI,EAAiB,QAA4B,KAAO,EAAG,UAAY,GACrE,GAAM,IAAK,gBAAgB,EAAG,IAAK,UAC7B,SAAW,gBAAgB,QAAS,UAAW,SAAU,SAEzD,OAAyB,CAAC,EAAG,GAAI,QAAS,UAC1C,MAAuB,CAAC,KAAM,WAEpC,MAAO,QAAO,UACV,SAAU,OAAgC,OAGzC,GAAM,QAAS,GAAG,CAAC,UCvB1B,kBACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,WAC7B,GAAK,gBAAgB,EAAG,IAAK,WACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAAwB,CAAC,EAAG,GAAI,EAAG,IAEzC,MAAO,QAAO,UAAU,QAAS,QAG5B,GAAM,SAAU,GAAG,CAAC,WCb3B,uBACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,gBAC7B,GAAK,gBAAgB,EAAG,IAAK,gBACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAA6B,CAAC,EAAG,GAAI,EAAG,IAE9C,MAAO,QAAO,UAAU,aAAc,QAGjC,GAAM,cAAe,GAAG,CAAC,gBCjBhC,eAAiC,QAG/B,GAAM,QAAqB,CAAC,MAFb,gBAAgB,OAAO,QAAS,SAG/C,MAAO,QAAO,UAAU,KAAM,QAGzB,GAAM,MAAO,GAAG,CAAC,QCPxB,mBAAqC,GAGnC,GAAM,QAAyB,CAAC,EAFrB,gBAAgB,EAAG,IAAK,aAInC,MAAO,QAAO,UAAU,SAAU,QAE7B,GAAM,WAAW,GAAG,CAAC,YCP5B,gBAAkC,GAGhC,GAAM,QAAsB,CAAC,EAFlB,gBAAgB,EAAG,IAAK,UAInC,MAAO,QAAO,UAAU,MAAO,QAE1B,GAAM,OAAQ,GAAG,CAAC,SCPzB,gBAAkC,GAEhC,GAAM,QAAsB,CAAC,EADlB,gBAAgB,EAAG,IAAK,UAGnC,MAAO,QAAO,UAAU,MAAO,QAE1B,GAAM,QAAQ,GAAG,CAAC,SCAzB,oBAAsC,EAAiB,MAAQ,IAG7D,GAAM,QAA0B,CAAC,EAFtB,gBAAgB,EAAG,IAAK,cAG7B,MAAwB,CAAC,OAE/B,MAAO,QAAO,UACV,UAAW,OAAgC,OAG1C,GAAM,WAAY,GAAG,CAAC,aCb7B,eACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,QAC7B,GAAK,gBAAgB,EAAG,IAAK,QACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAAqB,CAAC,EAAG,GAAI,EAAG,IAEtC,MAAO,QAAO,UAAU,KAAM,QAGzB,GAAM,MAAO,GAAG,CAAC,QCZxB,oBACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,aAC7B,GAAK,gBAAgB,EAAG,IAAK,aACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAA0B,CAAC,EAAG,GAAI,EAAG,IAE3C,MAAO,QAAO,UAAU,UAAW,QAG9B,GAAM,WAAY,GAAG,CAAC,aCrBvB,kBAAmB,MAAe,KAAc,KACpD,GAAI,KAAO,EACT,KAAM,IAAI,OAAM,4CAGlB,GAAM,OAAuB,CAAC,MAAO,KAAM,KAC3C,MAAO,QAAO,UAAU,SAAU,GAAI,OCIxC,qCACI,EAAiB,YAAc,EAAG,KAAO,EAAG,MAAQ,EAAG,KAAO,IAChE,GAAM,IAAK,gBAAgB,EAAG,IAAK,8BAC9B,OACD,GAAG,OAAS,GAAK,GAAG,OAAS,EAC7B,IAAM;sBACU,GAAG,SAClB,OACI,MAAM,aACX,IAAM,2FAC6B,gBAEvC,GAAI,KAAM,GACN,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAG3D,GAAM,QAAoB,CAAC,EAAG,KAExB,MAAkB,CAAC,YAAa,KAAM,MAAO,MAG7C,IAAM,OAAO,UACH,IAAK,OACL,OAEhB,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEpD,IAIJ,GAAM,4BAA6B,GAAG,CAAC,8BCzC9C,cAAgC,GAG9B,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,QAGnC,MAAO,QAAO,UAAU,IAAK,QAExB,GAAM,MAAM,GAAG,CAAC,OCLvB,gBAAkC,GAGhC,GAAM,QAAsB,CAAC,EAFlB,gBAAgB,EAAG,IAAK,UAGnC,MAAO,QAAO,UAAU,MAAO,QAE1B,GAAM,OAAQ,GAAG,CAAC,SCazB,cAAc,GAEZ,MAAK,QACI,WAAW,GAAI,IAAM,8CACvB,CAAC,EAAsB,MAE5B,GAAM,IAAK,gBAAgB,EAAG,IAAK,UAAW,qBACxC,IACD,IAAM,KAAQ,gBAAgB,GAAI,KAAM,WAAa,KAC1D,MAAO,QAAO,KAAK,KACjB,GAAM,CAAC,MAAO,MAAA,QAAS,OAAO,UAAU,IAAM,EAAE,IAAK,CAAC,IAAK,KAC3D,MAAI,MAAO,MACJ,kBACD,MAAM,MAAO,IAAI,MACjB,kFAGN,WAAW,QACJ,OAAM,MAkCnB,eAAe,GAEb,MAAK,QACI,WAAW,GAAI,IAAM,+CACvB,CAAC,KAAgC,MACjC,OACD,MAAM,QAAQ,MACd,IAAM,oFAGV,GAAM,OACF,qBAAqB,KAAM,OAAQ,WAAY,qBAC7C,IACD,IAAM,KAAQ,gBAAgB,GAAI,KAAM,YAAc,KAC3D,MAAO,QAAO,KAAK,KACjB,GAAM,CAAC,MAAO,MAAA,QAAS,OAAO,UAAU,IAAM,EAAE,GAAG,OAAQ,MAAO,KAClE,MAAI,MAAO,MACJ,kBACD,MAAM,MAAO,IAAI,MACjB,iGAGN,WAAW,QACJ,UA8Bb,sBAA0D,GAKxD,MAAK,QACI,WAAW,GAChB,IAAM,sDACH,CAAC,EAAM,MACP,OACD,YAAa,QACb,IAAM,uDACL,OACD,IAAM,MAAQ,aAAc,QAC5B,IAAM,4DACV,GAAM,CAAC,MAAA,OAAO,OAAS,OAAO,UAAU,IAAM,EAAE,GAAI,CAAC,GAAI,IACzD,MAAA,YAAW,QACJ,CAAC,KAAM,OAAM,GAAS,QAmCjC,uBAAyC,GAKvC,MAAK,QACI,WAAW,GAChB,IAAM,uDACH,CAAC,KAAgB,MACjB,OACD,MAAM,QAAQ,OAAS,KAAK,MAAM,KAAO,cAAe,SACxD,IAAM,sEAEL,OACD,IAAM,MAAQ,aAAc,QAC5B,IAAM,gEACV,GAAM,KAAM,OAAO,UAAU,IAAM,EAAE,GAAG,MAAO,KAAM,IACrD,MAAI,KAAM,MACH,kBACD,IAAI,MAAM,MAAO,GAAG,MACpB,yGAGN,WAAW,IAAI,OACR,KAkCX,uBAAuB,EAAiB,SAEjC,OACI,WAAW,GAChB,IAAM,uDACL,OACD,SAAW,MACP,MAAM,QAAQ,UAAY,QAAQ,MAAM,GAAK,YAAa,WAC9D,IACI,iFAGR,GAAM,kBAAmB,SAAW,KACpC,GAAI,CAAC,kBAEH,QAAU,GACV,OAAW,WAAW,QAAO,oBAC3B,QAAQ,KAAK,OAAO,oBAAoB,UAI5C,GAAM,uBACF,iBAAmB,QAAQ,OAAO,WAAY,CAAC,UAAS,WAAa,KAGnE,iBAAmB,QAAQ,OACjC,QAAU,QAAQ,OAAO,WAAY,UAAS,WACzC,OACD,QAAQ,OAAS,EACjB,IAAM,gGAC+B,4CAGzC,GAAM,kBAAmB,GACnB,CAAC,MAAO,MAAA,QAAS,OAAO,UAAU,EAAG,QAAS,KAAM,kBAErD,OACD,OAAM,KAAK,GAAK,GAAK,MACrB,IAAM,gMAGL,OACD,MAAM,OAAS,EACf,IAAM,iFACiB,MAAM,eAEjC,GAAM,YAA6B,GACnC,MAAA,SAAQ,QAAQ,CAAC,EAAG,KACd,OAAM,IAAM,MACd,YAAW,EAAE,MAAQ,OAAM,MAG3B,uBAAyB,MAG3B,sBAAsB,QAAQ,GAAK,WAAW,EAAE,MAAQ,MAEnD,CAAC,MAAO,MAAO,YA2CxB,oBAAsC,GAEpC,MAAO,QAAO,WAAW,GAG3B,oBAAoB,QAElB,GADyB,OAAM,OAAO,GAAK,GAAK,MAAM,OAC/B,EACrB,KAAM,IAAI,OACN;sECvVR,cAAgC,GAG9B,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,QAGnC,MAAO,QAAO,UAAU,IAAK,QAExB,GAAM,KAAM,GAAG,CAAC,OCPvB,mBAAqC,GAGnC,GAAM,QAAyB,CAAC,EAFrB,gBAAgB,EAAG,IAAK,aAGnC,MAAO,QAAO,UAAU,SAAU,QAE7B,GAAM,UAAW,GAAG,CAAC,YCH5B,qBAAuC,GACrC,GAAM,IAAK,gBAAgB,EAAG,IAAK,cAkBnC,MAbiB,YAAY,IAUpB,EAAC,MANM,IAAI,SAAS,IAAI,MAMhB,SAJG,IACH,IAAI,GAAI,QAAQ,IAAI,SAMrB,IAEX,GAAM,YAAa,GAAG,CAAC,cCN9B,cACI,EAAsB,KAAwB,KAAM,SAAW,IAGjE,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,QAG7B,MAAkB,CAAC,iBAAkB,KAAM,UAEjD,MAAO,QAAO,UACV,IAAK,OAAgC,OAGpC,GAAM,KAAM,GAAG,CAAC,OClBvB,cAAgC,EAAsB,GACpD,GAAI,IAAK,gBAAgB,EAAG,IAAK,OAC7B,GAAK,gBAAgB,EAAG,IAAK,OACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,GAAM,QAAoB,CAAC,EAAG,GAAI,EAAG,IAErC,MAAO,QAAO,UAAU,IAAK,QAGxB,GAAM,KAAM,GAAG,CAAC,OCFvB,cACI,EAAsB,KAAwB,KAAM,SAAW,IACjE,GAAI,IAAK,gBAAgB,EAAG,IAAK,OAC7B,GAAG,QAAU,QACf,IAAK,KAAK,GAAI,UAGhB,GAAM,QAAoB,CAAC,EAAG,IACxB,MAAkB,CAAC,KAAM,UAE/B,MAAO,QAAO,UACV,IAAK,OAAgC,OAGpC,GAAM,MAAM,GAAG,CAAC,OCjBvB,qBAAuC,OAAsB,KAAO,IAClE,GAAM,SAAU,gBAAgB,OAAQ,SAAU,cAKlD,GAHI,OAAS,IACX,MAAO,QAAQ,KAAO,GAEpB,OAAS,QAAQ,KAAO,EAC1B,KAAM,OACF,gFACmB,QAAQ,qBAAqB,QAgCtD,MAjBiB,YAAW,CAAC,QAAgB,QAC3C,GAAM,UAAW,GACX,KAAO,IAAI,QAAQ,KAAM,IACzB,QAAU,IAAI,QAAQ,MACtB,MACF,IAAI,KAAK,QAAS,WAAY,KAAI,KAAI,IAAI,SAAU,KAAM,YAC9D,MAAA,MAAK,CAAC,QAQC,CAAC,MAAO,SANE,CAAC,GAAY,SAC5B,GAAM,CAAC,QAAS,MACV,UAAW,GACX,SAAU,IAAI,QACpB,MAAO,KAAI,GAAI,IAAI,KAAI,GAAI,KAAM,WAAW,eAKhC,SAUX,GAAM,YAAa,GAAG,CAAC,cClFxB,8BAA+B,KAAgB,MACnD,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,EACjC,GAAI,KAAK,KAAK,OAAS,EAAI,KAAO,KAAO,EAAI,EAC3C,MAAO,GAGX,MAAO,GAGH,0BACF,UAAqB,UAAqB,MAC5C,GAAM,MAAO,UAAU,OAAS,UAAU,OACpC,IAAM,GACR,OAAS,EACT,UAAY,EACd,OAAS,KAAM,EAAG,IAAM,KAAM,MAC1B,KAAK,QAAQ,OAAS,GACxB,IAAI,KAAK,UAAU,WAEnB,IAAI,KAAK,UAAU,cAGvB,MAAO,KAGH,mCACF,OAAkB,MACpB,GAAM,UAAW,GACX,KAAO,OAAO,OACpB,OAAS,KAAM,EAAG,IAAM,KAAM,MACxB,KAAK,QAAQ,OAAS,IACxB,SAAS,KAAK,OAAO,MAGzB,GAAM,aAAc,KAAK,IAAI,KAAO,OAAO,MAC3C,MAAO,CAAC,SAAU,aAGd,8BACF,MAAiB,MACnB,GAAM,gBAAiB,KAAK,IAAI,GAAK,GACrC,MAAO,kBAAiB,MAAO,eAAgB,MAG3C,oCACF,IAAa,KAAgB,MAC1B,OACD,qBAAqB,KAAM,MAC3B,IAAM,GAAG,uDACO,iBAAiB,eAQjC,4BAA6B,KAAgB,MAEjD,GAAI,qBAAqB,KAAM,MAC7B,MAAO,MAET,GAAM,QAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,KAAM,EAAE,EACtB,KAAK,QAAQ,KAAO,IACtB,OAAO,KAAK,GAGhB,MAAA,MAAK,QAAQ,MAAQ,OAAO,KAAK,OAC1B,OAIH,gCAAiC,MACrC,MAAO,MAAK,IAAI,CAAC,KAAM,IAAM,CAAC,EAAG,OAC5B,KAAK,CAAC,EAAG,IAAM,EAAE,GAAK,EAAE,IACxB,IAAI,GAAK,EAAE,IAGZ,0BAA2B,QAAiB,MAChD,GAAM,KAAgB,GACtB,OAAS,GAAI,KAAO,QAAS,EAAI,KAAM,EAAE,EACvC,IAAI,KAAK,GAEX,MAAO,KC9CT,oBACI,EAAsB,KAAwB,KAAM,SAAW,IACjE,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAE7B,KAAO,eAAe,KAAM,GAAG,OAC/B,KAAO,IAAI,GAAI,KAAM,IACrB,EAAI,IAAI,GAAI,MACZ,EAAI,IAAI,GACR,EAAI,KAAI,EAAG,MACX,EAAI,KAAI,GACR,IAAM,KAAI,QAAQ,KAAM,EAAE,OAAQ,GAExC,GAAI,UACF,GAAM,UAAW,qBAAqB,IAAI,MAAO,MACjD,MAAO,SAAQ,IAAK,UAEtB,MAAO,KAGF,GAAM,WAAY,GAAG,CAAC,aCvC7B,qBACI,EAAsB,GACxB,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAAc,QAC3C,GAAK,gBAAgB,EAAG,IAAK,aAAc,QACjD,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAA2B,CAAC,EAAG,GAAI,EAAG,IAE5C,MAAO,QAAO,UAAU,WAAY,QAG/B,GAAM,YAAa,GAAG,CAAC,cCd9B,qBAAuC,GAErC,GAAM,QAA2B,CAAC,EADvB,gBAAgB,EAAG,IAAK,aAAc,SAEjD,MAAO,QAAO,UAAU,WAAY,QAG/B,GAAM,YAAa,GAAG,CAAC,cCJ9B,oBACI,EAAsB,GACxB,GAAM,IAAK,gBAAgB,EAAG,IAAK,YAAa,QAC1C,GAAK,gBAAgB,EAAG,IAAK,YAAa,QAChD,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAA0B,CAAC,EAAG,GAAI,EAAG,IAC3C,MAAO,QAAO,UAAU,UAAW,QAE9B,GAAM,WAAY,GAAG,CAAC,aCP7B,qBACI,EAAsB,GACxB,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAAc,QAC3C,GAAK,gBAAgB,EAAG,IAAK,aAAc,QACjD,MAAA,4BAA2B,GAAG,MAAO,GAAG,OAGjC,WAAW,UAAU,EAAG,GAAI,WAAW,WAAW,EAAG,KAGvD,GAAM,YAAa,GAAG,CAAC,cCG9B,kBACI,EAAiB,WACjB,QAAkC,KAClC,iBACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,WAC7B,UAAY,EAEd,IAAM,GACN,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAGtD,OACD,IAAI,OAAS,EACb,IAAM,uDAAuD,IAAI,SAChE,OACS,+BAA+B,QAAS,WAClD,IAAM,wEACa,0BAA0B,cAC7C,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,wEACiB,+BAA+B,SAG5D,GAAM,QAAwB,CAAC,EAAG,KAE5B,MAAsB,CAAC,WAAY,QAAS,IAAA,KAAK,iBAGjD,IAAM,OAAO,UACH,QAAS,OACT,OAEhB,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEtD,IAGF,GAAM,SAAU,GAAG,CAAC,WCxB3B,oBACI,EAAiB,WAA8C,CAAC,EAAG,EAAG,GACtE,QAA0C,KAC1C,gBACA,WAA8B,QAC9B,WACE,WAAa,KACf,UAAY,CAAC,EAAG,EAAG,GAEnB,gBACI,+DAIN,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAE/B,IAAM,GACN,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAGnE,OACD,IAAI,OAAS,EACb,IAAM,qDAAqD,IAAI,SAC9D,OACD,aAAe,QACf,IAAM,gFACuB,cAC5B,OACS,+BAA+B,QAAS,WAClD,IAAM,0EACa,0BAA0B,cAC7C,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,0EACiB,+BAA+B,SAG5D,GAAM,QAA0B,CAAC,EAAG,KAE9B,MACF,CAAC,WAAY,QAAS,IAAA,KAAK,gBAAiB,WAAY,WAGtD,IAAM,OAAO,UACH,UAAW,OACX,OAEhB,MAAI,cACK,QACI,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAIhE,IAGF,GAAM,WAAY,GAAG,CAAC,aC1E7B,4BACI,EAAiB,WACjB,QAAkC,KAClC,oBAAsB,IAGxB,GAAM,QAAkC,CAAC,EAF9B,gBAAgB,EAAG,IAAK,sBAG7B,MACuB,CAAC,WAAY,QAAS,IAAA,KAAK,qBAGlD,OAAS,OAAO,UACH,kBAAmB,OACnB,OAEnB,MAAO,CAAC,OAAQ,OAAO,GAAI,QAAS,OAAO,IAGtC,GAAM,mBAAoB,GAAG,CAAC,qBCtBrC,kBACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,WAC7B,GAAK,gBAAgB,EAAG,IAAK,WACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE1B,GAAG,QAAU,QACf,IAAK,KAAK,GAAI,SACd,GAAK,KAAK,GAAI,UAEhB,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAAwB,CAAC,EAAG,GAAI,EAAG,IAEzC,MAAO,QAAO,UAAU,QAAS,QAG5B,GAAM,SAAU,GAAG,CAAC,WCjB3B,eACI,EAAsB,KAAwB,KAAM,SAAW,IAGjE,GAAM,QAAqB,CAAC,EAFjB,gBAAgB,EAAG,IAAK,SAG7B,MAAmB,CAAC,KAAM,UAEhC,MAAO,QAAO,UACV,KAAM,OAAgC,OAGrC,GAAM,MAAO,GAAG,CAAC,QCZxB,cACI,EAAsB,KAAwB,KAAM,SAAW,IAGjE,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,QAG7B,MAAkB,CAAC,KAAM,UAG/B,MAAO,QAAO,UACH,IAAK,OACL,OAGN,GAAM,KAAM,GAAG,CAAC,OCZvB,kBACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,WAC7B,GAAK,gBAAgB,EAAG,IAAK,WACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE1B,GAAG,QAAU,QACf,IAAK,KAAK,GAAI,SACd,GAAK,KAAK,GAAI,UAGhB,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAAwB,CAAC,EAAG,GAAI,EAAG,IAEzC,MAAO,QAAO,UAAU,QAAS,QAG5B,GAAM,SAAU,GAAG,CAAC,WCrB3B,oBACI,EAAiB,SACjB,MACG,OACD,OAAS,WAAa,OAAS,YAC/B,IAAM,+DACK,SAEf,GAAM,IAAK,gBAAgB,EAAG,IAAK,aACnC,GAAI,GAAG,OAAS,EACd,KAAM,IAAI,OACN,kEAGD,OACD,SAAS,SAAW,GAAG,KACvB,IAAM,wCAAwC,GAAG,aACtC,SAAS,WACxB,GAAM,aAAc,OAAS,UAAY,EAAI,EAC7C,OAAS,GAAI,EAAG,EAAI,GAAG,KAAM,IACtB,OACD,SAAS,GAAG,SAAW,EACvB,IAAM,yDACL,OACD,SAAS,GAAG,IAAM,GAAK,SAAS,GAAG,IAAM,GAAG,MAAM,GAAK,aACnD,SAAS,GAAG,IAAM,GAAK,SAAS,GAAG,IAAM,GAAG,MAAM,GAAK,YAC3D,IAAM,wBAAwB,wCACpB,GAAG,MAAM,GAAK,iDACX,GAAG,SAGtB,GAAM,OAAwB,CAAC,SAAU,MACnC,OAA0B,CAAC,EAAG,IACpC,MAAO,QAAO,UACV,UAAW,OAAgC,OAG1C,GAAM,WAAY,GAAG,CAAC,aCnC7B,cAAgC,EAAsB,GACpD,GAAI,IAAK,gBAAgB,EAAG,IAAK,OAC7B,GAAK,gBAAgB,EAAG,IAAK,OACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,GAAM,QAAoB,CAAC,EAAG,GAAI,EAAG,IAErC,MAAO,QAAO,UAAU,IAAK,QAGxB,GAAM,KAAM,GAAG,CAAC,OC9BvB,iBAAmC,GACjC,GAAM,IAAK,gBAAgB,EAAG,IAAK,UAC7B,MAAQ,GACd,MAAO,QAAO,UAAU,SAAU,CAAC,EAAG,IAAK,OAGtC,GAAM,QAAS,GAAG,CAAC,UCG1B,kBACI,EAAsB,KAAwB,KAC9C,SAAW,IACb,EAAI,gBAAgB,EAAG,IAAK,WAC5B,GAAM,MAAO,eAAe,KAAM,EAAE,OAC9B,MAAQ,KAAK,EAAG,KAAM,UACxB,cAAgB,MAAM,MACrB,UACH,eAAgB,qBAAqB,MAAM,MAAO,OAEpD,GAAM,YACF,OAAO,IAAI,KAAK,EAAG,WAAY,QAAQ,MAAO,iBAC5C,SAAW,KAAK,WAAY,KAAM,UACxC,MAAO,CAAC,KAAM,MAAO,UAGhB,GAAM,SAAU,GAAG,CAAC,WChB3B,uBACI,UAA2B,MAC3B,EACA,GACF,GAAM,OAAQ,gBAAgB,MAAM,OAAQ,gBACtC,GAAK,qBAAqB,EAAG,IAAK,gBAClC,GAAK,qBAAqB,EAAG,IAAK,gBAEpC,OAAQ,MACN,UAAY,GAClB,OAAS,GAAI,EAAG,EAAI,UAAU,OAAQ,KACpC,GAAM,QAAS,UAAU,GAAG,OAAO,GAAG,GAAI,GAAG,IAC7C,UAAU,KAAK,OAAO,IACtB,UAAU,KAAK,OAAO,IACtB,OAAQ,OAAO,GAEjB,GAAM,MAAmB,GACnB,KAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,UAAU,OAAQ,GAAK,EACzC,KAAK,KAAK,UAAU,IACpB,KAAK,KAAK,UAAU,EAAI,IAE1B,MAAO,CAAC,KAAM,MAET,GAAM,cAAe,GAAG,CAAC,gBCpBhC,sBACI,OAAsC,WAAoB,KAC1D,WAAa,IACf,GAAM,SAAU,gBAAgB,OAAQ,SAAU,eAC5C,YAAc,QAAQ,KACtB,SAAW,QAAQ,KACzB,GAAI,YAAc,EAChB,KAAM,IAAI,OACN,+DACG,gBAET,GAAI,SAAW,EACb,KAAM,IAAI,OAAM,gDAAgD,YAIlE,KAAO,MAAQ,KAAK,SAMpB,GAAM,QAA4B,CAAC,OAF/B,WAAa,EAAI,QAAQ,QAAS,CAAC,EAAG,KAAO,SAG3C,MAA0B,CAAC,WAAY,KAAM,YAG7C,IAAM,OAAO,UACH,YAAa,OACb,OAGhB,MAAO,YAAa,EAAI,QAAQ,IAAK,CAAC,IAAI,OAAqB,IAG1D,GAAM,aAAc,GAAG,CAAC,eCzC/B,mBACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,YAC7B,GAAK,gBAAgB,EAAG,IAAK,YACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAAyB,CAAC,EAAG,GAAI,EAAG,IAE1C,MAAO,QAAO,UAAU,SAAU,QAG7B,GAAM,UAAW,GAAG,CAAC,YCjBtB,eACF,MAAoB,MAAkB,WACxC,GAAI,QAAU,aACZ,GAAM,OAAO,MAAM,MAAO,WACpB,MAAO,MAAM,MAAO,WAC1B,MAAO,SAAQ,MAAM,OAEvB,GAAM,QAAS,oBAAoB,cAAc,OAAQ,OACzD,MAAO,QAAO,WAAW,OAAQ,MAAO,OCPpC,eACF,MAAoB,MAAkB,WACxC,GAAI,QAAU,aACZ,GAAM,OAAO,MAAK,MAAO,WACnB,MAAO,MAAM,MAAO,WAC1B,MAAO,SAAQ,MAAM,OAEvB,GAAM,QAAS,mBAAmB,cAAc,OAAQ,OACxD,MAAO,QAAO,WAAW,OAAQ,MAAO,OCR1C,mBAAqC,GAGnC,GAAM,QAAyB,CAAC,EAFrB,gBAAgB,EAAG,IAAK,aAGnC,MAAO,QAAO,UAAU,SAAU,QAG7B,GAAM,UAAW,GAAG,CAAC,YCN5B,uBACI,GAAyB,IAC3B,GAAM,KAAM,gBAAgB,GAAI,KAAM,gBAChC,IAAM,gBAAgB,GAAI,KAAM,gBAEjC,OACD,IAAI,OAAS,GAAK,IAAI,OAAS,EAC/B,IAAM,+DACC,IAAI,YAAY,IAAI,SAE/B,GAAM,MAAO,QAAQ,IAAK,CAAC,GAAI,IACzB,KAAO,QAAQ,IAAK,CAAC,EAAG,KAC9B,MAAO,QAAO,KAAM,MAGf,GAAM,cAAe,GAAG,CAAC,gBCFhC,cACI,EAAiB,SAAmC,cAAgB,GACtE,GAAM,IAAK,gBAAgB,EAAG,IAAK,OACnC,GAAI,GAAG,OAAS,EACd,KAAM,IAAI,OAAM,sDAGlB,GAAM,OAAoB,CAAC,SAAU,eAC/B,OAAsB,CAAC,EAAG,IAChC,MAAO,QAAO,UACV,MAAO,OACP,OAGC,GAAM,KAAM,GAAG,CAAC,OCzCvB,gBACI,EAAwB,SACxB,cAAgB,GAClB,MAAA,QACI,SAAS,SAAW,EACpB,IAAM,oDACH,IAAI,EAAG,CAAC,UAAW,eAGrB,GAAM,OAAQ,GAAG,CAAC,SCTzB,gBACI,EAAwB,SACxB,cAAgB,GAClB,MAAA,QACI,SAAS,SAAW,GAAK,SAAS,GAAG,SAAW,GAC5C,SAAS,GAAG,SAAW,EAC3B,IAAM,yDACH,IAAI,EAAG,SAAU,eAGnB,GAAM,OAAQ,GAAG,CAAC,SCVzB,gBACI,EACA,SACA,cAAgB,GAClB,MAAA,QACI,SAAS,SAAW,GAAK,SAAS,GAAG,SAAW,GAC5C,SAAS,GAAG,SAAW,GAAK,SAAS,GAAG,SAAW,EACvD,IAAM,yDACH,IAAI,EAAG,SAAU,eAGnB,GAAM,OAAQ,GAAG,CAAC,SCXzB,gBACI,EACA,SAIA,cAAgB,GAClB,MAAA,QACI,SAAS,SAAW,GAAK,SAAS,GAAG,SAAW,GAC5C,SAAS,GAAG,SAAW,GAAK,SAAS,GAAG,SAAW,GACnD,SAAS,GAAG,SAAW,EAC3B,IAAM,yDACH,IAAI,EAAG,SAAU,eAGnB,GAAM,OAAQ,GAAG,CAAC,SCoCzB,yBACI,EAAiB,WAAsB,UACzC,GAAM,IAAK,gBAAgB,EAAG,IAAK,kBAE9B,OACD,GAAG,MAAQ,EAAI,WAAW,OAC1B,IAAM,cAAc,GAAG,sCACnB,WAAW,UAEd,OACD,SAAS,SAAW,WAAW,OAC/B,IAAM,qBACF,SAAS,wCAAwC,WAAW,UAE/D,OACD,GAAG,MAAM,OACL,CAAC,EAAG,EAAG,IACD,EAAI,GAAK,GAAK,WAAW,OACpB,GACD,GAAI,SAAS,EAAI,GAAG,GAAK,SAAS,EAAI,GAAG,IACtC,WAAW,EAAI,IACnB,EAEA,EAET,IACJ,IAAM,4BAA4B,GAAG,MAAM,MAAM,oBAC7C,SAAS,+CACT,WAAW,cAEnB,GAAM,QAA+B,CAAC,EAAG,IACnC,MAA6B,CAAC,WAAY,UAEhD,MAAO,QAAO,UACV,eAAgB,OAChB,OAGC,GAAM,gBAAiB,GAAG,CAAC,kBC1DlC,eACI,OAAqB,YACrB,YAA0B,KAC1B,UAAqC,SACnC,WAAa,MACf,WAAY,CAAC,EAAG,IAEd,SAAW,MACb,SAAU,GAER,OAAQ,GACV,MAAM,SAGR,GAAM,IAAK,gBAAgB,OAAO,IAAK,WACnC,IAAM,GACN,aAAe,GAEf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAGtD,OACS,+BAA+B,QAAS,WAClD,IAAM,qEACa,0BAA0B,cAEjD,GAAM,UAAqB,kBACvB,IAAI,MAAO,YAAa,QAAS,UAAW,MAC1C,SACF,CAAC,SAAS,eAAgB,SAAS,eAOnC,YACA,OAAQ,OACV,YAAc,6BACV,CAAC,SAAS,aAAc,SAAS,aAAc,UAEnD,YAAc,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,IAG7B,GAAM,eAAgB,SAAS,KAAO,GAAK,SAAS,KAAO,EACrD,CAAC,gBAAiB,eAAiB,6BACrC,CAAC,SAAS,SAAU,SAAS,SAAU,SAAU,aAC/C,aAAe,cAAgB,KAAM,QACrC,WACF,cAAgB,IAAM,eAAe,IAAK,SAAU,iBAKlD,EAHY,eAAgB,MAC9B,IAAM,QAAQ,WAAY,YAAa,QAAS,cAChD,IAAM,QAAQ,WAAY,YAAa,QAAS,iBAG9C,IAAM,cAAgB,EAAI,eAAe,EAAG,SAAU,eAE5D,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAGtD,IAMT,sCACI,WAA8B,WAC9B,aACF,GAAM,UAAW,YAAY,IAAI,GAAK,EAAE,IAClC,WAAa,YAAY,IAAI,GAAK,EAAE,IACpC,eAAiB,WAAW,OAAO,SAAU,YAC7C,YAAc,WAAW,IAAI,CAAC,EAAG,IAAO,GAAI,eAAe,GAAK,GAAK,GACrE,OAAS,WAAW,IAAI,CAAC,EAAG,IAAM,EAAI,YAAY,IAClD,SAAW,WAAW,IAAI,CAAC,EAAG,IAAM,CAAC,SAAS,GAAI,OAAO,KACzD,MAAQ,WAAW,IAAI,CAAC,EAAG,IAAM,CAAC,EAAG,YAAY,KACvD,MAAO,CAAC,SAAU,OAMpB,sCACI,YAA+B,UAMjC,GAAM,eAHqB,YAAY,IAAI,CAAC,EAAG,IACtC,EAAK,GAAI,GAAM,UAAS,GAAK,IAEG,IAAI,GAAK,EAAI,GAIhD,cAAgB,cAAc,IAAI,GAAK,KAAK,MAAM,EAAI,IACtD,YAAc,cAAc,IAAI,CAAC,EAAG,IAAM,EAAI,cAAc,IAClE,MAAO,eAAc,IAAI,CAAC,EAAG,IACpB,CAAC,cAAc,GAAI,YAAY,KAInC,GAAM,MAAO,GAAG,CAAC,QC1GxB,cACI,MAAyB,MAC3B,GAAI,OAAQ,gBAAgB,MAAM,OAAQ,OACtC,KAAO,gBAAgB,KAAK,MAAO,OACvC,CAAC,MAAO,MAAQ,eAAe,MAAO,MAEtC,GAAM,QAAoB,CAAC,EAAG,MAAO,EAAG,MAExC,MAAO,QAAO,UAAU,IAAK,QAGxB,GAAM,KAAM,GAAG,CAAC,OCvBvB,gBAAkC,EAAiB,OACjD,GAAM,IAAK,gBAAgB,EAAG,IAAK,SAC7B,OAAS,gBAAgB,MAAO,QAAS,SAEzC,OAAsB,CAAC,EAAG,GAAI,MAAO,QAC3C,MAAO,QAAO,UAAU,MAAO,QAG1B,GAAM,OAAQ,GAAG,CAAC,SCQzB,eACI,EAAsB,KAAwB,KAAM,SAAW,IACjE,GAAI,IAAK,gBAAgB,EAAG,IAAK,QAE7B,GAAG,QAAU,QAEf,IAAK,KAAK,GAAI,UAGhB,GAAM,QAAqB,CAAC,EAAG,IACzB,MAAmB,CAAC,KAAM,UAEhC,MAAO,QAAO,UACV,KAAM,OAAgC,OAGrC,GAAM,MAAO,GAAG,CAAC,QCzCxB,eACI,MAAoB,aACpB,OACF,GAAM,MAAO,cAAc,OACvB,OAAS,KACb,GAAI,OAAS,MAAQ,QAAU,UAC7B,OAAS,GAAI,cAAa,cACjB,QAAU,QACnB,OAAS,GAAI,YAAW,cACf,QAAU,OACnB,OAAS,GAAI,YAAW,UAExB,MAAM,IAAI,OAAM,qBAAqB,SAEvC,OAAS,GAAI,EAAG,EAAI,KAAM,IACxB,OAAO,GAAK,eAEd,MAAO,QAAO,WAAW,OAAQ,MAAO,OAGnC,GAAM,MAAO,GAAG,CAAC,QCpCxB,WAA4B,YAAA,uBAjB5B,YAAA,MAmDE,YACI,MAAc,aAAsB,MACpC,UAAqB,MACvB,KAAK,KAAO,MACZ,KAAK,OAAS,aACd,KAAK,MAAQ,MACb,KAAK,QAAU,IACf,KAAK,UAAY,UACb,KAAK,WACP,MAAK,MAAQ,KAAK,KAAO,KAAK,OAAS,EACvC,KAAK,MAAQ,KAAK,KAAO,KAAK,OAAS,GAEzC,GAAM,WAAY,MAAc,KAAK,SACrC,KAAK,OAAoB,WAAA,KAAK,UAAU,YAInC,YACL,GAAI,CAAC,MAAM,KAAK,UACd,GAAM,OAAQ,KAAK,QACnB,MAAA,MAAK,QAAU,IACR,MAGT,GAAI,SAAiB,QACjB,QAAU,GACd,KAAO,CAAC,UACN,GAAI,IAAY,GAAY,EAC5B,EACE,IAAK,EAAI,KAAK,SAAW,EACzB,GAAK,EAAI,KAAK,SAAW,EACzB,EAAI,GAAK,GAAK,GAAK,SACZ,GAAK,GAAK,IAAM,GAEzB,GAAM,MAAM,KAAK,KAAK,GAAO,KAAK,IAAI,GAAK,GAC3C,QAAU,KAAK,KAAO,KAAK,OAAS,GAAK,KACzC,QAAU,KAAK,KAAO,KAAK,OAAS,GAAK,KAErC,EAAC,KAAK,WAAa,KAAK,iBAAiB,WAC3C,SAAU,IAId,MAAI,EAAC,KAAK,WAAa,KAAK,iBAAiB,WAC3C,MAAK,QAAU,KAAK,aAAa,UAE5B,KAAK,aAAa,SAInB,aAAa,OACnB,MAAI,MAAK,OAAS,MAAQ,KAAK,QAAU,UAChC,MAEF,KAAK,MAAM,OAIZ,iBAAiB,OACvB,MAAO,QAAS,KAAK,OAAS,OAAS,KAAK,QA9GhD,UAAA,MA6HE,YACI,MAAe,KAAc,MAC7B,MACF,KAAK,MAAQ,MACb,KAAK,KAAO,EAAI,KAChB,KAAK,MAAQ,MAEb,GAAM,WAAY,MAAc,KAAK,SACrC,KAAK,MAAmB,WAAA,KAAK,UAAU,YACvC,KAAK,MAAQ,GAAI,aAAY,EAAG,EAAG,MAAO,GAAO,KAAK,SAElD,MAAQ,EACV,KAAK,EAAI,MAAS,EAAI,EAEtB,KAAK,EAAI,MAAS,EAAI,EAExB,KAAK,EAAI,EAAI,KAAK,KAAK,EAAI,KAAK,GAI3B,YACL,GAAI,IAAY,GAAY,GAAY,EAAW,EAAW,EAC9D,QACE,EACE,GAAI,KAAK,MAAM,YACf,EAAI,EAAK,KAAK,EAAI,QACX,GAAK,GAMd,GALA,GAAK,EAAI,EACT,GAAK,EAAI,EACT,GAAK,EAAK,KAAQ,GAAK,GACvB,GAAM,GAAM,GAAO,KAAK,EAAK,GAAI,EAAI,KAAK,IAAI,IAC9C,EAAI,KAAK,QACL,EAAI,IAAM,KAAK,IAAI,GAAK,GAC1B,MAGJ,MAAA,GAAK,EAAI,KAAK,KAAQ,KAAK,EAAI,EAC3B,KAAK,MAAQ,GACf,IAAK,KAAK,IAAI,KAAK,QAAS,EAAI,KAAK,QAEhC,KAAK,aAAa,GAGnB,aAAa,OACnB,MAAI,MAAK,QAAU,UACV,MAEF,KAAK,MAAM,SA5KtB,cAAA,MAsLE,YACI,KAAM,EAAG,KAAM,EAAG,MAClB,MAWF,GAQM,KAAA,eAAiB,IACpB,KAAK,OAAS,MAAQ,KAAK,QAAU,UAnBxC,KAAK,IAAM,KACX,KAAK,MAAQ,KAAM,KACnB,KAAK,MAAQ,MACT,MAAQ,MACV,MAAO,KAAK,UAEV,MAAO,OAAS,UAClB,MAAO,KAAK,YAGV,CAAC,KAAK,kBAAoB,KAAK,OAAS,EAC1C,KAAM,IAAI,OACN,0BAA0B,UAAS,oCAEzC,KAAK,OAAoB,WAAA,KAAK,MAOxB,aAAa,OACnB,MAAI,MAAK,iBACA,MAEF,KAAK,MAAM,OAGpB,YACE,MAAO,MAAK,aAAa,KAAK,IAAM,KAAK,MAAQ,KAAK,YC9K1D,sBACI,MAAoB,MAAe,KAAO,EAC1C,MAA2B,UAAW,MAOxC,GANI,MAAQ,MACV,MAAO,GAEL,OAAS,MACX,OAAQ,WAEN,QAAU,WAAa,QAAU,QACnC,KAAM,IAAI,OAAM,yBAAyB,SAE3C,GAAM,QAAS,GAAI,WAAU,MAAO,KAAM,MAAO,MAC3C,IAAM,OAAO,MAAO,OAC1B,OAAS,GAAI,EAAG,EAAI,IAAI,OAAO,OAAQ,IACrC,IAAI,OAAO,GAAK,OAAO,YAEzB,MAAO,KAAI,WAGN,GAAM,aAAc,GAAG,CAAC,eCrB/B,uBACI,MAAoB,MAAO,EAAG,OAAS,EAAG,MAC1C,MACF,GAAI,OAAS,MAAS,QAAuB,OAC3C,KAAM,IAAI,OAAM,yBAAyB,SAE3C,GAAM,WACF,GAAI,aAAY,MAAM,OAAQ,MAAO,GAAuB,MAC1D,IAAM,OAAO,MAAO,OAC1B,OAAS,GAAI,EAAG,EAAI,IAAI,OAAO,OAAQ,IACrC,IAAI,OAAO,GAAK,UAAU,YAE5B,MAAO,KAAI,WAGN,GAAM,cAAe,GAAG,CAAC,gBCVhC,wBACI,MAAoB,OAAS,EAAG,OAAS,EAAG,MAAkB,UAC9D,MACF,GAAM,KAAM,OAAO,MAAO,OACpB,OAAS,GAAI,eAAc,OAAQ,OAAQ,KAAM,MACvD,OAAS,GAAI,EAAG,EAAI,IAAI,OAAO,OAAQ,IACrC,IAAI,OAAO,GAAK,OAAO,YAEzB,MAAO,KAAI,WAGN,GAAM,eAAgB,GAAG,CAAC,iBCd3B,eACF,MAAe,KAAc,MAAO,EACpC,MAA2B,WAC7B,GAAI,QAAS,EACX,KAAM,IAAI,OAAM,8BAGlB,GAAM,OAAoB,CAAC,MAAO,KAAM,KAAA,MAAM,OAE9C,MAAO,QAAO,UAAU,MAAO,GAAiB,OCVlD,eAAiC,QAG/B,GAAM,QAAqB,CAAC,MAFb,gBAAgB,OAAO,QAAS,SAG/C,MAAO,QAAO,UAAU,KAAM,QAGzB,GAAM,MAAO,GAAG,CAAC,QCTxB,qBAAuC,GAGrC,GAAM,QAA2B,CAAC,EAFvB,gBAAgB,EAAG,IAAK,eAGnC,MAAO,QAAO,UAAU,WAAY,QAE/B,GAAM,YAAa,GAAG,CAAC,cCL9B,eAAiC,GAG/B,GAAM,QAAqB,CAAC,EAFjB,gBAAgB,EAAG,IAAK,SAInC,MAAO,QAAO,UAAU,KAAM,QAGzB,GAAM,MAAO,GAAG,CAAC,QCRxB,gBAAkC,GAGhC,GAAM,QAAsB,CAAC,EAFlB,gBAAgB,EAAG,IAAK,UAInC,MAAO,QAAO,UAAU,MAAO,QAG1B,GAAM,OAAQ,GAAG,CAAC,SCWzB,kBACI,EAAiB,MAGnB,GAAM,QAAwB,CAAC,EAFpB,gBAAgB,EAAG,IAAK,YAG7B,MAAsB,CAAC,KAAM,MAEnC,MAAO,QAAO,UACV,QAAS,OAAgC,OAGxC,GAAM,SAAU,GAAG,CAAC,WCxC3B,oBAAoB,GAClB,GAAM,IAAK,gBAAgB,EAAG,IAAK,WACnC,MAAK,QACD,GAAG,OAAS,EACZ,IAAM,qDAAqD,GAAG,SAC3D,QAAQ,GAAI,GAGd,GAAM,WAAY,GAAG,CAAC,aCN7B,oBAAoB,EAAwB,MAC1C,GAAM,IAAK,gBAAgB,EAAG,IAAK,WACnC,MAAK,QACD,GAAG,OAAS,EACZ,IAAM,qDAAqD,GAAG,SAC3D,QAAQ,GAAI,MAGd,GAAM,WAAY,GAAG,CAAC,aCR7B,oBAAoB,EAAwB,MAC1C,GAAM,IAAK,gBAAgB,EAAG,IAAK,WACnC,MAAK,QACD,GAAG,OAAS,EACZ,IAAM,qDAAqD,GAAG,SAC3D,QAAQ,GAAI,MAGd,GAAM,WAAY,GAAG,CAAC,aCR7B,oBAAoB,EAAwB,MAC1C,GAAM,IAAK,gBAAgB,EAAG,IAAK,WACnC,MAAK,QACD,GAAG,OAAS,EACZ,IAAM,qDAAqD,GAAG,SAC3D,QAAQ,GAAI,MAGd,GAAM,WAAY,GAAG,CAAC,aCA7B,gBAAkC,GAEhC,GAAM,QAAsB,CAAC,EADlB,gBAAgB,EAAG,IAAK,UAGnC,MAAO,QAAO,UAAU,MAAO,QAG1B,GAAM,QAAQ,GAAG,CAAC,SCPzB,gBAAkC,GAGhC,GAAM,QAAsB,CAAC,EAFlB,gBAAgB,EAAG,IAAK,UAInC,MAAO,QAAO,UAAU,MAAO,QAE1B,GAAM,OAAQ,GAAG,CAAC,SCTnB,gBACF,MAAyC,OAC3C,GAAM,cAAa,QAAU,QAAU,UAAa,MAAM,QAAQ,SAC9D,QAAU,YACZ,KAAM,IAAI,OACN,kFAGN,GAAI,QAAU,UAAY,aAAa,QACnC,CAAE,iBAAiB,aACrB,KAAM,IAAI,OACN,6EAKN,MAAO,YAAW,MAFM,GACQ,GACe,OCbjD,eAAiC,GAG/B,GAAM,QAAqB,CAAC,EAFjB,gBAAgB,EAAG,IAAK,SAInC,MAAO,QAAO,UAAU,KAAM,QAGzB,GAAM,MAAO,GAAG,CAAC,QCuBxB,0BACI,EAAiB,gBACjB,gBAAsC,QACtC,KAAqB,SAAoC,CAAC,EAAG,GAC7D,WAA4B,QAC9B,GAAM,IAAK,gBAAgB,EAAG,IAAK,mBAC7B,iBACF,gBAAgB,gBAAiB,kBAAmB,mBAClD,iBACF,gBAAgB,gBAAiB,kBAAmB,mBAEpD,IAAM,GACN,aAAe,GAMnB,GALI,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAGvD,aAAe,OACjB,KAAM,IAAI,OACN,sFAID,OACD,IAAI,OAAS,EACb,IAAM,gEACM,IAAI,SACf,OACD,iBAAiB,OAAS,EAC1B,IAAM,2EACU,iBAAiB,SAChC,OACD,iBAAiB,OAAS,EAC1B,IAAM,2EACU,iBAAiB,SAChC,OACD,iBAAiB,MAAM,KAAO,EAC9B,IACI,yFACuB,iBAAiB,MAAM,OACjD,OACD,iBAAiB,MAAM,KAAO,EAC9B,IAAM,yFAC2B,iBAAiB,MAAM,OAE5D,GAAM,YAAa,iBAAiB,MAAM,GACpC,kBAAoB,iBAAiB,MAAM,GAC5C,OACD,iBAAiB,MAAM,KAAO,WAAa,kBAC3C,IACI,6EACW,WAAa,8BACb,iBAAiB,MAAM,OAE1C,GAAM,WAAY,gBACd,IAAK,iBAAkB,QAAS,KAAK,WAAY,UAE/C,IACF,OAAO,UAAW,iBAFE,EAEiC,QAAS,YAElE,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEtD,IAGF,GAAM,iBAAkB,GAAG,CAAC,mBCxFnC,+BACI,EAAsB,GACxB,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAC7B,GAAK,gBAAgB,EAAG,IAAK,aAE9B,OACD,GAAG,QAAU,GAAG,MAChB,IAAM,kDACF,GAAG,iBAAiB,GAAG,WAE1B,OACD,GAAG,OAAS,EAAG,IAAM,qCAAqC,GAAG,WAE5D,OACD,GAAG,OAAS,EAAG,IAAM,qCAAqC,GAAG,WAEjE,GAAM,OAAQ,KAAM,IAAG,OACjB,MAAQ,KAAM,IAAG,OACjB,KAAO,GAAI,KAAI,OAEjB,WAAa,EACjB,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,IAC3B,KAAK,IAAI,MAAM,KAClB,aAIJ,GAAM,SAAS,GAAI,cAAa,CAAC,YAAa,GAAG,OAC3C,QAAU,GAAI,cAAa,CAAC,YAAa,SAC/C,OAAS,GAAI,EAAG,GAAI,EAAG,EAAI,MAAM,OAAQ,IAClC,KAAK,IAAI,MAAM,KAClB,SAAO,OAAO,IAAK,MAAM,GACzB,QAAQ,OAAO,IAAK,EACpB,MAGJ,MAAO,CAAC,QAAO,WAAY,QAAQ,YAE9B,GAAM,gBAAiB,gBClD9B,eAAiC,GAE/B,GAAM,QAAqB,CAAC,EADjB,gBAAgB,EAAG,IAAK,SAEnC,MAAO,QAAO,UAAU,KAAM,QAEzB,GAAM,MAAO,GAAG,CAAC,QCLxB,cAAgC,GAG9B,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,QAInC,MAAO,QAAO,UAAU,IAAK,QAExB,GAAM,KAAM,GAAG,CAAC,OCPvB,eAAiC,GAE/B,GAAM,QAAqB,CAAC,EADjB,gBAAgB,EAAG,IAAK,SAGnC,MAAO,QAAO,UAAU,KAAM,QAEzB,GAAM,MAAO,GAAG,CAAC,QCfxB,kBACI,EAAwB,MAAe,MACzC,GAAM,IAAK,gBAAgB,EAAG,IAAK,WACnC,MAAK,QACD,GAAG,OAAS,EACZ,IACI,mDAAmD,GAAG,eACvD,MAAM,GAAI,CAAC,OAAQ,CAAC,OAEtB,GAAM,SAAU,GAAG,CAAC,WCT3B,kBACI,EAAwB,MACxB,MACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,WACnC,MAAK,QACD,GAAG,OAAS,EACZ,IACI,mDAAmD,GAAG,eACvD,MAAM,GAAI,MAAO,MAEnB,GAAM,SAAU,GAAG,CAAC,WCV3B,kBACI,EAAwB,MACxB,MACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,WACnC,MAAK,QACD,GAAG,OAAS,EACZ,IACI,mDAAmD,GAAG,eACvD,MAAM,GAAI,MAAO,MAEnB,GAAM,SAAU,GAAG,CAAC,WCV3B,kBACI,EAAwB,MACxB,MACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,WACnC,MAAK,QACD,GAAG,OAAS,EACZ,IACI,mDAAmD,GAAG,eACvD,MAAM,GAAI,MAAO,MAEnB,GAAM,SAAU,GAAG,CAAC,WCS3B,kBAAoC,OAAsB,IAAM,IAC9D,GAAM,SAAU,gBAAgB,OAAQ,SAAU,UAAW,WAK7D,GAHI,MAAQ,IACV,KAAM,QAAQ,KAAO,GAEnB,MAAQ,QAAQ,KAAO,EACzB,KAAM,OACF,4EACmB,QAAQ,oBAAoB,OAGrD,GAAM,QAAwB,CAAC,OAAQ,SACjC,MAAsB,CAAC,KAE7B,MAAO,QAAO,UACV,QAAS,OAAgC,OAGxC,GAAM,SAAU,GAAG,CAAC,WC1B3B,cAAc,QACZ,OACI,OAAM,QAAU,YAChB,IAAM,6DACS,OAAM,UAEzB,GAAM,QAAoB,CAAC,MAAA,QAE3B,MAAO,QAAO,UAAU,IAAK,QAGxB,GAAM,KAAM,GAAG,CAAC,OCXvB,eAAe,QACb,OACI,OAAM,QAAU,YAChB,IAAM,8DACS,OAAM,UAEzB,GAAM,QAAqB,CAAC,MAAA,QAE5B,MAAO,QAAO,UAAU,KAAM,QAGzB,GAAM,MAAO,GAAG,CAAC,QCJxB,gBAAgB,QACd,GAAM,oBAAqB,OAAM,MAAM,OAAM,MAAM,OAAS,GACtD,MAAQ,OAAM,KAAO,mBACvB,IACJ,GAAI,oBAAsB,GACxB,GAAM,cAAe,QAAQ,OAAO,CAAC,MAAO,qBAC5C,IAAM,KAAK,mBAIX,GAAM,aAAc,CAAC,MAAO,EAAK,oBAAqB,IAChD,UAAY,QAAQ,KAAK,QAAQ,CAAC,MAAO,qBACzC,UAAY,QAAQ,KAAK,QAAQ,CAAC,MAAO,qBAEzC,cACF,QAAQ,MAAM,UAAW,CAAC,EAAG,GAAI,CAAC,MAAO,mBAAqB,IAAK,GACjE,cAA0B,IAC5B,QAAQ,MAAM,UAAW,CAAC,EAAG,GAAI,CAAC,MAAO,mBAAqB,IAAK,GACnE,OAAO,KAEL,EAAI,OAAO,CAAC,UAAW,eAAgB,GACvC,EAAI,OAAO,CAAC,UAAW,eAAgB,GACvC,aACF,QAAQ,QAAQ,EAAG,GAAI,CAAC,YAAY,GAAI,YAAY,KACxD,IAAM,KAAK,cAIb,GAFA,IAAM,KAAK,KAEP,OAAM,OAAS,GAAK,OAAM,MAAM,KAAO,GACzC,GAAM,MAAO,IACP,OAAQ,OAAM,MAAM,GAC1B,IAAM,QAAQ,IAAK,CAAC,OAAO,IAAI,MAAM,GAAK,OAAO,IAAI,MAAM,KAC3D,KAAK,UAEP,MAAO,KAGF,GAAM,OAAQ,GAAG,CAAC,SCxBzB,gBACI,EAAsB,gBAAkC,KAAO,GAGjE,GAAM,QAAuB,CAAC,EAFnB,gBAAgB,EAAG,IAAK,UAG7B,KAAoB,CAAC,gBAAiB,MAE5C,MAAO,QAAO,UACH,OAAQ,OACR,MAGN,GAAM,OAAQ,GAAG,CAAC,SC1BzB,eAAe,OAAe,WAC5B,OACI,OAAM,QAAU,UAChB,IAAM,mDAAmD,OAAM,SAEnE,GAAI,oBAAqB,OAAM,MAAM,OAAM,MAAM,OAAS,GACpD,MAAQ,OAAM,KAAO,mBAEvB,cACJ,GAAI,WAAa,MAAQ,UAAY,oBAEnC,GAAM,OAAQ,OAAM,MAAM,IAAI,GAAK,GAC7B,KAAO,OAAM,MAAM,IAAI,GAAK,GAClC,KAAK,OAAM,MAAM,OAAS,GAAK,UAC/B,cAAgB,MAAM,OAAO,MAAO,MACpC,mBAAqB,kBACZ,WAAa,MAAQ,UAAY,oBAE1C,GAAM,YAAa,OAAM,MAAM,IAAI,GAAK,GACxC,WAAW,OAAM,MAAM,OAAS,GAAK,UAAY,mBACjD,cAAgB,OAAO,CAAC,OAAO,MAAM,aAAc,OAAM,MAAM,OAAS,GACxE,mBAAqB,cAErB,eAAgB,OAIlB,GAAM,YAAa,UAAU,eACvB,aACF,QAAQ,QAAQ,cAAe,YAAa,CAAC,MAAO,qBAElD,IAAM,IAAI,cAGV,KAAO,KAAK,MAAM,mBAAqB,GAAK,EAC5C,WAAa,KAAK,KAClB,WAAa,KAAK,KAClB,qBAAuB,MACzB,WAAY,CAAC,KAAM,mBAAqB,MACxC,WAAW,MAAM,OAAS,GACxB,qBAAuB,MACzB,WAAY,CAAC,KAAM,mBAAqB,MACxC,WAAW,MAAM,OAAS,GAExB,YAAc,cAAc,MAAM,QACxC,MAAA,aAAY,cAAc,MAAM,OAAS,GAAK,KAEvC,QACH,QAAQ,qBAAqB,GAAI,qBAAqB,IAAK,aAG1D,GAAM,MAAO,GAAG,CAAC,QC5DxB,eAAiC,GAG/B,GAAM,QAAqB,CAAC,EAFjB,gBAAgB,EAAG,IAAK,SAInC,MAAO,QAAO,UAAU,KAAM,QAEzB,GAAM,MAAO,GAAG,CAAC,QCOxB,4BACI,EAAsB,GACxB,GAAI,IAAK,gBAAgB,EAAG,IAAK,qBAC7B,GAAK,gBAAgB,EAAG,IAAK,qBACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,2BAA2B,GAAG,MAAO,GAAG,OAExC,GAAM,QAAkC,CAAC,EAAG,GAAI,EAAG,IAC7C,MAAQ,GAEd,MAAO,QAAO,UACV,kBAAmB,OAAqC,OAGvD,GAAM,mBAAoB,GAAG,CAAC,qBC3BrC,kBAAoC,EAAsB,MACxD,GAAM,IAAK,gBAAgB,EAAG,IAAK,WACnC,MAAO,SAAQ,GAAI,aAAa,GAAG,MAAO,MAAM,UAG3C,GAAM,SAAU,GAAG,CAAC,WCF3B,gBACI,QAA8B,KAAO,GACvC,GAAM,UACF,qBAAqB,QAAS,UAAW,QAAS,qBAEjD,OACD,SAAS,QAAU,EAAG,IAAM,wCAE5B,SAAS,OAAS,GACf,OACD,MAAQ,SAAS,GAAG,KAAM,IAAM,sCAGtC,GAAM,QAAqB,SACrB,MAAmB,CAAC,MAE1B,MAAO,QAAO,UACV,KAAM,OAAgC,OAGrC,GAAM,OAAQ,GAAG,CAAC,SCvBzB,eAAiC,EAAiB,MAAQ,GAGxD,GAAM,QAAqB,CAAC,EAFjB,gBAAgB,EAAG,IAAK,SAG7B,MAAmB,CAAC,OAE1B,MAAO,QAAO,UACV,KAAM,OAAgC,OAErC,GAAM,MAAO,GAAG,CAAC,QCWxB,uBACI,EAAsB,MAAiB,IAAe,QACtD,UAAY,EAAG,QAAU,EAAG,aAAe,EAAG,YAAc,EAC5D,eAAiB,GAGnB,GAAM,QAA6B,CAAC,EAFzB,gBAAgB,EAAG,IAAK,iBAG7B,MAA2B,CAC/B,MACA,IACA,QACA,UACA,QACA,aACA,YACA,gBAGF,MAAO,QAAO,UACV,aAAc,OACd,OAGC,GAAM,cAAe,GAAG,CAAC,gBC7ChC,cAAgC,GAG9B,GAAM,QAAoB,CAAC,EAFhB,gBAAgB,EAAG,IAAK,QAInC,MAAO,QAAO,UAAU,IAAK,QAExB,GAAM,KAAM,GAAG,CAAC,OCLjB,kBAAmB,OAAsB,OAC7C,cAAc,QACd,GAAM,eAAgB,WAAW,OAAQ,OACzC,GAAI,cAAc,SAAW,EAC3B,KAAM,IAAI,OAAM,sDAGlB,MAAO,YAAW,OADM,KACS,cAAe,OCA5C,kBACF,OAAsB,MACtB,OAEF,GADA,cAAc,QACV,OAAS,MAAQ,MAAM,SAAW,EACpC,KAAM,IAAI,OAAM,iDAElB,GAAM,eAAgB,WAAW,OAAQ,OACzC,GAAI,cAAc,SAAW,GAAK,cAAc,SAAW,EACzD,KAAM,IAAI,OACN,kEAEN,GAAI,cAAc,SAAW,GAAK,OAAS,KACzC,KAAM,IAAI,OACN,gFAGN,MAAO,YAAW,OAAQ,MAAO,cAAe,OCjB5C,kBACF,OAAsB,MACtB,OAEF,GADA,cAAc,QACV,OAAS,MAAQ,MAAM,SAAW,EACpC,KAAM,IAAI,OAAM,kDAElB,GAAM,eAAgB,WAAW,OAAQ,OACzC,GAAI,cAAc,SAAW,GAAK,cAAc,SAAW,EACzD,KAAM,IAAI,OACN,sEAEN,GAAI,cAAc,SAAW,GAAK,OAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAO,YAAW,OAAQ,MAAO,cAAe,OCjB5C,kBACF,OAAsB,MACtB,OAEF,GADA,cAAc,QACV,OAAS,MAAQ,MAAM,SAAW,EACpC,KAAM,IAAI,OAAM,kDAElB,GAAM,eAAgB,WAAW,OAAQ,OACzC,GAAI,cAAc,SAAW,GAAK,cAAc,SAAW,EACzD,KAAM,IAAI,OACN,wEAGN,GAAI,cAAc,SAAW,GAAK,OAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAO,YAAW,OAAQ,MAAO,cAAe,OClB5C,kBACF,OACA,MACA,OAEF,GADA,cAAc,QACV,OAAS,MAAQ,MAAM,SAAW,EACpC,KAAM,IAAI,OAAM,iDAElB,GAAM,eAAgB,WAAW,OAAQ,OACzC,GAAI,cAAc,SAAW,GAAK,cAAc,SAAW,EACzD,KAAM,IAAI,OACN,0EAGN,GAAI,cAAc,SAAW,GAAK,OAAS,KACzC,KAAM,IAAI,OACN,2EAGN,MAAA,OAAQ,OACJ,cACG,WAAW,OAAQ,MAAO,cAAe,OCjBlD,eACI,EAAiB,EAAI,EAAG,OAAS,IACnC,GAAM,IAAK,gBAAgB,EAAG,IAAK,QACnC,GAAI,GAAG,OAAS,EACd,KAAM,IAAI,OAAM,sDAElB,GAAM,SAAU,GAAG,MAAM,GAAG,MAAM,OAAS,GAC3C,GAAI,EAAI,QACN,KAAM,IAAI,OACN,uDAAuD,oBAC5C,KAGjB,GAAM,QAAqB,CAAC,EAAG,IACzB,MAAmB,CAAC,EAAG,QAEvB,CAAC,OAAQ,SAAW,OAAO,UAC7B,KAAM,OAAgC,OAE1C,MAAO,CAAC,OAAQ,SAGX,GAAM,MAAO,GAAG,CAAC,QC7BxB,0BACI,MAAoB,MAAO,EAAG,OAAS,EAAG,MAC1C,MACF,GAAI,OAAS,MAAS,QAAuB,OAC3C,KAAM,IAAI,OAAM,qCAElB,GAAM,WACF,GAAI,aAAY,MAAM,OAAQ,MAAO,GAAsB,MACzD,IAAM,OAAO,MAAO,OAC1B,OAAS,GAAI,EAAG,EAAI,IAAI,OAAO,OAAQ,IACrC,IAAI,OAAO,GAAK,UAAU,YAE5B,MAAO,KAAI,WAGN,GAAM,iBAAkB,GAAG,CAAC,mBCkBnC,iBACI,EAAiB,KAAO,GAC1B,GAAM,IAAK,gBAAgB,EAAG,IAAK,SAAU,qBAC7C,OAAO,GAAG,KAAO,EAAG,IAAM,wCAE1B,GAAM,QAAuB,CAAC,EAAG,IAC3B,MAAqB,CAAC,MACtB,CAAC,OAAQ,SAAW,OAAO,UACH,OAAQ,OACR,OAC9B,MAAO,CAAC,OAAQ,SAGX,GAAM,QAAS,GAAG,CAAC,UC5C1B,6BACI,EAAiB,WAAiC,aACpD,GAAM,IAAK,gBAAgB,EAAG,IAAK,sBAC7B,YACF,gBAAgB,WAAY,aAAc,qBAAsB,SACpE,OAAO,MAAM,aAAc,IAAM,oCAEjC,GAAM,QAAmC,CAAC,EAAG,GAAI,WAAY,aACvD,MAAiC,CAAC,aAExC,MAAO,QAAO,UACV,mBAAoB,OACpB,OAGC,GAAM,oBAAqB,GAAG,CAAC,sBCnBtC,kBAAkB,EAAsB,KAAO,GAC7C,GAAM,IAAK,gBAAgB,EAAG,IAAK,UAAW,qBACzC,OACD,MAAQ,CAAC,GAAG,MAAM,QAAU,KAAO,GAAG,MAAM,OAC5C,IACI,UAAU,oBAAoB,GAAG,MAAM,WAAW,GAAG,MAAM,WAEnE,GAAM,QAAuB,CAAC,MAAO,IAC/B,MAAqB,CAAC,MAE5B,MAAO,QAAO,UACV,OAAQ,OAAgC,OAGvC,GAAM,SAAU,GAAG,CAAC,WCnBrB,kBACF,aAAyB,UAAY,GAAM,KAC3C,OACF,MAAO,QAAO,aAAa,aAAc,UAAW,KAAM,OCjBtD,mBAAoB,UAAqB,UAC7C,GAAM,SAAU,GAChB,OAAS,GAAI,EAAG,EAAI,SAAS,OAAQ,IAC/B,SAAS,IACX,QAAQ,KAAK,GAIjB,GAAM,UAAW,OAAO,UAAW,SAE7B,IAAM,OAAO,CAAC,QAAQ,OAAQ,UAAU,QAAS,SACvD,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,KAClC,GAAM,KAAM,SAAS,WAAW,QAAQ,IAClC,OAAS,EAAI,UAAU,OAC7B,IAAI,OAAO,IAAI,IAAK,QAEtB,MAAO,KAAI,WCEb,2BAA2B,WACzB,GAAM,YACF,gBAAgB,UAAW,YAAa,aAAc,QACpD,KAAO,KAAM,YAAW,OACxB,IAAM,UAAU,WAAW,MAAO,MACxC,MAAI,aAAc,YAChB,WAAW,UAEN,IAGF,GAAM,YAAa,YCP1B,iCACI,QAA2B,KAC3B,MACF,GAAM,SAAU,gBAAgB,QAAQ,SAAU,YAC5C,MAAQ,gBAAgB,KAAM,OAAQ,WAAY,QAElD,SAAW,MAAQ,KAAO,EAAI,KAC9B,QAAU,MAAM,KAChB,YAAc,QAAQ,MAEvB,OAAO,QAAU,EAAG,IAAM,yBAC1B,kBACD,YAAY,MAAM,SAAU,SAAW,SAAU,MAAM,MACvD,qEAEJ,GAAI,aAAc,EAClB,OAAS,GAAI,SAAU,EAAI,SAAW,QAAS,IAC7C,aAAe,YAAY,GAE7B,GAAM,mBACF,YAAY,MAAM,EAAG,UAChB,OAAO,CAAC,aAAc,YAAY,MAAM,SAAW,UACtD,eAAiB,QAAQ,QAAS,mBAClC,aAAe,QAAQ,MAAO,CAAC,KAC/B,kBAAoB,KAAM,YAAW,cACrC,QAAU,QAAQ,kBAAmB,CAAC,IAEtC,IAAM,OAAO,eAAgB,QAAS,UAG5C,MAAI,WAAW,SACb,QAAQ,UAEN,OAAS,OACX,MAAM,UAER,QAAQ,UACR,eAAe,UACf,aAAa,UACb,kBAAkB,UAEX,IAGF,GAAM,kBAAmB,kBClDhC,yBACI,EAAiB,GACnB,gBACI,6EAEJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,kBAC7B,GAAK,gBAAgB,EAAG,IAAK,kBACnC,MAAA,mBAAkB,GAAG,MAAO,GAAG,MAAO,6BAC/B,SAAS,GAAI,IAYtB,qBAAuC,EAAiB,GACtD,gBACI,6EAEJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,cAC7B,GAAK,gBAAgB,EAAG,IAAK,cACnC,MAAA,mBAAkB,GAAG,MAAO,GAAG,MAAO,yBAC/B,KAAK,GAAI,IAGlB,sBAAwC,EAAiB,GACvD,gBACI,6EAEJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,eAC7B,GAAK,gBAAgB,EAAG,IAAK,eACnC,MAAA,mBAAkB,GAAG,MAAO,GAAG,MAAO,0BAC/B,MAAM,GAAI,IAGnB,0BACI,EAAiB,GACnB,gBACI,6EAEJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,mBAC7B,GAAK,gBAAgB,EAAG,IAAK,mBACnC,MAAA,mBAAkB,GAAG,MAAO,GAAG,MAAO,8BAC/B,UAAU,GAAI,IAGvB,wBAA0C,EAAiB,GACzD,gBACI,6EAEJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,iBAC7B,GAAK,gBAAgB,EAAG,IAAK,iBACnC,MAAA,mBAAkB,GAAG,MAAO,GAAG,MAAO,4BAC/B,QAAQ,GAAI,IAGrB,6BACI,EAAiB,GACnB,gBACI,6EAEJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,sBAC7B,GAAK,gBAAgB,EAAG,IAAK,sBACnC,MAAA,mBAAkB,GAAG,MAAO,GAAG,MAAO,iCAC/B,aAAa,GAAI,IAGnB,GAAM,aAAc,GAAG,CAAC,eAClB,mBAAqB,GAAG,CAAC,sBACzB,cAAgB,GAAG,CAAC,iBACpB,gBAAkB,GAAG,CAAC,mBACtB,WAAa,GAAG,CAAC,cACjB,eAAiB,GAAG,CAAC,kBCzElC,oBAAsC,EAAiB,GACrD,gBACI,6EAEJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAC7B,GAAK,gBAAgB,EAAG,IAAK,aACnC,MAAK,mBAAkB,GAAG,MAAO,GAAG,MAAO,wBACpC,KAAI,GAAI,IAajB,oBAAsC,EAAiB,GACrD,gBACI,6EAGJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAC7B,GAAK,gBAAgB,EAAG,IAAK,aACnC,MAAK,mBAAkB,GAAG,MAAO,GAAG,MAAO,wBACpC,IAAI,GAAI,IAajB,oBAAsC,MAAS,MAC7C,MAAA,iBACI,6EAGC,kBAAkB,MAAK,MAAO,KAAI,MAAO,wBACvC,IAAI,MAAM,MAanB,oBAAsC,EAAiB,GACrD,gBACI,6EAGJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,OAC7B,GAAK,gBAAgB,EAAG,IAAK,OACnC,MAAK,mBAAkB,GAAG,MAAO,GAAG,MAAO,6BACpC,IAAI,GAAI,IAWjB,oBAAsC,EAAiB,GACrD,gBACI,6EAGJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,OAC7B,GAAK,gBAAgB,EAAG,IAAK,OACnC,MAAK,mBAAkB,GAAG,MAAO,GAAG,MAAO,2BACpC,IAAI,GAAI,IAWjB,oBAAsC,EAAiB,GACrD,gBACI,6EAGJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,aAC7B,GAAK,gBAAgB,EAAG,IAAK,aACnC,MAAK,mBAAkB,GAAG,MAAO,GAAG,MAAO,wBACpC,IAAI,GAAI,IAWjB,wBAA0C,EAAiB,GACzD,gBACI,6EAGJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,iBAC7B,GAAK,gBAAgB,EAAG,IAAK,iBACnC,MAAK,mBAAkB,GAAG,MAAO,GAAG,MAAO,4BACpC,QAAQ,GAAI,IAWrB,wBAA0C,EAAiB,GACzD,gBACI,6EAGJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,iBAC7B,GAAK,gBAAgB,EAAG,IAAK,iBACnC,MAAK,mBAAkB,GAAG,MAAO,GAAG,MAAO,4BACpC,QAAQ,GAAI,IAarB,kCACI,EAAiB,GACnB,gBACI,6EAEJ,GAAM,IAAK,gBAAgB,EAAG,IAAK,2BAC7B,GAAK,gBAAgB,EAAG,IAAK,2BACnC,MAAK,mBACD,GAAG,MAAO,GAAG,MAAO,sCACjB,kBAAkB,GAAI,IAGxB,GAAM,WAAY,GAAG,CAAC,aAChB,UAAY,GAAG,CAAC,aAChB,cAAgB,GAAG,CAAC,iBACpB,cAAgB,GAAG,CAAC,iBACpB,UAAY,GAAG,CAAC,aAChB,UAAY,GAAG,CAAC,aAChB,UAAY,GAAG,CAAC,aAChB,wBAA0B,GAAG,CAAC,2BAC9B,UAAY,GAAG,CAAC,aCpJ7B,eACI,EAAsB,IAAgC,YACtD,KAAwB,KAAM,SAAW,IAC3C,EAAI,gBAAgB,EAAG,IAAK,QAE5B,GAAM,OAAO,SAAS,EAAG,IAAK,MAC1B,cAAgB,MAAK,MACzB,GAAI,UACF,GAAM,MAAO,eAAe,KAAM,EAAE,OACpC,cAA0B,qBAAqB,MAAK,MAAO,MAE7D,MAAO,SAAQ,MAAM,eAGvB,kBACI,EAAW,GAAkB,KAAwB,MACvD,GAAI,EAAE,OAAS,EACb,MAAO,KAAI,GAIb,GAAI,EAAE,OAAS,GAAK,OAAS,KAC3B,MAAO,UAAS,QAAQ,EAAG,CAAC,KAAM,GAAG,MAIvC,GAAI,EAAE,OAAS,GAAK,MAAO,OAAS,UAChC,MAAM,QAAQ,OAAS,KAAK,SAAW,GACzC,GAAI,KAAM,EACR,MAAO,MAAI,IAAI,GAAI,MAErB,GAAI,KAAM,SACR,MAAO,KAAI,IAAI,GAAI,MAErB,GAAI,KAAM,UACR,MAAO,KAAI,IAAI,GAAI,MAErB,GAAI,KAAM,aAAe,KAAM,EAE7B,MAAO,MAAK,KAAI,IAAI,IAAI,GAAI,OAAO,EAAG,UAAW,OAGnD,KAAM,IAAI,OAAM,qCAAqC,MAIvD,GAAI,MAAM,QAAQ,OAAS,KAAK,SAAW,GACzC,GAAI,KAAM,EACR,MAAO,KAAI,KAAI,IAAI,GAAI,KAAK,IAAK,KAAK,GAAK,GAE7C,GAAI,KAAM,SACR,MAAO,KAAI,KAAI,IAAI,GAAI,KAAK,IAAK,KAAK,IAExC,GAAI,KAAM,UACR,MAAO,KAAI,KAAI,IAAI,GAAI,KAAK,IAAK,KAAK,IAExC,GAAI,KAAM,OAAS,KAAM,YAEvB,MAAO,MAAK,KAAI,OAAO,GAAI,OAG7B,KAAM,IAAI,OAAM,qCAAqC,MAGvD,KAAM,IAAI,OAAM,gCAAgC,QAG3C,GAAM,MAAO,GAAG,CAAC,QChFxB,wBACI,EAAiB,EAAiB,MAClC,MAAsB,WAAa,IACrC,GAAM,IAAK,gBAAgB,EAAG,IAAK,iBAC7B,GAAK,gBAAgB,EAAG,IAAK,iBAC7B,OAAS,gBAAgB,MAAO,QAAS,iBAE/C,iBAAiB,GAAI,IAChB,OACI,YAAY,GAAG,MAAO,GAAG,OAAQ,IAAM,6BAEhD,GAAM,KAAM,OAAO,GACb,cAAgB,IAAI,IAAK,QAE3B,OAAS,IAAI,IAAI,GAAI,IAAK,eAC9B,GAAI,YACG,OACD,OAAQ,KAAM,IAAM,kDACxB,GAAM,OAAQ,gBAAgB,MAAM,OAAQ,iBAC5C,OAAS,IAAI,OAAQ,IAAI,IAAK,IAAI,OAAQ,SAE5C,MAAO,MAAI,GAAI,QAGV,GAAM,eAAgB,GAAG,CAAC,iBCpCjC,oBACI,QAA4B,QAC5B,OACF,GAAM,UAAW,gBAAgB,QAAS,UAAW,YAAa,SAC5D,SAAW,gBAAgB,QAAS,UAAW,aACrC,cAAc,SAAU,SAAU,OAElD,GAAM,QAA0B,CAAC,QAAS,SAAU,QAAS,UACvD,MAAwB,CAAC,OAG/B,MAAO,QAAO,UACH,UAAW,OACX,OAGN,GAAM,WAAY,GAAG,CAAC,aChCvB,wBACF,cAAuB,aAAsB,YAC7C,eACF,GAAI,cAAc,QAAU,QAC1B,KAAM,IAAI,OACN,8EACsB,cAAc,UAE1C,GAAI,cAAc,KAAO,EACvB,KAAM,IAAI,OACN,sEACkB,cAAc,UAGtC,GAAM,UAAW,cAAc,KAAO,EAAI,cAAc,MAAM,GAAK,EAC7D,QAAU,cAAc,KAAO,EAAI,cAAc,MAAM,GAAK,EAElE,GAAI,YAAY,SAAW,QACzB,KAAM,IAAI,OACN,kDACI,YAAY,sBAAsB,YAG5C,GAAM,WAAY,aAAa,KAC/B,GAAI,CAAE,cAAa,OAAS,GACtB,aAAa,OAAS,GAAK,YAAc,UAC7C,KAAM,IAAI,OACN,oCACG,aAAa,2BAA2B,aAGjD,GAAI,aAAa,QAAU,cAAc,MACvC,KAAM,IAAI,OAAM,qDCGpB,wBACI,cAAkC,aAClC,YAA0B,aAAkC,GAC9D,GAAM,gBACF,gBAAgB,cAAe,gBAAiB,gBAAiB,SAC/D,cACF,gBAAgB,aAAc,eAAgB,iBAC5C,cAAgB,gBAClB,aAAc,eAAgB,gBAAiB,cAAc,OAEjD,eACZ,eAAgB,cAAe,YAAa,eAEhD,GAAM,QAA8B,CAClC,cAAe,eACf,aAAc,cACd,aAAc,eAGV,MAA4B,CAAC,aAEnC,MAAO,QAAO,UACV,cAAe,OACf,OAGC,GAAM,eAAgB,GAAG,CAAC,iBC9BjC,mBAAmB,EAAsB,SACvC,GAAM,UAAW,gBAAgB,QAAS,UAAW,WAAY,SAG3D,OAAyB,CAAC,OAFrB,gBAAgB,EAAG,IAAK,YAES,QAAS,UAErD,MAAO,QAAO,UAAU,SAAU,QAG7B,GAAM,UAAW,GAAG,CAAC,YC3CtB,uBAAwB,EAAW,YACvC,GAAI,YAAc,KAChB,MAAO,GAAE,MAAM,QAEjB,GAAS,YAAY,EAAE,MAAO,YAC5B,MAAO,YAET,GAAI,EAAE,MAAM,SAAW,WAAW,QAChC,GAAM,cAAyB,GAC/B,OAAS,GAAI,EAAG,EAAI,EAAE,MAAM,OAAQ,IAC9B,WAAW,IAAM,MAAQ,EAAE,MAAM,IAAM,KACzC,aAAa,KAAK,EAAE,MAAM,IAE1B,aAAa,KAAK,WAAW,IAGjC,MAAO,cAGT,MAAO,YCKT,kBACI,EAAsB,KAAc,WACpC,MACF,GAAM,IAAK,gBAAgB,EAAG,IAAK,WAUnC,GARK,OACD,GAAG,QAAU,UACb,IAAM,gFACmB,GAAG,yBAC3B,OACD,MAAQ,GAAK,KAAO,EACpB,IAAM,qDAAqD,SAE3D,OAAS,EACX,MAAO,aAAa,QAAS,GAAG,QAAU,GAG5C,GAAM,aAAc,cAAc,GAAI,YAChC,SAAW,EAAI,KACf,WAAa,IACf,MAAM,KAAI,cAAc,YAAa,EAAG,EAAG,UAAW,MAAO,WAC7D,UAEJ,MAAO,KAAI,GAAI,YAGV,GAAM,SAAU,GAAG,CAAC,WC1DrB,6BAA8B,OAElC,MAAO,MAAK,MAAM,KAAK,IAAI,EAAG,KAAK,KAAK,KAAK,IAAI,OAAS,KAAK,IAAI,MAG/D,sBACF,aAAsB,EAAW,GACnC,GAAM,MAAO,EAAI,aAAe,EAC1B,UAAY,GAAI,cAAa,cACnC,OAAS,GAAI,EAAG,EAAI,aAAc,EAAE,GAClC,GAAM,QAAU,EAAM,KAAK,GAAK,EAAM,cAAe,KAAO,GAC5D,UAAU,GAAK,EAAI,EAAI,KAAK,IAAI,QAElC,MAAO,UAAS,UAAW,WCO7B,4BACI,YAA2B,QAAuB,EAAI,GACxD,GAAM,cAAe,gBAAgB,YAAa,cAAe,UAC3D,SAAW,gBAAgB,QAAS,UAAW,UAErD,OACI,aAAa,KAAO,EACpB,IAAM,uEACS,aAAa,QAChC,OACI,aAAa,KAAO,IAAM,SAAS,KACnC,IAAM,mFAEC,aAAa,yBAAyB,SAAS,QAC1D,kBACI,aAAa,MAAM,MAAM,EAAG,aAAa,MAAM,OAAS,GACxD,SAAS,MACT,2FAEJ,GAAM,SAAU,aAAa,MAAM,aAAa,MAAM,OAAS,GAC/D,OACI,EAAI,GAAK,GAAK,QACd,IAAM,4EACY,qBAAqB,KAE3C,GAAM,iBAAkB,KAAM,cAAa,OACrC,YAAc,KAAM,UAAS,OAI7B,CAAC,MAAO,MAAQ,CAAC,gBAAgB,OAAS,QAAS,SACnD,WAAY,uBAAuB,OAAQ,OAEjD,OAAS,GAAI,EAAG,EAAI,MAAO,KACzB,GAAM,QAAS,EAAI,KACb,KAAO,gBAAgB,SAAS,OAAQ,OAAS,MACjD,UAAmD,GACzD,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,IAC/B,UAAU,KAAK,CAAC,MAAO,KAAK,GAAI,MAAO,IAEzC,UAAU,KAAK,CAAC,EAAG,KAAM,GAAE,MAAQ,EAAE,OAErC,WAAU,GAAK,EACf,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,GAAI,UAAU,GAAG,QAAU,YAAY,IACrC,WAAU,GAAK,EACf,OAKN,MAAI,eAAgB,cAClB,aAAa,UAEX,UAAY,UACd,SAAS,UAIJ,OAAO,WAAW,SAAS,MAAO,QAGpC,GAAM,aAAc,aCtG3B,kBAAA,GAAA,UAAA,kBAAA,CAAA,OAAA,IAAA,QAAA,gBAAA,IAAA,iBAAA,OAAA,IAAA,UC+CA,+BACI,EAAM,GAAO,YACb,QACA,KACA,WAA4B,OAC5B,iBACF,GAAI,KAAM,EACN,EAAE,OAAS,GACb,KAAM,QAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,MAEvD,GAAI,MAAO,GACP,KAAK,OAAS,GAChB,MAAO,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAEvD,OACD,IAAI,OAAS,EACb,IAAM,iEACC,IAAI,UACV,OACD,KAAK,OAAS,EACd,IAAM,8DACC,KAAK,UACX,OACD,YAAY,SAAW,EACvB,IAAM,mEACC,gBACX,GAAM,SAAU,aAAe,OAAS,IAAI,MAAM,GAAK,IAAI,MAAM,GAC3D,SAAW,aAAe,OAAS,KAAK,MAAM,GAAK,KAAK,MAAM,GAC/D,OACD,UAAY,YAAY,GACxB,IAAM,4CAA4C,8CACd,YAAY,OAC/C,OACD,WAAa,YAAY,GACzB,IAAM,0CAA0C,iDACV,YAAY,QAClD,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,gFACiB,+BAA+B,SAG5D,GAAM,QAAqC,CAAC,EAAG,IAAK,GAAI,MAClD,MACF,CAAC,QAAS,IAAA,KAAK,WAAY,gBAAiB,aAGhD,MAAO,QAAO,UACH,qBAAsB,OACtB,OAGN,GAAM,sBAAuB,GAAG,CAAC,wBCpElC,8BACF,GAAY,EAAW,aACzB,GAAI,aAAc,MAAQ,cAAe,SACvC,MAAO,IAET,GAAI,cAAe,OACjB,MAAO,KAAI,GAAI,KAAK,IAEtB,KAAM,IAAI,OACN,gDAAgD,gBAIhD,8BACF,KAAc,cAChB,GAAI,KAAM,aACJ,WACa,iBAAiB,KAAK,MAAO,aAAa,OAC7D,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAK,KAAK,OAGrB,yBACF,EAAW,YAAwB,uBACnC,gBACF,GAAI,cAAe,SACjB,MAAO,GACF,GAAI,cAAe,OACxB,MAAO,MAAK,GACP,GAAI,cAAe,MACxB,MAAO,KAAI,GACN,GAAI,cAAe,QACxB,MAAO,OAAM,GACR,GAAI,cAAe,QACxB,MAAO,OAAM,EAAG,wBACX,GAAI,cAAe,YACxB,MAAO,WAAU,EAAG,gBAEtB,KAAM,IAAI,OAAM,4BAA4B,gBAIvC,GAAM,YAAa,CAAC,cAAuB,cAEzC,CADc,eAAgB,IACb,cAAe,SCiBzC,sBAAmD,CACjD,EACA,OACA,QACA,IAAA,KACA,WAAa,OACb,UAAY,CAAC,EAAG,GAChB,gBACA,KACA,WAAA,YAAa,SACb,uBACA,iBAgBA,GAFA,YAAa,aAAc,SAEvB,WAAW,OAAO,MAAM,cAAe,eAAgB,IACzD,GAAI,QAAS,OACT,EAAG,OAAQ,QAAS,KAAK,WAAY,UAAW,iBACpD,MAAI,OAAQ,MACV,QAAS,KAAI,OAAQ,OAGhB,gBACI,OAAQ,YAAY,uBAAwB,gBAGzD,GAAM,IAAK,gBAAgB,EAAG,IAAK,UAC7B,QAAU,gBAAgB,OAAQ,SAAU,UAE9C,IAAM,GACN,aAAe,GAEf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAEtD,OACD,IAAI,OAAS,EACb,IAAM,6DACC,IAAI,SACV,OACD,QAAQ,OAAS,EACjB,IAAM,8DACC,QAAQ,SACf,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,6EACiB,+BAA+B,SAGvD,OACD,IAAI,MAAM,KAAO,QAAQ,MAAM,GAC/B,IAAM,oCAAoC,IAAI,MAAM,yCACtB,QAAQ,MAAM,OAC3C,OACS,+BAA+B,QAAS,WAClD,IAAM,uEACa,0BAA0B,cAC5C,OACD,aAAe,OACf,IAAM,sCACF,oDAER,GAAM,UAAqB,kBACvB,IAAI,MAAO,QAAQ,MAAO,QAAS,UAAW,KAAK,iBAEnD,MACA,MAAQ,MACV,OAAQ,gBAAgB,KAAM,OAAQ,gBACtC,CAAC,OAAS,eAAe,MAAO,IAEjB,2BAA2B,SAAS,SAAU,MAAM,QAGrE,GAAI,yBACA,wBAA0B,MAC5B,yBAA0B,gBACtB,uBAAwB,gBAAiB,iBAG/C,GAAM,OAAO,CAAC,GAAc,SAC1B,GAAM,CAAC,SAAS,KAAK,EAAG,QACpB,MAEE,aAAe,qBAAqB,GAAI,EAAG,aAE5C,OACS,kBAAkB,WAC5B,IAAM,uHAEoD,cAE9D,GAAM,MACF,oBAAoB,KAAI,MAAO,aAAc,SAAS,QAAS,MAC7D,UACF,qBAAqB,KAAK,aAAc,SAAQ,MAAO,QAAS,MAC9D,IAAgB,CAAC,KAAM,WAE7B,GAAI,QAAS,MACX,GAAM,SAAU,qBAAqB,OAAO,cAC5C,IAAI,KAAK,SAEX,MAAO,MAGH,OAA4B,CAChC,EAAG,IACH,OAAQ,QACR,KAAM,MACN,uBAAwB,yBAGpB,MAA0B,CAC9B,QACA,IAAA,KACA,WACA,UACA,gBACA,WAAA,YACA,gBAKF,MAAI,OAAQ,KAEN,WAAW,CAAC,KAAe,QAAkB,QAC3C,GAAI,KAEA,OAAO,UACH,YAAa,OACb,OAER,MAAA,MAAK,CAAC,QAAQ,KAAK,MAEf,cAEF,KAAM,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,MAIrD,CAAC,MAAO,IAAK,SAAU,SAEpB,IAAK,SAEI,WACrB,CAAC,KAAe,QAAkB,MAAc,QAC9C,GAAI,KAAyB,OAAO,UAChC,YAAa,OACb,OAEJ,MAAA,MAAK,CAAC,QAAQ,KAAK,IAAK,QAEpB,cAEF,KAAM,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,MAIrD,CAAC,MAAO,IAAK,SAAU,SAGZ,IAAK,QAAS,OAGnC,GAAM,SAAS,GAAG,CAAC,eCxP1B,8CACI,EAAM,GAAO,YACb,QAAkC,KAClC,UAAqC,CAAC,EAAG,GACzC,iBACF,GAAI,KAAM,EACN,EAAE,OAAS,GACb,KAAM,QAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,MAEvD,GAAI,MAAO,GACP,KAAK,OAAS,GAChB,MAAO,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAG5D,GAAM,QAAoD,CAAC,EAAG,IAAK,GAAI,MACjE,MACF,CAAC,QAAS,IAAA,KAAK,gBAAiB,UAAW,aAG/C,MAAO,QAAO,UACH,oCACA,OAAgC,OAItC,GAAM,qCACT,GAAG,CAAC,uCC1BR,6CACI,OAA0C,GAAO,OACjD,QAAkC,KAClC,UAAqC,CAAC,EAAG,GACzC,iBACF,GAAI,MAAO,GACP,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,KAAO,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAG5D,GAAM,QAAmD,CAAC,GAAI,KAAM,QAC9D,MACF,CAAC,QAAS,IAAA,KAAK,gBAAiB,UAAW,WAAY,QAErD,IAEF,OAAO,UACH,mCAAoC,OACpC,OAER,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEtD,IAGF,GAAM,oCACT,GAAG,CAAC,sCCoCR,+BAA4D,CAC1D,EACA,OACA,QACA,IAAA,KACA,WAAa,OACb,UAAY,CAAC,EAAG,GAChB,gBACA,KACA,WAAA,YAAa,SACb,uBACA,iBAcA,GAAI,WAAW,OAAO,MAAM,cAAe,eAAgB,IACzD,GAAI,QAAS,gBACT,EAAG,OAAQ,QAAS,KAAK,WAAY,UAAW,iBACpD,MAAI,OAAQ,MACV,QAAS,KAAI,OAAQ,OAGhB,gBACI,OAAQ,YAAY,uBAAwB,gBAGzD,GAAM,IAAK,gBAAgB,EAAG,IAAK,mBAC7B,QAAU,gBAAgB,OAAQ,SAAU,mBAE9C,IAAM,GACN,aAAe,GACf,GAAG,OAAS,GACd,cAAe,GACf,IAAM,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAEtD,OACD,IAAI,OAAS,EACb,IAAM,sEACM,IAAI,SACf,OACD,QAAQ,OAAS,EACjB,IAAM,uEACc,QAAQ,SAC3B,OACD,IAAI,MAAM,KAAO,QAAQ,MAAM,GAC/B,IAAM,6DACE,IAAI,MAAM,qDACJ,QAAQ,MAAM,OAC5B,WAAa,MACf,WAAY,CAAC,EAAG,IAEb,OACS,+BAA+B,QAAS,WAClD,IACI,sFACqB,0BAA0B,cAEnD,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,qFACuB,+BAA+B,SAGlE,GAAM,UAAqB,kBACvB,IAAI,MAAO,QAAQ,MAAO,QAAS,UAAW,KAAK,gBACnD,IAEA,MACA,MAAQ,MACV,OAAQ,gBAAgB,KAAM,OAAQ,gBACtC,CAAC,OAAS,eAAe,MAAO,IAEjB,2BAA2B,SAAS,SAAU,MAAM,QAGrE,GAAI,yBACA,wBAA0B,MAC5B,yBAA0B,gBACtB,uBAAwB,gBAAiB,0BAG/C,GAAM,OAAO,CAAC,GAAc,SACrB,OACS,kBAAkB,WAC5B,IAAM,mHAEE,cACZ,GAAM,CAAC,SAAS,KAAK,EAAG,OAAQ,MAE1B,aAAe,qBAAqB,GAAI,EAAG,aAE3C,KAAO,mCACR,KAAiB,MAAO,aAAc,SAAqB,QAC5D,KAAK,UAAW,iBACd,UAAY,oCACd,KAAiB,aAAe,SAAqB,MAAO,QAC5D,KAAK,UAAW,iBAEpB,GAAI,OAAQ,MACV,GAAM,SAAU,qBAAqB,MAAO,cAC5C,MAAO,CAAC,KAAM,UAAW,SAE3B,MAAO,CAAC,KAAM,YAGV,OAAqC,CACzC,EAAG,IACH,OAAQ,QACR,KAAM,MACN,uBAAwB,yBAEpB,MAAmC,CACvC,QACA,IAAA,KACA,WACA,UACA,gBACA,WAAA,YACA,gBAKF,MAAI,OAAQ,KAEN,WAAW,CAAC,KAAe,QAAkB,QAE3C,GAAI,KAAyB,OAAO,UAChC,qBAAsB,OACtB,OAEJ,MAAA,MAAK,CAAC,QAAQ,KAAK,MAEf,cAEF,KAAM,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,MAIrD,CAAC,MAAO,IAAK,SAAU,SAEpB,IAAK,SAEI,WACrB,CAAC,KAAe,QAAkB,MAAc,QAE9C,GAAI,KAAyB,OAAO,UAChC,qBAAsB,OACtB,OAEJ,MAAA,MAAK,CAAC,QAAQ,KAAK,IAAK,QAEpB,cAEF,KAAM,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,MAIrD,CAAC,MAAO,IAAK,SAAU,SAGZ,IAAK,QAAS,OAGnC,GAAM,kBAAkB,GAAG,CAAC,wBChNnC,sBAAwC,CACtC,EACA,EACA,WAAa,GACb,WAAa,GACb,KACA,WAAA,YAAa,SACb,uBACA,iBAWE,GAAI,WAAW,OAAO,MAAM,cAAe,eAAgB,IACzD,GAAI,QAAS,OAAc,EAAG,EAAG,WAAY,YAC7C,MAAI,OAAQ,MACV,QAAS,KAAI,OAAQ,OAGhB,gBACI,OAAQ,YAAY,uBAAwB,gBAIzD,GAAI,IAAK,gBAAgB,EAAG,IAAK,gBAC7B,GAAK,gBAAgB,EAAG,IAAK,gBACjC,CAAC,GAAI,IAAM,eAAe,GAAI,IAE9B,GAAM,aACF,WAAa,GAAG,MAAM,GAAG,KAAO,GAAK,GAAG,MAAM,GAAG,KAAO,GACtD,YACF,WAAa,GAAG,MAAM,GAAG,KAAO,GAAK,GAAG,MAAM,GAAG,KAAO,GAEtD,YACF,WAAa,GAAG,MAAM,GAAG,KAAO,GAAK,GAAG,MAAM,GAAG,KAAO,GACtD,YACF,WAAa,GAAG,MAAM,GAAG,KAAO,GAAK,GAAG,MAAM,GAAG,KAAO,GAEtD,WAAa,GAAG,MAAM,MAAM,EAAG,IAC/B,WAAa,GAAG,MAAM,MAAM,EAAG,IAC/B,UAAiB,cAAc,YAC/B,UAAiB,cAAc,YAEhC,OACD,GAAG,MAAQ,GAAK,GAAG,MAAQ,GAAK,GAAG,OAAS,GAAG,KAC/C,IAAM,kFACoB,GAAG,YAAY,GAAG,SAE3C,OACI,YAAY,WAAY,YAC7B,IAAM,4CAA4C,oBAC3C,sCAAsC,GAAG,aACzC,GAAG,qBAET,OACD,cAAgB,YAChB,IAAM,wCAAwC,qBACvC,uCAAuC,GAAG,aAC1C,GAAG,wBAAwB,6BACX,0BAE3B,GAAM,UAAW,GAAG,MAAM,MAAM,EAAG,IAAI,OAAO,CAAC,YAAa,cAEtD,IAAgB,WAClB,QAAQ,GAAI,CAAC,UAAW,YAAa,cACrC,QAAQ,GAAI,CAAC,UAAW,YAAa,cACnC,IAAgB,WAClB,QAAQ,GAAI,CAAC,UAAW,YAAa,cACrC,QAAQ,GAAI,CAAC,UAAW,YAAa,cAErC,MACA,MAAQ,MACV,OAAQ,gBAAgB,KAAM,OAAQ,gBACtC,CAAC,OAAS,eAAe,MAAO,IAEjB,2BAA2B,SAAU,MAAM,QAG5D,GAAI,yBACA,wBAA0B,MAC5B,yBAA0B,gBACtB,uBAAwB,gBAAiB,iBAG/C,GAAM,OAAO,CAAC,GAAc,SAC1B,GAAM,CAAC,KAAK,KAAK,EAAG,QAAS,MAIvB,aACF,qBAAqB,QAAQ,GAAI,EAAE,OAAQ,EAAG,aAC9C,KACA,KAgBJ,GAdI,CAAC,YAAc,CAAC,WAClB,MAAO,OAAc,aAAc,KAAK,GAAO,IAC/C,KAAO,OAAc,KAAK,aAAc,GAAM,KACrC,CAAC,YAAc,WACxB,MAAO,OAAc,aAAc,KAAK,GAAO,IAC/C,KAAO,OAAc,aAAc,KAAK,GAAM,KACrC,YAAc,CAAC,WACxB,MAAO,OAAc,KAAK,aAAc,GAAO,IAC/C,KAAO,OAAc,KAAK,aAAc,GAAO,KAE/C,MAAO,OAAc,KAAK,aAAc,GAAM,IAC9C,KAAO,OAAc,aAAc,KAAK,GAAM,KAG5C,MAAQ,MACV,GAAM,SAAU,qBAAqB,OAAO,cAC5C,MAAO,CAAC,KAAM,KAAM,aAEpB,OAAO,CAAC,KAAM,OAIZ,OAA6B,CACjC,EAAG,IACH,EAAG,IACH,KAAM,MACN,uBAAwB,yBAEpB,MACF,CAAC,WAAY,WAAY,WAAA,YAAY,gBAIzC,MAAI,OAAQ,KAEN,WAAW,CAAC,KAAe,KAAe,QACxC,GAAM,KAEF,OAAO,UACH,aAAc,OACd,OAER,MAAA,MAAK,CAAC,KAAK,KAAK,MAET,CAAC,MAAO,QAAQ,IAAK,UAAW,SAAU,SAEvC,IAAK,KAEI,WACrB,CAAC,KAAe,KAAe,OAAe,QAC5C,GAAM,KAEF,OAAO,UACH,aAAc,OACd,OAER,MAAA,MAAK,CAAC,KAAK,KAAK,IAAK,SAEd,CAAC,MAAO,QAAQ,IAAK,UAAW,SAAU,SAG/B,IAAK,IAAK,OAI/B,GAAM,SAAS,GAAG,CAAC,eC7L5B,wBAAwB,cACtB,MAAO,cAAa,aAAc,IAAM,KAEnC,GAAM,eAAgB,GAAG,CAAC,iBCHjC,qBAAqB,cACnB,MAAO,cAAa,aAAc,GAAK,IAGlC,GAAM,YAAa,GAAG,CAAC,cCI9B,gBACI,QAAkB,YAAqB,UAAmB,OAAS,GACnE,SAAW,GACb,GAAI,OAAQ,EACN,OAAmB,GACzB,KAAO,MAAQ,aAAe,QAAO,MACnC,OAAO,KAAK,MAAM,QAAQ,MAAO,cACjC,OAAS,UAGX,GAAI,OACF,KAAO,MAAQ,QAAO,OACpB,GAAM,QAAU,MAAQ,YAAe,QAAO,KACxC,KAAM,OAAO,CACjB,MAAM,QAAQ,MAAO,YAAc,QAAS,KAAK,CAAC,QAAS,YAE7D,OAAO,KAAK,MACZ,OAAS,UAIb,MAAI,QAAO,SAAW,EACb,SAAS,GAAI,CAAC,EAAG,cAGnB,QAAQ,OAAO,QAAS,CAAC,OAAO,OAAQ,cAE1C,GAAM,OAAQ,GAAG,CAAC,SCxBzB,eACI,QAAkB,YAAqB,UACvC,UACA,SAAyC,YACvC,WAAa,MACf,WAAY,oBAAoB,cAElC,GAAM,cAAe,MAAM,QAAQ,YAAa,WAC1C,eAAiB,IAAI,aAAc,SAAS,cAC5C,OAAmB,GACzB,OAAS,GAAI,EAAG,EAAI,aAAa,MAAM,GAAI,IACzC,OAAO,KACH,KAAK,MAAM,eAAgB,CAAC,EAAG,GAAI,CAAC,EAAG,cAAe,YAE5D,MAAO,QAAO,QAET,GAAM,MAAO,GAAG,CAAC,QCTxB,wBACI,OACA,MACA,OACA,SACA,OAA+B,WAC/B,mBAAqB,GAEvB,GAAM,QAAS,gBAAgB,OAAO,QAAS,iBACzC,OAAS,gBAAgB,MAAO,QAAS,gBAAiB,WAC1D,QAAU,gBAAgB,OAAQ,SAAU,gBAAiB,SAE7D,SAAW,OAAO,MAAM,GAEzB,OACD,OAAO,OAAS,EAChB,IAAM,6DACc,OAAO,SAC1B,OACD,OAAO,OAAS,GAAK,OAAO,MAAM,KAAO,EACzC,IAAM,oDAAoD,6BACrC,OAAO,UAC3B,OACD,QAAQ,OAAS,GAAK,QAAQ,MAAM,KAAO,SAC3C,IAAM,qDAAqD,2BACtC,OAAO,UAC3B,OACD,SAAS,SAAW,EACpB,IAAM,wEACQ,SAAS,WACtB,OACD,SAAS,IAAM,GAAK,SAAS,IAAM,EACnC,IAAM,2CAA2C,YAChD,OACD,SAAW,YAAc,SAAW,UACpC,IAAM,+CAA+C,UAEzD,GAAM,QACoB,CAAC,MAAO,OAAQ,MAAO,OAAQ,OAAQ,SAC3D,MAA4B,CAAC,OAAQ,mBAAoB,UAI/D,MAHY,QAAO,UACf,cAAe,OACf,OAIC,GAAM,eAAgB,GAAG,CAAC,iBChEjC,wBAAwB,QACtB,GAAM,QAAS,gBAAgB,OAAO,QAAS,gBAAiB,WAE3D,OACD,OAAO,OAAS,EAChB,IAAM,6DACc,OAAO,SAE/B,GAAM,QAA8B,CAAC,MAAO,QAG5C,MADI,QAAO,UAAU,cAAe,OAAgC,IAI/D,GAAM,eAAgB,GAAG,CAAC,iBCHjC,2BACI,OAA4B,QAC5B,UAA6C,EAC7C,OAAkC,IACpC,GAAM,QAAS,gBAAgB,OAAO,QAAS,mBAAoB,WAE9D,OACD,OAAO,OAAS,EAChB,IAAM,gEACc,OAAO,SAE/B,GAAM,QAAiC,CAAC,MAAO,QACzC,MAA+B,CAAC,QAAS,UAAW,QAI1D,MAHY,QAAO,UACf,iBAAkB,OAClB,OAIC,GAAM,kBAAmB,GAAG,CAAC,oBC3CpC,+BACI,MAAiB,OAAkB,cACnC,aAAsB,eAAwB,cAM5C,cAAgB,MAClB,cAAe,IAEb,gBAAkB,MACpB,gBAAiB,OAAO,mBAEtB,cAAgB,MAClB,cAAe,GAGjB,GAAM,UAAW,MAAM,MAAM,GAC7B,MAAA,eAAgB,KAAK,IAAI,cAAe,UAEnC,OACD,GAAK,cAAgB,cAAgB,EACrC,IAAM,4CAA4C,iBACjD,OACD,MAAM,OAAS,EACf,IAAM,+CAA+C,MAAM,SAC1D,OACD,MAAM,MAAM,KAAO,EACnB,IACI,oDAAoD,MAAM,MAAM,MACnE,OAAO,OAAO,OAAS,EAAG,IAAM,8BAChC,OACD,OAAO,MAAM,KAAO,SACpB,IAAM,sDAAsD,qBAC7C,OAAO,MAAM,MAC3B,OACD,GAAK,cAAgB,cAAgB,EACrC,IAAM,4CAA4C,iBAC/C,CAAC,cAAe,aAAc,eAAgB,cCfvD,4BACI,MAA4B,OAC5B,cAAuB,aAAe,GACtC,eAAiB,OAAO,mBAC1B,GAAM,QAAS,gBAAgB,MAAO,QAAS,qBACzC,QAAU,gBAAgB,OAAQ,SAAU,qBAE5C,OAAS,sBACX,OAAQ,QAAS,cAAe,aAAc,gBAClD,cAAgB,OAAO,cACvB,aAAe,OAAO,aACtB,eAAiB,OAAO,eAExB,GAAM,OAAQ,CAAC,cAAe,aAAc,gBAC5C,MAAO,QAAO,UACV,oBAAqB,CAAC,MAAO,OAAQ,OAAQ,SAAU,OAGtD,GAAM,mBAAoB,GAAG,CAAC,qBChC/B,sBACF,IAAU,QAAY,YACxB,GAAM,OAAQ,aAAa,IAAK,QAAS,YACnC,eAAiB,MAAQ,EAAI,CAAE,OAAQ,GAAK,MAClD,IAAI,OAAO,eAAgB,EAAG,SAkB1B,sBACF,IAAU,OAAW,YACvB,MAAO,eAAc,IAAK,OAAQ,YAAc,mBAUlD,2BAA8B,EAAM,GAClC,MAAO,GAAI,EAAI,EAAI,EAAI,EAAI,GAAK,EAGlC,uBACI,IAAU,OAAW,YACvB,GAAI,MAAO,EACP,MAAQ,IAAI,OACZ,OAAS,EACT,MAAQ,GACZ,KAAO,KAAO,QACZ,OAAS,KAAS,OAAQ,OAAU,GACpC,GAAM,eAAgB,WAAW,OAAQ,IAAI,SACzC,cAAgB,EAClB,KAAO,OAAS,EAEhB,OAAQ,OAGR,MAAQ,CAAC,eAIb,MAAO,OAAQ,KAAO,CAAC,KAAO,ECpD1B,iCACF,MAAmB,OAAoB,cACvC,aAAsB,gBACxB,MAAO,wBACH,MAAO,OAAQ,cAAe,aAAc,eAC5C,GAGA,iCACF,MAAmB,OAAoB,cACvC,aAAsB,eACtB,oBACF,MAAO,wBACH,MAAO,OAAQ,cAAe,aAAc,eAC5C,EAAsB,GACtB,mBAA6C,IAI7C,iCACF,MAAmB,OAAoB,cACvC,aAAsB,eACtB,cACF,MAAO,wBACH,MAAO,OAAQ,cAAe,aAAc,eAAgB,aAC5D,IAGN,gCACI,MAAmB,OAAoB,cACvC,aAAsB,eAAwB,aAC9C,mBAAqB,GAAO,mBAAqB,GACjD,mBAAqB,IAGvB,GAAM,YAAa,GAEnB,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IAC7B,OAAO,GAAK,gBACd,WAAW,KAAK,CAAC,MAAO,OAAO,GAAI,SAAU,EAAG,mBAAoB,IAIxE,WAAW,KAAK,qBAIhB,GAAM,QAAQ,aAAe,EAAK,IAAO,aAAgB,EAEnD,gBAA4B,GAC5B,eAA2B,GAEjC,KAAO,gBAAgB,OAAS,eAAiB,WAAW,OAAS,IACnE,GAAM,WAAY,WAAW,MACvB,CAAC,MAAO,cAAe,SAAU,oBAAsB,UAE7D,GAAI,cAAgB,eAClB,MASF,GAAI,iBAAkB,GACtB,OAAS,GAAI,gBAAgB,OAAS,EAAG,GAAK,mBAAoB,EAAE,GAClE,GAAM,KAAM,sBAAsB,MAAO,SAAU,gBAAgB,IAEnE,GAAI,KAAO,cACT,gBAAkB,GAClB,MAMF,GAHA,UAAU,MACN,UAAU,MAAQ,eAAe,aAAc,OAAO,KAEtD,UAAU,OAAS,eACrB,MAWJ,UAAU,mBAAqB,gBAAgB,OAE1C,iBAGC,WAAU,QAAU,cACtB,iBAAgB,KAAK,UACrB,eAAe,KAAK,UAAU,QACrB,UAAU,MAAQ,gBAG3B,aAAa,WAAY,UAAW,sBAM1C,GAAM,cAAe,gBAAgB,OAC/B,WAAa,cAAgB,aAE/B,oBAAsB,WAAa,GACrC,iBAAgB,KAAK,GAAG,GAAI,OAAM,YAAY,KAAK,IACnD,eAAe,KAAK,GAAG,GAAI,OAAM,YAAY,KAAK,KAGpD,GAAM,QAAkC,CAAC,iBAEzC,MAAI,qBACF,QAAO,eAAoB,gBAGzB,oBACF,QAAO,aAAkB,cAGpB,OAGT,+BAA+B,MAAmB,EAAW,GAC3D,GAAM,QAAS,MAAM,SAAS,EAAI,EAAG,EAAI,EAAI,GACvC,OAAS,MAAM,SAAS,EAAI,EAAG,EAAI,EAAI,GACvC,MAAQ,KAAK,IAAI,OAAO,GAAI,OAAO,IACnC,MAAQ,KAAK,IAAI,OAAO,GAAI,OAAO,IACnC,MAAQ,KAAK,IAAI,OAAO,GAAI,OAAO,IACnC,MAAQ,KAAK,IAAI,OAAO,GAAI,OAAO,IACnC,MAAQ,KAAK,IAAI,OAAO,GAAI,OAAO,IACnC,MAAQ,KAAK,IAAI,OAAO,GAAI,OAAO,IACnC,MAAQ,KAAK,IAAI,OAAO,GAAI,OAAO,IACnC,MAAQ,KAAK,IAAI,OAAO,GAAI,OAAO,IACnC,MAAS,OAAQ,OAAU,OAAQ,OACnC,MAAS,OAAQ,OAAU,OAAQ,OACzC,GAAI,OAAS,GAAK,OAAS,EACzB,MAAO,GAET,GAAM,kBAAmB,KAAK,IAAI,MAAO,OACnC,iBAAmB,KAAK,IAAI,MAAO,OACnC,iBAAmB,KAAK,IAAI,MAAO,OACnC,iBAAmB,KAAK,IAAI,MAAO,OACnC,iBAAmB,KAAK,IAAI,iBAAmB,iBAAkB,GACnE,KAAK,IAAI,iBAAmB,iBAAkB,GAClD,MAAO,kBAAoB,OAAQ,MAAQ,kBAO7C,wBAAwB,aAAsB,OAAe,KAC3D,GAAM,QAAS,KAAK,IAAI,OAAQ,IAAM,KACtC,MAAO,MAAO,aAAe,OAAS,EAGxC,6BAA6B,GAAe,IAK1C,MAAQ,IAAG,MAAQ,GAAG,OAChB,GAAG,QAAU,GAAG,OAAW,GAAG,SAAW,GAAG,SC/JpD,uCACI,MAA4B,OAC5B,cAAuB,aAAe,GACtC,eAAiB,OAAO,mBAC1B,GAAM,QAAS,gBAAgB,MAAO,QAAS,0BACzC,QAAU,gBAAgB,OAAQ,SAAU,0BAE5C,OAAS,sBACX,OAAQ,QAAS,cAAe,aAAc,gBAClD,cAAgB,OAAO,cACvB,aAAe,OAAO,aACtB,eAAiB,OAAO,eAExB,GAAM,gBAAiB,KAAM,SAAQ,IAAI,CAAC,OAAO,OAAQ,QAAQ,SAC3D,UAAY,eAAe,GAC3B,WAAa,eAAe,GAK5B,CAAC,iBAAmB,wBACtB,UAAW,WAAY,cAAe,aAAc,gBACxD,MAAI,UAAW,OACb,OAAO,UAEL,UAAY,QACd,QAAQ,UAGH,SAAS,gBAAiB,SAG5B,GAAM,wBAAyB,wBCnBtC,qCACI,MAA4B,OAC5B,cAAuB,aAAe,GACtC,eAAiB,OAAO,kBACxB,aAAe,GACjB,GAAM,QAAS,gBAAgB,MAAO,QAAS,qBACzC,QAAU,gBAAgB,OAAQ,SAAU,qBAE5C,OAAS,sBACX,OAAQ,QAAS,cAAe,aAAc,eAC9C,cACJ,cAAgB,OAAO,cACvB,aAAe,OAAO,aACtB,eAAiB,OAAO,eACxB,aAAe,OAAO,aAEtB,GAAM,QAAoC,CAAC,MAAO,OAAQ,OAAQ,SAC5D,MACF,CAAC,cAAe,aAAc,eAAgB,cAG5C,OAAS,OAAO,UACH,oBAAqB,OACrB,OAEnB,MAAO,CAAC,gBAAiB,OAAO,GAAI,eAAgB,OAAO,IAGtD,GAAM,4BAA6B,GAAG,CAAC,8BChC9C,gDACI,MAA4B,OAC5B,cAAuB,aAAe,GACtC,eAAiB,OAAO,kBACxB,aAAe,GACjB,GAAM,QAAS,gBAAgB,MAAO,QAAS,0BACzC,QAAU,gBAAgB,OAAQ,SAAU,0BAE5C,OAAS,sBACX,OAAQ,QAAS,cAAe,aAAc,eAC9C,cACJ,cAAgB,OAAO,cACvB,aAAe,OAAO,aACtB,eAAiB,OAAO,eACxB,aAAe,OAAO,aAEtB,GAAM,gBAAiB,KAAM,SAAQ,IAAI,CAAC,OAAO,OAAQ,QAAQ,SAC3D,UAAY,eAAe,GAC3B,WAAa,eAAe,GAK5B,CAAC,gBAAiB,gBAAkB,wBACtC,UAAW,WAAY,cAAe,aAAc,eACpD,cAEJ,MAAI,UAAW,OACb,OAAO,UAEL,UAAY,QACd,QAAQ,UAGH,CACL,gBAAiB,SAAS,gBAAiB,SAC3C,eAAgB,SAAS,iBAItB,GAAM,iCAAkC,iCC1C/C,kCACI,MAA4B,OAC5B,cAAuB,aAAe,GACtC,eAAiB,OAAO,kBACxB,mBAAqB,IACvB,GAAM,QAAS,gBAAgB,MAAO,QAAS,qBACzC,QAAU,gBAAgB,OAAQ,SAAU,qBAE5C,OAAS,sBACX,OAAQ,QAAS,cAAe,aAAc,eAC9C,MACE,eAAiB,OAAO,cACxB,cAAgB,OAAO,aACvB,gBAAkB,OAAO,eAEzB,OAAoC,CAAC,MAAO,OAAQ,OAAQ,SAC5D,MAAkC,CACtC,cAAe,eACf,aAAc,cACd,eAAgB,gBAChB,oBAII,OAAS,OAAO,UACH,oBAAqB,OACrB,OAEnB,MAAO,CAAC,gBAAiB,OAAO,GAAI,aAAc,OAAO,IAGpD,GAAM,yBAA0B,GAAG,CAAC,2BClC3C,6CACI,MAA4B,OAC5B,cAAuB,aAAe,GACtC,eAAiB,OAAO,kBACxB,mBAAqB,IACvB,GAAM,QAAS,gBAAgB,MAAO,QAAS,0BACzC,QAAU,gBAAgB,OAAQ,SAAU,0BAE5C,OAAS,sBACX,OAAQ,QAAS,cAAe,aAAc,eAC9C,MACE,eAAiB,OAAO,cACxB,cAAgB,OAAO,aACvB,gBAAkB,OAAO,eAEzB,CAAC,UAAW,YACd,KAAM,SAAQ,IAAI,CAAC,OAAO,OAAQ,QAAQ,SAKxC,CAAC,gBAAiB,cAAgB,wBACpC,UAAW,WAAY,eAAgB,cAAe,gBACtD,oBAEJ,MAAI,UAAW,OACb,OAAO,UAEL,UAAY,QACd,QAAQ,UAGH,CACL,gBAAiB,SAAS,gBAAiB,SAC3C,aAAc,OAAO,aAAc,UAIhC,GAAM,8BAA+B,8BCxC5C,yBACI,OAAsB,KAAwB,aAAe,GAC7D,iBAAmB,IACrB,GAAM,SAAU,gBAAgB,OAAQ,SAAU,kBAE7C,OACD,QAAQ,OAAS,GAAK,QAAQ,OAAS,EACvC,IAAM,gEACM,QAAQ,SACnB,OACD,KAAK,SAAW,EAChB,IAAM,6DACC,SACN,OACD,mBAAqB,IAAS,eAAiB,GAC/C,IAAM,qFAGV,GAAI,aAAc,QACd,aAAe,GACf,QAAQ,OAAS,GACnB,cAAe,GACf,YAAc,QACV,QAAS,CAAC,EAAG,QAAQ,MAAM,GAAI,QAAQ,MAAM,GAAI,QAAQ,MAAM,MAGrE,GAAM,GAAK,KAEL,OAA+B,CAAC,OAAQ,aACxC,MAA6B,CAAC,aAAc,iBAAkB,MAG9D,IAAM,OAAO,UACH,eAAgB,OAChB,OAEhB,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEtD,IAGF,GAAM,gBAAiB,GAAG,CAAC,kBCzClC,gCACI,OAAsB,KAAwB,aAAe,GAC7D,iBAAmB,IACrB,GAAM,SAAU,gBAAgB,OAAQ,SAAU,yBAE7C,OACD,QAAQ,OAAS,GAAK,QAAQ,OAAS,EACvC,IAAM,uEACM,QAAQ,SACnB,OACD,KAAK,SAAW,EAChB,IACI,oEACG,SACN,OACD,QAAQ,QAAU,WAAa,QAAQ,QAAU,QACjD,IAAM,oDACL,OACD,mBAAqB,IAAS,eAAiB,GAC/C,IAAM,4FAEV,GAAI,aAAc,QACd,aAAe,GACf,QAAQ,OAAS,GACnB,cAAe,GACf,YAAc,QACV,QAAS,CAAC,EAAG,QAAQ,MAAM,GAAI,QAAQ,MAAM,GAAI,QAAQ,MAAM,MAErE,GAAM,GAAK,KAEL,OAAsC,CAAC,OAAQ,aAC/C,MAC2B,CAAC,aAAc,iBAAkB,MAG5D,IAAM,OAAO,UACH,sBAAuB,OACvB,OAEhB,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEtD,IAGF,GAAM,uBAAwB,GAAG,CAAC,yBCnBzC,mBACI,EAAiB,SAAkB,UACrC,OACI,SAAW,GAAM,EACjB,IAAM,gDAAgD,aAC1D,OACI,SAAW,GAAM,EACjB,IAAM,gDAAgD,aAE1D,GAAM,IAAK,gBAAgB,EAAG,IAAK,YAEnC,OACI,GAAG,MAAQ,EACX,IAAM,4CAA4C,GAAG,SAEzD,GAAM,OAAQ,GAAG,MACX,CAAC,EAAG,GAAK,GAAG,MAAM,MAAM,IAE9B,GAAI,CAAE,WAAY,GAChB,KAAM,IAAI,OACN,yBAAyB,0DACwB,OAEvD,GAAI,CAAE,WAAY,GAChB,KAAM,IAAI,OACN,yBAAyB,6DAC2B,OAGtD,SAAW,GACb,UAAW,GAET,SAAW,GACb,UAAW,GAGb,GAAM,GAAI,QAAQ,MAAM,EAAG,EAAG,EAAG,SAAU,CAAC,GAAI,IAC1C,EAAI,MAAM,EAAG,EAAG,EAAG,SACnB,GAAK,IAAI,EAAG,GAEZ,OAAS,WACX,UAAU,GAAI,OAAO,CAAC,SAAU,UAChC,aAAa,GAAI,OAAO,CAAC,SAAU,WAEjC,KAAO,MAAM,CAAC,EAAG,GAAI,GAAG,OAE9B,MAAO,SACI,MAAM,QAAQ,QAAQ,GAAI,CAAC,GAAI,EAAG,KACvB,IAAI,KAAO,MAAM,OAAQ,IAAK,QACzC,OAGN,GAAM,UAAW,GAAG,CAAC,YClE5B,sBAAsB,IACpB,GAAI,iBACJ,GAAI,MAAM,QAAQ,KAChB,gBAAkB,GAClB,OACI,IAAM,MAAQ,GAAG,OAAS,EAC1B,IAAM,qEAEV,GAAM,KAAM,GAAG,GAAG,MAAM,GACxB,OAAS,GAAI,EAAG,EAAI,GAAG,OAAQ,EAAE,EAC/B,OACI,GAAG,GAAG,MAAM,KAAO,IACnB,IACI,iEACK,GAAkB,GAAG,MAAM,UAAU,YAGpD,iBAAkB,GAClB,GAAK,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,IAAI,GAAK,QAAQ,EAAG,CAAC,KAGtD,OACI,GAAG,QAAU,GAAG,GAAG,MAAM,GACzB,IAAM,oCACK,GAAkB,yCACC,GAAkB,GAAG,MAAM,QAE7D,GAAM,IAAiB,GACjB,KAAO,GACb,OAAS,GAAI,EAAG,EAAI,GAAG,OAAQ,EAAE,EAC/B,GAAG,KAAK,OAAO,KAAK,KAClB,GAAI,GAAI,KAAK,GACb,GAAI,EAAI,EACN,OAAS,GAAI,EAAG,EAAI,EAAG,EAAE,GACvB,GAAM,MAAO,IAAI,KAAI,IAAI,GAAG,GAAI,IAAK,GAAG,IACxC,EAAI,IAAI,EAAG,MAGf,MAAO,KAAI,EAAG,KAAK,EAAG,iBAI1B,MAAI,iBACK,MAAM,GAAI,GAEV,GAIJ,GAAM,aAAc,GAAG,CAAC,eCzB/B,aAAa,EAAW,aAAe,IAMrC,GALA,OACI,EAAE,MAAQ,EACV,IAAM,gEACF,EAAE,QAEN,EAAE,OAAS,EACb,MAAO,MAAK,EAAe,cACtB,CAKL,GAAM,eAAgB,EAAE,MAAM,MAAM,EAAG,EAAE,MAAM,OAAS,GAC7B,OAAO,CAAC,MAAO,OAAS,MAAQ,MACrD,KAAO,QACT,QACI,EACA,CACE,cAAe,EAAE,MAAM,EAAE,MAAM,OAAS,GACxC,EAAE,MAAM,EAAE,MAAM,OAAS,KAE/B,GACE,KAAmB,GACnB,KAAmB,GACzB,KAAK,QAAQ,MACX,GAAM,CAAC,IAAK,KAAO,KAAK,IAAiB,cACzC,KAAK,KAAK,KACV,KAAK,KAAK,OAEZ,GAAM,GAAI,QAAQ,MAAM,KAAM,GAAI,EAAE,OAC9B,EAAI,QAAQ,MAAM,KAAM,GAAI,EAAE,OACpC,MAAO,CAAC,EAAG,IAIf,cAAc,EAAa,aAAe,IACxC,MAAO,QAAO,KAAK,KACjB,OACI,EAAE,MAAM,SAAW,EACnB,IAAM,0CACF,EAAE,MAAM,mBAEhB,GAAM,GAAI,EAAE,MAAM,GACZ,EAAI,EAAE,MAAM,GAEd,EAAI,IAAI,GACR,EAAI,MAAM,GAER,MAAQ,SAAS,CAAC,CAAC,IAAK,CAAC,EAAG,IAC9B,EAAc,MAAM,OAElB,MAAQ,GAAK,EAAI,EAAI,EAC3B,OAAS,GAAI,EAAG,EAAI,MAAO,EAAE,GAG3B,GAAM,OAAQ,EACR,MAAQ,EACR,MAAQ,EACd,CAAC,EAAG,EAAG,GAAK,OAAO,KAAK,KAEtB,GAAM,QAAS,MAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAI,EAAG,IAClC,MAAQ,KAAK,QACb,IAAM,MAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IAG3B,EAAI,MAAM,QAAQ,IAAK,GAAI,SAAS,CAAC,CAAC,MAAO,SAAS,CAAC,CAAC,MAExD,GAAK,IAAI,IAAK,IAAI,EAAG,QACrB,KAAO,IAAI,OAAQ,IACrB,KAAK,MAAM,KAAO,EACpB,EAAI,MAAM,OAEV,EAAI,OACA,CACE,MACA,MAAM,KAAM,CAAC,EAAG,GAAI,CAAC,KAAK,MAAM,GAAK,EAAG,KAAK,MAAM,MAGrD,GAEN,GAAM,KAAM,IAAI,IAAI,OAAO,EAAG,IAAK,QAG7B,SAAW,MAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAI,EAAG,IACpC,UAAsB,IAAI,IAAK,GAC/B,GAAe,UAAU,GAC/B,GAAI,IAAM,EACR,EAAI,IAAI,SAAU,OAAO,UAAW,OAAO,GAAI,iBAE/C,GAAM,WACF,IAAI,SAAU,OAAO,UAAW,OAAO,GAAI,YAC/C,EAAI,OAAO,CAAC,MAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,WAAY,GAEpD,GAAM,YAAuB,UAAU,WACjC,SAAW,MAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,EAAE,MAAM,GAAK,IACnD,GAAI,IAAM,EACR,EAAI,IAAI,SAAU,OAAO,OAAO,SAAU,GAAI,kBAE9C,GAAM,WACF,IAAI,SAAU,OAAO,OAAO,SAAU,GAAI,aAC9C,EAAI,OAAO,CAAC,MAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IAAK,WAAY,GAEpD,MAAO,CAAC,EAAG,EAAG,KAEhB,QAAQ,CAAC,MAAO,MAAO,QAGzB,MAAI,CAAC,cAAgB,EAAI,GACvB,GAAI,MAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,IACzB,EAAI,MAAM,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,KAGpB,CAAC,EAAG,KAIR,GAAM,IAAK,GAAG,CAAC,MCvLV,UAAZ,AAAA,UAAY,YACV,WAAA,WAAA,KAAA,GAAA,OACA,WAAA,WAAA,KAAA,GAAA,OACA,WAAA,WAAA,IAAA,GAAA,MACA,WAAA,WAAA,uBAAA,GAAA,2BAJU,WAAA,WAAS,KCyBrB,8BACI,QAAsB,QACtB,WAAY,UAAU,wBACxB,GAAM,SAAU,gBAAgB,QAAQ,SAAU,uBAC9C,SAAmB,KACnB,SAAW,MACb,UAAW,gBAAgB,QAAS,UAAW,wBAGjD,GAAM,cAAgB,UAAY,KAAQ,QAAU,IAAI,QAAS,UAEjE,GAAI,aAAc,UAAU,KAC1B,MAAO,cAET,GAAI,aAAc,UAAU,IAC1B,MAAO,MAAI,cAEb,GAAI,aAAc,UAAU,MAC1B,GAAI,UAAY,KACd,MAAO,MAAK,cACP,CACL,GAAM,iBAAkB,QAAQ,KAAO,SAAS,KAC1C,OAAS,IAAI,KAAI,cAAe,KAAI,WAC1C,MAAO,iBAAkB,EAAI,IAAI,OAAQ,OAAO,kBACnB,QAGjC,GAAI,aAAc,UAAU,wBAC1B,GAAI,UAAY,KACd,MAAO,KAAI,KAAI,cAAe,OAAO,QAAQ,OACxC,CACL,GAAM,oBAAqB,IAAI,SAAU,MAAK,QAAQ,QAEhD,YACF,KAAK,KAAI,SAAS,mBAAoB,OAAO,KAAM,WACvD,MAAO,KAAI,KAAI,cAAe,cAIlC,KAAM,OAAM,sBAAsB,cAE7B,GAAM,qBAAsB,GAAG,CAAC,uBCxCvC,6BACI,OAAsB,YACtB,QACA,WAAY,UAAU,wBACxB,GAAM,SAAU,gBAAgB,OAAQ,SAAU,sBAC5C,aACF,gBAAgB,YAAa,cAAe,sBAC5C,SAAmB,KACnB,SAAW,MACb,UAAW,gBAAgB,QAAS,UAAW,uBAEjD,kBACI,QAAQ,MAAO,aAAa,MAAO,iCAEvC,GAAM,SAAS,IAAI,IAAI,QAAS,eAChC,MAAO,qBAAoB,QAAQ,SAAU,YAGxC,GAAM,oBAAqB,GAAG,CAAC,sBChBtC,yBACI,OAAsB,YAA2B,KACjD,QACA,WAAY,UAAU,wBACxB,GAAM,SAAU,gBAAgB,OAAQ,SAAU,kBAC5C,aACF,gBAAgB,YAAa,cAAe,kBAC5C,SAAmB,KACnB,SAAW,MACb,UAAW,gBAAgB,QAAS,UAAW,mBAEjD,kBACI,QAAQ,MAAO,aAAa,MAAO,6BAEvC,GAAM,KAAM,OAAO,GACb,QAAS,IAAI,IAAK,KAAI,IAAI,QAAS,cAAe,KAAM,KAC9D,MAAO,qBAAoB,QAAQ,SAAU,YAExC,GAAM,gBAAiB,GAAG,CAAC,kBCnBlC,oBACI,OAAsB,YACtB,QACA,WAAY,UAAU,wBACxB,GAAI,SAAU,gBAAgB,OAAQ,SAAU,aAC1C,aAAe,gBAAgB,YAAa,cAAe,aAC7D,SAAmB,KACnB,SAAW,MACb,UAAW,gBAAgB,QAAS,UAAW,cAEjD,kBAAkB,QAAQ,MAAO,aAAa,MAAO,wBAErD,GAAM,KAAM,OAAO,GAEnB,QAAU,IAAI,IAAI,OAAO,GAAI,SAAU,KACvC,GAAM,SAAS,KAAK,IAAI,IAAK,IAAI,QAAS,gBAC1C,MAAO,qBAAoB,QAAQ,SAAU,YAExC,GAAM,WAAY,GAAG,CAAC,aCb7B,oBACI,OAAsB,YACtB,QAA6B,MAAQ,EACrC,WAAY,UAAU,wBACxB,GAAM,SAAU,gBAAgB,OAAQ,SAAU,aAC5C,aAAe,gBAAgB,YAAa,cAAe,aAC7D,SAAmB,KACnB,SAAW,MACb,UAAW,gBAAgB,QAAS,UAAW,cAEjD,kBAAkB,QAAQ,MAAO,aAAa,MAAO,wBAErD,GAAM,aAAc,OAAO,OACrB,MAAQ,IAAI,IAAI,aAAc,UAC9B,UAAY,QAAQ,MAAO,aAC3B,OAAS,IAAI,MAAO,WAEpB,QACF,KAAI,IAAI,OAAO,IAAM,OAAO,YAAa,IAAI,YAAa,SAC9D,MAAO,qBAAoB,QAAQ,SAAU,YAExC,GAAM,WAAY,GAAG,CAAC,aCtB7B,kBACI,OAAsB,YACtB,QAA6B,SAAU,KACvC,WAAY,UAAU,wBACxB,GAAM,SAAU,gBAAgB,OAAQ,SAAU,WAC5C,aAAe,gBAAgB,YAAa,cAAe,WAC7D,SAAmB,KACnB,SAAW,MACb,UAAW,gBAAgB,QAAS,UAAW,YAEjD,kBAAkB,QAAQ,MAAO,aAAa,MAAO,sBAErD,GAAM,KAAM,OAAO,GACb,cAAgB,OAAO,UAEvB,IAAK,IAAI,IAAI,QAAS,KAAI,KAAI,aAAc,kBAC5C,IACF,IAAI,IAAI,IAAK,SAAU,KAAI,KAAI,IAAI,IAAK,cAAe,iBACrD,QAAS,IAAI,IAAI,KACvB,MAAO,qBAAoB,QAAQ,SAAU,YAExC,GAAM,SAAU,GAAG,CAAC,WC3B3B,2BACI,OAAsB,YACtB,QACA,WAAY,UAAU,wBACxB,GAAM,SAAU,gBAAgB,OAAQ,SAAU,oBAC5C,aACF,gBAAgB,YAAa,cAAe,oBAC5C,SAAmB,KACnB,SAAW,MACb,UAAW,gBAAgB,QAAS,UAAW,qBAEjD,kBACI,QAAQ,MAAO,aAAa,MAAO,+BAEvC,GAAM,SAAS,kBAAkB,QAAS,cAC1C,MAAO,qBAAoB,QAAQ,SAAU,YAExC,GAAM,kBAAmB,GAAG,CAAC,oBCxBpC,wCACI,OAAsB,QACxB,GAAM,SACF,gBAAgB,OAAQ,SAAU,iCAChC,QACF,gBAAgB,OAAQ,SAAU,iCACtC,kBACI,QAAQ,MAAO,QAAQ,MAAO,4CAsBlC,GAAM,WAAY,KAAK,SACjB,cAAgB,IAAI,QAAS,SAC7B,cAAgB,MAAM,IAAI,IAAI,IAAI,YAExC,MAAO,MAAI,IAAI,UAAW,eAAgB,eAwB5C,8BACI,iBAAgC,OAChC,QAA6B,eAAiB,EAC9C,WAAY,UAAU,wBACxB,GAAI,mBAAoB,gBACpB,iBAAkB,mBAAoB,uBACpC,QAAU,gBAAgB,OAAQ,SAAU,uBAC9C,SAAmB,KAOvB,GANI,SAAW,MACb,UAAW,gBAAgB,QAAS,UAAW,wBAEjD,kBACI,kBAAkB,MAAO,QAAQ,MAAO,kCAExC,eAAiB,GACnB,GAAM,sBAAuB,OAAO,gBAC9B,IAAM,OAAO,GACb,KAAO,OAAO,IAEpB,kBACI,KAAI,IAAI,kBAAmB,IAAI,IAAK,uBAChC,IAAI,KAAM,uBAEpB,GAAM,SAAS,+BAA+B,kBAAmB,SAEjE,MAAO,qBAAoB,QAAQ,SAAU,YAGxC,GAAM,qBAAsB,GAAG,CAAC,uBCzDvC,wCACI,OAAW,OAAW,IAAM,IAK9B,GAJI,MAAQ,IACV,KAAM,OAAO,KAAO,GAGlB,MAAQ,OAAO,KAAO,EACxB,KAAM,OACF,mGACuC,OAAO,oBAC/B,OA6BrB,MAzBI,YAAW,CAAC,QAAgB,QAAgB,QAK1C,GAAM,KAAM,UAAU,QAAQ,CAAC,KADd,IAEX,UAAY,IAAI,KAAK,QAAQ,WAAY,KAC/C,KAAK,CAAC,QAAQ,YAEd,GAAM,YAAa,IAAI,IAAI,UAAW,UAatC,MAAO,CAAC,MAZS,KAAI,WAAY,CAAC,MAYnB,SAVE,CAAC,GAAO,SACvB,GAAM,CAAC,QAAQ,YAAa,MACtB,QAAU,qBAAqB,GAAG,MAAO,CAAC,MAChD,MAAO,CACL,IAAI,QAAQ,GAAI,SACZ,IAAI,KAAK,QAAQ,WAAY,IAAI,cACrC,IAAI,QAAQ,GAAI,SACZ,IAAI,IAAI,YAAY,KAAK,QAAQ,kBAM/B,OAAQ,QAsB1B,8BACI,aAA4B,OAC5B,QAA6B,eAAiB,EAC9C,WAAY,UAAU,wBACxB,GAAI,eACA,gBAAgB,aAAc,eAAgB,uBAC5C,QAAU,gBAAgB,OAAQ,SAAU,uBAC9C,SAAmB,KASvB,GAPI,SAAW,MACb,UAAW,gBAAgB,QAAS,UAAW,wBAGjD,kBACI,cAAc,MAAO,QAAQ,MAAO,kCAEpC,eAAiB,GACnB,GAAM,sBAAuB,OAAO,gBAC9B,IAAM,OAAO,GACb,WAAa,OAAO,cAAc,MAAM,IAE9C,cACI,KAAI,IAAI,cAAe,IAAI,IAAK,uBAC5B,IAAI,qBAAsB,aAGpC,GAAM,SAAS,+BAA+B,cAAe,SAE7D,MAAO,qBAAoB,QAAQ,SAAU,YAGxC,GAAM,qBAAsB,GAAG,CAAC,uBC+DjC,SAAW,CACf,IACA,KACA,KACA,OASI,OAAS,CACb,cACA,WACA,MACA,MAeI,MAAQ,CACZ,cACA,sBACA,eACA,iBACA,cACA,kBACA,uBACA,2BACA,gCACA,wBACA,8BAOI,OAAS,CACb,SACA,YACA,IAaI,OAAS,CACb,mBACA,oBACA,eACA,UACA,UACA,QACA,iBACA,oBACA,qBCrSF,UAAA,aAyCwC,cAiBtC,SAAS,EAAiB,WAAa,GAAO,SAE5C,GAAM,CAAC,MAAO,MAAA,QAAS,KAAK,iBAAiB,EAAG,SAEhD,GAAI,SAAW,MACb,GAAM,WACF,QAAQ,IAAI,GAAM,EAAC,KAAM,EAAE,KAAM,OAAQ,OAAM,EAAE,SACrD,KAAK,eAAe,eAEpB,MAAK,eAAe,QAMtB,MAFA,SAAQ,QAEJ,WACK,MAEP,OAAM,UACC,SAOP,cACF,MAAI,MAAK,aAAe,MACtB,MAAK,YAAc,GAEd,KAAK,YAGJ,sBACR,KAAK,YAAc,KAAK,WAAa,EAgBvC,iBAAiB,EAAiB,SAEhC,MAAO,eAAc,EAAG,SAgB1B,UACM,KAAK,aAAe,MACtB,QAAQ,KAAK,kBAIX,kBACJ,MAAI,MAAK,aAAe,MACtB,MAAK,YAAc,GAEd,CACL,KAAM,OAEN,OAAQ,OAAO,KAAK,YAAa,eAI/B,cACJ,KAAM,IAAI,OAAM,gEAGZ,YAAW,cACf,KAAM,IAAI,OACN,4DACG,KAAK,uBAUE,mBAAkB,cAEhC,MAAA,MAAK,YAAe,MAAM,cAAa,GAAG,OAAO,QAAQ,GAClD,aAAa,MAAM,KAI9B,OAAO,eAAe,UAAW,OAAO,YAAa,CACnD,MAAQ,UACC,SAAS,UAAY,MAAQ,SAAS,kBAAoB,MAC7D,SAAS,gBAAkB,OC1KnC,GAAA,mBAAA,aA+BuC,WAMrC,YACc,aAAgC,IAChC,SAAkB,MAC9B,QAFY,KAAA,aAAA,aAAgC,KAAA,IAAA,IAChC,KAAA,QAAA,SALN,KAAA,iBAAwC,GACxC,KAAA,mBAA0C,GAO5C,UAAW,MACb,MAAK,QAAU,OAAO,QAAQ,WAIlC,eAAe,mBACS,AAAA,OAAM,QAAQ,mBAChC,kBAAkB,IAAI,MAAQ,KAAK,MACnC,OAAO,KAAK,oBAEF,QAAQ,CAAC,KAAM,KAC3B,GAAM,OAAQ,OAAO,oBAAoB,MACnC,UAAY,GACd,KAAK,iBAAiB,IAAM,MAC9B,MAAK,iBAAiB,GAAK,CACzB,aAAc,GAAG,kBACjB,SAAU,KAAK,IAAM,UAAU,OAAO,SAAS,cAG/C,KAAK,mBAAmB,IAAM,MAChC,MAAK,mBAAmB,GAAK,CAC3B,aAAc,GAAG,iBACjB,SAAU,KAAK,IAAM,UAAU,OAAO,SAAS,cAInD,GAAM,UAAW,MAAM,QAAQ,mBAC3B,kBAAkB,GAAG,OACrB,kBAAkB,MACtB,GAAI,UAAY,KACd,OAGF,GAAM,iBAAkB,KAAK,iBAAiB,GAAG,SAC3C,kBAAoB,KAAK,mBAAmB,GAAG,SAErD,KAAK,KACH,GAAM,oBACF,KAAI,IAAI,gBAAiB,KAAK,KAC1B,IAAI,OAAO,UAAW,EAAI,KAAK,MAEjC,QACF,IAAI,IAAI,KAAK,KAAI,kBAAmB,KAAK,UACjC,KAAK,KAAI,gBAAiB,KAAK,WACnC,UAEF,qBACF,KAAI,IAAI,kBAAmB,KAAK,KAC5B,IAAI,OAAO,SAAU,EAAI,KAAK,MAEtC,gBAAgB,OAAO,oBACvB,kBAAkB,OAAO,sBAEzB,GAAM,UAAW,KAAI,IAAI,QAAS,CAAC,KAAK,cAAe,OACvD,MAAM,OAAO,cAGjB,KAAK,sBAGP,UACM,KAAK,oBAAsB,MAC7B,SAAQ,KAAK,iBAAiB,IAAI,GAAK,EAAE,WACzC,QAAQ,KAAK,mBAAmB,IAAI,GAAK,EAAE,iBAIzC,cAEJ,GAAM,WACF,CAAC,GAAG,KAAK,iBAAkB,GAAG,KAAK,oBACvC,MAAO,CAAC,KAAM,MAAK,kBAAkB,OACjC,UAAU,IAAI,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGrD,YAAW,cACf,aAAe,KAAM,MAAK,kBAAkB,cAC5C,GAAM,eAAgB,aAAa,OAAS,EACtC,UAAY,GAClB,KAAK,iBACD,aAAa,MAAM,EAAG,eAAe,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SACf,cAEnD,KAAK,mBACD,aAAa,MAAM,cAAe,cAAgB,GAC7C,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,cAI7C,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,IAAO,KAAK,IACZ,QAAW,KAAK,eAKb,YACH,IAAiC,SACnC,MAAO,IAAI,KAAI,QAAO,aAAiB,QAAO,IAAQ,QAAO,WAjHxD,kBAAA,UAAY,WAoHrB,cAAc,mBCrJd,GAAA,kBAAA,aA+BsC,WAMpC,YACc,aAA8B,wBAA0B,IACpE,QADY,KAAA,aAAA,aAA8B,KAAA,wBAAA,wBAHpC,KAAA,iBAAwC,GAOhD,eAAe,mBACS,AAAA,OAAM,QAAQ,mBAChC,kBAAkB,IAAI,MAAQ,KAAK,MACnC,OAAO,KAAK,oBAEF,QAAQ,CAAC,KAAM,KAC3B,GAAM,OAAQ,OAAO,oBAAoB,MACzC,GAAI,KAAK,iBAAiB,IAAM,MAC9B,GAAM,WAAY,GAClB,KAAK,iBAAiB,GAAK,CACzB,aAAc,GAAG,mBACjB,SAAU,KACN,IAAM,KAAK,MAAM,MAAO,KAAK,yBAClB,SAAS,aAI5B,GAAM,UAAW,MAAM,QAAQ,mBAC3B,kBAAkB,GAAG,OACrB,kBAAkB,MACtB,GAAI,UAAY,KACd,OAGF,GAAM,iBAAkB,KAAK,iBAAiB,GAAG,SAEjD,KAAK,KACH,GAAM,oBAAqB,KAAI,gBAAiB,OAAO,WACvD,gBAAgB,OAAO,oBAEvB,GAAM,UAAW,KACb,IAAI,IAAI,SACA,KAAK,KAAI,mBAAoB,OAAO,QAAQ,aAChD,CAAC,KAAK,cACV,OACJ,MAAM,OAAO,cAGjB,KAAK,sBAGP,UACM,KAAK,kBAAoB,MAC3B,QAAQ,KAAK,iBAAiB,IAAI,GAAK,EAAE,gBAIvC,cAEJ,MAAO,CAAC,KAAM,MAAK,kBAAkB,OAAO,KAAK,iBAAiB,IAC9D,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGvC,YAAW,cACf,aAAe,KAAM,MAAK,kBAAkB,cAC5C,GAAM,WAAY,GAClB,KAAK,iBAAmB,aAAa,IACjC,GAAM,EAAC,aAAc,EAAE,KAAM,SAAU,EAAE,OAAO,SAAS,cAG/D,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,wBAA2B,KAAK,+BAK7B,YACH,IAAiC,SACnC,MAAO,IAAI,KAAI,QAAO,aAAiB,QAAO,2BA/EzC,iBAAA,UAAY,UAkFrB,cAAc,kBCnHd,GAAA,eAAA,aAkCmC,WASjC,YACc,aAAgC,MAChC,MAAyB,SAAkB,MACvD,QAFY,KAAA,aAAA,aAAgC,KAAA,MAAA,MAChC,KAAA,MAAA,MAAyB,KAAA,QAAA,SAL/B,KAAA,uBAA8C,GAC9C,KAAA,wBAA+C,GAMrD,KAAK,KAEH,KAAK,SAAW,OAAO,OAAO,WAC9B,KAAK,SAAW,OAAO,OAAO,aAG5B,UAAW,MACb,MAAK,QAAU,OAAO,QAAQ,WAIlC,eAAe,mBACb,GAAM,UAAW,MAAM,QAAQ,mBAC3B,kBAAkB,IAAI,GAAK,EAAE,MAC7B,OAAO,KAAK,mBAChB,KAAK,KACH,GAAM,kBAAmB,IAAI,EAAG,KAAK,UAC/B,iBAAmB,IAAI,EAAG,KAAK,UAErC,SAAS,QAAQ,CAAC,KAAM,KACtB,GAAM,OAAQ,OAAO,oBAAoB,MACnC,UAAY,GACd,KAAK,uBAAuB,IAAM,MACpC,MAAK,uBAAuB,GAAK,CAC/B,aAAc,GAAG,SACjB,SAAU,KAAK,IAAM,UAAU,OAAO,SAAS,cAG/C,KAAK,wBAAwB,IAAM,MACrC,MAAK,wBAAwB,GAAK,CAChC,aAAc,GAAG,SACjB,SAAU,KAAK,IAAM,UAAU,OAAO,SAAS,cAInD,GAAM,UAAW,MAAM,QAAQ,mBAC3B,kBAAkB,GAAG,OACrB,kBAAkB,MACtB,GAAI,UAAY,KACd,OAGF,GAAM,aAAc,KAAK,uBAAuB,GAAG,SAC7C,aAAe,KAAK,wBAAwB,GAAG,SAE/C,eACF,KAAI,IAAI,YAAa,KAAK,OAAQ,IAAI,SAAU,EAAI,KAAK,QACvD,gBACF,KAAI,IAAI,aAAc,KAAK,OACvB,IAAI,OAAO,UAAW,EAAI,KAAK,QAEjC,yBAA2B,IAAI,eAAgB,kBAC/C,0BACF,IAAI,gBAAiB,kBAEzB,YAAY,OAAO,gBACnB,aAAa,OAAO,iBAEpB,GAAM,UACF,KAAI,IAAI,IAAI,yBACA,KAAI,KAAK,2BAA4B,KAAK,UAC9C,CAAC,KAAK,cACV,OACR,MAAM,OAAO,YAGf,KAAK,SAAS,OAAO,IAAI,KAAK,SAAU,KAAK,QAC7C,KAAK,SAAS,OAAO,IAAI,KAAK,SAAU,KAAK,UAE/C,KAAK,sBAGP,UACE,KAAK,SAAS,UACd,KAAK,SAAS,UAEV,KAAK,wBAA0B,MACjC,QAAQ,KAAK,uBAAuB,IAAI,GAAK,EAAE,WAE7C,KAAK,yBAA2B,MAClC,QAAQ,KAAK,wBAAwB,IAAI,GAAK,EAAE,gBAI9C,cAEJ,GAAM,WACF,CAAC,GAAG,KAAK,uBAAwB,GAAG,KAAK,yBAC7C,MAAO,CAAC,KAAM,MAAK,kBAAkB,OACjC,UAAU,IAAI,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGrD,YAAW,cACf,aAAe,KAAM,MAAK,kBAAkB,cAC5C,KAAK,KACH,KAAK,SAAS,OAAO,IAAI,KAAK,MAAO,KAAK,YAAc,IACxD,KAAK,SAAS,OAAO,IAAI,KAAK,MAAO,KAAK,YAAc,MAG1D,GAAM,eAAgB,aAAa,OAAS,EACtC,UAAY,GAClB,KAAK,uBACD,aAAa,MAAM,EAAG,eAAe,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SACf,cAEnD,KAAK,wBACD,aAAa,MAAM,cAAe,cAAgB,GAC7C,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,cAI7C,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,MAAS,KAAK,MACd,MAAS,KAAK,MACd,QAAW,KAAK,eAKb,YACH,IAAiC,SACnC,MAAO,IAAI,KACP,QAAO,aAAiB,QAAO,MAAU,QAAO,MAChD,QAAO,WA5IN,cAAA,UAAY,OA+IrB,cAAc,eCnLd,GAAA,iBAAA,aAiCqC,WASnC,YACc,aAAgC,MAChC,MAAyB,SAAkB,KAC3C,MAAQ,GACpB,QAHY,KAAA,aAAA,aAAgC,KAAA,MAAA,MAChC,KAAA,MAAA,MAAyB,KAAA,QAAA,SACzB,KAAA,MAAA,MANN,KAAA,uBAA8C,GAC9C,KAAA,2BAAkD,GAQxD,KAAK,KACH,KAAK,UAAY,OAAO,GAAG,WAC3B,KAAK,SAAW,OAAO,OAAO,aAG5B,UAAW,MACb,MAAK,QAAU,OAAO,QAAQ,WAIlC,eAAe,mBACb,GAAM,eAAgB,MAAM,QAAQ,mBAChC,kBAAkB,IAAI,MAAQ,KAAK,MACnC,OAAO,KAAK,mBAEhB,KAAK,KACH,GAAM,kBAAmB,IAAI,EAAG,KAAK,UAC/B,GACF,IAAI,CAAC,KAAK,aAAc,KAAI,IAAI,KAAK,UAAW,KAAK,OAAQ,IAEjE,cAAc,QAAQ,CAAC,KAAM,KAC3B,GAAM,OAAQ,OAAO,oBAAoB,MACnC,UAAY,GACd,KAAK,uBAAuB,IAAM,MACpC,MAAK,uBAAuB,GAAK,CAC/B,aAAc,GAAG,SACjB,SAAU,UAAU,OAAO,SAAS,aAGpC,KAAK,2BAA2B,IAAM,MACxC,MAAK,2BAA2B,GAAK,CACnC,aAAc,GAAG,SACjB,SAAU,UAAU,OAAO,SAAS,aAIxC,GAAM,UAAW,MAAM,QAAQ,mBAC3B,kBAAkB,GAAG,OACrB,kBAAkB,MACtB,GAAI,UAAY,KACd,OAGF,GAAM,aAAc,KAAK,uBAAuB,GAAG,SAC7C,gBAAkB,KAAK,2BAA2B,GAAG,SAErD,eACF,KAAI,IAAI,YAAa,KAAK,OAAQ,IAAI,SAAU,EAAI,KAAK,QAEvD,IAAM,IAAI,gBAAiB,KAAK,OAChC,IAAM,IAAI,UAEV,mBAAqB,QAAQ,IAAK,KAExC,YAAY,OAAO,gBACnB,gBAAgB,OAAO,oBAEvB,GAAM,UACF,KAAI,IAAI,IAAI,GAAI,kBACR,IAAI,eAAgB,KAAI,mBAAoB,KAAK,WACrD,OAER,MAAM,OAAO,YAGf,KAAK,UAAU,OAAO,KAAI,KAAK,UAAW,IAC1C,KAAK,SAAS,OAAO,IAAI,KAAK,SAAU,KAAK,UAE/C,KAAK,sBAGP,UACE,KAAK,SAAS,UACd,KAAK,UAAU,UAEX,KAAK,wBAA0B,MACjC,QAAQ,KAAK,uBAAuB,IAAI,GAAK,EAAE,WAE7C,KAAK,4BAA8B,MACrC,QAAQ,KAAK,2BAA2B,IAAI,GAAK,EAAE,gBAIjD,cACJ,KAAM,IAAI,OAAM,wDAGZ,YAAW,cACf,KAAM,IAAI,OAAM,mDAGlB,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,MAAS,KAAK,MACd,MAAS,KAAK,MACd,QAAW,KAAK,QAChB,MAAS,KAAK,aAKX,YACH,IAAiC,SACnC,MAAO,IAAI,KACP,QAAO,aAAiB,QAAO,MAAU,QAAO,MAChD,QAAO,QAAY,QAAO,SAvHzB,gBAAA,UAAY,SA0HrB,cAAc,iBC7Jd,GAAA,cAAA,aA6BkC,WAKhC,YAAsB,cACpB,QADoB,KAAA,aAAA,aAEpB,KAAK,gBAAgB,cAGvB,eAAe,mBACI,AAAA,OAAM,QAAQ,mBAC3B,kBAAkB,IAAI,GAAK,EAAE,MAC7B,OAAO,KAAK,oBACP,QAAQ,CAAC,KAAM,KACtB,GAAM,UAAW,MAAM,QAAQ,mBAC3B,kBAAkB,GAAG,OACrB,kBAAkB,MACtB,GAAI,UAAY,KACd,OAEF,GAAM,OAAQ,OAAO,oBAAoB,MACzC,KAAK,KACH,GAAM,UAAW,KAAI,IAAI,KAAK,EAAG,UAAW,OAC5C,MAAM,OAAO,cAGjB,KAAK,sBAMP,gBAAgB,cACd,KAAK,aAAe,aAChB,KAAK,GAAK,MACZ,KAAK,EAAE,UAET,KAAK,EAAI,KAAK,OAAO,CAAC,eAGxB,UACE,KAAK,EAAE,eAGH,cACJ,MAAO,CAAC,KAAM,MAAK,uBAGf,YAAW,cAEf,GADA,aAAe,KAAM,MAAK,kBAAkB,cACxC,aAAa,SAAW,EAC1B,KAAM,IAAI,OAAM,iDAIpB,YACE,MAAO,CAAC,aAAgB,KAAK,oBAIxB,YACH,IAAiC,SACnC,MAAO,IAAI,KAAI,QAAO,gBA7DjB,aAAA,UAAY,MAgErB,cAAc,cC/Fd,GAAA,mBAAA,aA+BuC,cAMrC,YACc,aAA8B,SAChC,YAAc,IACxB,MAAM,cAFM,KAAA,aAAA,aAA8B,KAAA,SAAA,SAChC,KAAA,YAAA,YAJJ,KAAA,cAAqC,GAM3C,KAAK,EAAI,OAAO,KAAK,UAGvB,eAAe,mBACS,AAAA,OAAM,QAAQ,mBAChC,kBAAkB,IAAI,MAAQ,KAAK,MACnC,OAAO,KAAK,oBAEF,QAAQ,CAAC,KAAM,KAC3B,GAAM,OAAQ,OAAO,oBAAoB,MACzC,GAAI,KAAK,cAAc,IAAM,MAC3B,GAAM,WAAY,GAClB,KAAK,cAAc,GAAK,CACtB,aAAc,GAAG,gBACjB,SAAU,KAAK,IAAM,UAAU,OAAO,SAAS,aAInD,GAAM,cAAe,KAAK,cAAc,GAAG,SACrC,SAAW,MAAM,QAAQ,mBAC3B,kBAAkB,GAAG,OACrB,kBAAkB,MAClB,UAAY,MAIhB,KAAK,KACH,GAAI,UACE,gBAAkB,KAAI,IAAI,KAAK,EAAG,cAAe,UACnD,KAAK,YACP,SAAW,KACP,IAAI,KAAK,EAAG,KAAI,SAAU,IAAI,gBAAiB,KAAK,KAAM,OAE9D,SAAW,KAAI,IAAI,KAAK,EAAG,iBAAkB,OAE/C,aAAa,OAAO,iBACpB,MAAM,OAAO,cAGjB,KAAK,sBAGP,UACE,KAAK,EAAE,UACH,KAAK,eAAiB,MACxB,QAAQ,KAAK,cAAc,IAAI,GAAK,EAAE,WAS1C,YAAY,UACV,KAAK,SAAW,cAGZ,cAEJ,MAAO,CAAC,KAAM,MAAK,kBAAkB,OAAO,KAAK,cAAc,IAC3D,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGvC,YAAW,cACf,aAAe,KAAM,MAAK,kBAAkB,cAC5C,GAAM,WAAY,GAClB,KAAK,cAAgB,aAAa,IAC9B,GAAM,EAAC,aAAc,EAAE,KAAM,SAAU,EAAE,OAAO,SAAS,cAG/D,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,SAAY,KAAK,SACjB,YAAe,KAAK,mBAKjB,YACH,IAAiC,SACnC,MAAO,IAAI,KACP,QAAO,aAAiB,QAAO,SAAa,QAAO,eA3FlD,kBAAA,UAAY,WA8FrB,cAAc,mBC/Hd,GAAA,kBAAA,aAgCsC,WASpC,YACc,aAAgC,MAAQ,GACxC,SAAW,EAAe,SAAkB,KACtD,SAAW,IACb,QAOA,GAVY,KAAA,aAAA,aAAgC,KAAA,MAAA,MAChC,KAAA,SAAA,SAA0B,KAAA,QAAA,SANhC,KAAA,uBAA8C,GAC9C,KAAA,mBAA0C,GAC1C,KAAA,qBAA4C,GAQlD,KAAK,SAAW,SAEZ,UAAW,MACb,MAAK,QAAU,OAAO,QAAQ,WAE5B,cAAgB,KAClB,KAAM,IAAI,OAAM,sDAIpB,eAAe,mBACS,AAAA,OAAM,QAAQ,mBAChC,kBAAkB,IAAI,MAAQ,KAAK,MACnC,OAAO,KAAK,oBAEF,QAAQ,CAAC,KAAM,KAC3B,GAAM,OAAQ,OAAO,oBAAoB,MACnC,UAAY,GACd,KAAK,uBAAuB,IAAM,MACpC,MAAK,uBAAuB,GAAK,CAC/B,aAAc,GAAG,WACjB,SAAU,KAAK,IAAM,UAAU,OAAO,SAAS,cAG/C,KAAK,mBAAmB,IAAM,MAChC,MAAK,mBAAmB,GAAK,CAC3B,aAAc,GAAG,gBACjB,SAAU,KAAK,IAAM,UAAU,OAAO,SAAS,cAG/C,KAAK,qBAAqB,IAAM,MAAQ,KAAK,UAC/C,MAAK,qBAAqB,GAAK,CAC7B,aAAc,GAAG,UACjB,SAAU,KAAK,IAAM,UAAU,OAAO,SAAS,cAInD,GAAM,UAAW,MAAM,QAAQ,mBAC3B,kBAAkB,GAAG,OACrB,kBAAkB,MACtB,GAAI,UAAY,KACd,OAGF,GAAM,uBAAwB,KAAK,uBAAuB,GAAG,SACvD,mBAAqB,KAAK,mBAAmB,GAAG,SACtD,KAAK,KACH,GAAM,0BACF,KAAI,IAAI,sBAAuB,KAAK,OAChC,IAAI,OAAO,UAAW,EAAI,KAAK,QAEvC,GAAI,KAAK,UACP,GAAM,qBAAsB,KAAK,qBAAqB,GAAG,SAEnD,uBACF,KAAI,IAAI,oBAAqB,KAAK,OAC9B,IAAI,SAAU,EAAI,KAAK,QAEzB,iBACF,IAAI,IAAI,SAAU,KAAK,cACnB,KACI,IAAI,yBACA,KAAI,OAAO,wBAAyB,KAAK,YACnD,sBACF,KAAI,IAAI,mBAAoB,KAAK,UAAW,kBAEhD,sBAAsB,OAAO,0BAC7B,oBAAoB,OAAO,wBAC3B,mBAAmB,OAAO,uBAE1B,GAAM,UAAW,IAAI,MAAO,uBAC5B,MAAM,OAAO,eAGb,GAAM,2BACF,KAAI,IAAI,sBAAuB,KAAK,OAChC,IAAI,OAAO,UAAW,EAAI,KAAK,QAEjC,sBACF,KAAI,IAAI,mBAAoB,KAAK,UAC7B,IAAI,IAAI,SAAU,KAAK,cACnB,KAAK,KAAI,0BAA0B,KAAK,YAEpD,sBAAsB,OAAO,2BAC7B,mBAAmB,OAAO,uBAE1B,GAAM,UAAW,IAAI,MAAO,uBAC5B,MAAM,OAAO,eAInB,KAAK,sBAGP,UACM,KAAK,wBAA0B,MACjC,QAAQ,KAAK,uBAAuB,IAAI,GAAK,EAAE,WAE7C,KAAK,sBAAwB,MAAQ,KAAK,UAC5C,QAAQ,KAAK,qBAAqB,IAAI,GAAK,EAAE,WAE3C,KAAK,oBAAsB,MAC7B,QAAQ,KAAK,mBAAmB,IAAI,GAAK,EAAE,gBAIzC,cAEJ,GAAM,WACF,CAAC,GAAG,KAAK,uBAAwB,GAAG,KAAK,oBAC7C,MAAI,MAAK,UACP,UAAU,KAAK,GAAG,KAAK,sBAElB,CAAC,KAAM,MAAK,kBAAkB,OACjC,UAAU,IAAI,GAAM,EAAC,KAAM,EAAE,aAAc,OAAQ,EAAE,kBAGrD,YAAW,cACf,aAAe,KAAM,MAAK,kBAAkB,cAC5C,GAAM,eACF,KAAK,SAAW,aAAa,OAAS,EAAI,aAAa,OAAS,EAC9D,UAAY,GAClB,KAAK,uBACD,aAAa,MAAM,EAAG,eAAe,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SACf,cAEnD,KAAK,mBACD,aAAa,MAAM,cAAe,cAAgB,GAC7C,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,cAEvC,KAAK,UACP,MAAK,qBACD,aAAa,MAAM,cAAgB,EAAG,cAAgB,GACjD,IAAI,GAAM,EACJ,aAAc,EAAE,KAChB,SAAU,EAAE,OAAO,SAAS,eAK/C,YACE,MAAO,CACL,aAAgB,KAAK,aACrB,MAAS,KAAK,MACd,SAAY,KAAK,SACjB,QAAW,KAAK,QAChB,SAAY,KAAK,gBAKd,YACH,IAAiC,SACnC,MAAO,IAAI,KACP,QAAO,aAAiB,QAAO,MAAU,QAAO,SAChD,QAAO,QAAY,QAAO,YA5KzB,iBAAA,UAAY,UA+KrB,cAAc,kBCjNd,GAAA,uBAAA,YA+DS,KAAI,cACT,MAAO,IAAI,cAAa,oBAkBnB,UAAS,aAAsB,SAAkB,YAAc,IAEpE,MAAO,IAAI,mBAAkB,aAAc,SAAU,mBAuBhD,SACH,aAAsB,MAAQ,GAAI,SAAW,EAAK,SAAkB,KACpE,SAAW,IACb,MAAO,IAAI,kBACP,aAAc,MAAO,SAAU,SAAS,gBAevC,MACH,aAAe,KAAO,MAAQ,GAAK,MAAQ,KAC3C,SAAkB,MACpB,MAAO,IAAI,eAAc,aAAc,MAAO,MAAO,gBAehD,UAAS,aAAe,KAAM,IAAM,IAAK,SAAkB,MAEhE,MAAO,IAAI,mBAAkB,aAAc,IAAK,gBAgB3C,QACH,aAAe,KAAO,MAAQ,GAAK,MAAQ,KAAO,SAAkB,KACpE,MAAQ,GACV,MAAO,IAAI,iBAAgB,aAAc,MAAO,MAAO,SAAS,aAmB3D,SAAQ,aAAsB,wBAA0B,IAE7D,MAAO,IAAI,kBAAiB,aAAc,2BC3JjC,MAAQ,CACnB,IAAK,sBAAsB,IAC3B,SAAU,sBAAsB,SAChC,SAAU,sBAAsB,SAChC,QAAS,sBAAsB,QAC/B,QAAS,sBAAsB,QAC/B,OAAQ,sBAAsB,OAC9B,KAAM,sBAAsB,MCrBxB,cAA2B,KAC3B,MAAO,wBAA0B,YAC5B,sBACE,MAAO,eAAiB,YAC1B,aAED,GAAgB,OAa1B,qBACE,MAAO,IAAI,SAAc,SAAW,cAAc,IAAM,YCrC1D,GAAA,sBAAA,GAAA,UAAA,qBAAA,CAAA,OAAA,IAAA,OAAA,OAAA,IAAA,OAAA,OAAA,IAAA,OAAA,OAAA,IAAA,OAAA,OAAA,IAAA,OAAA,MAAA,IAAA,MAAA,sBAAA,IAAA,sBAAA,WAAA,IAAA,WAAA,gBAAA,IAAA,gBAAA,gBAAA,IAAA,gBAAA,2BAAA,IAAA,2BAAA,2BAAA,IAAA,2BAAA,uBAAA,IAAA,uBAAA,mBAAA,IAAA,mBAAA,qBAAA,IAAA,qBAAA,gBAAA,IAAA,gBAAA,WAAA,IAAA,WAAA,iBAAA,IAAA,iBAAA,qBAAA,IAAA,qBAAA,oBAAA,IAAA,oBAAA,kBAAA,IAAA,kBAAA,kBAAA,IAAA,kBAAA,kBAAA,IAAA,kBAAA,sBAAA,IAAA,sBAAA,yBAAA,IAAA,yBAAA,0BAAA,IAAA,0BAAA,gBAAA,IAAA,iBAAA,kBAAA,IAAA,kBAAA,kBAAA,IAAA,kBAAA,wBAAA,IAAA,wBAAA,+BAAA,IAAA,+BAAA,qBAAA,IAAA,qBAAA,SAAA,IAAA,SAAA,UAAA,IAAA,UAAA,uBAAA,IAAA,uBAAA,uBAAA,IAAA,uBAAA,mBAAA,IAAA,mBAAA,iBAAA,IAAA,iBAAA,oBAAA,IAAA,oBAAA,qBAAA,IAAA,qBAAA,qBAAA,IAAA,qBAAA,eAAA,IAAA,eAAA,iBAAA,IAAA,iBAAA,YAAA,IAAA,YAAA,iBAAA,IAAA,iBAAA,YAAA,IAAA,YAAA,oBAAA,IAAA,oBAAA,oBAAA,IAAA,oBAAA,aAAA,IAAA,aAAA,uBAAA,IAAA,uBAAA,IAAA,IAAA,MAAA,uBAAA,IAAA,uBAAA,mBAAA,IAAA,mBAAA,iBAAA,IAAA,iBAAA,cAAA,IAAA,cAAA,aAAA,IAAA,qBAAA,WAAA,IAAA,WAAA,WAAA,IAAA,mBAAA,uBAAA,IAAA,uBAAA,kBAAA,IAAA,kBAAA,WAAA,IAAA,WAAA,cAAA,IAAA,cAAA,oBAAA,IAAA,oBAAA,KAAA,IAAA,OCmBM,gCAAiC,OAAoB,MACzD,GAAM,MAAO,OAAO,GAAG,OACvB,OAAO,QAAQ,CAAC,MAAO,KAChB,OACD,MAAM,SAAW,KACjB,IACI,kBAAkB,0BAA0B,gDAChB,WAGjC,OACD,MAAQ,GAAK,KAAO,KACpB,IAAM,kBAAkB,qCAAqC,KAAO,MAExE,GAAM,YAAa,OAAO,GAC1B,OAAO,QAAQ,CAAC,MAAO,KACrB,OAAS,GAAI,EAAG,EAAI,KAAM,IACnB,OACA,IAAM,MAAU,MAAM,KAAO,WAAW,GACzC,IAAM,kBAAkB,2BAA2B,OAAO,gDACb,+CACN,QAK3C,0BAA0B,OAAoB,MAClD,GAAM,aAAc,OAAO,GAAG,QAC9B,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,YAAY,OAAS,OAAO,GAAG,MAEjC,MAAO,aC3BF,GAAM,uBAAwB,GAS/B,kCAAmC,QACvC,MAAI,SAAU,sBACL,OAEF,eAAe,OAAQ,KAAK,MAAM,KAAK,KAAK,UClB/C,wBACF,OAAiC,YACjC,YACF,GAAM,SACF,WAAc,OAAO,SAAW,SAAW,OAAS,OAAO,IACzD,QACF,YAAe,OAAO,SAAW,SAAW,OAAS,OAAO,IAChE,MAAO,CAAC,QAAS,SCAb,qBACF,WAAsB,WAAsB,MAC5C,aAAe,IACjB,GAAI,UAAqB,GACzB,GAAI,aACF,SAAW,SAAS,OAAO,WAAW,MAAM,IAC5C,SAAS,KAAK,WAAW,GAAK,OAC9B,SAAW,SAAS,OAAO,WAAW,MAAM,SAE5C,SAAW,SAAS,OAAO,WAAW,IACtC,GAAM,eAAgB,WAAW,OACjC,OAAS,GAAI,EAAG,EAAI,cAAe,EAAE,EACnC,SACI,SAAS,OAAO,CAAC,WAAW,EAAI,GAAK,WAAW,GAAI,WAAW,KAErE,SAAW,SAAS,OAAO,WAAW,MAAM,cAAgB,IAE9D,MAAO,UAYH,qBACF,aAAsB,eACtB,aAAe,IACjB,GAAM,UAAW,GACjB,GAAI,cACF,SAAS,KAAK,gBACd,OAAS,GAAI,eAAiB,EAAG,EAAI,aAAc,EAAE,EAC/C,GAAK,EAAI,eACX,UAAS,KAAK,GACd,SAAS,KAAK,EAAK,gBAAiB,KAEpC,SAAS,KAAK,QAIlB,GAAM,qBAAsB,GACtB,mBAAqB,GAC3B,OAAS,GAAI,EAAG,EAAI,aAAc,EAAE,EAC9B,GAAK,eAAiB,EAAI,GAAK,EAAI,GAAM,EAC3C,mBAAmB,KAAK,GAExB,oBAAoB,KAAK,GAG7B,SAAS,KAAK,GAAG,qBACjB,SAAS,KAAK,GACd,SAAS,KAAK,GAAG,oBAEnB,MAAO,UAYH,6BACF,WAAsB,WAAsB,MAC5C,aAAe,IACjB,GAAM,kBAAmB,GAErB,aACF,iBAAiB,KAAK,WAAW,GAAK,OAEtC,iBAAiB,KAAK,WAAW,GAAK,OAGxC,OAAS,GAAI,EAAG,EAAI,WAAW,OAAQ,EAAE,EACnC,GAAK,WAAW,OACd,aACF,iBAAiB,KAAK,WAAW,EAAI,GAAK,WAAW,IAErD,iBAAiB,KAAK,WAAW,GAAK,WAAW,EAAI,IAGvD,iBAAiB,KAAK,WAAW,IAIrC,MAAO,kBAOH,6BACF,MAAmB,YACrB,GAAM,kBAAmB,CAAC,GAC1B,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,EAChC,iBAAiB,KAAK,MAAM,GAAG,IAEjC,MAAO,kBAcH,sBACF,eAA0B,MAAmB,YAC/C,GAAM,WAAY,eAAe,MAAM,EAAG,GAC1C,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,EAChC,UAAU,KAAK,eAAe,EAAI,GAAK,MAAM,GAAG,GAAK,MAAM,GAAG,IAGhE,MAAO,WCtIF,GAAM,iBAAkB,mBAClB,WAAa,mBCDb,MAAQ,SACR,OAAS,WACT,OAAS,YACT,OAAS,YACT,OAAS,aACT,OAAS,YCHhB,iBAAkB,KACjB,MAAM,QAAQ,YACjB,QAAQ,KAAK,GAAG,KAId,kBAAiB,KAChB,MAAM,QAAQ,YACjB,QAAQ,IAAI,GAAG,KCKb,gCACF,MAAoB,OACtB,GAAI,MAAK,SAAW,MAAK,OACvB,KAAM,IAAI,OACN,gEACG,MAAK,iBAAiB,MAAK,WAEpC,GAAM,QAAS,GAAI,cAAa,MAAK,OAAS,GAC9C,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,GAAK,EACtC,OAAO,GAAK,MAAK,EAAI,GACrB,OAAO,EAAI,GAAK,MAAK,EAAI,GAE3B,MAAO,QAiBH,gCAAiC,UAErC,GAAM,OAAO,GAAI,cAAa,SAAQ,OAAS,GACzC,MAAO,GAAI,cAAa,SAAQ,OAAS,GAC/C,OAAS,GAAI,EAAG,EAAI,SAAQ,OAAQ,GAAK,EACvC,MAAK,EAAI,GAAK,SAAQ,GACtB,MAAK,EAAI,GAAK,SAAQ,EAAI,GAE5B,MAAO,CAAC,KAAA,MAAM,KAAA,OAOV,8BAA+B,UAEnC,GAAM,KAAM,KAAK,KAAK,SAAQ,OAAS,GACjC,MAAO,GAAI,cAAa,KACxB,MAAO,GAAI,cAAa,KAC9B,OAAS,GAAI,EAAG,EAAI,SAAQ,OAAQ,GAAK,EACvC,MAAK,KAAK,MAAM,EAAI,IAAM,SAAQ,GAClC,MAAK,KAAK,MAAM,EAAI,IAAM,SAAQ,EAAI,GAExC,MAAO,CAAC,KAAA,MAAM,KAAA,OAOV,6BAA8B,UAElC,GAAM,KAAM,KAAK,MAAM,SAAQ,OAAS,GAClC,MAAO,GAAI,cAAa,KACxB,MAAO,GAAI,cAAa,KAC9B,OAAS,GAAI,EAAG,EAAI,SAAQ,OAAQ,GAAK,EACvC,MAAK,KAAK,MAAM,EAAI,IAAM,SAAQ,GAClC,MAAK,KAAK,MAAM,EAAI,IAAM,SAAQ,EAAI,GAExC,MAAO,CAAC,KAAA,MAAM,KAAA,OAQV,6BACF,SAAuB,OACzB,GAAM,OAAO,SAAQ,MAAQ,GACvB,MAAO,SAAQ,MAAQ,EAAI,GACjC,MAAO,CAAC,KAAA,MAAM,KAAA,OASV,4BACF,MAAkB,MAAc,MAAc,OAChD,MAAK,MAAQ,GAAK,MAClB,MAAK,MAAQ,EAAI,GAAK,MAMlB,mBACF,EAAW,SACb,GAAM,OAAO,GAAI,cAAa,EAAI,GAC5B,MAAO,GAAI,cAAa,EAAI,GAClC,OAAS,GAAI,EAAG,EAAI,KAAK,KAAK,EAAI,GAAI,KACpC,GAAM,GAAK,SAAU,EAAI,IAAM,KAAK,GAAM,GAAI,GAC9C,MAAK,GAAK,KAAK,IAAI,GACnB,MAAK,GAAK,KAAK,IAAI,GAErB,MAAO,CAAC,KAAA,MAAM,KAAA,OAMV,kBACF,EAAW,EAAW,SACxB,GAAM,GAAK,SAAU,EAAI,IAAM,KAAK,GAAM,GAAI,GACxC,MAAO,KAAK,IAAI,GAChB,MAAO,KAAK,IAAI,GACtB,MAAO,CAAC,KAAA,MAAM,KAAA,OC9HV,0BACF,EAAsB,gBACtB,KAAO,GACT,GAAI,YAAa,GACjB,GAAI,MAAQ,kBAAqB,SAC/B,OACI,EAAE,MAAM,MAAQ,iBAAoB,EACpC,IAAM,iDACV,WACI,GAAI,OAAM,iBAAiB,KAAK,EAAE,MAAM,MAAQ,sBAEpD,GAAM,WAAY,gBAAgB,OAAO,CAAC,OAAO,QAC3C,SAAU,IACZ,SAAS,GAEJ,QACN,GACH,OACI,WAAa,EACb,IAAM,2DACV,GAAM,UAAW,gBAAgB,QAAQ,IAGzC,GAAI,WAAa,IACf,GAAM,OAAQ,gBAAgB,OAAO,CAAC,EAAG,IAAM,EAAI,EAAI,EAAI,EAAI,GAC/D,gBAAgB,UAAY,EAAE,MAAM,MAAQ,MAE9C,OACI,EAAE,MAAM,QAAU,gBAAgB,OAAO,CAAC,EAAG,IAAM,EAAI,GACvD,IAAM,+DACV,WAAa,gBAGf,MAAO,YC1DT,GAAA,sBAAA,GAAA,UAAA,qBAAA,CAAA,yBAAA,IAAA,yBAAA,gBAAA,IAAA,iBAAA,8BAAA,IAAA,gCA6BM,uCACF,OAAgB,aAClB,GAAI,MAAO,GACP,IASJ,IAPI,QAAU,sBACZ,KAAM,OACN,KAAO,IAEP,IAAM,eAAe,OAAQ,KAAK,MAAM,KAAK,KAAK,UAG7C,CAAC,MACF,IAAM,aAAe,MAAQ,OAC/B,KAAO,GAEP,IAAM,eAAe,OAAQ,IAAM,GAGvC,MAAO,KAGH,0BACF,OAAkB,KAAc,aAClC,GAAM,UAAW,GACX,KAAO,OAAO,OACpB,OAAS,KAAM,EAAG,IAAM,KAAM,MACxB,MAAQ,KACV,SAAS,KAAK,OAAO,MAErB,SAAS,KAAK,aAGlB,MAAO,UAWH,kCACF,EAAe,QAAqB,KACpC,WACF,GAAM,aAAc,QAAQ,MAAM,OAC5B,MAAQ,EAAE,MAAM,OAEtB,GAAI,YAAc,GACZ,WAAY,CAAC,aAAe,UAAY,aAC1C,KAAM,IAAI,OAAM,sCAAsC,gBAClD,yBAAyB,aAQjC,GAJI,UAAY,GACd,YAAa,aAGX,UAAY,MACd,KAAM,IAAI,OAAM,cAAc;MAC5B,WAGJ,GAAI,KAAO,UACT,KAAM,IAAI,OAAM,cACZ,kDAAkD,UAGxD,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC/B,GAAI,EAAE,MAAM,KAAO,QAAQ,MAAM,GAC/B,KAAM,IAAI,OACN,WAAW,OAAO,EAAE,MAAM,uCACtB,OAAO,QAAQ,MAAM,OAGjC,GAAM,SAAU,EAAE,MAAM,MAElB,YAAwB,GAC1B,UAAY,EACZ,UAAY,EACZ,UAAY,EAEhB,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC/B,YAAY,KAAK,EAAE,MAAM,IACzB,WAAa,EAAE,MAAM,GAGvB,OAAS,GAAI,UAAW,EAAI,KAAM,IAChC,YAAY,KAAK,EAAE,MAAM,IACzB,WAAa,EAAE,MAAM,GAGvB,OAAS,GAAI,UAAW,EAAI,YAAa,IACvC,YAAY,KAAK,QAAQ,MAAM,IAGjC,OAAS,GAAI,KAAO,EAAG,EAAI,MAAO,IAChC,YAAY,KAAK,EAAE,MAAM,IACzB,WAAa,EAAE,MAAM,GAGvB,MAAO,CAAC,UAAW,UAAW,UAAW,QAAS,aV9E9C,oBACF,EAAM,MAAiB,WACzB,GAAI,QAAU,aACZ,GAAI,EAAE,QAAU,YACd,MAAO,GAAE,QAEX,GAAM,aAAc,MAAM,EAAE,OACtB,OAAS,KAAK,EAAG,WACjB,OAAS,UAAQ,QAAQ,OAAQ,aACvC,MAAA,aAAY,UACZ,OAAO,UACA,OAGT,GAAI,CAAC,gBAAgB,EAAE,MAAO,OAG5B,MAAO,QAAO,qBAAqB,EAAE,OAAQ,EAAE,MAAO,OAExD,GAAI,EAAE,QAAU,aACd,GAAM,OAAO,UAAQ,KAAK,GACpB,OAAS,KAAK,MAAM,OAC1B,MAAA,OAAK,UACE,OAET,GAAI,QAAU,QACZ,MAAO,WAAQ,IAAI,GACd,GAAI,QAAU,QACnB,GAAM,MAAO,OAAO,EAAG,EAAE,OACnB,OAAS,UAAQ,SAAS,EAAG,MACnC,MAAA,MAAK,UACE,WAEP,MAAM,IAAI,OAAM,iCAAiC,EAAE,YAAY,SAI7D,uBACF,EAAM,OACR,MAAO,QAAO,qBAAqB,EAAE,OAAQ,MAAO,EAAE,OAGlD,gCAAiC,MACrC,IAEE,MAAO,MAAK,IAAI,KAAO,aAAa,YAC7B,KACP,KAAM,IAAI,OACN,4DAA4D,QAI9D,gCAAiC,SACrC,MAAO,SAAQ,IAAI,GAAK,aAAa,IW5GvC,GAAA,sBAAA,GAAA,UAAA,qBAAA,CAAA,wBAAA,IAAA,wBAAA,wBAAA,IAAA,wBAAA,wBAAA,IAAA,wBAAA,UAAA,IAAA,YCwBO,GAAM,eAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,KAAK,KAAK,EAAG,WAAY,QCDzC,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CACL,EAAG,KACD,GAAM,GAAI,OAAO,KAAK,EAAG,YACnB,EAAI,KAAK,IAAI,OAAO,GAAI,IAC9B,MAAO,KAAI,IAAI,GAAI,QCZd,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CACL,EAAG,KACD,GAAM,GAAI,KAAK,IAAI,OAAO,KAAK,EAAG,YAAa,IAC/C,MAAO,KAAI,GAAI,OCZV,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MACT,SACa,2BAA2B,EAAE,MAAO,EAAE,OAmBzD,MAAO,CAAC,EAjBK,KACX,GAAI,KAAM,GACJ,WAA4B,iBAAiB,EAAE,MAAO,UAC5D,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAK,EAAE,QAWP,EATJ,KACX,GAAI,KAAM,GACJ,WAA4B,iBAAiB,EAAE,MAAO,UAC5D,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAK,EAAE,WCxBf,eAA6B,CACxC,WAAY,KACZ,cAAe,GACf,SAAU,CAAC,GAAY,SACrB,GAAM,MAAsC,GAC5C,MAAA,OAAM,QAAQ,CAAC,EAAG,KAChB,KAAK,GAAK,IAAM,GAAG,UAEd,OCPE,iBAA+B,CAC1C,WAAY,OACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,UAAU,MCLlB,iBAA+B,CAC1C,WAAY,OACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,UAAU,MCAlB,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,KAAK,IAAI,OAAO,GAAI,OAAO,KAAK,EAAG,kBCLnD,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CACL,EAAG,KACD,GAAM,GAAI,KAAK,KAAI,OAAO,GAAI,OAAO,KAAK,EAAG,cAC7C,MAAO,KAAI,GAAI,OCPV,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MACT,SAAW,2BAA2B,EAAE,MAAO,EAAE,OAoBvD,MAAO,CAAC,EAlBK,KACX,GAAM,GAAI,KAAI,OAAO,GAAI,OAAO,IAC5B,IAAM,IAAI,GAAI,IAAI,EAAG,IACnB,WAAa,iBAAiB,EAAE,MAAO,UAC7C,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAK,EAAE,QAWP,EATJ,KACX,GAAM,GAAI,KAAI,OAAO,GAAI,OAAO,IAC5B,IAAM,IAAI,IAAI,GAAI,IAAI,EAAG,KACvB,WAAa,iBAAiB,EAAE,MAAO,UAC7C,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAK,EAAE,WC3Bf,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,KAAI,OAAO,KAAK,EAAG,YAAa,OCLhD,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,IAAI,OAAO,GAAI,OAAO,KAAK,EAAG,iBC0B3D,wBACI,GAAkB,OAClB,WACA,QACA,UAA6C,CAAC,EAAG,EAAG,GACpD,KAA4B,iBAC9B,GAAM,KAAM,gBAAgB,GAAI,KAAM,iBAChC,OAAS,gBAAgB,OAAO,QAAS,iBAE3C,KAAO,IACP,QAAU,OACV,aAAe,GAEf,OAAO,OAAS,GAClB,cAAe,GACf,KAAO,QACH,IAAK,CAAC,EAAG,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KACjE,QAAU,QAAQ,OAAQ,CACxB,EAAG,OAAO,MAAM,GAAI,OAAO,MAAM,GAAI,OAAO,MAAM,GAAI,OAAO,MAAM,MAIlE,OACD,KAAK,OAAS,EACd,IAAM,0DACC,KAAK,SACX,OACD,QAAQ,OAAS,EACjB,IAAM,6DACC,QAAQ,SAEd,OACS,+BAA+B,QAAS,WAClD,IAAM,8EACwB,0BAA0B,cAExD,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,8EACwB,+BAA+B,SAGnE,GAAM,QAA8B,CAAC,GAAI,KAAM,MAAO,SAEhD,MACF,CAAC,WAAY,QAAS,UAAW,IAAA,KAAK,iBAGpC,IAAM,OAAO,UACH,cAAe,OACf,OAEhB,MAAI,cACK,QACI,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAIhE,IAGF,GAAM,eAAgB,GAAG,CAAC,iBClGpB,oBAAkC,CAC7C,WAAY,UACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,CAAC,WAAY,QAAS,UAAW,IAAA,KAAK,iBACxC,MAEE,WACF,WAAa,KAAO,CAAC,EAAG,EAAG,GAAiC,UAEhE,MAAO,CACL,EAAG,IAAM,cACL,GAAgB,EAAG,WAAY,QAAS,WAAY,KACpD,oBCSV,sBACI,GAAkB,OAAqB,WACvC,QAAkC,MACpC,GAAM,KAAM,gBAAgB,GAAI,KAAM,eAChC,OAAS,gBAAgB,OAAO,QAAS,eAE1C,OACD,OAAO,OAAS,IAAI,KACpB,IAAM,kBAAkB,OAAO,oCAC3B,IAAI,SAEZ,GAAI,SAAU,OACV,KAAO,IACP,aAAe,GAEf,OAAO,OAAS,GAClB,cAAe,GACf,QACI,QAAQ,OAAQ,CAAC,EAAG,OAAO,MAAM,GAAI,OAAO,MAAM,GAAI,OAAO,MAAM,KACvE,KAAO,QAAQ,IAAK,CAAC,EAAG,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,MAG3D,OACD,KAAK,OAAS,EACd,IAAM,wDACC,KAAK,SACX,OACD,QAAQ,OAAS,EACjB,IAAM,2DACC,QAAQ,SAEnB,GAAM,QAA4B,CAAC,GAAI,KAAM,MAAO,SAE9C,MAA0B,CAAC,WAAY,QAAS,IAAA,MAGhD,IAAM,OAAO,UACH,YAAa,OACb,OAEhB,MAAI,cACK,QAAQ,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAEtD,IAGF,GAAM,aAAc,GAAG,CAAC,eCrElB,kBAAgC,CAC3C,WAAY,QACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,CAAC,WAAY,QAAS,IAAA,MAAO,MACnC,MAAO,CAAC,EAAG,IAAM,YAAY,GAAgB,EAAG,WAAY,QAAS,SCN5D,sBAAoC,CAC/C,WAAY,YACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,EAAG,GAAK,MAET,CAAC,WAAY,YAAc,MAEjC,MAAI,CAAC,YAAc,CAAC,WACX,CACL,EAAG,IAAM,OAAO,GAAI,EAAG,GAAO,IAC9B,EAAG,IAAM,OAAO,EAAG,GAAI,GAAM,KAEtB,CAAC,YAAc,WACjB,CACL,EAAG,IAAM,OAAO,GAAI,EAAG,GAAO,IAC9B,EAAG,IAAM,OAAO,GAAI,EAAG,GAAM,KAEtB,YAAc,CAAC,WACjB,CACL,EAAG,IAAM,OAAO,EAAG,GAAI,GAAO,IAC9B,EAAG,IAAM,OAAO,EAAG,GAAI,GAAO,KAGzB,CACL,EAAG,IAAM,OAAO,EAAG,GAAI,GAAM,IAC7B,EAAG,IAAM,OAAO,GAAI,EAAG,GAAM,OC1BxB,yBAAuC,CAClD,WAAY,eACZ,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,WAAY,OAAS,MAC5B,MAAO,CAAC,EAAG,IAAM,eAAe,GAAI,WAAY,UCJvC,sBAAoC,CAC/C,WAAY,YACZ,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,kBACF,MAEE,WAAa,iBAAiB,WAC9B,YAAc,iBAAiB,MAE/B,KAAiB,MAAM,KAAK,aAClC,OAAS,GAAI,WAAW,OAAS,EAAG,GAAK,EAAG,IAC1C,GAAI,WAAW,KAAO,YAAY,GAChC,KAAK,GAAK,UACD,WAAW,KAAO,EAC3B,KAAM,IAAI,OAAM,mBACZ,uCAAuC,iBAG/C,GAAM,MAAiB,GACvB,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,IAC3B,KAAK,GAAK,GACZ,KAAK,KAAK,GAId,MAAO,CAAC,EAAG,IAAM,KAAI,GAAI,KAAM,OC1BtB,eAA6B,CACxC,WAAY,KACZ,SAAW,IACF,EAAC,EAAG,IAAM,GAAG,WCFX,eAA6B,CACxC,WAAY,KACZ,SAAW,IAEF,EAAC,EAAG,IAAM,UAAU,OCAlB,sBAAoC,CAC/C,WAAY,YACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,CAAC,aAAc,cAAgB,MACrC,MAAO,CACL,EAAG,IAAM,MACL,WAAW,aAAa,EAAG,cAAe,UAAU,EAAG,eACvD,GAAI,UAAU,QCdX,qBAAmC,CAC9C,WAAY,WACZ,aAAc,CAAC,KACf,SAAU,cAAc,UCFb,iBAA+B,CAC1C,WAAY,OACZ,cAAe,GACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,QAAS,MAAM,IAAI,GAAK,EAAE,OAC1B,CAAC,MAAQ,MACT,MAAQ,eAAe,KAAM,MAAM,GAAG,OAAO,GAC7C,WAAa,OAAO,IAAI,GAAK,EAAE,QAErC,MADmB,OAAM,GAAI,WAAY,OACvB,IAAI,GAAK,IAAM,KCPxB,iBAA+B,CAC1C,WAAY,OACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,GAAc,MAAiB,SACxC,GAAM,CAAC,IAAK,SAAW,MACjB,CAAC,UAAW,QAAS,IAAA,KAAK,YAAc,MAE9C,MAAK,QACS,kBAAkB,WAC5B,IAAM,iHACoD,cAEvD,CACL,EAAG,IACC,oBAAoB,IAAI,MAAO,GAAI,QAAS,QAAS,KAAK,YAC9D,OAAQ,IACJ,qBAAqB,IAAK,GAAI,QAAQ,MAAO,QAAS,KAAK,eClBxD,8BAA4C,CACvD,WAAY,oBACZ,aAAc,CAAC,KAAM,UACrB,SAAU,CAAC,IAAe,MAAiB,SACzC,GAAM,CAAC,GAAI,QAAU,MAEf,CAAC,QAAS,IAAA,KAAK,WAAY,iBAC7B,MAEJ,MAAO,CACL,GAAI,IAAM,OACN,IAAK,OAAQ,QAAS,KAAK,WAAY,EACvC,iBACJ,OAAQ,IAAM,qBACV,IAAK,GAAI,OAAO,MAAO,QAAS,KAAK,WAAY,oBCM3D,+BACI,EAAM,GAAO,YACb,QAA0C,MAC5C,GAAI,KAAM,EACN,EAAE,OAAS,GACb,KAAM,QAAQ,EAAG,CAAC,EAAG,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,MAEnE,GAAI,MAAO,GACP,KAAK,OAAS,GAChB,MAAO,QAAQ,GAAI,CAAC,EAAG,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,GAAI,GAAG,MAAM,MAEpE,OACD,IAAI,OAAS,EACb,IAAM,iEACC,IAAI,UACV,OACD,KAAK,OAAS,EACd,IAAM,8DACC,KAAK,UACX,OACD,YAAY,SAAW,EACvB,IAAM,mEACC,gBACN,OACD,IAAI,MAAM,KAAO,YAAY,GAC7B,IAAM,4CAA4C,IAAI,MAAM,yCACxB,YAAY,OAC/C,OACD,KAAK,MAAM,KAAO,YAAY,GAC9B,IAAM,0CAA0C,KAAK,MAAM,2CACrB,YAAY,QAEtD,GAAM,QAAuC,CAAC,EAAG,IAAK,GAAI,MAEpD,MAAqC,CAAC,QAAS,IAAA,KAAK,aAG1D,MAAO,QAAO,UACH,uBAAwB,OACxB,OAGN,GAAM,sBAAuB,GAAG,CAAC,wBC5D3B,iBAA+B,CAC1C,WAAY,OACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,GAAc,MAAiB,SACxC,GAAM,CAAC,UAAW,QAAS,IAAA,MAAO,MAC7B,OACD,kBAAkB,WAClB,IACI,iHACkD,cAE1D,GAAM,CAAC,IAAK,SAAW,MAEvB,MAAO,CACL,EAAG,IAAM,oBACJ,IAAiB,MAAO,GAAI,QAAqB,QAAS,MAC/D,OAAQ,IAAM,qBACV,IAAiB,GAAK,QAAqB,MAAO,QAAS,SChBxD,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,IAAI,IAAI,KAAK,EAAG,aAAc,OCP1C,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,KAAK,KAAK,EAAG,YAAa,OCNtC,iBAA+B,CAC1C,WAAY,OACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,CAAC,KAAM,UAAW,QAAA,UAAwB,MAEhD,MAAO,CACL,EAAG,KACD,GAAM,aAAc,mBAAmB,CAAC,MAAO,EAAE,MAE7C,IAAM,OAAO,GAAI,KAAM,UAAW,CAAC,UAEvC,MAAI,cAAe,MACjB,KAAM,UAAU,IAAK,cAGhB,QCjBF,gCAA8C,CACzD,WAAY,sBACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,GAAc,MAAiB,SACxC,GAAM,CAAC,UAAW,QAAS,IAAA,KAAK,iBAC5B,MAEE,WAAa,WAAa,KAAO,CAAC,EAAG,GAAK,UAE3C,OACS,kBAAkB,YAC5B,IAAM,mHAEE,eAEZ,GAAM,CAAC,EAAG,QAAU,MAEpB,MAAK,QACD,EAAE,OAAS,EACX,IAAM,kFACsB,EAAE,SAC7B,OACD,OAAO,OAAS,EAChB,IAAM,mFACsB,OAAO,SAClC,OACD,EAAE,MAAM,KAAO,OAAO,MAAM,GAC5B,IAAM,mEACW,EAAE,MAAM,qDACR,OAAO,MAAM,OAE7B,OACS,+BAA+B,QAAS,YAClD,IAAM,6FACmC,0BACjC,gBAER,iBAAmB,MAChB,OACI,MAAM,MACX,IACI,gFACmB,+BAA+B,SAGrD,CACL,EAAG,IAAM,mCACL,EAAE,MAAO,GAAI,OAAQ,QAAS,KAAK,UAAW,iBAClD,OAAQ,IAAM,oCACV,EAAG,GAAI,OAAO,MAAO,QAAS,KAAK,UAAW,oBClD3C,qBAAmC,CAC9C,WAAY,WACZ,aAAc,CAAC,IAAK,UACpB,SAAU,CAAC,GAAc,MAAiB,SACxC,GAAM,CAAC,EAAG,QAAU,MAEd,YAA6C,CAAC,EAAG,OAAQ,IACzD,aAA+C,CAAC,EAAG,OAAQ,IAEjE,MAAO,CACL,EAAG,IAAM,OAAO,UACZ,wBAAyB,YAAqC,OAClE,OAAQ,IAAM,OAAO,UACjB,yBAA0B,aAAsC,UCd7D,cAA4B,CACvC,WAAY,IACZ,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEN,OAAwB,CAAC,GAAI,GAEnC,MAAO,CAAC,EAAG,IAAM,OAAO,UAAU,QAAS,WCLlC,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACN,EAAI,IAAI,IAAI,IAAI,OAAO,KAAM,EAAI,KAAK,KAAK,KAAK,KACtD,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,MCThB,cAA4B,CACvC,WAAY,IACZ,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,MCLhB,qBAAmC,CAC9C,WAAY,WACZ,aAAc,CAAC,SACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,QAAS,MAChB,MAAO,CAAC,MAAO,IAAM,QAAQ,GAAI,OAAM,UCJ9B,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,IAAI,OCNpB,gBAA8B,CACzC,WAAY,MACZ,SAAW,IACF,EAAC,EAAG,IAAM,UAAU,OCIlB,mBAAiC,CAC5C,WAAY,SACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MACT,SAAW,2BAA2B,EAAE,MAAO,EAAE,OAmBvD,MAAO,CAAC,EAjBK,KACX,GAAM,KAAM,IAAI,GAAI,KAAK,EAAG,YACtB,WAAa,iBAAiB,EAAE,MAAO,UAC7C,MAAI,YAAW,OAAS,EACf,QAAQ,KAAI,IAAK,YAAa,EAAE,OAElC,KAWQ,EATJ,KACX,GAAI,KAAM,IAAI,GAAI,KAAK,EAAG,YACpB,WAAa,iBAAiB,EAAE,MAAO,UACzC,WAAW,OAAS,GACtB,KAAM,QAAQ,KAAI,IAAK,YAAa,EAAE,QAExC,GAAM,KAAM,OAAO,GACnB,MAAO,KAAI,IAAI,IAAK,KAAK,IAAK,iBCrBvB,yBAAuC,CAClD,WAAY,eACZ,aAAc,CAAC,IAAK,OAAQ,WAAY,SACxC,SAAU,CACN,GAAY,MAAiB,SAC/B,GAAM,CAAC,iBAAmB,MACpB,CAAC,EAAG,MAAM,SAAU,QAAS,MAE7B,WAAa,QAAS,KAAO,OAAO,GAAK,OACzC,cAAgB,iBAAiB,MAAK,MAAO,EAAE,OAC/C,UAAsB,GAC5B,GAAI,MAAK,OAAS,GAChB,OAAS,GAAI,EAAG,EAAI,EAAE,MAAM,OAAS,EAAG,EAAE,EACxC,UAAU,KAAK,EAAE,MAAM,IAEzB,UAAU,KAAK,GAGjB,GAAM,YAAa,IAAI,EAAG,OACpB,kBAAoB,IAAI,GAAI,YAC5B,oBAAsB,MAAM,KAAI,SAAU,OAAO,mBACjD,eAAiB,IACnB,IAAI,IAAI,oBAAqB,qBAAsB,qBACnD,OAAO,MAgDX,MAAO,CACL,EA/CW,IACP,MAAK,OAAS,EACT,QACH,IAAI,IAAI,GACA,KACI,QAAQ,oBAAqB,CAAC,EAAG,EAAG,EAAG,MAAK,MAAM,KAClD,YACR,YACJ,EAAE,OAEC,QAAQ,IAAI,IAAI,GAAI,qBAAsB,YAAa,EAAE,OAsClE,KAnCc,KACd,GAAI,SACA,IAAI,IAAI,oBAAqB,OAAO,KAAM,mBAC9C,MAAI,OAAK,OAAS,GAChB,SAAU,KAAI,QAAS,gBAElB,QAAQ,QAAS,MAAK,QA8B7B,SA5BkB,KAClB,GAAI,aAAc,IAAI,IAAI,eAAgB,YAAa,mBAEvD,MAAI,OAAK,OAAS,GAChB,aAAc,KAAI,YAAa,gBAE1B,QAAQ,YAAa,MAAK,QAuBjC,MArBe,KACf,GAAM,uBAAwB,IAAI,WAAY,qBAE1C,SAAW,IAAI,GAAI,uBACvB,MAAI,OAAK,OAAS,GAChB,UAAW,KAAI,SAAU,gBAEpB,QAAQ,SAAU,MAAK,QAe9B,OAbgB,KAChB,GAAI,WAAY,GAChB,MAAI,OAAK,OAAS,GAChB,WAAY,KAAI,UAAW,gBAEtB,QAAQ,UAAW,MAAK,WCxExB,iBAA+B,CAC1C,WAAY,SACZ,aAAc,CAAC,IAAK,WACpB,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,EAAG,SAAW,MACf,CAAC,MAAQ,MAET,WAAa,eAAe,KAAM,EAAE,OAAO,GA+BjD,MAAO,CAAC,EA7BK,KACX,GAAM,aAAc,EAAE,MAChB,YAAc,QAAQ,KAEtB,WAAa,YAAY,MAAM,EAAG,YAClC,UAAY,WAAW,OACvB,WAAa,YAAY,MAAM,KAAM,YAAY,QAAQ,MAAM,GAC/D,UAAY,WAAW,OAEvB,iBAAmB,WAAW,EAAG,WACjC,iBACF,WAAW,UAAY,EAAG,UAAY,EAAI,WAExC,YAAc,YAAY,CAAC,WAAY,CAAC,aAAc,aAEtD,OAAS,QAAQ,GAAI,aACrB,gBAAkB,QAAQ,QAAS,CAAC,cAEpC,cACF,YAAY,CAAC,CAAC,WAAY,iBAAkB,mBAC1C,gBAAkB,UAAU,OAAQ,eACtC,WAAa,mBACb,gBAAiB,gBAA6B,EAAE,MAAM,aAEpD,oBAAsB,uBAAuB,eACnD,MAAA,YAAa,UAAU,WAAY,qBAE5B,YAEQ,QAAS,IAAM,WAIpC,oBAAoB,MAAe,MACjC,GAAM,QAAS,GACf,OAAS,GAAI,MAAO,EAAI,KAAM,EAAE,EAC9B,OAAO,KAAK,GAEd,MAAO,QAGT,qBAAqB,QACnB,GAAM,QAAS,GACf,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,EAAE,EACnC,OAAS,GAAI,EAAG,EAAI,OAAO,GAAG,OAAQ,EAAE,EACtC,OAAO,KAAK,OAAO,GAAG,IAG1B,MAAO,QC9DF,GAAM,wBAAqC,CAChD,WAAY,aACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MACf,MAAO,CAAC,EAAG,IAAM,UAAU,GAAI,EAAG,IAAM,UAAU,MCJzC,mBAAiC,CAC5C,WAAY,SACZ,SAAW,IACF,EAAC,EAAG,IAAM,KAAK,GAAI,cCHjB,mBAAiC,CAC5C,WAAY,SACZ,SAAW,IAGF,EAAC,EAAG,IAAM,UAAU,OCJlB,gBAA8B,CACzC,WAAY,MACZ,SAAW,IAGF,EAAC,EAAG,IAAM,UAAU,OCNlB,gBAA8B,CACzC,WAAY,MACZ,SAAW,IAGF,EAAC,EAAG,IAAM,UAAU,OCJlB,oBAAkC,CAC7C,WAAY,UACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,CAAC,OAAS,MACV,KAAO,QAAQ,EAAG,GAIxB,MAAO,CAAC,EAAG,IAAM,MAAM,KAAM,GAAI,IAAI,GAAI,WCVhC,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,KAAI,EAAG,OCLvB,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,KAAK,EAAG,eCHxB,qBAAmC,CAC9C,WAAY,WACZ,aAAc,GACd,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,OAAS,MACV,CAAC,MAAQ,MACf,MAAO,CACL,OAAQ,KACN,GAAM,UAAW,GACX,SAAU,IAAI,OACpB,MAAO,KAAI,GAAI,IAAI,KAAI,GAAI,KAAM,UAAW,eCXpD,6CACI,EAAM,EAAM,GAAO,YAAc,EAAG,KAAO,EAAG,MAAQ,EAAG,KAAO,IAClE,GAAM,QAAwB,CAAC,EAAG,EAAG,IAE/B,MAAsB,CAAC,YAAa,KAAM,MAAO,MAEvD,MAAO,QAAO,UACV,QAAS,OAAgC,OAGxC,GAAM,oCACT,GAAG,CAAC,sCCfK,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,GAAc,MAAiB,SACxC,GAAM,CAAC,EAAG,GAAK,MACT,CAAC,YAAa,KAAM,MAAO,MAAQ,MAEzC,MAAO,CACL,EAAG,IAAM,mCACL,EAAG,EAAG,GAAI,YAAa,KAAM,MAAO,SCJxC,0BACF,GAAO,EAAM,MAAe,UAC9B,MAAI,GAAE,KAAO,MAAM,MACjB,GAAI,QAAQ,EAAa,qBAAqB,EAAE,MAAO,YAErD,GAAG,KAAO,MAAM,MAClB,IAAK,QAAQ,GAAc,qBAAqB,GAAG,MAAO,YAErD,CACL,EAAG,IACU,IAAI,GAAI,KAAK,MAAM,MAAO,GAAI,GAAG,SCb3C,GAAM,eAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,UAAqB,MACrB,CAAC,kBAAoB,SACrB,EAAI,MAAM,GACV,EAAI,MAAM,GACV,SAAgB,eAAe,iBAAkB,EAAE,OACnD,QAAU,iBAAiB,GAAI,EAAG,EAAG,UAC3C,MAAO,CACL,EAAG,IACM,QAAQ,OCZV,kBAAgC,CAC3C,WAAY,QACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MAGf,MAAO,CAAC,EAFK,IAAM,IAAI,GAAI,KAAK,aAAa,EAAG,GAAI,YAEnC,EADJ,IAAM,IAAI,GAAI,KAAK,KAAK,EAAG,GAAI,eC4BhD,wBACI,GAAkB,OAAqB,OACvC,WACA,QACA,UAA6C,CAAC,EAAG,EAAG,GACpD,KAA4B,iBAC9B,GAAM,KAAM,gBAAgB,GAAI,KAAM,iBAChC,OAAS,gBAAgB,OAAO,QAAS,iBACzC,QAAU,gBAAgB,OAAQ,SAAU,iBAE9C,KAAO,IACP,QAAU,OACV,SAAW,QACX,aAAe,GAEf,OAAO,OAAS,GAClB,cAAe,GACf,KAAO,QACH,IAAK,CAAC,EAAG,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KACjE,QAAU,QAAQ,OAAQ,CACxB,EAAG,OAAO,MAAM,GAAI,OAAO,MAAM,GAAI,OAAO,MAAM,GAAI,OAAO,MAAM,KAErE,SAAW,QAAQ,QAAS,CAC1B,EAAG,QAAQ,MAAM,GAAI,QAAQ,MAAM,GAAI,QAAQ,MAAM,GAAI,QAAQ,MAAM,MAItE,OACD,KAAK,OAAS,EACd,IAAM,0DACC,KAAK,SACX,OACD,QAAQ,OAAS,EACjB,IAAM,6DACC,QAAQ,SACd,OACD,SAAS,OAAS,EAClB,IAAM,8DACC,SAAS,SAEf,OACS,+BAA+B,QAAS,WAClD,IAAM,8EACwB,0BAA0B,cACxD,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,8EACwB,+BAA+B,SAGnE,GAAM,QACoB,CAAC,GAAI,KAAM,MAAO,QAAS,OAAQ,UAEvD,MACF,CAAC,WAAY,QAAS,UAAW,IAAA,KAAK,iBAGpC,IAAM,OAAO,UACH,cAAe,OACf,OAEhB,MAAI,cACK,QACI,IAAK,CAAC,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,GAAI,IAAI,MAAM,KAIhE,IAGF,GAAM,eAAgB,GAAG,CAAC,iBC5GpB,oBAAkC,CAC7C,WAAY,UACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,EAAG,GAAK,MACT,CAAC,WAAY,QAAS,UAAW,IAAA,KAAK,iBACxC,MAEE,WACF,WAAa,KAAO,CAAC,EAAG,EAAG,GAAiC,UAEhE,MAAO,CACL,EAAG,IAAM,cACL,GAAgB,EAAG,EAAG,WAAY,QAAS,WAAY,KACvD,oBCUV,sBACI,GAAyB,OACzB,OAA6B,WAC7B,QAAkC,KAClC,iBACF,GAAM,KAAM,gBAAgB,GAAI,KAAM,eAChC,OAAS,gBAAgB,OAAO,QAAS,eACzC,QAAU,gBAAgB,OAAQ,SAAU,eAE7C,OACD,OAAO,OAAS,IAAI,KACpB,IAAM,kBAAkB,OAAO,oCACvB,IAAI,SAEX,OACD,IAAI,OAAS,EACb,IAAM,wDACC,IAAI,SACV,OACD,OAAO,OAAS,EAChB,IAAM,2DACC,OAAO,SACd,iBAAmB,MAChB,OACI,MAAM,MACX,IAAM,4EACiB,+BAA+B,SAG5D,GAAM,QAA4B,CAAC,GAAI,IAAK,MAAO,OAAQ,OAAQ,SAE7D,MAA0B,CAAC,WAAY,QAAS,IAAA,KAAK,iBAG3D,MAAO,QAAO,UACH,YAAa,OACb,OAGN,GAAM,aAAc,GAAG,CAAC,eChElB,kBAAgC,CAC3C,WAAY,QACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,EAAG,GAAK,MACT,CAAC,WAAY,QAAS,IAAA,MAAO,MAEnC,MAAO,CACL,EAAG,IAAM,YAAY,GAAgB,EAAG,EAAG,WAAY,QAAS,SCJzD,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,CAAC,MAAQ,MACT,KAAY,eAAe,KAAM,EAAE,OAEnC,YADS,0BAA0B,EAAE,MAAO,MACvB,GACrB,WAAkB,cAAc,aAYtC,MAAO,CAAC,EAVK,KACX,GAAM,iBAAkB,EAAE,MAAM,QAChC,KAAK,QAAQ,QACX,gBAAgB,OAAQ,IAE1B,GAAM,YAAa,QAAQ,GAAI,iBAE/B,MADY,KAAI,IAAI,WAAY,MAAK,EAAE,MAAO,YAAa,gBCpBpD,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,UAAqB,MACrB,CAAC,MAAQ,SACT,CAAC,EAAG,GAAK,MACT,SAAgB,eAAe,KAAM,EAAE,OACvC,QAAU,iBAAiB,GAAI,EAAG,EAAG,UAC3C,MAAO,CACL,EAAG,IACM,QAAQ,OCXV,kBAAgC,CAC3C,WAAY,QACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MAGf,MAAO,CAAC,EAFK,IAAM,IAAI,GAAI,KAAK,UAAU,EAAG,GAAI,YAEhC,EADJ,IAAM,IAAI,GAAI,KAAK,QAAQ,EAAG,GAAI,eCTtC,oBAAkC,CAC7C,WAAY,UACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SAGtC,GAAM,GAAI,MAAM,GACV,CAAC,UAAY,MACb,MAAQ,SAAS,IAAI,IAAK,GAAE,IAClC,MAAO,CAAC,EAAG,IAAM,MAAM,GAAI,MAAO,EAAE,UCH3B,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MACT,SAAW,2BAA2B,EAAE,MAAO,EAAE,OAiBvD,MAAO,CAAC,EAfK,KACX,GAAM,YAAa,iBAAiB,EAAE,MAAO,UAC7C,MAAI,YAAW,OAAS,EACf,QAAQ,KAAI,GAAI,YAAa,EAAE,OAEjC,IAUQ,EARJ,KACX,GAAM,KAAM,IAAI,GAAI,IAAI,MAAM,IAAI,EAAG,MAC/B,WAAa,iBAAiB,EAAE,MAAO,UAC7C,MAAI,YAAW,OAAS,EACf,QAAQ,KAAI,IAAK,YAAa,EAAE,OAElC,QCtBA,mBAAiC,CAC5C,WAAY,SACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MACT,SAAW,2BAA2B,EAAE,MAAO,EAAE,OAkBvD,MAAO,CAAC,EAhBK,KACX,GAAM,KAAM,IAAI,GAAI,KAAK,EAAG,YACtB,WAAa,iBAAiB,EAAE,MAAO,UAC7C,MAAI,YAAW,OAAS,EACf,QAAQ,KAAI,IAAK,YAAa,EAAE,OAElC,KAUQ,EARJ,KACX,GAAM,KAAM,IAAI,GAAI,KAAK,EAAG,YACtB,WAAa,iBAAiB,EAAE,MAAO,UAC7C,MAAI,YAAW,OAAS,EACf,QAAQ,KAAI,IAAK,YAAa,EAAE,OAElC,QCzBA,cAA4B,CACvC,WAAY,IACZ,SAAW,IACF,EAAC,EAAG,IAAM,IAAI,OCHZ,iBAA+B,CAC1C,WAAY,OACZ,aAAc,CAAC,WACf,SAAU,CAAC,GAAY,SACrB,GAAM,SAAU,MAAM,GACtB,MAAO,CAAC,QAAS,IAAM,MAAM,QAAQ,MAAO,cCLnC,mBAAiC,CAC5C,WAAY,SACZ,SAAW,IACF,EAAC,EAAG,IAAM,UAAU,OCHlB,eAA6B,CACxC,WAAY,KACZ,cAAe,GACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,MAAQ,MAEf,MADmB,SAAQ,GAAI,MACb,IAAI,GAAK,IAAM,KCNxB,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SAGtC,GAAM,GAAI,MAAM,GACV,CAAC,UAAY,MACb,MAAQ,SAAS,IAAI,IAAK,GAAE,IAClC,MAAO,CAAC,EAAG,IAAM,MAAM,GAAI,MAAO,EAAE,UCC3B,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,IAAK,KACpB,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,EAAG,GAAK,MACZ,MAAO,EACP,KAAM,EACN,SACa,2BAA2B,MAAK,MAAO,KAAI,OAqB9D,MAAO,CAAC,EAnBQ,KACd,GAAM,UAAW,KAAK,KAAK,WACvB,IAAM,IAAI,GAAI,IAAI,SAAU,IAAI,MAAM,IAAI,SAAU,OAAO,OACzD,WAA4B,iBAAiB,MAAK,MAAO,UAC/D,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAK,MAAK,QAYP,EAVL,KACb,GAAM,WAAY,QAAQ,MAAM,GAC1B,QAAU,MAAM,UAAW,KAAI,OAAO,UAAU,QAClD,IAAM,IAAI,GAAI,IAAI,EAAG,UACnB,WAA4B,iBAAiB,KAAI,MAAO,UAC9D,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAK,KAAI,WCjCjB,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,IAAK,SACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,OAAS,MACb,KAAO,QAAQ,EAAG,GAExB,MAAO,CACL,EAAG,IAAM,MAAM,KAAM,GAAI,IAAI,GAAI,QACjC,MAAO,KACL,GAAI,KAAM,MAAM,KAAM,UAAU,IAAK,IAAI,GAAI,IACvC,WAAa,iBAAiB,MAAM,MAAO,GAAG,OACpD,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAK,MAAM,WCbrB,cAA4B,CACvC,WAAY,QACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MACT,SACa,2BAA2B,EAAE,MAAO,EAAE,OAkBzD,MAAO,CAAC,EAjBK,KACX,GAAM,KAAM,IAAI,GAAI,KAAK,EAAG,YACtB,WAA4B,iBAAiB,EAAE,MAAO,UAC5D,MAAI,YAAW,OAAS,EACf,QAAQ,KAAI,IAAK,YAAa,EAAE,OAElC,KAWQ,EATJ,KACX,GAAI,KAAM,IAAI,GAAI,KAAK,EAAG,YACpB,WAA4B,iBAAiB,EAAE,MAAO,UACxD,WAAW,OAAS,GACtB,KAAM,QAAQ,KAAI,IAAK,YAAa,EAAE,QAExC,GAAM,KAAM,OAAO,GACnB,MAAO,KAAI,IAAI,IAAK,KAAK,IAAK,iBC3BvB,qBAAmC,CAC9C,WAAY,WACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,IAAI,OAAO,QCL3B,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACN,KAAO,IAAI,UAAU,EAAG,GAAI,KAAK,IAEvC,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,KAAK,KAAM,eCR3B,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,KAAK,KAAK,GAAI,eCP9B,kBAAgC,CAC3C,WAAY,QACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,QAAQ,GAAI,EAAE,UCHtB,yBAAuC,CAClD,WAAY,eACZ,aAAc,CAAC,UACf,SAAU,CAAC,GAAc,MAAiB,SACxC,GAAM,CAAC,QAAU,MAEX,OAAmC,CAAC,GAAI,QAO9C,MAAO,CAAC,OANU,IAEd,OAAO,UACH,mBAAoB,OAAgC,UCVnD,gCAA8C,CACzD,WAAY,sBACZ,aAAc,CAAC,UACf,SAAU,CAAC,GAAc,MAAiB,SACxC,GAAM,CAAC,QAAU,MAEX,OAA0C,CAAC,GAAI,QAOrD,MAAO,CAAC,OANU,IAEd,OAAO,UACH,0BAA2B,OAAgC,UCX1D,kBAAgC,CAC3C,WAAY,QACZ,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,MAAQ,MACT,KAAO,eAAe,KAAM,GAAG,OACrC,MAAO,CAAC,EAAG,IAAM,QAAQ,GAAI,SCLpB,gBAA8B,CACzC,WAAY,MACZ,SAAW,IAGF,EAAC,EAAG,IAAM,UAAU,OCFlB,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,IAAI,GAAI,IAAI,IAAI,EAAG,KAAM,QCLrC,iBAA+B,CAC1C,WAAY,OACZ,aAAc,CAAC,aACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,WAAa,MACpB,MAAO,CAGL,UAAW,IAAM,KAAK,UAAU,WAAY,WAC5C,EAAG,IAAM,IAAI,GAAI,KAAK,UAAW,GAAG,QACpC,EAAG,IAAM,IAAI,GAAI,KAAK,WAAW,WAAY,GAAG,WCRzC,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CACL,EAAG,KACD,GAAM,MAAO,QAAQ,EAAG,OAAO,IAEzB,YAAa,OAAO,iBACpB,OAAQ,OAAO,YAEf,mBAAqB,IAAI,GAAI,QAC7B,iBACF,IAAI,IAAI,GAAI,aAAa,IAAI,KAAK,EAAG,aAEzC,MAAO,OAAM,KAAM,mBAAoB,sBCnBlC,kBAAgC,CAC3C,WAAY,QACZ,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,IAAI,EAAG,IAAI,OAAO,GAAI,QCRtC,eAA6B,CACxC,WAAY,KACZ,SAAW,IACF,EAAC,EAAG,IAAM,UAAU,OCDlB,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,IAAI,KAAK,EAAG,YAAa,OCLrC,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,KAAK,KAAK,EAAG,YAAa,OCPtC,gBAA8B,CACzC,WAAY,MACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,CAAC,MAAO,MAAQ,MAEhB,WAAa,EAAE,MACf,CAAC,OAAQ,OAAS,iBAAiB,EAAG,MAAO,MAQ7C,SAAoC,GAC1C,OAAS,GAAI,EAAG,EAAI,GAAG,KAAM,IAC3B,SAAS,KAAK,CAAC,OAAO,GAAI,WAAW,GAAK,OAAO,GAAK,MAAM,KAE9D,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,aCnBhB,kBAAgC,CAC3C,WAAY,QACZ,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,CAAC,KAAO,MACR,SAAW,GAEX,SAAW,IAAI,GAAI,GACzB,MAAO,CACL,OAAQ,IAAM,IAAI,SAAU,IAAI,KAAI,SAAU,CAAC,KAAM,UAAW,OCXzD,mBAAiC,CAC5C,WAAY,SACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,QAAQ,OCPxB,yBAAuC,CAClD,WAAY,eACZ,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,WAAY,UAAY,MAC/B,MAAO,CAAC,EAAG,IAAM,eAAe,GAAI,WAAY,aCLvC,iBAA+B,CAC1C,WAAY,OACZ,SAAU,CAAC,GAAc,MAAiB,SACxC,GAAM,CAAC,MAAQ,MAEf,MAAO,CAAC,EAAG,IAAM,OAAO,GAAI,SCDnB,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,IAAI,KAAK,KAAK,EAAG,YAAa,OCR9C,iBAA+B,CAC1C,WAAY,OACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MACZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,IAAI,KAAK,EAAG,WAAY,OCJxC,4BAA0C,CACrD,WAAY,kBACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MACT,IAAM,OAAO,GAGnB,MAAO,CAAC,EAFK,IAAM,IAAI,GAAI,IAAI,IAAK,IAAI,EAAG,KAE1B,EADJ,IAAM,IAAI,GAAI,IAAI,IAAK,IAAI,EAAG,QCTlC,eAA6B,CACxC,WAAY,KACZ,SAAW,IAGF,EAAC,EAAG,IAAM,UAAU,OCHlB,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,IAAK,KACpB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,EAAG,GAAK,MACT,SACa,2BAA2B,EAAE,MAAO,EAAE,OAmBzD,MAAO,CAAC,EAjBK,KACX,GAAI,KAAM,GACJ,WAA4B,iBAAiB,EAAE,MAAO,UAC5D,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAK,EAAE,QAWP,EATJ,KACX,GAAI,KAAM,GACJ,WAA4B,iBAAiB,EAAE,MAAO,UAC5D,MAAI,YAAW,OAAS,GACtB,KAAM,KAAI,IAAK,aAEV,QAAQ,IAAI,KAAM,EAAE,WCrBpB,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,gBAAkB,EAAE,MAAM,QAC1B,CAAC,MAAQ,MAEF,eAAe,KAAM,EAAE,OAC/B,QAAQ,QACX,gBAAgB,OAAQ,IAE1B,GAAM,YAAa,QAAQ,GAAI,iBACzB,KAAO,IAAI,WAAY,MAAK,EAAE,MAAO,YAE3C,MAAO,CAAC,EAAG,IAAM,QChBR,cAA4B,CACvC,WAAY,IACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,GAAI,OAAO,IAAI,QCL3B,eAA6B,CACxC,WAAY,KACZ,cAAe,CAAC,IAChB,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,GAAK,MAEZ,MAAO,CAAC,EAAG,IAAM,IAAI,IAAI,OAAO,GAAI,OAAO,IAAK,OCPvC,eAA6B,CACxC,WAAY,KACZ,aAAc,CAAC,KACf,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,CAAC,GAAK,MACN,CAAC,MAAQ,MAuDf,MAAO,CAAC,EArDK,KACX,GAAI,OAAQ,UAAU,GAGtB,GAAI,EAAE,OAAS,EACb,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,MAAQ,KAAI,MAAO,MAAM,GAAI,CAAC,EAAI,EAAE,MAAM,IAAK,CAAC,EAAE,MAAM,cAEjD,EAAE,OAAS,EACpB,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,MAAQ,KAAI,MAAO,MAAM,GAAI,CAAC,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,IAAK,CACjD,EAAE,MAAM,GAAI,EAAE,MAAM,cAI7B,EAAE,OAAS,EACpB,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,MACI,KAAI,MACA,MACI,GAAI,CAAC,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,IACjD,CAAC,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,cAI1C,EAAE,OAAS,EACpB,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,OAAS,GAAI,EAAG,EAAI,KAAK,GAAI,EAAE,EAC7B,MACI,KAAI,MACA,MACI,GACA,CACE,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,GAAI,EAAI,EAAE,MAAM,GAC5C,EAAI,EAAE,MAAM,IAEd,CAAC,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,GAAI,EAAE,MAAM,UAMjE,MAAM,IAAI,OACN,2DACG,EAAE,qBAEX,MAAO,WC3DA,oBAAkC,CAC7C,WAAY,UACZ,SAAU,CAAC,GAAY,MAAiB,SACtC,GAAM,gBAAiC,MACjC,CAAC,MAAQ,eACT,SAAqB,uBAAuB,MAClD,MAAO,CAAC,EAAG,IAAM,UAAU,GAAI,aCRtB,iBAA+B,CAC1C,WAAY,OACZ,SAAU,CAAC,GAAc,MAAiB,SACxC,GAAM,aAA2B,MAC3B,CAAC,MAAQ,YACf,MAAO,CAAC,MAAO,IAAM,MAAM,GAAI,SCItB,6BAA2C,CACtD,WAAY,mBACZ,aAAc,CAAC,cACf,SAAU,CAAC,GAAY,SACrB,GAAM,CAAC,YAAc,MAKrB,MAAO,CAAC,EAHK,IACJ,oBAAoB,GAAI,eAMrC,6BAA+C,EAAM,SAInD,GAAM,oBAAqB,QAAQ,QAAS,UAAU,UAChD,SAAW,OAAO,EAAG,oBACvB,WAAa,aAAa,QAAS,OAAO,EAAG,UAC3C,SAAW,SAAS,KAAO,WAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,SAAU,EAAE,EAC9B,WAAa,WAAW,WAAY,EAAI,GAE1C,WAAa,WAAW,WAAY,MAAK,SAAS,MAAO,SACzD,GAAM,WAAY,UAAU,UAC5B,MAAO,OAAM,WAAY,SAAU,WClC9B,GAAM,qBAAkC,CAC7C,WAAY,UACZ,SAAW,IACF,EAAC,EAAG,IAAM,UAAU,OC+FzB,YAA4B,CAChC,cACA,eACA,gBACA,cACA,eACA,iBACA,iBACA,eACA,gBACA,gBACA,eACA,gBACA,oBACA,kBACA,sBACA,yBACA,sBACA,eACA,eACA,sBACA,qBACA,iBACA,8BACA,iBACA,iBACA,cACA,eACA,iBACA,gCACA,qBACA,cACA,cACA,cACA,cACA,qBACA,gBACA,mBACA,gBACA,yBACA,iBACA,uBACA,mBACA,mBACA,gBACA,gBACA,oBACA,gBACA,cACA,qBACA,cACA,cACA,cACA,kBACA,oBACA,kBACA,eACA,cACA,kBACA,oBACA,cACA,mBACA,cACA,iBACA,mBACA,eACA,gBACA,gBACA,cACA,gBACA,qBACA,gBACA,eACA,kBACA,yBACA,gCACA,kBACA,gBACA,gBACA,iBACA,eACA,kBACA,eACA,cACA,eACA,gBACA,kBACA,mBACA,yBACA,yBACA,iBACA,iBACA,eACA,4BACA,iBACA,eACA,cACA,cACA,cACA,eACA,eACA,oBACA,iBACA,6BACA,qBAGF,OAAW,kBAAkB,aAC3B,iBAAiB,gBCxMnB,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCFb,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCCf,OAAO,UAAU,UAAY,SAChB,GACX,MAAA,MAAK,kBACE,UAAU,KAAM,ICRzB,OAAO,UAAU,IAAM,SAA2B,GAChD,MAAA,MAAK,kBACE,KAAI,KAAM,ICDnB,OAAO,UAAU,IAAM,SACV,KAAwB,UACnC,MAAA,MAAK,kBACE,IAAI,KAAM,KAAM,WCHzB,OAAO,UAAU,IAAM,SACV,KAAwB,UACnC,MAAA,MAAK,kBACE,IAAI,KAAM,KAAM,WCJzB,OAAO,UAAU,OAAS,SAA2B,MACnD,MAAA,MAAK,kBACE,OAAO,KAAM,OCFtB,OAAO,UAAU,OAAS,SAA2B,MACnD,MAAA,MAAK,kBACE,OAAO,KAAM,OCGtB,OAAO,UAAU,SAAW,WAC1B,MAAA,MAAK,kBACL,OAAO,KAAK,OAAS,EAAG,IAAM,uCACvB,QAAQ,KAAM,KCCvB,OAAO,UAAU,OAAS,SACb,OACX,MAAA,MAAK,kBACE,KAAQ,KAAM,QCRvB,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,QAAQ,KAAM,CAAC,KAAK,QCE7B,OAAO,UAAU,KAAO,SACpB,KAAc,SAChB,MAAA,MAAK,kBACE,QAAQ,KAAM,CAAC,KAAM,WCD9B,OAAO,UAAU,KAAO,SACpB,KAAc,QAAiB,OACjC,MAAA,MAAK,kBACE,QAAQ,KAAM,CAAC,KAAM,QAAS,SCFvC,OAAO,UAAU,KAAO,SACpB,KAAc,QAAiB,MAAe,QAChD,MAAA,MAAK,kBACE,QAAQ,KAAM,CAAC,KAAM,QAAS,MAAO,UCA9C,OAAO,UAAU,KAAO,SACpB,KAAc,QAAiB,MAAe,OAC9C,QACF,MAAA,MAAK,kBACE,QAAQ,KAAM,CAAC,KAAM,QAAS,MAAO,OAAQ,UChBtD,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCFf,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCJd,OAAO,UAAU,MAAQ,SAA2B,GAClD,MAAA,MAAK,kBACE,MAAM,KAAM,ICArB,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCDf,OAAO,UAAU,QAAU,SACd,WACT,QAAkC,KAClC,iBACF,MAAA,MAAK,kBACE,QAAQ,KAAM,WAAY,QAAS,KAAK,kBCPjD,OAAO,UAAU,eAAiB,SAC9B,WAAsB,OACxB,MAAA,MAAK,kBACE,eAAe,KAAM,WAAY,QCC1C,OAAO,UAAU,UAAY,SACzB,MACA,SACA,OACA,OACA,iBACF,MAAA,MAAK,kBACE,UAAU,KAAM,MAAM,SAAU,OAAQ,OAAO,kBCXxD,OAAO,UAAU,YAAc,SAAyB,OAEtD,MAAA,MAAK,kBACE,YAAY,KAAM,QCF3B,OAAO,UAAU,KAAO,SAA2B,OACjD,MAAA,MAAK,kBACE,KAAK,KAAM,QCFpB,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,YAAc,SAC3B,KAAa,MACf,MAAA,MAAK,kBACE,YAAY,KAAM,KAAK,OCLhC,OAAO,UAAU,OAAS,SACtB,EAA0B,MAC5B,MAAA,MAAK,kBACD,YAAa,SACf,GAAI,CAAC,IAEA,OAAO,CAAC,KAAM,GAAG,GAAI,OCF9B,OAAO,UAAU,OAAS,SACtB,OAA+B,OAC/B,KAA4C,WAC5C,SAAmB,iBACrB,MAAA,MAAK,kBACE,OACI,KAAM,OAAQ,OAAQ,KAAK,WAAY,SACvC,kBCPb,OAAO,UAAU,gBAAkB,SAC/B,OACA,YACA,QAAkC,KAClC,iBACF,MAAA,MAAK,kBACE,gBACI,KAAM,OAAQ,YAAa,QAAS,KAAK,kBCPtD,OAAO,UAAU,OAAS,SACtB,OAA+B,QAC/B,KAA4B,WAC5B,UACA,iBACF,MAAA,MAAK,kBACE,OACI,KAAM,OAAQ,QAAS,KAAK,WAAY,UACxC,kBCVb,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCFb,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCHd,OAAO,UAAU,OAAS,SACtB,KAAe,UAAqB,UACtC,MAAA,MAAK,kBACE,OAAO,KAAM,KAAM,UAAW,WCHvC,OAAO,UAAU,aAAe,SAC5B,UAAmB,YACrB,MAAA,MAAK,kBACE,aAAa,KAAM,UAAW,aCIvC,OAAO,UAAU,gBAAkB,SAC/B,OAA+B,QAC/B,KAA4B,WAC5B,UACA,iBACF,MAAA,iBAAgB,8DAChB,KAAK,kBACE,gBACI,KAAM,OAAQ,QAAS,KAAK,WAAY,UACxC,kBCbb,OAAO,UAAU,gBAAkB,SAC/B,OAA+B,QAC/B,KAA4B,WAC5B,UACA,iBACF,MAAA,MAAK,kBACE,gBACI,KAAM,OAAQ,QAAS,KAAK,WAAY,UACxC,kBCTb,OAAO,UAAU,WAAa,SAC1B,OAA+B,QAC/B,KAAqB,UACrB,YACF,MAAA,MAAK,kBACE,WAAW,KAAM,OAAQ,QAAS,KAAK,UAAW,aCP3D,OAAO,UAAU,SAAW,SAA2B,GAErD,MAAA,MAAK,kBACE,SAAS,KAAM,ICFxB,OAAO,UAAU,UAAY,SAChB,GACX,MAAA,MAAK,kBACE,UAAU,KAAM,ICJzB,OAAO,UAAU,IAAM,SAA2B,GAChD,MAAA,MAAK,kBACE,IAAI,KAAM,ICHnB,OAAO,UAAU,IAAM,SAA2B,GAChD,MAAA,MAAK,kBACE,IAAI,KAAM,ICFnB,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCGb,OAAO,UAAU,YAAc,SAClB,GACX,MAAA,MAAK,kBACE,YAAY,KAAM,ICR3B,OAAO,UAAU,MAAQ,SAA2B,GAClD,MAAA,MAAK,kBACE,MAAM,KAAM,ICArB,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCFb,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCJb,OAAO,UAAU,WAAa,SAA2B,MACvD,MAAA,MAAK,kBACE,WAAW,KAAM,OCA1B,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCFf,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCAb,OAAO,UAAU,QAAU,WACzB,MAAA,MAAK,kBACE,QAAQ,KAAM,CAAC,KAAK,QCJ7B,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCJf,OAAO,UAAU,SAAW,SAA2B,GAErD,MAAA,MAAK,kBACE,SAAS,KAAM,ICDxB,OAAO,UAAU,OAAS,SACb,QAA4B,MACvC,MAAA,MAAK,kBACE,OAAO,KAAM,QAAS,OCA/B,OAAO,UAAU,mBAAqB,SACzB,GACX,MAAA,MAAK,kBACE,mBAAmB,KAAM,ICRlC,OAAO,UAAU,aAAe,SAA2B,GAEzD,MAAA,MAAK,kBACE,aAAa,KAAM,ICE5B,OAAO,UAAU,cAAgB,SACpB,GACX,MAAA,MAAK,kBACE,cAAc,KAAM,ICR7B,OAAO,UAAU,QAAU,SAA2B,GACpD,MAAA,MAAK,kBACE,QAAQ,KAAM,ICAvB,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCFf,OAAO,UAAU,SAAW,WAC1B,MAAA,MAAK,kBACE,UAAS,OCFlB,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCFf,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,OAAM,OCJf,OAAO,UAAU,UAAY,SAChB,OACX,MAAA,MAAK,kBACE,UAAU,KAAM,QCEzB,OAAO,UAAU,gBAAkB,SACtB,GACX,MAAA,MAAK,kBACE,gBAAgB,KAAM,ICR/B,OAAO,UAAU,UAAY,SAA2B,GAEtD,MAAA,MAAK,kBACE,UAAU,KAAM,ICDzB,OAAO,UAAU,WAAa,SACjB,GACX,MAAA,MAAK,kBACE,WAAW,KAAM,ICL1B,OAAO,UAAU,KAAO,SAA2B,GACjD,MAAA,MAAK,kBACE,KAAK,KAAM,ICDpB,OAAO,UAAU,2BAA6B,SAC1C,YAAsB,KAAe,MAAgB,MACvD,MAAA,MAAK,kBACE,2BAA2B,KAAM,YAAa,KAAM,MAAO,OCFpE,OAAO,UAAU,WAAa,WAC5B,MAAA,MAAK,kBACE,WAAW,OCFpB,OAAO,UAAU,WAAa,SACjB,MACX,MAAA,MAAK,kBACE,WAAW,KAAM,OCJ1B,OAAO,UAAU,UAAY,SAChB,KAAwB,UACnC,MAAA,MAAK,kBACE,UAAU,KAAM,KAAM,WCF/B,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,KAAI,OCFb,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCJf,OAAO,UAAU,WAAa,SAA2B,GAEvD,MAAA,MAAK,kBACE,WAAW,KAAM,ICH1B,OAAO,UAAU,WAAa,WAC5B,MAAA,MAAK,kBACE,WAAW,OCFpB,OAAO,UAAU,UAAY,SAA2B,GAEtD,MAAA,MAAK,kBACE,UAAU,KAAM,ICHzB,OAAO,UAAU,WAAa,SAA2B,GAEvD,MAAA,MAAK,kBACE,WAAW,KAAM,ICD1B,OAAO,UAAU,OAAS,SACb,EAAsB,WAC/B,YACF,MAAA,MAAK,kBACE,OAAO,KAAM,EAAG,WAAY,aCHrC,OAAO,UAAU,QAAU,SACd,WACT,QAAkC,KAClC,iBACF,MAAA,MAAK,kBACE,QAAQ,KAAM,WAAY,QAAS,KAAK,kBCPjD,OAAO,UAAU,IAAM,SACnB,KAAwB,UAC1B,MAAA,MAAK,kBACE,IAAI,KAAM,KAAM,WCCzB,OAAO,UAAU,cAAgB,SACpB,GACX,MAAA,MAAK,kBACE,cAAc,KAAM,ICR7B,OAAO,UAAU,QAAU,SAA2B,GACpD,MAAA,MAAK,kBACE,QAAQ,KAAM,ICFvB,OAAO,UAAU,KAAO,SACpB,KAAwB,UAC1B,MAAA,MAAK,kBACE,KAAK,KAAM,KAAM,WCF1B,OAAO,UAAU,IAAM,SACnB,KAAwB,UAC1B,MAAA,MAAK,kBACE,IAAI,KAAM,KAAM,WCCzB,OAAO,UAAU,cAAgB,SACpB,GACX,MAAA,MAAK,kBACE,cAAc,KAAM,ICR7B,OAAO,UAAU,QAAU,SAA2B,GACpD,MAAA,MAAK,kBACE,QAAQ,KAAM,ICAvB,OAAO,UAAU,UAAY,SAChB,SACT,MACF,MAAA,MAAK,kBACE,UAAU,KAAM,SAAU,OCDnC,OAAO,UAAU,UAAY,SAChB,GACX,MAAA,MAAK,kBACE,UAAU,KAAM,ICRzB,OAAO,UAAU,IAAM,SAA2B,GAChD,MAAA,MAAK,kBACE,IAAI,KAAM,ICGnB,OAAO,UAAU,UAAY,SAChB,GACX,MAAA,MAAK,kBACE,UAAU,KAAM,ICRzB,OAAO,UAAU,IAAM,SAA2B,GAChD,MAAA,MAAK,kBACE,IAAI,KAAM,ICAnB,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCAb,OAAO,UAAU,KAAO,SACpB,IAAgC,KAChC,UACF,MAAA,MAAK,kBACE,KAAK,KAAM,IAAK,KAAM,WCH/B,OAAO,UAAU,eAAiB,SACrB,GACX,MAAA,MAAK,kBACE,eAAe,KAAM,ICR9B,OAAO,UAAU,SAAW,SAA2B,GAErD,MAAA,MAAK,kBACE,SAAS,KAAM,ICFxB,OAAO,UAAU,OAAS,SACtB,MAAe,QAAU,EAAG,SAAW,GACzC,MAAA,MAAK,kBACE,OAAO,KAAM,MAAO,QAAS,WCFtC,OAAO,UAAU,SAAW,WAC1B,MAAA,MAAK,kBACE,SAAS,OCFlB,OAAO,UAAU,IAAM,SACV,SAAmC,eAC9C,MAAA,MAAK,kBACE,IAAI,KAAM,SAAU,gBCF7B,OAAO,UAAU,KAAO,SACX,YAAsC,YAC/C,QAAgC,aAChC,SACF,MAAA,MAAK,kBACE,KAAK,KAAM,YAAa,YAAa,QAAS,aAAc,UCHrE,OAAO,UAAU,UAAY,SAA2B,MACtD,MAAA,MAAK,kBACE,UAAU,KAAM,OCPzB,OAAO,UAAU,IAAM,SAA2B,MAChD,MAAA,MAAK,kBACE,IAAI,KAAM,OCFnB,OAAO,UAAU,MAAQ,SACZ,OACX,MAAA,MAAK,kBACE,MAAM,KAAM,QCFrB,OAAO,UAAU,KAAO,SACX,KAAwB,UACnC,MAAA,MAAK,kBACE,KAAK,KAAM,KAAM,WCF1B,OAAO,UAAU,WAAa,WAC5B,MAAA,MAAK,kBACE,WAAW,OCJpB,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCMf,OAAO,UAAU,UAAY,SAA2B,GACtD,MAAA,MAAK,kBACE,QAAQ,KAAM,EAAE,QCVzB,OAAO,UAAU,QAAU,SAA2B,OACpD,MAAA,MAAK,kBACE,QAAQ,KAAM,QCAvB,OAAO,UAAU,eAAiB,SACrB,WAA8B,aACvC,kBACF,MAAA,MAAK,kBACE,eAAe,KAAM,WAAY,aAAc,mBCJxD,OAAO,UAAU,sBAAwB,SAC5B,WAA8B,aACvC,kBACF,MAAA,MAAK,kBACE,sBACH,KAAM,WAAY,aAAc,mBCPtC,OAAO,UAAU,QAAU,SACd,MACX,MAAA,MAAK,kBACE,QAAQ,KAAM,OCDvB,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,OAAM,OCFf,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,MAAM,OCJf,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCEd,OAAO,UAAU,gBAAkB,SAC/B,gBACA,gBAAsC,QACtC,KAAqB,SACrB,YACF,MAAA,MAAK,kBACE,gBACI,KAAM,gBAAiB,gBAAiB,QAAS,KAAK,SACtD,aCVb,OAAO,UAAU,QAAU,WACzB,MAAA,MAAK,kBACE,QAAQ,OCFjB,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCFb,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCDd,OAAO,UAAU,MAAQ,SACZ,MAAwB,MACnC,MAAA,MAAK,kBACE,MAAM,KAAM,MAAO,OCJ5B,OAAO,UAAU,QAAU,SAAoC,KAC7D,MAAA,MAAK,kBACE,QAAQ,KAAM,MCFvB,OAAO,UAAU,SAAW,WAC1B,MAAA,MAAK,kBACE,SAAS,OCHlB,OAAO,UAAU,eAAiB,SAC9B,WAAsB,UACxB,MAAA,MAAK,kBACE,eAAe,KAAM,WAAY,WCH1C,OAAO,UAAU,MAAQ,SACrB,gBAAkC,MACpC,MAAA,MAAK,kBACE,MAAM,KAAM,gBAAiB,OCFtC,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,KAAK,OCFd,OAAO,UAAU,OAAS,WACxB,MAAA,MAAK,kBACE,OAAO,OCHhB,OAAO,UAAU,kBAAoB,SAA2B,GAE9D,MAAA,MAAK,kBACE,kBAAkB,KAAM,ICCjC,OAAO,UAAU,wBAA0B,SAC9B,GACX,MAAA,MAAK,kBACE,wBAAwB,KAAM,ICRvC,OAAO,UAAU,QAAU,SAA2B,MACpD,MAAA,MAAK,kBACE,QAAQ,KAAM,OCFvB,OAAO,UAAU,MAAQ,SACrB,EAAoB,MACtB,KAAK,kBACL,GAAM,oBAAqB,YAAa,QAAS,CAAC,KAAM,GAAK,CAAC,KAAM,GAAG,GACvE,MAAO,OAAM,mBAAoB,OCFnC,OAAO,UAAU,KAAO,SAAoC,OAC1D,MAAA,MAAK,kBACE,KAAK,KAAM,QCCpB,OAAO,UAAU,aAAe,SACd,MAAiB,IAAe,QAC9C,UAAoB,QAAkB,aACtC,YAAsB,gBACxB,MAAA,MAAK,kBACE,aACI,KAAM,MAAO,IAAK,QAAS,UAAW,QAAS,aAC/C,YAAa,iBCP1B,OAAO,UAAU,UAAY,SAChB,GACX,MAAA,MAAK,kBACE,UAAU,KAAM,ICRzB,OAAO,UAAU,IAAM,SAA2B,GAChD,MAAA,MAAK,kBACE,IAAI,KAAM,ICFnB,OAAO,UAAU,IAAM,SACnB,KAAwB,UAC1B,MAAA,MAAK,kBACE,KAAI,KAAM,KAAM,WCDzB,OAAO,UAAU,IAAM,WACrB,MAAA,MAAK,kBACE,IAAI,OCFb,OAAO,UAAU,KAAO,WACtB,MAAA,MAAK,kBACE,MAAK,OCHd,OAAO,UAAU,KAAO,SAA2B,MACjD,MAAA,MAAK,kBACE,KAAK,KAAM,OCGpB,OAAO,UAAU,OAAS,WACxB,MAAA,MAAK,kBACE,KAAQ,KAAM,SCFvB,OAAO,UAAU,QAAU,WACzB,MAAA,MAAK,kBACE,KAAQ,KAAM,YCFvB,OAAO,UAAU,MAAQ,WACvB,MAAA,MAAK,kBACE,KAAQ,KAAM,UCNvB,OAAO,UAAU,KAAO,SACX,EAAY,QACvB,MAAA,MAAK,kBACE,KAAK,KAAM,EAAG,SCJvB,OAAO,UAAU,UAAY,SAChB,MACX,MAAA,MAAK,kBACE,UAAU,KAAM,OCHzB,OAAO,UAAU,OAAS,SACb,MACX,MAAA,MAAK,kBACE,OAAO,KAAM,OCFtB,OAAO,UAAU,mBAAqB,SACzB,WAAmC,aAC9C,MAAA,MAAK,kBACE,mBAAmB,KAAM,WAAY,cCL9C,OAAO,UAAU,QAAU,SAA2B,MACpD,MAAA,MAAK,kBACE,QAAQ,KAAM,OCAvB,OAAO,UAAU,MAAQ,SACrB,UAA8B,GAChC,MAAA,MAAK,kBACE,MAAM,UAAW,KAAM,ICHhC,OAAO,UAAU,UAAY,WAC3B,MAAA,MAAK,kBACE,UAAU,OGXb,0BACF,QAAiC,QAC9B,MAAM,QAAQ,UACjB,SAAS,CAAC,UAEZ,QAAO,QAAQ,IACT,GAAK,MACP,aAAK,OACD,EAAE,QAAU,YACZ,IAAM,GACF,mECVd,GAAM,YAAY,qBAAa,UAnB/B,eAAA,aAoCoC,eAMlC,cACE,QANK,KAAA,UAAY,GAGX,KAAA,SAAW,GAIjB,KAAK,KAAO,GAAI,aAAY,KAAM,UAGpC,MAAM,OAAoC,MAAiB,OAErD,KAAK,UACP,MAAK,SAAW,GACZ,MAAM,IAAI,YACZ,qBAAa,KACT;;;gCAYR,GAAM,QAAS,GAEf,MAAA,MAAK,KAAK,IAAI,OAAQ,CAAC,OAAQ,MAAO,SAAU,IAEzC,OAST,eACI,MAAiB,MACjB,QACF,GAAI,OACJ,GAAI,QAAU,UAAY,QAAU,MAAQ,OAAO,OAAS,GACxD,aAAK,SAAS,OAAO,KACvB,GAAM,eACD,OAA0B,IAAI,GAAK,aAAK,aAAa,IAE1D,MAAQ,KAAK,MAAM,cAAe,MAAO,WAEzC,OAAQ,KAAK,MAAM,OAAsB,MAAO,OAGlD,MAAO,CAAC,OAAQ,MAAO,MAAO,OAIhC,OAAO,QACL,GAAM,YAAa,KAAK,KAAK,IAAI,QACjC,WAAW,WAIb,OAAO,QACL,GAAI,KAAK,KAAK,IAAI,SAChB,GAAM,YAAa,KAAK,KAAK,IAAI,QACjC,WAAW,YAIf,KACI,OAAgB,OAAoC,MACpD,OACF,KAAK,KAAK,IAAI,OAAQ,CAAC,OAAQ,MAAO,SAAU,IAGlD,aACE,MAAO,MAAK,KAAK,kBAGb,MAAK,QACT,MAAO,MAAK,SAAS,QAEvB,SAAS,QACP,GAAM,CAAC,MAAO,oBAAsB,KAAK,KAAK,IAAI,QAElD,GAAI,QAAU,aACZ,GAAM,YACF,KAAK,SAAS,mBAAmB,KAAK,QACpC,WACF,KAAK,SAAS,mBAAmB,KAAK,QAC1C,MAAO,sBAAa,uBAAuB,WAAY,YAGzD,MAAO,MAAK,KAAK,IAAI,QAAQ,OAG/B,WAA2B,GACzB,GAAM,OAAO,KAAK,SAAS,EAAE,QACzB,YAAc,MAClB,GAAI,EAAE,QAAU,SACd,IAEE,YAAe,MAAsB,IAAI,GAAK,aAAK,aAAa,UAChE,IACA,KAAM,IAAI,OAAM,oDAGpB,MAAO,QAAO,EAAE,MAAsB,EAAE,MAAO,aAIjD,WACI,OAAoC,MAAiB,OACvD,GAAM,QAAS,KAAK,MAAM,OAAQ,MAAO,OACzC,MAAO,UAAS,qBAAqB,OAAQ,MAAO,MAAO,MAG7D,YAAY,QACV,GAAI,KAAK,KAAK,IAAI,SAChB,GAAM,CAAC,oBAAsB,KAAK,KAAK,IAAI,QAEvC,oBAAsB,MACxB,MAAK,YAAY,mBAAmB,KAAK,QACzC,KAAK,YAAY,mBAAmB,KAAK,SAG3C,KAAK,KAAK,OAAO,SAIrB,8BAA8B,YAC5B,GAAM,QAAS,WAAW,OAE1B,GAAI,KAAK,KAAK,IAAI,SAChB,GAAM,YAAa,KAAK,KAAK,IAAI,QAEjC,WAAW,WAEP,WAAW,SAAW,GACxB,KAAK,YAAY,cAKjB,MAAK,GACT,GAAM,OAAQ,aAAK,MACnB,MAAA,KAEO,CAAC,SADS,aAAK,MAAQ,OAIhC,SACE,MAAO,CAEL,WAAY,GACZ,QACI,CAAC,uHAKT,MAAM,WACJ,iBAAiB,CAAC,WAAY,SAE9B,GAAM,UAAW,KAAK,SAAS,UAAU,QACzC,MAAO,YAAU,UAAU,MAAO,UAGpC,WAEA,iBACE,MAAO,IAIT,UACE,MAAO,OAAM,YCxNjB,eAAA,GAAA,UAAA,eAAA,CAAA,QAAA,IAAA,QAAA,aAAA,IAAA,aAAA,mBAAA,IAAA,mBAAA,SAAA,IAAA,SAAA,WAAA,IAAA,WAAA,QAAA,IAAA,QAAA,UAAA,IAAA,UAAA,UAAA,IAAA,UAAA,aAAA,IAAA,aAAA,YAAA,IAAA,YAAA,SAAA,IAAA,SAAA,aAAA,IAAA,aAAA,QAAA,IAAA,QAAA,QAAA,IAAA,QAAA,YAAA,IAAA,YAAA,YAAA,IAAA,YAAA,aAAA,IAAA,aAAA,QAAA,IAAA,QAAA,aAAA,IAAA,aAAA,SAAA,IAAA,SAAA,UAAA,IAAA,UAAA,UAAA,IAAA,UAAA,cAAA,IAAA,cAAA,UAAA,IAAA,UAAA,sBAAA,IAAA,sBAAA,iBAAA,IAAA,iBAAA,QAAA,IAAA,QAAA,SAAA,IAAA,SAAA,SAAA,IAAA,SAAA,cAAA,IAAA,cAAA,WAAA,IAAA,aCsBM,uBAAwB,MAC5B,GAAM,cAAe,GAAI,cAAa,KAAK,QAC3C,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,EACjC,aAAa,GAAK,KAAK,IAAI,KAAK,IAElC,MAAO,cAGF,GAAM,MAAO,OAClB,GAAM,CAAC,GAAK,KAAK,OACX,WAAa,KAAK,QAExB,iBAAiB,EAAG,OAEpB,GAAI,cAAe,GAAI,cAAa,aAAK,cAAc,EAAE,QACnD,OAAS,WAAW,KAAK,IAAI,EAAE,QAAQ,OAC7C,MAAA,cAAe,cAAc,QAEtB,WAAW,WAAW,aAAc,EAAE,MAAO,YAGzC,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCtBR,sCAAuC,KAE3C,MAAO,CAAC,OAAkB,OAAkB,MACpC,MAAmB,SACzB,GAAM,UAAW,qBAAa,2BAA2B,OAAQ,QAE3D,WAAa,SAAS,OACtB,cAAgB,aAAK,eAAe,UACpC,WAAa,aAAK,cAAc,UAEhC,OACF,aAAK,uBAAuB,MAA0B,YAEpD,MAAQ,OAAO,OACf,MAAQ,OAAO,OAEf,SAAW,aAAK,eAAe,QAC/B,SAAW,aAAK,eAAe,QAE/B,eAAiB,qBAAa,iBAAiB,OAAQ,UACvD,eAAiB,qBAAa,iBAAiB,OAAQ,UAE7D,GAAI,eAAe,OAAS,eAAe,SAAW,EACpD,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,EAAE,EACnC,OAAO,GAAK,IAAG,MAAM,EAAI,MAAM,QAAS,MAAM,EAAI,MAAM,aAG1D,QAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,EAAE,GACnC,GAAM,KAAM,aAAK,WAAW,EAAG,WAAY,eAErC,KAAO,IAAI,MAAM,CAAC,OACxB,eAAe,QAAQ,GAAK,KAAK,GAAK,GACtC,GAAM,QAAS,aAAK,WAAW,KAAM,MAAO,UAEtC,KAAO,IAAI,MAAM,CAAC,OACxB,eAAe,QAAQ,GAAK,KAAK,GAAK,GACtC,GAAM,QAAS,aAAK,WAAW,KAAM,MAAO,UAE5C,OAAO,GAAK,IAAG,MAAM,QAAS,MAAM,SAIxC,MAAO,CAAC,OAAQ,WC7Cd,kBAAkB,MAEtB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,KAAA,MAAM,KAAA,OAAQ,OAEf,SAAW,UAAQ,KAAK,IAAI,MAAK,QAAQ,OACzC,SAAW,UAAQ,KAAK,IAAI,MAAK,QAAQ,OAEzC,YAAc,UAAQ,eAAe,MAAK,MAAO,aAEjD,SAAU,UAAQ,KAAK,IAAI,YAAY,QAK7C,MAAA,UAAQ,mBAAqB,CAC3B,KAAM,UAAQ,eAAe,MAAK,MAAO,UAAW,UACpD,KAAM,UAAQ,eAAe,MAAK,MAAO,UAAW,WAG/C,YAGF,GAAM,eAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UCpBR,gBACF,UAAyB,MACzB,MAAkB,WACpB,GAAI,QAAU,aACZ,GAAM,OAAO,OAAM,UAAS,MAAO,WAC7B,MAAO,OAAM,UAAS,MAAO,WAEnC,MAAO,UAAQ,CAAC,OAAQ,CAAC,KAAA,MAAM,KAAA,OAAO,QAAA,YAGxC,GAAM,QAAS,aAAK,oBAAoB,aAAK,cAAc,OAAQ,OAEnE,MAAO,WAAQ,eAAe,MAAO,MAAO,QClBxC,kBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEZ,MAAA,WAAQ,OAAO,EAAE,QAEV,CAAC,OAAQ,EAAE,OAAQ,MAAO,EAAE,MAAO,MAAO,EAAE,OAG9C,GAAM,gBAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,UCbR,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,MAAA,QAAS,OAEV,MAAO,UAAQ,KAAK,IAAI,OAAM,QAAQ,mBAAmB,KACzD,QAAU,UAAQ,KAAK,IAAI,MAAK,QAAQ,OAK9C,MAAO,WAAQ,eAAe,MAAK,MAAO,MAAK,MAAO,SAGjD,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCZR,eACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,OAAS,MAGhB,GAAI,QAAU,aACZ,GAAI,EAAE,QAAU,YACd,MAAO,UAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YAGhC,GAAM,iBAAkB,OAAM,UAAS,EAAE,MAAO,EAAE,OAC5C,OAAS,MAAK,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,aAEpD,OACF,SAAQ,CAAC,OAAQ,CAAC,KAAM,OAAQ,KAAM,iBAAkB,QAAA,YAE5D,MAAA,WAAQ,8BAA8B,iBACtC,UAAQ,8BAA8B,QAE/B,OAIT,GAAI,EAAE,QAAU,aACd,GAAM,UAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,OAAS,MAAK,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,UAAS,MAAO,CAAC,SAE7D,MAAA,WAAQ,8BAA8B,UAE/B,OAGT,GAAI,CAAC,aAAK,gBAAgB,EAAE,MAAO,QAGjC,GAAM,QAAS,SAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YACtC,MAAO,CAAC,OAAQ,OAAO,OAAQ,MAAO,OAAO,MAAO,OAGtD,GAAI,QAAU,SACZ,GAAM,QAAS,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACpC,aAAe,WAAW,KAAK,QACrC,MAAO,WAAQ,eAAe,EAAE,MAAO,QAAS,cAGlD,GAAI,QAAU,QAIZ,GAAM,OAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,KAAO,aAAK,aAAa,CAAC,GAAI,EAAE,OAEhC,CAAC,WAAY,aAAe,6BAC9B,CAAC,EAAG,IAAO,IAAM,EAAK,EAAI,GAAG,EAAE,MAAO,GAAI,MAAO,KAAM,QAE3D,MAAO,WAAQ,eAAe,YAAa,OAAQ,YAGrD,KAAM,IAAI,OAAM,iCAAiC,EAAE,YAAY,SAG1D,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCxDR,0BACF,KAAc,WACd,YAAuC,OACzC,MAAI,cAAe,KACV,CAAC,CAAC,OAAQ,QAAA,cACf,GAAM,CAAC,EAAG,GAAK,OACT,WAAa,UAEnB,iBAAiB,CAAC,EAAG,GAAI,MAEzB,GAAM,OAAQ,WAAW,KAAK,IAAI,EAAE,QAAQ,OACtC,MAAQ,WAAW,KAAK,IAAI,EAAE,QAAQ,OAEtC,OAAS,OAAS,EAAE,MAEpB,CAAC,WAAY,aACf,WAAW,EAAE,MAAO,EAAE,MAAO,MAAO,MAAO,QAE/C,MAAO,YAAW,eAAe,YAAa,OAAQ,aAInD,CAAC,CAAC,OAAQ,QAAA,cACf,GAAM,CAAC,EAAG,GAAK,OACT,WAAa,UAEnB,GAAI,EAAE,QAAU,aAAe,EAAE,QAAU,aACzC,GAAM,WAAY,MACd,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAS,WAAY,MAAO,CAAC,MAAO,eAEnD,cAAgB,WAAW,KAAK,IAAI,UAAU,QAE9C,MAAQ,cAAc,mBAAmB,KACzC,MAAQ,cAAc,mBAAmB,KAEzC,UACF,WAAW,KAAK,IAAI,MAAM,QAAQ,OAChC,UACF,WAAW,KAAK,IAAI,MAAM,QAAQ,OAEhC,UAAY,MACd,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAS,WAAY,MAAO,CAAC,MAAO,eAEnD,cAAgB,WAAW,KAAK,IAAI,UAAU,QAE9C,MAAQ,cAAc,mBAAmB,KACzC,MAAQ,cAAc,mBAAmB,KAEzC,UACF,WAAW,KAAK,IAAI,MAAM,QAAQ,OAChC,UACF,WAAW,KAAK,IAAI,MAAM,QAAQ,OAEhC,CAAC,eAAgB,eAAgB,aAAe,YAClD,EAAE,MAAO,EAAE,MAAO,UAAW,UAAW,UAAW,WAEjD,WACF,WAAW,eAAe,YAAa,UAAW,gBAEhD,WACF,WAAW,eAAe,YAAa,UAAW,gBAEhD,OAAS,SACX,CAAC,OAAQ,CAAC,KAAM,WAAY,KAAM,YAAa,QAAS,aAE5D,MAAA,YAAW,8BAA8B,WACzC,WAAW,8BAA8B,WACzC,WAAW,8BAA8B,YACzC,WAAW,8BAA8B,YAElC,YAEP,GAAM,OAAQ,WAAW,KAAK,IAAI,EAAE,QAAQ,OACtC,MAAQ,WAAW,KAAK,IAAI,EAAE,QAAQ,OAEtC,OAAS,OAAS,EAAE,MAEpB,CAAC,WAAY,aACf,WAAW,EAAE,MAAO,EAAE,MAAO,MAAO,MAAO,QAE/C,MAAO,YAAW,eAAe,YAAa,OAAQ,cAStD,uCAAwC,KAE5C,MAAO,CAAC,OAAkB,OAAkB,UACpC,UAAyB,UACzB,aACN,GAAM,aAAc,qBAAa,2BAA2B,OAAQ,QAC9D,WAAa,aAAK,cAAc,aAChC,WAAa,YAAY,OACzB,cAAgB,aAAK,eAAe,aAEpC,eAAiB,aAAK,uBAAuB,UAAW,YACxD,eAAiB,aAAK,uBAAuB,UAAW,YAExD,eAAiB,qBAAa,iBAAiB,OAAQ,aACvD,eAAiB,qBAAa,iBAAiB,OAAQ,aAEvD,MAAQ,qBAAa,uBAAuB,UAAW,WACvD,MAAQ,qBAAa,uBAAuB,UAAW,WAEvD,MAAQ,OAAO,OACf,SAAW,aAAK,eAAe,QAE/B,MAAQ,OAAO,OACf,SAAW,aAAK,eAAe,QAErC,GAAI,eAAe,OAAS,eAAe,SAAW,EACpD,OAAS,GAAI,EAAG,EAAI,eAAe,OAAQ,KACzC,GAAM,MAAO,EAAI,MAAM,OACjB,KAAO,EAAI,MAAM,OAEjB,OACF,IAAG,MAAM,KAAO,GAAI,MAAM,KAAO,EAAI,GAAI,MAAM,KAAO,GACnD,MAAM,KAAO,EAAI,IAExB,eAAe,GAAK,OAAO,KAC3B,eAAe,GAAK,OAAO,SAG7B,QAAS,GAAI,EAAG,EAAI,eAAe,OAAQ,KACzC,GAAM,KAAM,aAAK,WAAW,EAAG,WAAY,eAErC,KAAO,IAAI,MAAM,CAAC,OACxB,eAAe,QAAQ,GAAK,KAAK,GAAK,GACtC,GAAM,QAAS,aAAK,WAAW,KAAM,MAAO,UAEtC,KAAO,IAAI,MAAM,CAAC,OACxB,eAAe,QAAQ,GAAK,KAAK,GAAK,GACtC,GAAM,QAAS,aAAK,WAAW,KAAM,MAAO,UAEtC,SACF,IAAG,MAAM,OAAS,GAAI,MAAM,OAAS,EAAI,GAAI,MAAM,OAAS,GACzD,MAAM,OAAS,EAAI,IAE1B,eAAe,GAAK,SAAS,KAC7B,eAAe,GAAK,SAAS,KAGjC,MAAO,CAAC,eAAgB,eAAgB,cCjKrC,GAAM,SAAU,6BAA8B,CAAC,EAAG,IAAM,EAAI,GACtD,eACT,8BAA+B,CAAC,MAAO,MAAO,MAAO,QAC5C,EAAC,KAAM,MAAQ,MAAO,KAAM,MAAQ,SAGpC,KAAM,iBAAiB,IAAK,QAAS,gBAErC,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCdR,sBACF,MAAmB,YAAyB,aAC5C,aAAwB,MAC1B,GAAM,aAAc,aAAK,cAAc,cACjC,QAAU,aAAK,oBAAoB,KAAM,cAE/C,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,KAChC,GAAM,OAAQ,MAAM,GACpB,GAAI,MAAQ,EACV,KAAM,IAAI,OAAM,iCAGd,OAAS,MAIT,aAAc,EAChB,QAAQ,QAAU,YAAY,GAE9B,QAAQ,QAAU,GAItB,MAAO,SAGH,4BACF,KAAuB,WAA6B,KACpD,aAAe,IACjB,GAAM,SAAU,KAAK,MAAM,GACrB,QAAU,KAAK,MAAM,GAErB,OAAS,OAAO,CAAC,QAAS,MAAO,WAAW,OAElD,OAAS,GAAI,EAAG,EAAI,QAAS,IAC3B,OAAS,GAAI,EAAG,EAAI,QAAS,KAC3B,GAAM,OAAQ,KAAK,IAAI,EAAG,GAC1B,GAAI,MAAQ,EACV,KAAM,IAAI,OAAM,iCAGd,OAAS,MAIT,cACF,OAAO,IAAI,EAAG,EAAG,OAEb,WAAW,KAAO,EACpB,OAAO,IAAI,OAAO,IAAI,EAAG,OAAS,WAAW,IAAI,EAAG,GAAI,EAAG,OAE3D,OAAO,IAAI,OAAO,IAAI,EAAG,OAAS,EAAG,EAAG,QAMhD,MAAO,QCpDH,+BAAgC,KAEpC,MAAO,CAAC,OAAQ,MAAO,SACrB,GAAM,WACF,aAAK,uBAAuB,MAA0B,OAAO,QACjE,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,EAAE,EACnC,UAAU,GAAK,IAAG,OAAO,GAAI,OAE/B,MAAO,YCAL,yBACF,KAAc,IAA0B,OAC1C,MAAO,CAAC,CAAC,OAAQ,MAAO,QAAA,cACtB,GAAM,CAAC,GAAK,OAEZ,GADA,iBAAiB,EAAG,MAChB,EAAE,QAAU,UAAY,QAAU,SACpC,KAAM,IAAI,OAAM,wDAGlB,GAAM,YAAa,UACb,OAAS,WAAW,KAAK,IAAI,EAAE,QAAQ,OACvC,MAAQ,aAAK,cAAc,EAAE,OAC7B,OAAS,OAAS,EAAE,MACpB,UAAY,aAAK,kBAAkB,OAAQ,OACjD,OAAS,GAAI,EAAG,EAAI,MAAO,EAAE,EAC3B,UAAU,GAAK,IAAG,OAAO,GAAI,OAE/B,MAAO,YAAW,eAAe,EAAE,MAAO,OAAQ,YAahD,iCACF,KAAc,UAA4B,OAC5C,MAAO,CAAC,CAAC,OAAQ,MAAO,QAAA,cACtB,GAAM,CAAC,GAAK,OAEZ,GADA,iBAAiB,EAAG,MAChB,EAAE,QAAU,UAAY,QAAU,SACpC,KAAM,IAAI,OAAM,wDAGlB,GAAM,YAAa,UACb,OAAS,WAAW,KAAK,IAAI,EAAE,QAAQ,OACvC,OAAS,OAAS,EAAE,MACpB,UAAY,UAAU,OAAQ,OAAQ,OAC5C,MAAO,YAAW,eAAe,EAAE,MAAO,OAAQ,YCrD/C,GAAM,UAAW,sBAAuB,IAAO,KAAK,KAAK,KACnD,MAAO,wBAAwB,KAAM,UAErC,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCTR,oBACF,OAAuD,SACvD,MAAiB,cACnB,GAAM,SAAU,aAAK,kBAAkB,MAAO,aAAK,cAAc,WAEjE,GAAI,cAAgB,QAAU,UAE5B,GAAI,QAAS,EACb,OAAO,QAAQ,SACb,GAAM,MAAO,aAAK,cAAc,OAAM,OAErC,QAAuB,IAAI,OAAM,KAAoB,QACtD,QAAU,YAGZ,GAAI,WAAY,EAEhB,OAAO,QAAQ,SACb,GAAM,aAAc,QAAU,SAC1B,qBAAa,uBAAuB,OAAM,MAC1C,OAAM,KAEN,KAAO,EAEX,OAAS,KAAM,EAAG,IAAM,OAAM,MAAM,GAAI,EAAE,KACxC,GAAM,QAAS,IAAM,SAAS,GAAK,UACnC,OAAS,KAAM,EAAG,IAAM,OAAM,MAAM,GAAI,EAAE,IACxC,QAAQ,OAAS,KAAO,YAAY,QAIxC,WAAa,OAAM,MAAM,KAI7B,MAAO,SChCF,GAAM,SAAU,sBAAuB,IAAO,KAAK,IAAI,KACjD,KAAM,wBAAwB,IAAK,SAEnC,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCND,UAAY,sBAAuB,IAAO,KAAK,MAAM,KACrD,OAAQ,wBAAwB,MAAO,WAEvC,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCND,UAAY,sBAAuB,IAAO,KAAK,MAAM,KACrD,OAAQ,wBAAwB,MAAO,WAEvC,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCTR,sBACF,KAA0B,WAC1B,oBACF,GAAM,QAAS,OAAO,mBAAoB,KAAK,OAC/C,OAAS,GAAI,EAAG,EAAI,OAAO,KAAM,EAAE,GAGjC,GAAM,aAFS,OAAO,WAAW,GAEI,QAC/B,SAAW,YAAY,GACvB,WAAa,YAAY,GACzB,aAAe,WAAW,WAAW,CAAC,SAAU,aACtD,YAAY,GAAK,WAAW,OAAO,cAEnC,GAAM,eAAgB,KAAK,WAAW,aACtC,OAAO,OAAO,GAAK,KAAK,OAAO,eAGjC,MAAO,QCdF,GAAM,aACT,6BAA6B,CAAC,EAAW,IAAe,EAAI,EAAK,EAAI,GAC5D,SACT,iBAAiB,QAAS,YAAa,KAAwB,QAEtD,cAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UCRD,SACT,6BAA6B,CAAC,EAAW,IAAe,EAAI,EAAK,EAAI,GAC5D,MACT,iBAAiB,KAAM,SAAU,KAAwB,QAEhD,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCXR,sBACF,MAAe,KAAc,KAC/B,GAAM,OAAQ,MAAO,OAAU,KAAM,GAE/B,OAAS,aAAK,oBAAoB,IAAK,WAC7C,OAAO,GAAK,MACZ,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,OAAO,GAAK,OAAO,EAAI,GAAK,MAG9B,MAAO,QCPF,GAAM,SAAU,sBAAuB,IAAO,KAAK,IAAI,KACjD,KAAM,wBAAwB,IAAK,SAEnC,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCTR,iBACF,MAAmB,WAAoB,SACvC,OACF,GAAM,MAAO,aAAK,uBACd,MAA0B,aAAK,cAAc,WAEjD,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,GACjC,GAAM,QAAS,EAAI,WACf,KAAM,MAAM,QAChB,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,GAChC,GAAM,OAAQ,MAAM,OAAS,GACzB,MAAQ,MACV,MAAM,OAGV,KAAK,GAAK,KAEZ,MAAO,MCdF,GAAM,aAAc,6BACtB,CAAC,OAAQ,SAAW,KAAK,IAAI,OAAQ,SAC7B,SAAU,iBAAiB,QAAS,aAEpC,cAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UCPD,YAAc,6BACtB,CAAC,OAAQ,SAAW,KAAK,IAAI,OAAQ,SAC7B,SAAU,iBAAiB,QAAS,aAEpC,cAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UCRD,aACT,6BAA8B,CAAC,OAAQ,SAAW,OAAS,QAClD,oBACT,8BAA+B,CAAC,MAAO,MAAO,MAAO,QAC5C,EACL,KAAM,MAAQ,MAAQ,MAAQ,MAC9B,KAAM,MAAQ,MAAQ,MAAQ,SAIzB,SACT,iBAAiB,SAAU,aAAc,qBAEhC,eAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,UCdR,iBAAkB,MAAmB,OAAkB,QAE3D,GAAM,UACF,aAAK,kBAAkB,GAAuB,QAClD,MAAO,cAAa,GAAI,OAAQ,SAAU,MAAO,QAG7C,cAAc,MAElB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEZ,iBAAiB,EAAG,OAEpB,GAAM,OAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,CAAC,IAAK,UAAY,QAAQ,MAAO,EAAE,MAAO,EAAE,OAElD,MAAO,WAAQ,eAAe,SAAU,EAAE,MAAO,KAG5C,GAAM,WAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCxBD,aACT,6BAA8B,CAAC,EAAG,IAAO,IAAM,EAAK,EAAI,GAC/C,UACT,iBAAiB,SAAU,aAAc,KAAsB,QAEtD,eAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,WCVR,uBACF,MAAmB,OAAkB,MAAiB,KACtD,UACF,GAAM,OAAQ,OAAO,OACf,MAAQ,aAAK,cAAc,QAC3B,SAAW,aAAK,eAAe,QAC/B,WAAa,aAAK,eAAe,UAEjC,OAAS,aAAK,uBAChB,MAA0B,aAAK,cAAc,WAEjD,OAAS,GAAI,EAAG,EAAI,MAAO,EAAE,GAC3B,GAAM,KAAM,aAAK,WAAW,EAAG,MAAO,UAGhC,OAAmB,GAAI,OAAM,IAAI,QACvC,OAAS,IAAI,EAAG,GAAI,OAAO,OAAQ,KACjC,OAAO,IAAK,IAAI,KAAK,KAGvB,GAAM,UAAW,aAAK,WAAW,OAAQ,MAAO,YAChD,OAAO,UAAY,MAAM,GAE3B,MAAO,QCnBH,oBAAoB,MAKxB,GAAM,CAAC,OAAQ,MAAO,QAAA,WAAW,KAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MAEf,iBAAiB,EAAG,aAEpB,GAAM,OAAQ,EAAE,MAAM,OAEhB,SAAqB,GAAI,OAAM,OACrC,OAAS,GAAI,EAAG,EAAI,SAAS,OAAQ,IACnC,SAAS,GAAK,EAAE,MAAM,KAAK,IAG7B,GAAM,QAAS,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACpC,OAAS,cAAc,OAAQ,EAAE,MAAO,EAAE,MAAO,KAAM,UAG7D,MAAO,CAAC,OADO,UAAQ,MAAM,OAAQ,SAAU,EAAE,OACjC,MAAO,SAAU,MAAO,EAAE,OAGrC,GAAM,iBAAgC,CAC3C,WAAY,UACZ,YAAa,MACb,WAAY,YC7BR,kBACF,OAAkB,OAAkB,MACpC,eAEF,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,OAAQ,eAC7C,SAAW,WAAW,OAAQ,SAC9B,QAAU,aAAK,oBACD,aAAK,cAAc,UAAW,UAC5C,WAAa,aAAK,cAAc,aAEtC,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,EAAE,GACpC,GAAM,QAAS,EAAI,WACf,MAAO,EACX,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,EAChC,OAAQ,MAAM,OAAS,GAEzB,QAAQ,GAAK,MAGf,MAAO,CAAC,QAAS,SAAU,UAGvB,eACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEzB,iBAAiB,EAAG,QAEpB,GAAM,OAAQ,EAAE,MAAM,OAChB,KAAO,aAAK,eAAe,KAAM,EAAE,OAEnC,YAAc,qBAAa,mBAAmB,KAAM,OACtD,cAAgB,KAChB,UAAY,EACV,wBAA0B,GAC5B,aAAe,MACjB,WAAY,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,eAC3D,wBAAwB,KAAK,WAC7B,cAAgB,qBAAa,iBAAiB,cAAc,OAAQ,QAGtE,GAAM,OAAQ,UAAQ,KAAK,IAAI,UAAU,QAAQ,OAC3C,CAAC,QAAS,SAAU,UACtB,SAAS,UAAU,MAAO,UAAU,MAAO,MAAO,eAElD,YAAc,SAClB,MAAI,WACF,aAAc,qBAAa,qBAAqB,SAAU,OAG5D,wBAAwB,QACpB,GAAK,UAAQ,8BAA8B,IAExC,UAAQ,eAAe,YAAa,SAAU,SAGhD,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCnER,mBACF,MAAe,KAAc,MAC7B,OACF,GAAM,eAAgB,QAAU,KAC1B,4BAA8B,MAAQ,MAAQ,MAAO,EACrD,4BAA8B,KAAO,OAAS,MAAO,EAE3D,GAAI,eAAiB,6BACjB,4BACF,MAAO,cAAK,oBAAoB,EAAG,OAGrC,GAAM,aAAc,KAAK,IAAI,KAAK,KAAM,MAAO,OAAS,QAClD,OAAS,aAAK,oBAAoB,YAAa,OAEjD,KAAO,OAAS,QAAS,GAG3B,OAAO,IAGT,OAAO,GAAK,MACZ,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,OAAO,GAAK,OAAO,EAAI,GAAK,MAE9B,MAAO,QCtBF,GAAM,WAAY,sBAAuB,IAAO,EAAI,KAAK,KAAK,KACxD,OAAQ,wBAAwB,MAAO,WAEvC,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCNR,mBACF,KAAqB,MAAiB,KAAgB,MACtD,OACF,GAAM,aAAc,mBAAW,iBAAiB,MAAO,MAAO,MACxD,OAAS,aAAK,cAAc,MAC5B,SAAW,aAAK,eAAe,OAErC,GAAI,aACF,GAAM,YAAa,mBAAW,kBAAkB,MAAO,UAEvD,MAAI,SAAU,SACJ,KAAsB,MAAM,WAAY,WAAa,QAGvD,KAAoB,SAAS,WAAY,WAAa,QAGhE,GAAM,aAAc,QAAU,SAC1B,qBAAa,uBAAuB,MACpC,KAEE,MAAQ,OAAO,MAAO,MAAO,aAC7B,OAAS,OAAO,KAAM,OAC5B,OAAS,GAAI,EAAG,EAAI,OAAO,KAAM,EAAE,GACjC,GAAM,QAAS,OAAO,WAAW,GAC3B,MAAQ,OAAO,IAAI,CAAC,IAAa,IAAM,IAAM,MAAM,IACzD,OAAO,IAAI,MAAM,IAAI,GAAG,OAAQ,GAAG,QAGrC,MAAI,SAAU,SACL,qBAAa,uBAAuB,OAAO,QAE7C,OAAO,OAGV,gBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAO,MAAQ,MAEtB,iBAAiB,EAAG,SAEpB,GAAM,CAAC,OAAQ,OAAS,mBAAW,iBAAiB,EAAG,MAAO,MAC9D,mBAAW,kBAAkB,EAAG,OAAQ,OAExC,GAAM,MAAO,UAAQ,KAAK,IAAI,EAAE,QAAQ,OAClC,QAAU,UAAU,KAAM,OAAQ,MAAO,EAAE,MAAO,EAAE,OAC1D,MAAO,WAAQ,eAAe,MAAO,EAAE,MAAO,SAGzC,GAAM,aAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCvDD,sBAAwB,6BAA8B,CAAC,EAAG,KACrE,GAAM,MAAO,EAAI,EACjB,MAAO,MAAO,OAEH,mBACT,iBAAiB,kBAAmB,uBAE3B,wBAAwC,CACnD,WAAY,kBACZ,YAAa,MACb,WAAY,oBCbR,0BACF,SAAoB,KAAuB,QAC3C,OACF,GAAM,QAAS,OAAO,SAAU,KAAK,OAErC,OAAS,GAAI,EAAG,EAAI,OAAO,KAAM,KAC/B,GAAM,KAAM,OAAO,WAAW,GAExB,OAAmB,GAAI,OAAM,IAAI,QACvC,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,OAAO,GAAK,IAAI,GAAK,QAAQ,GAAK,MAAM,GAE1C,OAAO,IAAI,KAAK,IAAI,GAAG,QAAS,GAAG,KAGrC,MAAO,QCZF,GAAM,SACT,6BAA8B,CAAC,OAAQ,SAAW,OAAS,QAClD,eACT,8BAA+B,CAAC,MAAO,MAAO,MAAO,QAC5C,EAAC,KAAM,MAAQ,MAAO,KAAM,MAAQ,SAEpC,KAAM,iBAAiB,IAAK,QAAS,gBAErC,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCTR,kBACF,KACA,MACF,GAAM,UAAqB,GAAI,OAAM,KAAK,MAC1C,OAAS,GAAI,EAAG,EAAI,SAAS,OAAQ,IACnC,SAAS,GAAK,KAAK,MAAM,GAAK,KAAK,GAErC,GAAM,QAAS,OAAO,SAAU,KAAK,OACrC,OAAS,GAAI,EAAG,EAAI,OAAO,OAAO,OAAQ,EAAE,GAC1C,GAAM,QAAS,OAAO,WAAW,GAE3B,YAAwB,GAAI,OAAM,KAAK,MAC7C,OAAS,GAAI,EAAG,EAAI,YAAY,OAAQ,IACtC,YAAY,GAAK,OAAO,GAAK,KAAK,MAAM,GAG1C,GAAM,eAAgB,KAAK,WAAW,aAEtC,OAAO,OAAO,GAAK,KAAK,OAAO,eAEjC,MAAO,QCvBH,kBACF,EAAe,OAAkB,OAAyB,EAC1D,QAGF,GAAM,SAAU,OAAO,OAAO,OAAS,GACjC,CAAC,MAAO,MAAQ,CAAC,EAAE,OAAS,QAAS,SACrC,YAAc,aAAK,uBAAuB,OAAQ,MAAQ,GAC1D,eAAiB,aAAK,uBAAuB,QAAS,MAAQ,GAEpE,OAAS,GAAI,EAAG,EAAI,MAAO,KACzB,GAAM,QAAS,EAAI,KACb,KAAO,EAAE,SAAS,OAAQ,OAAS,MACnC,UAAmD,GACzD,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,IAC/B,UAAU,KAAK,CAAC,MAAO,KAAK,GAAI,MAAO,IAEzC,UAAU,KAAK,CAAC,EAAG,KAAM,GAAE,MAAQ,EAAE,OAErC,GAAM,WAAY,EAAI,EAChB,SAAW,YAAY,SAAS,UAAW,UAAY,GACvD,YAAc,eAAe,SAAS,UAAW,UAAY,GACnE,OAAS,GAAI,EAAG,EAAI,EAAG,IACrB,SAAS,GAAK,UAAU,GAAG,MAC3B,YAAY,GAAK,UAAU,GAAG,MAKlC,GAAM,aAAc,OAAO,QAC3B,MAAA,aAAY,YAAY,OAAS,GAAK,EAE/B,CACL,OAAO,YAA4B,OAAQ,aAC3C,OAAO,YAA4B,QAAS,iBCpC1C,oBACF,OAAuB,KAAc,MAAiB,OAMxD,GAAM,OAAQ,aAAK,eAAe,KAAM,OAAO,GAyDzC,SAAW,CAAC,EAAG,MAAM,GAAI,GAC/B,OAAS,GAAI,EAAG,EAAI,MAAO,IACzB,SAAS,IAAM,MAAM,GAEvB,SAAS,GAAK,MAAM,OACpB,OAAS,GAAI,MAAQ,EAAG,EAAI,MAAM,OAAQ,IACxC,SAAS,IAAM,MAAM,GAKvB,GAAM,gBAA0C,GAG1C,QAAU,GAAI,YAAW,MAAM,QAE/B,YAAc,GAAI,cAAa,SAAU,MAAO,QAGhD,cAA0B,GAC1B,WAAa,SAAS,KAAO,GAAK,SAAS,KAAO,EACxD,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,KAEhC,GAAI,SACJ,GAAI,WAEF,QAAU,OAAO,GAAG,gBAEpB,GAAM,YAAa,GACnB,OAAS,GAAI,EAAG,EAAI,SAAS,GAAI,IAC/B,OAAS,GAAI,EAAG,EAAI,SAAS,GAAI,IAC/B,WAAW,KAAK,YAAY,IAAI,EAAG,EAAG,IAG1C,QAAU,WAAW,KAAK,KAI5B,GAAI,eAAe,WAAa,OAC9B,QAAQ,GAAK,eAAe,cAE5B,GAAM,aAAc,OAAO,KAAK,gBAAgB,OAChD,eAAe,SAAW,YAC1B,QAAQ,GAAK,YACb,cAAc,KAAK,IAOvB,GAAM,gBAAiB,SAAS,QAChC,eAAe,GAAK,OAAO,KAAK,gBAAgB,OAChD,GAAM,cAAe,GAAI,cAAa,eAAgB,OACtD,cAAc,QAAQ,CAAC,mBAAoB,KACzC,OAAS,GAAI,EAAG,EAAI,SAAS,GAAI,IAC/B,OAAS,GAAI,EAAG,EAAI,SAAS,GAAI,IAC/B,aAAa,IAAI,YAAY,IAAI,EAAG,mBAAoB,GAAI,EAAG,EAAG,KAOxE,GAAM,aAAc,MAAM,QAC1B,MAAA,aAAY,OAAS,eAAe,GAE7B,CACL,aAAc,aAAa,OAC3B,YACA,SCtJJ,GAAM,UAAU,QC2BhB,gBAAgB,MAAO,IAAM,GAAI,gBAAkB,GCT5C,GAAM,MACT,gBAAgB,IAAM,IAAO,IAAM,EAAI,GAAM,KAAK,IAAI,IAAM,GAEnD,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCLR,oBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,OAAS,MAEhB,iBAAiB,CAAC,GAAI,aAEtB,GAAM,OAAQ,aAAK,cAAc,EAAE,OAC7B,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,QAAU,aAAK,uBAAuB,UAAW,OAEvD,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,IAChC,QAAQ,GAAK,MAAM,GAAK,EAAI,MAAQ,MAAM,GAAK,MAAM,GAGvD,MAAO,WAAQ,eAAe,EAAE,MAAO,UAAW,SAG7C,GAAM,iBAAgC,CAC3C,WAAY,UACZ,YAAa,MACb,WAAY,YCxBR,UAAY,6BACd,CAAC,OAAgB,SAAmB,OAAS,EAAI,OAAS,OAAS,QAEjE,gBAAgB,MAEpB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,EAAG,OAAS,OAEnB,iBAAiB,CAAC,EAAG,OAAQ,SAE7B,GAAM,OAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,MAAQ,UAAQ,KAAK,IAAI,MAAM,QAAQ,OAEvC,CAAC,WAAY,aACf,UAAU,EAAE,MAAO,MAAM,MAAO,MAAO,MAAO,EAAE,OAEpD,MAAO,WAAQ,eAAe,YAAa,EAAE,MAAO,YAG/C,GAAM,aAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCxBD,MAAO,gBAAgB,KAAO,IAAO,KAAK,IAAI,EAAG,KAEjD,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCLD,OACT,gBAAgB,MAAQ,IAAO,KAAK,IAAI,KAAK,IAAI,EAAG,IAAK,IAEhD,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCAR,0BACF,UAAyB,EAAe,YACxC,uBAAqC,gBACvC,GAAI,cAAe,SACjB,MAAO,UAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YACzB,GAAI,cAAe,OACxB,MAAO,OAAK,CAAC,OAAQ,CAAC,GAAI,QAAA,YACrB,GAAI,cAAe,MACxB,MAAO,MAAI,CAAC,OAAQ,CAAC,GAAI,QAAA,YACpB,GAAI,cAAe,QACxB,MAAO,QAAM,CAAC,OAAQ,CAAC,GAAI,QAAA,YACtB,GAAI,cAAe,QACxB,MAAO,QAAM,CAAC,OAAQ,CAAC,EAAG,MAAO,wBAAyB,QAAA,YACrD,GAAI,cAAe,YACxB,MAAO,YAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,kBAEzD,KAAM,IAAI,OACN,cAAc,6DCvBd,kBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,OAAS,MAEV,MAAQ,aAAK,cAAc,EAAE,OAC7B,OAAS,aAAK,uBAAuB,MAAO,OAC5C,OAAS,aAAK,cAAc,QAElC,aAAK,OACD,QAAU,OACV,IAAM,kBAAkB,eAAe,sCACzB,EAAE,cAAc,sFAGlC,UAAQ,OAAO,EAAE,QAEjB,GAAM,OAAQ,UAAQ,KAAK,IAAI,EAAE,QAEjC,GAAI,MAAM,oBAAsB,MAC9B,GAAM,OAAO,MAAM,mBAAmB,KAChC,MAAO,MAAM,mBAAmB,KAEtC,MAAK,MAAQ,OACb,MAAK,MAAQ,OAGf,MAAO,CAAC,OAAQ,EAAE,OAAQ,MAAO,OAAQ,MAAO,EAAE,OAG7C,GAAM,eAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UCjCR,qBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,GAAK,OACT,CAAC,WAAY,YAAc,MAEjC,iBAAiB,CAAC,EAAG,GAAI,UAEzB,GAAM,OAAQ,EAAE,MAAM,OAChB,MAAQ,EAAE,MAAM,OAEhB,YAAc,WAAa,EAAE,MAAM,MAAQ,GAAK,EAAE,MAAM,MAAQ,GAChE,YAAc,WAAa,EAAE,MAAM,MAAQ,GAAK,EAAE,MAAM,MAAQ,GAEhE,YAAc,WAAa,EAAE,MAAM,MAAQ,GAAK,EAAE,MAAM,MAAQ,GAChE,YAAc,WAAa,EAAE,MAAM,MAAQ,GAAK,EAAE,MAAM,MAAQ,GAEhE,WAAa,EAAE,MAAM,MAAM,EAAG,IAC9B,WAAa,EAAE,MAAM,MAAM,EAAG,IAE9B,UAAY,aAAK,cAAc,YAC/B,UAAY,aAAK,cAAc,YAE/B,oBACF,YAAc,WAAa,YAAc,GAAK,YAAc,EAEhE,aAAK,OACD,OAAS,GAAK,OAAS,GAAK,oBAC5B,IAAM,uJAEsB,oBAAoB,gBAIpD,GAAM,UADF,WAAY,UAAY,EAAE,MAAM,MAAM,EAAG,IAAM,EAAE,MAAM,MAAM,EAAG,KACjC,OAAO,CAAC,YAAa,cAExD,aAAK,OACD,cAAgB,YAChB,IAAM,kCAAkC,qBACjC,uCAAuC,EAAE,aACzC,EAAE,wBAAwB,6BACV,0BAE3B,GAAM,UAAW,WAAa,CAAC,UAAW,YAAa,aACzB,CAAC,UAAW,YAAa,aACjD,SAAW,WAAa,CAAC,UAAW,YAAa,aACzB,CAAC,UAAW,YAAa,aAGjD,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,YACvD,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,YAEvD,UAAY,WAAa,IAAI,MAAM,GAAK,IAAI,MAAM,GAClD,QAAU,WAAa,IAAI,MAAM,GAAK,IAAI,MAAM,GAChD,SAAW,WAAa,IAAI,MAAM,GAAK,IAAI,MAAM,GACjD,SAAW,KAAK,IAAI,UAAW,WAE/B,UAAY,UAAQ,KAAK,IAAI,IAAI,QAAQ,OACzC,UAAY,UAAQ,KAAK,IAAI,IAAI,QAAQ,OAEzC,WAAa,aAAK,eAAe,IAAI,OACrC,WAAa,aAAK,eAAe,IAAI,OAErC,CAAC,OAAQ,WAAY,YAAc,WACrC,CAAC,WAAW,GAAI,EAAG,WAAW,IAC9B,CAAC,WAAW,GAAI,WAAW,GAAI,GAC7B,CAAC,WAAY,WAAY,QAAU,WACrC,CAAC,EAAG,WAAW,GAAI,WAAW,IAC9B,CAAC,WAAW,GAAI,EAAG,WAAW,IAE5B,KAAO,QAAU,SACjB,OAAS,OAAO,CAAC,SAAU,QAAS,UAAW,IAAI,OAEnD,QAAU,OAAO,OACjB,UAAY,UAAQ,UAE1B,OAAS,IAAK,EAAG,GAAK,SAAU,KAC9B,OAAS,IAAK,EAAG,GAAK,QAAS,IAAM,UACnC,OAAS,IAAK,EAAG,GAAK,SAAU,IAAM,UACpC,OAAS,IAAK,EAAG,GAAK,UAAW,IAAM,WAErC,GAAM,QAAS,KAAK,IAAI,GAAK,UAAW,SAClC,OAAS,KAAK,IAAI,GAAK,UAAW,UAClC,OAAS,KAAK,IAAI,GAAK,UAAW,WAExC,OAAS,GAAI,GAAI,EAAI,OAAQ,IAC3B,OAAS,GAAI,GAAI,EAAI,OAAQ,KAC3B,GAAI,MAAM,EAEV,OAAS,GAAI,GAAI,EAAI,OAAQ,KAC3B,GAAM,cAAe,KAAK,IAAI,GAAI,UAAY,GAAK,OAC7C,aAAe,KAAK,IAAI,GAAI,UAAY,GAAK,OAC7C,KACF,UAAU,aAAe,EAAI,WAAa,EAAI,YAC5C,KACF,UAAU,EAAI,WAAa,EAAI,WAAa,cAChD,MAAO,KAAO,KAEhB,QAAQ,GAAK,KAAQ,GAAI,SAAW,KAAO,MAQvD,MAAA,WAAQ,8BAA8B,KACtC,UAAQ,8BAA8B,KAG/B,UAAQ,eACX,SAAU,OAAO,MAAO,OAAO,QAG9B,GAAM,mBAAkC,CAC7C,WAAY,YACZ,YAAa,MACb,WAAY,aCvHR,sBAAuB,MAK3B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,EAAG,KAAM,wBAA0B,OACvC,CAAC,WAAY,WAAY,WAAA,YAAY,gBAAkB,MAEzD,QACA,OACA,cAEE,cAA8B,GAIpC,QADI,YAAY,CAAC,OAAQ,CAAC,EAAG,GAAI,MAAO,CAAC,WAAY,YAAa,QAAA,YAG9D,MACF,QAAS,KAAI,CAAC,OAAQ,CAAC,EAAG,QAAS,EAAG,MAAO,QAAA,YAC7C,cAAc,KAAK,SACnB,QAAU,QAER,aACF,eAAgB,iBACZ,UAAS,QAAS,YAAY,uBAAwB,gBAC1D,cAAc,KAAK,SACnB,QAAU,eAGZ,OAAW,KAAK,eACd,UAAQ,8BAA8B,GAGxC,MAAO,SAGF,GAAM,oBAAmC,CAC9C,WAAY,aACZ,YAAa,MACb,WAAY,cC7CD,MAAO,gBAAgB,KAAO,IAAO,KAAK,KAAK,KAE/C,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCLD,OAAQ,gBAAgB,MAAQ,IAAO,KAAK,MAAM,KAElD,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCJR,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,QAAU,OAEhB,iBAAiB,OAAQ,QAEzB,GAAM,MACF,QAAQ,IAAI,GAAK,UAAQ,KAAK,IAAI,EAAE,QAAQ,QAC1C,OAAS,OAAO,QAAQ,GAAG,MAAO,QAAQ,GAAG,OAC7C,QAAU,OAAO,OACvB,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,KAClC,GAAM,UAAW,KAAK,GACtB,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,IAClC,QAAQ,IAAM,SAAS,GAI3B,MAAO,WAAQ,eAAe,OAAO,MAAO,OAAO,MAAO,OAAO,QAG5D,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCtBR,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEzB,iBAAiB,EAAG,OAEpB,GAAM,UAAW,aAAK,eAAe,KAAM,EAAE,OACzC,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,EAAE,MAAM,QAC/D,GAAK,EACL,cAAgB,MAClB,IAAK,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBACpD,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,EAAE,MAAM,SAG5D,qBAAa,2BAA2B,MAAO,KAAM,GAAG,MAAM,QAC9D,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,GAAG,MAAO,MAC/C,WAAa,aAAK,cAAc,aAChC,KAAO,aAAK,oBAAoB,aAAK,cAAc,UAAW,GAAG,OAEjE,MAAQ,UAAQ,KAAK,IAAI,GAAG,QAAQ,OAC1C,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,GACjC,GAAM,QAAS,EAAI,WACf,KAAM,MAAM,QAChB,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,GAChC,GAAM,OAAQ,MAAM,OAAS,GAC7B,KAAM,MAAO,MAEf,KAAK,GAAK,KAGR,cAAgB,MAClB,UAAQ,8BAA8B,IAGxC,GAAM,QAAS,UAAQ,eAAe,SAAU,GAAG,MAAO,MAE1D,GAAI,UACF,GAAM,eAAgB,qBAAa,qBAAqB,SAAU,UAC5D,eACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,iBAE1D,MAAA,WAAQ,8BAA8B,QAE/B,eAGT,MAAO,QAGF,GAAM,WAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCzDR,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEzB,iBAAiB,EAAG,OAEpB,GAAM,UAAW,aAAK,eAAe,KAAM,EAAE,OACzC,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,EAAE,MAAM,QAC/D,GAAK,EACL,cAAgB,MAClB,IAAK,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBACpD,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,EAAE,MAAM,SAG5D,qBAAa,2BAA2B,MAAO,KAAM,GAAG,MAAM,QAC9D,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,GAAG,MAAO,MAC/C,WAAa,aAAK,cAAc,aAChC,KAAO,aAAK,oBAAoB,aAAK,cAAc,UAAW,GAAG,OAEjE,MAAQ,UAAQ,KAAK,IAAI,GAAG,QAAQ,OAC1C,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,GACjC,GAAM,QAAS,EAAI,WACf,OAAS,MAAM,QACnB,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,GAChC,GAAM,OAAQ,MAAM,OAAS,GAC7B,OAAS,QAAU,MAErB,KAAK,GAAK,OAGR,cAAgB,MAClB,UAAQ,8BAA8B,IAGxC,GAAM,QAAS,UAAQ,eAAe,SAAU,GAAG,MAAO,MAE1D,GAAI,UACF,GAAM,eAAgB,qBAAa,qBAAqB,SAAU,UAC5D,eACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,iBAE1D,MAAA,WAAQ,8BAA8B,QAE/B,eAGT,MAAO,QAGF,GAAM,WAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MC1DR,iBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MAEf,iBAAiB,EAAG,UAEpB,GAAI,MAAO,aAAK,eAAe,KAAM,EAAE,OACjC,aAAe,qBAAa,mBAAmB,KAAM,EAAE,MAAM,QAC/D,GAAK,EACH,wBAA0B,GAC5B,cAAgB,MAClB,IAAK,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBACpD,wBAAwB,KAAK,IAC7B,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,GAAG,MAAM,SAG7D,KAAO,CAAC,KAAK,IACb,qBAAa,2BAA2B,SAAU,KAAM,GAAG,MAAM,QACjE,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,GAAG,MAAO,MAE/C,QAAU,aAAK,cAAc,UAC7B,KAAO,aAAK,oBAAoB,QAAS,SACzC,WAAa,aAAK,cAAc,aAEhC,MAAQ,UAAQ,KAAK,IAAI,GAAG,QAAQ,OAC1C,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,GACjC,GAAM,QAAS,EAAI,WACf,KAAM,MAAM,QACZ,SAAW,EACf,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,GAChC,GAAM,OAAQ,MAAM,OAAS,GACzB,MAAQ,MACV,MAAM,MACN,SAAW,GAGf,KAAK,GAAK,SAGZ,MAAA,yBAAwB,QACpB,GAAK,UAAQ,8BAA8B,IAExC,UAAQ,eAAe,SAAU,QAAS,MAG5C,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,SCpDR,iBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MAEf,iBAAiB,EAAG,UAEpB,GAAI,MAAO,aAAK,eAAe,KAAM,EAAE,OACjC,aAAe,qBAAa,mBAAmB,KAAM,EAAE,MAAM,QAC/D,GAAK,EACH,wBAA0B,GAC5B,cAAgB,MAClB,IAAK,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBACpD,wBAAwB,KAAK,IAC7B,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,GAAG,MAAM,SAG7D,KAAO,CAAC,KAAK,IACb,qBAAa,2BAA2B,SAAU,KAAM,GAAG,MAAM,QACjE,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,GAAG,MAAO,MAE/C,QAAU,aAAK,cAAc,UAC7B,KAAO,aAAK,oBAAoB,QAAS,SACzC,WAAa,aAAK,cAAc,aAEhC,MAAQ,UAAQ,KAAK,IAAI,GAAG,QAAQ,OAC1C,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,GACjC,GAAM,QAAS,EAAI,WACf,KAAM,MAAM,QACZ,SAAW,EACf,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,GAChC,GAAM,OAAQ,MAAM,OAAS,GACzB,MAAQ,MACV,MAAM,MACN,SAAW,GAGf,KAAK,GAAK,SAGZ,MAAA,yBAAwB,QACpB,GAAK,UAAQ,8BAA8B,IAExC,UAAQ,eAAe,SAAU,QAAS,MAG5C,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,SCtDD,MAAO,gBAAgB,KAAO,IAAO,KAAK,KAAK,KAE/C,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCLD,OAAQ,gBAAgB,MAAQ,IAAO,KAAK,MAAM,KAElD,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCLD,MAAO,gBAAgB,KAAO,IAAO,KAAK,KAAK,KAE/C,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCLD,UAAY,6BACrB,CAAC,OAAQ,SAAW,KAAK,MAAM,OAAQ,SAE9B,OAAQ,iBAAiB,MAAO,WAEhC,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCRD,OAAQ,gBAAgB,MAAQ,IAAO,KAAK,MAAM,KAElD,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCPR,eACF,QAAqB,OAAkB,MAAiB,QACxD,SACA,UACF,GAAM,cAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAChC,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAE3B,aACD,WAAa,MAAQ,OAAO,kBACP,OAAO,kBAE3B,OAAS,OAAO,SAAS,SAAU,OACnC,WAAa,OAAO,OAEpB,mBACF,SAAS,SAAS,GAAK,SAAS,SAAS,GAAK,SAAS,SAAS,GAC9D,iBAAmB,SAAS,SAAS,GAAK,SAAS,SAAS,GAC5D,iBAAmB,SAAS,SAAS,GAE3C,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,GACxC,GAAM,mBAAoB,EAAI,mBACxB,iBAAmB,EAAI,QAAQ,GACrC,OAAS,GAAI,EAAG,EAAI,SAAS,WAAY,EAAE,EACzC,OAAS,IAAK,EAAG,GAAK,SAAS,UAAW,EAAE,IAC1C,GAAM,UAAW,GAAK,aAAe,OAC/B,MAAQ,KAAK,IAAI,EAAG,UACpB,MACF,KAAK,IAAI,SAAS,SAAU,sBAAwB,UAClD,gBAAkB,kBAAoB,GAAK,iBACjD,OAAS,IAAK,EAAG,GAAK,SAAS,SAAU,EAAE,IACzC,GAAM,UAAW,GAAK,YAAc,QAC9B,MAAQ,KAAK,IAAI,EAAG,UACpB,MACF,KAAK,IAAI,SAAS,QAAS,qBAAuB,UAClD,YAAc,aACd,SAAW,EACX,OAAQ,EACZ,OAAS,IAAK,MAAO,GAAK,MAAO,IAAM,gBACrC,GAAM,UAAW,iBAAmB,GAAK,QAAQ,GACjD,OAAS,IAAK,MAAO,GAAK,MAAO,IAAM,eACrC,GAAM,UAAW,SAAW,GAAK,QAAQ,GACnC,MAAQ,QAAQ,SAAW,GAC5B,WAAa,OAAS,MAAQ,YACjC,YAAc,MACL,WAAa,OACtB,WAAY,MACZ,UAGJ,GAAI,MAAM,aACR,MAGJ,GAAM,cAAe,gBAAkB,GAAK,iBAAmB,EAC/D,WAAW,cACP,WAAa,MAAQ,SAAW,OAAQ,cAKpD,MAAO,QAGH,0BACF,QAAqB,OAAkB,MACvC,SAAmC,iBAAmB,GACtD,oBAAsB,IACxB,GAAM,cAAe,OAAO,SAAS,SAAU,SACzC,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAChC,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAE3B,KAAO,OAAO,OAAQ,MAAO,SACnC,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,EACxC,OAAS,GAAI,EAAG,EAAI,SAAS,WAAY,EAAE,EACzC,OAAS,IAAK,EAAG,GAAK,SAAS,UAAW,EAAE,IAC1C,GAAM,UAAW,GAAK,aAAe,OACjC,MAAQ,SACZ,KAAO,MAAQ,GACb,OAAS,eAGX,GAAM,OACF,KAAK,IAAI,SAAS,SAAU,sBAAwB,UACxD,OAAS,IAAK,EAAG,GAAK,SAAS,SAAU,EAAE,IACzC,GAAM,UAAW,GAAK,YAAc,QAChC,MAAQ,SACZ,KAAO,MAAQ,GACb,OAAS,cAEX,GAAM,OACF,KAAK,IAAI,SAAS,QAAS,qBAAuB,UAClD,SAAW,OAAO,kBAClB,YAAc,GAElB,OAAS,IAAK,MAAO,GAAK,MAAO,IAAM,gBACrC,GAAM,IAAK,GAAK,SAChB,OAAS,IAAK,MAAO,GAAK,MAAO,IAAM,eACrC,GAAM,IAAK,GAAK,SACV,MAAQ,KAAK,IAAI,EAAG,GAAI,GAAI,GAC9B,MAAQ,UACV,UAAW,MACP,iBACF,YAAc,oBACR,IAAI,SAAS,SAAW,IAAM,SAAS,QAAU,IAC3C,SAAS,WACb,EACH,IAAK,SAAS,QAAU,IAAM,SAAS,WAAa,EAEzD,YAAc,GAAK,qBAAuB,KAKlD,aAAa,IAAI,YAAa,EAAG,GAAI,GAAI,IAKjD,MAAO,cAGH,gBACF,QAAqB,OAAkB,MAAiB,QACxD,SACA,UACF,GAAM,aAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,cAAgB,SAAS,cACzB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,qBAAuB,SAAS,qBAChC,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAChC,SAAW,SAAS,QAAQ,MAC5B,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAE3B,aACD,WAAa,MAAQ,OAAO,kBACP,OAAO,kBAE3B,OAAS,OAAO,SAAS,SAAU,OACnC,WAAa,OAAO,OAEpB,mBAAqB,SAAS,SAAS,GAAK,SAAS,SAAS,GAChE,SAAS,SAAS,GAAK,SAAS,SAAS,GACvC,mBACF,SAAS,SAAS,GAAK,SAAS,SAAS,GAAK,SAAS,SAAS,GAC9D,iBAAmB,SAAS,SAAS,GAAK,SAAS,SAAS,GAC5D,iBAAmB,SAAS,SAAS,GAE3C,OAAS,OAAQ,EAAG,MAAQ,SAAS,UAAW,EAAE,OAChD,GAAM,mBAAoB,MAAQ,mBAC5B,iBAAmB,MAAQ,QAAQ,GACzC,OAAS,SAAU,EAAG,QAAU,SAAS,WAAY,EAAE,QACrD,OAAS,QAAS,EAAG,OAAS,SAAS,SAAU,EAAE,QACjD,GAAM,cAAe,OAAS,YAAc,SACxC,UAAY,aAChB,KAAO,UAAY,GACjB,WAAa,cAEf,GAAM,WACF,KAAK,IAAI,SAAS,QAAS,qBAAuB,cAChD,kBACF,kBAAoB,OAAS,mBACjC,OAAS,MAAO,EAAG,KAAO,SAAS,UAAW,EAAE,MAC9C,GAAM,YAAa,KAAO,aAAe,OACrC,QAAU,WACd,KAAO,QAAU,GACf,SAAW,eAEb,GAAM,SACF,KAAK,IAAI,SAAS,SAAU,sBAAwB,YAClD,gBAAkB,kBAAoB,KAAO,iBACnD,OAAS,MAAO,EAAG,KAAO,SAAS,SAAU,EAAE,MAC7C,GAAM,YAAa,KAAO,YAAc,QACpC,QAAU,WACd,KAAO,QAAU,GACf,SAAW,cAEb,GAAM,SACF,KAAK,IAAI,SAAS,QAAS,qBAAuB,YAEhD,gBAAkB,gBAAkB,KAAO,iBAC7C,YAAc,aACd,SAAW,EACX,OAAQ,EACZ,OAAS,QAAS,UAAW,OAAS,UACjC,QAAU,eACb,GAAM,cAAe,iBAAmB,OAAS,QAAQ,GACzD,OAAS,MAAO,QAAS,KAAO,QAAS,MAAQ,gBAC/C,GAAM,YAAa,aAAe,KAAO,QAAQ,GACjD,OAAS,MAAO,QAAS,KAAO,QAC3B,MAAQ,eACX,GAAM,YAAa,WAAa,KAAO,QAAQ,GACzC,MAAQ,QAAQ,WAAa,SAOnC,GANK,WAAa,OAAS,MAAQ,YACjC,YAAc,MACL,WAAa,OACtB,WAAY,MACZ,UAEE,MAAM,aACR,MAGJ,GAAI,MAAM,aACR,MAGJ,GAAI,MAAM,aACR,MAGJ,GAAM,cAAe,gBAAkB,QACvC,WAAW,cACP,WAAa,MAAQ,SAAW,OAAQ,eAOtD,MAAO,QAGH,4BACF,KACA,UACF,GAAM,cAAe,OAAO,SAAS,SAAU,SACzC,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,cAAgB,SAAS,cACzB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,qBAAuB,SAAS,qBAChC,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAChC,SAAW,SAAS,QAAQ,MAC5B,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAEjC,OAAS,OAAQ,EAAG,MAAQ,SAAS,UAAW,EAAE,MAChD,OAAS,SAAU,EAAG,QAAU,SAAS,WAAY,EAAE,QACrD,OAAS,QAAS,EAAG,OAAS,SAAS,SAAU,EAAE,QACjD,GAAM,cAAe,OAAS,YAAc,SACxC,UAAY,aAChB,KAAO,UAAY,GACjB,WAAa,cAEf,GAAM,WACF,KAAK,IAAI,SAAS,QAAS,qBAAuB,cACtD,OAAS,MAAO,EAAG,KAAO,SAAS,UAAW,EAAE,MAC9C,GAAM,YAAa,KAAO,aAAe,OACrC,QAAU,WACd,KAAO,QAAU,GACf,SAAW,eAEb,GAAM,SACF,KAAK,IAAI,SAAS,SAAU,sBAAwB,YACxD,OAAS,MAAO,EAAG,KAAO,SAAS,SAAU,EAAE,MAC7C,GAAM,YAAa,KAAO,YAAc,QACpC,QAAU,WACd,KAAO,QAAU,GACf,SAAW,cAEb,GAAM,SACF,KAAK,IAAI,SAAS,QAAS,qBAAuB,YAGlD,SAAW,OAAO,kBAClB,YAAc,GAElB,OAAS,QAAS,UAAW,OAAS,UACjC,QAAU,eACb,GAAM,QAAS,OAAS,aACxB,OAAS,MAAO,QAAS,KAAO,QAAS,MAAQ,gBAC/C,GAAM,MAAO,KAAO,WACpB,OAAS,MAAO,QAAS,KAAO,QAC3B,MAAQ,eACX,GAAM,MAAO,KAAO,WACd,MAAQ,KAAK,IAAI,MAAO,OAAQ,KAAM,KAAM,SAC9C,OAAS,UACX,UAAW,MACX,YACI,OAAS,sBAAwB,qBACjC,KAAO,sBAAwB,QAM3C,aAAa,IAAI,YAAa,MAAO,OAAQ,KAAM,KAAM,WAOnE,MAAO,cCrTH,kBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACZ,iBAAiB,EAAG,WACpB,GAAM,CAAC,WAAY,QAAS,IAAA,KAAK,iBAAmB,MAC9C,UAAY,EAElB,aAAK,OACD,qBAAa,+BAA+B,QAAS,WACrD,IAAM,wEACa,0BAA0B,cAEjD,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,UAAW,KAAK,iBAChB,IAEJ,GAAI,SAAS,cAAgB,GAAK,SAAS,eAAiB,GACxD,aAAK,YAAY,SAAS,QAAS,SAAS,UAC9C,IAAM,SAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,iBAE7B,GAAM,SAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,SAAU,aAAK,eAAe,EAAE,OAChC,QAAS,MAAK,QAAS,EAAE,MAAO,EAAE,MAAO,SAAS,SAAU,OAClE,IAAM,UAAQ,eACV,SAAS,SAAU,EAAE,MAAO,QAAO,QAEzC,MAAO,KAGF,GAAM,eAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UCpCR,mBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,WAAY,QAAS,IAAA,KAAK,gBAAiB,WAAY,WAC1D,MAEJ,iBAAiB,EAAG,aAEpB,GAAI,YAAa,UACb,YAAc,MAChB,YAAa,CAAC,EAAG,EAAG,IAGtB,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MAAmD,WAAY,QACjE,WAAY,KAAK,gBAAiB,YAEhC,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,OAAS,OACX,QAAS,EAAE,MAAO,EAAE,MAAO,aAAK,eAAe,EAAE,OAAQ,SAAU,OAEvE,MAAO,WAAQ,eAAe,OAAO,MAAO,UAAW,OAAO,QAGzD,GAAM,iBAAgC,CAC3C,WAAY,UACZ,YAAa,MACb,WAAY,WChCR,uBAAwB,MAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,MAAA,QAAS,OACd,CAAC,WAAY,QAAS,IAAA,KAAK,UAAW,iBAAmB,MAE/D,iBAAiB,CAAC,GAAI,QAAQ,iBAE9B,GAAM,UAAW,qBAAa,kBAC1B,OAAM,MAAmD,WACzD,QAAS,UAAW,KAAK,iBAEvB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,cAAgB,SAAS,cACzB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,qBAAuB,SAAS,qBAChC,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAChC,SAAW,qBAAuB,EAAI,SAAS,QAAQ,MACvD,QAAU,qBAAuB,EAAI,SAAS,QAAQ,KACtD,OAAS,sBAAwB,EAAI,SAAS,QAAQ,IACtD,GAAK,OAAO,OAAM,MAAO,WAEzB,cAAgB,EAAK,aAAc,aAAe,aAElD,MAAQ,UAAQ,WAAW,IAEjC,OAAS,OAAQ,EAAG,MAAQ,SAAS,UAAW,EAAE,MAChD,OAAS,SAAU,EAAG,QAAU,SAAS,WAAY,EAAE,QACrD,OAAS,SAAU,EAAG,QAAU,SAAS,QAAS,EAAE,QAClD,OAAS,OAAQ,EAAG,MAAQ,SAAS,SAAU,EAAE,MAC/C,OAAS,OAAQ,EAAG,MAAQ,SAAS,QAAS,EAAE,OAE9C,GAAM,eAAgB,QAAU,SAC1B,YAAc,MAAQ,OACtB,YAAc,MAAQ,QACxB,QAAU,EACd,OAAS,QAAS,EAAG,OAAS,qBACzB,QAAU,eACb,GAAM,SAAW,eAAgB,QAAU,YAC3C,GAAI,CAAA,SAAU,GAAK,SAAW,SAAS,UACnC,KAAK,MAAM,WAAa,SAG5B,OAAS,MAAO,EAAG,KAAO,sBACrB,MAAQ,gBACX,GAAM,OAAS,aAAc,MAAQ,aACrC,GAAI,CAAA,OAAQ,GAAK,OAAS,SAAS,WAC/B,KAAK,MAAM,SAAW,OAG1B,OAAS,MAAO,EAAG,KAAO,qBACrB,MAAQ,eACX,GAAM,OAAS,aAAc,MAAQ,YACrC,AAAI,MAAQ,GAAK,OAAS,SAAS,UAC/B,KAAK,MAAM,SAAW,OAM1B,UADI,MAAM,IAAI,MAAO,QAAS,MAAO,MAAO,YAKlD,GAAG,IACC,QAAU,cAAe,MAAO,QAAS,MAAO,MAAO,SAOrE,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,sBAAoC,CAC/C,WAAY,cACZ,YAAa,MACb,WAAY,eCzFR,sBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,MAAA,QAAS,OACd,EAAI,OACV,iBAAiB,CAAC,GAAI,QAAQ,eAC9B,GAAM,CAAC,WAAY,QAAS,IAAA,MAAO,MAE7B,SAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,EAAmB,MACjB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAChC,QAAU,qBAAuB,EAAI,SAAS,QAAQ,KACtD,OAAS,sBAAwB,EAAI,SAAS,QAAQ,IACtD,GACF,OAAgB,EAAE,MAA2C,WAE3D,cAAgB,EAAK,cAAe,aAEpC,OAAS,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACrC,MAAQ,OACV,GAAG,MAA2C,UAAW,QAE7D,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,EACxC,OAAS,GAAI,EAAG,EAAI,SAAS,WAAY,EAAE,EACzC,OAAS,KAAM,EAAG,IAAM,SAAS,SAAU,EAAE,IAC3C,OAAS,KAAM,EAAG,IAAM,SAAS,QAAS,EAAE,KAE1C,GAAM,WAAY,IAAM,OAClB,UAAY,IAAM,QACpB,QAAU,EACd,OAAS,IAAK,EAAG,GAAK,sBAAuB,IAAM,gBACjD,GAAM,KAAO,WAAY,IAAM,aAC/B,GAAI,CAAA,KAAM,GAAK,KAAO,SAAS,WAC3B,KAAK,MAAM,OAAS,KAGxB,OAAS,IAAK,EAAG,GAAK,qBAAsB,IAAM,eAChD,GAAM,KAAO,WAAY,IAAM,YAC/B,AAAI,IAAM,GAAK,KAAO,SAAS,UAC3B,KAAK,MAAM,OAAS,KAKxB,UADc,MAAM,IAAI,EAAG,IAAK,IAAK,KAIzC,GAAG,IAAI,QAAU,cAAe,EAAG,IAAK,IAAK,GAKrD,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,oBAAkC,CAC7C,WAAY,YACZ,YAAa,MACb,WAAY,cCpER,oBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,MAAA,OAAO,OAAQ,KAAA,MAAM,UAAY,OAE3C,aAAK,OACD,MAAK,MAAM,SAAW,SAAS,MAAM,OACrC,IAAM,gFAEV,aAAK,OACD,QAAU,MAAQ,MAAK,MAAM,SAAW,OAAO,MAAM,OACrD,IAAM,8EAEV,aAAK,OACD,QAAS,MAAQ,MAAK,MAAM,SAAW,OAAM,MAAM,OACnD,IAAM,6EAGV,iBAAiB,CAAC,EAAG,MAAM,SAAU,OAAO,QAAS,aAErD,GAAI,CAAC,iBAAmB,MACpB,iBAAmB,MACrB,iBAAkB,MAGpB,GAAM,OAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,MAAQ,UAAQ,KAAK,IAAI,MAAK,QAAQ,OACtC,QAAU,UAAQ,KAAK,IAAI,SAAS,QAAQ,OAC5C,MAAQ,OAAQ,UAAQ,KAAK,IAAI,OAAM,QAAQ,OAC/B,GAAI,cAAa,CAAC,IAClC,QAAU,OACZ,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAChC,GAAI,cAAa,CAAC,IAChB,QAAU,GAAI,cAAa,MAAM,QAEjC,cAAgB,QAAQ,OACxB,YAAc,MAAM,OACpB,cAAgB,QAAQ,OACxB,YAAc,MAAM,OAEtB,KAAO,EACP,GAAK,EACL,GAAK,EACL,GAAK,EACT,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,EAAE,EAClC,QAAQ,GAAK,QAAQ,QAChB,OAAM,GAAK,MAAM,OAAS,MAAM,MAC7B,KAAK,KAAK,QAAQ,MAAQ,iBAC9B,MAAQ,eACV,MAAO,GAEL,IAAM,aACR,IAAK,GAEH,IAAM,aACR,IAAK,GAEH,IAAM,eACR,IAAK,GAGT,MAAO,WAAQ,eAAe,EAAE,MAAO,EAAE,MAAO,SAG3C,GAAM,iBAAgC,CAC3C,WAAY,eACZ,YAAa,MACb,WAAY,YCnER,yBAAyB,MAK7B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,WAAY,OAAS,MAE5B,iBAAiB,CAAC,GAAI,kBAEtB,GAAM,OAAO,WAAW,OAAO,CAAC,EAAG,IAAM,EAAI,GAEvC,SAAW,qBAAa,YAAY,EAAE,MAAO,WAAY,OACzD,SAAW,qBAAa,YAAY,SAAS,OAAQ,WAAW,QAChE,iBACF,qBAAa,oBAAoB,EAAE,MAAO,WAAY,OACpD,iBACF,qBAAa,oBAAoB,MAAO,WAAW,QACjD,UACF,qBAAa,aAAa,iBAAkB,MAAO,WAAW,QAE5D,UAAY,SAAQ,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,YAC1D,YACF,WAAU,CAAC,OAAQ,CAAC,EAAG,WAAY,QAAA,UAAS,MAAO,CAAC,KAAM,YACxD,oBAAsB,SACxB,CAAC,OAAQ,CAAC,EAAG,aAAc,QAAA,UAAS,MAAO,CAAC,MAAO,oBACjD,OAAS,OAAM,CACnB,OAAQ,CAAC,EAAG,qBACZ,QAAA,UACA,MAAO,CAAC,MAAO,iBAAkB,KAAM,aAGzC,MAAA,WAAQ,8BAA8B,WACtC,UAAQ,8BAA8B,aACtC,UAAQ,8BAA8B,qBAE/B,OAGF,GAAM,sBAAqC,CAChD,WAAY,eACZ,YAAa,MACb,WAAY,iBC9CR,mBAAmB,MAKvB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,SAAW,OACf,CAAC,MAAQ,MAET,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,YAAc,UAAQ,KAAK,IAAI,QAAQ,QAAQ,OAE/C,QACF,aAAa,MAAO,YAAa,QAAQ,MAAO,QAAQ,MAAO,MAEnE,MAAO,WAAQ,eAAe,CAAC,MAAO,QAAQ,MAAO,SAGhD,GAAM,gBAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,WCtBD,KAAO,gBAAgB,YAAa,CAAC,GAAI,SACpD,GAAM,WAAY,MAClB,MAAI,IAAK,UAAU,aACV,UAAU,aAEZ,GAAK,UAAU,aAAe,UAAU,aAAe,KAGnD,WAA2B,CACtC,WAAY,YACZ,YAAa,MACb,WAAY,MCXD,WACR,OACC,GAAM,CAAC,GAAK,KAAK,OACX,WAAa,KAAK,QAClB,aAAe,GAAI,cAAa,aAAK,cAAc,EAAE,QACrD,YAAc,WAAW,KAAK,IAAI,EAAE,QACpC,MAAO,YAAY,mBAAmB,KACtC,MAAO,YAAY,mBAAmB,KACtC,SAAW,WAAW,KAAK,IAAI,MAAK,QAAQ,OAC5C,SAAW,WAAW,KAAK,IAAI,MAAK,QAAQ,OAClD,OAAS,GAAI,EAAG,EAAI,SAAS,OAAQ,KACnC,GAAM,OAAO,SAAS,GAChB,MAAO,SAAS,GACtB,aAAa,GAAK,KAAK,MAAM,MAAM,OAGrC,MAAO,YAAW,WAAW,aAAc,EAAE,MAAO,YAG7C,iBAAiC,CAC5C,WAAY,WACZ,YAAa,MACb,WAAY,YCtBR,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,MAAA,QAAS,OAEV,MAAO,UAAQ,KAAK,IAAI,OAAM,QAAQ,mBAAmB,KACzD,QAAU,UAAQ,KAAK,IAAI,MAAK,QAAQ,OAK9C,MAAO,WAAQ,eAAe,MAAK,MAAO,MAAK,MAAO,SAGjD,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCVR,iBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAQ,MAET,MAAQ,aAAK,eAAe,KAAM,OAAO,GAAG,OAAO,GACrD,SAAW,qBAAa,gBAAgB,OAAO,IAAI,GAAK,EAAE,OAAQ,OAEtE,GAAI,aAAK,cAAc,YAAc,EACnC,MAAO,WAAQ,eAAe,SAAU,OAAO,GAAG,MAAO,IAI3D,GAAM,SAAU,OAAO,OAAO,GAAK,aAAK,cAAc,EAAE,OAAS,GACjE,GAAI,QAAQ,SAAW,EACrB,MAAO,UAAS,CAAC,OAAQ,CAAC,EAAG,QAAQ,IAAK,QAAA,YAG5C,GAAM,QAAS,QAAQ,IAAI,GAAK,EAAE,OAGlC,GAFA,qBAAa,uBAAuB,OAAQ,OAExC,QAAQ,GAAG,QAAU,aACvB,GAAM,OAAQ,QAAQ,IAAK,GAAM,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,aACrD,MAAQ,QAAQ,IAAK,GAAM,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,aAErD,aAAe,QAAO,CAAC,OAAQ,MAAO,QAAA,UAAS,MAAO,CAAC,KAAM,SAC7D,aAAe,QAAO,CAAC,OAAQ,MAAO,QAAA,UAAS,MAAO,CAAC,KAAM,SAE7D,OACF,SAAQ,CAAC,OAAQ,CAAC,KAAM,aAAc,KAAM,cAAe,QAAA,YAE/D,MAAA,OAAM,QAAQ,GAAK,UAAQ,8BAA8B,IACzD,MAAM,QAAQ,GAAK,UAAQ,8BAA8B,IACzD,UAAQ,8BAA8B,cACtC,UAAQ,8BAA8B,cAE/B,OAUT,GAAM,UAAW,QAAQ,IAAI,IAC3B,GAAM,WAAY,aAAK,cAAc,EAAE,MAAM,MAAM,QAEnD,MAAO,UAAQ,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAA,UAAS,MAAO,CAAC,MADnC,CAAC,GAAI,gBAIf,gBAAkB,SAAS,IAAI,GAC5B,EAAC,KAAM,UAAQ,KAAK,IAAI,EAAE,QAAQ,OAAQ,MAAO,EAAE,SAI5D,SACI,qBAAa,gBAAgB,SAAS,IAAI,GAAK,EAAE,OAAQ,GAC7D,GAAM,cAAe,SAAS,GAAG,MAAM,KAAO,EACxC,QACF,WAAW,gBAAiB,SAAU,OAAO,GAAG,MAAO,cAErD,cACF,qBAAa,gBAAgB,QAAQ,IAAI,GAAK,EAAE,OAAQ,OAEtD,QACF,UAAQ,eAAe,cAAe,OAAO,GAAG,MAAO,SAE3D,MAAA,UAAS,QAAQ,GAAK,UAAQ,8BAA8B,IAErD,QAGF,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,SCpFR,gBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,QAAU,OACd,CAAC,QAAS,IAAA,KAAK,WAAY,UAAW,iBAAmB,MAE/D,iBAAiB,CAAC,EAAG,QAAS,UAE9B,GAAM,aAAc,qBAAa,wBAAwB,YACnD,SAAW,qBAAa,kBAC1B,EAAE,MACF,OAAO,MAA2C,QAAS,UAAW,KACtE,gBAAiB,GAAuB,aAEtC,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,QAAU,SAAS,QAAQ,KAC3B,OAAS,SAAS,QAAQ,IAC1B,eAAiB,SAAS,aAAe,eAEzC,EAAI,GAAI,cAAa,SAAS,SAAU,EAAE,OAE1C,SAAW,aAAK,eAAe,EAAE,OACjC,cAAgB,aAAK,eAAe,OAAO,OAE3C,aAAe,SAAS,GACxB,WAAa,eAAiB,SAAS,GAAK,SAAS,GACrD,WAAa,eAAiB,SAAS,GAAK,EAC5C,eAAiB,eAAiB,EAAI,SAAS,GAC/C,aAAe,EAAE,QAAQ,GACzB,WAAa,eAAiB,EAAE,QAAQ,GAAK,EAAE,QAAQ,GACvD,WAAa,eAAiB,EAAE,QAAQ,GAAK,EAC7C,eAAiB,eAAiB,EAAI,EAAE,QAAQ,GAEhD,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,MAAQ,UAAQ,KAAK,IAAI,OAAO,QAAQ,OACxC,MAAQ,EAAE,OAEhB,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,GACxC,GAAM,UAAW,EAAI,aACf,SAAW,EAAI,aACrB,OAAS,IAAK,EAAG,GAAK,SAAS,UAAW,EAAE,IAC1C,GAAM,UAAW,SAAW,GAAK,WAC3B,SAAW,GAAK,SAAS,aAAe,OAC9C,OAAS,IAAK,EAAG,GAAK,aAAc,EAAE,IACpC,GAAM,IAAK,SAAW,GAAK,eAC3B,GAAI,GAAK,GAAK,IAAM,SAAS,SAC3B,SAEF,GAAM,UAAW,GAAK,cAAc,GAC9B,SAAW,SAAW,GAAK,WACjC,OAAS,IAAK,EAAG,GAAK,SAAS,SAAU,EAAE,IACzC,GAAM,UAAW,SAAW,GAAK,WAC3B,SAAW,GAAK,SAAS,YAAc,QAC7C,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,IAAK,SAAW,GAAK,cAC3B,GAAI,GAAK,GAAK,IAAM,SAAS,QAC3B,SAEF,GAAM,UAAW,SAAW,GAAK,cAAc,GACzC,SAAW,SAAW,GAAK,WAC7B,SAAW,SACf,OAAS,IAAK,EAAG,GAAK,SAAS,WAAY,EAAE,IAC3C,GAAM,MAAO,MAAM,SAAW,GAAK,gBACnC,OAAS,IAAK,EAAG,GAAK,SAAS,YAAa,EAAE,GAC5C,MAAM,SAAW,GAAK,iBAClB,KAAO,MAAM,SAAW,IAE9B,UAAY,SAAS,iBAQjC,MAAO,WAAQ,eAAe,EAAE,MAAO,EAAE,MAAO,OAG3C,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,QCrFR,+BAA+B,MAKnC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,IAAM,OACV,CAAC,QAAS,IAAA,KAAK,WAAY,gBAAiB,aAAe,MAEjE,iBAAiB,CAAC,EAAG,IAAK,wBAE1B,GAAM,aAAc,qBAAa,wBAAwB,YACnD,SAAW,qBAAa,kBAC1B,EAAE,MAA2C,YAAa,QAC1D,EAAmB,KAAK,gBAAiB,GACzC,aAEE,CAAC,aAAc,YAAa,aAAc,aAAe,SACzD,eAAiB,SAAS,aAAe,eACzC,GAAK,GAAI,cAAa,SAAS,YAAa,WAE5C,QAAU,SAAS,QAAQ,KAC3B,OAAS,SAAS,QAAQ,IAC1B,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,OAAS,UAAQ,KAAK,IAAI,GAAG,QAAQ,OAErC,KAAO,GAAI,cAAa,EAAE,MAAO,EAAE,MAAO,OAC1C,MAAQ,GAAI,cAAa,GAAG,MAAO,GAAG,MAAO,QAEnD,OAAS,IAAK,EAAG,GAAK,aAAc,EAAE,IACpC,GAAM,OAAQ,KAAK,IAAI,EAAG,KAAK,KAAM,QAAS,IAAM,eAC9C,MAAQ,KAAK,IACf,SAAS,UAAY,UAAS,SAAW,OAAS,IAAM,cAE5D,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,OAAQ,KAAK,IAAI,EAAG,KAAK,KAAM,SAAU,IAAM,cAC/C,MAAQ,KAAK,IACf,SAAS,SAAW,UAAS,QAAU,QAAU,IAAM,aAE3D,OAAS,IAAK,EAAG,GAAK,SAAS,WAAY,EAAE,GAC3C,OAAS,IAAK,EAAG,GAAK,SAAS,YAAa,EAAE,IAC5C,GAAI,SAAU,EACd,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,EACxC,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,GAAK,aAAe,OACpC,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,GAAK,YAAc,QAC/B,eACF,SAAY,KAAK,IAAI,EAAG,GAAI,GAAI,IAC3B,MAAM,IAAI,EAAG,GAAI,GAAI,IAE1B,SAAY,KAAK,IAAI,EAAG,GAAI,GAAI,IAC3B,MAAM,IAAI,EAAG,GAAI,GAAI,KAKlC,GAAG,IAAI,QAAS,GAAI,GAAI,GAAI,MAMpC,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,4BAA2C,CACtD,WAAY,qBACZ,YAAa,MACb,WAAY,uBCrER,8BAA8B,MAKlC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,QAAU,OACf,CAAC,WAAY,QAAS,IAAA,KAAK,WAAY,iBAAmB,MAEhE,iBAAiB,CAAC,GAAI,QAAS,uBAE/B,GAAM,eAAgB,aAAK,eAAe,OAAO,OAC3C,UAAY,aAAK,eAAe,GAAG,OAErC,YAAc,qBAAa,wBAAwB,YACjD,SAAW,qBAAa,kBAC1B,WAAY,OAAO,MAA2C,QAC9D,EAAmB,KAAK,gBAAiB,GAAO,aAE9C,GAAK,GAAI,cAAa,SAAS,QAAS,WACxC,SAAW,GAAG,OACd,SAAW,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACvC,UAAY,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAC5C,CAAC,MAAO,MAAO,OAAS,cACxB,CACJ,UACA,aACA,YACA,WACA,SACA,QACA,YACA,UACA,SACA,aACA,aACE,SACJ,YAAc,SAAS,WACvB,GAAM,QAAS,aAAe,EAAI,SAAS,QAAQ,IAC7C,QAAU,YAAc,EAAI,SAAS,QAAQ,KAE7C,eAAiB,cAAgB,eACjC,aAAe,GAAG,QAAQ,GAC1B,WAAa,eAAiB,GAAG,QAAQ,GAAK,GAAG,QAAQ,GACzD,WAAa,eAAiB,GAAG,QAAQ,GAAK,EAC9C,eAAiB,eAAiB,EAAI,GAAG,QAAQ,GACjD,aAAe,UAAU,GACzB,WAAa,eAAiB,UAAU,GAAK,UAAU,GACvD,WAAa,eAAiB,UAAU,GAAK,EAC7C,eAAiB,eAAiB,EAAI,UAAU,GAEtD,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC/B,OAAS,IAAK,EAAG,GAAK,WAAY,EAAE,GAClC,OAAS,IAAK,EAAG,GAAK,SAAU,EAAE,IAChC,GAAM,UAAW,GAAK,OAChB,MAAQ,KAAK,IAAI,EAAG,KAAK,KAAK,SAAW,eACzC,MACF,KAAK,IAAI,UAAY,cAAe,UAAY,cAEpD,OAAS,IAAK,EAAG,GAAK,QAAS,EAAE,IAC/B,GAAM,UAAW,GAAK,QAChB,MAAQ,KAAK,IAAI,EAAG,KAAK,KAAK,SAAW,cACzC,MACF,KAAK,IAAI,SAAW,aAAc,UAAY,aAE9C,QAAU,EACd,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,aAAe,SAE/B,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,YAAc,SACxB,SACF,aAAe,EAAI,WAAa,GAAK,WAAa,GAChD,UAAY,MAAS,cAAe,EAAI,IAC1C,MAAS,aAAc,EAAI,IAAM,MAAQ,GAE7C,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,OAAQ,SAAS,SAAW,eAAiB,IAC7C,OAAS,UAAU,UAAY,IACrC,SAAW,MAAQ,SAIzB,GAAM,UAAW,aAAe,EAAI,WAAa,GAC7C,WAAa,GAAK,eAAiB,GACvC,SAAS,UAAY,SAM7B,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,2BAA0C,CACrD,WAAY,oBACZ,YAAa,MACb,WAAY,sBCjGR,gBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,QAAU,OACd,CAAC,QAAS,IAAA,KAAK,WAAa,MAElC,iBAAiB,CAAC,EAAG,QAAS,UAE9B,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MACF,OAAO,MAAmD,QAC1D,UAAW,MAET,CACJ,YACA,aACA,YACA,cACA,eACA,cACA,SACE,SACE,SAAW,QAAQ,MACnB,QAAU,QAAQ,KAClB,OAAS,QAAQ,IACjB,EAAI,GAAI,cAAa,SAAS,SAAU,EAAE,OAE1C,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,MAAQ,UAAQ,KAAK,IAAI,OAAO,QAAQ,OACxC,MAAQ,EAAE,OAEV,SAAW,aAAK,eAAe,EAAE,OACjC,cAAgB,aAAK,eAAe,OAAO,OAEjD,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,GACxC,GAAM,UAAW,EAAI,SAAS,GACxB,SAAW,EAAI,EAAE,QAAQ,GAC/B,OAAS,IAAK,EAAG,GAAK,SAAS,SAAU,EAAE,IACzC,GAAM,UAAW,SAAW,GAAK,EAAE,QAAQ,GACrC,SAAW,GAAK,SAAS,YAAc,SAC7C,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,IAAK,SAAW,GAAK,cAC3B,GAAI,GAAK,GAAK,IAAM,SAAS,QAC3B,SAEF,GAAM,UAAW,GAAK,cAAc,GAC9B,SAAW,SAAW,GAAK,SAAS,GAE1C,OAAS,IAAK,EAAG,GAAK,SAAS,UAAW,EAAE,IAC1C,GAAM,UAAW,SAAW,GAAK,EAAE,QAAQ,GACrC,SAAW,GAAK,SAAS,aAAe,OAC9C,OAAS,IAAK,EAAG,GAAK,aAAc,EAAE,IACpC,GAAM,IAAK,SAAW,GAAK,eAC3B,GAAI,GAAK,GAAK,IAAM,SAAS,SAC3B,SAEF,GAAM,UAAW,SAAW,GAAK,cAAc,GACzC,SAAW,SAAW,GAAK,SAAS,GAC1C,OAAS,IAAK,EAAG,GAAK,SAAS,SAAU,EAAE,IACzC,GAAM,UAAW,SAAW,GAAK,SAAS,YACpC,SAAW,GAAK,SAAS,YAAc,QAC7C,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,IAAK,SAAW,GAAK,cAC3B,GAAI,GAAK,GAAK,IAAM,SAAS,QAC3B,SAEF,GAAM,UAAW,SAAW,GAAK,cAAc,GACzC,SAAW,SAAW,GAAK,SAAS,WACtC,SAAW,SACf,OAAS,IAAK,EAAG,GAAK,SAAS,WAAY,EAAE,IAC3C,GAAM,MAAO,MAAM,SAAW,IAC9B,OAAS,IAAK,EAAG,GAAK,SAAS,YAAa,EAAE,GAC5C,MAAM,SAAW,KAAO,KAAO,MAAM,SAAW,IAElD,UAAY,SAAS,mBAUrC,MAAO,WAAQ,eAAe,EAAE,MAAO,EAAE,MAAO,EAAE,QAG7C,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,QC3FR,gCAAiC,MAKrC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,IAAM,OACV,CAAC,QAAS,IAAA,KAAK,aAAe,MAEpC,iBAAiB,CAAC,EAAG,IAAK,0BAE1B,GAAM,UAAW,aAAK,eAAe,EAAE,OACjC,UAAY,aAAK,eAAe,GAAG,OAEnC,SAAW,qBAAa,kBAC1B,EAAE,MAAmD,YAAa,QAClE,EAAmB,MAEjB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YAEvB,GAAK,GAAI,cAAa,SAAS,YAAa,WAC5C,SAAW,GAAG,OACd,CAAC,KAAM,KAAM,KAAM,MAAQ,GAAG,QAC9B,SAAW,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACvC,CAAC,KAAM,KAAM,KAAM,MAAQ,UAC3B,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,CAAC,IAAK,IAAK,IAAK,KAAO,SAEvB,SAAW,SAAS,QAAQ,MAC5B,QAAU,SAAS,QAAQ,KAC3B,OAAS,SAAS,QAAQ,IAEhC,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,OAAQ,KAAK,IAAI,EAAG,KAAK,KAAM,UAAW,IAAM,cAChD,MAAQ,KAAK,IACf,SAAS,SAAW,UAAS,QAAU,SAAW,IAAM,aACtD,SAAW,GAAK,KAEtB,OAAS,IAAK,EAAG,GAAK,aAAc,EAAE,IACpC,GAAM,OAAQ,KAAK,IAAI,EAAG,KAAK,KAAM,QAAS,IAAM,eAC9C,MAAQ,KAAK,IACf,SAAS,UAAY,UAAS,SAAW,OAAS,IAAM,cACtD,SAAW,GAAK,KAAO,SAE7B,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,OAAQ,KAAK,IAAI,EAAG,KAAK,KAAM,SAAU,IAAM,cAC/C,MAAQ,KAAK,IACf,SAAS,SAAW,UAAS,QAAU,QAAU,IAAM,aACrD,SAAW,GAAK,KAAO,SAE7B,OAAS,IAAK,EAAG,GAAK,SAAS,WAAY,EAAE,IAC3C,GAAM,UAAW,GAAK,KAAO,SAE7B,OAAS,IAAK,EAAG,GAAK,SAAS,YAAa,EAAE,IAC5C,GAAI,SAAU,EACd,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,GACxC,GAAM,UAAW,EAAI,IACf,SAAW,EAAI,KAErB,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IAEjC,GAAM,UADK,IAAK,GAAK,YAAc,UACb,IAAM,SACtB,SAAW,GAAK,KAAO,SAE7B,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IAEjC,GAAM,UADK,IAAK,GAAK,aAAe,QACd,IAAM,SACtB,SAAW,GAAK,KAAO,SAE7B,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IAEjC,GAAM,UADK,IAAK,GAAK,YAAc,SACb,IAAM,SACtB,SAAW,GAAK,KAAO,SAE7B,SAAW,QAAQ,SAAW,IAAM,SAAS,SAAW,OAKhE,SAAS,SAAW,IAAM,YAOpC,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,8BAA6C,CACxD,WAAY,uBACZ,YAAa,MACb,WAAY,wBCjGR,+BAAgC,MAKpC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,QAAU,OACf,CAAC,IAAA,KAAK,QAAS,YAAc,MAEnC,iBAAiB,CAAC,IAAK,yBAEvB,GAAM,WAAY,aAAK,eAAe,GAAG,OACnC,cAAgB,aAAK,eAAe,OAAO,OAE3C,SAAW,qBAAa,kBAC1B,WAAY,OAAO,MACnB,QAAS,EAAmB,MAE1B,GAAK,GAAI,cAAa,SAAS,QAAS,WACxC,SAAW,GAAG,OACd,CAAC,KAAM,KAAM,KAAM,MAAQ,GAAG,QAC9B,SAAW,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACvC,CAAC,KAAM,KAAM,KAAM,MAAQ,UAC3B,UAAY,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAC5C,CAAC,MAAO,MAAO,MAAO,OAAS,cAC/B,CACJ,UACA,YACA,aACA,YACA,WACA,QACA,SACA,QACA,YACA,SACA,UACA,SACA,YACA,aACA,aACE,SACE,SAAW,YAAc,EAAI,SAAS,QAAQ,MAC9C,OAAS,aAAe,EAAI,SAAS,QAAQ,IAC7C,QAAU,YAAc,EAAI,SAAS,QAAQ,KAEnD,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC/B,OAAS,IAAK,EAAG,GAAK,WAAY,EAAE,GAElC,OAAS,IAAK,EAAG,GAAK,QAAS,EAAE,IAC/B,GAAM,UAAW,GAAK,SAChB,MAAQ,KAAK,IAAI,EAAG,KAAK,KAAK,SAAW,cACzC,MACF,KAAK,IAAI,SAAW,aAAc,UAAY,aAGlD,OAAS,IAAK,EAAG,GAAK,SAAU,EAAE,IAChC,GAAM,UAAW,GAAK,OAChB,MAAQ,KAAK,IAAI,EAAG,KAAK,KAAK,SAAW,eACzC,MACF,KAAK,IAAI,UAAY,cAAe,UAAY,cAEpD,OAAS,IAAK,EAAG,GAAK,QAAS,EAAE,IAC/B,GAAM,UAAW,GAAK,QAChB,MAAQ,KAAK,IAAI,EAAG,KAAK,KAAK,SAAW,cACzC,MACF,KAAK,IAAI,SAAW,aAAc,UAAY,aAE9C,QAAU,EACd,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,YAAc,SAE9B,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,aAAe,SAE/B,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,YAAc,SACxB,SAAW,KAAO,EAAI,KAAO,GAAK,KAAO,GAAK,KAAO,GACrD,UAAY,MAAS,aAAc,EAAI,IACzC,MAAS,cAAe,EAAI,IAC5B,MAAS,aAAc,EAAI,IAAM,MAAQ,GAE7C,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,OAAQ,SAAS,SAAW,IAC5B,OAAS,UAAU,UAAY,IACrC,SAAW,MAAQ,UAK3B,SAAS,KAAO,EAAI,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,IACpD,UAOd,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,6BAA4C,CACvD,WAAY,sBACZ,YAAa,MACb,WAAY,uBCzGD,KAAM,gBAAgB,IAAM,IAAO,KAAK,IAAI,KAE5C,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCLD,MAAO,gBAAgB,KAAO,IAAO,KAAK,KAAK,KAE/C,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCLR,wBAAwB,MAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAA,OAAO,MAAO,QAAU,OACzB,CAAC,SAAU,OAAQ,oBAAsB,MAEzC,CAAC,MAAO,YAAa,WAAY,aAAe,OAAM,MACtD,SAAW,MAAM,MAAM,GAEvB,CAAC,WAAY,WAAa,SAC1B,OACF,OAAO,CAAC,SAAU,WAAY,UAAW,aAAc,WAErD,QAAU,UAAQ,KAAK,IAAI,MAAM,QAAQ,OACzC,WAAa,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAC7C,UAAY,UAAQ,KAAK,IAAI,OAAM,QAAQ,OAE3C,SACF,aAAK,eAAe,OAAM,OACxB,UAAY,aAAK,eACnB,OAAO,OAKX,OAAS,GAAI,EAAG,EAAI,SAAU,KAC5B,GAAM,UAAW,EAAI,EACf,GAAK,QAAQ,UACb,GAAK,QAAQ,SAAW,GACxB,GAAK,QAAQ,SAAW,GACxB,GAAK,QAAQ,SAAW,GAExB,KAAe,WAAW,GAChC,GAAI,MAAQ,MACV,SAGF,GAAM,aACD,WAAa,EAAM,IAAK,IAAO,aAAc,GAAM,YAAa,GAAK,EACpE,WACD,UAAY,EAAM,IAAK,IAAO,YAAa,GAAM,WAAY,GAAK,EAEvE,OAAS,GAAI,EAAG,EAAI,WAAY,KAC9B,GAAM,MAAgB,WAAa,EAC/B,GAAM,aAAc,GAAK,EAAK,YAC9B,GAAO,IAAK,IAAO,aAAc,GAErC,GAAI,KAAO,GAAK,KAAO,YAAc,GACnC,OAAS,GAAI,EAAG,EAAI,UAAW,IAC7B,OAAS,GAAI,EAAG,EAAI,YAAa,KAC/B,GAAM,KACF,EAAI,EAAI,UAAU,GAAK,EAAI,UAAU,GAAK,EAAI,UAAU,GAC5D,OAAO,OAAO,KAAO,mBAGzB,SAGF,GAAI,SAAW,YACb,GAAM,QAAS,KAAK,MAAM,MACpB,UAAY,KAAK,KAAK,MACtB,MAAQ,KAAO,OAErB,OAAS,GAAI,EAAG,EAAI,UAAW,KAC7B,GAAM,MAAQ,UAAY,EACtB,GAAM,YAAa,GAAK,EAAI,WAC5B,GAAO,IAAK,IAAO,YAAa,GAEpC,GAAI,KAAO,GAAK,KAAO,WAAa,GAClC,OAAS,GAAI,EAAG,EAAI,YAAa,KAC/B,GAAM,KACF,EAAI,EAAI,UAAU,GAAK,EAAI,UAAU,GAAK,EAAI,UAAU,GAC5D,OAAO,OAAO,KAAO,mBAEvB,SAGF,GAAM,SAAU,KAAK,MAAM,MACrB,SAAW,KAAK,KAAK,MACrB,MAAQ,KAAO,QAErB,OAAS,GAAI,EAAG,EAAI,YAAa,KAC/B,GAAI,KAAM,EAAI,QAAU,SAAS,GAAK,OAAS,SAAS,GACpD,KAAO,SAAS,GACd,QAAU,UAAU,KAE1B,IAAM,EAAI,SAAW,SAAS,GAAK,OAAS,SAAS,GACjD,KAAO,SAAS,GACpB,GAAM,UAAW,UAAU,KAE3B,IAAM,EAAI,QAAU,SAAS,GAAK,UAAY,SAAS,GACnD,KAAO,SAAS,GACpB,GAAM,YAAa,UAAU,KAE7B,IAAM,EAAI,SAAW,SAAS,GAAK,UAAY,SAAS,GACpD,KAAO,SAAS,GACpB,GAAM,aAAc,UAAU,KAExB,IAAM,QAAW,UAAW,SAAW,MACvC,OAAS,WAAc,aAAc,YAAc,MAEzD,IAAM,EAAI,EAAI,UAAU,GAAK,EAAI,UAAU,GAAK,EAAI,UAAU,GAC9D,OAAO,OAAO,KAAO,IAAQ,QAAS,KAAO,YAIjD,QAAS,GAAI,EAAG,EAAI,UAAW,EAAE,GAC/B,GAAM,MAAQ,UAAY,EACtB,GAAM,YAAa,GAAK,EAAI,WAC5B,GAAO,IAAK,IAAO,YAAa,GAEpC,GAAI,KAAO,GAAK,KAAO,WAAa,GAClC,OAAS,GAAI,EAAG,EAAI,YAAa,KAC/B,GAAM,KACF,EAAI,EAAI,UAAU,GAAK,EAAI,UAAU,GAAK,EAAI,UAAU,GAC5D,OAAO,OAAO,KAAO,mBAEvB,SAGF,GAAM,UAAW,KAAK,MAAM,MACtB,SAAW,KAAK,MAAM,MAC5B,OAAS,GAAI,EAAG,EAAI,YAAa,KAC/B,GAAM,OAAQ,EAAI,SAAW,SAAS,GAAK,SAAW,SAAS,GAC3D,KAAO,SAAS,GACd,OACF,EAAI,EAAI,UAAU,GAAK,EAAI,UAAU,GAAK,EAAI,UAAU,GAC5D,OAAO,OAAO,QAAU,UAAU,UAO5C,MAAO,WAAQ,eAAe,OAAO,MAAO,OAAO,MAAO,OAAO,QAG5D,GAAM,qBAAoC,CAC/C,WAAY,cACZ,YAAa,MACb,WAAY,gBC7IR,iBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAW,QAAA,UAAW,MAEnC,iBAAiB,EAAG,UAEpB,GAAM,aAAc,qBAAa,mBAAmB,CAAC,MAAO,EAAE,MAAM,QAChE,GAAK,EACL,aAAe,MACjB,IAAK,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBAEtD,GAAM,cAAe,qBAAa,iBAAiB,EAAG,EAAE,MAAM,QAAQ,GAEtE,GAAI,eAAiB,GAAG,MAAM,OAAS,EACrC,KAAM,IAAI,OACN,oDACQ,GAAG,MAAM,OAAS,kBAAkB,gBAGlD,GAAM,aAAc,WAAW,GAAG,MAAO,SACnC,KAAO,aAAK,oBACD,aAAK,cAAc,GAAG,OAAQ,aAEzC,MAAQ,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACpC,SAAW,GAAG,MAAM,GAAG,MAAM,OAAS,GACtC,cAAgB,SAClB,CAAC,EAAW,IAAc,EAAI,SAAW,EAAI,EAC7C,CAAC,EAAW,IAAc,EAAI,EAClC,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,GAAK,SACrC,OAAS,GAAI,EAAG,EAAI,SAAU,KAC5B,GAAM,KAAM,cAAc,EAAG,GAC7B,GAAI,IAAM,EACR,KAAK,KAAO,UAAY,EAAI,MAAM,UAElC,GAAM,SAAU,cAAc,EAAG,EAAI,GACrC,KAAK,KAAO,UAAY,MAAM,SAAW,KAAK,SACtB,MAAM,KAAO,KAAK,UAKhD,GAAM,QAAS,UAAQ,eAAe,GAAG,MAAO,YAAa,MAE7D,GAAI,aAAe,MACjB,GAAM,oBAAqB,qBAAa,uBAAuB,aACzD,wBAA0B,WAC5B,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,KAAM,sBAEjD,MAAA,WAAQ,8BAA8B,QACtC,UAAQ,8BAA8B,IAE/B,wBAGT,MAAO,QAGF,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,SChER,wBAAwB,MAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,SAAW,OACf,CAAC,KAAM,cAAgB,MAE7B,GAAI,EAAE,MAAM,SAAW,GACrB,GAAM,OAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,YAAc,UAAQ,KAAK,IAAI,QAAQ,QAAQ,OAE/C,QACF,aAAa,MAAO,YAAa,QAAQ,MAAO,QAAQ,MAAO,MAEnE,MAAO,WAAQ,eAAe,CAAC,MAAO,QAAQ,MAAO,iBAC5C,EAAE,MAAM,SAAW,GAC5B,GAAM,MAAO,UAAQ,WAAW,GAC1B,WAAa,UAAQ,WAAW,SAEhC,OAAS,mBAAmB,KAAM,WAAY,KAAM,cAE1D,MAAO,WAAQ,eAAe,OAAO,MAAO,QAAQ,MAAO,OAAO,QAGpE,KAAM,IAAI,OACN,qEACG,EAAE,MAAM,WAGV,GAAM,qBAAoC,CAC/C,WAAY,cACZ,YAAa,MACb,WAAY,gBCnCR,uBAAuB,MAK3B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,UAAW,YAAc,MAEhC,aAAK,OACD,aAAe,OACf,IAAM,+DACF,cACR,aAAK,OACD,UAAY,EACZ,IAAM,sDAAsD,aAEhE,GAAM,WAAY,EAAE,MAAM,GACpB,YAAc,EAAE,MAAM,GACtB,WAAa,EAAE,MAAM,GACrB,WAAa,EAAE,MAAM,GAErB,aAAe,YAAc,UAC7B,YAAc,WAAa,UAC3B,YAAc,WAAc,WAAY,WAExC,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,OACF,GAAI,cAAa,UAAY,aAAe,YAAc,aAE1D,UAAY,EAChB,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC/B,OAAS,GAAI,EAAG,EAAI,aAAc,EAAE,GAClC,GAAM,KAAM,KAAK,MAAM,EAAI,WACrB,QAAW,EAAI,UACrB,OAAS,GAAI,EAAG,EAAI,YAAa,EAAE,GACjC,GAAM,KAAM,KAAK,MAAM,EAAI,WACrB,QAAW,EAAI,UACf,QAAW,SAAU,UAAY,SAAW,YAClD,OAAS,GAAI,EAAG,EAAI,YAAa,EAAE,GAEjC,GAAM,UADM,EAAI,QAEN,WAAc,KAAM,WAAc,KAAM,YAAc,IAChE,OAAO,aAAe,QAAQ,YAMtC,MAAO,WAAQ,eACX,CAAC,UAAW,aAAc,YAAa,aAAc,EAAE,MAAO,QAG7D,GAAM,oBAAmC,CAC9C,WAAY,aACZ,YAAa,MACb,WAAY,eCvDR,+BAAgC,MAKpC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,QAAU,OACd,CAAC,QAAS,IAAA,KAAK,UAAW,iBAAmB,MAEnD,iBAAiB,CAAC,EAAG,QAAS,yBAE9B,GAAM,UAAW,aAAK,eAAe,EAAE,OACjC,cAAgB,aAAK,eAAe,OAAO,OAE7C,WAAa,UACb,YAAc,MAChB,YAAa,CAAC,EAAG,IAGnB,aAAK,OACD,qBAAa,+BAA+B,QAAS,YACrD,IAAM,gFACgB,0BAA0B,eAEpD,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MACF,OAAO,MAA2C,QAAS,WAC3D,KAAK,gBAAiB,IAEpB,CAAC,aAAc,YAAa,eAAgB,cAAe,SAC7D,SACE,QAAU,QAAQ,KAClB,OAAS,QAAQ,IACjB,MAAQ,SAAS,YAAc,SAAS,WACxC,EAAI,GAAI,cAAa,SAAS,SAAU,EAAE,OAC1C,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,MAAQ,UAAQ,KAAK,IAAI,OAAO,QAAQ,OACxC,MAAQ,EAAE,OAEhB,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,GACxC,GAAM,UAAW,EAAI,SAAS,GACxB,SAAW,EAAI,EAAE,QAAQ,GAC/B,OAAS,IAAK,EAAG,GAAK,SAAS,UAAW,EAAE,IAC1C,GAAM,UAAW,SAAW,GAAK,EAAE,QAAQ,GACrC,SAAW,GAAK,SAAS,aAAe,QAC9C,OAAS,IAAK,EAAG,GAAK,aAAc,EAAE,IACpC,GAAM,IAAK,SAAW,GAAK,eAC3B,GAAI,GAAK,GAAK,IAAM,SAAS,SAC3B,SAEF,GAAM,UAAW,GAAK,cAAc,GAC9B,SAAW,SAAW,GAAK,SAAS,GAC1C,OAAS,IAAK,EAAG,GAAK,SAAS,SAAU,EAAE,IACzC,GAAM,UAAW,SAAW,GAAK,EAAE,QAAQ,GACrC,SAAW,GAAK,SAAS,YAAc,OAC7C,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,IAAK,SAAW,GAAK,cAC3B,GAAI,GAAK,GAAK,IAAM,SAAS,QAC3B,SAEF,GAAM,UAAW,SAAW,GAAK,cAAc,GACzC,SAAW,SAAW,GAAK,SAAS,WACtC,SAAW,SACX,SAAW,SACf,OAAS,IAAK,EAAG,GAAK,SAAS,WAAY,EAAE,IAC3C,GAAM,MAAO,MAAM,SAAW,IAC9B,OAAS,GAAI,EAAG,EAAI,MAAO,EAAE,EAC3B,MAAM,SAAW,IAAM,KAAO,MAAM,SAAW,GAEjD,UAAY,MACZ,UAAY,WAQxB,MAAO,WAAQ,eAAe,EAAE,MAAO,EAAE,MAAO,EAAE,QAG7C,GAAM,6BAA4C,CACvD,WAAY,sBACZ,YAAa,MACb,WAAY,uBCpFR,8CAA8C,MAKlD,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,IAAM,OACV,CAAC,QAAS,UAAW,IAAA,KAAK,gBAAiB,aAAe,MAEhE,iBAAiB,CAAC,EAAG,IAAK,uCAE1B,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MAA2C,YAAa,QAC1D,UAAW,KAAK,gBAAiB,IAE/B,CAAC,aAAc,YAAa,aAAc,aAAe,SAEzD,GAAK,GAAI,cAAa,SAAS,YAAa,WAE5C,QAAU,SAAS,QAAQ,KAC3B,OAAS,SAAS,QAAQ,IAC1B,MAAQ,SAAS,YAAc,SAAS,WAExC,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,KAAO,GAAI,cAAa,EAAE,MAAO,EAAE,MAAO,OAC1C,OAAS,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACrC,MAAQ,GAAI,cAAa,GAAG,MAAO,GAAG,MAAO,QACnD,OAAS,IAAK,EAAG,GAAK,aAAc,EAAE,IACpC,GAAM,OAAQ,KAAK,IAAI,EAAG,KAAK,KAAM,QAAS,IAAM,eAC9C,MAAQ,KAAK,IACf,SAAS,UAAY,UAAS,SAAW,OAAS,IAAM,cAE5D,OAAS,IAAK,EAAG,GAAK,YAAa,EAAE,IACnC,GAAM,OAAQ,KAAK,IAAI,EAAG,KAAK,KAAM,SAAU,IAAM,cAC/C,MAAQ,KAAK,IACf,SAAS,SAAW,UAAS,QAAU,QAAU,IAAM,aAE3D,OAAS,IAAK,EAAG,GAAK,SAAS,YAAa,EAAE,IAC5C,GAAM,IAAK,KAAK,MAAM,GAAK,OACrB,GAAK,GAAK,MAEZ,QAAU,EACd,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,EACxC,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,GAAK,aAAe,OACpC,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,GAAK,YAAc,QACnC,SAAY,KAAK,IAAI,EAAG,GAAI,GAAI,IAC3B,MAAM,IAAI,EAAG,GAAI,GAAI,KAIhC,GAAG,IAAI,QAAS,GAAI,GAAI,GAAI,MAKlC,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,2CAA0D,CACrE,WAAY,oCACZ,YAAa,MACb,WAAY,sCC/DR,6CAA6C,MAKjD,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,QAAU,OACf,CAAC,QAAS,UAAW,IAAA,KAAK,gBAAiB,YAAc,MAE/D,iBAAiB,CAAC,GAAI,QAAS,sCAE/B,GAAM,WAAY,aAAK,eAAe,GAAG,OACnC,cAAgB,aAAK,eAAe,OAAO,OAE3C,SAAW,qBAAa,kBAC1B,WAAY,OAAO,MAA2C,QAC9D,UAAW,KAAK,gBAAiB,IAE/B,GAAK,GAAI,cAAa,SAAS,QAAS,WACxC,SAAW,GAAG,OACd,CAAC,KAAM,KAAM,MAAQ,GAAG,QACxB,SAAW,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACvC,CAAC,KAAM,KAAM,MAAQ,UACrB,UAAY,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAC5C,CAAC,MAAO,MAAO,OAAS,cACxB,CACJ,UACA,aACA,YACA,WACA,SACA,QACA,YACA,UACA,SACA,aACA,aACE,SACE,OAAS,aAAe,EAAI,SAAS,QAAQ,IAC7C,QAAU,YAAc,EAAI,SAAS,QAAQ,KAC7C,MAAQ,YAAc,WAE5B,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC/B,OAAS,IAAK,EAAG,GAAK,WAAY,EAAE,GAClC,OAAS,IAAK,EAAG,GAAK,SAAU,EAAE,IAChC,GAAM,UAAW,GAAK,OAChB,MAAQ,KAAK,IAAI,EAAG,KAAK,KAAK,SAAW,eACzC,MACF,KAAK,IAAI,UAAY,cAAe,UAAY,cAEpD,OAAS,IAAK,EAAG,GAAK,QAAS,EAAE,IAC/B,GAAM,UAAW,GAAK,QAChB,MAAQ,KAAK,IAAI,EAAG,KAAK,KAAK,SAAW,cACzC,MACF,KAAK,IAAI,SAAW,aAAc,UAAY,aAE9C,QAAU,EACd,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,aAAe,SAE/B,OAAS,IAAK,MAAO,GAAK,MAAO,EAAE,IACjC,GAAM,IAAK,GAAK,YAAc,SACxB,SAAW,KAAO,EAAI,KAAO,GAAK,KAAO,GACzC,UAAY,MAAS,cAAe,EAAI,IAC1C,MAAS,aAAc,EAAI,IAAM,MAAQ,GAE7C,OAAS,IAAK,EAAG,GAAK,MAAO,EAAE,IAC7B,GAAM,IAAK,GAAK,MAAQ,GAClB,MAAQ,SAAS,SAAW,IAC5B,OAAS,UAAU,UAAY,IACrC,SAAW,MAAQ,SAIzB,SAAS,KAAO,EAAI,KAAO,GAAK,KAAO,GAAK,IAAM,SAM1D,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,0CAAyD,CACpE,WAAY,mCACZ,YAAa,MACb,WAAY,qCCvFR,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEN,MAAQ,aAAK,cAAc,EAAE,OAE7B,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,OAAS,OAAO,CAAC,MAAO,OAAQ,EAAE,OAClC,KAAO,OAAO,OACpB,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,IAChC,KAAK,EAAI,MAAQ,GAAK,MAAM,GAG9B,GAAM,UAAW,CAAC,GAAG,EAAE,MAAO,GAAG,EAAE,OAEnC,MAAO,WAAQ,eAAe,SAAU,OAAO,MAAO,OAAO,QAGxD,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCtBD,iBAAiC,CAC5C,WAAY,WACZ,YAAa,MACb,WAAY,CAAC,CAAC,OAAQ,QAAA,UAAS,UAC7B,GAAM,CAAC,EAAG,QAAU,OACd,CAAC,QAAS,IAAA,KAAK,WAAa,MAC5B,WAAa,UAEb,MAAQ,WAAW,KAAK,IAAI,EAAE,QAAQ,OACtC,MAAQ,EAAE,MAAM,OAEhB,WAAa,WAAW,KAAK,IAAI,OAAO,QAAQ,OAChD,WAAa,OAAO,MAAM,OAE1B,CACJ,UACA,SACA,QACA,WACA,UACA,SACA,QACA,aACA,YACA,aACA,YACA,eACA,cACA,UAEE,qBAAa,sBACT,EAAE,MACF,OAAO,MAAmC,QAAS,KACnD,OAAyB,WAE3B,QAAU,aAAK,cAAc,UAC7B,QAAU,SAAS,OACnB,WAAa,aAAK,kBAAkB,EAAE,MAAO,SAMnD,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC/B,OAAS,MAAO,EAAG,KAAO,UAAW,EAAE,MACrC,GAAM,MAAO,KAAO,aAAe,QAAQ,IAC3C,OAAS,MAAO,EAAG,KAAO,SAAU,EAAE,MACpC,GAAM,MAAO,KAAO,YAAc,QAAQ,KAC1C,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,GAChC,GAAI,QAAS,OAAO,iBACpB,OAAS,GAAI,EAAG,EAAI,aAAc,EAAE,GAClC,GAAM,KAAM,KAAO,EAAI,eACvB,GAAI,KAAO,GAAK,IAAM,SACpB,OAAS,GAAI,EAAG,EAAI,YAAa,EAAE,GACjC,GAAM,KAAM,KAAO,EAAI,cACvB,GAAI,KAAO,GAAK,IAAM,SACpB,GAAM,QAAS,aAAK,WAChB,CAAC,EAAG,IAAK,IAAK,GAAI,MAAO,aAAK,eAAe,EAAE,QAC7C,YAAc,aAAK,WACrB,CAAC,EAAG,EAAG,GAAI,WACX,aAAK,eAAe,OAAO,QACzB,IAAM,MAAM,QAAU,WAAW,aACnC,IAAM,QACR,QAAS,OAMnB,GAAM,aAAc,aAAK,WACrB,CAAC,EAAG,KAAM,KAAM,GAAI,QAAS,aAAK,eAAe,WACrD,WAAW,aAAe,SASlC,MAAO,CAAC,OAHO,WAAW,MACtB,aAAK,aAAa,WAAY,EAAE,OAAQ,SAAU,EAAE,OAExC,MAAO,SAAU,MAAO,EAAE,SC/EjC,+BAA+C,CAC1D,WAAY,yBACZ,YAAa,MACb,WAAY,CAAC,CAAC,OAAQ,QAAA,UAAS,UAC7B,GAAM,CAAC,EAAG,OAAQ,IACd,OACE,CAAC,QAAS,IAAA,KAAK,WAAa,MAC5B,WAAa,UAEb,GACF,aAAK,cACD,EAAE,MAAO,WAAW,KAAK,IAAI,EAAE,QAAQ,QAGzC,QAAU,aAAK,cACD,OAAO,MACP,WAAW,KAAK,IAAI,OAAO,QAAQ,QAGjD,CACJ,UACA,SACA,QACA,WACA,UACA,SACA,QACA,aACA,YACA,aACA,YACA,eACA,cACA,UAEE,qBAAa,sBACT,EAAE,MACF,OAAO,MAAmC,QAAS,KACnD,OAAyB,WAEjC,aAAK,OACD,GAAG,OAAS,SAAS,OACrB,IAAM,YAAY,kEACuB,SAAS,mBAC3C,GAAG,QAEd,GAAM,KACF,aAAK,cACD,SAAU,WAAW,KAAK,IAAI,GAAG,QAAQ,QAK3C,UAAY,aAAK,0BACD,OAAO,MAAO,OAAO,OAO3C,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC/B,OAAS,MAAO,EAAG,KAAO,UAAW,EAAE,MACrC,GAAM,MAAO,KAAO,aAAe,QAAQ,IAC3C,OAAS,MAAO,EAAG,KAAO,SAAU,EAAE,MACpC,GAAM,MAAO,KAAO,YAAc,QAAQ,KAC1C,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,GAChC,GAAI,QAAS,OAAO,iBAChB,KAAO,EACP,KAAO,EACX,OAAS,GAAI,EAAG,EAAI,aAAc,EAAE,GAClC,GAAM,KAAM,KAAO,EAAI,eACvB,GAAI,KAAO,GAAK,IAAM,SACpB,OAAS,GAAI,EAAG,EAAI,YAAa,EAAE,GACjC,GAAM,KAAM,KAAO,EAAI,cACvB,GAAI,KAAO,GAAK,IAAM,SACpB,GAAM,KAAM,GAAG,GAAG,KAAK,KAAK,GAAK,QAAQ,GAAG,GAAG,GAC3C,IAAM,QACR,QAAS,IACT,KAAO,EACP,KAAO,KAMjB,UAAU,MAAM,MAAM,IAAM,IAAI,GAAG,MAAM,MAAM,KASvD,MAAO,CAAC,OAHO,WAAW,MACtB,aAAK,aAAa,UAAW,EAAE,OAAQ,OAAO,MAAO,OAAO,OAEhD,MAAO,OAAO,MAAO,MAAO,OAAO,SC/F1C,8BAA8C,CACzD,WAAY,wBACZ,YAAa,MACb,WAAY,CAAC,CAAC,OAAQ,QAAA,UAAS,UAC7B,GAAM,CAAC,EAAG,OAAQ,IACd,OACE,CAAC,QAAS,IAAA,KAAK,WAAa,MAC5B,WAAa,UAEb,GACF,aAAK,cACD,EAAE,MAAO,WAAW,KAAK,IAAI,EAAE,QAAQ,QAGzC,QAAU,aAAK,cACD,OAAO,MACP,WAAW,KAAK,IAAI,OAAO,QAAQ,QAGjD,CACJ,UACA,SACA,QACA,WACA,UACA,SACA,QACA,aACA,YACA,aACA,YACA,eACA,cACA,UAEE,qBAAa,sBACT,EAAE,MACF,OAAO,MAAmC,QAAS,KACnD,OAAyB,WAEjC,aAAK,OACD,GAAG,OAAS,SAAS,OACrB,IAAM,YAAY,iEACuB,SAAS,mBAC3C,GAAG,QAEd,GAAM,KACF,aAAK,cACD,SAAU,WAAW,KAAK,IAAI,GAAG,QAAQ,QAK3C,UACF,aAAK,0BAA0B,EAAE,MAAO,EAAE,OAO9C,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,EAC/B,OAAS,MAAO,EAAG,KAAO,UAAW,EAAE,MACrC,GAAM,MAAO,KAAO,aAAe,QAAQ,IAC3C,OAAS,MAAO,EAAG,KAAO,SAAU,EAAE,MACpC,GAAM,MAAO,KAAO,YAAc,QAAQ,KAC1C,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,GAChC,GAAI,QAAS,OAAO,iBAChB,OAAU,KAAO,EAAK,EAAI,KAC1B,OAAU,KAAO,EAAK,EAAI,KAC9B,OAAS,GAAI,EAAG,EAAI,aAAc,EAAE,GAClC,GAAM,KAAM,KAAO,EAAI,eACvB,GAAI,KAAO,GAAK,IAAM,SACpB,OAAS,GAAI,EAAG,EAAI,YAAa,EAAE,GACjC,GAAM,KAAM,KAAO,EAAI,cACvB,GAAI,KAAO,GAAK,IAAM,SACpB,GAAM,KAAM,GAAG,GAAG,KAAK,KAAK,GAAK,QAAQ,GAAG,GAAG,GAC3C,IAAM,QACR,QAAS,IACT,OAAS,IACT,OAAS,OAMnB,UAAU,GAAG,QAAQ,QAAQ,IAAM,IAAI,GAAG,MAAM,MAAM,KAS9D,MAAO,CAAC,OAHO,WAAW,MACtB,aAAK,aAAa,UAAW,EAAE,OAAQ,EAAE,MAAO,EAAE,OAEtC,MAAO,EAAE,MAAO,MAAO,EAAE,SC/FvC,iBAAkB,MAEtB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAI,GAAK,OAEhB,iBAAiB,CAAC,GAAI,GAAI,WAE1B,GAAM,cAAe,GAAI,cAAa,aAAK,cAAc,EAAE,QACrD,OAAS,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACpC,SAAW,UAAQ,KAAK,IAAI,GAAG,QAAQ,OAC7C,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,EAAE,GACnC,GAAM,GAAI,OAAO,GACb,GAAK,EACP,aAAa,GAAK,SAAS,GAE3B,aAAa,GAAK,SAAS,GAAM,GAAI,GAIzC,MAAO,WAAQ,eAAe,EAAE,MAAO,UAAW,cAG7C,GAAM,gBAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,SCzBD,UACT,6BAA6B,CAAC,EAAW,IAAe,IAAM,EAAK,EAAI,GAC9D,OACT,iBAAiB,MAAO,UAAW,KAAwB,QAElD,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCTR,EAAI,qBAAa,MACjB,GAAK,qBAAa,OAClB,GAAK,qBAAa,OAClB,GAAK,qBAAa,OAClB,GAAK,qBAAa,OAClB,GAAK,qBAAa,OAEX,KAAM,gBACf,IACC,KACC,GAAM,OAAO,KAAK,KAAK,IACjB,EAAI,KAAK,IAAI,IACb,EAAI,EAAO,GAAM,EAAI,GAC3B,MAAO,OACF,GACK,OAAK,EAAI,IAAM,EAAK,IAAM,EAAI,IAAM,EAAI,IAAM,EAC/C,KAAK,IAAI,CAAC,EAAI,MAIhB,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCtBR,qBAAqB,MAKzB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAA,QAAS,OACV,CAAC,KAAO,MAER,UAAY,OAAM,MAAM,OACxB,SAAW,OAAM,MAAM,QACzB,KAAO,IACX,MAAI,KAAM,GAER,cAAK,OACD,CAAE,WAAY,IAAM,IACpB,IAAM,iCAAiC,CAAG,WAAY,OAClD,cACR,KAAO,UAAY,IAAM,GAE3B,SAAS,OAAO,KAAM,EAAG,GAElB,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAQ,QAAA,UAAS,MAAO,CAAC,MAAO,YAGvD,GAAM,kBAAiC,CAC5C,WAAY,WACZ,YAAa,MACb,WAAY,aC5BD,YACT,6BAA6B,CAAC,EAAW,IAAc,EAAI,GAClD,KAAM,iBAAiB,QAAS,aAEhC,cAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,MCKR,kBACF,OAAmB,QACnB,YACF,GAAM,YAAa,OAAM,MACnB,MAAQ,WAAW,GACnB,SAAW,WAAW,GAEtB,UAAY,WAAW,KAAK,IAAI,OAAM,QAEtC,OAAS,UAAU,mBAAmB,KACtC,OAAS,UAAU,mBAAmB,KAGtC,YAAc,CAAC,MAAO,UACtB,WAAa,aAAK,cAAc,aAChC,WAAa,aAAK,uBAAuB,UAAW,YACpD,WAAa,aAAK,uBAAuB,UAAW,YAE1D,OAAS,GAAI,EAAG,EAAI,MAAO,KAEzB,GAAM,GAAI,OAAM,CACd,OAAQ,CAAC,EAAG,QACZ,QAAS,WACT,MAAO,CAAC,MAAO,CAAC,EAAG,GAAI,KAAM,CAAC,EAAG,aAE7B,EAAI,OAAM,CACd,OAAQ,CAAC,EAAG,QACZ,QAAS,WACT,MAAO,CAAC,MAAO,CAAC,EAAG,GAAI,KAAM,CAAC,EAAG,aAG7B,OAAQ,SAAQ,CAAC,OAAQ,CAAC,KAAM,EAAG,KAAM,GAAI,QAAS,aAGtD,CAAC,KAAA,MAAM,KAAA,OAAQ,QAAQ,OAAO,QAAS,YACvC,IAAM,qBAAa,uBAAuB,MAAM,OAEtD,OAAS,GAAI,EAAG,EAAI,SAAU,KAC5B,GAAM,GAAI,qBAAa,oBAAoB,IAAK,GAChD,WAAW,EAAI,SAAW,GAAK,EAAE,KACjC,WAAW,EAAI,SAAW,GAAK,EAAE,KAGnC,WAAW,8BAA8B,GACzC,WAAW,8BAA8B,GACzC,WAAW,8BAA8B,QAG3C,GAAM,WACF,WAAW,eAAe,YAAa,UAAW,YAChD,UACF,WAAW,eAAe,YAAa,UAAW,YAEhD,OAAS,SACX,CAAC,OAAQ,CAAC,KAAM,UAAW,KAAM,WAAY,QAAS,aAE1D,MAAA,YAAW,8BAA8B,WACzC,WAAW,8BAA8B,WAElC,OAGH,iBACF,OAAmB,QACnB,YACF,GAAM,WAAY,aAAK,cAAc,OAAM,OAErC,UAAY,WAAW,KAAK,IAAI,OAAM,QAEtC,SACF,WAAW,KAAK,IAAI,UAAU,mBAAmB,KAAK,QAAQ,OAG5D,SACF,WAAW,KAAK,IAAI,UAAU,mBAAmB,KAAK,QAAQ,OAGlE,GAAI,cAAc,YAChB,GAAM,QACF,UAAU,SAAU,SAAU,UAAW,QAAS,YAEhD,YAAc,CAAC,OAAM,MAAM,GAAI,OAAM,MAAM,IAEjD,GAAI,SACF,GAAM,UACF,WAAW,eAAe,YAAa,UAAW,OAAO,MACvD,SACF,WAAW,eAAe,YAAa,UAAW,OAAO,MAEvD,SAAuB,WAAW,eACpC,GAAI,UACJ,aAAK,kBAAkB,UAA8B,YACnD,aACF,SAAS,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAS,aAExC,YACF,cAAc,WACV,CAAC,OAAQ,CAAC,EAAG,SAAU,EAAG,UAAW,QAAS,aAEhD,YACF,cAAc,WACV,CAAC,OAAQ,CAAC,EAAG,SAAU,EAAG,cAAe,QAAS,aAGpD,YACF,WAAW,KAAK,IAAI,YAAY,QAAQ,OACtC,YACF,WAAW,KAAK,IAAI,YAAY,QAAQ,OAE5C,MAAA,YAAW,8BAA8B,UACzC,WAAW,8BAA8B,UACzC,WAAW,8BAA8B,UACzC,WAAW,8BAA8B,cACzC,WAAW,8BAA8B,aACzC,WAAW,8BAA8B,aAElC,CAAC,KAAM,YAAa,KAAM,aAGnC,MAAO,aAEP,GAAM,OAAO,qBAAa,uBAAuB,SAAU,UAErD,UACF,yBAAyB,MAAM,UAAW,SAE9C,MAAO,sBAAa,uBAAuB,YAI/C,uBAAuB,MACrB,MAAQ,MAAO,KAAO,IAAO,EAI/B,mBACI,SAAwB,SAAwB,KAChD,QACA,YACF,GAAI,OAAS,EACX,MAAO,CAAC,KAAM,SAAU,KAAM,UAGhC,GAAM,OAAO,qBAAa,uBAAuB,SAAU,UAErD,KAAO,KAAO,EAEd,YAAc,qBAAa,qBAAqB,OAEhD,aAAe,YAAY,KAC3B,aAAe,YAAY,KAE3B,UAAY,CAAC,aAAa,QAE1B,aACF,WAAW,eAAe,UAAW,UAAW,cAC9C,aACF,WAAW,eAAe,UAAW,UAAW,cAE9C,eAAiB,SACnB,CAAC,OAAQ,CAAC,KAAM,aAAc,KAAM,cAAe,QAAS,aAE1D,WAAa,qBAAa,oBAAoB,OAE9C,YAAc,WAAW,KACzB,YAAc,WAAW,KAEzB,SAAW,CAAC,YAAY,QAExB,YACF,WAAW,eAAe,SAAU,UAAW,aAC7C,YACF,WAAW,eAAe,SAAU,UAAW,aAE7C,cAAgB,SAClB,CAAC,OAAQ,CAAC,KAAM,YAAa,KAAM,aAAc,QAAS,aAGxD,aACF,UAAU,aAAc,aAAc,KAAM,QAAS,YAEnD,cAAgB,aAAa,KAC7B,cAAgB,aAAa,KAE7B,WAAa,CAAC,cAAc,QAE5B,cACF,WAAW,eAAe,WAAY,UAAW,eAC/C,cACF,WAAW,eAAe,WAAY,UAAW,eAE/C,gBAAkB,SAAQ,CAC9B,OAAQ,CAAC,KAAM,cAAe,KAAM,eACpC,QAAS,aAGL,YACF,UAAU,YAAa,YAAa,KAAM,QAAS,YAEjD,aAAe,YAAY,KAC3B,aAAe,YAAY,KAE3B,UAAY,CAAC,aAAa,QAE1B,aACF,WAAW,eAAe,UAAW,UAAW,cAC9C,aACF,WAAW,eAAe,UAAW,UAAW,cAE9C,eAAiB,SACnB,CAAC,OAAQ,CAAC,KAAM,aAAc,KAAM,cAAe,QAAS,aAE1D,EAAI,qBAAa,UAAU,KAAM,SACjC,OAAS,CAAC,EAAE,KAAK,QAEjB,UAAY,WAAW,eAAe,OAAQ,UAAW,EAAE,MAC3D,UAAY,WAAW,eAAe,OAAQ,UAAW,EAAE,MAE3D,YAAc,SAChB,CAAC,OAAQ,CAAC,KAAM,UAAW,KAAM,WAAY,QAAS,aAEpD,aACF,SACI,CAAC,OAAQ,CAAC,EAAG,YAAa,EAAG,gBAAiB,QAAS,aAGzD,QAAU,KAAI,CACF,OAAQ,CAAC,EAAG,gBAAiB,EAAG,cAChC,QAAS,aAErB,QAAU,KAAI,CACF,OAAQ,CAAC,EAAG,gBAAiB,EAAG,cAChC,QAAS,aAGrB,YAAc,MAAK,CAAC,OAAQ,CAAC,MAAO,SAAU,QAAS,aACvD,YAAc,MAAK,CAAC,OAAQ,CAAC,MAAO,SAAU,QAAS,aAEvD,YAAc,MAAK,CAAC,OAAQ,CAAC,MAAO,SAAU,QAAS,aACvD,YAAc,MAAK,CAAC,OAAQ,CAAC,MAAO,SAAU,QAAS,aAEvD,MAAQ,QAAO,CACnB,OAAQ,CAAC,YAAuB,aAChC,QAAS,WACT,MAAO,CAAC,KAAM,KAEV,MAAQ,QAAO,CACnB,OAAQ,CAAC,YAAuB,aAChC,QAAS,WACT,MAAO,CAAC,KAAM,KAGV,UAAY,WAAW,KAAK,IAAI,MAAM,QAAQ,OAC9C,UAAY,WAAW,KAAK,IAAI,MAAM,QAAQ,OAEpD,MAAA,YAAW,8BAA8B,cACzC,WAAW,8BAA8B,cACzC,WAAW,8BAA8B,gBACzC,WAAW,8BAA8B,aACzC,WAAW,8BAA8B,aACzC,WAAW,8BAA8B,eACzC,WAAW,8BAA8B,eACzC,WAAW,8BAA8B,eACzC,WAAW,8BAA8B,iBACzC,WAAW,8BAA8B,cACzC,WAAW,8BAA8B,cACzC,WAAW,8BAA8B,gBACzC,WAAW,8BAA8B,WACzC,WAAW,8BAA8B,WACzC,WAAW,8BAA8B,aACzC,WAAW,8BAA8B,cACzC,WAAW,8BAA8B,SACzC,WAAW,8BAA8B,SACzC,WAAW,8BAA8B,aACzC,WAAW,8BAA8B,aACzC,WAAW,8BAA8B,aACzC,WAAW,8BAA8B,aACzC,WAAW,8BAA8B,OACzC,WAAW,8BAA8B,OAElC,CAAC,KAAM,UAAW,KAAM,WAIjC,kCACI,MAAkB,KAAc,SAClC,GAAM,KAAM,GAAI,cAAa,KAAO,GAEpC,OAAS,GAAI,EAAG,EAAI,KAAM,KACxB,GAAI,OAAO,EACP,MAAO,EACX,OAAS,GAAI,EAAG,EAAI,KAAM,KACxB,GAAM,GAAI,qBAAa,SAAS,EAAI,EAAG,KAAM,SACvC,KAAO,qBAAa,oBAAoB,MAAsB,GACpE,OAAQ,KAAK,KAAO,EAAE,KAAO,KAAK,KAAO,EAAE,KAC3C,OAAQ,KAAK,KAAO,EAAE,KAAO,KAAK,KAAO,EAAE,KAEzC,SACF,QAAQ,KACR,OAAQ,MAEV,qBAAa,mBAAmB,IAAK,MAAM,MAAM,GAEnD,MAAO,KC1TH,cAAc,MAElB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,MAAA,QAAS,OAEV,UAAY,aAAK,cAAc,OAAM,OAGrC,mBAAqB,OAAM,MAAM,OAAM,MAAM,OAAS,GACtD,MAAQ,UAAY,mBAEpB,QAAU,SAAQ,CACtB,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,MAAO,uBAGnB,OAAS,SAAS,QAAS,GAAO,WAElC,eACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,OAAM,SAEhE,MAAA,WAAQ,8BAA8B,SACtC,UAAQ,8BAA8B,QAE/B,eAGF,GAAM,WAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCjCR,eAAe,MAEnB,GAAM,CAAC,QAAA,UAAS,OAAS,KACnB,CAAC,MAAO,MAAO,OAAS,MAExB,OAAS,OAAS,aAAK,WAAW,OAClC,OAAS,aAAK,kBAAkB,OAAQ,aAAK,cAAc,QACjE,MAAA,YAAW,OAAQ,MAAO,QAEnB,UAAQ,eAAe,MAAO,OAAQ,QAGxC,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OAGd,oBACI,OAAoB,MAAsB,OAEzC,OAAoB,KAAK,OCpBvB,GAAM,qBAAoC,CAC/C,WAAY,cACZ,YAAa,MACb,WAAY,CAAC,CAAC,OAAQ,MAAO,QAAA,cAC3B,GAAM,CAAC,MAAA,QAAS,OACV,WAAa,UAEb,OAAS,aAAK,uBAChB,OAAM,MAA0B,aAAK,cAAc,OAAM,QACvD,CAAC,MAAO,YAAa,WAAY,aAAe,OAAM,MAEtD,UAAY,WAAW,KAAK,IAAI,OAAM,QAAQ,OAEpD,OAAS,UAAW,EAAG,SAAW,MAAO,YACvC,GAAM,aAAc,SAAW,WAAa,YAAc,YAE1D,OAAS,KAAM,EAAG,IAAM,YAAa,OACnC,GAAM,WAAY,IAAO,YAAa,aAEtC,OAAS,KAAM,EAAG,IAAM,WAAY,OAClC,GAAM,WAAY,IAAM,YAExB,OAAS,SAAU,EAAG,QAAU,YAAa,WAG3C,GAAM,GAFS,CAAC,MAAO,IAAK,IAAK,SAEhB,GAEX,OAAS,KAAK,MAAM,WAAa,GACjC,OAAS,YAAc,UAAY,UAAY,QAEjD,YAAc,UAAU,QAE5B,GAAI,QAAU,GAAK,OAAS,YAE1B,GAAM,kBAAmB,OAAS,YAC5B,SACF,YAAc,UAAY,iBAAmB,QACjD,YAAc,UAAU,UAE1B,OAAO,QAAU,eAOzB,MAAO,CAAC,OADO,WAAW,MAAM,OAAQ,OAAM,MAAO,OAAM,OAC3C,MAAO,OAAM,MAAO,MAAO,OAAM,SC9CxC,aACT,6BAA6B,CAAC,EAAW,IAAc,KAAK,MAAM,EAAI,IAC7D,UACT,iBAAiB,SAAU,aAAc,KAAwB,SAExD,eAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,WCNR,qBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,OAAQ,KAAM,wBAA0B,OAC5C,CACJ,QACA,IAAA,KACA,WACA,UACA,gBACA,WAAA,YACA,gBACE,MAEA,OAAS,OAAO,CAClB,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,QAAS,IAAA,KAAK,WAAY,UAAW,mBAG/C,GAAI,MACF,GAAM,WAAY,OAClB,OAAS,KAAI,CAAC,OAAQ,CAAC,EAAG,OAAQ,EAAG,MAAO,QAAA,YAC5C,UAAQ,8BAA8B,WAGxC,GAAI,aACF,GAAM,WAAY,OAClB,OAAS,iBACL,UAAS,OAAQ,YAAY,uBAAwB,gBACzD,UAAQ,8BAA8B,WAGxC,MAAO,QAGF,GAAM,mBAAkC,CAC7C,WAAY,YACZ,YAAa,MACb,WAAY,aC1CR,8BAA+B,MAKnC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,OAAQ,KAAM,wBAA0B,OAC5C,CACJ,QACA,IAAA,KACA,WACA,UACA,gBACA,WAAA,YACA,gBACE,MAEA,OAAS,sBAAsB,CACjC,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,QAAS,IAAA,KAAK,WAAY,UAAW,mBAG/C,GAAI,MACF,GAAM,WAAY,OAClB,OAAS,KAAI,CAAC,OAAQ,CAAC,EAAG,OAAQ,EAAG,MAAO,QAAA,YAC5C,UAAQ,8BAA8B,WAExC,GAAI,aACF,GAAM,WAAY,OAClB,OAAS,iBACL,UAAS,OAAQ,YAAY,uBAAwB,gBACzD,UAAQ,8BAA8B,WAGxC,MAAO,QAGF,GAAM,4BAA2C,CACtD,WAAY,qBACZ,YAAa,MACb,WAAY,sBC5CR,kBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,OAAQ,SAAW,OAEpB,WAAa,aAAK,cAAc,OAAO,OAEvC,aAAe,QAAQ,MACvB,UAAY,aAAa,aAAa,OAAS,GAE/C,CAAC,YAAa,UAAW,UAAW,SACtC,qBAAa,mBAAmB,OAAQ,SAC5C,GAAI,YAAc,EAChB,MAAO,WAAQ,eAAe,YAAa,OAAO,MAAO,IAG3D,GAAM,QAAS,OAAO,CAAC,UAAW,WAAY,OAAO,OAC/C,YAAc,UAAQ,KAAK,IAAI,QAAQ,QAAQ,OAC/C,WAAa,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAEnD,OAAS,GAAI,EAAG,EAAI,UAAW,KAC7B,GAAM,OAAQ,GACV,aAAe,EACnB,OAAS,GAAI,EAAG,EAAI,UAAW,KAC7B,GAAM,KAAM,YAAY,EAAI,UAAY,GACxC,cAAgB,IAAM,QAAQ,GAC9B,MAAM,KAAK,KAEb,GAAI,aAAe,GAAK,cAAgB,WAAa,UACnD,KAAM,IAAI,OACN,oBAAoB,6BAA6B,OAAO,SAG9D,OAAS,GAAI,EAAG,EAAI,UAAW,IAC7B,OAAO,OAAO,EAAI,UAAY,GAC1B,WAAW,aAAe,UAAY,GAI9C,MAAO,WAAQ,eAAe,YAAa,OAAO,MAAO,OAAO,QAG3D,GAAM,gBAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,UC1CR,kBAAmB,MAKvB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,SAAW,OACf,CAAC,KAAM,WAAa,MAE1B,iBAAiB,CAAC,EAAG,SAAU,YAE/B,GAAI,YAAa,UAEb,WAAa,MACf,YAAa,GAGf,GAAM,aAAc,aAAK,cAAc,QAAQ,OAEzC,WAAa,aAAK,eAAe,KAAM,EAAE,OAAO,GAChD,UAAY,qBAAa,aAAa,yBACxC,EAAG,QAAS,WAAY,YAEtB,SAAW,SAAQ,CACvB,OAAQ,CAAC,GACT,QAAA,UACA,MAAO,CACL,MAAO,CACL,UAAU,UAAW,UAAU,UAAW,UAAU,QACpD,UAAU,cAKV,aAAe,SAAQ,CAC3B,OAAQ,CAAC,EAAG,SACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,UAAU,UAAW,YAAc,UAAU,cAGzD,mBAAqB,CACzB,UAAU,UAAW,UAAU,UAAW,YAAc,UAAU,UAClE,UAAU,WAGN,WAAa,UAAQ,WAAW,cAChC,KAAO,UAAQ,WAAW,UAC1B,OAAS,aAAa,KAAM,WAAY,oBAE9C,MAAA,WAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,cAE/B,UAAQ,eACX,UAAU,YAAa,OAAO,MAAO,OAAO,QAG3C,GAAM,gBAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,UC7DD,iBACT,6BAA6B,CAAC,EAAW,IAAe,GAAK,EAAK,EAAI,GAC7D,cAAe,iBACxB,aAAc,iBAAkB,KAAwB,QAE/C,mBAAmC,CAC9C,WAAY,aACZ,YAAa,MACb,WAAY,eCPR,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,MAAA,QAAS,OAEV,UAAY,aAAK,cAAc,OAAM,OAGrC,mBAAqB,OAAM,MAAM,OAAM,MAAM,OAAS,GACtD,MAAQ,UAAY,mBAEpB,QAAU,SAAQ,CACtB,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,MAAO,uBAGnB,OAAS,SAAS,QAAS,GAAM,WAEjC,eACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,OAAM,SAEhE,MAAA,WAAQ,8BAA8B,SACtC,UAAQ,8BAA8B,QAE/B,eAGF,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCjCD,UACT,gBAAgB,SAAW,IAAO,OAAO,SAAS,IAAM,EAAI,EAAG,QAEtD,eAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,WCND,OACT,gBAAgB,MAAQ,IAAO,KAAK,IAAI,MAAQ,SAAW,EAAI,EAAG,QAEzD,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCND,OACT,gBAAgB,MAAQ,IAAO,OAAO,MAAM,IAAM,EAAI,EAAG,QAEhD,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCLD,cACT,6BAA6B,CAAC,EAAW,IAAe,GAAK,EAAK,EAAI,GAC7D,WACT,iBAAiB,UAAW,cAAe,KAAwB,QAE1D,gBAAgC,CAC3C,WAAY,UACZ,YAAa,MACb,WAAY,YCRR,kBAAmB,MAEvB,GAAM,CAAC,QAAA,UAAS,OAAS,KACnB,CAAC,MAAO,KAAM,KAAO,MAErB,QAAU,aAAa,MAAO,KAAM,KAE1C,MAAO,WAAQ,eAAe,CAAC,QAAQ,QAAS,UAAW,SAGtD,GAAM,gBAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,UCdD,OAAQ,gBAAgB,MAAQ,IAAO,KAAK,MAAM,KAElD,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCJD,eACT,6BAA6B,CAAC,EAAW,IAAc,GAAK,GACnD,YAAa,iBACtB,WAAY,eAAgB,KAAwB,QAE3C,iBAAiC,CAC5C,WAAY,WACZ,YAAa,MACb,WAAY,aCTD,YACT,gBAAgB,WAAa,IAAO,GAAK,EAAI,EAAG,QAEvC,iBAAiC,CAC5C,WAAY,WACZ,YAAa,MACb,WAAY,aCLD,cACT,6BAA6B,CAAC,EAAW,IAAc,GAAK,GACnD,WACT,iBAAiB,UAAW,cAAe,KAAwB,QAE1D,gBAAgC,CAC3C,WAAY,UACZ,YAAa,MACb,WAAY,YCRR,aACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,YAAa,KAAM,MAAO,MAAQ,MAEzC,iBAAiB,EAAG,OAEpB,GAAM,UAAW,EAAE,MAAM,GACnB,KAAO,SAAW,EAClB,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,KAAO,aAAK,cAAc,EAAE,OAC5B,OAAS,GAAI,cAAa,MAEhC,2BAA2B,QACzB,GAAM,gBAAiB,OAAS,SAC5B,eACA,OAAS,eAAiB,KAAK,IAAI,EAAG,eAAiB,aACrD,aACF,OAAS,eAAiB,KAAK,IAAI,eAAiB,YAAa,MAEjE,KAAM,EACV,KAAO,gBAAkB,aAAc,kBACrC,GAAM,GAAI,QAAQ,gBAClB,MAAO,EAAI,EAEb,MAAO,MAGT,OAAS,QAAS,EAAG,OAAS,KAAM,UAClC,GAAM,MAAM,kBAAkB,QACxB,IAAM,QAAQ,QAAU,KAAK,IAAI,KAAO,MAAQ,KAAK,CAAC,MAC5D,OAAO,QAAU,IAGnB,MAAO,WAAQ,eAAe,EAAE,MAAO,EAAE,MAAO,QAG3C,GAAM,WAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,KC1CR,iBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,EAAG,IAAM,OACb,CAAC,YAAa,KAAM,MAAO,MAAQ,MAEzC,iBAAiB,GAAI,WAErB,GAAM,QAAS,aAAK,cAAc,GAAG,OAE/B,SAAW,GAAG,MAAM,GACpB,SAAW,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACvC,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,OAAS,GAAI,cAAa,QAC1B,KAAO,OAEb,OAAS,QAAS,EAAG,OAAS,KAAM,UAClC,GAAM,gBAAiB,OAAS,SAC1B,WACD,OAAS,eAAkB,KAAK,IAAI,EAAG,eAAiB,aACvD,SAAY,OAAS,eACvB,KAAK,IAAI,SAAU,eAAiB,YAAc,GAElD,MAAO,EACX,OAAS,GAAI,WAAY,EAAI,SAAU,IACrC,OAAQ,KAAK,IAAI,QAAQ,GAAI,GAE/B,MAAO,MAAQ,MAAO,KAEtB,OAAS,GAAI,WAAY,EAAI,SAAU,KACrC,GAAI,KAAM,GAAK,MAAQ,KAAO,QAAQ,GAAK,QAAQ,QAAU,MACzD,SAAW,GACb,MAAO,KAAK,IAAI,MAAM,CAAC,OAEzB,KAAO,SAAS,QAChB,OAAO,IAAM,KAIjB,MAAO,WAAQ,eAAe,GAAG,MAAO,EAAE,MAAO,QAG5C,GAAM,eAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,SC3CR,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,iBAAkB,UAAY,MAC/B,WAAa,UACf,OAAS,EAAE,MACT,MAAQ,OAAO,OAEf,SAAW,aAAK,eAAe,iBAAkB,QACnD,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,OACvD,MAAQ,WAAW,KAAK,IAAI,EAAE,QAAQ,OAC1C,GAAI,cAAgB,MAClB,GAAM,UAAqB,GAAI,OAAM,OACrC,OAAS,GAAI,EAAG,EAAI,SAAS,OAAQ,IACnC,SAAS,GAAK,OAAO,aAAa,IAGpC,MAAQ,cAAc,MAAO,OAAQ,EAAE,MAAO,aAAc,UAC5D,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,OAElD,OAAS,SAGX,iBAAiB,EAAG,OACpB,qBAAa,2BAA2B,MAAO,KAAM,OACrD,GAAM,CAAC,YAAa,aAChB,qBAAa,0BAA0B,OAAQ,MAE7C,WAAa,aAAK,cAAc,aAEhC,OAAS,QAAQ,MAAO,WAAY,YAAa,EAAE,OACnD,OAAS,WAAW,MAAM,OAAQ,YAAa,EAAE,OAEnD,SAAW,YACf,MAAI,WAGF,UADiB,qBAAa,qBAAqB,YAAa,WAI3D,CAAC,OAAQ,MAAO,SAAU,MAAO,EAAE,OAGrC,GAAM,WAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCrDR,kBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACZ,iBAAiB,EAAG,WACpB,GAAM,CAAC,WAAY,QAAS,IAAA,KAAK,iBAAmB,MAC9C,UAAY,EAElB,aAAK,OACD,qBAAa,+BAA+B,QAAS,WACrD,IAAM,wEACa,0BAA0B,cAEjD,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,UAAW,KAAK,iBAChB,IAEJ,GAAI,SAAS,cAAgB,GAAK,SAAS,eAAiB,GACxD,aAAK,YAAY,SAAS,QAAS,SAAS,UAC9C,IAAM,SAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,iBAE7B,GAAM,SAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,SAAU,aAAK,eAAe,EAAE,OAChC,QAAS,MAAK,QAAS,EAAE,MAAO,EAAE,MAAO,SAAS,SAAU,OAClE,IAAM,UAAQ,eACV,SAAS,SAAU,EAAE,MAAO,QAAO,QAEzC,MAAO,KAGF,GAAM,eAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UCpCR,mBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,WAAY,QAAS,IAAA,KAAK,gBAAiB,WAAY,WAC1D,MAEJ,iBAAiB,EAAG,aAEpB,GAAI,YAAa,UACb,YAAc,MAChB,YAAa,CAAC,EAAG,EAAG,IAGtB,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MAAmD,WAAY,QACjE,WAAY,KAAK,gBAAiB,YAEhC,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,OAAS,OACX,QAAS,EAAE,MAAO,EAAE,MAAO,aAAK,eAAe,EAAE,OAAQ,SAAU,OAEvE,MAAO,WAAQ,eAAe,OAAO,MAAO,UAAW,OAAO,QAGzD,GAAM,iBAAgC,CAC3C,WAAY,UACZ,YAAa,MACb,WAAY,WC/BR,uBAAwB,MAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,MAAA,QAAS,OACd,CAAC,WAAY,QAAS,IAAA,KAAK,UAAW,iBAAmB,MAE/D,iBAAiB,CAAC,GAAI,QAAQ,iBAE9B,GAAM,UAAW,qBAAa,kBAC1B,OAAM,MAAmD,WACzD,QAAS,UAAW,KAAK,iBAEvB,SAAW,UAAQ,WAAW,QAC9B,UAAY,mBAAmB,SAAU,UACzC,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,cAAgB,SAAS,cACzB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,qBAAuB,SAAS,qBAChC,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAChC,SAAW,qBAAuB,EAAI,SAAS,QAAQ,MACvD,QAAU,qBAAuB,EAAI,SAAS,QAAQ,KACtD,OAAS,sBAAwB,EAAI,SAAS,QAAQ,IACtD,GAAK,OAAO,OAAM,MAAO,WAEzB,MAAQ,UAAQ,WAAW,IAEjC,OAAS,OAAQ,EAAG,MAAQ,SAAS,UAAW,EAAE,MAChD,OAAS,SAAU,EAAG,QAAU,SAAS,WAAY,EAAE,QACrD,OAAS,SAAU,EAAG,QAAU,SAAS,QAAS,EAAE,QAClD,OAAS,OAAQ,EAAG,MAAQ,SAAS,SAAU,EAAE,MAC/C,OAAS,OAAQ,EAAG,MAAQ,SAAS,QAAS,EAAE,OAE9C,GAAM,eAAgB,QAAU,SAC1B,YAAc,MAAQ,OACtB,YAAc,MAAQ,QACxB,QAAU,EACd,OAAS,QAAS,EAAG,OAAS,qBACzB,QAAU,eACb,GAAM,SAAW,eAAgB,QAAU,YAC3C,GAAI,CAAA,SAAU,GAAK,SAAW,SAAS,UACnC,KAAK,MAAM,WAAa,SAG5B,OAAS,MAAO,EAAG,KAAO,sBACrB,MAAQ,gBACX,GAAM,OAAS,aAAc,MAAQ,aACrC,GAAI,CAAA,OAAQ,GAAK,OAAS,SAAS,WAC/B,KAAK,MAAM,SAAW,OAG1B,OAAS,MAAO,EAAG,KAAO,qBACrB,MAAQ,eACX,GAAM,OAAS,aAAc,MAAQ,YACrC,GAAI,MAAQ,GAAK,OAAS,SAAS,UAC/B,KAAK,MAAM,SAAW,MACxB,SAGF,GAAM,QAAS,qBAAuB,sBAC9B,qBACJ,EACC,UAAU,IAAI,MAAO,QAAS,MAAO,MAAO,SAE3C,OACF,OAAS,sBAAwB,qBACjC,KAAO,qBAAuB,KAE5B,KAAO,SAAW,OAAS,EAAI,EACrC,AAAI,OAAS,GAMb,UADI,MAAM,IAAI,MAAO,QAAS,MAAO,MAAO,SACzB,QAIzB,GAAG,IAAI,QAAS,MAAO,QAAS,MAAO,MAAO,SAOxD,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,sBAAoC,CAC/C,WAAY,cACZ,YAAa,MACb,WAAY,eCnGR,sBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,MAAA,OAAO,QAAU,OACtB,EAAI,OACV,iBAAiB,CAAC,OAAO,QAAS,eAClC,GAAM,CAAC,WAAY,QAAS,IAAA,KAAK,iBAAmB,MAE9C,SAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,EAAmB,KAAK,iBACtB,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,UAAY,OACd,SAAS,SAAU,EAAE,MACrB,iBAAiB,QAAS,EAAE,MAAO,EAAE,MAAO,UAAU,QACpD,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAChC,QAAU,qBAAuB,EAAI,SAAS,QAAQ,KACtD,OAAS,sBAAwB,EAAI,SAAS,QAAQ,IACtD,GACF,OAAgB,EAAE,MAA2C,WAE3D,OAAS,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACrC,MAAQ,OACV,GAAG,MAA2C,UAAW,QAE7D,OAAS,GAAI,EAAG,EAAI,SAAS,UAAW,EAAE,EACxC,OAAS,GAAI,EAAG,EAAI,SAAS,WAAY,EAAE,EACzC,OAAS,KAAM,EAAG,IAAM,SAAS,SAAU,EAAE,IAC3C,OAAS,KAAM,EAAG,IAAM,SAAS,QAAS,EAAE,KAE1C,GAAM,WAAY,IAAM,OAClB,UAAY,IAAM,QACpB,QAAU,EACd,OAAS,IAAK,EAAG,GAAK,sBAAuB,IAAM,gBACjD,GAAM,KAAO,WAAY,IAAM,aAC/B,GAAI,CAAA,KAAM,GAAK,KAAO,SAAS,WAC3B,KAAK,MAAM,OAAS,KAGxB,OAAS,IAAK,EAAG,GAAK,qBAAsB,IAAM,eAChD,GAAM,KAAO,WAAY,IAAM,YAC/B,GAAI,IAAM,GAAK,KAAO,SAAS,UAC3B,KAAK,MAAM,OAAS,IACtB,SAEF,GAAM,QAAS,sBAAwB,qBAAuB,EACzD,UAAU,IAAI,EAAG,IAAK,IAAK,GAC1B,OAAS,GAAK,qBAAuB,GAErC,KAAO,SAAW,OAAS,EAAI,EACrC,AAAI,OAAS,GAKb,UADc,MAAM,IAAI,EAAG,IAAK,IAAK,GAClB,OAGvB,GAAG,IAAI,QAAS,EAAG,IAAK,IAAK,GAKrC,MAAO,WAAQ,eAAe,GAAG,MAAO,GAAG,MAAO,GAAG,QAGhD,GAAM,oBAAkC,CAC7C,WAAY,YACZ,YAAa,MACb,WAAY,cChFR,+BACF,QAAqB,OAAkB,MACvC,oBAA8B,UAChC,GAAM,SAAU,aAAK,eAAe,QAC9B,SAAW,MAAK,QAAS,OAAQ,MAAO,QAAS,SAAU,OAC3D,aAAe,iBACjB,QAAS,OAAQ,MAAO,SAAU,GAAM,qBAE5C,MAAO,CAAC,SAAS,OAAQ,aAAa,QCHjC,GAAM,yBAAwC,CACnD,WAAY,kBACZ,YAAa,MACb,WAAY,CAAC,CAAC,OAAQ,MAAO,QAAA,cAC3B,GAAM,CAAC,GAAK,OACN,CAAC,WAAY,QAAS,IAAA,KAAK,qBAC7B,MACE,WAAa,UACnB,iBAAiB,EAAG,qBAEpB,GAAM,QAAS,WAAW,KAAK,IAAI,EAAE,QAAQ,OACvC,SAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,CAAC,EAAG,GAAI,MACN,CAAC,OAAQ,SAAW,sBACtB,OAAQ,EAAE,MAAO,EAAE,MAAO,oBAAqB,UAE7C,aACF,WAAW,MAAM,OAAwB,SAAS,SAAU,EAAE,OAC5D,cACF,WAAW,MAAM,QAAuB,SAAS,SAAU,EAAE,OACjE,MAAO,CACL,CAAC,OAAQ,aAAc,MAAO,SAAS,SAAU,MAAO,EAAE,OAC1D,CAAC,OAAQ,cAAe,MAAO,SAAS,SAAU,MAAO,YCpBzD,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEzB,iBAAiB,EAAG,OAEpB,GAAI,IACA,EAAE,QAAU,OACd,GAAK,MAAK,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,WAEhD,GAAK,SAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YAG9B,GAAM,OAAQ,GAAG,MAAM,OACjB,KAAO,aAAK,eAAe,KAAM,GAAG,OACpC,YAAc,qBAAa,mBAAmB,KAAM,OAEtD,cAAgB,KAChB,UAAY,GACZ,aAAe,MACjB,WACI,WAAU,CAAC,OAAQ,CAAC,EAAG,IAAK,QAAA,UAAS,MAAO,CAAC,KAAM,eACvD,cAAgB,qBAAa,iBAAiB,cAAc,OAAQ,QAGtE,qBAAa,2BACT,MAAO,cAAe,UAAU,MAAM,QAE1C,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,UAAU,MAAO,eACtD,YAAc,qBAAa,WAAW,UAAU,MAAO,SACzD,OAAS,OAAM,UAAS,SAAU,aAChC,WAAa,aAAK,cAAc,aAChC,KAAO,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAEvC,MAAQ,UAAQ,KAAK,IAAI,UAAU,QAAQ,OACjD,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,GACjC,GAAM,QAAS,EAAI,WACf,KAAM,EACV,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,EAChC,MAAO,MAAM,OAAS,GAExB,KAAK,GAAK,KAGZ,GAAI,UACF,GAAM,UAAW,qBAAa,qBAAqB,OAAO,MAAO,MAC3D,UAAY,OAClB,OAAS,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,YAC/D,UAAQ,8BAA8B,WAGxC,MAAA,WAAQ,8BAA8B,IAElC,aAAe,MACjB,UAAQ,8BAA8B,WAGjC,OAGF,GAAM,WAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCtER,eACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEnB,KAAO,aAAK,eAAe,KAAM,EAAE,OAEnC,YADS,qBAAa,0BAA0B,EAAE,MAAO,MACpC,GACrB,WAAa,aAAK,cAAc,aAChC,UAAY,GACZ,iBACF,UAAQ,eAAe,GAAI,UAAW,GAAI,cAAa,CAAC,cAC5D,UAAU,KAAK,kBAEf,GAAM,IAAK,MAAK,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,aACtD,UAAU,KAAK,IAEf,GAAM,KACF,KAAI,CAAC,OAAQ,CAAC,EAAG,GAAI,EAAG,kBAAmB,QAAA,YAC/C,UAAU,KAAK,KAEf,GAAM,QAAS,KAAI,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,KAAM,YAE7D,MAAA,WAAU,QAAQ,GAAK,UAAQ,8BAA8B,IAEtD,OAGF,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCjCR,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEzB,iBAAiB,EAAG,OAEpB,GAAM,UAAW,aAAK,eAAe,KAAM,EAAE,OACzC,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,EAAE,MAAM,QAC/D,GAAK,EACL,cAAgB,MAClB,IAAK,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBACpD,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,EAAE,MAAM,SAG5D,qBAAa,2BAA2B,MAAO,KAAM,GAAG,MAAM,QAC9D,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,GAAG,MAAO,MAC/C,WAAa,aAAK,cAAc,aAChC,KAAO,aAAK,oBAAoB,aAAK,cAAc,UAAW,GAAG,OAEjE,MAAQ,UAAQ,KAAK,IAAI,GAAG,QAAQ,OAC1C,OAAS,GAAI,EAAG,EAAI,KAAK,OAAQ,EAAE,GACjC,GAAM,QAAS,EAAI,WACf,KAAM,MAAM,QAChB,OAAS,GAAI,EAAG,EAAI,WAAY,EAAE,GAChC,GAAM,OAAQ,MAAM,OAAS,GACzB,MAAQ,MACV,MAAM,OAGV,KAAK,GAAK,KAGR,cAAgB,MAClB,UAAQ,8BAA8B,IAGxC,GAAM,QAAS,UAAQ,eAAe,SAAU,GAAG,MAAO,MAE1D,GAAI,UACF,GAAM,eAAgB,qBAAa,qBAAqB,SAAU,UAC5D,eACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,iBAE1D,MAAA,WAAQ,8BAA8B,QAE/B,eAGT,MAAO,QAGF,GAAM,WAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MC7DR,oBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,SAAU,MAAQ,MAEzB,iBAAiB,EAAG,aAEpB,GAAM,UAAW,SAAS,IACtB,CAAC,GAAG,IAAM,GAAE,GAAqB,EAAE,MAAM,GAAK,GAAE,IAE9C,MAAQ,SAAS,IAAI,IAAK,GAAE,IAC5B,IAAM,SAAS,IAAI,CAAC,GAAG,IAAM,GAAE,GAAK,EAAE,MAAM,IAC5C,OAAS,OAAS,UAAY,EAAI,EAElC,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,MAAQ,EAAE,MAAM,OAChB,SAAW,aAAK,eAAe,EAAE,OAEjC,WAAa,aAAK,cAAc,UAChC,WAAa,SAAS,OACtB,cAAgB,aAAK,eAAe,UACpC,QACF,aAAK,uBAAuB,EAAE,MAA0B,YAE5D,OAAS,GAAI,EAAG,EAAI,WAAY,KAC9B,GAAI,SAAS,aAAK,WAAW,EAAG,WAAY,eAC5C,OAAS,IAAI,EAAG,GAAI,WAAY,KAC1B,QAAO,IAAK,MAAM,IACpB,QAAO,IAAK,MAAM,IAAK,EAAI,QAAO,IAAK,OAC9B,QAAO,KAAM,IAAI,KAC1B,SAAO,IAAM,KAAI,IAAK,GAAK,EAAI,QAAO,IAAK,QAG/C,QAAS,QAAO,IAAI,CAAC,EAAG,KAAM,EAAI,MAAM,KAExC,GAAM,SAAU,aAAK,WAAW,QAAQ,MAAO,UAE/C,QAAQ,GAAK,MAAM,SAKrB,MAAO,CAAC,OAFM,UAAQ,MAAM,QAAS,SAAU,EAAE,OAE1B,MAAO,SAAU,MAAO,EAAE,OAG5C,GAAM,iBAAgC,CAC3C,WAAY,UACZ,YAAa,MACb,WAAY,YCpDD,QAAU,6BAA8B,CAAC,OAAQ,UAC5D,GAAM,KAAM,OAAS,OACrB,MAAK,QAAS,GAAK,OAAS,GAAO,QAAU,GAAK,QAAU,EACnD,IAEC,KAAM,QAAU,SAIf,KAAM,iBAAiB,IAAK,SAE5B,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MClBd,YAA4B,YAAA,uBCUtB,kBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAU,OACX,CAAC,KAAO,MAER,WAAa,OAAO,MAAM,OAE5B,KAAO,IAIX,GAHI,OAAS,IACX,MAAO,WAAa,GAElB,OAAS,WAAa,EACxB,KAAM,OACF,4EACmB,0BAA0B,QAGnD,GAAM,MAAO,aAAK,eAAe,CAAC,MAAO,OAAO,OAC1C,SAAW,KAAI,CACnB,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,iBAAkB,KAAM,SAAU,MAEtC,cAAgB,qBAAa,qBAAqB,SAAS,MAAO,MAElE,iBACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,UAAS,MAAO,CAAC,MAAO,iBACtD,EACF,KAAI,CAAC,OAAQ,CAAC,EAAG,OAAQ,EAAG,kBAAmB,QAAA,YAC7C,EAAI,KAAI,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAA,YACzB,OACF,KAAI,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,KAAM,SAAU,MAC1D,YACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,iBAEpD,OAAS,KAAI,CAAC,OAAQ,CAAC,EAAG,EAAG,EAAG,aAAc,QAAA,YAEpD,MAAA,WAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,kBACtC,UAAQ,8BAA8B,GACtC,UAAQ,8BAA8B,GACtC,UAAQ,8BAA8B,QACtC,UAAQ,8BAA8B,aAE/B,OAGF,GAAM,eAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UDxDR,sBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAU,OACX,CAAC,WAAY,KAAM,YAAc,MAEvC,iBAAiB,OAAQ,eAEzB,GAAM,eAAgB,WAClB,OACA,SAAQ,CAAC,OAAQ,CAAC,QAAS,QAAA,UAAS,MAAO,CAAC,IAAK,MAE/C,UAAY,cAAc,MAAM,GAChC,UAAY,cAAc,MAAM,GAChC,SAAW,UAAQ,KAAK,IAAI,cAAc,QAAQ,OAClD,SAAW,CAAC,UAAW,YACvB,QACF,aAAK,oBAAoB,aAAK,cAAc,UAAW,SAE3D,OAAS,GAAI,EAAG,EAAI,UAAW,EAAE,GAC/B,GAAM,QAAS,EAAI,UAGb,IAAM,GAAI,cAAa,UAAY,GACzC,IAAI,GAAK,SAAS,QAClB,OAAS,OAAQ,EAAG,MAAQ,IAAI,OAAQ,EAAE,MACxC,IAAI,OAAS,IAAI,MAAQ,GAAK,SAAS,OAAS,OAGlD,GAAM,QAAoB,YAAA,KAAK,KAAK,YAC9B,UAAY,EAAI,WACtB,OAAS,UAAW,EAAG,SAAW,WAAY,EAAE,UAC9C,GAAM,GAAI,SAGV,QAAQ,UAAY,UAAY,IAAI,OAEpC,OAAS,OAAQ,EAAG,MAAQ,IAAI,OAAQ,QACtC,GAAI,EAAI,IAAI,QACV,QAAQ,UAAY,UAAY,MAChC,QAMR,MAAK,aACH,UAAQ,8BAA8B,eAGjC,UAAQ,eAAe,SAAU,QAAS,SAG5C,GAAM,mBAAkC,CAC7C,WAAY,YACZ,YAAa,MACb,WAAY,cEjER,yBAA0B,qBAAa,wBAKvC,6BAA8B,MAKlC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAO,QAAU,OAClB,CAAC,cAAe,aAAc,gBAAkB,MAEtD,iBAAiB,MAAO,qBAExB,GAAM,WAAY,UAAQ,KAAK,IAAI,MAAM,QAAQ,OAC3C,WAAa,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAE7C,CAAC,iBAAmB,yBACtB,UAAW,WAAY,cAAe,aAAc,gBAExD,MAAO,WAAQ,eACX,CAAC,gBAAgB,QAAS,QAAS,GAAI,YAAW,kBAGjD,GAAM,2BAA0C,CACrD,WAAY,oBACZ,YAAa,MACb,WAAY,qBC7BR,yBAA0B,qBAAa,wBAIvC,6BAA8B,MAKlC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAO,QAAU,OAClB,CAAC,cAAe,aAAc,eAAgB,oBAChD,MAEJ,iBAAiB,MAAO,2BAExB,GAAM,WAAY,UAAQ,KAAK,IAAI,MAAM,QAAQ,OAC3C,WAAa,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAE7C,CAAC,gBAAiB,cAAgB,yBACpC,UAAW,WAAY,cAAe,aAAc,eACpD,oBAEJ,MAAO,CACL,UAAQ,eACJ,CAAC,gBAAgB,QAAS,QAAS,GAAI,YAAW,kBACtD,UAAQ,eAAe,GAAI,QAAS,GAAI,YAAW,CAAC,iBAGjD,GAAM,2BAA0C,CACrD,WAAY,oBACZ,YAAa,MACb,WAAY,qBChCR,yBAA0B,qBAAa,wBAIvC,6BAA8B,MAKlC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAO,QAAU,OAClB,CAAC,cAAe,aAAc,eAAgB,cAAgB,MAEpE,iBAAiB,MAAO,8BAExB,GAAM,WAAY,UAAQ,KAAK,IAAI,MAAM,QAAQ,OAC3C,WAAa,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAE7C,iBAAmB,cACnB,gBAAkB,aAClB,kBAAoB,eACpB,gBAAkB,aAElB,CAAC,gBAAiB,gBAAkB,yBACtC,UAAW,WAAY,iBAAkB,gBACzC,kBAAmB,iBAEvB,MAAO,CACL,UAAQ,eACJ,CAAC,gBAAgB,QAAS,QAAS,GAAI,YAAW,kBACtD,UAAQ,eACJ,CAAC,eAAe,QAAS,UAAW,GAAI,cAAa,kBAItD,GAAM,2BAA0C,CACrD,WAAY,oBACZ,YAAa,MACb,WAAY,qBCnCR,iBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,SAAW,OACZ,CAAC,MAAO,QAAS,UAAY,MAEnC,iBAAiB,QAAS,UAE1B,GAAM,aAAc,aAAK,cAAc,QAAQ,OAEzC,IAAM,GAAI,cAAa,YAAc,OAC3C,IAAI,KAAK,UACT,GAAM,YAAa,UAAQ,KAAK,IAAI,QAAQ,QAAQ,OAEpD,OAAS,OAAQ,EAAG,MAAQ,YAAa,EAAE,MACrC,WAAW,QAAU,GAAK,WAAW,OAAS,OAChD,KAAI,MAAQ,MAAQ,WAAW,QAAU,SAI7C,MAAO,WAAQ,eAAe,CAAC,GAAG,QAAQ,MAAO,OAAQ,QAAS,KAG7D,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,SCvBR,oBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEZ,GAAI,EAAE,QAAU,SACd,KAAM,IAAI,OAAM,iDACX,GAAI,EAAE,QAAU,aACrB,GAAM,UAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,EAAI,WAAU,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,YACtC,SAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,EAAI,WAAU,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,YAEtC,OAAS,SAAQ,CAAC,OAAQ,CAAC,KAAM,EAAG,KAAM,GAAI,QAAA,YAEpD,MAAA,WAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,GACtC,UAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,GAE/B,WAEP,OAAO,OAAK,CAAC,QAAA,UAAS,MAAO,CAAC,MAAO,EAAE,MAAO,MAAO,EAAG,MAAO,EAAE,SAI9D,GAAM,iBAAgC,CAC3C,WAAY,UACZ,YAAa,MACb,WAAY,YC7BR,mBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEZ,GAAI,EAAE,QAAU,SACd,KAAM,IAAI,OAAM,gDACX,GAAI,EAAE,QAAU,aACrB,GAAM,UAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,EAAI,UAAS,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,YACrC,SAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,EAAI,WAAU,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,YAEtC,OAAS,SAAQ,CAAC,OAAQ,CAAC,KAAM,EAAG,KAAM,GAAI,QAAA,YAEpD,MAAA,WAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,GACtC,UAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,GAE/B,WAEP,OAAO,OAAK,CAAC,QAAA,UAAS,MAAO,CAAC,MAAO,EAAE,MAAO,MAAO,EAAG,MAAO,EAAE,SAI9D,GAAM,gBAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,WChCR,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAQ,MAEf,GAAI,OAAO,SAAW,EACpB,MAAO,aACH,CAAC,OAAQ,CAAC,MAAO,OAAO,IAAK,QAAA,UAAS,MAAO,CAAC,IAAK,QAGzD,GAAM,OAAQ,OAAO,GAAG,MAClB,MAAQ,OAAO,GAAG,MAExB,OAAO,QAAQ,IACb,aAAK,kBACD,MAAO,EAAE,MACT,yDACJ,aAAK,OACD,QAAU,EAAE,MACZ,IAAM,2DAGZ,GAAM,yBAAwC,GACxC,gBAAkB,OAAO,IAAI,IACjC,GAAM,WACF,YAAW,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,UAAS,MAAO,CAAC,IAAK,QAC1D,MAAA,yBAAwB,KAAK,WACtB,YAGH,OAAS,QAAO,CAAC,OAAQ,gBAAiB,QAAA,UAAS,MAAO,CAAC,QAEjE,MAAA,yBAAwB,QACpB,GAAK,UAAQ,8BAA8B,IAExC,OAGF,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,MC3CR,eACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,SAAU,eAAiB,MAElC,iBAAiB,EAAG,OAEpB,GAAM,UAAW,SAAS,IACtB,CAAC,GAAG,IAAM,GAAE,GAAqB,EAAE,MAAM,GAAK,GAAE,IAE9C,MAAQ,SAAS,IAAI,IAAK,GAAE,IAE5B,MAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,MAAQ,aAAK,cAAc,EAAE,OAC7B,MAAQ,EAAE,MAAM,OAChB,SAAW,aAAK,eAAe,EAAE,OAEjC,WAAa,aAAK,cAAc,UAChC,WAAa,SAAS,OACtB,cAAgB,aAAK,eAAe,UACpC,QACF,aAAK,uBAAuB,EAAE,MAA0B,YAExD,gBAAkB,GACpB,QAAQ,KAAK,eAGf,OAAS,GAAI,EAAG,EAAI,MAAO,KAEzB,GAAM,WADS,aAAK,WAAW,EAAG,MAAO,UAChB,IAAI,CAAC,EAAG,KAAM,EAAI,MAAM,KAC3C,SAAW,aAAK,WAAW,UAAW,WAAY,eAExD,QAAQ,UAAY,MAAM,GAK5B,MAAO,CAAC,OAFM,UAAQ,MAAM,QAAS,SAAU,EAAE,OAE1B,MAAO,SAAU,MAAO,EAAE,OAG5C,GAAM,aAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,OC7CD,QACT,6BAA6B,CAAC,EAAW,IAAc,KAAK,IAAI,EAAG,IAC1D,KAAM,iBAAiB,IAAK,SAE5B,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCPR,gBAAgB,MAEpB,GAAM,CAAC,QAAA,UAAS,OAAS,KACnB,CAAC,MAAO,KAAM,MAAO,KAAA,OAAQ,MAE7B,OAAS,UAAU,MAAO,KAAM,MAAM,OAC5C,MAAO,WAAQ,eAAe,CAAC,OAAO,QAAS,MAAO,QAGjD,GAAM,aAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCbD,YAAa,gBAAgB,WAAa,IAAO,EAAI,IAErD,iBAAiC,CAC5C,WAAY,WACZ,YAAa,MACb,WAAY,aCJR,yBAAyB,MAK7B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAU,OACX,CAAC,aAAc,iBAAkB,MAAQ,MAE/C,iBAAiB,OAAQ,kBAEzB,GAAM,eAAgB,aAAK,eAAe,OAAO,OAC3C,CAAC,UAAW,UAAY,KAExB,CAAC,MAAO,UAAW,SAAU,aAAe,OAAO,MACnD,QAAU,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAC1C,OAAS,GAAI,cACf,aAAK,cAAc,CAAC,MAAO,UAAW,SAAU,eAE9C,mBAAuC,CAC1C,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAG5C,oBAAwC,CAC3C,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAE9C,UAAY,EACV,sBAAwB,mBAAmB,GAAK,oBAAoB,GACpE,sBAAwB,mBAAmB,GAAK,oBAAoB,GAC1E,OAAS,GAAI,EAAG,EAAI,MAAO,IACzB,OAAS,GAAI,EAAG,EAAI,UAAW,KAC7B,GAAI,eACA,iBACF,cAAgB,sBAAyB,GAAI,IAAO,GAEpD,cAAgB,sBAAwB,EAG1C,GAAM,gBAAiB,KAAK,IAAI,EAAG,KAAK,MAAM,gBACxC,QAAU,cAAgB,eAC1B,cAAgB,KAAK,IAAI,UAAY,EAAG,KAAK,KAAK,gBAClD,aACF,EAAI,cAAc,GAAK,eAAiB,cAAc,GACpD,aACF,EAAI,cAAc,GAAK,cAAgB,cAAc,GACzD,OAAS,GAAI,EAAG,EAAI,SAAU,KAC5B,GAAI,eACA,iBACF,cAAgB,sBAAyB,GAAI,IAAO,GAEpD,cAAgB,sBAAwB,EAE1C,GAAM,gBAAiB,KAAK,IAAI,EAAG,KAAK,MAAM,gBACxC,QAAU,cAAgB,eAC1B,cAAgB,KAAK,IAAI,SAAW,EAAG,KAAK,KAAK,gBACjD,cAAgB,aAAe,eAAiB,cAAc,GAC9D,cAAgB,aAAe,eAAiB,cAAc,GAC9D,eAAiB,aAAe,cAAgB,cAAc,GAC9D,eAAiB,aAAe,cAAgB,cAAc,GACpE,OAAS,GAAI,EAAG,EAAI,YAAa,KAI/B,GAAM,SAAU,QAAQ,cAAgB,GAClC,WAAa,QAAQ,cAAgB,GACrC,SAAW,QAAQ,eAAiB,GACpC,YAAc,QAAQ,eAAiB,GAEvC,IAAM,QAAW,UAAW,SAAW,QACvC,OAAS,WAAc,aAAc,YAAc,QACnD,SAAW,IAAO,QAAS,KAAO,QAExC,OAAO,aAAe,WAM9B,MAAO,WAAQ,eACX,CAAC,MAAO,UAAW,SAAU,aAAc,UAAW,QAGrD,GAAM,sBAAqC,CAChD,WAAY,eACZ,YAAa,MACb,WAAY,iBCvFR,4BAA6B,MAKjC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,OAAQ,IAAM,OACf,CAAC,cAAgB,MAEvB,iBAAiB,CAAC,GAAI,QAAS,sBAE/B,GAAM,eAAgB,aAAK,eAAe,OAAO,OAE3C,CAAC,MAAO,QAAS,OAAQ,OAAS,OAAO,MACzC,CAAC,CAAE,QAAS,QAAU,GAAG,MAEzB,OAAS,GAAI,cAAa,MAAQ,QAAU,OAAS,OAOrD,eAAmC,CACtC,cAAgB,QAAU,EAAK,QAAU,EAAI,QAC7C,cAAgB,OAAS,EAAK,OAAS,EAAI,QAGxC,eAAmC,CACtC,cAAgB,QAAU,EAAK,QAAU,EAAI,QAC7C,cAAgB,OAAS,EAAK,OAAS,EAAI,QAGxC,YAAc,eAAe,GAAK,eAAe,GACjD,WAAa,eAAe,GAAK,eAAe,GAKhD,SAAW,UAAQ,KAAK,IAAI,GAAG,QAAQ,OACzC,OAAS,EACb,OAAS,GAAI,EAAG,EAAI,MAAO,KACzB,GAAM,SAAU,EAAI,cAAc,GAClC,OAAS,GAAI,EAAG,EAAI,QAAS,KAC3B,GAAM,KAAM,EAAI,YACV,YAAc,KAAK,MAAM,KACzB,eAAiB,KAAK,IAAI,KAAK,KAAK,KAAM,QAAU,GAEpD,aAAe,QAAU,YAAc,cAAc,GACrD,gBAAkB,QAAU,eAAiB,cAAc,GAE3D,QAAU,IAAM,YAChB,eAAiB,EAAM,QAC7B,OAAS,GAAI,EAAG,EAAI,OAAQ,KAC1B,GAAM,KAAM,EAAI,WACV,aAAe,KAAK,MAAM,KAC1B,cAAgB,KAAK,IAAI,KAAK,KAAK,KAAM,OAAS,GAClD,QAAU,IAAM,aAChB,eAAiB,EAAM,QAEvB,gBAAkB,aAAe,aAAe,cAAc,GAC9D,iBACF,aAAe,cAAgB,cAAc,GAC3C,mBACF,gBAAkB,aAAe,cAAc,GAC7C,oBACF,gBAAkB,cAAgB,cAAc,GAE9C,kCACF,eAAiB,eACf,2BAA6B,eAAiB,QAC9C,2BAA6B,QAAU,eACvC,oBAAsB,QAAU,QACtC,OAAS,GAAI,EAAG,EAAI,MAAO,KACzB,GAAM,OAAQ,SAAS,UACvB,OAAO,gBAAkB,IACrB,MAAQ,kCACZ,OAAO,iBAAmB,IAAM,MAAQ,2BACxC,OAAO,mBAAqB,IAAM,MAAQ,2BAC1C,OAAO,oBAAsB,IAAM,MAAQ,uBAMnD,MAAO,WAAQ,eACX,CAAC,MAAO,OAAQ,QAAS,OAAQ,UAAW,QAG3C,GAAM,2BAAyC,CACpD,WAAY,mBACZ,YAAa,MACb,WAAY,oBC5FR,gCAAgC,MAKpC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAU,OACX,CAAC,aAAc,iBAAkB,MAAQ,MAE/C,iBAAiB,OAAQ,yBAEzB,GAAM,eAAgB,aAAK,eAAe,OAAO,OAC3C,CAAC,UAAW,UAAY,KAExB,CAAC,MAAO,UAAW,SAAU,aAAe,OAAO,MACnD,QAAU,UAAQ,KAAK,IAAI,OAAO,QAAQ,OAC1C,OAAS,GAAI,cAAa,MAAQ,UAAY,SAAW,aAEzD,mBAAuC,CAC1C,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAG5C,oBAAwC,CAC3C,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAG5C,sBAAwB,mBAAmB,GAAK,oBAAoB,GACpE,sBAAwB,mBAAmB,GAAK,oBAAoB,GAEtE,aAAe,EACnB,OAAS,GAAI,EAAG,EAAI,MAAO,KACzB,GAAM,aAAc,EAAI,cAAc,GACtC,OAAS,GAAI,EAAG,EAAI,UAAW,KAC7B,GAAM,eAAgB,iBAClB,sBAAyB,GAAI,IAC7B,sBAAwB,EACxB,iBAAmB,KAAK,IACxB,UAAY,EACZ,aAAe,KAAK,MAAM,eAAiB,KAAK,MAAM,gBACtD,kBACF,kBAAmB,KAAK,IAAI,EAAG,mBAEjC,GAAM,WAAY,YAAc,iBAAmB,cAAc,GACjE,OAAS,GAAI,EAAG,EAAI,SAAU,KAC5B,GAAM,eAAgB,iBAClB,sBAAyB,GAAI,IAC7B,sBAAwB,EACxB,iBAAmB,KAAK,IACxB,SAAW,EACX,aAAe,KAAK,MAAM,eACX,KAAK,MAAM,gBAC1B,kBACF,kBAAmB,KAAK,IAAI,EAAG,mBAEjC,GAAM,WAAY,UAAY,iBAAmB,cAAc,GAC/D,OAAS,GAAI,EAAG,EAAI,YAAa,KAG/B,GAAM,QAAS,QAAQ,UAAY,GACnC,OAAO,gBAAkB,UAMjC,MAAO,WAAQ,eACX,CAAC,MAAO,UAAW,SAAU,aAAc,OAAO,MAAO,QAGxD,GAAM,6BAA4C,CACvD,WAAY,sBACZ,YAAa,MACb,WAAY,wBC1ER,mCAAoC,MAKxC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,OAAQ,IAAM,OACf,CAAC,cAAgB,MAEvB,iBAAiB,CAAC,GAAI,QAAS,6BAE/B,GAAM,eAAgB,aAAK,eAAe,OAAO,OAC3C,UAAY,aAAK,eAAe,GAAG,OACnC,CAAC,MAAO,QAAS,OAAQ,OAAS,OAAO,MACzC,CAAC,CAAE,QAAS,QAAU,GAAG,MAEzB,OAAS,GAAI,cAAa,MAAQ,QAAU,OAAS,OACrD,SAAW,UAAQ,KAAK,IAAI,GAAG,QAAQ,OAKvC,eAAmC,CACtC,cAAgB,QAAU,EAAK,QAAU,EAAI,QAC7C,cAAgB,OAAS,EAAK,OAAS,EAAI,QAGxC,eAAmC,CACtC,cAAgB,QAAU,EAAK,QAAU,EAAI,QAC7C,cAAgB,OAAS,EAAK,OAAS,EAAI,QAGxC,YAAc,eAAe,GAAK,eAAe,GACjD,WAAa,eAAe,GAAK,eAAe,GAEhD,eAAiB,EAAI,YACrB,cAAgB,EAAI,WAIpB,UAAa,KAAK,KAAK,gBAAkB,EAAK,EAC9C,SAAY,KAAK,KAAK,eAAiB,EAAK,EAGlD,OAAS,GAAI,EAAG,EAAI,MAAO,KACzB,GAAM,aAAc,EAAI,cAAc,GACtC,OAAS,GAAI,EAAG,EAAI,QAAS,KAC3B,GAAM,WAAY,YAAc,EAAI,cAAc,GAG5C,WAAa,KAAK,MAAM,EAAI,gBAC5B,SAAW,KAAK,MAAM,WAAc,UAAY,GACtD,OAAS,GAAI,EAAG,EAAI,OAAQ,KAC1B,GAAM,WAAY,UAAY,EAAI,cAAc,GAG1C,WAAa,KAAK,MAAM,EAAI,eAC5B,SAAW,KAAK,MAAM,WAAc,SAAW,GAErD,OAAS,GAAI,EAAG,EAAI,MAAO,KACzB,GAAI,OAAQ,EAGZ,OAAS,UAAW,EAAG,SAAW,UAAW,YAC3C,GAAM,KAAM,SAAW,SAEvB,GAAI,IAAM,GAAK,KAAO,QACpB,SAGF,GAAM,WAAY,YAAc,IAAM,UAAU,GAC1C,cAAgB,IAAM,YACtB,iBAAmB,KAAK,IAC1B,QAAU,EACV,aAAe,KAAK,MAAM,eACX,KAAK,MAAM,gBAC9B,GAAI,IAAM,iBAGV,OAAS,UAAW,EAAG,SAAW,SAAU,YAC1C,GAAM,KAAM,SAAW,SAEvB,GAAI,IAAM,GAAK,KAAO,OACpB,SAGF,GAAM,WAAY,UAAY,IAAM,UAAU,GACxC,cAAgB,IAAM,WACtB,iBAAmB,KAAK,IAC1B,OAAS,EACT,aAAe,KAAK,MAAM,eACX,KAAK,MAAM,gBAE1B,IAAM,kBACR,QAAS,SAAS,UAAY,KAIpC,OAAO,UAAY,GAAK,SAMhC,MAAO,WAAQ,eAAe,OAAO,MAAO,OAAO,MAAO,QAGrD,GAAM,kCAAgD,CAC3D,WAAY,0BACZ,YAAa,MACb,WAAY,2BC7GR,kBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MAEf,iBAAiB,EAAG,WAEpB,GAAM,OAAQ,EAAE,MAAM,OAEhB,MAAQ,aAAK,eAAe,KAAM,EAAE,OAC1C,GAAI,QAAU,EACZ,MAAO,UAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YAGhC,GAAM,QAAS,GAAI,cAAa,EAAE,MAAO,EAAE,OACrC,KAAO,UAAQ,WAAW,GAEhC,OAAS,GAAI,EAAG,EAAI,OAAO,KAAM,KAC/B,GAAM,QAAS,OAAO,WAAW,GAC3B,MAAQ,OAAO,QACrB,MAAM,QAAQ,GAAK,MAAM,GAAK,EAAE,MAAM,GAAK,EAAI,MAAM,IACrD,OAAO,IAAI,KAAK,IAAI,GAAG,OAAQ,GAAG,QAGpC,MAAO,WAAQ,eAAe,OAAO,MAAO,OAAO,MAAO,OAAO,QAG5D,GAAM,eAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UClCD,uBAAuC,CAClD,WAAY,iBACZ,YAAa,MACb,WAAY,CAAC,CAAC,OAAQ,MAAO,QAAA,cAC3B,GAAM,CAAC,MAAA,QAAS,OACV,CAAC,QAAS,UAAW,QAAU,MAC/B,WAAa,UAEb,OAAS,aAAK,uBAChB,OAAM,MAA0B,aAAK,cAAc,OAAM,QACvD,CAAC,MAAO,YAAa,WAAY,aAAe,OAAM,MAEtD,CAAC,QAAS,SACZ,qBAAa,eAAe,OAAQ,YAAa,YAC/C,iBAAmB,IAEnB,UAAY,KAAK,IAAI,SACrB,UAAY,KAAK,IAAI,SACrB,UAAY,WAAW,KAAK,IAAI,OAAM,QAAQ,OAEpD,OAAS,UAAW,EAAG,SAAW,MAAO,YACvC,GAAM,aAAc,SAAW,WAAa,YAAc,YAE1D,OAAS,KAAM,EAAG,IAAM,YAAa,OACnC,GAAM,WAAY,IAAO,YAAa,aAEtC,OAAS,KAAM,EAAG,IAAM,WAAY,OAClC,GAAM,WAAY,IAAM,YAExB,OAAS,SAAU,EAAG,QAAU,YAAa,WAC3C,GAAM,SAAS,CAAC,MAAO,IAAK,IAAK,SAE3B,EAAI,QAAO,GACX,EAAI,QAAO,GAGb,OAAU,GAAI,SAAW,UAAa,GAAI,SAAW,UACrD,OAAU,GAAI,SAAW,UAAa,GAAI,SAAW,UACzD,OAAS,KAAK,MAAM,OAAS,SAC7B,OAAS,KAAK,MAAM,OAAS,SAE7B,GAAI,aAAc,UAUlB,GATI,MAAO,YAAc,UACnB,WAAY,EACd,YAAc,iBAEd,YAAc,UAAU,UAKxB,QAAU,GAAK,OAAS,YAAc,QAAU,GAChD,OAAS,aAEX,GAAM,kBAAmB,OAAU,YAAa,aAC1C,iBAAmB,OAAS,YAC5B,SACF,YAAc,iBAAmB,iBAAmB,QACxD,YAAc,UAAU,UAG1B,GAAM,QAAS,YAAc,UAAY,UAAY,QACrD,OAAO,QAAU,eAOzB,MAAO,CAAC,OADO,WAAW,MAAM,OAAQ,OAAM,MAAO,OAAM,OAC3C,MAAO,OAAM,MAAO,MAAO,OAAM,SCtExC,OAAQ,gBAAgB,MAAQ,KAE3C,GAAM,OAAO,KAAK,MAAM,IACxB,MAAI,IAAK,MAAO,GACP,KAAK,MAAM,IACT,GAAK,MAAO,GACd,KAAK,KAAK,IAEb,MAAO,GAAQ,EACV,MAEA,MAAO,IAKP,YAA4B,CACvC,WAAY,MACZ,YAAa,MACb,WAAY,QCtBR,qBACF,QAA0B,QAA0B,MACpD,WAAoB,UAAmB,WACvC,UAAmB,QAAmB,aACtC,gBACF,GAAM,cAAe,CAAC,WAAa,UAAW,WAExC,YAAc,QAAQ,OACtB,YAAc,QAAQ,OAE5B,GAAI,aAAe,EACjB,MAAO,QAAO,MAAsB,QAAQ,OAG9C,GAAM,QAAS,OAAO,aAAc,QAAQ,OAC3C,OAAO,OAAsB,KAAK,cAEnC,OAAS,GAAI,EAAG,EAAI,WAAY,KAC9B,GAAM,OAAQ,GACV,aAAe,EACnB,OAAS,GAAI,EAAG,EAAI,UAAW,KAC7B,GAAM,KAAM,YAAY,EAAI,UAAY,GACxC,MAAM,KAAK,KACX,cAAgB,IAAM,QAAQ,GAGhC,GAAI,aAAe,GAAK,cAAgB,WAAa,UACnD,KAAM,IAAI,OAAM,oBAAoB,6BAA6B,SAGnE,OAAS,GAAI,EAAG,EAAI,UAAW,IACzB,eACF,OAAO,OAAO,aAAe,UAAY,IACrC,YAAY,EAAI,UAAY,GAEhC,OAAO,OAAO,aAAe,UAAY,GAAK,QAAQ,OAAS,EAC3D,YAAY,GACZ,YAAY,EAAI,UAAY,GAKtC,MAAO,QCtCH,mBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAS,SAAW,OACrB,CAAC,OAAS,MAEV,CAAC,UAAW,WAAY,UAAW,QAAS,YAC9C,qBAAa,gBAAgB,QAAS,QAAS,OAC7C,eAAiB,GAEjB,WAAa,UAAQ,WAAW,SAChC,WAAa,UAAQ,WAAW,SAEhC,OAAS,YACX,WAAY,WAAY,MAAO,WAAY,UAAW,WACtD,UAAW,QAAS,EAAsB,gBAE9C,MAAO,WAAQ,eAAe,MAAO,OAAO,MAAO,OAAO,QAGrD,GAAM,iBAAgC,CAC3C,WAAY,UACZ,YAAa,MACb,WAAY,WC1BR,gBAAiB,MAErB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,UAAW,EAAG,GAAK,OAE1B,iBAAiB,CAAC,UAAW,EAAG,GAAI,UACpC,GAAM,eAAgB,UAAU,MAAM,OAEhC,OAAS,UAAQ,KAAK,IAAI,UAAU,QAAQ,OAC5C,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,QAAU,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACrC,YAAc,WAAW,EAAE,MAAO,EAAE,OACpC,UACF,aAAK,oBAAoB,aAAK,cAAc,EAAE,OAAQ,aAEtD,MAAQ,EACN,OACF,gBAAkB,GAAK,cAAgB,GAAK,EAAE,MAAM,SAAW,EAC/D,EACA,aAAK,cAAc,EAAE,MAAM,MAAM,IAErC,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,OAAS,GAAI,EAAG,EAAI,OAAQ,IACtB,OAAO,KAAO,EAChB,UAAU,SAAW,QAAQ,GAE7B,UAAU,SAAW,QAAQ,GAKnC,MAAO,WAAQ,eAAe,EAAE,MAAO,YAAa,WAG/C,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,QCtCR,WAAa,qBAAa,gBAC1B,MAAQ,qBAAa,WAEd,MAAO,gBAAgB,KAAO,IACrC,IAAM,EACD,MAAQ,GAER,WAAc,MAAK,IAAI,IAAM,IAI3B,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCdD,SACT,gBAAgB,QAAU,IAAO,EAAK,GAAI,KAAK,IAAI,CAAC,MAE3C,cAA8B,CACzC,WAAY,QACZ,YAAa,MACb,WAAY,UCND,MAAO,gBAAgB,KAAO,IACrC,GAAK,EACA,GACE,GAAK,EACP,EAEA,GAIE,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCbD,KAAM,gBAAgB,IAAM,IAAO,KAAK,IAAI,KAE5C,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCLD,MAAO,gBAAgB,KAAO,IAAO,KAAK,KAAK,KAE/C,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCAR,QAAU,sBACV,UAAY,KAAK,IAAI,SAAW,EAEzB,UAAW,gBAAgB,SAAW,KAGjD,GAAM,UAAW,GAAK,CAAC,UAIjB,SAAW,GAAK,UAEhB,KAAO,KAAK,IAAI,IAClB,OAEJ,MAAI,UACF,OAAS,KACA,SACT,OAAS,GAET,OAAS,KAAK,IAAI,EAAM,MAEnB,SAGI,eAA+B,CAC1C,WAAY,SACZ,YAAa,MACb,WAAY,WC5BR,yBAAyB,MAK7B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,WAAY,UAAY,MAE/B,iBAAiB,CAAC,GAAI,kBAEtB,GAAM,OAAO,aAAK,cAAc,YAE1B,iBAA4C,CAAC,CAAC,EAAG,IACvD,iBAAiB,KAAK,GAAI,UAE1B,OAAS,GAAI,EAAI,WAAW,OAAQ,EAAI,EAAE,MAAM,OAAQ,EAAE,EACxD,iBAAiB,KAAK,CAAC,EAAG,IAG5B,GAAM,SAAU,YAAY,WAAW,CACrC,OAAQ,CAAC,GACT,QAAA,UACA,MAAO,CAAC,SAAU,iBAAkB,cAAe,KAG/C,oBACF,qBAAa,YAAY,QAAQ,MAAO,WAAY,MAAM,IAExD,kCAAoC,qBAAa,YACnD,oBAAoB,OAAQ,WAAW,OAAQ,IAE7C,aACF,qBAAa,oBAAoB,QAAQ,MAAO,WAAY,MAAM,IAIhE,gBACF,SAAQ,CAAC,OAHwB,CAAC,EAAG,SAGL,QAAA,UAAS,MAFV,CAAC,MAAO,uBAOrC,SACF,WAAU,CAAC,OAJ0B,CAAC,EAAG,iBAIL,QAAA,UAAS,MAF5B,CAAC,KAAM,qCAMtB,OAAS,SACX,CAAC,OAHsC,CAAC,EAAG,UAGb,QAAA,UAAS,MAFF,CAAC,MAAO,gBAIjD,MAAA,WAAQ,8BAA8B,SACtC,UAAQ,8BAA8B,iBACtC,UAAQ,8BAA8B,UAE/B,OAGF,GAAM,sBAAqC,CAChD,WAAY,eACZ,YAAa,MACb,WAAY,iBCjER,wBAAwB,MAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,cAAe,aAAc,cAAgB,OAC9C,CAAC,aAAe,MAEhB,CAAC,UAAW,WAAY,UAAW,QAAS,YAC9C,qBAAa,gBAAgB,aAAc,cAAe,aACxD,eAAiB,GAEjB,WAAa,UAAQ,WAAW,eAChC,WAAa,UAAQ,WAAW,cAChC,cACF,UAAQ,KAAK,IAAI,aAAa,QAAQ,OAAO,GAE3C,OAAS,YACX,WAAY,WAAY,YAAa,WAAY,UAAW,WAC5D,UAAW,QAAS,cAAe,gBAEvC,MAAO,WAAQ,eAAe,YAAa,OAAO,MAAO,OAAO,QAG3D,GAAM,qBAAoC,CAC/C,WAAY,cACZ,YAAa,MACb,WAAY,gBC3BR,gBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,gBAAiB,MAAQ,MAE1B,MAAQ,aAAK,eAAe,KAAM,EAAE,OAAO,GAC3C,WAAa,qBAAa,iBAAiB,EAAG,gBAAiB,OAE/D,MAAQ,GAAI,OAAM,EAAE,MAAM,QAAQ,KAAK,GACvC,KAAO,EAAE,MAAM,QACrB,MAAO,YAAW,IAAI,IACpB,GAAM,WAAY,CAAC,GAAG,MACtB,UAAU,OAAS,EACnB,GAAM,QACF,OAAM,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,KAAM,aACtD,MAAA,OAAM,QAAU,EACT,SAIJ,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,QC3BD,MAAO,gBAAgB,KAAO,IAAO,KAAK,KAAK,KAE/C,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCJD,aAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,CAAC,CAAC,OAAQ,QAAA,cACpB,GAAM,CAAC,GAAK,OACN,WAAa,UACnB,iBAAiB,EAAG,UAEpB,GAAM,QAAS,WAAW,KAAK,IAAI,EAAE,QAAQ,OACvC,UAAY,GAAI,cAAa,OAAO,QAC1C,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,EAAE,GACnC,GAAM,OAAQ,OAAO,GACrB,UAAU,GAAK,MAAQ,MAGzB,MAAO,CAAC,OADO,WAAW,MAAM,UAAW,EAAE,MAAO,EAAE,OACtC,MAAO,EAAE,MAAO,MAAO,EAAE,SChBhC,MAAO,gBAAgB,KAAM,CAAC,GAAI,SAC7C,GAAM,WAAY,MAClB,MAAI,OAAM,IACD,IAEA,GAAK,EAAI,EAAI,UAAU,QAIrB,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCRR,uBAAuB,MAK3B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CACJ,MACA,IACA,QACA,UACA,QACA,aACA,YACA,gBACE,MAEJ,iBAAiB,EAAG,gBAEpB,GAAM,CAAC,WAAY,OAAQ,SAAU,KAAM,SAAU,UACjD,mBAAW,UACP,EAAE,MAAO,MAAO,IAAK,QAAS,UAAW,QAAS,aAClD,YAAa,gBAEf,GAAK,SAAQ,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,YAErD,OACJ,GAAI,YACF,GAAM,QACF,OAAM,CAAC,OAAQ,CAAC,EAAG,IAAK,QAAA,UAAS,MAAO,CAAC,MAAO,OAAQ,QAC5D,OAAS,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,YAE/D,UAAQ,8BAA8B,gBAC7B,SAAS,KAAK,MAAQ,OAAS,GACxC,OAAS,UAAQ,eAAe,SAAU,EAAE,MAAO,SAEnD,GAAM,MAAO,UAAQ,WAAW,IAC1B,OAAS,iBAAiB,SAAU,KAAM,SAAU,QAE1D,OAAS,UAAQ,eAAe,OAAO,MAAO,OAAO,MAAO,OAAO,QAGrE,GAAM,gBACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,YAE1D,MAAA,WAAQ,8BAA8B,IACtC,UAAQ,8BAA8B,QAE/B,eAGF,GAAM,oBAAmC,CAC9C,WAAY,aACZ,YAAa,MACb,WAAY,eC3DD,KAAM,gBAAgB,IAAM,IAAO,KAAK,IAAI,KAE5C,UAA0B,CACrC,WAAY,IACZ,YAAa,MACb,WAAY,MCLD,MAAO,gBAAgB,KAAO,IAAO,KAAK,KAAK,KAE/C,WAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OCHR,eACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MAEf,iBAAiB,EAAG,QACpB,GAAM,QAAS,SAAS,UAAQ,WAAW,GAAI,MAE/C,MAAO,WAAQ,eAAe,OAAO,MAAO,OAAO,MAAO,OAAO,QAG5D,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,OChBR,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,EAAG,QAAU,MAEpB,iBAAiB,EAAG,QAEpB,GAAM,OAAQ,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACnC,CAAC,YAAa,gBAChB,SAAS,MAAO,EAAE,MAAO,EAAE,MAA0B,EAAG,QAE5D,MAAO,CACL,UAAQ,eACJ,YAAY,MAAO,YAAY,MAAO,YAAY,QACtD,UAAQ,eACJ,eAAe,MAAO,eAAe,MAAO,eAAe,SAI5D,GAAM,YAA2B,CACtC,WAAY,KACZ,YAAa,MACb,WAAY,MCvBR,iBACF,MAEF,GAAM,CAAC,OAAQ,MAAO,QAAA,WAAW,KAC3B,CAAC,MAAQ,MACT,CAAC,GAAK,OACZ,iBAAiB,EAAG,UAEpB,GAAM,QAAS,UAAQ,KAAK,IAAI,EAAE,QAAQ,OACpC,CAAC,aAAc,YAAa,SAC9B,WAAW,OAAQ,KAAM,EAAE,MAAO,EAAE,OACxC,MAAO,CACL,UAAQ,eAAe,YAAa,EAAE,MAAO,cAC7C,UAAQ,eAAe,CAAC,QAAQ,QAAS,QAAS,UAI/C,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,SCrBR,gBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,OAAS,OACZ,CAAC,MAAQ,MAET,KAAO,GACT,OAAQ,MAAM,MAAM,QAGtB,GAAM,WAAY,MAAM,MAAM,OAExB,IAAM,MAAM,MAAM,MAClB,SAAqB,GAAI,OAAM,UAAY,GAC7C,SAAW,EACf,OAAS,GAAI,EAAG,EAAI,UAAW,IACzB,IAAM,MACR,UAAS,YAAc,MAAM,MAAM,IAIvC,GAAM,OAAQ,GAAI,OAAM,WAAW,KAAK,GAClC,KAAO,MAAM,MAAM,QACzB,KAAK,MAAQ,EACb,GAAM,KAAM,GAAI,OAAM,KACtB,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,KAC9B,MAAM,MAAQ,EACd,GAAM,SAAU,OAAM,CAAC,OAAQ,CAAC,EAAG,OAAQ,QAAA,UAAS,MAAO,CAAC,MAAO,QACnE,IAAI,GAAK,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,YAChE,UAAQ,8BAA8B,SAGxC,MAAO,KAGF,GAAM,cAA6B,CACxC,WAAY,OACZ,YAAa,MACb,WAAY,QClCR,6BAA6B,MAKjC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,YAAc,OAClB,CAAC,aAAe,MAEtB,iBAAiB,EAAG,sBAEpB,GAAM,OAAQ,EAAE,MAAM,OAChB,eAAiB,WAAW,MAAM,OAClC,IAAM,GACN,cAA8B,GAI9B,SAAW,MAAQ,eACrB,YAAc,WAElB,OAAS,GAAI,EAAG,EAAI,SAAU,EAAE,GAC9B,GAAM,UAAW,YACb,CAAC,OAAQ,CAAC,MAAO,aAAc,QAAA,UAAS,MAAO,CAAC,IAAK,EAAI,KAC7D,YAAc,SACd,cAAc,KAAK,UAGrB,OAAS,GAAI,EAAG,EAAI,YAAa,EAAE,GACjC,GAAM,aAAc,aAAK,kBAAkB,EAAoB,SACzD,UAAY,UAAQ,eAAe,GAAI,QAAS,aAChD,KACF,OAAM,CAAC,OAAQ,CAAC,EAAG,UAAW,EAAG,aAAc,QAAA,YAC7C,WACF,MAAK,CAAC,OAAQ,CAAC,EAAG,MAAO,QAAA,UAAS,MAAO,CAAC,MAAO,aAC/C,KACF,SAAS,CAAC,OAAQ,CAAC,EAAG,WAAY,EAAG,GAAI,QAAA,YACvC,cACF,KAAI,CAAC,OAAQ,CAAC,EAAG,MAAM,QAAA,UAAS,MAAO,CAAC,KAAM,EAAG,SAAU,MAC/D,IAAI,KAAK,eACT,cAAc,KAAK,WACnB,cAAc,KAAK,MACnB,cAAc,KAAK,YACnB,cAAc,KAAK,MACnB,cAAc,KAAK,eAGrB,GAAM,QAAS,KAAK,CAAC,OAAQ,IAAK,QAAA,UAAS,MAAO,CAAC,KAAM,KAEzD,MAAA,eAAc,QAAQ,GAAK,UAAQ,8BAA8B,IAE1D,OAGF,GAAM,0BAAyC,CACpD,WAAY,mBACZ,YAAa,MACb,WAAY,qBC2FR,cAAgC,CACpC,mBACA,UACA,WACA,YACA,UACA,WACA,UACA,UACA,aACA,aACA,WACA,YACA,WACA,YACA,YACA,cACA,gBACA,qBACA,mBACA,kBACA,gBACA,qBACA,eACA,WACA,WACA,WACA,cACA,iBACA,aACA,2BACA,0BACA,aACA,6BACA,4BACA,aACA,UACA,WACA,oBACA,aACA,oBACA,mBACA,4BACA,0CACA,yCACA,WACA,iBACA,8BACA,+BACA,cACA,UACA,eACA,YACA,UACA,UACA,iBACA,YACA,UACA,WACA,oBACA,YACA,eACA,kBACA,2BACA,eACA,eACA,cACA,mBACA,eACA,WACA,WACA,eACA,YACA,YACA,gBACA,WACA,gBACA,eACA,UACA,YACA,iBACA,iBACA,gBACA,UACA,cACA,cACA,cACA,gBACA,qBACA,mBACA,wBACA,UACA,WACA,UACA,cACA,gBACA,UACA,kBACA,eACA,UACA,0BACA,0BACA,0BACA,eACA,aACA,eACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,iBACA,WACA,YACA,cACA,qBACA,0BACA,4BACA,iCACA,cACA,uBACA,YACA,YACA,gBACA,aACA,WACA,cACA,WACA,UACA,WACA,YACA,cACA,eACA,qBACA,oBACA,aACA,WACA,aACA,wBACA,WACA,mBACA,UACA,UACA,UACA,WACA,WACA,WACA,gBACA,aACA,aACA,yBACA,iBAGF,OAAW,gBAAgB,eACzB,eAAe,cE7UjB,GAAA,oBAAA,GAAA,UAAA,mBAAA,CAAA,iBAAA,IAAA,kBAAA,wBAAA,IAAA,wBAAA,8BAAA,IAAA,8BAAA,mCAAA,IAAA,mCAAA,gBAAA,IAAA,gBAAA,mCAAA,IAAA,mCAAA,aAAA,IAAA,aAAA,iBAAA,IAAA,iBAAA,qBAAA,IAAA,qBAAA,kBAAA,IAAA,kBAAA,cAAA,IAAA,cAAA,wBAAA,IAAA,wBAAA,yBAAA,IAAA,yBAAA,cAAA,IAAA,cAAA,mBAAA,IAAA,mBAAA,YAAA,IAAA,YAAA,oBAAA,IAAA,oBAAA,2BAAA,IAAA,2BAAA,uBAAA,IAAA,uBAAA,eAAA,IAAA,eAAA,0BAAA,IAAA,0BAAA,iCAAA,IAAA,iCAAA,YAAA,IAAA,YAAA,aAAA,IAAA,aAAA,gCAAA,IAAA,gCAAA,kCAAA,IAAA,kCAAA,qBAAA,IAAA,qBAAA,uBAAA,IAAA,uBAAA,aAAA,IAAA,aAAA,mCAAA,IAAA,mCAAA,8BAAA,IAAA,8BAAA,cAAA,IAAA,cAAA,oBAAA,IAAA,oBAAA,sBAAA,IAAA,sBAAA,YAAA,IAAA,YAAA,oBAAA,IAAA,oBAAA,yBAAA,IAAA,yBAAA,kCAAA,IAAA,kCAAA,kBAAA,IAAA,kBAAA,oBAAA,IAAA,oBAAA,gBAAA,IAAA,gBAAA,oBAAA,IAAA,sBCiBA,GAAM,UAAmD,GAEnD,iBAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,yBACF,aAAsB,IACxB,SAAS,cAAgB,GAGrB,yBAA0B,cAC9B,GAAI,CAAE,gBAAgB,YACpB,GAAM,QAAS,yBAAyB,cACxC,GAAI,SAAW,KACb,SAAS,cAAgB,WAEzB,OAAA,SAAQ,IAAI,0CAA2C,cAChD,KAGX,GAAM,IAAK,SAAS,cACpB,MAAI,IAAG,gBACL,OAAO,UAAS,cACT,gBAAgB,eAGzB,IAAG,QAAQ,GAAG,YACd,GAAG,QAAQ,GAAG,cACd,GAAG,QAAQ,GAAG,OACd,GAAG,QAAQ,GAAG,QACd,GAAG,QAAQ,GAAG,qBACd,GAAG,QAAQ,GAAG,iBACd,GAAG,OAAO,GAAG,cACb,GAAG,OAAO,GAAG,WACb,GAAG,SAAS,GAAG,MAER,SAAS,eAGlB,sBAAsB,cACpB,GAAI,MAAO,kBAAoB,aAAe,eAAiB,EAC7D,MAAO,IAAI,iBAAgB,IAAK,KAC3B,GAAI,MAAO,WAAa,YAC7B,MAAO,UAAS,cAAc,UAE9B,KAAM,IAAI,OAAM,0CAIpB,kCAAkC,cAChC,GAAI,eAAiB,GAAK,eAAiB,EACzC,KAAM,IAAI,OAAM,0DAElB,GAAM,QAAS,aAAa,cAM5B,MAJA,QAAO,iBAAiB,mBAAqB,KAC3C,GAAG,iBACH,MAAO,UAAS,eACf,IACC,eAAiB,EACX,OAAO,WAAW,QAAS,mBAC3B,OAAO,WAAW,qBAAsB,kBAG3C,OAAO,WAAW,SAAU,kBCzErC,GAAY,eAAZ,AAAA,UAAY,gBAgBV,eAAA,eAAA,MAAA,GAAA,QAkBA,eAAA,eAAA,aAAA,GAAA,iBAlCU,eAAA,eAAa,KAqCzB,GAAY,cAAZ,AAAA,UAAY,eACV,cAAA,cAAA,OAAA,GAAA,SACA,cAAA,cAAA,OAAA,GAAA,SACA,cAAA,cAAA,OAAA,GAAA,SACA,cAAA,cAAA,SAAA,GAAA,aAJU,cAAA,cAAY,KAOxB,GAAY,qBAAZ,AAAA,UAAY,sBACV,qBAAA,qBAAA,iBAAA,GAAA,mBACA,qBAAA,qBAAA,iBAAA,GAAA,mBACA,qBAAA,qBAAA,yBAAA,GAAA,2BACA,qBAAA,qBAAA,mBAAA,GAAA,qBACA,qBAAA,qBAAA,mBAAA,GAAA,uBALU,qBAAA,qBAAmB,KA0CzB,kDACF,KAAc,SAChB,MAAO,CAAC,QAAS,MAGb,4CACF,WAAoB,oBACtB,MAAO,YAAa,mBAWhB,0BAA2B,OAC/B,GAAM,MAAO,aAAK,cAAc,OAC1B,aAAe,KAAK,KAAK,KAAO,GACtC,MAAO,cAAK,oBAAoB,cA4B5B,gDACF,KAAc,SAChB,MAAO,CACL,KAAK,IAAI,EAAG,KAAK,KAAK,QAAU,IAAK,KAAK,IAAI,EAAG,KAAK,KAAK,KAAO,KAIhE,+CACF,KAAc,SAChB,GAAM,CAAC,EAAG,GAAK,uCAAuC,KAAM,SAC5D,MAAO,GAAI,EAAI,EAoBX,0BAEF,GAA2B,2BAE7B,GAAM,OAAQ,GAEV,oBACA,wBACA,8BACA,0BACA,mBAEA,sBACA,0BAEA,mBACA,qBACA,iBAEJ,MAAI,OAAM,UAAU,mBAAqB,EACvC,qBAAsB,MAAM,KAC5B,wBAA0B,MAAM,KAChC,8BAAgC,MAAM,QACtC,0BAA4B,MAAM,QAClC,mBAAqB,MAAM,IAC3B,0BAA4B,EAC5B,mBAAqB,EACrB,qBAAuB,MAAM,WAC7B,iBAAmB,MAAM,OAEzB,qBAAsB,GAAG,KACzB,wBAA0B,GAAG,KAC7B,8BAAgC,GAAG,KACnC,0BAA4B,MAAM,KAClC,mBAAqB,GAAG,KACxB,0BAA4B,EAC5B,mBAAqB,EACrB,qBAAuB,2BAA6B,KAChD,0BAA0B,eAC1B,KACJ,iBAAmB,GAAG,OAExB,sBAAwB,GAAG,KAEpB,CACL,oBACA,wBACA,8BACA,0BACA,mBACA,sBACA,0BACA,mBACA,qBACA,kBFxNE,sBAA0B,GAA2B,OACzD,GAAM,aAAc,QACpB,MAAI,OAAM,QAAQ,UAChB,gBAAgB,IAEX,YAGT,yBAAyB,IACvB,GAAM,OAAQ,GAAG,WACjB,GAAI,QAAU,GAAG,SACf,KAAM,IAAI,OAAM,gBAAkB,qBAAqB,GAAI,QAK/D,GAAM,aAAc,QACd,YAAc,MAEd,0BAA2B,KAC/B,MAAI,CAAA,CAAA,OAAM,QAAQ,iCAAmC,MAAQ,GACxD,YAAc,KAAK,IAAI,MAAQ,KAAK,IAAI,KAAO,aAMhD,8BACF,GAA2B,QAC7B,OAAQ,YACD,IAAG,SACN,MAAO,eACJ,IAAG,aACN,MAAO,mBACJ,IAAG,cACN,MAAO,oBACJ,IAAG,kBACN,MAAO,wBACJ,IAAG,8BACN,MAAO,oCACJ,IAAG,cACN,MAAO,oBACJ,IAAG,mBACN,MAAO,6BAEP,MAAO,sBAAsB,UAI7B,6BACF,GAA2B,eAC7B,MAAO,aACH,GAAI,IAAM,GAAG,aAAa,eAC1B,cAAgB,cAAgB,oCAGhC,4BACF,GAA2B,oBAC7B,GAAM,cAA4B,YAC9B,GAAI,IAAM,GAAG,aAAa,GAAG,eAC7B,wCAGJ,GAFA,aAAa,GAAI,IAAM,GAAG,aAAa,aAAc,qBACrD,aAAa,GAAI,IAAM,GAAG,cAAc,eACpC,GAAG,mBAAmB,aAAc,GAAG,kBAAoB,GAC7D,KAAA,SAAQ,IAAI,GAAG,iBAAiB,eAC1B,GAAI,OAAM,oCAElB,MAAO,cAGH,8BACF,GAA2B,sBAC7B,GAAM,gBAA8B,YAChC,GAAI,IAAM,GAAG,aAAa,GAAG,iBAC7B,0CAGJ,GAFA,aAAa,GAAI,IAAM,GAAG,aAAa,eAAgB,uBACvD,aAAa,GAAI,IAAM,GAAG,cAAc,iBACpC,GAAG,mBAAmB,eAAgB,GAAG,kBAAoB,GAC/D,KAAA,2BACI,qBAAsB,GAAG,iBAAiB,iBACxC,GAAI,OAAM,sCAElB,MAAO,gBAGT,GAAM,iBAAkB,2BACxB,mCACI,aAAsB,eACxB,GAAM,uBAAwB,gBAAgB,KAAK,eACnD,GAAI,uBAAyB,MAC3B,QAAQ,IAAI,wCAAwC,iBACpD,QAAQ,IAAI,cACZ,OAGF,GAAM,YAAa,CAAC,sBAAsB,GAEpC,YAAc,aAAa,MAAM;GACjC,KAAM,YAAY,OAAO,WAAW,OAAS,EAC7C,qBAAuB,YAAY,IACrC,CAAC,KAAM,cACH,aAAK,SAAU,aAAa,GAAG,WAAY,MAAO,MACtD,cAAgB,EACpB,OAAS,GAAI,EAAG,EAAI,qBAAqB,OAAQ,IAC/C,cAAgB,KAAK,IAAI,qBAAqB,GAAG,OAAQ,eAG3D,GAAM,kBAAmB,qBAAqB,MAAM,EAAG,WAAa,GAC9D,UAAY,qBAAqB,MAAM,WAAa,EAAG,YACvD,gBAAkB,qBAAqB,MAAM,YAEnD,QAAQ,IAAI,iBAAiB,KAAK;IAClC,QAAQ,IAAI,cAAc,MAAM;GAAM,IACtC,QAAQ,IACJ,MAAM,aAAK,SAAS,UAAU,GAAI,iBAClC,iEACJ,QAAQ,IAAI,gBAAgB,KAAK;IAG7B,uBAAwB,IAC5B,MAAO,aACH,GAAI,IAAM,GAAG,gBAAiB,kCAG9B,qBAAsB,GAA2B,SAErD,GADA,aAAa,GAAI,IAAM,GAAG,YAAY,UAClC,GAAG,oBAAoB,QAAS,GAAG,eAAiB,GACtD,KAAA,SAAQ,IAAI,GAAG,kBAAkB,UAC3B,GAAI,OAAM,+CAId,yBACF,GAA2B,SAE7B,GADA,aAAa,GAAI,IAAM,GAAG,gBAAgB,UACtC,GAAG,oBAAoB,QAAS,GAAG,mBAAqB,GAC1D,KAAA,SAAQ,IAAI,GAAG,kBAAkB,UAC3B,GAAI,OAAM,qCAId,kCACF,GAA2B,OAC7B,GAAM,SAAsB,YACxB,GAAI,IAAM,GAAG,eAAgB,gCACjC,MAAA,cAAa,GAAI,IAAM,GAAG,WAAW,GAAG,aAAc,UACtD,aAAa,GAAI,IAAM,GAAG,WAAW,GAAG,aAAc,MAAM,GAAG,cACxD,QAGH,iCACF,GAA2B,OAC7B,GAAM,SAAsB,YACxB,GAAI,IAAM,GAAG,eAAgB,gCACjC,MAAA,cAAa,GAAI,IAAM,GAAG,WAAW,GAAG,qBAAsB,UAC9D,aACI,GAAI,IAAM,GAAG,WAAW,GAAG,qBAAsB,MAAM,GAAG,cACvD,QAGH,0BACJ,MAAI,OAAM,UAAU,mBAAqB,EAChC,EAEF,EAGH,uBAAwB,IAC5B,MAAO,aACH,GAAI,IAAM,GAAG,gBAAiB,kCAG9B,6BAA8B,MAAe,QACjD,GAAM,gBAAiB,MAAM,UAAU,0BACvC,GAAK,OAAS,GAAO,QAAU,GAC7B,GAAM,WAAY,IAAI,SAAS,UAC/B,KAAM,IAAI,OAAM,0BAA4B,UAAY,gBAE1D,GAAK,MAAQ,gBAAoB,OAAS,gBACxC,GAAM,WAAY,IAAI,SAAS,UACzB,KAAM,IAAI,kBAAkB,kBAClC,KAAM,IAAI,OACN,0BAA4B,UAC5B,qDAAuD,KAAM,MAI/D,2BAA4B,IAChC,MAAO,aACH,GAAI,IAAM,GAAG,oBAAqB,sCAGlC,4CACF,GAA2B,QAAuB,UAClD,QAAqB,oBAA6B,kBAClD,mBACF,GAAM,KAAM,GAAG,kBAAkB,QAAS,WAC1C,MAAI,OAAQ,GAGH,GAET,cAAa,GAAI,IAAM,GAAG,WAAW,GAAG,aAAc,UACtD,aACI,GACA,IAAM,GAAG,oBACL,IAAK,oBAAqB,GAAG,MAAO,GAAO,kBAC3C,oBACR,aAAa,GAAI,IAAM,GAAG,wBAAwB,MAC3C,IAGH,yBACF,GAA2B,QAAuB,aACpD,oBAAoB,GAAI,aACxB,aAAa,GAAI,IAAM,GAAG,cAAc,GAAG,SAAW,cACtD,aAAa,GAAI,IAAM,GAAG,YAAY,GAAG,WAAY,UAGjD,2BACF,GAA2B,aAC7B,oBAAoB,GAAI,aACxB,aAAa,GAAI,IAAM,GAAG,cAAc,GAAG,SAAW,cACtD,aAAa,GAAI,IAAM,GAAG,YAAY,GAAG,WAAY,OAGjD,0CACF,GAA2B,QAC3B,aACF,MAAO,aACH,GAAI,IAAM,GAAG,mBAAmB,QAAS,aACzC,YAAc,YAAc,6BAG5B,mCACF,GAA2B,QAC3B,aACF,MAAO,IAAG,mBAAmB,QAAS,aAGlC,4CACF,GAA2B,QAC3B,uBAA8C,aAChD,aAAa,GAAI,IAAM,gBAAgB,GAAI,QAAS,cACpD,aAAa,GAAI,IAAM,GAAG,UAAU,uBAAwB,cAGxD,iCAAkC,IACtC,aAAa,GAAI,IAAM,GAAG,gBAAgB,GAAG,YAAa,OAC1D,aAAa,GAAI,IAAM,GAAG,SAAS,EAAG,EAAG,GAAG,OAAO,MAAO,GAAG,OAAO,SACpE,aAAa,GAAI,IAAM,GAAG,QAAQ,EAAG,EAAG,GAAG,OAAO,MAAO,GAAG,OAAO,SAG/D,uCACF,GAA2B,QAC3B,aACF,aAAa,GAAI,IAAM,GAAG,gBAAgB,GAAG,YAAa,cAC1D,aACI,GACA,IAAM,GAAG,qBACL,GAAG,YAAa,GAAG,kBAAmB,GAAG,WAAY,QAAS,IAGlE,2CACF,GAA2B,aAC7B,aAAa,GAAI,IAAM,GAAG,gBAAgB,GAAG,YAAa,cAC1D,aACI,GACA,IAAM,GAAG,qBACL,GAAG,YAAa,GAAG,kBAAmB,GAAG,WAAY,KAAM,IAG/D,6BAA8B,IAClC,GAAM,QAAS,GAAG,uBAAuB,GAAG,aAC5C,GAAI,SAAW,GAAG,qBAChB,KAAM,IAAI,OACN,8BAAgC,2BAA2B,GAAI,SAIjE,oCACF,GAA2B,QAC7B,OAAQ,YACD,IAAG,kCACN,MAAO,wCACJ,IAAG,0CACN,MAAO,gDACJ,IAAG,kCACN,MAAO,wCACJ,IAAG,wBACN,MAAO,kCAEP,MAAO,iBAAiB,UAI9B,qBACI,GAA2B,cAC3B,gBACF,GAAM,SAAkB,aAAa,GAAI,IAAM,iBAC/C,GAAI,SAAW,KACb,KAAM,IAAI,OAAM,gBAElB,MAAO,SAGT,6BAA6B,GAA2B,aACtD,GAAM,gBAAiB,GAAG,iCAAmC,EACvD,cAAgB,YAAc,GAAG,SACvC,GAAI,cAAgB,GAAG,UAAY,cAAgB,gBACjD,GAAM,kBAAmB,2BAA2B,kBACpD,KAAM,IAAI,OAAM,0BAA0B,sBAIxC,qBAAsB,MAAiB,WAAa,GACxD,MAAO,cAAK,cAAc,MAAM,MAAM,EAAG,MAAM,OAAS,aAGpD,qBAAsB,OAC1B,GAAI,MAAM,SAAW,EACnB,KAAM,OAAM,wDAGd,MAAO,CACL,MAAM,OAAS,EAAI,MAAM,MAAM,OAAS,GAAK,EAAG,MAAM,MAAM,OAAS,IAInE,sBAAuB,OAC3B,GAAI,WAAsC,CAAC,EAAG,EAAG,GAEjD,MADiB,OAAM,SAAW,GAAM,MAAM,SAAW,GAAK,MAAM,KAAO,GAEzE,WACI,CAAC,YAAY,OAAQ,GAAG,YAAY,SAEnC,UAGH,yCACF,SAAoB,SAAW,IACjC,GAAI,YAAa,MAAM,UAAU,0BAC7B,UACF,YAAa,WAAa,EAO1B,SAAW,SAAS,IAChB,CAAC,EAAG,IAAM,GAAK,SAAS,OAAS,EAC7B,aAAK,kBAAkB,SAAS,IAChC,SAAS,IAIb,SAAS,SAAW,GACtB,UAAW,CAAC,EAAG,SAAS,MAKxB,SAAS,SAAW,GAEtB,UADsB,aAAK,aAAa,UACf,UAG3B,GAAI,MAAO,aAAK,cAAc,UAC9B,GAAI,SAAS,QAAU,GAAK,MAAQ,WAClC,MAAO,CAAC,EAAG,MACN,GACH,SAAS,SAAW,GAAK,SAAS,IAAM,YACxC,SAAS,IAAM,WACjB,MAAO,UACF,GACH,SAAS,SAAW,GAAK,SAAS,GAAK,SAAS,IAAM,YACtD,SAAS,IAAM,WACjB,MAAO,CAAC,SAAS,GAAK,SAAS,GAAI,SAAS,IACvC,GACH,SAAS,SAAW,GAAK,SAAS,IAAM,YACxC,SAAS,GAAK,SAAS,IAAM,WAC/B,MAAO,CAAC,SAAS,GAAI,SAAS,GAAK,SAAS,IACvC,GACH,SAAS,SAAW,GACpB,SAAS,GAAK,SAAS,GAAK,SAAS,IAAM,YAC3C,SAAS,IAAM,WACjB,MAAO,CAAC,SAAS,GAAK,SAAS,GAAK,SAAS,GAAI,SAAS,IACrD,GACH,SAAS,SAAW,GAAK,SAAS,IAAM,YACxC,SAAS,GAAK,SAAS,GAAK,SAAS,IAAM,WAC7C,MAAO,CAAC,SAAS,GAAI,SAAS,GAAK,SAAS,GAAK,SAAS,IAE1D,GAAI,UAOF,GAAM,UAAW,YAAY,UACzB,KAAO,EAAG,KAAO,EACrB,MAAI,UAAS,QACX,EAAC,KAAM,MAAQ,YAAY,WAE7B,KAAO,SAAY,MAAO,GAAM,MAAO,GAChC,aAAK,oBAAoB,MAAM,IAAI,GAAK,EAAI,GAErD,MAAO,cAAK,oBAAoB,MAIpC,gBAAgB,GACd,MAAO,GAAI,GAAM,EAOb,uBAAwB,OAAkB,QAY9C,GAXA,OAAS,OAAO,MAAM,IACtB,OAAS,OAAO,MAAM,IAElB,aAAK,YAAY,OAAQ,SAIzB,CAAC,OAAO,QAAU,CAAC,OAAO,QAI1B,OAAO,KAAO,GAAK,OAAO,KAAO,GAAK,OAAO,KAAO,GACpD,OAAO,KAAO,EAChB,MAAO,GAGT,GAAI,OAAO,SAAW,OAAO,QAC3B,GAAM,YAAa,OAAO,MAAM,IAAI,GAC9B,WAAa,OAAO,MAAM,IAAI,GAKpC,GAJI,aAAe,YAIf,OAAO,aAAe,OAAO,aAC5B,QAAO,KAAO,GAAK,OAAO,KAAO,GACpC,MAAO,GAGX,MAAO,QAAO,KAAO,OAAO,IAAM,OAAO,OAAO,KAAO,OAAO,OAAO,IAMvE,GAAI,kBACA,uBAEE,gCAAiC,cACrC,GAAI,kBAAoB,MACtB,GAAM,IAAK,gBAAgB,cAC3B,iBAAmB,GAAG,aAAa,GAAG,kBAExC,MAAO,kBAGH,+BACJ,iBAAmB,KAEf,oCACJ,uBAAyB,KAGrB,gCAAiC,cACrC,GAAI,wBAA0B,MAC5B,GAAM,IAAK,gBAAgB,cAC3B,uBAAyB,GAAG,aAAa,GAAG,yBAG9C,MAAO,MAAK,IAAI,GAAI,wBAGhB,2CAA4C,cAEhD,GAAI,eAAiB,EACnB,MAAO,GAGT,GAAI,mBACE,GAAK,gBAAgB,cAE3B,MAAI,cAAa,GAAI,oCACjB,eAAiB,EACnB,kBAAoB,EACX,aAAa,GAAI,4BAC1B,kBAAoB,EAEpB,kBAAoB,EAEf,kBAGH,sBAAuB,GAA2B,eAEtD,MADY,IAAG,aAAa,gBACd,KAGV,+BAAgC,cACpC,IAEE,GADW,gBAAgB,eACjB,KACR,MAAO,SAEF,GACP,MAAA,SAAQ,IAAI,qCAAsC,GAC3C,GAET,MAAO,GAGH,4CAA6C,cAEjD,GAAI,eAAiB,EACnB,MAAO,GAGT,GAAM,IAAK,gBAAgB,cAE3B,GAAI,eAAiB,GACnB,GAAI,CAAC,aAAa,GAAI,qBACpB,MAAO,WAGL,CAAC,aAAa,GAAI,0BACpB,MAAO,GAKX,MAD8B,wCAAuC,IAajE,uCAAwC,cAC5C,GAAI,eAAiB,EACnB,MAAO,GAGT,GAAM,IAAK,gBAAgB,cAE3B,GAAI,eAAiB,GAInB,GAHI,CAAC,aAAa,GAAI,sBAGlB,CAAC,aAAa,GAAI,4BACpB,MAAO,QAGT,GAAI,aAAa,GAAI,0BACnB,MAAO,wCAAuC,IAGhD,GAAM,yBAA0B,8BAChC,GAAI,aAAa,GAAI,0BACnB,GAAM,2BACF,GAAG,aAAa,yBACpB,MAAO,4CACH,GAAI,2BAGV,MAAO,GAIT,MAD8B,wCAAuC,IAIvE,gDAAgD,IAE9C,GAAM,WAAY,iBAAiB,IAE7B,QAAU,GAAG,gBACnB,GAAG,YAAY,GAAG,WAAY,SAE9B,GAAM,OAAQ,EACR,OAAS,EACf,GAAG,WACC,GAAG,WAAY,EAAG,UAAU,oBAAqB,MAAO,OAAQ,EAChE,UAAU,mBAAoB,UAAU,iBAAkB,MAE9D,GAAM,aAAc,GAAG,oBACvB,GAAG,gBAAgB,GAAG,YAAa,aACnC,GAAG,qBACC,GAAG,YAAa,GAAG,kBAAmB,GAAG,WAAY,QAAS,GAElE,GAAM,uBACF,GAAG,uBAAuB,GAAG,eAAiB,GAAG,qBAErD,MAAA,IAAG,YAAY,GAAG,WAAY,MAC9B,GAAG,gBAAgB,GAAG,YAAa,MACnC,GAAG,cAAc,SACjB,GAAG,kBAAkB,aAEd,sBAGT,oDAEI,GAA2B,2BAC7B,GAAM,WAAY,iBAAiB,GAAI,2BACjC,QAAU,GAAG,gBACnB,GAAG,YAAY,GAAG,WAAY,SAE9B,GAAM,OAAQ,EACR,OAAS,EACf,GAAG,WACC,GAAG,WAAY,EAAG,UAAU,wBAAyB,MAAO,OAAQ,EACpE,UAAU,mBAAoB,UAAU,qBAAsB,MAElE,GAAM,aAAc,GAAG,oBACvB,GAAG,gBAAgB,GAAG,YAAa,aACnC,GAAG,qBACC,GAAG,YAAa,GAAG,kBAAmB,GAAG,WAAY,QAAS,GAElE,GAAM,uBACF,GAAG,uBAAuB,GAAG,eAAiB,GAAG,qBAErD,MAAA,IAAG,YAAY,GAAG,WAAY,MAC9B,GAAG,gBAAgB,GAAG,YAAa,MACnC,GAAG,cAAc,SACjB,GAAG,kBAAkB,aAEd,sBAGH,6BAA8B,cAClC,MAAI,gBAAiB,EACZ,GAEE,gBAAgB,cAGG,WAAa,KAIvC,2BACF,QAAiC,QAC9B,MAAM,QAAQ,UACjB,SAAS,CAAC,UAEZ,QAAO,QAAQ,IACT,GAAK,MACP,aAAK,OACD,EAAE,QAAU,YACZ,IAAM,GAAG,qEGxpBnB,GAAM,MAAM,MASZ,KAAI,aAAa,YAAa,IAAM,KAAI,UAAU,iBAAmB,GAGrE,KAAI,aAAa,gBAAiB,IAC5B,sBAAsB,GACjB,EACE,sBAAsB,GACxB,EAEF,GAIT,KAAI,aAAa,iCAAkC,IAAM,IAEzD,KAAI,aACA,yBAA0B,IAAM,KAAI,IAAI,mBAAqB,GAGjE,KAAI,aAAa,oBAAqB,IAAM,IAG5C,KAAI,aAAa,2BAA4B,IAAM,IAGnD,KAAI,aAAa,aAAc,IAAM,KAAI,QAAQ,cAGjD,KAAI,aAAa,2BAA4B,IAAM,KAAI,QAAQ,eAG/D,KAAI,aAAa,kBAAmB,IAAM,KAAI,QAAQ,eAItD,KAAI,aAAa,2BAA4B,IAAM,IAGnD,KAAI,aACA,+BAAgC,IAAM,KAAI,QAAQ,eAGtD,KAAI,aACA,8BAA+B,IAAM,KAAI,QAAQ,eAGrD,KAAI,aACA,8BAA+B,IAAM,KAAI,QAAQ,eAGrD,KAAI,aACA,8BAA+B,IAAM,KAAI,QAAQ,eAGrD,KAAI,aAAa,oBAAqB,IAAM,KAAI,QAAQ,eAGxD,KAAI,aAAa,sBAAuB,IAAM,KAAI,QAAQ,eAG1D,KAAI,aAAa,oBAAqB,IAAM,KAAI,QAAQ,eAGxD,KAAI,aACA,yBACA,IAAM,uBAAuB,KAAI,UAAU,mBAG/C,KAAI,aACA,+BACA,IAAM,uBAAuB,KAAI,UAAU,mBAU/C,KAAI,aAAa,+CAAgD,KAC/D,GAAM,cAAe,KAAI,UAAU,iBAEnC,MAAI,gBAAiB,EACZ,EAEF,kCAAkC,gBAO3C,KAAI,aACA,gDACA,IAAM,KAAI,UAAU,gDAAkD,GAClE,CAAC,oBAAY,YAKrB,KAAI,aACA,+BACA,IAAM,mCAAmC,KAAI,UAAU,mBAM3D,KAAI,aAAa,+BAAgC,IACxC,KAAI,QAAQ,4BACf,GACA,KAAI,QAAQ,iCAOlB,KAAI,aACA,+BACA,IAAM,8BAA8B,KAAI,UAAU,mBAGtD,KAAI,aACA,0BACA,IAAM,oBAAoB,KAAI,UAAU,mBAK5C,KAAI,aAAa,4BAA6B,IAKxB,KAAI,QAAQ,gCACX,EAAI,GAU3B,KAAI,aACA,iCACA,IACS,GAET,aACE,GAAI,WAAY,GAAK,aAAc,GACjC,KAAM,IAAI,OACN,8FACkC,iBC3JxC,8BACJ,GAAI,YACA,UACA,UACA,UACA,UACA,OACA,aACA,iBACA,iBACA,YAEJ,MAAI,OAAM,UAAU,mBAAqB,EACvC,YAAU,kBACV,UAAY,KACZ,UAAY,MACZ,UAAY,KACZ,UAAY,UACZ,OAAS,cACT,aAAe,wBAMf,iBAAmB;;;;;;;;;;;MAcnB,iBAAmB,GACnB,YAAc;;;;;;;;;OAWd,YAAU,GACV,UAAY,YACZ,UAAY,UACZ,UAAY,UACZ,UAAY,YACZ,OAAS,eACT,aAAe,GAEf,iBAAmB;;;;;;;;MASnB,iBAAmB;;;;;;;;;MAUnB,YAAc;;;;;;;;OAWT,CACL,QAAA,WACA,UACA,UACA,UACA,UACA,OACA,aACA,iBACA,iBACA,aC1GE,4CACF,QAAkB,MAAiB,MAAQ,SAC7C,GAAM,SAAU,aAAK,eAAe,OACpC,MAAO,SACF,IAAI,CAAC,OAAQ,KACZ,GAAM,OAAQ,OAAO,QAAO,QAAQ,WAAW,SACzC,MAAQ,IAAM,QAAQ,OAAS,EACjC,OAAO,QAAO,EAAI,QAAQ,WAAW,QAAO,QAAQ,SACpD,YAAY,QAAO,QAAQ,SAC/B,MAAO,GAAG,UAAU,WAErB,KAAK,IA+CN,4BAA6B,OACjC,GAAM,SAAU,aAAK,eAAe,OAAO,IAAI,GAAK,EAAE,YAEtD,MAAO;;wBAEe,QAAQ,mBAAmB,QAAQ;;EAKpD,GAAM,sBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC5FpC,oBAAA,MA8BE,YAAY,aAPZ,KAAA,cAAgB,CAAC,KAGjB,KAAA,aAAe,GACf,KAAA,aAAe,GACf,KAAA,iBAAmB,cAAc,MAG/B,GAAM,UAAW,iBAAiB,aAC5B,KAAO,qBACb,KAAK,YAAc,YAEnB,KAAK,SAAW;;UAGA,mCACR,CAAC,IAAK,IAAK,KAAM;;;;;;iBAMZ,SAAS,OAAO,SAAS;wCACF,SAAS;;;;;;;;;;UAUvC,KAAK;;QCxDf,0BAAA,MA8BE,YAAY,aAPZ,KAAA,cAAgB,CAAC,KAEjB,KAAA,aAAe,GACf,KAAA,aAAe,GAEf,KAAA,iBAAmB,cAAc,MAG/B,GAAM,UAAW,iBAAiB,aAC5B,KAAO,qBACb,KAAK,YAAc,YAEnB,KAAK,SAAW;;UAGA,mCACR,CAAC,IAAK,IAAK,KAAM;;;;;;iBAMZ,SAAS,OAAO,SAAS;wCACF,SAAS;;;;;;;;;;UAUvC,KAAK;;QCxDf,mBAAA,MA4BE,YAAY,aALZ,KAAA,cAAgB,CAAC,KAGjB,KAAA,YAAc,aAAa,SAGzB,GAAM,MAAO,qBACb,KAAK,YAAc,YACnB,KAAK,SAAW;QACZ;;;;UAIE,KAAK;;QCpCf,yBAAA,MA8BE,YAAY,aAPZ,KAAA,cAAgB,CAAC,KAGjB,KAAA,aAAe,GACf,KAAA,aAAe,GACf,KAAA,YAAc,aAAa,SAGzB,GAAM,MAAO,qBACb,KAAK,YAAc,YACnB,KAAK,SAAW;QACZ;;;;;UAKE,KAAK;;QCvCf,oBAAA,MA0BE,YACI,YAAuC,SACvC,oBAAsB,IAN1B,KAAA,cAAgB,CAAC,KAOf,GAAM,MAAO,qBACP,CAAC,OAAQ,OAAS,SACxB,KAAK,YAAc,YAEnB,GAAI,QAAS,SACT,qBACF,QAAS,8BAGX,KAAK,SAAW;QACA,mBAAmB;;;;;;;;;;8BAUT;kCACI;iDACe,YAAY;wBACrC,KAAK;;;;;;;;;;;;;;UAcnB,KAAK,iBAAiB;;QClEhC,0BAAA,MA4CE,YACI,YAAuC,SACvC,oBAAsB,IAR1B,KAAA,cAAgB,CAAC,KAGjB,KAAA,aAAe,GACf,KAAA,aAAe,GAKb,GAAM,MAAO,qBACP,CAAC,OAAQ,OAAS,SACxB,KAAK,YAAc,YAEnB,GAAI,UAAW,GACX,OAAS,SACT,qBACF,QAAS,8BAGX,OAAS,KAAM,EAAG,KAAO,EAAG,MAC1B,OAAS,KAAM,EAAG,KAAO,EAAG,OAC1B,GAAM,SAAU,IAAM,EAAI,IAE1B,UAAY;;gCAEY,SAAS,YAAY;gCACrB;kCACE,SAAS,YAAY;kCACrB;;;;;;;gCAOF;oCACI;kDACc,YAAY;yBACrC,KAAK;;;yBAGL;;yBAEA;;yBAEA;;yBAEA;;;;UAQrB,KAAK,SAAW;QACA,mBAAmB;;;;;;;;;;;UAW7B;;UAEA,KAAK,YAAY;;QC3G3B,mBAAA,GAAA,UAAA,mBAAA,CAAA,kCAAA,IAAA,kCAAA,8BAAA,IAAA,8BAAA,2BAAA,IAAA,2BAAA,iCAAA,IAAA,iCAAA,2BAAA,IAAA,2BAAA,kBAAA,IAAA,kBAAA,0BAAA,IAAA,0BAAA,iCAAA,IAAA,iCAAA,mBAAA,IAAA,mBAAA,mBAAA,IAAA,oBAAA,gDAAA,IAAA,gDAAA,gCAAA,IAAA,gCAAA,sCAAA,IAAA,sCAAA,+BAAA,IAAA,+BAAA,yCAAA,IAAA,yCAAA,+CAAA,IAAA,+CAAA,yCAAA,IAAA,yCAAA,wCAAA,IAAA,wCAAA,+CAAA,IAAA,+CAAA,2BAAA,IAAA,2BAAA,yBAAA,IAAA,2BAwBM,6BAA6B,IACjC,GAAM,MAAO,qBACP,mBAAqB,GAAG,KAAK;;MAE/B,KAAK;MACL,KAAK;MACL,KAAK;;;;;OAMT,MAAkB,oBAAmB,GAAI,oBAGrC,4BAA6B,IAEjC,GAAM,aAAc,GAAI,cACpB,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,IAClE,MAAkB,0BAAyB,GAAI,aAG3C,2BAA4B,IAEhC,GAAM,uBAAwB,GAAI,aAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAC9D,MAAkB,yBAAwB,GAAI,uBAGhD,mCACI,GAA2B,MAAe,OAC1C,eAAwB,cACxB,aACS,oBAAoB,MAAO,QACtC,GAAM,SAAqB,cAAc,IAEnC,MAAQ,GAAG,WACjB,MAAW,cAAa,GAAI,IAAM,GAAG,YAAY,MAAO,UAC7C,aACP,GAAI,IAAM,GAAG,cAAc,MAAO,GAAG,eAAgB,GAAG,gBACjD,aACP,GAAI,IAAM,GAAG,cAAc,MAAO,GAAG,eAAgB,GAAG,gBACjD,aACP,GAAI,IAAM,GAAG,cAAc,MAAO,GAAG,mBAAoB,GAAG,UACrD,aACP,GAAI,IAAM,GAAG,cAAc,MAAO,GAAG,mBAAoB,GAAG,UACrD,aACP,GACA,IAAM,GAAG,WACL,MAAO,EAAG,eAAgB,MAAO,OAAQ,EAAG,cAC5C,YAAa,OACV,aAAa,GAAI,IAAM,GAAG,YAAY,GAAG,WAAY,OACzD,QAGH,kDACF,eACF,MAAO,eAAc,oBAGjB,oCACF,GAA2B,KAAc,QACzC,eACF,GAAM,CAAC,MAAO,QACD,yCAAyC,KAAM,SAC5D,MAAO,2BACH,GAAI,MAAO,OACX,yCAAyC,eACzC,cAAc,mBAAoB,GAAG,OAGrC,kDACF,eACF,MAAO,eAAc,wBAGjB,oCACF,GAA2B,KAAc,QACzC,eACF,GAAM,CAAC,MAAO,QACD,yCAAyC,KAAM,SAC5D,MAAO,2BACH,GAAI,MAAO,OACX,yCAAyC,eACzC,cAAc,mBAAoB,cAAc,sBAGhD,wDACF,eACF,MAAO,eAAc,sBAGjB,0CACF,GAA2B,KAAc,QACzC,eACF,GAAM,CAAC,MAAO,QACD,yCAAyC,KAAM,SAC5D,MAAO,2BACH,GAAI,MAAO,OACX,+CAA+C,eAAgB,GAAG,KAClE,GAAG,eAGH,iDACF,eACF,MAAO,eAAc,0BAGjB,mCACF,GAA2B,KAAc,QACzC,eACF,GAAM,CAAC,MAAO,QACD,uCAAuC,KAAM,SAC1D,MAAO,2BACH,GAAI,MAAO,OAAQ,wCAAwC,eAC3D,GAAG,KAAM,GAAG,OAGZ,wDACF,eACF,MAAO,eAAc,8BAGjB,0CACF,GAA2B,KAAc,QACzC,eACF,GAAM,CAAC,MAAO,QACD,uCAAuC,KAAM,SAC1D,MAAO,2BACH,GAAI,MAAO,OACX,+CAA+C,eAAgB,GAAG,KAClE,cAAc,sBAGd,2CACF,GAA2B,QAC3B,cACF,GAAM,WAAY,EACZ,SAAW,EAAI,EACf,OAAU,EAAI,EAAM,EAAI,EAC9B,MAAW,cACP,GAAI,IAAM,GAAG,WAAW,GAAG,aAAc,eAClB,mCACvB,GAAI,QAAS,eAAgB,aAAc,EAAG,OAAQ,YAE3C,mCACP,GAAI,QAAS,KAAM,aAAc,EAAG,OAAQ,UAGhD,oCACF,GAA2B,QAAuB,MAClD,OAAgB,MAAkB,eACzB,aAAa,GAAI,IAAM,GAAG,YAAY,GAAG,WAAY,UAEhE,GAAI,eAA2B,cAAuB,eAClD,gBAAgB,YAClB,eAAgB,GAAI,YAAW,MAAQ,OAAS,GAChD,cAAgB,GAAG,cACnB,eAAiB,GAAG,MAEpB,eAAgB,GAAI,cAAa,MAAQ,OAAS,GAClD,cAAgB,GAAG,MACnB,eAAiB,cAAc,2BAGjC,cAAc,IAAI,OAEP,aACP,GACA,IAAM,GAAG,WACL,GAAG,WAAY,EAAG,eAAgB,MAAO,OAAQ,EAAG,GAAG,KACvD,cAAe,gBAEZ,aAAa,GAAI,IAAM,GAAG,YAAY,GAAG,WAAY,OAG5D,kCACF,GAA2B,QAC3B,QAES,aAAa,GAAI,IAAM,GAAG,YAAY,GAAG,WAAY,UAC3D,OAAqB,eAAgB,YAC7B,aACP,GACA,IAAM,GAAG,WACL,GAAG,WAAY,EAAG,GAAG,KAAM,OAAO,MAAO,OAAO,OAAQ,EAAG,GAAG,KAC9D,GAAG,cAAgB,OAAqB,OAErC,aACP,GACA,IAAM,GAAG,WACL,GAAG,WAAY,EAAG,GAAG,KAAM,GAAG,KAAM,GAAG,cACvC,SAIC,aAAa,GAAI,IAAM,GAAG,YAAY,GAAG,WAAY,OAG5D,uCACF,IAA6B,KAAc,QAC3C,eAEF,GAAM,SAAS,IAAI,eACR,aACP,IAAK,IAAM,IAAI,WAAW,IAAI,kBAAmB,UAKrD,GAAM,iBAFgB,EACC,EACkC,KAAO,QAEhE,MAAW,cACP,IACA,IAAM,IAAI,WACN,IAAI,kBAAmB,gBAAiB,IAAI,cAIzC,aACP,IAAK,IAAM,IAAI,WAAW,EAAG,EAAG,QAAS,KAAM,IAAI,KAAM,IAAI,MAAO,IAE7D,aACP,IAAK,IAAM,IAAI,WAAW,IAAI,kBAAmB,OAE9C,QAGH,yCACF,GAA2B,QAC3B,MACF,GAAM,KAAM,GAEN,eAAiB,GAAI,cAAa,MAExC,MAAA,KAAI,WAAW,IAAI,kBAAmB,SACtC,IAAI,iBAAiB,IAAI,kBAAmB,EAAG,gBAC/C,IAAI,WAAW,IAAI,kBAAmB,MAE/B,eAGH,yDACF,GAA2B,KAAc,QACzC,eACF,GAAM,CAAC,EAAG,GACG,yCAAyC,KAAM,SAEtD,YAAc,EACd,eAAiB,GAAI,YACd,mCAAmC,KAAO,QAAS,cAEhE,MAAW,cACP,GACA,IAAM,GAAG,WACL,EAAG,EAAG,EAAG,EAAG,cAAc,sBAAuB,GAAG,cACpD,iBAID,GAAI,cAAa,eAAe,QAGnC,wCACF,GAA2B,QAAqB,MAAe,KAC/D,KAAc,aAAsB,aACpC,eACF,GAAM,KAAM,GAEN,eACF,GAAI,cAAsB,sCACtB,aAAc,eAEtB,MAAA,KAAI,WAAW,IAAI,kBAAmB,SACtC,IAAI,iBAAiB,IAAI,kBAAmB,EAAG,gBAC/C,IAAI,WAAW,IAAI,kBAAmB,MAE/B,eAGH,+CACF,GAA2B,aAC3B,cACF,GAAM,YAAa,GAAI,cAAa,aAAe,aAAe,GAClE,MAAW,cACP,GACA,IAAM,GAAG,WACL,EAAG,EAAG,aAAc,aAAc,GAAG,KAAM,GAAG,MAAO,aAEtD,WCxTT,GAAA,cAAA,MAgDE,YAAY,IANZ,KAAA,cAAmC,KACnC,KAAA,QAA6B,KACrB,KAAA,SAAW,GAqOX,KAAA,oBAAsB,GAsPtB,KAAA,YAA0B,GAtdhC,GAAM,WAAY,MAAM,UAAU,iBAC9B,IAAM,KACR,MAAK,GAAK,GACV,gBAAgB,UAAW,KAE3B,KAAK,GAAK,gBAAgB,WAG5B,GAAI,oBAAqB,2BACnB,wBAA0B,8BAChC,GAAI,MAAM,UAAU,mBAAqB,GACvC,GAAM,eAAgB,oBAChB,mBAAqB,yBAI3B,GAFA,KAAK,sBACU,oBAAoB,KAAK,GAAI,eAC7B,aAAa,KAAK,GAAI,oBACnC,KAAK,0BACU,oBAAoB,KAAK,GAAI,4BACnC,MAAM,IAAI,4BACnB,KAAM,IAAI,OACN,sHAKN,GADA,KAAK,0BAA4B,KAAK,GAAG,aAAa,oBACvC,aAAa,KAAK,GAAI,yBACnC,KAAK,8BACU,oBAAoB,KAAK,GAAI,iCACnC,MAAM,IAAI,4BACnB,KAAM,IAAI,OACN,uIAIN,mBAAqB,yBACN,aAAa,KAAK,GAAI,oBACnC,KAAK,0BACD,KAAK,GAAG,aAAa,4BACL,aAAa,KAAK,GAAI,yBAC1C,KAAK,8BACD,KAAK,GAAG,aAAa,6BAEzB,MAAM,IAAI,OAAM,uDAIpB,KAAK,aAA0B,mBAAmB,KAAK,IACvD,KAAK,YAAyB,kBAAkB,KAAK,IACrD,KAAK,YAAyB,kBAAkB,KAAK,IAErD,KAAK,cACQ,iBAAiB,KAAK,GAAI,KAAK,8BAGlC,SACV,MAAO,OAAM,QAAQ,SAGhB,UACL,GAAI,KAAK,SACP,OAEE,KAAK,SAAW,MAClB,QAAQ,KACJ,wKAIF,KAAK,eAAiB,MACxB,QAAQ,KACJ,sMAKN,GAAM,IAAK,KAAK,GACL,aAAa,GAAI,IAAM,GAAG,UAC1B,aAAa,GAAI,IAAM,GAAG,gBAAgB,GAAG,YAAa,OAC1D,aAAa,GAAI,IAAM,GAAG,kBAAkB,KAAK,cACjD,aAAa,GAAI,IAAM,GAAG,WAAW,GAAG,aAAc,OACtD,aACP,GAAI,IAAM,GAAG,WAAW,GAAG,qBAAsB,OAC1C,aAAa,GAAI,IAAM,GAAG,aAAa,KAAK,cACvD,KAAK,SAAW,GAGX,2BAA2B,KAAc,SAE9C,MAAA,MAAK,kBACa,2BACd,KAAK,GAAI,KAAM,QAAS,KAAK,eAG5B,2BAA2B,KAAc,SAE9C,MAAA,MAAK,kBACa,2BACd,KAAK,GAAI,KAAM,QAAS,KAAK,eAG5B,iCAAiC,KAAc,SAEpD,MAAA,MAAK,kBACa,iCACd,KAAK,GAAI,KAAM,QAAS,KAAK,eAG5B,yBACH,QACA,QACF,KAAK,kBACM,yBAAyB,KAAK,GAAI,QAAS,QAGjD,2BACH,QAAuB,MAAe,OAAgB,OACxD,KAAK,kBACM,2BACP,KAAK,GAAI,QAAS,MAAO,OAAQ,MAAM,KAAK,eAG3C,iCAAiC,KAAc,SAEpD,MAAA,MAAK,kBACa,iCACd,KAAK,GAAI,KAAM,QAAS,KAAK,eAG5B,0BAA0B,KAAc,SAE7C,MAAA,MAAK,kBACa,0BACd,KAAK,GAAI,KAAM,QAAS,KAAK,eAG5B,oBAAoB,SACzB,KAAK,kBACD,KAAK,gBAAkB,SACd,mCAAkC,KAAK,GAAI,KAAK,aAC3D,KAAK,cAAgB,MAEZ,aAAa,KAAK,GAAI,IAAM,KAAK,GAAG,cAAc,UAGxD,gDACH,QAAuB,KAAc,SACvC,MAAO,MAAK,qBACR,QACA,IAAiB,gDACb,KAAK,GAAI,KAAM,QAAS,KAAK,gBAGhC,+BACH,QAAqB,MAAe,KAAc,QAClD,aAAsB,cACxB,MAAkB,gCACd,KAAK,GAAI,QAAQ,MAAO,KAAM,QAAS,aAAc,aACrD,KAAK,eAGJ,gCAAgC,QAAqB,MAE1D,MAAkB,iCAAgC,KAAK,GAAI,QAAQ,MAG9D,wBACH,QAAuB,KAAc,SACvC,KAAK,yBAAyB,SAC9B,GAAM,QAAoB,8BACtB,KAAK,GAA8B,KAAM,QAAS,KAAK,eAC3D,MAAA,MAAK,6BACE,OAGF,wBACL,GAAM,cAAe,KAAK,YAAY,KAAK,IAC3C,MAAO,MAAK,UAAU,cAGhB,YAAY,IAClB,GAAI,OACA,cAEJ,GAAI,MAAM,QAAQ,4BAChB,GAAM,KAAM,GAEN,KAAO,IAAI,UAAU,IAAI,2BAA4B,GAC3D,GAAG,QAEH,cAAgB,KACd,GAAM,QAAS,IAAI,eAAe,KAAM,EAAG,GAC3C,MAAO,UAAW,IAAI,kBAClB,SAAW,IAAI,qBAGrB,MAAQ,SAEN,OAAM,UAAU,gDAAkD,EACpE,OAAQ,KAAK,aACb,KAAK,WACL,cAAgB,IAAM,KAAK,iBACvB,MACA,MAAM,UAAU,kDAMpB,cAAgB,IAAM,GAGxB,MAAO,CAAC,MAAO,eAGV,gCACH,QAAuB,aACvB,cACF,MAAO,MAAK,qBACR,QACA,IAAiB,sCACb,KAAK,GAAI,aAAc,eAK1B,cAAc,sBACnB,KAAK,kBACL,GAAM,IAAK,KAAK,GACV,eACS,qBAAqB,GAAI,sBAClC,aAAuC,oBAAmB,IAC1D,QAAmC,cAAc,IACvD,MAAW,cAAa,GAAI,IAAM,GAAG,aAAa,QAAS,eAChD,aAAa,GAAI,IAAM,GAAG,aAAa,QAAS,iBAChD,YAAY,GAAI,SACvB,KAAK,OACI,gBAAgB,GAAI,SAE5B,KAAK,qBACR,MAAK,WAAW,SAChB,KAAK,oBAAiC,kCAClC,GAAI,KAAK,QAAS,KAAK,eAEtB,QAGF,cAAc,SACnB,KAAK,kBACD,UAAY,KAAK,SACnB,MAAK,QAAU,MAEb,SAAW,MACF,aAAa,KAAK,GAAI,IAAM,KAAK,GAAG,cAAc,UAI1D,WAAW,SAChB,KAAK,kBACL,KAAK,QAAU,QACV,KAAK,SAAW,MAAS,KAAK,OACtB,gBAAgB,KAAK,GAAI,KAAK,SAEhC,aAAa,KAAK,GAAI,IAAM,KAAK,GAAG,WAAW,UAGrD,mBACH,QAAuB,YACvB,YAAc,IAEhB,MADA,MAAK,kBACD,YACgB,iCACd,KAAK,GAAI,QAAS,aAEJ,0BACd,KAAK,GAAI,QAAS,aAInB,qBAAqB,QAAuB,WAEjD,MAAA,MAAK,kBACa,aACd,KAAK,GAAI,IAAM,KAAK,GAAG,kBAAkB,QAAS,YAGjD,0BAA0B,QAAuB,aAEtD,MAAA,MAAK,kBACE,KAAK,GAAG,mBAAmB,QAAS,aAGtC,sBACH,mBAAkC,gBAClC,aACF,KAAK,kBACL,KAAK,mBACM,mCACP,KAAK,GAAI,mBAAoB,gBAAiB,aAG7C,uBACH,oBAAmC,KAAc,SACnD,KAAK,6BAA6B,oBAAqB,QAAS,MAG3D,6BACH,0BAAyC,KAAc,SACzD,KAAK,kBACL,GAAM,CAAC,MAAO,QACD,uCAAuC,KAAM,SAC1D,KAAK,6BAA6B,0BAA2B,MAAO,QAG/D,2BACH,SAAkB,QAAiB,YACnC,YACF,KAAK,iCACD,YAAa,SAAU,WAAY,SAGlC,iCACH,SAAkB,QAAiB,YACnC,YACF,KAAM,IAAI,OAAM,qDAGX,gBACD,KAAK,SAAW,MACP,gBAAgB,KAAK,GAAI,KAAK,SAEhC,oBAAoB,KAAK,IAG/B,iBACL,KAAK,kBACL,KAAK,mBACL,GAAM,IAAK,KAAK,GACZ,KAAK,OACP,KAAK,gBAEI,aACP,GAAI,IAAM,GAAG,aAAa,GAAG,UAAW,EAAG,GAAG,eAAgB,IAG7D,iCACL,KAAK,kBACM,aAAa,KAAK,GAAI,IAAM,KAAK,GAAG,UAGzC,yBAEN,MAAI,MAAK,6BAA+B,MACtC,MAAK,4BACU,oBACP,KAAK,GACL,MAAM,UACF,kDAAoD,EACpD,kCACA,6BAIP,KAAK,4BAGN,+BACN,MAAO,MAAK,yBAGN,+BACN,MAAO,MAAK,yBAGd,aACE,GAAI,MAAM,UAAU,kDAAoD,GACtE,GAAM,KAAM,KAAK,GACX,KAAM,KAAK,+BAEX,OAAQ,IAAI,cAClB,MAAA,KAAI,WAAW,KAAI,iBAAkB,QAC9B,OAET,GAAM,KAAM,KAAK,+BACX,MAAQ,IAAI,iBAClB,MAAA,KAAI,cAAc,IAAI,iBAAkB,OACjC,MAGT,WACE,GAAI,MAAM,UAAU,kDAAoD,GACtE,GAAM,KAAM,KAAK,GACX,KAAM,KAAK,+BACjB,IAAI,SAAS,KAAI,kBACjB,OAEF,GAAM,KAAM,KAAK,+BACjB,IAAI,YAAY,IAAI,uBAGT,wBAAuB,OAClC,MAAA,MAAM,cAAK,YACP,IAAM,KAAK,UAGP,KAAK,iBACD,MACA,MAAM,UACF,kDACT,KAAK,aACR,MAAO,MAAM,UAAU,iDAGrB,aAAa,MAAmB,mBACtC,GAAI,oBAAsB,EACxB,MAAO,MAGT,GAAI,oBAAsB,GACxB,GAAM,KAAM,KAAK,GAIjB,MAFyB,KAAI,kBAAkB,MAAO,IAAI,cAEhC,SAE1B,GAAM,KAAM,KAAK,+BAKjB,MAFI,KAAI,kBAAkB,MAAO,IAAI,kBAEX,KAItB,iBAAiB,MAAmB,mBAE1C,GAAI,oBAAsB,EACxB,MAAO,GAGT,GAAI,oBAAsB,GACxB,GAAM,KAAM,KAAK,GACX,IAAM,KAAK,+BAEX,UACF,IAAI,kBAAkB,MAAO,IAAI,wBACrC,MAAI,MAAK,UAAY,MACnB,MAAK,SAAW,KAAK,GAAG,aAAa,IAAI,mBAGpC,WAAa,CAAC,KAAK,cAE1B,GAAM,KAAM,KAAK,+BAEX,UACF,IAAI,kBAAkB,MAAO,IAAI,4BACrC,MAAI,MAAK,UAAY,MACnB,MAAK,SAAW,KAAK,GAAG,aAAa,IAAI,mBAGpC,WAAa,CAAC,KAAK,UAI9B,UAAU,cACR,MAAO,IAAI,SAAc,UACvB,KAAK,cAAc,IAAM,aAAa,gBAAiB,IAAM,aAMjE,YAEE,GAAM,OAAQ,qBAAqB,KAAK,YAAY,IAAI,GAAK,EAAE,WAC/D,OAAS,GAAI,EAAG,GAAK,MAAO,EAAE,GAC5B,GAAM,CAAC,WAAa,KAAK,YAAY,GACrC,YAEF,KAAK,YAAc,KAAK,YAAY,MAAM,MAAQ,GAG5C,cAAc,SAAyB,WAC7C,KAAK,YAAY,KAAK,CAAC,SAAU,YAC7B,CAAA,MAAK,YAAY,OAAS,IAK9B,aAAK,YAAY,IACf,MAAK,YAEE,KAAK,YAAY,SAAW,IAI/B,yBAAyB,SAC/B,KAAK,kBACM,8BACP,KAAK,GAAI,QAAS,KAAK,aACvB,KAAK,OACI,oBAAoB,KAAK,IAIhC,6BACF,KAAK,eAAiB,KACb,+BACP,KAAK,GAAI,KAAK,cAAe,KAAK,aAClC,KAAK,OACI,oBAAoB,KAAK,KAG3B,kCAAkC,KAAK,GAAI,KAAK,aAIvD,qBACJ,QACA,mBACF,KAAK,yBAAyB,SAC9B,GAAM,QAAS,oBACf,MAAA,MAAK,6BAEE,OAGD,6BACJ,+BAA8C,MAC9C,QACF,KAAK,kBACL,GAAM,IAAK,KAAK,GACL,8BACP,GAAI,+BAAgC,KAAK,aACzC,KAAK,OACI,oBAAoB,IAEjC,KAAK,cAAgB,+BACV,aAAa,GAAI,IAAM,GAAG,SAAS,EAAG,EAAG,MAAO,SAChD,aAAa,GAAI,IAAM,GAAG,QAAQ,EAAG,EAAG,MAAO,SAGpD,iCACJ,EAAW,EAAW,MAAe,QACvC,KAAK,kBACM,aACP,KAAK,GAAI,IAAM,KAAK,GAAG,QAAQ,EAAG,EAAG,MAAO,SAG1C,kBACN,GAAI,KAAK,SACP,KAAM,IAAI,OAAM,2CAIZ,mBACN,GAAI,KAAK,SAAW,KAClB,KAAM,IAAI,OAAM,sCAgBhB,8BAA+B,KACnC,GAAI,GAAI,EACR,KAAO,EAAI,IAAI,QACE,IAAI,KADE,EAAE,EAEvB,CAIF,MAAO,GAAI,ECpmBb,GAAM,CAAC,iBAAA,mBAAoB,qBAiBrB,oBACF,WAAyB,YAAwB,SACjD,oBACF,GAAM,gBAA2B,GACjC,WAAW,QAAQ,IACjB,GAAM,MAAO,aAAK,cAAc,EAAE,UAAU,cAGxC,EAAE,UAAU,UACd,eAAe,KACX,iBAAiB,EAAE,OAAO,KAAO,EAAI,IAAI,QAAU,OAEvD,gBAAe,KAAK,qBAAqB,EAAE,SAC3C,eAAe,KAAK,qBAAqB,EAAE,YAG/C,GAAM,oBAAqB,eAAe,KAAK;GAEzC,qBACF,WACK,IAAI,GAAK,wBAAwB,EAAG,YAAa,qBACjD,KAAK;GACR,YAAc,YAAY,SAC1B,KAAO,qBACP,0BAA4B,6BAA6B,MAC3D,sBACA,6BACA,aAAe,gBAAgB,MAEnC,MAAI,aAAY,SACd,uBACI,+BAA+B,YAAY,aAAc,aAC7D,6BAA+B,8BAA8B,OAE7D,uBACI,yBAAyB,YAAY,aAAc,aACvD,6BAA+B,2BAA2B,OAGxD,oBACF,eAAgB,sBAGH,CACb,aAAc,0BAA2B,6BACzC,mBAAoB,sBAAuB,qBAAsB,UACjE,KAAK;GAIT,8BAA8B,QAC5B,GAAM,OAAQ,OAAO,UAAU,aAC/B,OAAQ,MAAM,YACP,GACH,MAAO,kBAAiB,YACrB,GACH,MAAO,cAAa,YACjB,GACH,MAAO,cAAa,YACjB,GACH,MAAO,cAAa,YACjB,GACH,MAAO,cAAa,YACjB,GACH,MAAO,cAAa,YACjB,GACH,MAAO,cAAa,gBAEpB,KAAM,IAAI,OACN,GAAG,MAAM,iDAKnB,oCAAoC,QAElC,OADc,OAAO,UAAU,aACjB,YACP,GACH,MAAO,wBAAuB,YAC3B,GACH,MAAO,oBAAmB,YACvB,GACH,MAAO,oBAAmB,YACvB,GACH,MAAO,oBAAmB,gBAE1B,MAAO,oBAAmB,SAIhC,iCACI,OAAmB,aACnB,mBAAqB,IACvB,GAAI,KAAM,GACN,mBACF,KAAO,2BAA2B,QAElC,KAAO,qBAAqB,QAG9B,GAAM,SAAU,OAAO,UAAU,aAC3B,SAAW,aAAa,aAC9B,MAAI,SAAQ,QAAU,SAAS,QACzB,oBACF,KAAO,+BAA+B,OAAQ,cAE9C,KAAO,yBAAyB,OAAQ,eAGrC,IAGT,wCACI,SAAoB,aACtB,OAAQ,SAAS,YACV,GACH,MAAO,6BACJ,GACH,MAAO,yBAAwB,SAAsB,iBAClD,GACH,MAAO,yBAAwB,SAA8B,iBAC1D,GACH,MAAO,yBACH,SAAsC,qBAE1C,MAAO,yBAAwB,SAAU,cAI/C,kCACI,SAAoB,aACtB,OAAQ,SAAS,YACV,GACH,MAAO,6BACJ,GACH,MAAO,mBAAkB,SAAsB,iBAC5C,GACH,MAAO,mBAAkB,SAA8B,iBACpD,GACH,MAAO,mBACH,SAAsC,iBACvC,GACH,MAAO,mBACH,SAA8C,iBAC/C,GACH,MAAO,mBACH,SAAsD,iBACvD,GACH,MAAO,mBACH,SACA,qBAEJ,KAAM,IAAI,OACN,GAAG,SAAS,kDAItB,sCAAsC,MACpC,MAAO;;eAEM,KAAK;;IAKpB,oCAAoC,MAClC,MAAO;;QAED,KAAK;;IAKb,uCAAuC,MACrC,MAAO;;QAED,KAAK;;IAKb,yBAAyB,MA6DvB,MA5DsB,GAAG,KAAK;;;;MAI1B,KAAK;MACL,KAAK;;;;;;;;;;;;;;;;;;;;;;;MAuBL,KAAK;MACL,KAAK;MACL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;MAyBL;MACA;MACA;IAMN,GAAM,mBAAoB;;;;;;;;;;;;EAcpB,kBAAoB;;;;;;;;EAUpB,kBAAoB;;;;;;;;;EAWpB,qBAAuB;;;;;;;;;;;EAa7B,iCACE,MAAO;;;;IAOT,iCACI,MAAiB,UACnB,GAAM,gBACF,CAAC,KAAK,KAAK,SAAS,GAAK,GAAI,KAAK,KAAK,SAAS,GAAK,IACzD,MAAI,gBAAe,KAAO,EACjB;;sCAE2B,eAAe;;MAK/C,eAAe,KAAO,EACjB;;sCAE2B,eAAe;;MAK5C;;;oCAG2B,eAAe,OAAO,eAAe;iCACxC,eAAe;;IAKhD,2BACI,MAAiB,UACnB,MAAI,UAAS,KAAO,EACX;;kCAEuB,SAAS;;MAIrC,SAAS,KAAO,EACX;;kCAEuB,SAAS;;MAIlC;;;oCAG2B,SAAS,OAAO,SAAS;4BACjC,SAAS;;IAKrC,iCACI,MAAiC,UACnC,GAAM,gBACF,CAAC,KAAK,KAAK,SAAS,GAAK,GAAI,KAAK,KAAK,SAAS,GAAK,IACnD,mBAAqB,KAAK,KAAK,MAAM,GAAK,GAC1C,cAAgB,mBAAqB,KAAK,KAAK,MAAM,GAAK,GAEhE,MAAO;;;oCAG2B,eAAe,OAAO,eAAe;iCACxC,eAAe;;wBAExB;qBACH;;6BAEQ;4BACD;;;;IAO5B,2BACI,MAAiC,UACnC,GAAM,wBACU,mCAAmC,CAAC,IAAK,IAAK,KAAM,OAEpE,MAAO;;;oCAG2B,SAAS,OAAO,SAAS;iCAC5B,SAAS;QAClC;;;IAMR,iCACI,MAAiB,UACnB,GAAM,gBACF,CAAC,KAAK,KAAK,SAAS,GAAK,GAAI,KAAK,KAAK,SAAS,GAAK,IAEnD,mBAAqB,KAAK,KAAK,MAAM,MAAM,OAAS,GAAK,GACzD,cACF,mBAAqB,KAAK,KAAK,MAAM,MAAM,OAAS,GAAK,GACzD,eAAiB,cACjB,QAAU,GACV,QAAS,UAEb,OAAS,GAAI,EAAG,EAAI,MAAM,OAAS,EAAG,IACpC,gBAAkB,MAAM,MAAM,OAAS,EAAI,GAC3C,QAAU;aACD,eAAe;kBACV,OAAO;MACjB,QACJ,QAAS,IAAI,MAAQ,QAGvB,MAAO;UACC,MAAM;;oCAEoB,eAAe,OAAO,eAAe;iCACxC,eAAe;;QAExC;;wBAEgB;qBACH;;6BAEQ;4BACD;;mBAET,MAAM,UAAU;;IAKnC,2BACI,MACA,UACF,GAAM,wBAAqC,mCACvC,CAAC,IAAK,IAAK,IAAK,MAAO,OAE3B,MAAO;;;eAGM,SAAS,OAAO,SAAS;iCACP,SAAS;QAClC;;;IAMR,2BACI,MACA,UACF,GAAM,wBAAqC,mCACvC,CAAC,IAAK,IAAK,IAAK,KAAM,MAAO,OAEjC,MAAO;;kDAEyC,SAAS;+BAC5B,SAAS;;iCAEP,SAAS;;QAElC;;;;;IAQR,2BACI,MACA,UACF,GAAM,wBAAqC,mCACvC,CAAC,IAAK,IAAK,IAAK,KAAM,KAAM,MAAO,OAEvC,MAAO;;;eAGM,SAAS,OAAO,SAAS;iCACP,SAAS;;QAElC;;;;;IAQR,iCACI,MAAyB,UAC3B,GAAM,gBACF,CAAC,KAAK,KAAK,SAAS,GAAK,GAAI,KAAK,KAAK,SAAS,GAAK,IACzD,GAAI,aAAK,YAAY,MAAO,UAC1B,MAAO;;8CAEmC,eAAe,OACrD,eAAe;;MAMrB,GAAM,oBAAqB,KAAK,KAAK,MAAM,GAAK,GAWhD,MAAO;;;oCAG2B,eAAe,OAAO,eAAe;;iCAExC,eAAe;6BACnB;4BACD;;;;IAO5B,2BACI,MAAyB,UAC3B,MAAI,cAAK,YAAY,MAAO,UACnB;;0CAE+B,SAAS,OAAO,SAAS;;MAI7D,MAAM,KAAO,EACR;;;sCAG2B,SAAS,OAAO,SAAS;mCAC5B,SAAS;;;MAKtC,MAAM,KAAO,EACR;;;sCAG2B,SAAS,OAAO,SAAS;mCAC5B,SAAS;;;MAKnC;;;oCAG2B,SAAS,OAAO,SAAS;iCAC5B,SAAS;wBAClB,MAAM;4BACF,MAAM;;;IAMlC,kCAAkC,SAChC,MAAO,SAAS,UAGlB,gCAAgC,WAC9B,GAAM,SAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACnE,KAAO,qBACb,MAAO;WACE;eACI,KAAK,aAAa;;IAKjC,0BAA0B,WACxB,GAAM,SAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACzE,GAAI,UAAU,UAAU,UACtB,MAAO,SAAS,sBAAsB,YAExC,GAAM,CAAC,QAAS,SAAW,UAAU,UAAU,SAC/C,GAAI,UAAY,GAAK,UAAY,EAC/B,MAAO;cACG;+BACiB;;MAK7B,GAAM,CAAC,MAAO,OAAS,UAAU,UAAU,SACrC,OAAS,yBAAyB,SACxC,MAAO;YACG;6BACiB,UAAU,UAAU;6BACpB;;IAK7B,4BAA4B,WAC1B,GAAM,SAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACnE,SAAW,UAAU,UAAU,SAC/B,eACF,CAAC,KAAK,KAAK,SAAS,GAAK,GAAI,KAAK,KAAK,SAAS,GAAK,IACnD,KAAO,qBAEb,MAAO;WACE;;UAED,eAAe,OAAO,eAAe;eAChC,KAAK,aAAa;;IAKjC,sBAAsB,WACpB,GAAM,SAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GAEzE,GAAI,UAAU,UAAU,UAEtB,MAAO;cACG;UACJ,kBAAkB;;MAK1B,GAAM,UAAW,UAAU,UAAU,SAC/B,MAAQ,SAAS,GACjB,MAAQ,SAAS,GAEvB,GAAI,QAAU,GAAK,QAAU,EAC3B,MAAO;cACG;+BACiB;;MAI7B,GAAM,QAAS,yBAAyB,SACxC,MAAI,SAAU,EACL;cACG;6CAC+B,oBAAoB;+BAClC;;MAIzB,QAAU,EACL;cACG;wCAC0B,oBAAoB;+BAC7B;;MAItB;YACG;6BACiB,UAAU,kBAAkB;6BAC5B;;IAK7B,4BAA4B,WAC1B,GAAM,OAAQ,UAAU,UAAU,aAC5B,QAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACnE,SAAW,UAAU,UAAU,SAE/B,QAAU,SAAS,GACnB,QAAU,SAAS,GACnB,KAAO,qBACb,GAAI,UAAY,MAAQ,aAAK,YAAY,MAAO,UAC9C,MAAO;aACE;qDACwC,cAAc;;iBAElD,KAAK,aAAa;;MAKjC,GAAM,gBACF,CAAC,KAAK,KAAK,SAAS,GAAK,GAAI,KAAK,KAAK,SAAS,GAAK,IACnD,aAAe,KAAK,KAAK,MAAM,GAAK,GAE1C,MAAO;WACE;iCACsB,iBAAiB,eAAe,OAC3D,eAAe;eACN,KAAK,aAAa;;IAKjC,sBAAsB,WACpB,GAAM,OAAQ,UAAU,UAAU,aAC5B,QAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACnE,SAAW,UAAU,UAAU,SAErC,GAAI,UAAY,MAAQ,aAAK,YAAY,MAAO,WAC9C,GAAM,UAAU,SAAS,GACnB,SAAU,SAAS,GACzB,MAAO;YACC;mDACuC,eAAc;6BACpC;;IAK3B,GAAM,CAAC,SAAU,UAAY,aAAK,aAAa,OACzC,cAAgB,SACtB,GAAI,cAAc,OAAS,MAAM,QAC/B,GAAM,cAAe,iBAAiB,UAAW,eAC3C,OAAS,CAAC,MAAO,OACvB,MAAO;QACH,qBAAqB;cACf;iBACG,YAAY,kBAAkB,OAAQ;;MAKrD,GAAI,UAAU,UAAU,UAEtB,MAAO;cACG;qDACuC,MAAM;UACjD,kBAAkB;;MAK1B,GAAM,SAAU,SAAS,GACnB,QAAU,SAAS,GACnB,OAAS,yBAAyB,SACxC,MAAI,WAAY,EAEP;YACC;yCAC6B,iBAAiB,MAAM;4CACpB;6BACf;;IAIvB,UAAY,EAEP;YACC;yCAC6B,iBAAiB,MAAM;uCACzB;6BACV;;IAKpB;UACC;;wBAEc,MAAM,cAAc;2BACjB,YAAY;2BACZ;;EAK3B,4BAA4B,WAC1B,GAAM,OAAQ,UAAU,UAAU,aAC5B,QAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACnE,SAAW,UAAU,UAAU,SAC/B,eACF,CAAC,KAAK,KAAK,SAAS,GAAK,GAAI,KAAK,KAAK,SAAS,GAAK,IAEzD,GAAI,MAAM,KAAO,GACf,GAAM,eAAgB,MAAM,MAAM,GAC5B,SAAW,CAAC,EAAG,GACf,aAAe,iBAAiB,UAAW,eAC3C,OAAS,CAAC,IAAK,MAAO,OAC5B,MAAO;UACD,2BAA2B;eACtB;mBACI,YAAY,kBAAkB,OAAQ;;QAKvD,GAAM,SAAU,eAAe,GACzB,QAAU,eAAe,GAEzB,aAAe,KAAK,KAAK,MAAM,GAAK,GACpC,cAAgB,aAAe,KAAK,KAAK,MAAM,GAAK,GACpD,KAAO,qBAEb,MAAO;WACE;;UAED,YAAY,YAAY,kBAAkB;eACrC,KAAK,aAAa;;IAKjC,sBAAsB,WACpB,GAAM,OAAQ,UAAU,UAAU,aAC5B,QAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACnE,QAAU,MAAM,GAAK,MAAM,GAC3B,QAAU,MAAM,GAEhB,CAAC,SAAU,UAAY,aAAK,aAAa,OACzC,cAAgB,SACtB,GAAI,cAAc,OAAS,MAAM,QAC/B,GAAM,cAAe,iBAAiB,UAAW,eAC3C,OAAS,CAAC,MAAO,MAAO,SAC9B,MAAO;UACD,qBAAqB;gBACf;mBACG,YAAY,kBAAkB,OAAQ;;QAKvD,GAAI,UAAU,UAAU,UAEtB,MAAO;cACG;;iCAEmB,YAAY;UACnC,kBAAkB;;MAK1B,GAAM,UAAW,UAAU,UAAU,SAC/B,QAAU,SAAS,GACnB,QAAU,SAAS,GACnB,WAAa,UAAU,UAAU,WACvC,GAAI,UAAY,SAAW,YAAc,KAEvC,MAAO;gBACK;;oDAEoC;;4BAExB,cAAc;iCACT;;QAK/B,GAAI,UAAY,SAAW,YAAc,KAEvC,MAAO;YACC;8CACkC,MAAM;;qDAEC,cAAc;6BACtC;;IAK3B,GAAM,QAAS,yBAAyB,SACxC,MAAO;cACK;;4BAEc,mBAAmB,qBAAqB;+BACrC,YAAY;+BACZ;;IAK/B,4BAA4B,WAC1B,GAAM,OAAQ,UAAU,UAAU,aAC5B,KAAO,MAAM,OACb,QAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACnE,SAAW,UAAU,UAAU,SAC/B,eACF,CAAC,KAAK,KAAK,SAAS,GAAK,GAAI,KAAK,KAAK,SAAS,GAAK,IACnD,QAAU,eAAe,GACzB,QAAU,eAAe,GAEzB,aAAe,KAAK,KAAK,MAAM,KAAO,GAAK,GAC7C,cAAgB,aAAe,KAAK,KAAK,MAAM,KAAO,GAAK,GAC3D,OAAS,0BACT,MAAQ,OAAO,+BAA+B,2BAClD,OAAS,GAAI,EAAG,EAAI,KAAO,EAAG,IAC5B,OAAS,QAAQ,MAAQ,OACzB,eAAiB,MAAM,KAAO,EAAI,GAClC,MAAQ,IAAI,OAAO,mBAAqB,MAE1C,GAAM,MAAO,qBACb,MAAO;WACE,YAAY;oBACH;2BACO;kCACO;qDACmB,YAAY;eAClD,KAAK,aAAa;;IAKjC,sBAAsB,WACpB,GAAM,OAAQ,UAAU,UAAU,aAC5B,QAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACnE,QAAU,MAAM,GAChB,QAAU,MAAM,GAAK,QACrB,QAAU,MAAM,GAAK,QAErB,CAAC,SAAU,UAAY,aAAK,aAAa,OAC/C,GAAI,SAAS,OAAS,MAAM,QAC1B,GAAM,cAAe,iBAAiB,UAAW,UAC3C,OAAS,CAAC,MAAO,MAAO,QAAS,UACvC,MAAO;QACH,qBAAqB;cACf;iBACG,YAAY,kBAAkB,OAAQ;;MAKrD,GAAI,UAAU,UAAU,UAEtB,MAAO;cACG;;iCAEmB,YAAY,YAAY;UAC/C,kBAAkB;;MAK1B,GAAM,YAAa,UAAU,UAAU,WACjC,SAAW,UAAU,UAAU,SAC/B,QAAU,SAAS,GACnB,QAAU,SAAS,GAEzB,GAAI,UAAY,SAAW,YAAc,KAEvC,MAAO;cACG;;;;uBAIS,YAAY;;0BAET,cAAc;+BACT;;MAI7B,GAAI,UAAY,SAAW,YAAc,KAEvC,MAAO;cACG;;gCAEkB,MAAM,GAAK,MAAM,OAAO,MAAM;;;yBAGrC,cAAc;+BACR;;MAK7B,GAAM,QAAS,yBAAyB,SACxC,MAAO;YACG;;0BAEc,mBAAmB;oBACzB;6BACS,YAAY,oBAAoB;6BAChC;;IAK7B,sBAAsB,WACpB,GAAM,OAAQ,UAAU,UAAU,aAC5B,QAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACnE,QAAU,MAAM,GAChB,QAAU,MAAM,GAAK,QACrB,QAAU,MAAM,GAAK,QACrB,QAAU,MAAM,GAAK,QAErB,CAAC,SAAU,UAAY,aAAK,aAAa,OAC/C,GAAI,SAAS,OAAS,MAAM,QAC1B,GAAM,cAAe,iBAAiB,UAAW,UAC3C,OAAS,CAAC,MAAO,MAAO,QAAS,SAAU,UACjD,MAAO;QACH,qBAAqB;cACf;iBACG,YAAY,kBAAkB,OAAQ;;MAKrD,GAAI,UAAU,UAAU,UAEtB,MAAO;cACG;;;iBAGG,YAAY,YAAY,YAAY;;UAE3C,kBAAkB;;MAK1B,GAAM,YAAa,UAAU,UAAU,WACjC,SAAW,UAAU,UAAU,SAC/B,QAAU,SAAS,GACnB,QAAU,SAAS,GAEzB,GAAI,UAAY,SAAW,YAAc,KAEvC,MAAO;cACG;;;gCAGkB,YAAY,YAAY;;0BAE9B,cAAc;+BACT;;MAK7B,GAAI,UAAY,SAAW,YAAc,KAEvC,MAAO;cACG;;;iBAGG,MAAM,GAAK,MAAM,GAAK,MAAM;iBAC5B,MAAM,GAAK,MAAM,OAAO,MAAM;;;yBAGtB,cAAc;+BACR;;MAK7B,GAAM,QAAS,yBAAyB,SACxC,MAAO;YACG;;0BAEc,mBAAmB,qBAAqB;qBAC7C,sBAAsB;6BACd,YAAY;6BACZ;;IAK7B,sBAAsB,WACpB,GAAM,OAAQ,UAAU,UAAU,aAC5B,QAAU,UAAU,KACpB,SAAW,MAAQ,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GAEnE,CAAC,SAAU,UAAY,aAAK,aAAa,OAC/C,GAAI,SAAS,OAAS,MAAM,QAC1B,GAAM,cAAe,iBAAiB,UAAW,UAC3C,OAAS,CAAC,MAAO,MAAO,QAAS,SAAU,SAAU,UAC3D,MAAO;QACH,qBAAqB;cACf;;iBAEG,YAAY,kBAAkB,OAAQ;;MAKrD,GAAM,SAAU,MAAM,GAChB,QAAU,MAAM,GAAK,QACrB,QAAU,MAAM,GAAK,QACrB,QAAU,MAAM,GAAK,QACrB,QAAU,MAAM,GAAK,QAE3B,GAAI,UAAU,UAAU,UAEtB,MAAO;cACG;;;;iBAIG,YAAY,YAAY,YAAY;;;mBAGlC;UACT,kBAAkB;;MAK1B,GAAM,YAAa,UAAU,UAAU,WACjC,SAAW,UAAU,UAAU,SAC/B,QAAU,SAAS,GACnB,QAAU,SAAS,GACzB,GAAI,UAAY,SAAW,YAAc,KAEvC,MAAO;cACG;;;;iBAIG,YAAY,YAAY,YAAY;;;0BAG3B,cAAc;+BACT;;MAI7B,GAAI,UAAY,SAAW,YAAc,KAEvC,MAAO;cACG;;;iBAGG,MAAM,GAAK,MAAM,GAAK,MAAM,GAAK,MAAM;iBACvC,MAAM,GAAK,MAAM,GAAK,MAAM;iBAC5B,MAAM,GAAK,MAAM;iBACjB,MAAM;;;yBAGE,cAAc;+BACR;;MAI7B,GAAM,QAAS,yBAAyB,SACxC,MAAO;YACG;;;0BAGc,mBAAmB,qBAAqB;qBAC7C,sBAAsB,sBAAsB;6BACpC,YAAY;6BACZ;;IAK7B,2BAA2B,WACzB,GAAM,SAAU,UAAU,KACpB,OAAS,aAAK,cAAc,UAAU,UAAU,cAEtD,MAAI,QAAS,EACJ,UAAU,WAEZ;0BACiB;;iBAET;;;IAMjB,wCACI,UAAsB,cACxB,GAAM,SAAU,UAAU,KACpB,eAAiB,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACjE,SAAW,MAAQ,eAAiB,cACpC,OAAS,UAAU,UAAU,aAAa,OAC1C,QAAU,aAAa,aAAa,OAEpC,cAAgB,kBAClB,UAAU,UAAU,aAAc,aAAa,cAE7C,KAAO,kBAAkB,SACzB,SAAW,QAAU,OACvB,cACE,OAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAErC,SAAW,EACb,cAAgB,GACP,QAAU,GAAK,cAAc,QAAU,EAChD,cAAgB,cAEhB,cACI,cAAc,IAAI,GAAK,UAAU,OAAO,EAAI,kBACvC,KAAK;GAEhB,GAAI,uBAAwB,GACxB,QAAU,GAAK,OAAS,EAC1B,sBAAwB,SAExB,sBAAwB,UAAU,UAAU,aACf,IAAI,CAAC,EAAG,IAAM,UAAU,OAAO,EAAI,aACnC,KAAK,MAGpC,GAAI,QAAS,sBAEP,cADS,aAAK,cAAc,UAAU,UAAU,gBACrB,EAE3B,eADU,aAAK,cAAc,aAAa,gBACb,EAEnC,GAAI,SAAW,GAAK,CAAC,eAAiB,CAAC,eACrC,OAAS;;cAGA,eAAiB,CAAC,eACvB,UAAY,EACd,OAAS;;QAIT,OAAS;;gBAIF,cAAc,QACvB,GAAM,MAAO,OAAS,EAChB,KAAO,OAAS,EAElB,cAAc,QAAQ,MAAQ,IAAM,cAAc,QAAQ,MAAQ,GACpE,OAAS,8BACA,cAAc,QAAQ,MAAQ,GACvC,OAAS,2EAEA,cAAc,QAAQ,MAAQ,IACvC,QAAS,gDAIb,MAAO;WACE;QACH;QACA;8BACsB,kBAAkB;QACxC;;IAKR,kCACI,UAAsB,cACxB,GAAM,SAAU,UAAU,KACpB,eAAiB,QAAQ,OAAO,GAAG,cAAgB,QAAQ,MAAM,GACjE,SAAW,MAAQ,eAAiB,cACpC,YAAc,aAAa,SAC3B,WAAa,UAAU,UAAU,SACjC,OAAS,UAAU,UAAU,aAAa,OAC1C,QAAU,aAAa,aAAa,OAE1C,GAAI,CAAC,UAAU,UAAU,WAAa,SAAW,SAC7C,UAAU,UAAU,YAAc,MAClC,aAAK,YAAY,WAAY,aAC/B,MAAO;cACG;+BACiB;;MAK7B,GAAM,MAAO,kBAAkB,SACzB,cAAgB,kBAClB,UAAU,UAAU,aAAc,aAAa,cAC7C,SAAW,QAAU,OACvB,cACE,OAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAErC,SAAW,EACb,cAAgB,GACP,QAAU,GAAK,cAAc,QAAU,EAChD,cAAgB,cAEhB,cACI,cAAc,IAAI,GAAK,UAAU,OAAO,EAAI,kBACvC,KAAK;GAEhB,GAAI,uBAAwB,GAC5B,MAAI,SAAU,GAAK,OAAS,EAC1B,sBAAwB,SAExB,sBAAwB,UAAU,UAAU,aACf,IAAI,CAAC,EAAG,IAAM,UAAU,OAAO,EAAI,aACnC,KAAK,MAG7B;YACG;QACJ;QACA;kBACU,kBAAkB;;IAK9B,2BAA4B,MAChC,GAAI,MAAQ,EACV,MAAO,MACF,GAAI,OAAS,EAClB,MAAO,QACF,GAAI,OAAS,EAClB,MAAO,QACF,GAAI,OAAS,EAClB,MAAO,QACF,GAAI,OAAS,EAClB,MAAO,QACF,GAAI,OAAS,EAClB,MAAO,QAEP,KAAM,OAAM,gBAAgB,6BAKhC,0BACI,OAAmB,eAErB,GAAM,cAA0B,KAAK,MAAM,KAAK,UAAU,SAC1D,MAAA,cAAa,UAAU,aAAe,cAC/B,aAGT,2BAA2B,OAAkB,UAC3C,MAAO,UAAS,IAAI,GAAK,OAAO,IAAI,KAAK,MCvyCrC,wBACF,MAAqB,QAAuB,OAC5C,QACF,GAAM,UAAW,QAAQ,SACnB,WAA0B,OAAO,IAAI,CAAC,OAAO,KACjD,GAAM,WAAuB,CAC3B,aAAc,OAAM,MACpB,SAAU,OAAM,UAAY,KAAO,OAAM,QAAQ,SACjD,UAAW,OAAM,UACjB,SAAU,OAAM,UAAY,GAAQ,OAAM,QAAQ,SAClD,WAAY,MAEd,MAAI,QAAM,SAAW,MAAQ,OAAM,QAAQ,OAAS,MAChD,OAAM,QAAQ,MAAM,WAAa,GACnC,WAAU,WAAa,OAAM,QAAQ,MAAM,YAEtC,CAAC,KAAM,QAAQ,cAAc,GAAI,aAEpC,aAAe,WAAW,IAAI,GAAK,EAAE,WACrC,aAA0B,CAC9B,aAAc,OAAO,MACrB,SAAU,OAAO,QAAQ,SACzB,UAAW,GACX,SAAU,OAAO,QAAQ,SACzB,WAAY,MAER,OAAyB,WAC3B,WAAY,aAAc,SAAU,QAAQ,cAE1C,aAAe,MAAM,cAAc,QAGrC,OAA+B,KAC7B,OAAS,MAAM,mBAAmB,aAAc,MAAO,IACzD,MAAM,UAAU,mBAAqB,GACvC,QAAS,MAAM,mBAAmB,aAAc,WAAY,KAI9D,GAAM,kBAA2D,GACjE,OAAS,GAAI,EAAG,EAAI,QAAQ,cAAc,OAAQ,KAChD,GAAM,SAAU,QAAQ,cAAc,GAChC,YAAc,GACpB,iBAAiB,SACb,MAAM,mBAAmB,aAAc,QAAS,aACpD,iBAAiB,SAAS,WACtB,MAAM,mBAAmB,aAAc,SAAS,UAAW,aAGjE,MAAO,CACL,QACA,OACA,aACA,iBACA,aACA,aACA,OACA,QAIJ,kCACI,WAAyB,QAC3B,GAAI,WAAW,SAAW,OAAO,OAC/B,KAAM,OACF,4BAA4B,WAAW,wCAClB,OAAO,iBAGlC,WAAW,QAAQ,CAAC,EAAG,KACrB,GAAM,QAAS,EAAE,aACX,OAAQ,OAAO,GACf,OAAS,OAAM,MAErB,GAAI,CAAC,aAAK,YAAY,OAAQ,QAC5B,KAAM,OACF,2EAC4B,cAAc,qBAGhD,GAAI,EAAE,WAAa,OAAM,UACvB,OAGF,GAAM,WAAY,EAAE,SACd,UAAY,OAAM,UAAY,KAAO,OAAM,QAAQ,SACzD,GAAI,CAAC,aAAK,YAAY,UAAW,WAC/B,KAAM,OACF,kFACwB,iBAAiB,0BAK7C,oBACF,MAAqB,OAAqB,OAC1C,OACA,aAEF,yBAAyB,OAAO,aAAc,QAC9C,yBAAyB,CAAC,OAAO,cAAe,CAAC,SAEjD,GAAM,QAAS,OAAO,QAAQ,QACxB,YAAc,OAAO,QAAQ,SAC/B,OAAO,QAAQ,SACjB,MAAM,6BAA6B,OAAQ,YAAY,GAAI,YAAY,IAEvE,MAAM,uBAAuB,OAAQ,YAAY,GAAI,YAAY,IAEnE,MAAM,WAAW,OAAO,cAGpB,MAAM,UAAU,mBAAqB,GACnC,OAAO,SAAW,MACpB,MAAM,GAAG,UAAU,OAAO,OAAQ,UAGlC,OAAO,SAAW,MACpB,MAAM,GAAG,UAAU,OAAO,OAAQ,KAIpC,OAAO,QAAQ,CAAC,OAAO,KACrB,GAAM,SAAU,OAAO,QAAQ,cAAc,GACvC,OAAS,OAAO,iBAAiB,SACjC,aAAe,OAAO,iBAAiB,SAAS,WAEtD,GAAI,QAAU,MAKd,GAAI,OAAM,WAER,GAAI,aAAK,cAAc,OAAM,OAAS,EACpC,MAAM,GAAG,UAAU,OAAQ,OAAM,cAAc,SAE/C,GAAI,MAAO,OAAM,cACX,eAAgB,eACpB,MAAO,GAAI,cAAa,OAE1B,MAAM,GAAG,WAAW,OAAQ,MAE9B,OAIE,OAAM,QAAQ,OAAS,MAAQ,cAAgB,MACjD,MAAM,GAAG,UAAU,aAAc,OAAM,QAAQ,MAAM,YAGvD,MAAM,sBAAsB,OAAM,QAAQ,QAAS,OAAQ,MAGzD,aAAe,MACjB,YAAY,MAAO,OAAO,cAE5B,MAAM,iBAGF,uBACF,QAAuB,OAAsB,QAC/C,GAAI,WAAY,GAChB,OAAO,OAAO,QAAQ,QAAQ,IAC5B,GAAM,WAAY,EAAE,SAAW,MAAQ,EAAE,QAAQ,OAAS,MACtD,EAAE,QAAQ,MAAM,WAAa,EAC3B,SAAW,EAAE,UAAY,UAAY,EAAE,QAAQ,SACrD,WAAa,GAAG,EAAE,SAAS,YAAY,cAEzC,GAAM,aAAc,QAAQ,SACxB,IAAM,QAAQ,YAAY,KAE9B,MAAA,MAAO,IAAM,UAAY,IAAM,YACxB,IC/MT,GAAM,CACJ,QAAS,WACT,aAAc,gBACd,mBAAoB,sBACpB,SAAU,YACV,WAAY,cACZ,QAAS,WACT,UAAW,aACX,UAAW,aACX,aAAc,gBACd,YAAa,eACb,SAAU,YACV,aAAc,gBACd,QAAS,WACT,QAAS,WACT,YAAa,eACb,YAAa,eACb,aAAc,gBACd,QAAS,WACT,SAAU,YACV,UAAW,aACX,UAAW,aACX,cAAe,iBACf,UAAW,aACX,iBAAkB,oBAClB,QAAS,WACT,SAAU,YACV,SAAU,YACV,cAAe,iBACf,WAAY,eACV,eC1CE,wBAAyB,KAAc,MAC3C,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAK,MAAM,EAAG,MAAM,IAAI,GAAK,GAAG,QAAQ,KAGrE,qBAAsB,KAAc,MACxC,MAAI,QAAS,EACJ,CAAC,MAEH,eAAe,KAAM,MAGxB,yBAA0B,KAAc,MAC5C,GAAI,OAAS,EACX,MAAO,KAGT,GAAI,SAAS,GACb,OAAS,GAAI,EAAG,EAAI,KAAM,IACxB,SAAU,KAAK,GACX,EAAI,KAAO,GACb,UAAU,KAGd,MAAO,SCxCT,GAAA,aAAA,MA4BE,YACI,aAPJ,KAAA,cAAgB,CAAC,KAGjB,KAAA,aAAe,GACf,KAAA,aAAe,GAMb,KAAK,YAAc,YACnB,GAAM,MAAO,YAAY,OAEzB,GAAI,OAAS,EACX,KAAK,SAAW;;;;aAMhB,GAAM,UAAW,YAAY,KAAM,MAC7B,MAAQ,kBAAkB,MAC1B,qBACF,wBAAwB,KAAM,YAAa,UACzC,QAAQ,SACV,KAAM,YAAY,YAAY,OAAS,GACvC,YAAY,YAAY,OAAS,GAAI,UACnC,OAAS,UAAU,YAAa,UAEtC,KAAK,SAAW;;YAEV;;eAEG;;;cAGD;;6BAEe;;;WAQ7B,4BAA4B,KAAc,MACxC,GAAM,SAAS,GAEf,OAAS,KAAM,EAAG,KAAO,EAAG,MAC1B,OAAS,KAAM,EAAG,KAAO,EAAG,OAC1B,GAAI,OAAQ,GAAG,MAAQ,EAAI,IAAM,UAAU,MAAQ,EAAI,IAAM,QAE7D,OAAS,GAAI,EAAG,EAAI,KAAM,IACxB,MAAQ,GAAG,KAAK,KAAK,OAAS,EAAI,MAAQ,MAG5C,QAAO,KAAK,OAGhB,MAAO,SAGT,iCACI,KAAc,MAAiB,MACjC,GAAI,OAAS,EACX,MAAO,QAAQ,MAAM,KAGvB,GAAI,MAAO,GACX,OAAS,GAAI,KAAO,EAAG,EAAI,KAAM,IAC/B,MAAQ,GAAG,KAAK,SAAS,MAAM,KAC3B,EAAI,KAAO,GACb,OAAQ,MAIZ,MAAO,MAGT,kBACI,KAAc,KAAc,KAAc,MAC5C,GAAI,OAAS,EACX,MAAO,GAGT,GAAM,WAAY,KAAK,MAAM,IAE7B,MAAO;cACK,UAAU;cACV,UAAU;;;;0BAIE;0BACA;IAI1B,mBAAmB,MAAiB,MAClC,GAAM,MAAO,MAAM,OACb,aAAe,mBAAmB,KAAM,MAC9C,MAAI,QAAS,EACJ;wBACa,MAAM;kBAIrB,QAAQ,aAAa;8BACA,aAAa;8BACb,aAAa;uCACJ,aAAa,MCrIpD,GAAA,sBAAA,MA2BE,YAAY,YAAuC,YANnD,KAAA,cAAgB,CAAC,KACjB,KAAA,aAAe,GACf,KAAA,aAAe,GAOb,KAAK,YAAc,YAEnB,GAAI,UAAW,GACf,OAAS,GAAI,EAAG,EAAI,EAAG,KACrB,GAAI,QAAS,eACT,EAAI,GAAM,GACZ,SAAU,kBAER,EAAI,GACN,SAAU,kBAGZ,UAAY;UACR;UACA,EAAI,EAAI,0CAA4C;;;;;;mBAM3C;;UAET,EAAI,EAAI,IAAM;QAIpB,KAAK,SAAW;QACZ,uBAAuB;QACX,mBAAmB;;;;;;;;qBAQlB,YAAY;qBACZ,YAAY;;UAEvB;;;;QAQV,gCAAgC,OAI9B,MAAO;;QAFS,mCAAmC,CAAC,IAAK,IAAK,KAAM;;;IC/EtE,GAAA,gBAAA,MAiCE,YAAoB,OAAA,KAAA,MAAA,MATZ,KAAA,gBAAkB,EAClB,KAAA,gBAAkB,EAClB,KAAA,mBAAqB,EACrB,KAAA,cAAgB,EAEhB,KAAA,aAAkD,GAClD,KAAA,WAAa,GACb,KAAA,aAAkD,GAI1D,eACI,QAA2B,MAC3B,UACF,GAAM,iBAAkB,kCAAkC,MAAO,UAE3D,SAAW,uBAAuB,QAAS,gBAAiB,UAC5D,WAAY,MAAK,cACrB,MAAK,aAAa,UAAY,IAE1B,WAAY,MAAK,cACrB,MAAK,aAAa,UAAY,IAGhC,GAAM,UAAW,aACb,QAAS,gBAAiB,KAAK,MAAM,GAAI,KAAK,MAAM,cACpD,UAEJ,GAAI,KAAK,aAAa,UAAU,OAAS,GACvC,KAAK,kBACL,KAAK,kBACL,KAAK,eAAiB,SACtB,KAAK,MACL,GAAM,aAAa,KAAK,aAAa,UAAU,QAC/C,MAAA,MAAK,aAAa,UAAU,KAAK,aAC1B,YAGT,GAAI,YACJ,MAAI,mBAAoB,oBAAoB,mBAC1C,WAAa,KAAK,MAAM,0BAA0B,QAAQ,GAAI,QAAQ,IAC7D,kBAAoB,oBAAoB,mBACjD,WACI,KAAK,MAAM,iCAAiC,QAAQ,GAAI,QAAQ,IAC3D,kBAAoB,oBAAoB,iBACjD,WACI,KAAK,MAAM,2BAA2B,QAAQ,GAAI,QAAQ,IACrD,kBAAoB,oBAAoB,iBACjD,WACI,KAAK,MAAM,2BAA2B,QAAQ,GAAI,QAAQ,IAE5D,kBAAoB,oBAAoB,0BAC1C,YACI,KAAK,MAAM,iCAAiC,QAAQ,GAAI,QAAQ,KAEtE,KAAK,aAAa,UAAU,KAAK,YAEjC,KAAK,kBACL,KAAK,oBAAsB,SAC3B,KAAK,MAEE,WAGT,eACI,QAAuB,MACvB,eAA8B,UAChC,GAAI,KAAK,cAAgB,KAEvB,OAEF,GAAM,iBACF,kCAAkC,eAAgB,UAChD,SAAW,uBAAuB,MAAO,gBAAiB,UAC1D,WAAY,MAAK,cACrB,MAAK,aAAa,UAAY,IAGhC,GAAM,UAAW,aACb,MAAO,gBAAiB,KAAK,MAAM,GAAI,KAAK,MAAM,cAClD,UACE,mBAAqB,MAAM,IAAI,kCACjC,qBAAuB,IACvB,KAAK,mBAAqB,mBAC5B,MAAK,MAAM,oBAAoB,SAC/B,KAAK,oBAAsB,UAE3B,MAAK,aAAa,UAAU,KAAK,SACjC,KAAK,kBACL,KAAK,eAAiB,UAGxB,KAAK,kBAEL,GAAM,SAAU,KAAK,aAAa,UAC5B,SAAW,QAAQ,QAAQ,SACjC,GAAI,SAAW,EACb,KAAM,IAAI,OACN,4EAGN,QAAQ,OAAO,SAAU,GACzB,KAAK,MAGC,MACN,GAAI,CAAC,KAAK,WACR,OAEF,GAAM,OAAQ,KAAK,gBAAkB,KAAK,gBAC1C,QAAQ,IACJ,YAAa,GAAG,KAAK,qBAAqB,KAAK,kBAC/C,IAAI,UACR,GAAM,WAAY,KAAK,cAAgB,KAAK,mBAC5C,QAAQ,IAAI,oBAAoB,KAAK,sBACrC,QAAQ,IAAI,iBAAiB,KAAK,kBAC9B,KAAK,MAAM,IAAM,mBAGnB,qBACF,MAAO,MAAK,sBAGV,gBACF,MAAO,MAAK,cAGd,qBACE,MAAO,MAAK,gBAGd,qBACE,MAAO,MAAK,gBAGd,UACE,GAAI,KAAK,cAAgB,MAIzB,OAAW,YAAY,MAAK,aAC1B,KAAK,aAAa,UAAU,QAAQ,MAClC,KAAK,MAAM,oBAAoB,OAGnC,OAAW,YAAY,MAAK,aAC1B,KAAK,aAAa,UAAU,QAAQ,MAClC,KAAK,MAAM,oBAAoB,OAGnC,KAAK,aAAe,KACpB,KAAK,aAAe,KACpB,KAAK,gBAAkB,EACvB,KAAK,gBAAkB,EACvB,KAAK,mBAAqB,EAC1B,KAAK,cAAgB,KAIzB,mCACI,GAA2B,gBAE7B,GAAM,OAAQ,GACd,GAAI,iBAAmB,MAAM,KAC3B,MAAO,GACF,GAAI,iBAAmB,MAAM,KAClC,MAAO,GAGF,GAFI,iBAAmB,MAAM,SAEzB,iBAAmB,GAAG,KAC/B,MAAO,IACF,GAAI,iBAAmB,MAAM,QAClC,MAAO,GAET,KAAM,IAAI,OAAM,2BAA2B,kBAGvC,sBACF,MAAyB,gBACzB,GAA2B,cAC3B,UAMF,GAAM,gBACF,iCAAiC,gBAAiB,eAElD,YACJ,GAAI,UACF,GAAM,CAAC,YAAa,cAChB,uCAAuC,MAAM,GAAI,MAAM,IAC3D,YAAc,YAAc,kBAG5B,GAAM,CAAC,MAAO,QACV,yCAAyC,MAAM,GAAI,MAAM,IAC7D,YAAc,MAAQ,OAGxB,GAAM,kBAAkB,0BAA0B,GAAI,gBACtD,MAAO,aAAc,iBAGvB,0CACI,gBACA,eACF,OAAQ,qBACD,qBAAoB,mBACvB,MAAO,yCAAwC,mBAC5C,qBAAoB,mBACvB,MAAO,gDAA+C,mBACnD,qBAAoB,iBACvB,MAAO,0CAAyC,mBAC7C,qBAAoB,iBACvB,MAAO,0CAAyC,mBAC7C,qBAAoB,yBACvB,MAAO,gDAA+C,uBAEtD,KAAM,IAAI,OAAM,iCAAiC,oBAIvD,wCAAwC,UAEtC,MAAI,OAAM,QAAQ,gCACZ,SACK,oBAAoB,mBAEtB,oBAAoB,iBAGzB,SACK,oBAAoB,mBAEtB,oBAAoB,iBAG7B,2CACI,eAA8B,UAChC,GAAI,iBAAmB,aAAa,OAClC,MAAO,qBAAoB,mBACtB,GAAI,iBAAmB,aAAa,QAAU,gBAAkB,KACrE,MAAO,gCAA+B,UACjC,GACH,iBAAmB,aAAa,UAChC,iBAAmB,aAAa,OAClC,MAAO,qBAAoB,yBAE7B,KAAM,IAAI,OAAM,gCAAgC,kBAGlD,gCACI,aAAgC,gBAChC,UACF,MAAO,GAAG,aAAa,MAAM,aAAa,MAAM,mBAAmB,WCxRrE,GAAA,gBAAA,MAwBE,YAAY,OAAkB,WAJ9B,KAAA,cAAgB,CAAC,KAKf,KAAK,YAAc,OACnB,KAAK,SAAW;;UAEV;;;;;;;;;QAaG,kBAAoB,0BAEpB,OAAS,YAET,IAAM,iBAQN,IAAM,0CAEN,KAAO,kBAAoB;;EAI3B,MAAQ,kBAAoB;;EAI5B,MAAQ,YC5CR,QAAS,YAET,KAAM;;;;;;;;;EAWN,MAAO;;;;;;;;;;EAYP,OAAQ;;;;;;;;;;EA5CrB,qBAAA,MA+DE,YAAY,OAAkB,WAN9B,KAAA,cAAgB,CAAC,KAGjB,KAAA,aAAe,GACf,KAAA,aAAe,GAGb,KAAK,YAAc,OACnB,KAAK,SAAW;;UAEV;;;;;;;;;QCnEV,cAAA,MA4BE,YAAY,aANZ,KAAA,cAAgB,CAAC,KACjB,KAAA,aAAe,GACf,KAAA,aAAe,GAKb,KAAK,YAAc,YACnB,GAAM,MAAO,YAAY,OAEnB,SAAW,YAAY,KAAM,MAC7B,MAAQ,kBAAkB,MAC1B,aAAe,gBAAgB,KAAM,UACrC,UAAY,SAAS,MAAM,IAC3B,QAAS,MAAQ,EAAI,KAAO,QAAQ,UAAU,KAAK,QAEzD,KAAK,SAAW;;UAEV;kCACwB;;4CAEU;;QCEtC,WAAY,qBAAa,UAElB,iBAAkB,KAClB,iBAAkB,KA4BzB,aAAuE,GAEvE,wBAAyB,cAC7B,MAAI,gBAAgB,eAGpB,cAAa,cAAgB,IACtB,aAAa,cAKtB,GAAM,4BAA6B,IAK7B,uBAAyB,IAC/B,8BACE,MAAI,OAAM,OAAO,QAAU,KAClB,KAED,MAAM,OAAO,OAAO,OAAS,MAAM,OAAO,OAAO,MACjD,OAAO,iBACX,uBAAyB,KAAO,KApGtC,GAAA,kBAAA,aAuGsC,eAmCpC,YAAY,OACV,QACA,GAhCM,KAAA,YAAc,GAAI,SAGlB,KAAA,gBAAkB,GAAI,SAI9B,KAAA,aAAe,GAAI,SACX,KAAA,cAAgB,EAOhB,KAAA,aAAe,EAEf,KAAA,eAAiB,EAUjB,KAAA,kBAAoB,GACpB,KAAA,sBAAwB,GA8YxB,KAAA,eAAiB,EAwXjB,KAAA,SAAW,GAlwBb,CAAC,MAAM,QAAQ,aACjB,KAAM,IAAI,OAAM,yCAGlB,GAAI,OAAS,MACX,GAAM,IAAK,gBAAgB,MAAM,UAAU,kBAC3C,KAAK,YAAc,eAAe,MAAM,UAAU,kBAClD,KAAK,MAAQ,GAAI,cAAa,IAC9B,KAAK,OAAS,GAAG,OACjB,KAAK,oBAAsB,OAE3B,MAAK,MAAQ,MACb,KAAK,YAAc,GACnB,KAAK,oBAAsB,GAC3B,KAAK,OAAS,MAAM,GAAG,OAEzB,KAAK,eAAiB,GAAI,gBAAe,KAAK,OAC9C,KAAK,mBAAqB,qBAE1B,KAAK,QAAU,GAAI,aAAY,KAAM,UAGvC,aACE,MAAO,MAAK,QAAQ,aACf,MAAK,WAAa,KAAK,WAAW,aAAe,GAClD,KAAK,eAGX,MAAM,OAAuB,MAAiB,OAK5C,GAJI,OAAM,QAAQ,mCACd,MAAM,QAAQ,WAChB,KAAK,uBAAuB,QAE1B,QAAU,aAAe,QAAU,KACrC,KAAM,IAAI,OACN,yEAGN,GAAM,QAAS,GACf,MAAA,MAAK,QAAQ,IAAI,OAAQ,CACvB,MACA,MACA,OACA,MAAO,aAAa,OACpB,SAAU,EACV,sBAAuB,IAElB,OAIT,OAAO,QACL,GAAM,SAAU,KAAK,QAAQ,IAAI,QACjC,QAAQ,WAIV,OAAO,QACL,GAAI,KAAK,QAAQ,IAAI,SACnB,GAAM,SAAU,KAAK,QAAQ,IAAI,QACjC,QAAQ,YAIZ,KAAK,OAAgB,OAAuB,MAAiB,OAK3D,GAHI,MAAM,QAAQ,UAChB,KAAK,uBAAuB,QAE1B,QAAU,YACZ,KAAM,IAAI,OACN,yEAGN,KAAK,QAAQ,IAAI,OAAQ,CACvB,MACA,MACA,OACA,MAAO,aAAa,OACpB,SAAU,EACV,sBAAuB,IAI3B,8BAA8B,YAC5B,GAAM,QAAS,WAAW,OAE1B,GAAI,KAAK,QAAQ,IAAI,SACnB,GAAM,aAAc,KAAK,QAAQ,IAAI,QAErC,YAAY,WAER,YAAY,SAAW,GACzB,KAAK,YAAY,SAKvB,SAAS,QACP,GAAM,SAAU,KAAK,QAAQ,IAAI,QAC3B,CAAC,OAAQ,MAAO,mBAAoB,MAAA,OAAO,MAAO,UAAY,QAKpE,GAAI,QAAS,MACX,GAAI,SACA,SACF,QAAU,GAAI,sBAAqB,MAAgB,OAEnD,QAAU,GAAI,gBAAe,MAAgB,OAE/C,GAAM,KACF,KAAK,gBAAgB,QAAS,CAAC,CAAC,OAAQ,MAAO,QAAS,OACtD,MAAO,KAAK,SAAS,IAAI,QAC/B,MAAA,MAAK,8BAA8B,KAC5B,MAET,GAAI,QAAU,KACZ,MAAO,MAAK,qBAAqB,QAEnC,GAAI,QAAU,SACZ,MAAO,QAET,GAAM,mBAAoB,KAAK,cAAgB,KAC3C,MACA,mBACF,OAAQ,aAAK,OAGf,GAAI,QACJ,GAAI,QAAU,aACZ,GAAM,YACF,KAAK,SAAS,mBAAmB,KAAK,QACpC,WACF,KAAK,SAAS,mBAAmB,KAAK,QAC1C,OAAS,qBAAa,uBAAuB,WAAY,gBAEzD,QAAS,KAAK,qBAAqB,QAGrC,MAAI,oBACF,MAAK,gBAAkB,aAAK,MAAQ,OAE/B,KAAK,qBAAqB,OAAQ,aAGrC,MAAK,QACT,GAAI,KAAK,YAAY,IAAI,SACvB,GAAM,cAAc,KAAK,YAAY,IAAI,QACzC,MAAO,IAAI,SAAoB,SAAW,aAAY,KAAK,UAE7D,GAAM,SAAU,KAAK,QAAQ,IAAI,QAC3B,CAAC,OAAQ,MAAO,MAAA,OAAO,MAAO,mBAAoB,UAAY,QAKpE,GAAI,QAAS,MACX,GAAI,SACA,SACF,QAAU,GAAI,sBAAqB,MAAgB,OAEnD,QAAU,GAAI,gBAAe,MAAgB,OAE/C,GAAM,KACF,KAAK,gBAAgB,QAAS,CAAC,CAAC,OAAQ,MAAO,QAAS,OACtD,MAAO,KAAK,KAAK,IAAI,QAC3B,MAAA,MAAK,8BAA8B,KAC5B,MAGT,GAAI,QAAU,KACZ,MAAO,MAAK,qBAAqB,QAGnC,GAAI,CAAC,MAAM,QAAQ,iCACf,MAAM,UAAU,mBAAqB,EACvC,KAAM,IAAI,OACN,gGAIN,GAAI,SAAS,KACT,kBAEJ,GAAI,QAAU,aAAe,MAAM,IAAI,2BAErC,kBAAoB,KAAK,OAAO,QAChC,GAAM,SAAU,KAAK,QAAQ,IAAI,kBAAkB,QAEnD,QAAS,KAAK,MAAM,wBAChB,QAAQ,QAAS,GAAY,iBAAiB,QAGpD,KAAK,YAAY,IAAI,OAAQ,IAEzB,QAAU,aAEZ,KAAM,MAAK,MAAM,wBAInB,GAAI,MACJ,GAAI,QAAU,aACZ,GAAM,IAAK,KAAM,SAAQ,IAAI,CAC3B,KAAK,KAAK,mBAAmB,KAAK,QAClC,KAAK,KAAK,mBAAmB,KAAK,UAG9B,WAAa,GAAG,GAChB,WAAa,GAAG,GACtB,KAAO,qBAAa,uBAChB,WAA4B,oBACvB,SAAU,KACnB,KAAO,KAAK,qBAAqB,aAEjC,GAAM,MAAO,aAAK,cAAc,OAChC,KAAO,KAAK,MAAM,gCAAgC,QAAQ,MAExD,mBAAqB,MACvB,KAAK,8BAA8B,mBAErC,GAAM,WAAY,KAAK,qBAAqB,OAAQ,MAE9C,YAAc,KAAK,YAAY,IAAI,QACzC,MAAA,MAAK,YAAY,OAAO,QAGxB,YAAY,QAAQ,SAAW,QAAQ,YACnC,KAAK,gBAAgB,IAAI,SAC3B,MAAK,gBAAgB,OAAO,QAC5B,KAAK,YAAY,QACjB,KAAK,kBAEA,UAGT,WAA2B,GACzB,GAAM,OAAO,KAAK,SAAS,EAAE,QACzB,YAAc,MAClB,GAAI,EAAE,QAAU,SACd,IAEE,YAAe,MAAsB,IAAI,GAAK,aAAK,aAAa,UAChE,IACA,KAAM,IAAI,OAAM,oDAGpB,MAAO,QAAO,EAAE,MAAsB,EAAE,MAAO,aAIzC,uBAAuB,QAC7B,GAAI,QAAU,KAGd,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,KACjC,GAAM,KAAM,OAAO,GACnB,GAAI,CAAY,iBAAiB,KAC/B,KAAI,OAAM,QAAQ,gCACV,MACF,aAAa,oJAIb,MAAM,aAAa,8CAKvB,qBAAqB,QAC3B,GAAM,CAAC,MAAO,MAAO,UAAY,KAAK,QAAQ,IAAI,QAC5C,KAAO,aAAK,cAAc,OAChC,GAAI,MAAM,QAAQ,iCAChB,GAAM,WAAY,KAAK,OAAO,QACxB,SAAU,KAAK,QAAQ,IAAI,UAAU,QACrC,MAAO,KAAK,MACA,gCACG,SAAQ,QAAS,GAAY,iBAAiB,QACjD,SAAS,EAAG,MAE9B,MAAA,MAAK,8BAA8B,WAE5B,MAGT,GAAM,wBACF,MAAM,QAAQ,eAAiB,WAAa,GAC1C,YACF,uBAAoC,aAAa,OAAS,MACxD,QAAU,uBACZ,GAAI,0BAAyB,aAC7B,GAAI,oBAAmB,aACrB,OAAS,KAAK,gBAChB,QAAS,CAAC,CAAC,MAAO,YAAa,MAAO,SAAU,WAC9C,QAAU,KAAK,QAAQ,IAAI,OAAO,QAClC,KACF,KAAK,MACA,gDACG,QAAQ,QAAS,QAAQ,SAAS,GAAI,QAAQ,SAAS,IAC1D,SAAS,EAAG,MACrB,MAAA,MAAK,8BAA8B,QAE5B,UAGH,MAAK,GACT,GAAM,iBAAkB,KAAK,aACvB,gBAA+B,GAEjC,cAAgB,GAChB,KAAK,oBAAsB,KAC7B,MAAK,mBAAqB,gBAC1B,cAAgB,IAEhB,KAAK,aAAa,KAAK,iBAEzB,KAAK,aAAe,gBAEpB,IAGA,GAAM,6BACF,aAAK,QAAQ,KAAK,aAAa,IAAK,GAAkB,EAAE,QACnD,OAAO,GAAK,GAAK,MACpB,0BACF,aAAK,QAAQ,KAAK,aAAa,IAAK,GAAkB,EAAE,OACnD,OAAO,GAAK,GAAK,MAE1B,KAAK,aAAe,gBAEhB,eACF,MAAK,mBAAqB,MAG5B,GAAM,KAAuB,CAC3B,aAAc,KAAK,aACnB,eAAgB,KAAK,eACrB,SAAU,KACV,OAAQ,MAGV,GAAI,MAAM,UAAU,iDAAmD,GACrE,GAAM,UAAW,KAAM,SAAQ,IAAI,6BAEnC,IAAI,SAAc,aAAK,IAAI,UAC3B,IAAI,oBAAyB,IACzB,SAAS,IAAI,CAAC,EAAG,IAAO,EAAC,KAAM,0BAA0B,GAAI,GAAI,KAC5D,IAAI,GAAK,GAAG,EAAE,SAAS,EAAE,MACzB,KAAK,UAEd,KAAI,SAAc,CAChB,MAAO,6DAIX,MAAA,MAAK,aAAe,EACpB,KAAK,eAAiB,EACf,IAET,SACE,MAAO,CACL,WAAY,GACZ,cAAe,KAAK,cACpB,uBAAwB,KAAK,eAAe,kBAC5C,kBAAmB,KAAK,eAAe,cAInC,aACN,MAAI,OAAM,UAAU,iDAAmD,EAC9D,KAAK,MAAM,aAEb,CAAC,QAAS,aAAK,MAAO,MAAO,MAG9B,SAAS,OACf,MAAI,OAAM,UAAU,iDAAmD,EACrE,MAAK,MAAM,WACJ,OAER,OAAwB,MAAQ,aAAK,MAC/B,YAGK,cAAa,OACzB,GAAI,MAAM,UAAU,iDAAmD,EACrE,MAAO,MAAK,MAAM,uBAAuB,OAE3C,GAAM,YAAa,MACnB,MAAO,YAAW,MAAQ,WAAW,QAKvC,YAAY,QACV,GAAI,KAAK,gBAAgB,IAAI,QAC3B,OAEF,GAAI,KAAK,YAAY,IAAI,SACvB,KAAK,gBAAgB,IAAI,QACzB,KAAK,iBACL,OAGF,GAAI,CAAC,KAAK,QAAQ,IAAI,QACpB,OAOF,GAAI,KAAK,QAAQ,IAAI,QAAQ,sBAAwB,GACnD,KAAK,QAAQ,IAAI,QAAQ,WACzB,OAGF,KAAK,eAAe,QACpB,GAAM,CAAC,oBAAsB,KAAK,QAAQ,IAAI,QAC1C,oBAAsB,MACxB,MAAK,QAAQ,IAAI,mBAAmB,KAAK,QAAQ,wBACjD,KAAK,8BAA8B,mBAAmB,MAEtD,KAAK,QAAQ,IAAI,mBAAmB,KAAK,QAAQ,wBACjD,KAAK,8BAA8B,mBAAmB,OAExD,KAAK,QAAQ,OAAO,QAGd,eAAe,QACrB,GAAM,CAAC,QAAS,MAAO,SAAU,MAAO,SAAU,MAAA,QAC9C,KAAK,QAAQ,IAAI,QACf,IAAM,QAAS,OAAM,YAAc,OACnC,SAAW,KAAK,aAAa,IAAI,KAEnC,SAAW,EACb,KAAK,aAAa,IAAI,IAAK,SAAW,GAEtC,MAAK,aAAa,OAAO,KACrB,SAAW,MACb,MAAK,eAAiB,KAAK,aAAa,SAAU,OAClD,KAAK,eAAe,eAAe,QAAS,SAAU,MAAO,YAIjE,GAAM,SAAU,KAAK,QAAQ,IAAI,QACjC,QAAQ,QAAU,KAClB,QAAQ,SAAW,KACnB,QAAQ,SAAW,GACnB,QAAQ,MAAQ,KAGlB,WAAW,QACT,MAAA,MAAK,YAAY,QACV,KAAK,QAAQ,IAAI,QAAQ,QAOlC,YAAY,QACV,MAAO,MAAK,QAAQ,IAAI,QAGlB,gBACN,MAAK,OAAM,QAAQ,qBAIf,MAAK,YAAc,MACrB,MAAK,WAAa,SAAS,YAAY,QAGlC,KAAK,YAPH,KAiBX,mBACI,OACA,cAAgB,4BAClB,GAAM,YAAa,KAAK,gBACxB,MAAI,CAAC,MAAM,QAAQ,YAAc,CAAC,KAAK,uBACnC,YAAc,MAChB,SAAQ,KACJ,6NAKJ,KAAK,sBAAwB,IAGxB,YAAc,MACjB,OAAO,MACH,QAAS,KAAK,QAAQ,IAAI,OAAM,QAAQ,SAAW,MAC/C,aAAK,cAAc,OAAM,OAAS,eAGhD,kBACE,MAAO,MAAK,MAGd,MAAM,WACJ,qBAAa,KACT,yEAEJ,GAAM,UAAW,UAAU,WAC3B,MAAO,YAAU,UAAU,MAAO,UAG5B,cAAc,EAAe,IAAY,OAC/C,GAAM,SAAU,GAAI,sBAAqB,EAAE,MAAO,KAClD,MAAO,MAAK,cAAsB,QAAS,CAAC,GAAI,OAMlD,IAAsB,GAEpB,GAAI,KAAK,mBAAmB,CAAC,KAAO,EAAE,QAAU,aAC9C,GAAM,WACF,iBAAiB,KAAK,QAAQ,IAAI,EAAE,QAAQ,QAChD,MAAO,MAAK,WAAW,EAAE,MAAO,EAAE,MAAO,WAG3C,GAAI,MAAM,QAAQ,+BAChB,MAAO,MAAK,cAAc,EAAY,IAAK,EAAE,OAG/C,GAAM,SAAU,GAAI,gBAAe,EAAE,MAAgB,KACrD,MAAO,MAAK,cAAc,QAAS,CAAC,IAGtC,eACI,MAAiB,MACjB,QACF,GAAI,QACJ,GAAI,QAAU,UAAY,QAAU,MAAQ,OAAO,OAAS,GACxD,aAAK,SAAS,OAAO,KACvB,GAAM,eACD,OAA0B,IAAI,GAAK,aAAK,aAAa,IAE1D,OAAS,KAAK,MAAM,cAAe,MAAO,WAE1C,QAAS,KAAK,MAAM,OAAsB,MAAO,OAGnD,MAAA,MAAK,QAAQ,IAAI,QAAQ,MAAQ,KAC1B,CAAC,OAAQ,MAAO,OAGjB,WACJ,MAAiB,MAAiB,QACpC,GAAM,CAAC,QAAU,KAAK,eAAe,MAAO,MAAO,QACnD,MAAO,UAAS,qBAAqB,OAAQ,MAAO,MAAO,MAGrD,aAAa,QACnB,GAAM,SAAU,GAAI,eAAc,OAAM,OACxC,MAAO,MAAK,gBAAgB,QAAS,CAAC,QAAQ,OAAM,OAG9C,WAAW,QACjB,GAAM,SAAU,GAAI,aAAY,OAAM,OAChC,4BAA8B,GACpC,MAAO,MAAK,gBACR,QAAS,CAAC,QAAQ,OAAM,MAAO,KAC/B,6BAGE,cAAc,OAAmB,YACvC,GAAM,cAAe,CACR,YAAY,OAAM,OAC7B,GAAc,YAAY,OAAM,QAE5B,QAAsB,CAC1B,MAAO,OAAM,MACb,MAAO,aACP,OAAQ,OAAM,QAEV,eAAiB,CACV,YAAY,YAAa,GAAc,YAAY,aAG1D,QAAU,GAAI,sBAAqB,eAAgB,cACnD,8BAAgC,GAChC,OAAS,KAAK,gBAChB,QAAS,CAAC,SAAU,OAAM,MAAO,KACjC,+BACJ,MAAO,CAAC,OAAQ,OAAO,OAAQ,MAAO,WAAY,MAAO,OAAO,OAG1D,OAAO,QACb,GAAM,SAAU,KAAK,QAAQ,IAAI,QAC3B,CAAC,SAAU,MAAO,OAAS,QAC3B,UACS,aAAa,OACxB,QACA,SACF,QAAU,GAAI,2BAA0B,WAExC,QAAU,GAAI,qBAAoB,WAEpC,GAAM,+BAAgC,GAChC,IAAM,KAAK,gBACb,QAAS,CAAC,CAAC,MAAO,UAAW,MAAO,SAAU,MAC9C,KAAwB,+BAC5B,MAAO,CAAC,MAAO,MAAO,OAAQ,IAAI,QAGpC,gBACI,QAAuB,OAAsB,YAC7C,YACA,8BAAgC,IAClC,GAAM,QAAS,KAAK,eAAe,QAAQ,YAAa,aAClD,QAAU,KAAK,QAAQ,IAAI,OAAO,QAIxC,GAHI,QAAQ,cACV,SAAQ,SAAW,IAEjB,QAAQ,mBAA8B,cAAc,OACtD,GAAM,YAAsB,iBAAiB,QAAQ,aAKrD,QAAQ,SAAW,WAAW,IAAI,GAAK,EAAI,GAK7C,GAHI,QAAQ,aAAe,MACzB,SAAQ,MAAQ,QAAQ,aAEtB,aAAK,cAAc,OAAO,SAAW,EAGvC,MAAA,SAAQ,OACJ,aAAK,uBAAuB,OAAO,MAAoB,GACpD,OAGT,GAAM,eAA8B,GAC9B,WAA2B,OAAO,IAAI,SAC1C,GAAI,OAAM,QAAU,YAClB,KAAM,IAAI,OACN,mIAKN,GAAI,SAAU,KAAK,QAAQ,IAAI,OAAM,QAErC,GAAI,QAAQ,SAAW,MACrB,GAAI,CAAC,QAAQ,cACT,aAAK,cAAc,OAAM,QACrB,MAAM,UAAU,6BAMtB,MAAO,CACL,MAAO,OAAM,MACb,QAAS,KACT,UAAW,GACX,cAAe,QAAQ,QAMvB,QAAQ,cACV,SAAQ,SAAW,GACnB,QAAQ,MAAQ,OAAM,eAEf,CAAC,CAAC,QAAQ,UAAa,CAAC,CAAC,QAAQ,aAC1C,OAAQ,QAAQ,SAAW,KAAK,aAAa,QAClB,KAAK,WAAW,QAC3C,cAAc,KAAK,QACnB,QAAU,KAAK,QAAQ,IAAI,OAAM,gBAE/B,QAAQ,UACR,CAAY,cAAc,QAAQ,MAAO,OAAM,QAQjD,GAAM,YAAa,OACb,YAAc,OAAM,MAE1B,OAAM,MAAQ,QAAQ,MACtB,OAAQ,KAAK,cAAc,OAAiB,aAC5C,cAAc,KAAK,QACnB,QAAU,KAAK,QAAQ,IAAI,OAAM,QAEjC,WAAW,MAAQ,YAGrB,MAAA,MAAK,YAAY,OAAM,QAChB,CAAC,MAAO,OAAM,MAAO,QAAS,UAAW,MAGlD,KAAK,YAAY,OAAO,QACxB,GAAM,YACW,CAAC,MAAO,OAAO,MAAO,QAAS,QAAS,UAAW,IAC9D,IAAiB,cAAc,QAAS,WAAY,YACpD,OAAS,KAAK,iBAAiB,IAAK,IACtB,eACd,KAAK,MAAO,QAAS,WAAY,aAEjC,kBAAoB,KAAK,cAAgB,KAC3C,MAgBJ,GAfI,mBACF,OAAQ,KAAK,cAGJ,WACP,KAAK,MAAO,OAAQ,WAAY,WAAY,aAEhD,cAAc,QAAQ,MAAQ,KAAK,8BAA8B,OAE7D,mBACF,OAAQ,KAAK,SAAS,OACtB,KAAK,aAAa,KACd,CAAC,KAAM,QAAQ,YAAY,KAAM,MAAO,KAAK,aAAa,UAG5D,CAAC,MAAM,QAAQ,wBAA0B,QAAQ,UACjD,gCAAkC,IACpC,GAAM,UAAW,KAAK,aAAa,QACnC,MAAA,MAAK,8BAA8B,QAC5B,SAET,MAAO,QAGT,cACI,QAAuB,OAAsB,YAC7C,YACA,8BAAgC,IAClC,YAAc,aAAe,OAAO,GAAG,MACvC,GAAM,SAAU,KAAK,gBACjB,QAAS,OAAQ,YAAa,YAC9B,+BACJ,MAAO,UAAS,qBACL,QAAQ,OAAQ,QAAQ,MAAO,QAAQ,OAG5C,iBAAiB,IAAa,WAEpC,MAAM,OAAO,MAAK,aAChB,MAAK,YAAY,KAAO,aAEnB,KAAK,YAAY,KAG1B,oBACE,MAAO,MAAK,eAKd,UACM,KAAK,UAKJ,OAAM,QAAQ,YACD,OAAO,KAAK,KAAK,aACzB,QAAQ,MACd,KAAK,MAAM,cAAc,KAAK,YAAY,KAAK,cAC/C,MAAO,MAAK,YAAY,OAG5B,KAAK,eAAe,UAChB,KAAK,QAAU,MACd,MAAQ,oBAAuB,aAC/B,KAAK,iBAAkB,mBAC1B,KAAK,OAAO,SAEZ,KAAK,OAAS,KAEZ,KAAK,qBACP,MAAK,MAAM,QAAU,KACrB,KAAK,MAAM,WAEb,KAAK,SAAW,IAGlB,iBACE,MAAI,MAAK,qBAAuB,MAC9B,MAAK,oBAAsB,KAAK,KAC9B,GAAI,CAAC,MAAM,IAAI,iCAGb,GAAM,WAAY,MAAM,QAAQ,SAChC,MAAM,IAAI,QAAS,IACnB,GAAM,qBAAsB,KAAK,IAAI,OAAO,OAAO,WAAW,GAG9D,GAFA,MAAM,IAAI,QAAS,WAEf,oBAAsB,EACxB,MAAO,IAGX,MAAO,OAGJ,KAAK,oBAId,UACE,MAAO,MAAK,mBAAqB,GAAK,iBAAkB,iBAG1D,YAAY,QACV,GAAM,SAAU,KAAK,QAAQ,IAAI,QAC3B,CAAC,MAAO,MAAO,OAAQ,QAAS,MAAO,UAAY,QAEzD,GAAI,SAAW,KAEb,OAEF,GAAM,mBAAoB,KAAK,cAAgB,KAC3C,MACA,mBACF,OAAQ,aAAK,OAGf,GAAI,UAAW,QAAQ,SAMvB,GALI,UAAY,MACd,UAAsB,gCAAgC,MAAO,UAC7D,QAAQ,SAAW,UAGjB,QAAU,MACZ,GAAM,WAAuB,aAAa,OAEtC,QACA,MAAQ,SAAS,GAAI,OAAS,SAAS,GACrC,YAAc,iBAAkB,YAElC,SACF,EAAC,MAAO,QAAmB,uCACvB,SAAS,GAAI,SAAS,IAC1B,QAAU,GAAI,2BACV,UAAW,CAAC,OAAQ,OAAQ,cAEhC,QACI,GAAI,qBAAoB,UAAW,CAAC,OAAQ,OAAQ,aAG1D,GAAM,sBAAuB,KAAK,eAAe,CAAC,OAAQ,OAAQ,OAC9D,YACF,KAAK,QAAQ,IAAI,qBAAqB,QAAQ,MAC1C,aAAa,OAEjB,KAAK,QAAQ,IAAI,qBAAqB,QAAQ,MAC1C,aAAa,OAEnB,KAAK,MAAM,2BACP,KAAK,WAAW,qBAAqB,QAAS,MAAO,OACrD,QAIJ,GAAM,uBAAwB,GACxB,oBAAsB,KAAK,gBAC7B,QAAS,CAAC,sBAAuB,MAAO,KAAM,uBAG5C,cAAgB,KAAK,QAAQ,IAAI,oBAAoB,QAC3D,QAAQ,QAAU,cAAc,QAChC,QAAQ,SAAW,cAAc,SACjC,QAAQ,SAAW,cAAc,SACjC,QAAQ,MAAQ,cAAc,MAE9B,KAAK,8BAA8B,sBACnC,KAAK,QAAQ,OAAO,oBAAoB,QAGxC,QAAQ,OAAS,KACb,mBACF,MAAK,cAAgB,aAAK,MAAQ,YAGpC,GAAM,YAAa,KAAK,eAAe,SAAU,MAAO,MAAO,UAC/D,QAAQ,QAAU,YAId,qBAAqB,OAAgB,eAE3C,GAAM,SAAU,KAAK,QAAQ,IAAI,QAC3B,CAAC,OAAS,QAEhB,MAAA,MAAK,eAAe,QAEhB,eAAiB,MACnB,SAAQ,OAAS,oBAAoB,cAAe,QAE/C,QAAQ,OAGT,eACJ,SAA4B,QAAuB,MACnD,UAEF,GADA,KAAK,eAAiB,KAAK,aAAa,SAAU,OAC9C,CAAC,KAAK,mBACN,KAAK,cAAgB,KAAK,mBAAqB,KAAO,MACxD,GAAM,IAAM,MAAK,cAAgB,KAAO,MAAM,QAAQ,GACtD,KAAK,kBAAoB,GACzB,QAAQ,KACJ,6BAA6B,2CAGnC,MAAO,MAAK,eAAe,eAAe,SAAU,QAAS,UAGvD,aAAa,MAAyB,OAC5C,MAAO,OAAM,GAAK,MAAM,GAAK,aAAK,gBAAgB,SAItD,6BACI,EAAiB,OACnB,GAAI,QAAU,WAAa,QAAU,YACnC,MAAO,GACF,GAAI,QAAU,SAAW,QAAU,QACxC,GAAM,QAAU,QAAU,QAAW,GAAI,YAAW,EAAE,QACjB,GAAI,YAAW,EAAE,QACtD,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,EAAE,EACnC,OAAO,GAAK,KAAK,MAAM,EAAE,IAE3B,MAAO,YAEP,MAAM,IAAI,OAAM,iBAAiB,SC5jCrC,GAAM,UAAU,QC+BV,0BACJ,MAAM,IAAI,2BAA4B,ICZpC,oBAAY,aACd,gBAAgB,QAAS,IAAM,GAAI,kBAAoB,GAQlD,GAAM,OAAQ,CAAC,gBCXT,mBAAoB;;;EArBjC,gBAAA,MAgCE,YAAY,IAAY,OAAkB,QAJ1C,KAAA,cAAgB,CAAC,IAAK,KAKpB,KAAK,YAAc,qBAAa,2BAA2B,OAAQ,QACnE,KAAK,SAAW;;UAEV;;;;;;;;QCbG,mBAAoB;;;;;EAvBjC,sBAAA,MA+CE,YACI,IAAY,OAAkB,OAC9B,iBAAmB,IATvB,KAAA,cAAgB,CAAC,IAAK,KAGtB,KAAA,qBAAuB,GACvB,KAAA,aAAe,GACf,KAAA,aAAe,GAKb,KAAK,YAAc,qBAAa,2BAA2B,OAAQ,QACnE,GAAM,MAAO,KAAK,YAAY,OAC1B,uBAAyB,GAC7B,GAAI,iBACF,GAAI,OAAS,GAAK,aAAK,cAAc,KAAK,eAAiB,EACzD,uBAAyB;;;;kBAOzB,uBAAyB;YADX,kBAAkB;UAI5B,OAAS,EACX,wBAA0B;yCACK,KAAK,YAAY;;;iBAKhD,GAAM,UAAW,YAAY,SAAU,MACvC,wBAA0B;;iBAEnB,SAAS,KAAO,cAAc,KAAK,YAAY,KAAO;;iBAEtD,SAAS,KAAO,cAAc,KAAK,YAAY,KAAO;;;;YASnE,KAAK,SAAW;;UAEV;;;;;;;;UAQA;;;;QC3EJ,mBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEZ,MAAA,WAAQ,OAAO,EAAE,QAEV,CAAC,OAAQ,EAAE,OAAQ,MAAO,EAAE,MAAO,MAAO,EAAE,OAG9C,GAAM,iBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WCFR,kBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,KAAA,MAAM,KAAA,OAAQ,OAEf,YAAc,UAAQ,eAAe,MAAK,MAAO,aACjD,SAAU,UAAQ,QAAQ,IAAI,YAAY,QAE1C,eAAiB,UAAS,CAAC,OAAQ,CAAC,EAAG,OAAO,QAAA,YAC9C,SAAW,UAAQ,QAAQ,IAAI,eAAe,QACpD,SAAS,wBAET,GAAM,gBAAiB,UAAS,CAAC,OAAQ,CAAC,EAAG,OAAO,QAAA,YAC9C,SAAW,UAAQ,QAAQ,IAAI,eAAe,QACpD,MAAA,UAAS,wBAET,SAAQ,mBAAqB,CAAC,KAAM,eAAgB,KAAM,gBAEnD,YAGF,GAAM,gBAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UClCD,UAAY,+BACZ,iBAAmB;;;EAK1B,oBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,OAAS,MAEV,OAAS,UAAQ,eACnB,GAAI,UACJ,aAAK,kBAAkB,MAA0B,YAE/C,QAAU,MAAM,QAAQ,gCAC1B,GAAI,uBAAsB,iBAAkB,EAAE,MAAO,OAAO,OAC5D,GAAI,iBAAgB,UAAW,EAAE,MAAO,OAAO,OAC7C,OAAS,UAAQ,gBAAgB,QAAS,CAAC,EAAG,QAAS,EAAE,OAE/D,MAAA,WAAQ,8BAA8B,QAE/B,OAGF,GAAM,kBAAgC,CAC3C,WAAY,UACZ,YAAa,QACb,WAAY,YC/BD,MAAQ,+BACR,aAAe;;;EAKtB,gBAAgB,MAEpB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,EAAG,OAAS,OAEb,QAAU,MAAM,QAAQ,gCAC1B,GAAI,uBAAsB,aAAc,EAAE,MAAO,MAAM,OACvD,GAAI,iBAAgB,MAAO,EAAE,MAAO,MAAM,OAC9C,MAAO,WAAQ,gBAAgB,QAAS,CAAC,EAAG,OAAQ,EAAE,OAGjD,GAAM,cAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCXD,wBAA0B,0BAE1B,yBAA2B;;;EAK3B,gCAAkC;;;;;EAsBzC,0BACF,CAAC,UAAW,gBAAiB,cAAe,QAE9C,MAAO,CAAC,CAAC,OAAQ,QAAA,cACf,GAAM,CAAC,GAAK,OACN,aAAe,UAEf,OAAS,OAAS,EAAE,MAC1B,GAAI,aAAa,mBAAmB,CAAC,KAAO,eAAiB,MAC3D,GAAM,OAAQ,aAAa,QAAQ,IAAI,EAAE,QACnC,UAAY,cAAc,MAAM,OAAsB,QAC5D,MAAO,cAAa,eAAe,EAAE,MAAO,OAAQ,WAGtD,GAAM,wBACF,MAAM,QAAQ,gCAAkC,iBAAmB,KACnE,QACJ,MAAI,wBACF,QAAU,GAAI,sBAAqB,EAAE,MAAO,iBAE5C,QAAU,GAAI,gBAAe,EAAE,MAAO,WAGjC,aAAa,gBAAgB,QAAS,CAAC,GAAI,SAuBhD,2BAA2B,CAC/B,UACA,gBACA,iBAAmB,GACnB,gBAAkB,GAClB,cACA,QAEA,MAAO,CAAC,CAAC,OAAQ,QAAA,cACf,GAAM,CAAC,EAAG,GAAK,OACT,aAAe,UAErB,GAAI,iBAAmB,EAAE,QAAU,aACjC,GAAM,OAAQ,aAAa,QAAQ,IAAI,EAAE,QACnC,MAAQ,aAAa,QAAQ,IAAI,EAAE,QAEnC,CAAC,MAAM,OAAQ,CACnB,CAAC,MAAM,mBAAmB,KAAM,MAAM,mBAAmB,MACzD,CAAC,MAAM,mBAAmB,KAAM,MAAM,mBAAmB,OACzD,IAAI,eACJ,GAAM,CAAC,MAAO,OAAS,aAEjB,QAAU,CACd,OAAQ,MAAM,OACd,MAAO,MAAM,MACb,MAAO,EAAE,OAEL,QAAU,CACd,OAAQ,MAAM,OACd,MAAO,MAAM,MACb,MAAO,EAAE,OAGL,SAAU,GAAI,iBAAgB,UAAW,EAAE,MAAO,EAAE,OAC1D,MAAO,cAAa,gBAChB,SAAS,CAAC,QAAS,SAAU,WAAW,MAAM,MAAO,MAAM,UAG3D,cACF,SAAQ,CAAC,OAAQ,CAAC,KAAA,MAAM,KAAA,OAAO,QAAS,eAE5C,MAAA,cAAa,8BAA8B,OAC3C,aAAa,8BAA8B,OAIpC,cAGT,GAAM,QAAS,OAAS,WAAW,EAAE,MAAO,EAAE,OAC9C,GAAI,aAAa,mBAAmB,CAAC,EAAG,KAAO,eAAiB,MAC9D,GAAM,OAAQ,aAAa,QAAQ,IAAI,EAAE,QACnC,MAAQ,aAAa,QAAQ,IAAI,EAAE,QACnC,CAAC,UAAW,UAAY,cAC1B,EAAE,MAAO,EAAE,MAAO,MAAM,OACxB,MAAM,OAAsB,QAE1B,IAAM,aAAa,eAAe,SAAU,QAC5C,QAAU,aAAa,QAAQ,IAAI,IAAI,QAC7C,MAAA,SAAQ,OAAS,UACV,IAGT,GAAM,wBACF,MAAM,QAAQ,iCACd,iBAAmB,KACnB,QACJ,MAAI,wBACF,QAAU,GAAI,uBACV,gBAAiB,EAAE,MAAO,EAAE,MAAO,kBAEvC,QAAU,GAAI,iBAAgB,UAAW,EAAE,MAAO,EAAE,OAG/C,aAAa,gBAAgB,QAAS,CAAC,EAAG,GAAI,SAInD,sCACF,YAAqC,OAAS,IAChD,GAAI,cAAe,SACjB,MAAI,QACqB,QAET,OACX,GAAI,cAAe,OACxB,MAAI,QACqB,MAET,KACX,GAAI,cAAe,MACxB,MAAI,QACqB,KAET,IACX,GAAI,cAAe,QACxB,MAAI,QACqB,OAET,MACX,GAAI,cAAe,QACxB,MAAI,QACK,aAEF,MACF,GAAI,cAAe,YACxB,MAAI,QACK,iBAEF,UAET,KAAM,IAAI,OAAM,cACZ,+DC3NN,GAAA,qBAAA,MA0BE,YACI,OAAkC,OAClC,YAAuC,WAAa,GACpD,WAAa,GAAO,QAAU,GAAO,YAAqB,KAC1D,mBAAqB,GAAO,uBAAyB,IAVzD,KAAA,cAAgB,CAAC,UAAW,WAC5B,KAAA,aAAe,GACf,KAAA,aAAe,GASb,KAAK,YAAc,YAEnB,GAAM,WAAY,WAAa,OAAO,GAAK,OAAO,GAC5C,sBAAwB,KAAK,KAAK,UAAY,GAE9C,QAAU,WAAa,cAAgB,cACvC,QAAU,WAAa,cAAgB,cACvC,SAAW,WAAa,CAAC,SAAU,UAAY,CAAC,SAAU,UAC1D,SAAW,WAAa,CAAC,SAAU,UAAY,CAAC,SAAU,UAE5D,kBAAoB,GAAI,uBAAyB,GACjD,aACE,oBACF,kBAAoB;;YAEhB;WAEK,uBACT,kBAAoB;;YAEhB;WAGJ,kBAAoB;YAChB;WAIN,uBAAyB,gCAG3B,GAAM,gBAAiB,QAAU,kCAAoC,GACjE,SACF,KAAK,cAAc,KAAK,QAGtB,oBACF,KAAK,cAAc,KAAK,0BAGtB,wBACF,KAAK,cAAc,KAAK,kBAG1B,GAAI,eAAgB,OAChB,cAAgB,OAChB,OAAO,GAAK,OAAO,GACrB,cAAgB,wBAAwB,OAAO,GAAK,OAC3C,OAAO,GAAK,OAAO,IAC5B,eAAgB,wBAAwB,OAAO,GAAK,QAGtD,KAAK,SAAW;QACZ;;sCAE8B;;;;8BAIR;yBACL;yBACA;wCACe;wCACA;;;;uBAIjB,SAAS,QAAQ,SAAS;uBAC1B,SAAS,QAAQ,SAAS;;;;;;;;;UASvC;;UAEA;;;;QCtFG,iBAAmB,CAC9B,KAAM,wCACN,KAAM,yCA1BR,uBAAA,MAkCE,YAAY,IAAY,OAAkB,QAJ1C,KAAA,cAAgB,CAAC,QAAS,QAAS,QAAS,SAK1C,KAAK,YAAc,qBAAa,2BAA2B,OAAQ,QAEnE,KAAK,SAAW;;;UAGV;;;;;;;;;;QCZJ,IAAM,gBAEN,mBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,EAAG,GAAK,OACT,MAAQ,qBAAa,WAAW,EAAE,MAAO,EAAE,OAEjD,GAAI,EAAE,QAAU,aACd,GAAM,OAAQ,UAAQ,QAAQ,IAAI,EAAE,QAC9B,MAAQ,UAAQ,QAAQ,IAAI,EAAE,QAE9B,YAAc,GAAI,wBACC,iBAAiB,KAAM,EAAE,MAAO,EAAE,OACrD,YAAc,GAAI,wBACC,iBAAiB,KAAM,EAAE,MAAO,EAAE,OAErD,QAAS,CACb,CACE,OAAQ,MAAM,mBAAmB,KAAK,OACtC,MAAO,MAAM,mBAAmB,KAAK,MACrC,MAAO,EAAE,OAEX,CACE,OAAQ,MAAM,mBAAmB,KAAK,OACtC,MAAO,MAAM,mBAAmB,KAAK,MACrC,MAAO,EAAE,OAEX,CACE,OAAQ,MAAM,mBAAmB,KAAK,OACtC,MAAO,MAAM,mBAAmB,KAAK,MACrC,MAAO,EAAE,OAEX,CACE,OAAQ,MAAM,mBAAmB,KAAK,OACtC,MAAO,MAAM,mBAAmB,KAAK,MACrC,MAAO,EAAE,QAIP,SAAW,UAAQ,gBAAgB,YAAa,QAAQ,WACxD,SAAW,UAAQ,gBAAgB,YAAa,QAAQ,WAExD,cACF,SAAQ,CAAC,OAAQ,CAAC,KAAM,SAAU,KAAM,UAAW,QAAA,YAEvD,MAAA,WAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,UAG/B,cAGT,GAAI,UAAQ,mBAAmB,CAAC,EAAG,KACjC,GAAM,OAAQ,UAAQ,QAAQ,IAAI,EAAE,QAC9B,MAAQ,UAAQ,QAAQ,IAAI,EAAE,QAC9B,CAAC,UAAW,UAAY,gBAC1B,EAAE,MAAO,EAAE,MAAO,MAAM,OACxB,MAAM,OAAsB,OAE1B,IAAM,UAAQ,eAAe,SAAU,OACvC,QAAU,UAAQ,QAAQ,IAAI,IAAI,QACxC,MAAA,SAAQ,OAAS,UACV,IAGT,GAAI,SACJ,MAAI,OAAM,QAAQ,gCAChB,QAAU,GAAI,uBAAsB,IAAK,EAAE,MAAO,EAAE,OAEpD,QAAU,GAAI,iBAAgB,IAAK,EAAE,MAAO,EAAE,OAGzC,UAAQ,gBAAgB,QAAS,CAAC,EAAG,GAAI,OAG3C,GAAM,iBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WCpFR,uBACF,OAAmB,WACnB,WACF,GAAM,cACF,CAAC,YAAY,OAAM,OAClB,GAAG,YAAY,OAAM,QACpB,QAAsB,CAC1B,MAAO,OAAM,MACb,MAAO,aACP,OAAQ,OAAM,QAEV,eACF,CAAC,YAAY,YACZ,GAAG,YAAY,aAEd,QAAU,GAAI,sBAAqB,eAAgB,cACnD,8BAAgC,GAChC,OAAS,UAAQ,gBACnB,QAAS,CAAC,SAAU,OAAM,MAAO,KACjC,+BACJ,MAAO,CAAC,OAAQ,OAAO,OAAQ,MAAO,WAAY,MAAO,OAAO,OCpB5D,kBAAkB,MAKtB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,OAAS,MACV,aAAe,UAEf,MAAQ,aAAK,cAAc,EAAE,OAC7B,OAAS,aAAK,uBAAuB,MAAO,OAC5C,OAAS,aAAK,cAAc,QAElC,aAAK,OACD,QAAU,OACV,IAAM,kBAAkB,eAAe,sCACzB,EAAE,cAAc,sFAGlC,GAAM,UAAW,aAAa,QAAQ,IAAI,EAAE,QAC5C,MAAI,UAAS,UAAY,CAAC,cAAc,EAAE,MAAO,SAC7C,CAAE,UAAS,UAAY,MAAQ,cAAc,SAAS,MAAO,SACxD,cAAc,EAAG,OAAQ,cAGlC,cAAa,OAAO,EAAE,QAEf,CAAC,OAAQ,EAAE,OAAQ,MAAO,OAAQ,MAAO,EAAE,QAG7C,GAAM,gBAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UCzDd,YAAA,MAyBE,YAAY,WAAqC,SAJjD,KAAA,cAAgB,CAAC,KAKf,GAAM,CAAC,WAAY,UAAW,OAAQ,SAAW,WACjD,KAAK,YAAc,CAAC,UAAW,SAE/B,GAAM,uBAAwB,KAAK,MAAM,WAAa,GAAK,EACrD,wBAA0B,WAAa,EAEzC,cAAgB,iCACpB,GAAI,SAAW,MACb,GAAM,aAAc,EAAI,QACxB,cAAgB,4BACZ,aAAK,MAAM,aAAe,YAAY,YAAY,GACxB,sBAGhC,GAAI,kBAAmB,GACnB,OAAS,WAAa,GACxB,kBAAmB;oCACW;;;SAMhC,KAAK,SAAW;;;;UAIV;;;;;;;;kCAQwB;;;;8BAIJ;;;;;;;;;YASlB;;;iCAGqB;cACnB,0BAA4B;;;YAG9B;qBACS,0BAA4B;;;;;YAKrC;qBACS,0BAA4B;;;;;;YAMrC;;;;QC9FZ,cAAA,MAyBE,YACI,WACA,YANJ,KAAA,cAAgB,CAAC,KAOf,GAAM,CAAC,WAAY,UAAW,OAAQ,SAAW,WACjD,KAAK,YAAc,CAAC,UAAW,SAE/B,GAAI,qBAAsB,MACtB,UAAY,GAEZ,aAAe,OACjB,oBAAsB,MACb,aAAe,MAExB,qBAAsB,cACtB,UAAY,OACH,aAAe,OAExB,qBAAsB,eACtB,UAAY,OAGd,GAAI,aAAc,GAAG,cAAc,cAAc,+EAG7C,aAAe,MACjB,YAAc,WACL,aAAe,OACxB,YAAc,YACL,aAAe,MACxB,YAAc,WACL,aAAe,OACxB,aAAc,YAGhB,GAAM,uBAAwB,KAAK,MAAM,WAAa,GAAK,EACrD,wBAA0B,WAAa,EAEzC,cAAgB;YACZ,aAAe;;mBAER,aAAe;;;;wBAIV;;MAIhB,QAAU,OAEV,aAAe,MACjB,qBAAsB,MACtB,cAAgB;;;;QAKhB,QAAU,SACD,aAAe,OACxB,qBAAsB,MACtB,cAAgB;;;;QAKhB,QAAU,SAGZ,GAAI,kBAAmB,GACnB,OAAS,WAAa,GACxB,kBAAmB;oCACW;;;SAKhC,KAAK,SAAW;0CACsB;;;;UAIhC;;;;;;;;kCAQwB;;kCAEA;;;;;;8BAMJ;;YAElB,oBAAoB;;;;;;;YAOpB;;;iCAGqB;cACnB,0BAA4B;YAC9B,oBAAoB;;;;;;;YAOpB;qBACS,0BAA4B;YACrC,oBAAoB;;;;;;;YAOpB;qBACS,0BAA4B;YACrC,oBAAoB;;;;;;;YAOpB;;oBAEQ;;QCxIpB,4BAA4B,SAE1B,GAAM,QAAS,GAEf,KAAO,OAAO,SAAW,GAAK,OAAO,OAAO,OAAS,GAAG,UAAY,IAClE,GAAM,SACF,OAAO,OAAS,OAAO,OAAO,OAAS,GAAG,QAAU,QAAQ,GAC1D,WAAa,qBAAa,yBAAyB,SACzD,OAAO,KAAK,CACV,OAAQ,QACR,WACA,QAAS,KAAK,KAAK,QAAU,cAIjC,MAAO,QAGH,gBACF,EAAe,MAAiB,cAChC,WACF,GAAM,iBAAkB,mBAAmB,EAAE,OAEzC,OAAS,EACb,OAAS,GAAI,EAAG,EAAI,gBAAgB,OAAQ,KAC1C,GAAM,CAAC,OAAQ,WAAY,SAAW,gBAAgB,GAElD,QACA,eACA,gBAAkB,OACpB,QAAU,IAAM,EACZ,GAAI,aACA,CAAC,WAAY,OAAQ,UAAW,EAAE,MAAM,GAAI,SAAU,QAC1D,GAAI,aAAY,CAAC,WAAY,OAAQ,UAAW,EAAE,MAAM,GAAI,UAEhE,QAAU,GAAI,eACV,CAAC,WAAY,OAAQ,UAAW,EAAE,MAAM,GAAI,SAAU,eAG5D,eAAiB,OACjB,OAAS,UAAQ,gBAAgB,QAAS,CAAC,QAAS,OAEhD,eAAe,SAAW,EAAE,QAC9B,UAAQ,8BAA8B,gBAI1C,MAAO,QC1ET,GAAA,kBAAA,MA0BE,YAAY,OAAkB,QAL9B,KAAA,cAAgB,CAAC,KAMf,GAAM,aAAwB,GAAI,OAAM,OAAO,QAC/C,OAAS,GAAI,EAAG,EAAI,YAAY,OAAQ,IACtC,YAAY,GAAK,OAAO,OAAO,IAEjC,KAAK,YAAc,YACnB,KAAK,KAAO,YAAY,OACxB,GAAM,OAAQ,kBAAkB,KAAK,MAC/B,SAAW,kBAAkB,QAEnC,KAAK,SAAW;;QAEZ;uBACe;;QAMvB,2BAA2B,QACzB,GAAM,MAAO,OAAO,OACpB,GAAI,KAAO,EACT,KAAM,OAAM,sBAAsB,6BAEpC,GAAM,eACF,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WACtD,eAAiB,GAAI,OAAM,MACjC,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,eAAe,OAAO,IAAM,cAAc,GAE5C,MAAO,gBAAe,OCxDxB,GAAA,wBAAA,MA6BE,YAAY,OAAkB,QAP9B,KAAA,cAAgB,CAAC,KAIjB,KAAA,aAAe,GACf,KAAA,aAAe,GAGb,GAAM,aAAwB,GAAI,OAAM,OAAO,QAC/C,OAAS,GAAI,EAAG,EAAI,YAAY,OAAQ,IACtC,YAAY,GAAK,OAAO,OAAO,IAIjC,GAFA,KAAK,YAAc,YACnB,KAAK,KAAO,YAAY,OACpB,KAAK,KAAO,EACd,KAAM,OACF,6BAA6B,KAAK,8BAExC,GAAM,OAAQ,kBAAkB,KAAK,MAE/B,YAAc,eAAe,KAAM,KAAK,MACxC,cAAgB,GAAI,OAAM,KAAK,MACrC,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,cAAc,OAAO,IAAM,YAAY,GAEzC,GAAM,WAAY,QAAQ,cAAc,MAAM,IAAI,UAC5C,WACF,KAAK,YAAY,KAAK,KAAO,QAAQ,YAAY,KAAK,KAAO,KAC3D,KAAO,mBAAmB,cAAc,YAAY,aAE1D,KAAK,SAAW;;QAEZ;;oBAEY;WACT;sBACW;;UAEZ,YAAY,KAAK,KAAO;aACrB,YAAY,KAAK,KAAO,QAAQ,YAAY,KAAK,KAAO;sBAC/C;aACT;wBACW;;;;;QCxClB,wBACF,EAAe,KAAgB,WACjC,GAAM,SAAU,MAAM,QAAQ,+BAC1B,GAAI,wBAAuB,EAAE,MAAO,MACpC,GAAI,kBAAiB,EAAE,MAAO,MAClC,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,OCJ3C,iBACF,EAAe,KAAuB,SACtC,WACF,GAAM,kBAAmB,KAEnB,MAAQ,EAAE,MAAM,OAEhB,SAAW,aAAK,eAAe,iBAAkB,EAAE,OACrD,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,OACrD,qBAAuB,cAAgB,KAEzC,SAAW,EACX,sBACF,UAAW,eAAc,EAAG,aAAc,WAE1C,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,QAGpD,qBAAa,2BAA2B,MAAO,KAAM,OACrD,GAAM,CAAC,YAAa,aAChB,qBAAa,0BAA0B,SAAS,MAAO,MAEvD,SAAW,YACX,UAEF,UAAW,qBAAa,qBAAqB,YAAa,WAG5D,GAAM,QAAS,aAAK,cAAc,aAE5B,UADQ,aAAK,cAAc,EAAE,OACT,OACpB,cAAgB,SAClB,CAAC,OAAQ,CAAC,EAAG,UAAW,MAAO,CAAC,MAAO,CAAC,UAAW,SAAU,QAAA,YAE3D,QAAU,WAAW,EAAE,OAEvB,QAAU,OAAO,cAAe,QAAS,MAAO,WAChD,IACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,MAAO,CAAC,MAAO,UAAW,QAAA,YAE7D,MAAA,WAAQ,8BAA8B,eACtC,UAAQ,8BAA8B,SAClC,sBACF,UAAQ,8BAA8B,UAGjC,ICjDH,cACF,MACF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAE3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEzB,MAAO,SAAQ,EAAG,KAAM,SAAU,WAG7B,GAAM,YAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCZR,oBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MACT,aAAe,UAEf,MAAQ,EAAE,MAAM,OAEhB,SAAqB,GAAI,OAAM,OACrC,OAAS,GAAI,EAAG,EAAI,SAAS,OAAQ,IACnC,SAAS,GAAK,EAAE,MAAM,KAAK,IAG7B,GAAI,KACJ,GAAI,aAAa,mBAAmB,CAAC,KAEnC,GAAM,QADW,aAAa,QAAQ,IAAI,EAAE,QACpB,OAClB,UAAY,iBAAa,OAAQ,EAAE,MAAO,EAAE,MAAO,KAAM,UAE/D,IAAM,aAAa,eAAe,SAAU,EAAE,OAC9C,GAAM,SAAU,aAAa,QAAQ,IAAI,IAAI,QAC7C,QAAQ,OAAS,cAEjB,KAAM,eAAc,EAAG,KAAM,cAE/B,MAAO,KAGF,GAAM,kBAAgC,CAC3C,WAAY,UACZ,YAAa,QACb,WAAY,YC5BD,4BAA8B,IAcrC,yBAA0B,CAC9B,EACA,EACA,WACA,WACA,QAAA,UACA,KAAO,KACP,uBAAyB,KACzB,eAAiB,EACjB,WAAA,YAAa,OAEb,GAAM,OAAQ,EAAE,MAAM,OAChB,MAAQ,EAAE,MAAM,OAEhB,YAAc,WAAa,EAAE,MAAM,MAAQ,GAAK,EAAE,MAAM,MAAQ,GAChE,YAAc,WAAa,EAAE,MAAM,MAAQ,GAAK,EAAE,MAAM,MAAQ,GAEhE,YAAc,WAAa,EAAE,MAAM,MAAQ,GAAK,EAAE,MAAM,MAAQ,GAChE,YAAc,WAAa,EAAE,MAAM,MAAQ,GAAK,EAAE,MAAM,MAAQ,GAEhE,WAAa,EAAE,MAAM,MAAM,EAAG,IAC9B,WAAa,EAAE,MAAM,MAAM,EAAG,IAE9B,UAAY,aAAK,cAAc,YAC/B,UAAY,aAAK,cAAc,YAE/B,oBACF,YAAc,WAAa,YAAc,GAAK,YAAc,EAEhE,aAAK,OACD,OAAS,GAAK,OAAS,GAAK,oBAC5B,IAAM,uJAEsB,oBAAoB,gBAIpD,GAAM,UADF,WAAY,UAAY,EAAE,MAAM,MAAM,EAAG,IAAM,EAAE,MAAM,MAAM,EAAG,KACjC,OAAO,CAAC,YAAa,cAExD,aAAK,OACD,cAAgB,YAChB,IAAM,kCAAkC,qBACjC,uCAAuC,EAAE,aACzC,EAAE,wBAAwB,6BACV,0BAE3B,GAAM,UAAqC,WACvC,CAAC,UAAW,YAAa,aACzB,CAAC,UAAW,YAAa,aACvB,SAAqC,WACvC,CAAC,UAAW,YAAa,aACzB,CAAC,UAAW,YAAa,aAGvB,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,YACvD,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,YAEvD,cAA8B,CAAC,IAAK,KAEpC,SAAW,KAAK,IAAI,UAAW,WAC/B,UAAY,WAAa,IAAI,MAAM,GAAK,IAAI,MAAM,GAElD,QAAU,MAAQ,KAClB,0BAA4B,wBAA0B,KACtD,kBAAoB,cAAe,YACnC,gBAAkB,aAAc,KAClC,6BAA6B,YAAY,IACzC,KACE,iBAAmB,SAAW,2BAChC,mBAAqB,iBAAmB,KACxC,IAIJ,GAAK,eAAgB,GAAK,cAAgB,IACtC,UAAY,6BAA+B,mBAAqB,IAClE,GAAI,MAAO,IACP,KAAO,IACP,YACF,MAAO,WAAU,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,KAAM,CAAC,EAAG,EAAG,MAClE,cAAc,KAAK,OAEjB,YACF,MAAO,WAAU,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,KAAM,CAAC,EAAG,EAAG,MAClE,cAAc,KAAK,OAGrB,GAAM,gBAAiB,cAAgB,EACjC,eAAiB,cAAgB,EAEnC,OAAS,KACT,gBACF,QAAS,SAAQ,CACf,OAAQ,CAAC,EAAG,MACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,SAAU,UAAW,MAGvC,cAAc,KAAK,SAGrB,GAAM,MAAO,cAAgB,EAAI,EAAI,EAEjC,OAAS,KACT,gBACF,QAAS,SAAQ,CACf,OAAQ,CAAC,EAAG,MACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,SAAU,EAAG,cAG/B,cAAc,KAAK,SAGrB,GAAM,SAAU,UAAS,CAAC,OAAQ,CAAC,EAAG,OAAQ,EAAG,QAAS,QAAA,YAC1D,IAAM,KAAI,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,KAAM,SAAU,MAClE,cAAc,KAAK,cAEnB,GAAM,OAAQ,WAAW,EAAE,MAAO,EAAE,OAE9B,QAAU,GAAI,qBAChB,SAAU,SAAU,CAAC,SAAU,YAAa,aAAc,WAC1D,WAAY,QAAS,gBAAiB,0BACtC,mBAEE,OAAuB,CAAC,IAAK,KAOnC,GANI,MAAQ,MACV,OAAO,KAAK,MAEV,2BACF,OAAO,KAAK,wBAEV,mBACF,GAAM,iBAAkB,UAAQ,eAC5B,GAAI,UACJ,aAAK,kBAAkB,eAAmC,YAC9D,OAAO,KAAK,iBACZ,cAAc,KAAK,iBAGrB,IAAM,UAAQ,gBAAgB,QAAS,OAAQ,OAGjD,GAAM,aACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,MAAO,YACvD,cAAc,KAAK,KACnB,OAAW,KAAK,eACd,UAAQ,8BAA8B,GAExC,MAAO,aC5KH,uBAAuB,MAK3B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,EAAG,KAAM,wBAA0B,OACvC,CAAC,WAAY,WAAY,WAAA,YAAY,gBAAkB,MAE7D,MAAO,iBAAgB,CACrB,EACA,EACA,WACA,WACA,QAAA,UACA,KACA,uBACA,eACA,WAAA,cAIG,GAAM,qBAAmC,CAC9C,WAAY,aACZ,YAAa,QACb,WAAY,eCvBR,KAAM,iBAEN,cAAc,MAElB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAIZ,GAAI,UAAQ,mBAAmB,CAAC,KAAO,EAAE,QAAU,aACjD,GAAM,OAAQ,UAAQ,QAAQ,IAAI,EAAE,QAC9B,UAAY,iBAAiB,MAAM,QACzC,MAAO,WAAQ,eAAe,EAAE,MAAO,EAAE,MAAO,WAGlD,GAAI,SACJ,MAAI,OAAM,QAAQ,+BAChB,QAAU,GAAI,sBAAqB,EAAE,MAAO,MAE5C,QAAU,GAAI,gBAAe,EAAE,MAAO,MAEjC,UAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,OAG1C,GAAM,YAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MC7BR,KAAO,kBAAoB;;;;;EAOpB,MAAO,iBAAgB,CAAC,UAAW,OAEnC,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCXR,MAAQ,kBAAoB;;oCAIrB,OAAQ,iBAAgB,CAAC,UAAW,QAEpC,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCVR,IAAM,gBAEC,cAAgB,kBAAiB,CAC5C,UAAW,IACX,gBAAiB,IACjB,gBAAiB,GACjB,cAAe,aAGJ,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,eClCd,YAAA,MAwBE,YAAY,YAAuB,QAHnC,KAAA,YAAwB,GAItB,KAAK,YAAc,YACnB,KAAK,cAAgB,OAAO,IAAI,CAAC,EAAG,IAAM,IAAI,KAE9C,GAAM,UAAqB,GAE3B,KAAK,cAAc,QAAQ,YACzB,SAAS,KAAK,UAAU,kBAAiB,6BAI3C,GAAM,WAAY,KAAK,cACA,IAAI,WACI,IAAI,aAEZ,KAAK,OAE5B,KAAK,SAAW;;UAEV,SAAS,KAAK;;;yBAEC;;;QC7CzB,kBAAA,MA0BE,YAAY,YAAuB,QALnC,KAAA,YAAwB,GAExB,KAAA,aAAe,GACf,KAAA,aAAe,GAGb,KAAK,YAAc,YACnB,KAAK,cAAgB,OAAO,IAAI,CAAC,EAAG,IAAM,IAAI,KAE9C,GAAM,UAAqB,GAE3B,KAAK,cAAc,QAAQ,YACzB,SAAS,KAAK,SAAS,kBAAiB,6BAI1C,GAAM,WAAY,KAAK,cACA,IAAI,WACI,IAAI,aAEZ,KAAK,OAE5B,KAAK,SAAW;;UAEV,SAAS,KAAK;;;wBAEA;;;QCvBlB,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KAEpB,QAAU,OAChB,GAAI,QAAQ,SAAW,EACrB,MAAO,WAAS,CAAC,OAAQ,CAAC,EAAG,QAAQ,IAAK,QAAA,YAI5C,GAAI,QAAQ,OAAS,MAAM,IAAI,iCAC7B,GAAM,UAAW,KAAK,MAAM,QAAQ,OAAS,GACvC,SAAW,MAAK,CAAC,OAAQ,QAAQ,MAAM,EAAG,UAAW,QAAA,YACrD,UAAY,MAAK,CAAC,OAAQ,QAAQ,MAAM,UAAW,QAAA,YACzD,MAAO,OAAK,CAAC,OAAQ,CAAC,SAAU,WAAY,QAAA,YAG9C,GAAM,OACF,QAAQ,IAAI,GAAK,EAAE,OAAO,OAAO,CAAC,GAAI,KAAO,WAAW,GAAI,KAC1D,OAAS,QAAQ,IAAI,GAAK,EAAE,OAG5B,QADc,MAAM,QAAQ,cAE9B,GAAI,mBAAkB,QAAQ,GAAG,MAAO,QACxC,GAAI,aAAY,QAAQ,GAAG,MAAO,QACtC,MAAO,WAAQ,gBAAgB,QAAS,QAAS,OAG5C,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OC9BR,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEnB,MAAQ,EAAE,MAAM,OAEhB,SAAW,aAAK,eAAe,KAAM,EAAE,OACzC,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,OACvD,UAAY,EACZ,cAAgB,MAClB,WAAY,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBAC3D,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,QAGpD,qBAAa,2BAA2B,MAAO,KAAM,OACrD,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,UAAU,MAAO,MACtD,OAAS,aAAK,cAAc,aAE5B,IACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,WAAY,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,GAAI,WAC5D,QAAU,OAAO,IAAK,IAAI,MAAO,MAAO,WAE1C,IACJ,GAAI,UACF,GAAM,UAAW,qBAAa,qBAAqB,SAAU,UAC7D,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,gBAE7D,KAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,YAG/D,MAAA,WAAQ,8BAA8B,KACtC,UAAQ,8BAA8B,SAElC,cAAgB,MAClB,UAAQ,8BAA8B,WAGjC,IAGF,GAAM,YAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCjDR,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEnB,MAAQ,EAAE,MAAM,OAEhB,SAAW,aAAK,eAAe,KAAM,EAAE,OACzC,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,OACvD,UAAY,EACZ,cAAgB,MAClB,WAAY,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBAC3D,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,QAGpD,qBAAa,2BAA2B,MAAO,KAAM,OACrD,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,UAAU,MAAO,MACtD,OAAS,aAAK,cAAc,aAE5B,IACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,WAAY,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,GAAI,WAC5D,QAAU,OAAO,IAAK,IAAI,MAAO,MAAO,WAE1C,IACJ,GAAI,UACF,GAAM,UAAW,qBAAa,qBAAqB,SAAU,UAC7D,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,gBAE7D,KAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,YAG/D,MAAA,WAAQ,8BAA8B,KACtC,UAAQ,8BAA8B,SAElC,cAAgB,MAClB,UAAQ,8BAA8B,WAGjC,IAGF,GAAM,YAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCxEd,iBAAA,MAyBE,YACI,WAAqC,IACrC,WANJ,KAAA,cAAgB,CAAC,KAOf,GAAM,CAAC,WAAY,UAAW,SAAW,WACpC,WACH,KAAK,cAAc,KAAK,gBAE1B,KAAK,YAAc,CAAC,UAAW,SAC/B,GAAM,QAAU,MAAO,MAAS,IAAM,IAChC,aAAe,UACjB,gBACA,+CAEJ,KAAK,SAAW;;;;;kCAKc;;;;;8BAKJ;wBACN;;0BAEE;;;;;;;QCnD1B,uBAAA,MA8BE,YACI,MAAiB,WAAoB,IACrC,WARJ,KAAA,cAAgB,CAAC,KAGjB,KAAA,aAAe,GACf,KAAA,aAAe,GAKb,aAAK,OACD,MAAM,OAAS,EACf,IAAM,aACF,IAAG,OAAO,GAAG,cACb,IAAG,MAAM,8CACjB,GAAM,QAAS,MAAM,MAAM,OAAS,GAC9B,QAAU,KAAK,KAAK,OAAS,YACnC,KAAK,YAAc,MAAM,MAAM,EAAG,IAC9B,QAAU,GACZ,KAAK,YAAY,KAAK,SAEnB,WACH,KAAK,cAAc,KAAK,gBAE1B,GAAM,UAAW,KAAK,YAChB,KAAO,SAAS,OAChB,MAAQ,kBAAkB,MAC1B,QAAS,YAAY,SAAU,MAEjC,eACA,WACJ,GAAI,UAAY,GACd,WAAa,KAAO,EACpB,GAAM,gBAAiB,kBAAkB,YACzC,eAAiB;UACb,+BAA+B,kBAAkB,QAAO;YACtD,QAAO,KAAO;UAChB,+BAA+B,kBAAkB,QAAO;YACtD,QAAO,KAAO;UAChB,+BAA+B,kBAAkB,QAAO;YACtD,QAAO,KAAO;UAChB,+BAA+B,kBAAkB,QAAO;YACtD,QAAO,KAAO,UAEpB,YAAa,KACb,eAAiB;UACb;YACE,QAAO,KAAO;UAChB;YACE,QAAO,KAAO;UAChB;YACE,QAAO,KAAO;UAChB;YACE,QAAO,KAAO,MAEtB,GAAM,UAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAK,MAAM,EAAG,YACnD,UAAY,IAAM,SAAS,WAAa,GACxC,YAAc,SAAS,IAAI,GAAK,OAAS,GACzC,WACF,YAAY,aAAc,WAAa,GAAG,OAAO,WAC/C,WACF,YAAY,aAAc,WAAa,GAAG,OAAO,WAC/C,WACF,YAAY,aAAc,WAAa,GAAG,OAAO,WAC/C,WACF,YAAY,aAAc,WAAa,GAAG,OAAO,WAE/C,OAAU,MAAO,MAAS,cAAgB,WAC1C,kBAAoB,UAAY,GAAK;sDACO,WAAW;sDACX,WAAW;sDACX,WAAW;sDACX,WAAW,aAEvD,WAAa;0BACG,WAAW;uCACE,WAAW;uCACX,WAAW;qDACG,WAAW,gBAEtD,8BAAgC,UAAY,GAAK;qCACtB,YAAY;4CACL,SAAS;iDACJ,SAAS,MAAM,IAAI;SAGhE,KAAK,SAAW;0BACM,YAAY;iCACL,SAAS;sCACJ,SAAS,MAAM,IAAI;;QAEjD;;UAEE;4BACkB,QAAO,KAAO,QAAQ,SAAS,KAAO,GAAK;4BAC3C,QAAO,KAAO,QAAQ,SAAS,KAAO,GAAK;UAC7D;yCAC+B,wBAAwB;sBAC3C,wBAAwB,gBAAgB;;;2BAGnC;;8BAEG;;YAElB;6BACiB;;;mBAGV;;;;;;;;;;;QC5GnB,mBACI,UAA2B,EAAe,WAC1C,aAA2B,MAC7B,GAAI,WAAY,EAAE,MAAM,GACpB,OAAS,EAAE,MAAM,GACjB,cAAgB,MAClB,WAAY,aAAa,MAAM,GAC/B,OAAS,aAAa,MAAM,IAE9B,GAAM,YAAa,qBAAa,yBAAyB,QACnD,WACF,CAAC,WAAY,OAAQ,UAAW,QAAS,KAAK,KAAK,OAAS,aAC1D,QACF,GAAI,kBAAiB,WAAY,WAAY,cAAgB,MAC3D,OAAS,CAAC,GACZ,cAAgB,MAClB,OAAO,KAAK,cAEd,GAAM,QAAS,UAAQ,gBAAgB,QAAS,OAAQ,SAExD,GAAI,OAAO,MAAM,KAAO,EACtB,MAAO,QAET,GAAM,QAAS,UAAU,UAAS,EAAG,WAAY,QACjD,MAAA,WAAQ,8BAA8B,QAC/B,OAGT,yBACI,UAA2B,EAAe,WAC1C,aAA2B,MAC7B,GAAM,SAAU,cAAgB,KAAO,aAAa,MAAQ,EAAE,MACxD,OAAS,QAAQ,QAAQ,OAAS,GAClC,WAAa,qBAAa,yBAAyB,QACnD,QAAU,GAAI,wBAChB,QAAS,WAAY,WAAY,cAAgB,MAC/C,OAAS,cAAgB,KAAO,CAAC,GAAK,CAAC,EAAG,cAC1C,OAAS,UAAQ,gBAAgB,QAAS,OAAQ,SACxD,GAAI,OAAO,MAAM,SAAW,EAAE,MAAM,QAClC,GAAM,QAAS,gBAAgB,UAAS,EAAG,WAAY,QACvD,MAAA,WAAQ,8BAA8B,QAC/B,OAET,MAAO,QAGH,yBACF,UAA2B,EAAe,KAC1C,YACF,GAAM,MAAO,CAAC,MAId,GAHA,qBAAa,2BACT,MAAQ,WAAW,OAAO,GAAG,cAAgB,WAAW,MAAM,GAAI,KAClE,EAAE,MAAM,QACR,CAAC,MAAM,QAAQ,sBAAwB,EAAE,MAAM,QAAU,GAC3D,GAAM,yBAA0B,GAC1B,CAAC,SAAU,aACb,qBAAa,0BAA0B,EAAE,MAAO,MAC9C,OAAS,aAAK,cAAc,aAC5B,IAAM,SAAQ,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,GAAI,WAC/D,wBAAwB,KAAK,KAE7B,GAAM,SAAU,UAAU,UAAS,IAAK,YACxC,wBAAwB,KAAK,SAC7B,GAAM,UACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,YAE3D,MAAA,yBAAwB,QACpB,GAAK,UAAQ,8BAA8B,IACxC,SAET,MAAO,iBAAgB,UAAS,EAAG,YCtE/B,iBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MAEX,KAAO,aAAK,eAAe,KAAM,EAAE,OACjC,aAAe,qBAAa,mBAAmB,KAAM,EAAE,MAAM,QAC/D,GAAK,EACH,wBAA0B,GAC5B,cAAgB,MAClB,IAAK,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBACpD,wBAAwB,KAAK,IAC7B,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,GAAG,MAAM,SAG7D,qBAAa,2BAA2B,SAAU,CAAC,KAAK,IAAK,GAAG,MAAM,QACtE,GAAM,KAAM,gBAAgB,UAAS,GAAI,KAAK,GAAI,OAElD,MAAA,yBAAwB,QACpB,GAAK,UAAQ,8BAA8B,IACxC,IAGF,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SC9BR,iBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MAEX,KAAO,aAAK,eAAe,KAAM,EAAE,OACjC,aAAe,qBAAa,mBAAmB,KAAM,EAAE,MAAM,QAC/D,GAAK,EACH,wBAA0B,GAC5B,cAAgB,MAClB,IAAK,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBACpD,wBAAwB,KAAK,IAC7B,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,GAAG,MAAM,SAG7D,qBAAa,2BAA2B,SAAU,CAAC,KAAK,IAAK,GAAG,MAAM,QAEtE,GAAM,KAAM,gBAAgB,UAAS,GAAI,KAAK,GAAI,OAElD,MAAA,yBAAwB,QACpB,GAAK,UAAQ,8BAA8B,IACxC,IAGF,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SC/BR,KAAO,kBAAoB;;;;;EAOpB,MAAO,iBAAgB,CAAC,UAAW,OAEnC,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCZR,MAAQ,kBAAoB,qCAErB,OAAQ,iBAAgB,CAAC,UAAW,QAEpC,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCPR,KAAO,kBAAoB;;EAIpB,MAAO,iBAAgB,CAAC,UAAW,OAEnC,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCTR,MAAQ,yBAA2B;;EAInC,aAAe;;;IAIjB,gCAAkC;;EAIzB,OACT,kBAAiB,CAAC,UAAW,MAAO,gBAAiB,eAE5C,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QClBR,MAAQ,kBAAoB;;6CAIrB,OAAQ,iBAAgB,CAAC,UAAW,QAEpC,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QC/Bd,cAAA,MAyBE,YACI,SAAmC,SACnC,iBAA2B,iBAAmB,GAC9C,oBAAsB,IACxB,GARF,KAAA,cAAgB,CAAC,KAQX,WAAa,OAAS,iBACxB,KAAM,IAAI,OAAM,8CAGlB,GAAM,aAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAEhC,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KACjC,KAAK,YAAc,SAAS,SAE5B,GAAM,WAAY,WAAa,MACzB,wBAA0B,cAAc,SAAS,oBACnD,SAAS,mBAAmB,SAAS,iBACnC,mBACF,SAAS,SAAS,mBAAmB,SAAS,iBAE9C,oBAAsB,MAM1B,GALK,WAEH,qBAAsB,gBAGpB,kBACF,GAAM,YAAY,KAElB,KAAK,SAAW;sCACgB,iBAAiB;mCACpB,WAAW;;;;;;;;;;;;;;;;;;kCAkBZ;sBACZ;;;kCAGY,SAAS;;;;oCAIP;wBACZ;;;oCAGY,SAAS;;;;;;;;;;0BAUnB;;;mCAIhB,iBAAoB,oBAAsB,wBACA,mBACvB,QAAQ;;;;;;QAO/B,OAGF,GAAM,WAAY,MAEd,YAAc,GAAG,YAAY,YAAY,6EAEzC,WAAa,OACf,aAAc,oBAGhB,GAAM,wBAAyB,KAAK,MAAM,YAAc,GAAK,EACvD,yBAA2B,YAAc,EAEzC,cAAgB;YACd;;;wBAGY;;MAIpB,KAAK,SAAW;oCACgB,iBAAiB;iCACpB,WAAW;0CACF;;;;;;8BAMZ,SAAS;;;;;;;;;;;;;;;;;;kCAkBL;;;;gCAIF;oBACZ;;;gCAGY,SAAS;;;;kCAIP;uCACK;;;;yCAIE;6CACI;6CACA;;;cAG/B;;;gCAGkB;gBAChB,2BAA6B;;;;;;;;cAQ/B;uBACS,2BAA6B;;;yCAGX;;;;;cAK3B;uBACS,2BAA6B;;;yCAGX;6CACI;;;;cAI/B;;;oBAGM;;QA3NpB,cAAA,MAsOE,YACI,SAAmC,SACnC,iBAA2B,iBAAmB,GAC9C,oBAAsB,IACxB,GARF,KAAA,cAAgB,CAAC,KAQX,WAAa,OAAS,iBACxB,KAAM,IAAI,OAAM,8CAGlB,GAAM,aAAc,SAAS,YACvB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,cAAgB,SAAS,cACzB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,qBAAuB,SAAS,qBAChC,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAEhC,SAAW,SAAS,QAAQ,MAC5B,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KACjC,KAAK,YAAc,SAAS,SAE5B,GAAM,WAAY,WAAa,MAE3B,oBAAsB,MAM1B,GALK,WAEH,qBAAsB,gBAGpB,kBACF,GAAM,YAAY,KAElB,KAAK,SAAW;;oBAEF,gBAAgB,iBAAiB;mCAClB,aAAa,WAAW;;;;;;;;;;;;;;;;;;kCAkBzB;sBACZ;;;kCAGY,SAAS;;;;oCAIP;wBACZ;;;oCAGY,SAAS;;;;sCAIP;0BACZ;;;sCAGY,SAAS;;;;;;;;;;4BAUnB;;;qCAIlB,iBACK,oBACI,cAAc,SAAS,mBACnB,SAAS,oBAAoB,SAAS,mBACtC,SAAS,kBACb,UAAU,SAAS,oBACf,SAAS,mBAAmB,SAAS,kBAC9C,QAAQ,2BAA2B;6BACpB;;;;;;;QAQvB,OAGF,GAAM,WAAY,MAEd,YAAc,GAAG,YAAY,YAAY,6EAEzC,WAAa,OACf,aAAc,oBAGhB,GAAM,wBAAyB,KAAK,MAAM,YAAc,GAAK,EACvD,yBAA2B,YAAc,EAEzC,cAAgB;YACd;;;wBAGY;;MAIpB,KAAK,SAAW;;gBAEJ,gBAAgB,iBAAiB;iCAChB,aAAa,WAAW;0CACf;;;;;;8BAMZ,SAAS;;;;;;;;;;;;;;;;;;;kCAmBL;;;;gCAIF;oBACZ;;;gCAGY,SAAS;;;;kCAIP;oBACd;;;kCAGc,SAAS;;;;oCAIP;yCACK;;;;+CAIM;mDACI;mDACA;;;gBAGnC;;;kCAGkB;kBAChB,2BAA6B;;;;;;;;gBAQ/B;yBACS,2BAA6B;;;+CAGP;;;;;gBAK/B;yBACS,2BAA6B;;;+CAGP;mDACI;;;;gBAInC;;;sBAGM;;;QC3ahB,kBAAkB,MAKtB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACZ,kBAAiB,EAAG,WACpB,GAAM,CAAC,WAAY,QAAS,IAAA,KAAK,iBAAmB,MAC9C,UAAY,EAElB,aAAK,OACD,qBAAa,+BAA+B,QAAS,WACrD,IAAM,wEACa,0BAA0B,cAEjD,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,UAAW,KAAK,iBACpB,GAAI,SAAS,cAAgB,GAAK,SAAS,eAAiB,GACxD,aAAK,YAAY,SAAS,QAAS,SAAS,UAC9C,MAAO,WAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YAEhC,GAAM,gBAAiB,GAAI,eAAc,SAAU,MAAO,IAC1D,MAAO,WAAQ,gBAAgB,eAAgB,CAAC,GAAI,WAG/C,GAAM,gBAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UChCR,oBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,WAAY,QAAS,IAAA,KAAK,gBAAiB,YAAc,MAC1D,UAAsC,CAAC,EAAG,EAAG,GAE7C,SAAW,qBAAa,kBAC1B,EAAE,MAAmD,WAAY,QACjE,UAAW,KAAK,gBAAiB,YAC/B,eAAiB,GAAI,eAAc,SAAU,MAAO,IAC1D,MAAO,WAAQ,gBAAgB,eAAgB,CAAC,GAAI,WAG/C,GAAM,kBAAgC,CAC3C,WAAY,UACZ,YAAa,QACb,WAAY,YCzCd,yBAAA,MAyBE,YAAY,UAJZ,KAAA,cAAgB,CAAC,MAKf,KAAK,YAAc,SAAS,QAC5B,GAAM,cAAe,SAAS,aACxB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAEhC,OAAS,sBAAwB,EAAI,SAAS,QAAQ,IACtD,QAAU,qBAAuB,EAAI,SAAS,QAAQ,KAEtD,cAAgB,EAAK,cAAe,aAE1C,KAAK,SAAW;iCACa,WAAW;0CACF;;;;;;;;;;;;;;gCAcV;oBACZ;gDAC4B;;oCAEZ,SAAS;;;;;kCAKX;mBACf;kDAC+B;;sCAEZ,SAAS;;;;;;;;;;;;;QAtE/C,yBAAA,MA4FE,YAAY,UAJZ,KAAA,cAAgB,CAAC,MAKf,KAAK,YAAc,SAAS,QAC5B,GAAM,aAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,cAAgB,SAAS,cACzB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,qBAAuB,SAAS,qBAChC,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAEhC,SAAW,qBAAuB,EAAI,SAAS,QAAQ,MACvD,OAAS,sBAAwB,EAAI,SAAS,QAAQ,IACtD,QAAU,qBAAuB,EAAI,SAAS,QAAQ,KAEtD,cAAgB,EAAK,aAAc,aAAe,aAExD,KAAK,SAAW;iCACa,aAAa,WAAW;0CACf;;;;;;;;;;;;;;;;;gCAiBV;oBACZ;gDAC4B;;oCAEZ,SAAS;;;;;kCAKX;sBACZ;kDAC4B;;sCAEZ,SAAS;;;;;;oCAMX;wBACZ;oDAC4B;;wCAEZ,SAAS;;;;;;;;;;;;;;QCtI3C,wBAAwB,MAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,MAAA,QAAS,OACd,EAAI,OACJ,CAAC,WAAY,QAAS,IAAA,KAAK,iBAAmB,MAC9C,UAAsC,CAAC,EAAG,EAAG,GAE7C,SAAW,qBAAa,kBAC1B,EAAE,MAAmD,WAAY,QACjE,UAAW,KAAK,iBACd,uBAAyB,GAAI,0BAAyB,UAC5D,MAAO,WAAQ,gBAAgB,uBAAwB,CAAC,IAAK,EAAE,OAG1D,GAAM,qBAAoC,CAC/C,WAAY,cACZ,YAAa,QACb,WAAY,gBCpBR,sBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,MAAA,QAAS,OACd,EAAI,OACV,kBAAiB,CAAC,GAAI,QAAQ,eAC9B,GAAM,CAAC,WAAY,QAAS,IAAA,MAAO,MAE7B,SAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,EAAmB,MACjB,uBAAyB,GAAI,0BAAyB,UAC5D,MAAO,WAAQ,gBAAgB,uBAAwB,CAAC,IAAK,EAAE,OAG1D,GAAM,oBAAkC,CAC7C,WAAY,YACZ,YAAa,QACb,WAAY,cCrBR,sBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,GAAK,OACT,CAAC,WAAY,YAAc,MAEjC,MAAO,iBAAgB,CAAC,EAAG,EAAG,WAAY,WAAY,QAAA,YAGjD,GAAM,oBAAkC,CAC7C,WAAY,YACZ,YAAa,QACb,WAAY,cCrCd,iBAAA,MAyBE,YACI,OAAkB,UAAqB,cACvC,YAA4B,WAC5B,iBANJ,KAAA,YAAwB,GAOtB,KAAK,cAAgB,CAAC,IAAK,OAAQ,YACnC,qBAAa,2BAA2B,OAAQ,WAChD,qBAAa,2BAA2B,OAAQ,eAEhD,GAAI,eAAgB,MAChB,aAAe,MACjB,sBAAa,2BAA2B,OAAQ,aAChD,KAAK,cAAc,KAAK,UACxB,cAAgB,0BAGlB,GAAI,cAAe,MACf,YAAc,MAChB,sBAAa,2BAA2B,OAAQ,YAChD,KAAK,cAAc,KAAK,SACxB,aAAe,yBAGjB,KAAK,YAAc,OACnB,KAAK,SAAW;;;;;yBAKK;wBACD;2DACmC;;;QCvD3D,uBAAA,MA2BE,YACI,OAAkB,UAAqB,cACvC,YAA4B,WAC5B,iBANJ,KAAA,aAAe,GACf,KAAA,aAAe,GAMb,KAAK,cAAgB,CAAC,IAAK,OAAQ,YACnC,qBAAa,2BAA2B,OAAQ,WAChD,qBAAa,2BAA2B,OAAQ,eAEhD,GAAI,eAAgB,YAChB,aAAe,MACjB,sBAAa,2BAA2B,OAAQ,aAChD,KAAK,cAAc,KAAK,UACxB,cAAgB,0BAGlB,GAAI,cAAe,YACf,YAAc,MAChB,sBAAa,2BAA2B,OAAQ,YAChD,KAAK,cAAc,KAAK,SACxB,aAAe,yBAGjB,KAAK,YAAc,OACnB,KAAK,SAAW;;wBAEI;uBACD;;;;;;yDAMkC;;;;QCnC5C,WAIM,CAAC,CAAC,OAAQ,QAAA,UAAS,UACpC,GAAM,CAAC,EAAG,KAAA,MAAM,SAAU,OAAQ,MAAA,QAAS,OAE3C,aAAK,OACD,MAAK,MAAM,SAAW,SAAS,MAAM,OACrC,IAAM,gFAEV,aAAK,OACD,QAAU,MAAQ,MAAK,MAAM,SAAW,OAAO,MAAM,OACrD,IAAM,8EAEV,aAAK,OACD,QAAS,MAAQ,MAAK,MAAM,SAAW,OAAM,MAAM,OACnD,IAAM,6EAGV,GAAI,CAAC,iBAAmB,MACpB,iBAAmB,MACrB,iBAAkB,MAGpB,GAAM,aAAc,CAAC,EAAG,MAAM,UAE1B,YAAc,KACd,QAAU,MACZ,aAAc,OAAO,MACrB,YAAY,KAAK,SAGnB,GAAI,YAAa,KACb,QAAS,MACX,YAAa,OAAM,MACnB,YAAY,KAAK,SAGnB,GAAM,SAAU,MAAM,QAAQ,4BAC1B,GAAI,wBACA,EAAE,MAAO,MAAK,MAAO,SAAS,MAAO,YAAa,WAClD,iBACJ,GAAI,kBACA,EAAE,MAAO,MAAK,MAAO,SAAS,MAAO,YAAa,WAClD,iBAIR,MAFI,WAAQ,gBAAgB,QAAS,YAAa,YAAY,GAAG,QAKtD,iBAAgC,CAC3C,WAAY,eACZ,YAAa,QACb,WAAY,YC/Ed,aAAA,MA8BE,YAAY,UARZ,KAAA,cAAgB,CAAC,UASf,KAAK,YAAc,SACnB,KAAK,KAAO,SAAS,OAErB,GAAM,OAAQ,kBAAkB,KAAK,MAC/B,YAAc,qBAAqB,KAAK,SACxC,aAAe,UAAU,KAAK,MAEhC,MACE,SAAW,SAAS,IAAI,CAAC,EAAG,IACzB,aAAa,OAAO,cAAc,eAAe,OAAO,OAEjE,MAAO;UACD;UACA;UACA,SAAS,KAAK;;QAEpB,KAAK,SAAW;QACZ;;UAEE;8BACoB;;MAK5B,mBAAmB,OACjB,GAAI,MAAM,SAAW,KAAK,KACxB,KAAM,OACF,aAAa,KAAK,wDACE,MAAM,WAEhC,MAAO,CAAC,MAAqB,gBACvB,KAAK,UAAY,MACnB,MAAK,SAAW,MAAM,0BAA0B,aAAc,SAC1D,KAAK,UAAY,OAMvB,MAAM,GAAG,WAAW,KAAK,SAAU,UAKnC,OAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAEzC,mBAAmB,MACjB,GAAI,OAAS,EACX,MAAO,YACF,GAAI,MAAQ,EACjB,MAAO,QAAO,MAAM,EAAG,MAAM,IAAI,GAAK,aAAe,GAAG,KAAK,KAE7D,KAAM,OAAM,oBAAoB,6BCpFpC,GAAA,oBAAA,MAiCE,YAAY,UAVZ,KAAA,cAAgB,CAAC,UACjB,KAAA,aAAe,GACf,KAAA,aAAe,GASb,KAAK,YAAc,SACnB,KAAK,KAAO,SAAS,OAErB,GAAM,OAAQ,kBAAkB,KAAK,MAC/B,QAAS,YAAY,SAAU,KAAK,MACpC,UAAY,YAAY,YAAa,KAAK,MAE1C,UACF,KAAK,OAAS,EAAI,YAAc,QAAQ,UAAU,MAAM,IAAI,UAC1D,WACF,wBAAwB,UAAU,YAAY,aAC5C,SAAW;mBACF;cACL,QAAO,KAAK,KAAO,QAAQ,SAAS,KAAK,KAAO;YAClD,UAAU,KAAK,KAAO;qBACb;YACT,UAAU,KAAK,KAAO;;MAGxB,SAAW,KAAK,OAAS,EAAI,GAAK;UAClC,QAAO,KAAK,KAAO;cACf,QAAO,KAAK,KAAO,QAAQ,SAAS,KAAK,KAAO;YAClD,UAAU,KAAK,KAAO;qBACb;gBACL,QAAO,KAAK,KAAO,QAAQ,SAAS,KAAK,KAAO;cAClD,UAAU,KAAK,KAAO;uBACb;;;MAKb,eAAiB,KAAK,MAAQ,EAChC;cACM,SAAS,SAAS,IAAI,CAAC,EAAG,IAAM,SAAS,MAAM,WACrD,SAAS,IAAI,CAAC,EAAG,IAAM,GAAG,UAAU,QAAQ,QAAO,cAAc,OAC5D,KAAK;GACd,KAAK,SAAW;0BACM,KAAK;;UAErB;UACA;UACA;;UAEA;UACA;;;MAMR,mBAAmB,OACjB,GAAI,MAAM,SAAW,KAAK,KACxB,KAAM,OACF,aAAa,KAAK,wDACE,MAAM,WAEhC,MAAO,CAAC,MAAqB,gBACvB,KAAK,UAAY,MACnB,MAAK,SAAW,MAAM,0BAA0B,aAAc,SAC1D,KAAK,UAAY,OAMvB,MAAM,GAAG,WAAW,KAAK,SAAU,UC3EzC,sBACI,EAAe,MAAiB,KAAgB,WAClD,GAAM,UAAW,UAAQ,QAAQ,IAAI,EAAE,QACjC,EAAI,UAAQ,eAAe,KAAM,EAAE,OACnC,WAAa,UAAQ,QAAQ,IAAI,EAAE,QAEzC,OAAO,OAAO,WAAY,UAC1B,WAAW,MAAQ,KACnB,WAAW,MAAQ,EAAE,MACrB,GAAI,YACA,mBAAW,kBAAkB,MAAO,aAAK,eAAe,EAAE,QAC1D,SAAS,OAGX,aAAc,SAAS,MAAM,YAE/B,WAAW,MAAQ,CACjB,WAEA,WAAY,SAAS,OAAS,SAAS,MAAM,YAAc,EAAE,QAI/D,GAAM,UAAW,UAAQ,aAAa,IAAI,WAAW,MAAM,aAAe,EAC1E,MAAA,WAAQ,aAAa,IAAI,WAAW,MAAM,WAAY,SAAW,GAC1D,EAGH,gBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAO,MAAQ,MAEhB,CAAC,OAAQ,OAAS,mBAAW,iBAAiB,EAAG,MAAO,MAG9D,GAFA,mBAAW,kBAAkB,EAAG,OAAQ,OAEpC,aAAK,cAAc,SAAW,EAChC,MAAO,WAAQ,eAAe,MAAO,EAAE,MAAO,IAShD,GAAI,UAAQ,mBAAmB,CAAC,KAAO,EAAE,QAAU,UACjD,GAAM,UAAW,UAAQ,QAAQ,IAAI,EAAE,QACjC,UAAY,aACd,SAAS,OAAsB,OAAQ,MAAO,EAAE,MAAO,EAAE,OAC7D,MAAO,WAAQ,eAAe,MAAO,EAAE,MAAO,WAGhD,GAAM,CAAC,UAAY,UAAQ,QAAQ,IAAI,EAAE,QACnC,YAAc,mBAAW,iBAAiB,EAAE,MAAO,OAAQ,OACjE,GAAI,UAAY,CAAC,aACf,GAAM,SAAU,MAAM,QAAQ,+BAC1B,GAAI,oBAAmB,OACvB,GAAI,cAAa,OACf,YAAc,QAAQ,mBAAmB,QAC/C,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,MAAO,aAExD,MAAA,WAAQ,YAAY,EAAE,QACf,aAAa,EAAG,OAAQ,MAAO,WAGjC,GAAM,cAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCtED,gBAAkB,OAK7B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,WAAY,OAAS,MAE5B,aAAK,OACD,EAAE,MAAM,QAAU,EAClB,IAAM,wEAEV,GAAM,OAAO,WAAW,OAAO,CAAC,EAAG,IAAM,EAAI,GAEvC,SAAW,qBAAa,YAAY,EAAE,MAAO,WAAY,OACzD,SAAW,qBAAa,YAAY,SAAS,OAAQ,WAAW,QAChE,iBACF,qBAAa,oBAAoB,EAAE,MAAO,WAAY,OACpD,iBACF,qBAAa,oBAAoB,MAAO,WAAW,QACjD,UACF,qBAAa,aAAa,iBAAkB,MAAO,WAAW,QAE5D,UAAY,GAEZ,qBACF,SAAQ,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,YAC5C,uBAAyB,WAC3B,CAAC,OAAQ,CAAC,EAAG,sBAAuB,QAAA,UAAS,MAAO,CAAC,KAAM,YACzD,sBAAwB,SAAQ,CACpC,OAAQ,CAAC,EAAG,wBACZ,QAAA,UACA,MAAO,CAAC,MAAO,oBAEX,OAAS,OAAM,CACnB,OAAQ,CAAC,EAAG,uBACZ,QAAA,UACA,MAAO,CAAC,MAAO,iBAAkB,KAAM,aAGzC,MAAA,WAAU,KAAK,sBACf,UAAU,KAAK,wBACf,UAAU,KAAK,uBAEf,UAAU,QAAQ,GAAK,UAAQ,8BAA8B,IAEtD,QAGI,sBAAqC,CAChD,WAAY,eACZ,YAAa,QACb,WAAY,iBCxDR,mBAAmB,MAKvB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,SAAW,OACf,CAAC,MAAQ,MAET,MAAQ,UAAQ,SAAS,EAAE,QAC3B,YAAc,UAAQ,SAAS,QAAQ,QAEvC,QACF,gBAAgB,MAAO,YAAa,QAAQ,MAAO,QAAQ,MAAO,MAEtE,MAAO,WAAQ,eAAe,CAAC,MAAO,QAAQ,MAAO,SAGhD,GAAM,iBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WCtBR,UAAY,wBAEL,UAAW,kBAAiB,CAAC,UAAW,UAAW,MAAO,SAE1D,gBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WCNR,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,MAAA,QAAS,OACV,UAAY,UAAQ,QAAQ,IAAI,OAAM,QAE5C,MAAO,WAAS,CAAC,OAAQ,CAAC,EAAG,UAAU,mBAAmB,MAAO,QAAA,YAG5D,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCZR,OAAS,wBAET,aAAc,OAAmB,WACrC,GAAM,SAAU,GAAI,gBAAe,OAAM,MAAO,QAC1C,OAAS,UAAQ,gBAAgB,QAAS,CAAC,QAAQ,SACzD,MAAO,CAAC,OAAQ,OAAO,OAAQ,MAAO,OAAO,MAAO,MAAO,OAAO,OCC9D,eACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,OAAS,MAGhB,GAAI,QAAU,aACZ,GAAI,EAAE,QAAU,YACd,MAAO,WAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YAIhC,GAAM,aAAiB,MAAM,EAAE,OACzB,OAAS,MAAK,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,aAEpD,OACF,SAAQ,CAAC,OAAQ,CAAC,KAAM,OAAQ,KAAM,aAAc,QAAA,YAExD,MAAA,aAAY,UACZ,UAAQ,8BAA8B,QAE/B,OAIT,GAAI,EAAE,QAAU,aACd,GAAM,UAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,OAAS,MAAK,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,UAAS,MAAO,CAAC,SAC7D,MAAA,WAAQ,8BAA8B,UAC/B,OAGT,GAAI,CAAC,aAAK,gBAAgB,EAAE,MAAO,QAGjC,GAAM,QAAS,UAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YACtC,MAAO,CAAC,OAAQ,OAAO,OAAQ,MAAO,OAAO,MAAO,OAGtD,GAAI,QAAU,QACZ,MAAO,KAAI,EAAG,WAGhB,GAAI,QAAU,QACZ,GAAM,iBAAkB,UAAQ,eAC5B,GAAI,OAAQ,aAAK,uBAAuB,OAAQ,IAI9C,OAAS,UAAS,CAAC,OAFU,CAAC,EAAG,EAAG,EAAG,iBAEE,QAAA,YAC/C,MAAA,WAAQ,8BAA8B,iBAC/B,OAGT,KAAM,IAAI,OAAM,iCAAiC,EAAE,YAAY,SAG1D,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCrER,KAAO,kBAEA,MAAO,iBAChB,CAAC,UAAW,KAAM,gBAAiB,KAAM,cAAe,cAE/C,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OC7Bd,YAAA,MA6BE,YAAY,QARZ,KAAA,cAAgB,CAAC,KASf,KAAK,YAAc,OACnB,KAAK,SAAW;;;;;;;;;;;;;MAgBlB,mBAAmB,KAAa,MAC9B,MAAO,CAAC,MAAqB,gBACvB,KAAK,QAAU,MACjB,MAAK,OAAS,MAAM,0BAA0B,aAAc,UAC5D,KAAK,OAAS,MAAM,0BAA0B,aAAc,WAE9D,MAAM,GAAG,UAAU,KAAK,OAAQ,MAChC,MAAM,GAAG,UAAU,KAAK,OAAQ,SCtDtC,kBAAA,MA+BE,YAAY,QAVZ,KAAA,cAAgB,CAAC,KACjB,KAAA,aAAe,GACf,KAAA,aAAe,GASb,KAAK,YAAc,OACnB,KAAK,SAAW;;;;;;;;;;;;;;MAiBlB,mBAAmB,KAAa,MAC9B,MAAO,CAAC,MAAqB,gBACvB,KAAK,QAAU,MACjB,MAAK,OAAS,MAAM,0BAA0B,aAAc,UAC5D,KAAK,OAAS,MAAM,0BAA0B,aAAc,WAE9D,MAAM,GAAG,UAAU,KAAK,OAAQ,MAChC,MAAM,GAAG,UAAU,KAAK,OAAQ,SClChC,sBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,aAAc,cAAgB,MAEjC,QACA,MAAM,QAAQ,mBAChB,QAAU,GAAI,mBAAkB,EAAE,OAElC,QAAU,GAAI,aAAY,EAAE,OAE9B,GAAM,aAAc,QAAQ,mBAAmB,aAAc,cAC7D,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,MAAO,aAGjD,GAAM,mBAAkC,CAC7C,WAAY,YACZ,YAAa,QACb,WAAY,cC7Cd,kBAAA,MAwBE,YAAY,OAJZ,KAAA,cAAgB,CAAC,OAAQ,QAKvB,KAAK,YAAc,MACnB,KAAK,SAAW;;;;;;;;;;;;;QCDpB,wCACI,cAA2B,aAC7B,MAAO,CACL,OAAQ,YAAY,OACpB,MAAO,YAAY,MACnB,MAAO,cAAc,OAInB,qBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEN,MAAQ,UAAQ,QAAQ,IAAI,EAAE,QAE9B,QAAU,GAAI,mBAAkB,EAAE,OAClC,cAAgB,CACpB,+BAA+B,EAAG,MAAM,mBAAmB,MAC3D,+BAA+B,EAAG,MAAM,mBAAmB,OAG7D,MAAO,WAAQ,gBACX,QAAS,cAAe,cAAc,GAAG,OAGxC,GAAM,mBAAiC,CAC5C,WAAY,WACZ,YAAa,QACb,WAAY,aCtDd,cAAA,MA0BE,YAAY,QAJZ,KAAA,YAAwB,GAKtB,KAAK,YAAc,qBAAa,gBAAgB,OAAQ,GACxD,KAAK,cAAgB,OAAO,IAAI,CAAC,EAAG,IAAM,IAAI,KAE9C,GAAM,SAAoB,GAAI,OAAM,OAAO,OAAS,GACpD,QAAQ,GAAK,OAAO,GAAG,GACvB,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,IAClC,QAAQ,GAAK,QAAQ,EAAI,GAAK,OAAO,GAAG,GAG1C,GAAM,UAAW,CAAC,YAAY,QAAQ,iCACtC,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,KAClC,GAAM,OAAQ,QAAQ,EAAI,GAC1B,SAAS,KACL,iBAAiB,QAAQ,qBACR,YAAY,YAEnC,GAAM,WAAY,QAAQ,OACpB,UAAY,QAAQ,QAAQ,OAAS,GAC3C,SAAS,KAAK,sBAAsB,oBAAoB,gBAExD,KAAK,SAAW;;;;;;UAMV,SAAS,KAAK;;;QCrDxB,oBAAA,MA8BE,YAAY,OAAoB,MALhC,KAAA,aAAe,GACf,KAAA,aAAe,GACf,KAAA,YAAwB,GAItB,KAAK,YAAc,qBAAa,gBAAgB,OAAQ,MACxD,GAAM,OAAQ,KAAK,YACb,KAAO,MAAM,OACb,MAAQ,kBAAkB,MAC1B,QAAS,YAAY,SAAU,MAC/B,SAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAK,MAAM,EAAG,MACzD,KAAK,cAAgB,OAAO,IAAI,CAAC,EAAG,IAAM,IAAI,KAE9C,GAAM,SAAoB,GAAI,OAAM,OAAO,OAAS,GACpD,QAAQ,GAAK,OAAO,GAAG,MACvB,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,IAClC,QAAQ,GAAK,QAAQ,EAAI,GAAK,OAAO,GAAG,MAG1C,GAAM,SAAU,SAAS,MACnB,aAAe,SAAS,MAAM,IAC9B,YAAc,SAAS,OAEzB,gBAAkB,OAAO,aAAa,QAAQ;;oBAElC,sBAAsB,aAAa;WAEnD,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,KAClC,GAAM,QAAQ,QAAQ,EAAI,GAK1B,iBAAmB;cACX,aAAa,QAAQ,UAAU,cAAc,QAAQ,EAAI;;kBAErD,KAAK,gBAAgB,SAAU,QAAS;mBACvC,gBAAgB,aAAc,QAAS;WAGtD,GAAM,WAAY,QAAQ,OACpB,MAAQ,QAAQ,QAAQ,OAAS,GACvC,iBAAmB;;gBAEP,aAAa,gBAAgB,SAAU,QAAS;iBAC/C,gBAAgB,aAAc,QAAS,YAEpD,KAAK,SAAW;uBACG,SAAS,IAAI,GAAK,OAAS;UACxC;;;;UAIA;sCAC4B;;UAE5B,QAAO,KAAO,QAAQ,QAAO,KAAO;cAChC,QAAO,KAAO,QAAQ,MAAM,KAAO;gCACjB;;;UAGtB,QAAO,KAAO,QAAQ,QAAO,KAAO;cAChC,QAAO,KAAO,QAAQ,MAAM,KAAO;gCACjB;;;UAGtB,QAAO,KAAO,QAAQ,QAAO,KAAO;cAChC,QAAO,KAAO,QAAQ,MAAM,KAAO;cACnC,QAAO,KAAO,QAAQ,MAAM,KAAO;gCACjB;;;;QAmBhC,yBAAyB,SAAoB,QAAiB,OAC5D,GAAM,YAAa,SAAS,QAAQ,SAQpC,MAPY,UAAS,IAAI,CAAC,EAAG,MACvB,MAAQ,WACH,GAAG,OAAO,QAEV,GAGA,OCrGP,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,MAAA,QAAS,OACV,UAAY,UAAQ,QAAQ,IAAI,OAAM,QAE5C,MAAO,WAAS,CAAC,OAAQ,CAAC,EAAG,UAAU,mBAAmB,MAAO,QAAA,YAG5D,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCLR,qBACF,OAAsB,KAAc,WACtC,GAAM,OAAQ,OAAO,GAAG,MACxB,GAAI,QAAU,aACZ,GAAM,OAAQ,OAAO,IAAK,GAAM,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,aACpD,MAAQ,OAAO,IAAK,GAAM,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,aAEpD,aAAe,YAAW,MAAO,KAAM,WACvC,aAAe,YAAW,MAAO,KAAM,WAEvC,QACF,SAAQ,CAAC,OAAQ,CAAC,KAAM,aAAc,KAAM,cAAe,QAAA,YAE/D,MAAA,OAAM,QAAQ,GAAK,UAAQ,8BAA8B,IACzD,MAAM,QAAQ,GAAK,UAAQ,8BAA8B,IACzD,UAAQ,8BAA8B,cACtC,UAAQ,8BAA8B,cAE/B,QAST,GAAI,QAAU,UACZ,GAAM,CAAC,UAAA,WAAW,SAAA,WAAY,iBAAiB,OAAQ,KAAM,WACvD,gBAAkB,WAAU,IAAI,GAC7B,EAAC,KAAM,UAAQ,SAAS,EAAE,QAAS,MAAO,EAAE,SAE/C,aAAe,WAAU,GAAG,MAAM,KAAO,EACzC,QACF,cAAc,gBAAiB,UAAU,MAAO,cAE9C,cACF,qBAAa,gBAAgB,OAAO,IAAI,GAAK,EAAE,OAAQ,MAErD,QAAU,UAAQ,eAAe,cAAe,MAAO,SAE7D,MAAA,YAAU,QAAQ,GAAK,UAAQ,8BAA8B,IAEtD,QAGT,GAAI,OAAO,OAAS,MAAM,UAAU,iCAClC,GAAM,UAAW,KAAK,MAAM,OAAO,OAAS,GACtC,SAAW,YAAW,OAAO,MAAM,EAAG,UAAW,KAAM,WACvD,UAAY,YAAW,OAAO,MAAM,UAAW,KAAM,WAErD,QAAS,YAAW,CAAC,SAAU,WAAY,KAAM,WAEvD,MAAA,WAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,WAE/B,QAGT,GAAI,MAAM,QAAQ,gCACd,OAAO,GAAG,MAAM,OAAS,GAC3B,GAAM,UAAU,GAAI,qBAAoB,OAAO,IAAI,GAAK,EAAE,OAAQ,MAClE,MAAO,WAAQ,gBAAgB,SAAS,OAAQ,OAGlD,GAAM,CAAC,UAAW,UAAY,iBAAiB,OAAQ,KAAM,WACvD,QACF,GAAI,eAAc,UAAU,IAAI,GAAK,EAAE,QACrC,OAAS,UAAQ,gBAAgB,QAAS,UAAW,OAE3D,UAAU,QAAQ,GAAK,UAAQ,8BAA8B,IAC7D,GAAM,gBACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,MAAO,CAAC,MAAO,UAAW,QAAA,YAC5D,MAAA,WAAQ,8BAA8B,QAE/B,eAGT,0BACI,OAAsB,KAAc,WAQtC,GAAM,UAAW,qBAAa,gBAAgB,OAAO,IAAI,GAAK,EAAE,OAAQ,MAQxE,MAAO,CAAC,UAPU,OAAO,IACrB,GAAK,SAAQ,CACX,OAAQ,CAAC,GACT,MAAO,CAAC,MAAO,CAAC,GAAI,aAAK,cAAc,EAAE,MAAM,MAAM,SACrD,QAAA,aAGa,UCrGf,iBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAQ,MAET,MAAQ,aAAK,eAAe,KAAM,OAAO,GAAG,OAAO,GACnD,SACF,qBAAa,gBAAgB,OAAO,IAAI,GAAK,EAAE,OAAQ,OAE3D,GAAI,aAAK,cAAc,YAAc,EACnC,MAAO,WAAQ,eAAe,SAAU,OAAO,GAAG,MAAO,IAI3D,GAAM,SAAU,OAAO,OAAO,GAAK,aAAK,cAAc,EAAE,OAAS,GACjE,GAAI,QAAQ,SAAW,EACrB,MAAO,WAAS,CAAC,OAAQ,CAAC,EAAG,QAAQ,IAAK,QAAA,YAG5C,GAAM,QAAS,QAAQ,IAAI,GAAK,EAAE,OAClC,MAAA,sBAAa,uBAAuB,OAAQ,OAErC,YAAW,QAAS,MAAO,WAG7B,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SCrDd,cAAA,MAyBE,YACI,SAAmC,QAAU,GAC7C,YAAqB,KAAM,0BAA4B,GACvD,kBAAoB,IAPxB,KAAA,cAAgB,CAAC,IAAK,KAQpB,KAAK,YAAc,SAAS,SAC5B,GAAM,QAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAC3B,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,aAAe,SAAS,aACxB,YAAc,SAAS,YAEvB,sBAAwB,KAAK,MAAM,SAAS,WAAa,GAAK,EAC9D,wBAA0B,SAAS,WAAa,EAChD,eAAiB,SAAS,aAAe,eAEzC,OAAS,eAAiB,EAAI,EAC9B,OAAS,eAAiB,EAAI,EAC9B,WAAa,eAAiB,EAAI,EAEpC,kBAAoB,GAAI,uBAAyB,GACjD,aACE,2BACF,kBAAoB;;YAEhB;WAEK,kBACT,kBAAoB;;YAEhB;WAGJ,kBAAoB;;cAEd;;UAKR,uBAAyB,gCAG3B,GAAM,gBAAiB,QAAU,kCAAoC,GACjE,SACF,KAAK,cAAc,KAAK,QAGtB,2BACF,KAAK,cAAc,KAAK,0BAGtB,mBACF,KAAK,cAAc,KAAK,kBAG1B,KAAK,SAAW;QACZ;;oCAE4B,iBAAiB;iCACpB,WAAW;;;;;0BAKlB;;;2BAGC,mBAAmB;;;;;;;gCAOd;qCACK;;gCAEL,SAAS;;;;kCAIP;uCACK;;kCAEL,SAAS;;;;oCAIP;;;;;;;;oBAQhB;;;;;;;;;;;;;;;;;;;kBAmBF,0BAA4B;;oBAE1B;;0CAEsB;mCACP;;;kCAGD;mCACC;;;yBAGV,0BAA4B;;+BAEtB;+BACA;;;oBAGX;;wCAEoB;wCACA;;;;;gCAKR;gCACA;;;;;yBAKP,0BAA4B;;+BAEtB;+BACA;+BACA;;;oBAGX;;wCAEoB;wCACA;wCACA;;;;;gCAKR;gCACA;gCACA;;;;;;;;;;UAUtB;UACA;;;QA5MV,cAAA,MAwNE,YAAY,UAJZ,KAAA,cAAgB,CAAC,IAAK,KAKpB,KAAK,YAAc,SAAS,SAC5B,GAAM,UAAW,SAAS,QAAQ,MAC5B,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAC3B,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,cAAgB,SAAS,cACzB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YAEvB,sBAAwB,KAAK,MAAM,SAAS,WAAa,GAAK,EAC9D,wBAA0B,SAAS,WAAa,EAEtD,KAAK,SAAW;oCACgB,gBAAgB,iBAC5C;iCACyB,aAAa,WAAW;;;;;;;;;;;;;;;;gCAgBzB;qCACK;;gCAEL,SAAS;;;;kCAIP;uCACK;;kCAEL,SAAS;;;;oCAIP;yCACK;;oCAEL,SAAS;;;;sCAIP;;;;;;;;;;;;;;;;;oBAiBlB,0BAA4B;;4CAEJ;qCACP;2BACV,0BAA4B;;4CAEX;4CACA;;;qCAGP;qCACA;;;2BAGV,0BAA4B;;4CAEX;4CACA;4CACA;;;qCAGP;qCACA;qCACA;;;;;;;;;QC1TrC,oBAAA,MA4BE,YACI,YAAuB,WACvB,UARJ,KAAA,cAAgB,CAAC,KACjB,KAAA,aAAe,GACf,KAAA,aAAe,GAOb,KAAK,YAAc,YAEnB,GAAM,CACJ,YACA,WACA,YACA,aACA,QACA,SACA,cACA,eACA,YACE,SACE,CAAC,KAAM,KAAO,QACd,iBAAmB,WAAa,YAChC,KAAO,qBACP,eAAiB,aAAe,eAChC,OAAS,eAAiB,EAAI,EAC9B,OAAS,eAAiB,EAAI,EAEhC,SAAW,GAEf,OAAS,KAAM,EAAG,KAAO,EAAG,MAC1B,OAAS,KAAM,EAAG,KAAO,EAAG,MAC1B,UAAY;gCACY;yBACP;;4BAEG,YAAY,eAAe,YAAY;0CACzB,gBAAgB,kBAC9C;6BACiB,2BAA2B;;sBAElC,WAAW;;qDAEoB,gBACzC,kBAAkB;+BACC,wCACnB,wBAAwB;;wBAEZ,WAAW;;2CAEQ;;sBAErB;;2BAEK,IAAM,EAAI;;;;;2BAKV,IAAM,EAAI;;;;;;;UAWjC,KAAK,SAAW;;;;;;;;;UASV;;UAEA,KAAK;;QC7DT,wBAAyB,CAC7B,EACA,OACA,SACA,QAAA,UACA,KAAO,KACP,uBAAyB,KACzB,eAAiB,EACjB,WAAA,YAAa,OAIb,GAAM,QAAS,EAAE,MACX,SAAW,UAAQ,QAAQ,IAAI,EAAE,QACjC,gBAAkB,SAAS,WAC3B,YAAc,OAAO,GAAK,OAAO,GAAK,OAAO,GAC7C,iBAAmB,SAAS,YAC5B,eAAiB,SAAS,aAAe,eACzC,WAAa,GACb,WAAa,GAEf,IACE,cAA8B,GAI9B,0BACD,eAAgB,GAAK,mBAAqB,IAC3C,gBAAkB,4BAChB,uBAAyB,OAAO,GAAK,GAAM,GAAK,CAAC,CAAC,SAAS,SAEjE,GAAI,2BAA6B,CAAC,MAAM,QAAQ,wBAC5C,CAAC,MAAM,QAAQ,iCACf,CAAC,wBACH,GAAM,aAAc,eAAiB,OAAO,GAAK,OAAO,GAAK,OAAO,GAC/B,OAAO,GAAK,OAAO,GAAK,OAAO,GAC9D,UAAY,SAAQ,CACxB,OAAQ,CAAC,GACT,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,EAAG,YAAa,SAAS,eAErC,eAAiB,SAAQ,CAC7B,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,EAAG,SAAS,WAAY,SAAS,gBAE7C,OAAS,gBAAgB,CAC7B,EAAG,UACH,EAAG,eACH,WACA,WACA,QAAA,UACA,KACA,WAAA,YACA,uBACA,iBAGF,IAAM,SACF,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,SAAS,YAE3D,cAAc,KAAK,WACnB,cAAc,KAAK,gBACnB,cAAc,KAAK,aAUnB,GAAM,aAAc,eAChB,OAAO,GAAK,OAAO,GAAM,QAAO,GAAK,GACrC,OAAO,GAAK,OAAO,GAAM,QAAO,GAAK,GACnC,UAAwB,CAC5B,OAAQ,EAAE,OACV,MAAO,CAAC,EAAG,YAAa,SAAS,YACjC,MAAO,EAAE,OAUL,sBAAwB,SAAS,MACvC,SAAS,MAAQ,SAAS,MAAM,QAChC,SAAS,MAAM,SAAS,MAAM,OAAS,KACvC,aAAK,OACU,cAAc,SAAS,MAAO,UAAU,OACnD,IAAM,kBAAkB,SAAS,YAC7B,UAAU,oBAClB,GAAM,gBAAiB,SAAQ,CAC7B,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,EAAG,SAAS,WAAY,SAAS,gBAEnD,cAAc,KAAK,gBACnB,GAAM,eAAgB,gBAAgB,CACpC,EAAG,UACH,EAAG,eACH,QAAA,UACA,WACA,WACA,KACA,WAAA,YACA,uBACA,iBAGI,qBAAuB,UAAQ,QAAQ,IAAI,cAAc,QAC/D,aAAK,OACD,qBAAqB,SACrB,IAAM,+CAEV,SAAS,MAAQ,sBAGjB,qBAAqB,MAAQ,SAAS,SAEtC,IAAM,UAAS,CAAC,OAAQ,CAAC,EAAG,eAAgB,QAAA,YAC5C,IAAI,MAAQ,SAAS,SAErB,cAAc,KAAK,eAGrB,OAAW,KAAK,eACd,UAAQ,8BAA8B,GAGxC,MAAO,KAKH,0BAA2B,CAC/B,EACA,OACA,SACA,QAAA,UACA,KAAO,KACP,uBAAyB,KACzB,eAAiB,EACjB,WAAA,YAAa,OAQb,GAAM,CACJ,YACA,aACA,WACA,SACA,UACA,YACE,SAEE,eAAiB,aAAe,eAEhC,UAAY,YAAc,aAAe,WACzC,QAAU,UAAY,SACtB,WAAa,CAAC,UAAW,SACzB,WAAa,GACb,WAAa,GAEb,cAA8B,GAE9B,UACF,SAAQ,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,EAAE,MAAM,MAAM,MAC1D,MAAQ,SAAQ,CACpB,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,EAAG,UAAW,aAAK,cAAc,OAAO,OAAS,cAGnE,cAAc,KAAK,WACnB,cAAc,KAAK,OAEnB,GAAM,eACF,GAAI,qBAAoB,WAAY,UAAU,MAAO,UACnD,OAAS,UAAQ,gBAAgB,cAAe,CAAC,WAAY,WAC7D,eAAiB,SAAQ,CAC7B,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,EAAG,WAAW,GAAI,WAAW,OAG/C,cAAc,KAAK,QACnB,cAAc,KAAK,gBAEnB,GAAM,SAAU,MAAQ,KAClB,0BAA4B,wBAA0B,KACtD,kBAAoB,cAAe,YACnC,gBACF,YAAa,6BAA6B,YAAY,IAAQ,KAC5D,cAAgB,GAAI,qBACtB,eAAe,MACf,MAAM,MACN,CAAC,EAAG,QAAS,SAAS,aAAc,WAAY,WAAY,QAC5D,gBAAiB,0BAA2B,mBAC1C,OAAuB,CAAC,eAAgB,OAO9C,GANI,MACF,OAAO,KAAK,MAEV,2BACF,OAAO,KAAK,wBAEV,mBACF,GAAM,iBAAkB,UAAQ,eAC5B,GAAI,UACJ,aAAK,kBAAkB,eAAmC,YAC9D,OAAO,KAAK,iBACZ,cAAc,KAAK,iBAErB,GAAM,SAAU,UAAQ,gBAAgB,cAAe,OAAQ,WAEzD,SAAW,eACb,CAAC,EAAG,UAAW,SAAU,SAAS,aAClC,CAAC,EAAG,SAAS,YAAa,UAAW,UACnC,IACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,YAE3D,cAAc,KAAK,SACnB,OAAW,KAAK,eACd,UAAQ,8BAA8B,GAGxC,MAAO,KC7PH,iBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,QAAU,OACd,CAAC,QAAS,IAAA,KAAK,WAAY,UAAW,iBAAmB,MAEzD,YAAc,qBAAa,wBAAwB,YACnD,SAAW,qBAAa,kBAC1B,EAAE,MACF,OAAO,MAA2C,QAAS,UAAW,KACtE,gBAAiB,GAAuB,aACxC,IAEJ,GAAI,SAAS,eAAiB,GAAK,SAAS,cAAgB,GACxD,SAAS,iBAAmB,GAAK,SAAS,gBAAkB,GAC5D,SAAS,eAAiB,GAAK,SAAS,cAAgB,GACvD,UAAS,QAAQ,OAAS,QAAU,SAAS,QAAQ,OAAS,SACjE,IAAM,eAAe,CAAC,EAAG,OAAQ,SAAU,QAAA,oBAClC,MAAM,QAAQ,sBAAwB,EAAE,MAAM,KAAO,EAC9D,IAAM,iBAAiB,CAAC,EAAG,OAAQ,SAAU,QAAA,iBAE7C,GAAM,SAAU,GAAI,eAAc,UAClC,IAAM,UAAQ,gBAAgB,QAAS,CAAC,EAAG,QAAS,WAGtD,GAAM,aACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,MAAO,SAAS,YAChE,MAAA,WAAQ,8BAA8B,KAE/B,YAGF,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SC5Dd,uBAAA,MAyBE,YAAY,UAJZ,KAAA,cAAgB,CAAC,IAAK,MAKpB,KAAK,YAAc,SAAS,YAE5B,GAAM,cAAe,SAAS,aACxB,YAAc,SAAS,YACvB,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAC3B,eAAiB,SAAS,aAAe,eAE/C,KAAK,SAAW;;;;;;;;;;;;8BAYU,SAAS;kCACL,SAAS;iCACV,kBAAkB;;kCAEjB,SAAS;;;;oCAIP,SAAS;mCACV,iBAAiB;;oCAEhB,SAAS;;;;oBAIzB;;;;;;;;;;;;;;;QA7DpB,sBAAA,MAqFE,YAAY,UAJZ,KAAA,cAAgB,CAAC,KAAM,KAKrB,KAAK,YAAc,SAAS,QAE5B,GAAM,cAAe,SAAS,aACxB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,aAAe,eAEzC,OAAS,aAAe,EAAI,SAAS,QAAQ,IAC7C,QAAU,YAAc,EAAI,SAAS,QAAQ,KAE7C,OAAS,eAAiB,EAAI,EAC9B,OAAS,eAAiB,EAAI,EAC9B,WAAa,eAAiB,EAAI,EAExC,KAAK,SAAW;iCACa,WAAW;;;;;0BAKlB;;wCAEc,mBAAmB;;;;;;;gCAO3B;gDACgB;;oCAEZ,SAAS;;;;;yBAKpB;;kCAES;kDACgB;;sCAEZ,SAAS;;;;;;2BAMpB;;oCAES,SAAS;;oBAEzB;;;;;;;;;;;;;;;QA3IpB,uBAAA,MAmKE,YAAY,UAJZ,KAAA,cAAgB,CAAC,IAAK,MAKpB,KAAK,YAAc,SAAS,YAE5B,GAAM,aAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,SAAW,SAAS,QAAQ,MAC5B,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAEjC,KAAK,SAAW;;;;;;;;;;;8BAWU,SAAS;kCACL,SAAS;iCACV,iBAAiB;;kCAEhB,SAAS;;;;oCAIP,SAAS;mCACV,kBAAkB;;oCAEjB,SAAS;;;;sCAIP,SAAS;qCACV,iBAAiB;;sCAEhB,SAAS;;;;;;;;;;;;;QA1M/C,sBAAA,MAgOE,YAAY,UAJZ,KAAA,cAAgB,CAAC,KAAM,KAKrB,KAAK,YAAc,SAAS,QAE5B,GAAM,aAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YAEvB,SAAW,YAAc,EAAI,SAAS,QAAQ,MAC9C,OAAS,aAAe,EAAI,SAAS,QAAQ,IAC7C,QAAU,YAAc,EAAI,SAAS,QAAQ,KAEnD,KAAK,SAAW;iCACa,aAAa,WAAW;;;;;;;;;;;;;;gCAczB;gDACgB;;oCAEZ,SAAS;;;;;yBAKpB;;kCAES;kDACgB;;sCAEZ,SAAS;;;;;;2BAMpB;;oCAES;oDACgB;;wCAEZ,SAAS;;;;;;6BAMpB;;sCAES,SAAS;;;;;;;;;;QCvQzC,+BAA+B,MAKnC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,IAAM,OACV,CAAC,QAAS,IAAA,KAAK,WAAY,gBAAiB,aAAe,MAE3D,YAAc,qBAAa,wBAAwB,YACnD,SAAW,qBAAa,kBAC1B,EAAE,MAA2C,YAAa,QAC1D,EAAmB,KAAK,gBAAiB,GACzC,aAEE,QAAU,GAAI,wBAAuB,UAC3C,MAAO,WAAQ,gBAAgB,QAAS,CAAC,EAAG,IAAK,WAG5C,GAAM,6BAA2C,CACtD,WAAY,qBACZ,YAAa,QACb,WAAY,uBCtBR,8BAA8B,MAKlC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,QAAU,OACf,CAAC,WAAY,QAAS,IAAA,KAAK,WAAY,iBAAmB,MAE1D,YAAc,qBAAa,wBAAwB,YACnD,SAAW,qBAAa,kBAC1B,WAAY,OAAO,MAA2C,QAC9D,EAAmB,KAAK,gBAAiB,GAAO,aAE9C,QAAU,GAAI,uBAAsB,UAC1C,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,QAAS,WAGjD,GAAM,4BAA0C,CACrD,WAAY,oBACZ,YAAa,QACb,WAAY,sBCrBR,iBACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,QAAU,OACd,CAAC,QAAS,IAAA,KAAK,WAAa,MAE5B,SAAW,qBAAa,kBAC1B,EAAE,MACF,OAAO,MAAmD,QAC1D,UAAW,MAET,QAAU,GAAI,eAAc,UAClC,MAAO,WAAQ,gBAAgB,QAAS,CAAC,EAAG,QAAS,WAGhD,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SCnBR,iCAAiC,MAKrC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,IAAM,OACV,CAAC,QAAS,IAAA,KAAK,aAAe,MAE9B,SAAW,qBAAa,kBAC1B,EAAE,MAAmD,YAAa,QAClE,EAAmB,MAEjB,QAAU,GAAI,wBAAuB,UAC3C,MAAO,WAAQ,gBAAgB,QAAS,CAAC,EAAG,IAAK,WAG5C,GAAM,+BAA6C,CACxD,WAAY,uBACZ,YAAa,QACb,WAAY,yBCpBR,8BAA8B,MAKlC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,QAAU,OACf,CAAC,IAAA,KAAK,QAAS,YAAc,MAE7B,SAAW,qBAAa,kBAC1B,WAAY,OAAO,MACnB,QAAS,EAAmB,MAE1B,QAAU,GAAI,uBAAsB,UAC1C,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,QAAS,WAGjD,GAAM,2BAA0C,CACrD,WAAY,sBACZ,YAAa,QACb,WAAY,sBCrBR,IAAM,wBAA0B;;EAIzB,KAAM,iBAAgB,CAAC,UAAW,MAElC,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCVR,KAAO;;;EAKA,MAAO,iBAAgB,CAAC,UAAW,OAEnC,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OC9Bd,qBAAA,MAwBE,YACI,WAA8C,SAC9C,SAA4B,OAC5B,oBAPJ,KAAA,cAAgB,CAAC,QAAS,QAAS,UACnC,KAAA,YAAwB,GAOtB,GAAM,CAAC,MAAO,YAAa,WAAY,OAAS,WAC1C,CAAC,UAAc,SACf,CAAC,WAAY,WAAa,SAChC,KAAK,YAAc,CAAC,SAAU,WAAY,UAAW,OACrD,GAAM,UAAW,SAAW,WAAa,EAAI,EAEvC,CAAC,iBAAkB,iBACrB,CAAC,GAAG,YAAc,MAAO,GAAG,WAAa,OAEvC,CAAC,YAAa,YAAa,KAAO,WAAa,EACjD,CACE,GAAI,aAAc,GAAM,YAAa,KACrC,yBACA,MAAM,8CAER,CACE,MACA,MACA,mBAAmB,oBAEnB,CAAC,WAAY,WAAY,KAAO,UAAY,EAC9C,CACE,GAAI,YAAa,GAAM,WAAY,KACnC,wBACA,MAAM,4CAER,CACE,MACA,MACA,mBAAmB,mBAMzB,KAAK,SAAW;yCACqB;wCACD;;;;;;;;;;;;;;;;iCAgBP;;;;+BAIF;8BACD;;uBAEP;mCACY;4BACP;;;uBAGL;mCACY;4BACP;;;;;aAKf;;;;;;;;;;;;;;;;;;;;;;;;QC9EA,eAAiB,OAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAA,OAAO,MAAO,QAAU,OACzB,CAAC,SAAU,OAAQ,oBAAsB,MAEzC,QAAU,GAAI,sBAChB,OAAM,MACN,MAAM,MAA2B,SAAU,OAAQ,oBACvD,MAAO,WAAQ,gBAAgB,QAAS,CAAC,OAAO,MAAO,QAAS,YAGrD,qBAAoC,CAC/C,WAAY,cACZ,YAAa,QACb,WAAY,gBCtBd,cAAA,MAUE,YAAY,MAAiB,UAAoB,UAPjD,KAAA,cAAgB,CAAC,KAQf,KAAK,YAAc,MACnB,GAAM,MAAO,MAAM,OACb,IAAM,UAAY,MAAQ,QAAQ,WAAU,KAAM,aAClD,OAAS,MAAM,MAAM,OAAS,GAChC,UAAY,GACZ,UAAY,GAIZ,UACF,WAAY,SAAU,UAAU,OAAS,IAAM,WAC/C,UAAY,SAAU,UAAY,WAElC,WAAY,SAAU,gBAAgB,SAAW,cACjD,UAAa,SAAU,aAAe,cAGxC,KAAK,SAAW;;;UAGV,kBAAkB;oBACR,cAAc,KAAM;sBAClB;;cAER;sBACQ;YACV,cAAc,KAAM;wBACR,WAAU,KAAM;;;;MAOtC,mBAAmB,OACjB,MAAO,CAAC,MAAqB,gBACvB,KAAK,OAAS,MAChB,MAAK,MAAQ,MAAM,mBAAmB,aAAc,UAEtD,MAAM,GAAG,UAAU,KAAK,MAAO,UAKrC,oBAAmB,KAAc,MAC/B,GAAI,OAAS,EACX,MAAO,GAAG,OACL,GAAI,OAAS,EAClB,MAAO,GAAG,WAAW,SAChB,GAAI,OAAS,EAClB,MAAO,GAAG,WAAW,WAAW,SAC3B,GAAI,OAAS,EAClB,MAAO,GAAG,WAAW,WAAW,WAAW,SAE3C,KAAM,OAAM,2BAA2B,6BAI3C,uBAAuB,KAAc,MACnC,GAAI,OAAS,EACX,MAAO,GAAG,OACL,GAAI,OAAS,EAClB,MAAO,GAAG,SACL,GAAI,OAAS,EAClB,MAAO,GAAG,SACL,GAAI,OAAS,EAClB,MAAO,GAAG,SAEV,KAAM,OAAM,2BAA2B,6BCxErC,iBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAW,QAAA,UAAW,MAE7B,MAAQ,EAAE,MAAM,OAChB,YAAc,qBAAa,mBAAmB,CAAC,MAAO,OACxD,UAAY,EACZ,aAAe,MACjB,WAAY,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBAE7D,GAAM,cAAe,qBAAa,iBAAiB,EAAG,OAAO,GAE7D,GAAI,eAAiB,MAAQ,EAC3B,KAAM,IAAI,OACN,kDACI,EAAE,MAAM,OAAS,kBACL,QAEtB,GAAM,MAAO,EAAE,MAAM,cACjB,OAAS,UAAS,CAAC,OAAQ,CAAC,EAAG,WAAY,QAAA,YAI/C,OAAS,GAAI,EAAG,GAAK,KAAK,KAAK,KAAK,KAAK,OAAS,EAAG,KACnD,GAAM,SAAU,GAAI,eAAc,UAAU,MAAO,GAAO,UACpD,YAAc,QAAQ,mBAAmB,GACzC,WAAa,OACnB,OACI,UAAQ,gBAAgB,QAAS,CAAC,QAAS,OAAO,MAAO,aAC7D,UAAQ,8BAA8B,YAIxC,GAAI,WACF,GAAM,SAAU,GAAI,eAAc,UAAU,MAAO,UAAW,UACxD,WAAa,OACnB,OAAS,UAAQ,gBAAgB,QAAS,CAAC,QAAS,OAAO,OAC3D,UAAQ,8BAA8B,YAGxC,GAAI,aAAe,MACjB,GAAM,oBAAqB,qBAAa,uBAAuB,aACzD,wBAA0B,WAC5B,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,KAAM,sBAEjD,MAAA,WAAQ,8BAA8B,QACtC,UAAQ,8BAA8B,WAE/B,wBAGT,MAAO,QAGF,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SChER,wBAAwB,MAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,SAAW,OACf,CAAC,KAAM,cAAgB,MAE7B,GAAI,EAAE,MAAM,SAAW,GACrB,GAAM,OAAQ,UAAQ,SAAS,EAAE,QAC3B,YAAc,UAAQ,SAAS,QAAQ,QAEvC,QACF,gBAAgB,MAAO,YAAa,QAAQ,MAAO,QAAQ,MAAO,MAEtE,MAAO,WAAQ,eAAe,CAAC,MAAO,QAAQ,MAAO,iBAC5C,EAAE,MAAM,SAAW,GAC5B,GAAM,MAAO,UAAQ,WAAW,GAC1B,WAAa,UAAQ,WAAW,SAEhC,OAAS,sBAAsB,KAAM,WAAY,KAAM,cAE7D,MAAO,WAAQ,eAAe,OAAO,MAAO,QAAQ,MAAO,OAAO,QAGpE,KAAM,IAAI,OACN,qEACG,EAAE,MAAM,WAGV,GAAM,sBAAoC,CAC/C,WAAY,cACZ,YAAa,QACb,WAAY,gBCxDd,oBAAA,MA0BE,YACI,YAAuB,UAAmB,YAP9C,KAAA,cAAgB,CAAC,KACjB,KAAA,YAAwB,GAOtB,KAAK,YAAc,YACnB,KAAK,UAAY,UACjB,KAAK,WAAa,WAClB,KAAK,SAAW;;;;gBAIJ,KAAK;gBACL,KAAK;gBACL,KAAK;;uBAEE;+BACQ;uBACR;+BACQ;mCACI;UACzB,KAAK;;;uBAGQ,KAAK;;;IAMlB,uBACN,MAAI,MAAK,aAAe,OACf,YAEA,YAIH,sBACN,MAAI,MAAK,aAAe,OACf,YAEA,YAIH,sBACN,MAAI,MAAK,aAAe,OACf,YAEA,YAIH,qBACN,MAAI,MAAK,aAAe,OACf,KAAK,YAAY,GAEjB,KAAK,YAAY,GAIpB,yBACN,MAAI,MAAK,aAAe,OACf,4BAEA,8BCnEP,uBAAuB,MAK3B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,UAAW,YAAc,MAEhC,aAAK,OACD,UAAY,EACZ,IAAM,sDAAsD,aAEhE,GAAM,WAAY,EAAE,MAAM,GACpB,YAAe,aAAe,OAAU,EAAE,MAAM,GAAK,EAAE,MAAM,GAC7D,WAAc,aAAe,OAAU,EAAE,MAAM,GAAK,EAAE,MAAM,GAC5D,WAAc,aAAe,OAAU,EAAE,MAAM,GAAK,EAAE,MAAM,GAE5D,aAAe,YAAc,UAC7B,YAAc,WAAa,UAC3B,YAAc,WAAc,WAAY,WAExC,YAAe,aAAe,OAChC,CAAC,UAAW,aAAc,YAAa,aACvC,CAAC,UAAW,YAAa,aAAc,aAErC,QAAU,GAAI,qBAAoB,YAAa,UAAW,YAChE,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,OAG1C,GAAM,qBAAmC,CAC9C,WAAY,aACZ,YAAa,QACb,WAAY,eCvDd,uBAAA,MAyBE,YACI,SAAmC,QAAU,GAC7C,YAAqB,KAAM,mBAAqB,GAChD,kBAAoB,IAPxB,KAAA,cAAgB,CAAC,IAAK,KAQpB,KAAK,YAAc,SAAS,SAE5B,GAAM,UAAW,SAAS,SACpB,SAAW,SAAS,QACpB,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAC3B,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,WAAa,SAAS,YAAc,SAAS,WAE/C,kBAAoB,GAAI,uBAAyB,GACjD,aACE,oBACF,kBAAoB;;YAEhB;WAEK,kBACT,kBAAoB;;YAEhB;WAGJ,kBAAoB;;cAEd;;UAKR,uBAAyB,gCAG3B,GAAM,gBAAiB,QAAU,kCAAoC,GACjE,SACF,KAAK,cAAc,KAAK,QAGtB,oBACF,KAAK,cAAc,KAAK,0BAEtB,mBACF,KAAK,cAAc,KAAK,kBAG1B,KAAK,SAAW;QACZ;;oCAE4B,iBAAiB;iCACpB,WAAW;;;;;;;wBAOpB;4BACI;;;;;;;;;gCASI;qCACK;;gCAEL;;;;kCAIE;uCACK;;kCAEL;;;;;;;;;;;UAWxB;UACA;;;QCzHV,6BAAA,MA4BE,YACI,SAAmC,QAAU,GAC7C,YAAqB,KAAM,mBAAqB,GAChD,kBAAoB,IATxB,KAAA,cAAgB,CAAC,IAAK,KACtB,KAAA,aAAe,GACf,KAAA,aAAe,GAQb,KAAK,YAAc,SAAS,SAE5B,GAAM,UAAW,SAAS,SACpB,SAAW,SAAS,QACpB,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAC3B,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,aAAe,YAEjB,SAAW,gCAEf,OAAS,GAAI,EAAG,EAAI,aAAc,IAChC,OAAS,GAAI,EAAG,EAAI,YAAa,IAC/B,UAAY;wBACI,KAAK,EAAI;mBACd,KAAK;mBACL,KAAK,gBAYpB,OAAS,GAAI,EAAG,EAAI,aAAc,IAChC,OAAS,QAAS,EAAG,OAAS,aAAc,UAC1C,GAAM,GAAI,OAAS,EAOnB,GALA,UAAY;4BACQ,EAAI;4BACJ,EAAI;UAGpB,cAAgB,GAClB,GAAI,EAAI,aAEF,SAAU,GAAM,EAUlB,UAAY;;qCAEW,2CACnB;2BACS,KAAK;;;;uCAIO;6BACV,KAAK;;;2BAGP,KAAK;;;;qCAIK,2CACnB;;;;;uCAKqB;;;;sBAIjB,KAAK,gCAAgC,KAAK;;sBAE1C,KAAK,yBAAyB,KAAK;;gBAK3C,UAAY;qCACW,+BAA+B;2BACzC,KAAK;;2BAEL,KAAK;;;oBAGZ,KAAK,cAAc,KAAK;gBAI5B,EAAI,EAAI,cAOV,GAAM,iBAAkB,QAAU,GAAM,EACpC,aAAK,kBAAkB,eACvB,cAEC,cAAgB,GAAM,GAAK,QAAU,GAAM,GAC3C,cAAgB,GAAM,GAAK,QAAU,GAAM,EAC9C,WAAY;oCACQ,QAAU,OAAO;;uCAEd;kDACW;6BACrB,KAAK,EAAI;;kBAMlB,cAAgB,GAClB,WAAY;;yCAEW;oDACW;+BACrB,KAAK;;+BAEL,KAAK;;qBAKpB,UAAY;sBACN,KAAK,EAAI;6BACF,KAAK,gBAAgB,KAAK,EAAI;mBAG3C,UAAY;oCACQ;;uCAEG;kDACW;6BACrB,KAAK,EAAI;;;sBAGhB,KAAK,EAAI,cAAc,KAAK,EAAI;uBAMxC,GAAI,aACN,WAAY;mCACW;cASnB,QAAU,GAAM,EAClB,WAAY;sCACY;iDACW;2BACtB,KAAK;;2BAEL,KAAK;;;6CAGa;2BAClB,KAAK,EAAI;;2BAET,KAAK,EAAI;;;oBAGhB,KAAK;2BACE,KAAK,gBAAgB,KAAK,EAAI;gBAGvC,EAAI,EAAI,aACV,WAAY;;wCAEY;mDACW;;;sBAG7B,KAAK,EAAI,mBAAmB,KAAK,EAAI;oBAI7C,WAAY;qCACW;2BACV,KAAK;;2BAEL,KAAK;;;kCAGE;iDACe;2BACtB,KAAK,EAAI;;2BAET,KAAK,EAAI;;;oBAGhB,KAAK;2BACE,KAAK,gBAAgB,KAAK,EAAI;gBAGvC,EAAI,EAAI,aACV,WAAY;sBACN,KAAK,EAAI;6BACF,KAAK,gBAAgB,KAAK,EAAI;oBAK/C,UAAY,KAIZ,EAAI,aACN,WAAY;0BACI,KAAK,YAAY,MAAM;gBACjC,KAAK,mBAAmB,KAAK,gBAAgB,KAAK;YAGpD,EAAI,EAAI,aACV,WAAY;4BACI,KAAK,EAAI,YAAY,MAAM,EAAI;kBACzC,KAAK,EAAI;8BACG,KAAK,EAAI,gBAAgB,KAAK,EAAI,WAM5D,OAAS,GAAI,EAAG,EAAI,aAAc,IAChC,OAAS,GAAI,EAAG,EAAI,YAAa,IAC/B,UAAY,gBAAgB,KAAK,SAAS,KAAK,KAInD,GAAI,mBAAoB,GAAI,uBAAyB,GACjD,aACE,oBACF,kBAAoB;;YAEhB;WAEK,kBACT,kBAAoB;;YAEhB;WAGJ,kBAAoB;YAChB;WAIN,uBAAyB,gCAG3B,GAAM,gBAAiB,QAAU,kCAAoC,GACjE,SACF,KAAK,cAAc,KAAK,QAGtB,oBACF,KAAK,cAAc,KAAK,0BAEtB,mBACF,KAAK,cAAc,KAAK,kBAG1B,KAAK,SAAW;QACZ;;oCAE4B,iBAAiB;iCACpB,WAAW;;;;;;;;;;;;;;;UAelC;;;UAGA;UACA;;;QCxTJ,gCAAgC,MAKpC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,QAAU,OACd,CAAC,QAAS,IAAA,KAAK,UAAW,iBAAmB,MAE/C,WAAa,UACb,YAAc,MAChB,YAAa,CAAC,EAAG,IAGnB,aAAK,OACD,qBAAa,+BAA+B,QAAS,YACrD,IAAM,gFACgB,0BAA0B,eAEpD,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MACF,OAAO,MAA2C,QAAS,WAC3D,KAAK,gBAAiB,IAEtB,QACJ,MAAI,OAAM,QAAQ,6BAA+B,SAAS,aAAe,GACrE,SAAS,YAAc,SAAS,YAAe,EACjD,QAAU,GAAI,8BAA6B,UAE3C,QAAU,GAAI,wBAAuB,UAGhC,UAAQ,gBAAgB,QAAS,CAAC,EAAG,QAAS,WAGhD,GAAM,8BAA4C,CACvD,WAAY,sBACZ,YAAa,QACb,WAAY,wBC7Dd,gCAAA,MAyBE,YAAY,UAJZ,KAAA,cAAgB,CAAC,IAAK,MAKpB,KAAK,YAAc,SAAS,YAE5B,GAAM,cAAe,SAAS,aACxB,YAAc,SAAS,YACvB,OAAS,SAAS,QAAQ,IAC1B,QAAU,SAAS,QAAQ,KAC3B,WAAa,SAAS,YAAc,SAAS,WAEnD,KAAK,SAAW;;;;;;;wBAOI;;;;;8BAKM,SAAS;kCACL,SAAS;iCACV,kBAAkB;;kCAEjB,SAAS;;;;oCAIP,SAAS;mCACV,iBAAiB;;oCAEhB,SAAS;;;;;;;;;;;;QAzD7C,+BAAA,MA8EE,YAAY,UAJZ,KAAA,cAAgB,CAAC,KAAM,KAKrB,KAAK,YAAc,SAAS,QAE5B,GAAM,cAAe,SAAS,aACxB,YAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YAEvB,OAAS,aAAe,EAAI,SAAS,QAAQ,IAC7C,QAAU,YAAc,EAAI,SAAS,QAAQ,KAC7C,WAAa,SAAS,YAAc,SAAS,WAEnD,KAAK,SAAW;iCACa,WAAW;;;;;;;;;;;;gCAYZ;gDACgB;;oCAEZ,SAAS;;;;;yBAKpB;;kCAES;kDACgB;;sCAEZ,SAAS;;;;;;2BAMpB;;;oCAGS;8BACN;;;;;;;;;QCxGxB,8CAA8C,MAKlD,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,IAAM,OACV,CAAC,QAAS,UAAW,IAAA,KAAK,gBAAiB,aAAe,MAE1D,SAAW,qBAAa,kBAC1B,EAAE,MAA2C,YAAa,QAC1D,UAAW,KAAK,gBAAiB,IAE/B,QAAU,GAAI,iCAAgC,UACpD,MAAO,WAAQ,gBAAgB,QAAS,CAAC,EAAG,IAAK,WAG5C,GAAM,4CAA0D,CACrE,WAAY,oCACZ,YAAa,QACb,WAAY,sCCpBR,6CAA6C,MAKjD,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,QAAU,OACf,CAAC,QAAS,UAAW,IAAA,KAAK,gBAAiB,YAAc,MAEzD,SAAW,qBAAa,kBAC1B,WAAY,OAAO,MAA2C,QAC9D,UAAW,KAAK,gBAAiB,IAE/B,QAAU,GAAI,gCAA+B,UACnD,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,QAAS,WAGjD,GAAM,2CAAyD,CACpE,WAAY,mCACZ,YAAa,QACb,WAAY,qCC1Cd,YAAA,MAwBE,YAAY,MAJZ,KAAA,cAAgB,CAAC,KAKf,KAAK,YAAc,CAAC,KAAM,MAC1B,KAAK,SAAW;;;;;;QCHd,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEN,SAAW,CAAC,GAAG,EAAE,MAAO,GAAG,EAAE,OAC7B,MAAQ,aAAK,cAAc,EAAE,OAE7B,KAAO,SAAQ,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,UAEtD,QAAU,GAAI,aAAY,OAC1B,IAAM,UAAQ,gBAAgB,QAAS,CAAC,MAAO,KAAK,OAEpD,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,MAAO,YAE/D,MAAA,WAAQ,8BAA8B,MACtC,UAAQ,8BAA8B,KAE/B,IAGF,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OC/Cd,kBAAA,MAyBE,YAAY,UAJZ,KAAA,cAAgB,CAAC,IAAK,KAKpB,KAAK,YAAc,SAAS,SAE5B,GAAM,CACJ,SACA,QACA,QACA,aACA,YACA,aACA,YACA,eACA,eACE,SAEE,CAAC,IAAK,OAAQ,KAAM,SAAW,QAErC,KAAK,SAAW;oCACgB,iBAAiB;iCACpB,WAAW;;;;;;;;;;;;;8BAad;iCACG;;kCAEC;kCACA;qCACG;;sCAEC;;;;;;;;;;;;;;;;QCzChC,oBAAqB,MAKzB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,QAAU,OACd,CAAC,QAAS,IAAA,KAAK,WAAa,MAE5B,SAAW,qBAAa,sBAC1B,EAAE,MACF,OAAO,MAAmC,QAAS,KACnD,OAAyB,WACzB,IAEE,QAAU,GAAI,mBAAkB,UACtC,IAAM,UAAQ,gBAAgB,QAAS,CAAC,EAAG,QAAS,WAEpD,GAAM,aACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,MAAO,SAAS,YAChE,MAAA,WAAQ,8BAA8B,KAE/B,YAGF,GAAM,kBAAiC,CAC5C,WAAY,WACZ,YAAa,QACb,WAAY,YC/BR,KAAM,0CAEN,WAAa;;;;;;;;;EAWb,KAAM,iBAAgB,CAAC,UAAW,KAAK,gBAAiB,aAEjD,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCfR,QAAU,yCACV,eAAiB;;;EAKV,SACR,OACC,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAI,GAAK,OAEV,QAAU,MAAM,QAAQ,gCAC1B,GAAI,uBAAsB,eAAgB,GAAG,MAAO,EAAE,OACtD,GAAI,iBAAgB,QAAS,GAAG,MAAO,EAAE,OAC7C,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,GAAI,GAAG,QAG7C,eAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UCvBR,aAAe;;EAIf,MAAQ,wBAED,OAAQ,kBACjB,CAAC,UAAW,MAAO,gBAAiB,aAAc,MAAO,SAEhD,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCXR,IAAM;;;;cAIE,qBAAa;eACZ,qBAAa;eACb,qBAAa;eACb,qBAAa;eACb,qBAAa;eACb,qBAAa;;;;;;EAQf,KAAM,iBAAgB,CAAC,UAAW,MAElC,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCrBD,IAAM,iBACN,KAAM,iBACf,CAAC,UAAW,IAAK,gBAAiB,IAAK,cAAe,aAE7C,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCPR,qBAAqB,MAKzB,GAAM,CAAC,OAAQ,MAAO,QAAA,WAAW,KAC3B,CAAC,KAAO,MACR,CAAC,MAAA,QAAS,OAEV,UAAY,OAAM,MAAM,OACxB,SAAW,OAAM,MAAM,QACzB,KAAO,IACX,MAAI,KAAM,GAER,cAAK,OACD,CAAE,WAAY,IAAM,IACpB,IAAM,iCAAiC,CAAG,WAAY,OAClD,cACR,KAAO,UAAY,IAAM,GAE3B,SAAS,OAAO,KAAM,EAAG,GAElB,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAQ,QAAA,UAAS,MAAO,CAAC,MAAO,YAGvD,GAAM,mBAAiC,CAC5C,WAAY,WACZ,YAAa,QACb,WAAY,aC7BR,MAAQ,uBAED,OAAQ,iBACjB,CAAC,UAAW,MAAO,gBAAiB,MAAO,cAAe,eAEjD,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QC7Bd,WAAA,MAwBE,YACI,UAA0B,WAC1B,SANJ,KAAA,cAAgB,CAAC,OAAQ,QAOvB,GAAM,UAAW,WAAW,GAC5B,KAAK,YAAc,WAEnB,GAAM,2BACF,QAAU,SAAS,KAAK,KAAO,UAAU,KAAK,KAC5C,kBAAoB,QAAU,GAAG,aAAe,MAElD,SACJ,GAAI,YAAc,OAChB,SAAW,4CACF,YAAc,OACvB,SAAW,wCAEX,MAAM,IAAI,OACN,sDAAsD,cAG5D,KAAK,SAAW;yCACqB;;;UAG/B;;;;kDAIwC;;;;;;8BAMpB;;;;;;;;;yDAS2B;;;;;;;;;;QC1CnD,kBACF,EAAe,QAAkB,WACnC,GAAM,OAAQ,UAAQ,QAAQ,IAAI,EAAE,QAE9B,UAAY,aAAK,cAAc,EAAE,OAEjC,mBAAqB,EAAE,MAAM,EAAE,MAAM,OAAS,GAC9C,MAAQ,UAAY,mBAKpB,OAHU,SACZ,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,MAAO,uBAE3B,MACjB,YAAc,GAAI,YAAW,OAAQ,OAAQ,SAC7C,YAAc,GAAI,YAAW,OAAQ,OAAQ,SAE7C,OAAS,CACb,CACE,OAAQ,MAAM,mBAAmB,KAAK,OACtC,MAAO,MAAM,mBAAmB,KAAK,MACrC,MAAO,QAET,CACE,OAAQ,MAAM,mBAAmB,KAAK,OACtC,MAAO,MAAM,mBAAmB,KAAK,MACrC,MAAO,SAIL,SAAW,UAAQ,gBAAgB,YAAa,OAAQ,WACxD,SAAW,UAAQ,gBAAgB,YAAa,OAAQ,WAExD,cACF,SAAQ,CAAC,OAAQ,CAAC,KAAM,SAAU,KAAM,UAAW,QAAA,YAEvD,UAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,UAEtC,GAAM,uBACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,eAAgB,QAAA,UAAS,MAAO,CAAC,MAAO,EAAE,SAEnE,MAAA,WAAQ,8BAA8B,uBAE/B,sBC7CH,cAAc,MAElB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,MAAA,QAAS,OAEhB,MAAO,UAAQ,OAAO,GAAqB,WAGtC,GAAM,YAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MClCd,YAAA,MA2BE,YAAY,MAAiB,OAL7B,KAAA,YAAwB,GAMtB,KAAK,cAAgB,CAAC,KACtB,KAAK,YAAc,MAEnB,KAAK,SAAW;;;;;;MASlB,mBAAmB,OACjB,MAAO,CAAC,MAAqB,gBACvB,KAAK,UAAY,MACnB,MAAK,SAAW,MAAM,0BAA0B,aAAc,UAEhE,MAAM,GAAG,UAAU,KAAK,SAAU,UCvBlC,eAAe,MAEnB,GAAM,CAAC,QAAA,UAAS,OAAS,KACnB,CAAC,MAAO,OAAS,MACnB,CAAC,OAAS,MAId,GAFA,MAAQ,OAAS,aAAK,WAAW,OAE7B,QAAU,UAEZ,GAAM,QAAS,aAAK,kBAAkB,MAAO,aAAK,cAAc,QAChE,MAAA,QAAO,KAAK,OACL,UAAQ,eAAe,MAAO,MAAO,aAE5C,GAAM,SAAU,GAAI,aAAY,MAAO,OACjC,YAAc,QAAQ,mBAAmB,OAC/C,MAAO,WAAQ,gBAAgB,QAAS,GAAI,MAAO,cAIhD,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OC7Cd,qBAAA,MAwBE,YAAY,YAJZ,KAAA,cAAgB,CAAC,SACjB,KAAA,YAAwB,GAItB,GAAM,YAAa,WAAW,GAC9B,KAAK,YAAc,WAEnB,KAAK,SAAW;;;;;yBAKK;;uCAEc;;;;;;;QCZ1B,qBAAoC,CAC/C,WAAY,cACZ,YAAa,QACb,WAAY,CAAC,CAAC,OAAQ,QAAA,cACpB,GAAM,CAAC,MAAA,QAAS,OACV,aAAe,UAEf,QAAU,GAAI,sBAAsB,OAAmB,OAE7D,MADe,cAAa,gBAAgB,QAAS,CAAC,QAAQ,OAAM,SCTlE,MAAQ,mBAED,OAAQ,iBACjB,CAAC,UAAW,MAAO,gBAAiB,MAAO,cAAe,eAEjD,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCLR,QAAU;;;;;;;;;;EAYV,eAAiB;;;;;;;;;;;;;;;;;;;;;EAuBV,UAAW,kBACpB,CAAC,UAAW,QAAS,gBAAiB,eAAgB,MAAO,UAEpD,gBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WClEd,kBAAA,MAyBE,YAAY,aAJZ,KAAA,cAAgB,CAAC,KAKf,GAAM,MAAO,qBACP,CAAC,OAAQ,OAAW,YAC1B,KAAK,YAAc,YACnB,KAAK,SAAW;;;;;;uDAMmC,YAAY;;wBAE3C,KAAK;;;;;;;;;;;;;;QCrC7B,wBAAA,MA2BE,YAAY,aANZ,KAAA,cAAgB,CAAC,KAGjB,KAAA,aAAe,GACf,KAAA,aAAe,GAGb,GAAM,MAAO,qBACP,CAAC,OAAQ,OAAW,YAC1B,KAAK,YAAc,YACnB,KAAK,SAAW;;;;;;;;;;;;;;;8BAeU,YAAY;4BACd,KAAK;;;;;;;;;;;;;;;;UAgBvB,KAAK;;QCrCF,iBAAiC,CAC5C,WAAY,WACZ,YAAa,QACb,WAAY,aAGV,qBAEJ,qBAAoB,MAKlB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC7B,CAAC,QAAU,OACT,CAAC,aAAe,MAEhB,QAAU,MAAQ,mBAAsB,aAC1C,iBAAkB,kBAChB,QAAU,MAAQ,mBAAsB,aAC1C,iBAAkB,kBAChB,cAAgB,MAAO,cAAiB,aAC1C,iBAAkB,aAChB,CAAC,MAAO,QAAU,QACpB,CACG,OAA4B,WAC5B,OAA4B,aAE/B,CAAC,OAAO,MAAO,OAAO,QAEpB,SAA6B,CAAC,OAAQ,OACtC,SAAW,CAAC,OAAQ,MAAO,aAE7B,AAAA,UAAW,SAAW,gBACpB,uBAAuB,MACzB,sBAAsB,SAAS,cAAc,UAAU,WAAW,OAGpE,qBAAoB,OAAO,MAAQ,MACnC,qBAAoB,OAAO,OAAS,OACpC,qBAAoB,UAChB,OACA,EAAG,EAAG,MAAO,QACjB,OAAS,qBAAoB,QAG/B,GAAM,iBAAkB,UAAQ,eAAe,SAAU,SAEzD,UAAQ,QAAQ,IAAI,gBAAgB,QAAQ,MAAQ,aAAa,OACjE,UAAQ,MAAM,yBACV,UAAQ,WAAW,gBAAgB,QAAS,QAChD,GAAM,SAAU,MAAM,QAAQ,cAC1B,GAAI,yBAAwB,UAC5B,GAAI,mBAAkB,UACpB,IAAM,UAAQ,gBAAgB,QAAS,CAAC,iBAAkB,SAChE,MAAA,WAAQ,YAAY,gBAAgB,QAC7B,ICxDH,qBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,OAAQ,KAAM,wBAA0B,OAC5C,CACJ,QACA,IAAA,KACA,WACA,UACA,gBACA,WAAA,YACA,gBACE,MAEE,YAAc,qBAAa,wBAAwB,YACnD,SAAW,qBAAa,kBAC1B,EAAE,MACF,OAAO,MAA2C,QAAS,UAAW,KACtE,gBAAiB,GAAuB,aACxC,IACE,cAA8B,GAEpC,GAAI,SAAS,eAAiB,GAAK,SAAS,cAAgB,GACxD,SAAS,iBAAmB,GAAK,SAAS,gBAAkB,GAC5D,SAAS,eAAiB,GAAK,SAAS,cAAgB,GACvD,UAAS,QAAQ,OAAS,QAAU,SAAS,QAAQ,OAAS,SACjE,IAAM,eAAe,CACnB,EACA,OACA,SACA,QAAA,UACA,KACA,WAAA,YACA,uBACA,yBAEO,MAAM,QAAQ,sBAAwB,EAAE,MAAM,KAAO,EAC9D,IAAM,iBAAiB,CACrB,EACA,OACA,SACA,QAAA,UACA,KACA,WAAA,YACA,uBACA,sBAGF,GAAM,SAAU,MAAQ,KAClB,0BAA4B,wBAA0B,KACtD,kBAAoB,cAAe,YACnC,gBACF,YAAa,6BAA6B,YAAY,IAAS,KAC7D,QAAU,GAAI,eAChB,SAAU,QAAS,gBAAiB,0BACpC,mBACE,QAAuB,CAAC,EAAG,QAOjC,GANI,MACF,QAAO,KAAK,MAEV,wBACF,QAAO,KAAK,wBAEV,mBACF,GAAM,iBAAkB,UAAQ,eAC5B,GAAI,UACJ,aAAK,kBAAkB,eAAmC,YAC9D,QAAO,KAAK,iBACZ,cAAc,KAAK,iBAErB,IAAM,UAAQ,gBAAgB,QAAS,QAAQ,WAGjD,GAAM,aACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,MAAO,SAAS,YAEhE,MAAA,eAAc,KAAK,KACnB,cAAc,QAAQ,GAAK,UAAQ,8BAA8B,IAE1D,YAGF,GAAM,oBAAkC,CAC7C,WAAY,YACZ,YAAa,QACb,WAAY,aC1FR,+BAA+B,MAKnC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,OAAQ,KAAM,wBAA0B,OAC5C,CAAC,QAAS,IAAA,KAAK,UAAW,gBAAiB,WAAA,YAAY,gBACzD,MAEE,cAA8B,GAEhC,WAAa,UACb,YAAc,MAChB,YAAa,CAAC,EAAG,IAGnB,aAAK,OACD,qBAAa,+BAA+B,QAAS,YACrD,IAAM,gFACgB,0BAA0B,eAEpD,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MACF,OAAO,MAA2C,QAAS,WAC3D,KAAK,gBAAiB,IAEpB,wBAA0B,MAAM,QAAQ,6BAC1C,SAAS,aAAe,GACxB,SAAS,YAAc,SAAS,YAAe,EAC7C,gBAAkB,YACpB,6BAA6B,YAAY,yBACzC,KACE,cAA8B,CAAC,EAAG,QAElC,QAAU,MAAQ,KAClB,0BAA4B,wBAA0B,KACtD,kBAAoB,cAAe,YAQzC,GANI,SACF,cAAc,KAAK,MAEjB,2BACF,cAAc,KAAK,wBAEjB,mBACF,GAAM,iBAAkB,UAAQ,eAC5B,GAAI,UACJ,aAAK,kBAAkB,eAAmC,YAC9D,cAAc,KAAK,iBACnB,cAAc,KAAK,iBAGrB,GAAI,SACA,wBACF,QAAU,GAAI,8BACV,SAAU,QAAS,gBAAiB,0BACpC,mBAEJ,QAAU,GAAI,wBACV,SAAU,QAAS,gBAAiB,0BACpC,mBAGN,GAAM,QAAS,UAAQ,gBAAgB,QAAS,cAAe,WAE/D,MAAA,eAAc,QAAQ,GAAK,UAAQ,8BAA8B,IAE1D,OAGF,GAAM,6BAA2C,CACtD,WAAY,qBACZ,YAAa,QACb,WAAY,uBCjFd,gBAAA,MAME,YACY,SAA0B,QAAmB,OAA7C,KAAA,SAAA,SAA0B,KAAA,QAAA,QAJtC,KAAA,cAAgB,CAAC,IAAK,WAKpB,KAAK,YAAc,MACnB,GAAM,aAAc,kBAAkB,QAAQ,QACxC,MAAQ,kBAAkB,MAAM,QAChC,aAAe,KAAK,SAAW,EAAI,aAAe,UACxD,KAAK,SAAW;UACV,yBAAyB,eAAe,KAAK;;YAE3C;;gCAEoB,KAAK;;sCAEC;;;;UCbhC,mBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,OAAQ,SAAW,OAEpB,aAAe,QAAQ,MACvB,UAAY,aAAa,aAAa,OAAS,GAE/C,CAAC,YAAa,UAAW,UAAW,SACtC,qBAAa,mBAAmB,OAAQ,SAEtC,eAAiB,SACnB,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,UAAW,cACzD,SAAW,SAAQ,CACvB,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAE,aAAK,cAAc,OAAO,OAAS,UAAY,cAG5D,QACF,GAAI,iBAAgB,UAAW,QAAS,CAAC,UAAW,YAClD,IAAM,UAAQ,gBAChB,QAAS,CAAC,SAAU,gBAAiB,SAAS,OAE5C,SACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,MAAO,eAEvD,MAAA,WAAQ,8BAA8B,gBACtC,UAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,KAE/B,SAGF,GAAM,iBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WC5Dd,cAAA,MA0BE,YAAY,OAAkB,aAL9B,KAAA,cAAgB,CAAC,IAAK,WAMpB,KAAK,YAAc,YACnB,KAAK,KAAO,YAAY,OACxB,GAAM,OAAQ,kBAAkB,KAAK,MAC/B,aAAe,iBAAgB,OAAQ,GAE7C,KAAK,SAAW;;UAEV;yBACe;;QAOzB,0BAAyB,OAAkB,MACzC,GAAM,eAAgB,CAAC,UAAW,UAAW,UAAW,WAElD,aAAe,GACrB,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IAC7B,IAAM,EACR,aAAa,KAAK,qCAElB,aAAa,KAAK,GAAG,cAAc,MAGvC,MAAO,cAAa,OC5BhB,mBAAmB,MAKvB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,SAAW,OACf,CAAC,KAAM,WAAa,MAEpB,WAAa,aAAK,eAAe,KAAM,EAAE,OAAO,GAChD,UAAY,qBAAa,aAAa,yBACxC,EAAG,QAAS,WAAY,WAEtB,YAAc,aAAK,cAAc,QAAQ,OAEzC,UAAY,GAEZ,SAAW,SAAQ,CACvB,OAAQ,CAAC,GACT,QAAA,UACA,MAAO,CACL,MAAO,CACL,UAAU,UAAW,UAAU,UAAW,UAAU,QACpD,UAAU,cAKV,aAAe,SAAQ,CAC3B,OAAQ,CAAC,EAAG,SACZ,QAAA,UACA,MAAO,CAAC,MAAO,CAAC,UAAU,UAAW,YAAc,UAAU,cAG/D,UAAU,KAAK,UACf,UAAU,KAAK,cAEf,GAAM,oBAAqB,CACzB,UAAU,UAAW,UAAU,UAAW,YAAc,UAAU,UAClE,UAAU,WAGZ,GAAI,UAAQ,mBAAmB,CAAC,EAAG,WAAa,EAAE,QAAU,UAC1D,GAAM,YAAa,UAAQ,WAAW,cAChC,KAAO,UAAQ,WAAW,UAC1B,OAAS,gBAAgB,KAAM,WAAY,oBAEjD,MAAA,WAAU,QAAQ,GAAK,UAAQ,8BAA8B,IAEtD,UAAQ,eACX,UAAU,YAAa,OAAO,MAAO,OAAO,QAGlD,GAAM,SAAU,GAAI,eAAc,SAAS,MAAO,oBAC5C,IAAM,UAAQ,gBAChB,QAAS,CAAC,SAAU,cAAe,SAAS,OAChD,UAAU,KAAK,KAEf,GAAM,UAAW,SACb,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,MAAO,UAAU,eACzD,MAAA,WAAU,QAAQ,GAAK,UAAQ,8BAA8B,IACtD,SAGF,GAAM,iBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WCtER,QAAU,uBACV,eAAiB;;EAIV,SAAU,kBAAiB,CACtC,UAAW,QACX,gBAAiB,eACjB,cAAe,eACf,MAAO,SAGI,eAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UCjBR,cAAgB,wBAChB,qBAAuB;;EAIhB,cAAe,kBAAiB,CAC3C,UAAW,cACX,gBAAiB,qBACjB,MAAO,SAGI,oBAAmC,CAC9C,WAAY,aACZ,YAAa,QACb,WAAY,eCXR,eAAe,MAEnB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,MAAA,QAAS,OAEhB,MAAO,UAAQ,OAAO,GAAoB,WAGrC,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCdR,UAAY,wCAEL,UAAW,iBAAgB,CAAC,UAAW,UAAW,MAAO,SAEzD,gBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WCPR,OAAS,0BAEF,OAAQ,iBAAgB,CAAC,UAAW,OAAQ,MAAO,SAEnD,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCPR,OAAS,0BAEF,OAAQ,iBAAgB,CAAC,UAAW,OAAQ,MAAO,SAEnD,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCLR,KAAO,uBACP,YAAc;;EAIP,MAAO,kBAAiB,CACnC,UAAW,KACX,gBAAiB,YACjB,cAAe,YACf,MAAO,SAGI,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OChBD,WAAa,wBACb,kBAAoB;;EAIpB,WAAY,kBACrB,CAAC,UAAW,WAAY,gBAAiB,kBAAmB,MAAO,SAE1D,iBAAgC,CAC3C,WAAY,UACZ,YAAa,QACb,WAAY,YCVR,mBACF,MACF,GAAM,CAAC,QAAA,UAAS,OAAS,KACnB,CAAC,MAAO,KAAM,KAAO,MAGrB,QAAU,gBAAgB,MAAO,KAAM,KAC7C,MAAO,WAAQ,eAAe,CAAC,QAAQ,QAAS,UAAW,SAGtD,GAAM,iBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WCdR,IAAM;kBAGN,WAAa;;;;;;;;;EAWN,KAAM,iBACf,CAAC,UAAW,IAAK,gBAAiB,WAAY,cAAe,aAEpD,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCrBR,MAAQ,uBAED,OAAQ,iBAAgB,CAAC,UAAW,QAEpC,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCNR,YAAc,sCACd,mBAAqB;;;;EAMd,YAAa,kBAAiB,CACzC,UAAW,YACX,gBAAiB,mBACjB,MAAO,SAGI,kBAAiC,CAC5C,WAAY,WACZ,YAAa,QACb,WAAY,aCjBR,YAAc,6BAEP,YAAa,iBAAgB,CAAC,UAAW,cAEzC,kBAAiC,CAC5C,WAAY,WACZ,YAAa,QACb,WAAY,aCNR,WAAa,sCACb,kBAAoB;;;;;EAOb,WAAY,kBACrB,CAAC,UAAW,WAAY,gBAAiB,kBAAmB,MAAO,SAE1D,iBAAgC,CAC3C,WAAY,UACZ,YAAa,QACb,WAAY,YCnCd,WAAA,MAwBE,YACI,OAAkB,OAAgB,KAAc,MAChD,MANJ,KAAA,cAAgB,CAAC,KACjB,KAAA,YAAwB,GAMtB,GAAM,KAAM,OACN,KAAO,OAAO,GAAK,EACzB,KAAK,YAAc,OAMnB,GAAI,aACE,MAAQ,SAAS,iBAAiB,eACpC,OAAS,GACX,YAAc,eAAe,SACpB,OAAS,EAClB,YAAc,QAAQ,SAEtB,YAAc,WAAW,mBAAmB,UAG9C,KAAK,SAAW;;;;;;;;;wBASI,aAAa;;oCAED;;;;;0BAKV;;;QC7D1B,iBAAA,MA0BE,YACI,OAAkB,OAAgB,KAAc,MAChD,MARJ,KAAA,cAAgB,CAAC,KACjB,KAAA,YAAwB,GAExB,KAAA,aAAe,GACf,KAAA,aAAe,GAKb,GAAM,KAAM,OACN,KAAO,OAAO,GAAK,EACzB,KAAK,YAAc,OAMnB,GAAI,aACE,MAAQ,SAAS,iBAAiB,eACpC,OAAS,GACX,YAAc,eAAe,SACpB,OAAS,EAClB,YAAc,QAAQ,SAEtB,YAAc,WAAW,mBAAmB,UAG9C,KAAK,SAAW;;;;;;;;gCAQY,KAAK,YAAY;gCACjB,KAAK,YAAY;;;;;;;;;;;;;;;iCAehB;;;;;;;;;;;yBAWR,aAAa;;;6DAGuB;;;;;;;;;;;;;;;;;;;;;0CAqBnB;;;QCnF7B,IACR,OAEK,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,YAAa,KAAM,MAAO,MAAQ,MAEnC,QAAU,MAAM,QAAQ,4BAC1B,GAAI,kBAAiB,EAAE,MAAO,YAAa,KAAM,MAAO,MACxD,GAAI,YAAW,EAAE,MAAO,YAAa,KAAM,MAAO,MACtD,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,QAI5C,UAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,KCxCd,eAAA,MA6BE,YACI,WAAsB,YAAqB,KAAc,MACzD,MAXJ,KAAA,cAAgB,CAAC,aAAc,cAAe,MAC9C,KAAA,YAAwB,GAWtB,KAAK,YAAc,WACnB,KAAK,MAAQ,WAAW,GACxB,KAAK,YAAc,YACnB,KAAK,KAAO,KACZ,KAAK,MAAQ,MACb,KAAK,KAAO,KACZ,KAAK,SAAW;;;;;;;;8BAQU,KAAK;oDACiB;yCACX,KAAK;0BACpB;;;sCAGY,KAAK;;;;;;;;;;;;;;;yBAelB,yBAAyB;;;;;;;yCAOT;0BACf;;;;0CAIgB;;;;;;;;;;;;;;QCzD7B,QAAW,OAKtB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,EAAG,IAAM,OACb,CAAC,YAAa,KAAM,MAAO,MAAQ,MAEnC,QAAU,GAAI,gBAAe,EAAE,MAAO,YAAa,KAAM,MAAO,MACtE,MAAO,WAAQ,gBAAgB,QAAS,CAAC,EAAG,EAAG,IAAK,EAAE,QAI3C,cAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,SChBR,kBACF,EAAe,YAAuB,SACtC,WACF,GAAM,QAAS,aAAK,cAAc,aAE5B,UADQ,aAAK,cAAc,EAAE,OACT,OACpB,cACF,SAAQ,CAAC,OAAQ,CAAC,GAAI,MAAO,CAAC,MAAO,CAAC,UAAW,SAAU,QAAA,YAEzD,QAAU,OAAO,cAAe,EAAE,MAAO,MAAO,WAChD,eACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,MAAO,CAAC,MAAO,UAAW,QAAA,YAE7D,MAAA,WAAQ,8BAA8B,eACtC,UAAQ,8BAA8B,SAE/B,eCbH,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,iBAAkB,UAAY,MAE/B,MAAQ,EAAE,MAAM,OAEhB,SAAW,aAAK,eAAe,iBAAkB,EAAE,OACrD,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,OACrD,qBAAuB,cAAgB,KACvC,mBAAqB,UAAQ,mBAAmB,CAAC,IAEnD,SAAW,EACf,GAAI,sBACF,GAAI,oBAEF,GAAM,QADW,UAAQ,QAAQ,IAAI,SAAS,QACtB,OAElB,SAAqB,GAAI,OAAM,OACrC,OAAS,GAAI,EAAG,EAAI,SAAS,OAAQ,IACnC,SAAS,GAAK,EAAE,MAAM,aAAa,IAErC,GAAM,gBACF,iBAAiB,OAAQ,EAAE,MAAO,EAAE,MAAO,aAAc,UAE7D,SAAW,UAAQ,eAAe,SAAU,EAAE,OAC9C,GAAM,cAAe,UAAQ,QAAQ,IAAI,SAAS,QAClD,aAAa,OAAS,mBAEtB,UAAW,eAAc,EAAG,aAAc,WAG5C,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,OAGpD,qBAAa,2BAA2B,MAAO,KAAM,OACrD,GAAM,CAAC,YAAa,aAChB,qBAAa,0BAA0B,SAAS,MAAO,MAEvD,SAAW,YACX,UAEF,UAAW,qBAAa,qBAAqB,YAAa,WAG5D,GAAI,KACJ,GAAI,oBAEF,GAAM,QADW,UAAQ,QAAQ,IAAI,SAAS,QACtB,OAElB,UACF,WAAW,OAAQ,aAAK,cAAc,aAAc,SAAU,EAAE,OAEpE,IAAM,UAAQ,eAAe,SAAU,EAAE,OACzC,GAAM,SAAU,UAAQ,QAAQ,IAAI,IAAI,QACxC,QAAQ,OAAS,cAEjB,KAAM,SAAQ,SAAU,YAAa,SAAU,WAGjD,MAAI,uBACF,UAAQ,8BAA8B,UAGjC,IAGF,GAAM,YAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MC3ER,QAAU,mBAAoB;;EAI9B,eAAiB;;;IAInB,mBAA2B;;EAIlB,SAAU,kBAAiB,CACtC,UAAW,QACX,gBAAiB,eACjB,cAAe,iBAGJ,eAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UCtBR,kBAAkB,MAKtB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACZ,kBAAiB,EAAG,WACpB,GAAM,CAAC,WAAY,QAAS,IAAA,KAAK,iBAAmB,MAC9C,UAAY,EAElB,aAAK,OACD,qBAAa,+BAA+B,QAAS,WACrD,IAAM,wEACa,0BAA0B,cAEjD,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,UAAW,KAAK,iBACpB,GAAI,SAAS,cAAgB,GAAK,SAAS,eAAiB,GACxD,aAAK,YAAY,SAAS,QAAS,SAAS,UAC9C,MAAO,WAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YAEhC,GAAM,gBAAiB,GAAI,eAAc,SAAU,MAAO,IAC1D,MAAO,WAAQ,gBAAgB,eAAgB,CAAC,GAAI,EAAE,OAGjD,GAAM,gBAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UChCR,oBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,WAAY,QAAS,IAAA,KAAK,WAAY,iBAAmB,MAC1D,UAAsC,CAAC,EAAG,EAAG,GAE7C,SAAW,qBAAa,kBAC1B,EAAE,MAAmD,WAAY,QACjE,UAAW,KAAK,gBAAiB,YAC/B,eAAiB,GAAI,eAAc,SAAU,MAAO,IAC1D,MAAO,WAAQ,gBAAgB,eAAgB,CAAC,GAAI,EAAE,OAGjD,GAAM,kBAAgC,CAC3C,WAAY,UACZ,YAAa,QACb,WAAY,YCzCd,yBAAA,MAyBE,YAAY,UAJZ,KAAA,cAAgB,CAAC,KAAM,UAKrB,KAAK,YAAc,SAAS,QAC5B,GAAM,cAAe,SAAS,aACxB,YAAc,SAAS,YACvB,eAAiB,SAAS,eAC1B,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAEhC,OAAS,sBAAwB,EAAI,SAAS,QAAQ,IACtD,QAAU,qBAAuB,EAAI,SAAS,QAAQ,KAEtD,UAAY,sBAAwB,qBAAuB,EACjE,KAAK,SAAW;iCACa,WAAW;;;;;;;;;;;;;;gCAcZ;kBACd;gDAC8B;;oCAEZ,SAAS;;;;;kCAKX;kDACgB;;sCAEZ,SAAS;;;;;;;gCAOf;;;;qCAIK;;;;;;;;QA3ErC,yBAAA,MA4FE,YAAY,UAJZ,KAAA,cAAgB,CAAC,KAAM,UAKrB,KAAK,YAAc,SAAS,QAC5B,GAAM,aAAc,SAAS,YACvB,aAAe,SAAS,aACxB,YAAc,SAAS,YACvB,cAAgB,SAAS,cACzB,eAAiB,SAAS,eAC1B,cAAgB,SAAS,cACzB,qBAAuB,SAAS,qBAChC,sBAAwB,SAAS,sBACjC,qBAAuB,SAAS,qBAEhC,SAAW,qBAAuB,EAAI,SAAS,QAAQ,MACvD,OAAS,sBAAwB,EAAI,SAAS,QAAQ,IACtD,QAAU,qBAAuB,EAAI,SAAS,QAAQ,KAEtD,UACF,qBAAuB,sBAAwB,qBAAuB,EAC1E,KAAK,SAAW;iCACa,aAAa,WAAW;;;;;;;;;;;;;;;;;gCAiBzB;mBACb;gDAC6B;;oCAEZ,SAAS;;;;;kCAKX;sBACZ;kDAC4B;;sCAEZ,SAAS;;;;;;oCAMX;wBACZ;oDAC4B;;wCAEZ,SAAS;;;;;;;kCAOf;;;;;;yBAMT,2BAA2B;yBAC3B;;;;;;;;;QC/InB,wBAAwB,MAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,MAAA,QAAS,OACd,EAAI,OACJ,CAAC,WAAY,QAAS,IAAA,KAAK,iBAAmB,MAC9C,UAAsC,CAAC,EAAG,EAAG,GAE7C,SAAW,qBAAa,kBAC1B,EAAE,MAAmD,WAAY,QACjE,UAAW,KAAK,iBAEd,0BACF,GAAI,eAAc,SAAU,MAAO,IACjC,oBACF,UAAQ,gBAAgB,0BAA2B,CAAC,GAAI,EAAE,OACxD,uBAAyB,GAAI,0BAAyB,UACtD,OAAS,UAAQ,gBACnB,uBAAwB,CAAC,GAAI,qBAAqB,EAAE,OACxD,MAAA,WAAQ,8BAA8B,qBAC/B,OAGF,GAAM,qBAAoC,CAC/C,WAAY,cACZ,YAAa,QACb,WAAY,gBC5BR,sBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAI,MAAA,OAAO,QAAU,OACtB,EAAI,OACV,kBAAiB,CAAC,OAAO,QAAS,eAClC,GAAM,CAAC,WAAY,QAAS,IAAA,KAAK,iBAAmB,MAE9C,SAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,EAAmB,KAAK,iBACtB,aAAe,GACf,wBACF,GAAI,eAAc,SAAU,MAAO,cACjC,kBACF,UAAQ,gBAAgB,wBAAyB,CAAC,GAAI,EAAE,OAEtD,uBAAyB,GAAI,0BAAyB,UACtD,OAAS,UAAQ,gBACnB,uBAAwB,CAAC,GAAI,mBAAmB,EAAE,OACtD,MAAA,WAAQ,8BAA8B,mBAC/B,OAGF,GAAM,oBAAkC,CAC7C,WAAY,YACZ,YAAa,QACb,WAAY,cC/BR,gCACF,EAAe,oBACf,SACA,WACF,GAAI,SAAU,GAAI,eAAc,SAAU,MAAO,IAC3C,WAAa,UAAQ,gBAAgB,QAAS,CAAC,GAAI,WAEzD,QAAU,GAAI,eAAc,SAAU,MAAO,GAAM,GAAM,qBACzD,GAAM,aAAc,UAAQ,gBAAgB,QAAS,CAAC,GAAI,WAC1D,MAAO,CAAC,WAAY,aCPf,GAAM,0BAAwC,CACnD,WAAY,kBACZ,YAAa,QACb,WAAY,CAAC,CAAC,OAAQ,MAAO,QAAA,cAC3B,GAAM,CAAC,GAAK,OACN,CAAC,WAAY,QAAS,IAAA,KAAK,qBAC7B,MACE,aAAe,UAErB,aAAK,OACD,EAAE,MAAM,SAAW,EACnB,IAAM,uDACF,EAAE,MAAM,WAChB,GAAM,WAA8B,CAAC,EAAG,GACxC,aAAK,OACD,qBAAa,+BAA+B,QAAS,WACrD,IAAM,wEACa,0BAA0B,cAEjD,GAAM,UAAW,qBAAa,kBAC1B,EAAE,MAA2C,WAAY,QACzD,UAAW,MAET,CAAC,OAAQ,SACX,uBAAsB,EAAG,oBAAqB,SAAU,cAC5D,MAAO,CAAC,OAAQ,WC1Bd,kBACF,EAAe,YAAuB,SACtC,WACF,GAAM,QAAS,aAAK,cAAc,aAE5B,UADQ,aAAK,cAAc,EAAE,OACT,OACpB,cACF,SAAQ,CAAC,OAAQ,CAAC,GAAI,MAAO,CAAC,MAAO,CAAC,UAAW,SAAU,QAAA,YAEzD,QAAU,OAAO,cAAe,UAAW,OAAQ,WACnD,eACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,MAAO,CAAC,MAAO,UAAW,QAAA,YAE7D,MAAA,WAAQ,8BAA8B,eACtC,UAAQ,8BAA8B,SAE/B,eCfF,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,CAAC,CAAC,OAAQ,MAAO,QAAA,cAC3B,GAAM,CAAC,GAAK,OACN,CAAC,SAAU,MAAQ,MACnB,aAAe,UAEf,MAAQ,EAAE,MAAM,OAChB,SAAW,aAAK,eAAe,KAAM,EAAE,OAEzC,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,OACrD,sBAAwB,cAAgB,KACxC,mBAAqB,aAAa,mBAAmB,CAAC,IAEtD,cAA8B,GAEhC,UAAY,EAChB,GAAI,uBACF,GAAI,oBAEF,GAAM,QADW,aAAa,QAAQ,IAAI,UAAU,QAC5B,OAElB,SAAqB,GAAI,OAAM,OACrC,OAAS,GAAI,EAAG,EAAI,SAAS,OAAQ,IACnC,SAAS,GAAK,EAAE,MAAM,aAAa,IAErC,GAAM,iBACF,iBAAiB,OAAQ,EAAE,MAAO,EAAE,MAAO,aAAc,UAE7D,UAAY,aAAa,eAAe,SAAU,EAAE,OACpD,GAAM,eAAgB,aAAa,QAAQ,IAAI,UAAU,QACzD,cAAc,OAAS,oBAEvB,WAAY,eAAc,EAAG,aAAc,cAG7C,cAAc,KAAK,WACnB,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,OAGpD,qBAAa,2BAA2B,MAAO,KAAM,OACrD,GAAM,CAAC,aAAc,aACjB,qBAAa,0BAA0B,UAAU,MAAO,MAExD,SAAW,aACX,UAEF,UAAW,qBAAa,qBAAqB,aAAc,WAG7D,GAAM,KAAM,SAAS,UAAW,YAAa,SAAU,cACvD,OAAW,KAAK,eACd,aAAa,8BAA8B,GAG7C,MAAO,OCxDL,cACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEnB,MAAQ,EAAE,MAAM,OAEhB,SAAW,aAAK,eAAe,KAAM,EAAE,OACzC,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,OACvD,UAAY,EACZ,cAAgB,MAClB,WAAY,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBAC3D,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,EAAE,MAAM,SAG5D,qBAAa,2BAA2B,MAAO,KAAM,OACrD,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,UAAU,MAAO,MACtD,OAAS,aAAK,cAAc,aAC5B,IACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,WAAY,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,GAAI,WAC5D,QAAU,OAAO,IAAK,IAAI,MAAO,MAAO,WAE1C,IACJ,GAAI,UACF,GAAM,UAAW,qBAAa,qBAAqB,SAAU,UAC7D,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,gBAE7D,KAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,YAG/D,MAAA,WAAQ,8BAA8B,KACtC,UAAQ,8BAA8B,SAElC,cAAgB,MAClB,UAAQ,8BAA8B,WAGjC,IAGF,GAAM,YAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MChDR,QAAU,mBAAoB;;EAI9B,eAAiB;;;IAInB,mBAA2B;;EAIlB,SAAU,kBAAiB,CACtC,UAAW,QACX,gBAAiB,eACjB,cAAe,iBAGJ,eAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UC7Cd,iBAAA,MAyBE,YACI,OAAkB,SAClB,MANJ,KAAA,cAAgB,CAAC,KAOf,KAAK,YAAc,SAAS,IACxB,CAAC,GAAG,IAAM,GAAE,GAAqB,OAAO,GAAK,GAAE,IACnD,GAAM,MAAO,OAAO,OACd,MAAQ,kBAAkB,MAE1B,MAAQ,SAAS,IAAI,IAAK,GAAE,IAAI,KAAK,KACrC,IAAM,SAAS,IAAI,CAAC,GAAG,IAAM,GAAE,GAAK,OAAO,IAAI,KAAK,KACpD,eACF,CAAC,YAAa,YAAa,YAAa,aAAa,MAAM,EAAG,MAC5D,OAAS,OAAS,UAAY,EAAI,EAExC,GAAI,OAAS,GACX,KAAK,SAAW;sBACA;oBACF;;;;;wCAKoB;;4CAEI;;;;QAKtC,OAEF,KAAK,SAAW;QACZ,iBAAiB,SAAS;QAC1B,eAAe,SAAS;;;UAGtB;8BACoB;;iDAEmB;;qDAEI;;;UAG3C;yBACe;;QCtEzB,uBAAA,MAmEE,YACI,OAAkB,SAClB,MARJ,KAAA,cAAgB,CAAC,KACjB,KAAA,aAAe,GACf,KAAA,aAAe,GAOb,KAAK,YAAc,SAAS,IACxB,CAAC,GAAG,IAAM,GAAE,GAAqB,OAAO,GAAK,GAAE,IACnD,GAAM,MAAO,OAAO,OACd,MAAQ,kBAAkB,MAE1B,MAAQ,SAAS,IAAI,IAAK,GAAE,IAAI,KAAK,KACrC,IAAM,SAAS,IAAI,CAAC,GAAG,IAAM,GAAE,GAAK,OAAO,IAAI,KAAK,KACpD,QAAS,YAAY,KAAM,MAC3B,OAAS,YAAY,SAAU,MAC/B,OAAS,GAAG,QAAO,KAAO,QAAQ,KAAK,YAAY,KAAO,KAC1D,UACF,OAAS,EAAI,SAAW,QAAQ,OAAO,MAAM,IAAI,UAC/C,OAAS,OAAS,UAAY,EAAI,EAEpC,SAAW,GACf,GAAI,OAAS,GACX,GAAM,UAAW;UACb;;0CAEgC;;8CAEI;;;QAIxC,SAAW;UACP;UACA;sCAC4B,OAAO,YAAY;UAC/C,QAAO,KAAO;aACX;YACD;wCAC4B,OAAO,YAAY;;aAIrD,GAAM,UAAW;UACb;UACA,cAAc;UACd,eAAe;UACf;;6CAEmC;kDACK;;QAI5C,SAAW;UACP;UACA;sCAC4B,OAAO,YAAY;UAC/C,QAAO,KAAO;aACX;YACD;wCAC4B,OAAO,YAAY;;;UAGjD,QAAO,KAAO;aACX,QAAO,KAAO,QAAQ,KAAK,YAAY,KAAO;YAC/C;wCAC4B,OAAO,YAAY;YAC/C,QAAO,KAAO;eACX;cACD;0CAC4B,OAAO,YAAY;;;QAMzD,KAAK,SAAW;cACN,iBAAiB,SAAS;cAC1B,eAAe,SAAS;;;UAG5B;;UAEA;;;QC5HG,oBAIM,CAAC,CAAC,OAAQ,QAAA,UAAS,UACpC,GAAM,CAAC,GAAK,OACN,CAAC,SAAU,MAAQ,MAEnB,QAAU,MAAM,QAAQ,+BAC1B,GAAI,wBAAuB,EAAE,MAAO,SAAU,MAC9C,GAAI,kBAAiB,EAAE,MAAO,SAAU,MAI5C,MAFe,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,QAK5C,iBAAgC,CAC3C,WAAY,UACZ,YAAa,QACb,WAAY,qBCrBR,IAAM;qBAGN,WAAa;;;IAIf,mBAAoB;;EAIX,KAAM,kBAAiB,CAClC,UAAW,IACX,gBAAiB,aAGN,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCzCd,mBAAA,MA4BE,YAAY,UAAmB,YAAqB,YAPpD,KAAA,cAAgB,CAAC,SAQf,KAAK,YAAc,CAAC,UAAW,YAE/B,KAAK,SAAW;;;;;;;;;;8BAUU,YAAc;;;;;;;;;;0BAUlB,YAAc;;MAKtC,mBAAmB,MACjB,MAAO,CAAC,MAAqB,gBACvB,KAAK,SAAW,MAClB,MAAK,QAAU,MAAM,mBAAmB,aAAc,SAExD,MAAM,GAAG,UAAU,KAAK,QAAS,SCtCjC,IAAM;;;;eAQN,WAAa;;;;;;;;;;;;;;;;;;EAoBN,QAAU,kBACnB,CAAC,UAAW,IAAK,gBAAiB,WAAY,iBAAkB,KAEvD,eAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,SCnCR,IAAM,gBAEC,KAAM,kBAAiB,CAClC,UAAW,IACX,gBAAiB,IACjB,gBAAiB,GACjB,cAAe,aAGJ,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCNR,kBAAkB,MAKtB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAU,OACX,CAAC,KAAO,MAER,KAAO,aAAK,eAAe,CAAC,KAAM,OAAO,OAEzC,SAAW,KAAI,CACnB,OAAQ,CAAC,EAAG,QACZ,QAAA,UACA,MAAO,CAAC,iBAAkB,KAAM,SAAU,MAGtC,cAAgB,qBAAa,qBAAqB,SAAS,MAAO,MAElE,kBACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,UAAS,MAAO,CAAC,MAAO,iBACtD,EACF,KAAI,CAAC,OAAQ,CAAC,EAAG,OAAQ,EAAG,mBAAoB,QAAA,YAC9C,EAAI,KAAI,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAA,YACzB,OACF,KAAI,CAAC,OAAQ,CAAC,EAAG,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,KAAM,SAAU,MAC1D,eACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,iBAEpD,IACF,QAAQ,CAAC,OAAQ,CAAC,EAAG,EAAG,EAAG,gBAAiB,QAAA,YAEhD,MAAA,WAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,mBACtC,UAAQ,8BAA8B,GACtC,UAAQ,8BAA8B,GACtC,UAAQ,8BAA8B,QACtC,UAAQ,8BAA8B,gBAE/B,IAGF,GAAM,gBAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UCjDR,sBAAsB,MAK1B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAU,OACX,CAAC,WAAY,KAAM,YAAc,MAEjC,MAAQ,WACV,OACA,SACI,CAAC,OAAQ,CAAC,QAAS,QAAA,UAAS,MAAO,CAAC,IAAK,OAAO,MAAM,OAAS,KACjE,UAAY,MAAM,MAAM,GACxB,YAAc,MAAM,MAAM,GAC1B,QAAU,GAAI,oBAAmB,UAAW,YAAa,YACzD,YAAc,QAAQ,mBAAmB,MAEzC,IAAM,UAAQ,gBAAgB,QAAS,CAAC,OAAQ,QAAS,aAC/D,MAAK,aACH,UAAQ,8BAA8B,OAEjC,IAGF,GAAM,oBAAkC,CAC7C,WAAY,YACZ,YAAa,QACb,WAAY,cC7BR,IAAM,aAIN,cAAc,MAElB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEZ,GAAI,UAAQ,mBAAmB,CAAC,KAC9B,GAAM,OAAQ,UAAQ,QAAQ,IAAI,EAAE,QAC9B,CAAC,UAAW,UACd,WAAW,MAAM,OAAsB,EAAE,MAAO,EAAE,OACtD,MAAO,WAAQ,eAAe,SAAU,EAAE,MAAO,WAGnD,GAAI,SACJ,MAAI,OAAM,QAAQ,+BAChB,QAAU,GAAI,sBAAqB,EAAE,MAAO,KAE5C,QAAU,GAAI,gBAAe,EAAE,MAAO,KAGjC,UAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,OAG1C,GAAM,YAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCjCR,yBAA0B,qBAAa,wBAGvC,8BAA8B,MAKlC,qBAAa,KACT,iGAGJ,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAO,QAAU,OAClB,CAAC,cAAe,aAAc,gBAAkB,MAEhD,UAAY,UAAQ,SAAS,MAAM,QACnC,WAAa,UAAQ,SAAS,OAAO,QAErC,CAAC,iBAAmB,yBACtB,UAAW,WAAY,cAAe,aAAc,gBAExD,MAAO,WAAQ,eACX,CAAC,gBAAgB,QAAS,QAAS,GAAI,YAAW,kBAGjD,GAAM,4BAA0C,CACrD,WAAY,oBACZ,YAAa,QACb,WAAY,sBC9BR,yBAA0B,qBAAa,wBAIvC,8BAA8B,MAKlC,qBAAa,KACT,iGAGJ,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAO,QAAU,OAClB,CAAC,cAAe,aAAc,eAAgB,oBAChD,MAEE,UAAY,UAAQ,SAAS,MAAM,QACnC,WAAa,UAAQ,SAAS,OAAO,QAErC,CAAC,gBAAiB,cAAgB,yBACpC,UAAW,WAAY,cAAe,aAAc,eACpD,oBAEJ,MAAO,CACL,UAAQ,eACJ,CAAC,gBAAgB,QAAS,QAAS,GAAI,YAAW,kBACtD,UAAQ,eAAe,GAAI,QAAS,GAAI,YAAW,CAAC,iBAIjD,GAAM,4BAA0C,CACrD,WAAY,oBACZ,YAAa,QACb,WAAY,sBClCR,yBAA0B,qBAAa,wBAGvC,8BAA8B,MAKlC,qBAAa,KACT,iGAGJ,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAO,QAAU,OAClB,CAAC,cAAe,aAAc,eAAgB,cAAgB,MAE9D,UAAY,UAAQ,SAAS,MAAM,QACnC,WAAa,UAAQ,SAAS,OAAO,QAErC,iBAAmB,cACnB,gBAAkB,aAClB,kBAAoB,eACpB,gBAAkB,aAElB,CAAC,gBAAiB,gBAAkB,yBACtC,UAAW,WAAY,iBAAkB,gBACzC,kBAAmB,iBAEvB,MAAO,CACL,UAAQ,eACJ,CAAC,gBAAgB,QAAS,QAAS,GAAI,YAAW,kBACtD,UAAQ,eACJ,CAAC,eAAe,QAAS,UAAW,GAAI,cAAa,kBAItD,GAAM,4BAA0C,CACrD,WAAY,oBACZ,YAAa,QACb,WAAY,sBC1Dd,cAAA,MA2BE,YACI,WAAoB,MAAe,QAAiB,UARxD,KAAA,cAAgB,CAAC,WASf,KAAK,YAAc,CAAC,WAAY,OAEhC,KAAK,SAAW;;;;8BAIU,oBAAoB;;;QCZrC,QAAU,OAKrB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,SAAW,OACZ,CAAC,MAAO,QAAS,UAAY,MAE7B,YAAc,aAAK,cAAc,QAAQ,OACzC,QAAU,GAAI,eAAc,YAAa,MAAO,QAAS,UACzD,SACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,gBACtD,OAAS,UAAQ,gBAAgB,QAAS,CAAC,UAAW,QAAQ,OACpE,UAAQ,8BAA8B,UAEtC,GAAM,UAAW,CAAC,GAAG,QAAQ,MAAO,OAC9B,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,YAClE,MAAA,WAAQ,8BAA8B,QAC/B,KAGI,cAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SCtBR,oBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEZ,GAAI,EAAE,QAAU,aACd,GAAM,UAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,EAAI,WAAU,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,YACtC,SAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,EAAI,WAAU,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,YAEtC,OAAS,SAAQ,CAAC,OAAQ,CAAC,KAAM,EAAG,KAAM,GAAI,QAAA,YAEpD,MAAA,WAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,GACtC,UAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,GAE/B,WAEP,OAAO,OAAK,CACV,MAAO,CACL,MAAO,EAAE,MACT,MAAO,EAAE,MACT,MAAO,EAAE,QAAU,SAAW,GAAK,GAErC,QAAA,YAKC,GAAM,kBAAgC,CAC3C,WAAY,UACZ,YAAa,QACb,WAAY,YCjCR,mBACF,MACF,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,GAAK,OAEZ,GAAI,EAAE,QAAU,SACd,KAAM,IAAI,OAAM,gDACX,GAAI,EAAE,QAAU,aACrB,GAAM,UAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,EAAI,UAAS,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,YACrC,SAAW,MAAK,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,YACrC,EAAI,WAAU,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,YAEtC,OAAS,SAAQ,CAAC,OAAQ,CAAC,KAAM,EAAG,KAAM,GAAI,QAAA,YAEpD,MAAA,WAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,GACtC,UAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,GAE/B,WAIP,OAAO,OAAK,CAAC,MAAO,CAAC,MAAO,EAAE,MAAO,MAAO,EAAE,MAAO,MAAO,GAAI,QAAA,YAI7D,GAAM,iBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WCnCR,eACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,MAAQ,MAEf,GAAI,OAAO,SAAW,EACpB,MAAO,aACH,CAAC,OAAQ,CAAC,MAAO,OAAO,IAAK,QAAA,UAAS,MAAO,CAAC,IAAK,QAGzD,GAAM,OAAQ,OAAO,GAAG,MAClB,MAAQ,OAAO,GAAG,MAExB,OAAO,QAAQ,IACb,aAAK,kBACD,MAAO,EAAE,MACT,yDACJ,aAAK,OACD,QAAU,EAAE,MACZ,IAAM,2DAGZ,GAAM,yBAAwC,GACxC,gBAAkB,OAAO,IAAI,IACjC,GAAM,WACF,YAAW,CAAC,OAAQ,CAAC,MAAO,GAAI,QAAA,UAAS,MAAO,CAAC,IAAK,QAC1D,MAAA,yBAAwB,KAAK,WACtB,YAGH,OAAS,QAAO,CAAC,OAAQ,gBAAiB,QAAA,UAAS,MAAO,CAAC,QAEjE,MAAA,yBAAwB,QACpB,GAAK,UAAQ,8BAA8B,IAExC,OAGF,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCjEd,WAAA,MAyBE,YACI,OAAkB,SAClB,eANJ,KAAA,cAAgB,CAAC,KAOf,KAAK,YAAc,SAAS,IACxB,CAAC,GAAG,IAAM,GAAE,GAAqB,OAAO,GAAK,GAAE,IACnD,GAAM,MAAO,OAAO,OACd,KAAO,kBAAkB,MAEzB,MAAQ,SAAS,IAAI,IAAK,GAAE,IAAI,KAAK,KACrC,IAAM,SAAS,IAAI,CAAC,GAAG,IAAM,GAAE,GAAK,OAAO,IAAI,KAAK,KACpD,eACF,CAAC,YAAa,YAAa,YAAa,aAAa,MAAM,EAAG,MAElE,GAAI,OAAS,GACX,KAAK,SAAW;sBACA;oBACF;;;;;8BAKU;;;;;QAMxB,OAEF,KAAK,SAAW;QACZ,gBAAgB,QAAQ;QACxB,cAAc,QAAQ;;;UAGpB;;4BAEkB;;YAEhB;2BACe;;;QChE3B,iBAAA,MA4BE,YACI,OAAkB,SAClB,eARJ,KAAA,cAAgB,CAAC,KACjB,KAAA,aAAe,GACf,KAAA,aAAe,GAOb,KAAK,YAAc,SAAS,IACxB,CAAC,GAAG,IAAM,GAAE,GAAqB,OAAO,GAAK,GAAE,IACnD,GAAM,MAAO,OAAO,OACd,MAAQ,kBAAkB,MAE1B,MAAQ,SAAS,IAAI,IAAK,GAAE,IAAI,KAAK,KACrC,IAAM,SAAS,IAAI,CAAC,GAAG,IAAM,GAAE,GAAK,OAAO,IAAI,KAAK,KACpD,QAAS,YAAY,KAAM,MAC3B,OAAS,YAAY,SAAU,MAC/B,OAAS,GAAG,QAAO,KAAO,QAAQ,KAAK,YAAY,KAAO,KAC1D,UACF,OAAS,EAAI,SAAW,QAAQ,OAAO,MAAM,IAAI,UAE/C,eAAiB,CACrB,GAAG,wBAAyB,GAAG,QAAO,KAAO;YACvC;QAEN,OAAS,EAAI,GAAK;;SAEf,QAAO,KAAO;YACX,QAAO,KAAO,QAAQ,KAAK,YAAY,KAAO,QACpD,OAAS,EAAI,GAAK,KAAK,QAAO,KAAO;cAC7B,aAGJ,YAAc,OAAS,EACzB,0BACA,6DACA,SAAW,GACf,OAAS,GAAI,EAAG,EAAI,OAAS,EAAI,EAAI,EAAG,EAAI,EAAG,IAC7C,UAAY;UACR,eAAe;cACX;mBACK,cAAc;;YAErB;mBACO,wBAAwB,OAAO,YAAY;;QAI1D,UAAa,OAAS,EAAI,KAAO,KAEjC,KAAK,SAAW;cACN,iBAAiB,SAAS;cAC1B,eAAe,SAAS;;;UAG5B;;UAEA;;;QCzDG,OACR,OAEK,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,SAAU,eAAiB,MAE5B,QAAU,MAAM,QAAQ,+BAC1B,GAAI,kBAAiB,EAAE,MAAO,SAAU,eACxC,GAAI,YAAW,EAAE,MAAO,SAAU,eACtC,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,QAG5C,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCjBR,IAAM;;;;;;;;;EAWN,WAAa;;;;;;;;;;;;;;IAef,mBAAoB;;EAIX,KACT,kBAAiB,CAAC,UAAW,IAAK,gBAAiB,aAE1C,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MChCR,eACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,KAAM,UAAY,MAEnB,MAAQ,EAAE,MAAM,OAChB,UAAY,GAEZ,SAAW,aAAK,eAAe,KAAM,EAAE,OACzC,KAAO,SACL,aAAe,qBAAa,mBAAmB,KAAM,OACvD,UAAY,EACZ,cAAgB,MAClB,WAAY,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,gBAC3D,KAAO,qBAAa,iBAAiB,KAAK,OAAQ,OAClD,UAAU,KAAK,YAGjB,qBAAa,2BAA2B,OAAQ,KAAM,OAEtD,GAAI,KACJ,GAAI,UAAQ,mBAAmB,CAAC,aAC9B,GAAM,OAAQ,UAAQ,QAAQ,IAAI,UAAU,QAAQ,OAC9C,CAAC,QAAS,SAAU,UACtB,YAAY,UAAU,MAAO,UAAU,MAAO,MAAO,MACzD,IAAM,UAAQ,eAAe,SAAU,SAAU,cAEjD,GAAM,CAAC,SAAU,aACb,qBAAa,0BAA0B,UAAU,MAAO,MACtD,OAAS,aAAK,cAAc,aAC5B,IAAM,SACR,CAAC,OAAQ,CAAC,EAAG,WAAY,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,GAAI,WACpD,YAAc,WAAW,EAAE,OAC3B,QAAU,OAAO,IAAK,YAAa,OAAQ,WACjD,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,YAE7D,UAAU,KAAK,KACf,UAAU,KAAK,SAGjB,GAAI,UACF,UAAU,KAAK,KACf,GAAM,UAAW,qBAAa,qBAAqB,IAAI,MAAO,UAC9D,IAAM,SAAQ,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,MAAO,YAG3D,MAAA,WAAU,QAAQ,GAAK,UAAQ,8BAA8B,IAEtD,IAGF,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OC5DD,OACR,OACC,GAAM,CAAC,QAAA,UAAS,OAAS,KACnB,CAAC,MAAO,KAAM,KAAA,MAAM,OAAS,MAC7B,OAAS,aAAa,MAAO,KAAM,MAAM,OAC/C,MAAO,WAAQ,eAAe,CAAC,OAAO,QAAS,MAAO,SAG/C,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCbR,WAAa,kBAEN,YAAa,iBAAgB,CAAC,UAAW,aAEzC,kBAAiC,CAC5C,WAAY,WACZ,YAAa,QACb,WAAY,aCNR,MAAO,kBAAoB;;EAI3B,YAAc;;;;;;;;;;EAYP,MACT,iBAAgB,CAAC,UAAW,MAAM,gBAAiB,cAE1C,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCtBR,OAAQ,kBAAoB;;EAI5B,aAAe;;;;;;;;;;EAYR,OACT,iBAAgB,CAAC,UAAW,OAAO,gBAAiB,eAE3C,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QC3Cd,sBAAA,MAwBE,YACI,WAA8C,UAC9C,SAAkB,aAAuB,kBAN7C,KAAA,cAAgB,CAAC,KACjB,KAAA,YAAwB,GAMtB,GAAM,CAAC,MAAO,UAAW,SAAU,OAAS,WAC5C,KAAK,YAAc,CAAC,MAAO,UAAW,SAAU,OAEhD,GAAM,iBAAoC,CACvC,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAG5C,iBAAqC,CACxC,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAG9C,kBACA,iBACF,kBACI,wEAGJ,kBAAoB,8CAGtB,KAAK,SAAW;;YAER,gBAAgB,GAAK,iBAAiB;YACtC,gBAAgB,GAAK,iBAAiB;uCACX,gBAAgB;;;;;;;;;mCASpB;;;;;;;;;;;;;;;;;;;;QC9DnC,4BAAA,MA0BE,YACI,WAA8C,UAC9C,SAAkB,aAAuB,kBAR7C,KAAA,cAAgB,CAAC,KACjB,KAAA,aAAe,GACf,KAAA,aAAe,GACf,KAAA,YAAwB,GAMtB,GAAM,CAAC,MAAO,UAAW,SAAU,OAAS,WAC5C,KAAK,YAAc,CAAC,MAAO,UAAW,SAAU,OAEhD,GAAM,iBAAoC,CACvC,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAG5C,iBAAqC,CACxC,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAG9C,kBACA,iBACF,kBAAoB,wEAGpB,kBAAoB,8CAGtB,KAAK,SAAW;;YAER,gBAAgB,GAAK,iBAAiB;YACtC,gBAAgB,GAAK,iBAAiB;YACtC,gBAAgB,GAAK,iBAAiB;uCACX,gBAAgB;uCAChB;;;;;;;;;;;;;;mCAcJ;;;;;;;;gCAQH,MAAQ;uCACD,SAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCxD5C,yBAAyB,MAK7B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAU,OACX,CAAC,aAAc,iBAAkB,MAAQ,MAEzC,CAAC,UAAW,UAAY,KAExB,QAAU,MAAM,QAAQ,+BAC1B,GAAI,6BACA,OAAO,MAA2C,UAAW,SAC7D,aAAc,kBAClB,GAAI,uBACA,OAAO,MAA2C,UAAW,SAC7D,aAAc,kBACtB,MAAO,WAAQ,gBAAgB,QAAS,CAAC,QAAS,WAG7C,GAAM,uBAAqC,CAChD,WAAY,eACZ,YAAa,QACb,WAAY,iBC/Cd,8BAAA,MAwBE,YACI,QACA,WAA8C,cANlD,KAAA,cAAgB,CAAC,MACjB,KAAA,YAAwB,GAMtB,KAAK,YAAc,WACnB,GAAM,CAAC,CAAE,QAAS,QAAY,WACxB,CAAC,CAAE,QAAS,QAAU,QAMtB,eAAmC,CACtC,cAAgB,QAAU,EAAK,QAAU,EAAI,QAC7C,cAAgB,OAAS,EAAK,OAAS,EAAI,QAGxC,eAAmC,CACtC,cAAgB,QAAU,EAAK,QAAU,EAAI,QAC7C,cAAgB,OAAS,EAAK,OAAS,EAAI,QAGxC,YAAc,eAAe,GAAK,eAAe,GACjD,WAAa,eAAe,GAAK,eAAe,GAEhD,eAAiB,EAAI,YACrB,cAAgB,EAAI,WAIpB,UAAa,KAAK,KAAK,gBAAkB,EAAK,EAC9C,SAAY,KAAK,KAAK,eAAiB,EAAK,EAElD,KAAK,SAAW;;;;;;;;;;0CAUsB;yCACD;;6CAEI;4CACD;;oCAER;mCACD;;;;;;;;;;;;;;kCAcD;;;;;;;;oCAQE;;;;;;sDAMkB,QAAU;;;;;;qDAMX,OAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QCrFxD,6BAA6B,MAKjC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,OAAQ,IAAM,OACf,CAAC,cAAgB,MAEjB,QAAU,GAAI,+BAChB,GAAG,MACH,OAAO,MAA2C,cAEtD,MAAO,WAAQ,gBAAgB,QAAS,CAAC,IAAK,GAAG,OAG5C,GAAM,2BAAyC,CACpD,WAAY,mBACZ,YAAa,QACb,WAAY,qBCzCd,6BAAA,MAwBE,YACI,WAA8C,UAC9C,SAAkB,aAAuB,kBAN7C,KAAA,cAAgB,CAAC,KACjB,KAAA,YAAwB,GAMtB,GAAM,CAAC,MAAO,UAAW,SAAU,OAAS,WAC5C,KAAK,YAAc,CAAC,MAAO,UAAW,SAAU,OAEhD,GAAM,iBAAoC,CACvC,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAG5C,iBAAqC,CACxC,cAAgB,UAAY,EAAK,UAAY,EAAI,UACjD,cAAgB,SAAW,EAAK,SAAW,EAAI,UAI5C,UAAY,aAAe,MAAQ,MAErC,kBACA,iBACF,kBACI,4EAGJ,kBAAoB,8CAEtB,KAAK,SAAW;;YAER,gBAAgB,GAAK,iBAAiB;YACtC,gBAAgB,GAAK,iBAAiB;uCACX,gBAAgB;;;;;;;;;mCASpB;;;;8DAI2B;;;;;QC9CxD,gCAAgC,MAKpC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAU,OACX,CAAC,aAAc,iBAAkB,MAAQ,MAEzC,CAAC,UAAW,UAAY,KAExB,QAAU,GAAI,8BAChB,OAAO,MAA2C,UAAW,SAC7D,aAAc,kBAClB,MAAO,WAAQ,gBAAgB,QAAS,CAAC,QAAS,OAAO,OAGpD,GAAM,8BAA4C,CACvD,WAAY,sBACZ,YAAa,QACb,WAAY,wBC1Cd,oCAAA,MAwBE,YACI,QACA,WAA8C,cANlD,KAAA,cAAgB,CAAC,MACjB,KAAA,YAAwB,GAMtB,KAAK,YAAc,WACnB,GAAM,CAAC,CAAE,QAAS,QAAY,WACxB,CAAC,CAAE,QAAS,QAAU,QAMtB,eAAmC,CACtC,cAAgB,QAAU,EAAK,QAAU,EAAI,QAC7C,cAAgB,OAAS,EAAK,OAAS,EAAI,QAGxC,eAAmC,CACtC,cAAgB,QAAU,EAAK,QAAU,EAAI,QAC7C,cAAgB,OAAS,EAAK,OAAS,EAAI,QAGxC,YAAc,eAAe,GAAK,eAAe,GACjD,WAAa,eAAe,GAAK,eAAe,GAEhD,eAAiB,EAAI,YACrB,cAAgB,EAAI,WAIpB,UAAa,KAAK,KAAK,gBAAkB,EAAK,EAC9C,SAAY,KAAK,KAAK,eAAiB,EAAK,EAElD,KAAK,SAAW;;;;;;;;;;0CAUsB;yCACD;;6CAEI;4CACD;;oCAER;mCACD;;;;;;;;;;;;;;kCAcD;;;;;;;;oCAQE;;;;;sBAKd,eAAe;sCACC,eAAe;;;wBAG7B,eAAe;wCACC,eAAe;;;4BAG3B;kBACV;;;;4BAIU;kBACV;;;;;;;;;;;;QC5FZ,oCAAoC,MAKxC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,OAAQ,IAAM,OACf,CAAC,cAAgB,MAEjB,QAAU,GAAI,qCAChB,GAAG,MACH,OAAO,MAA2C,cACtD,MAAO,WAAQ,gBAAgB,QAAS,CAAC,IAAK,GAAG,OAG5C,GAAM,kCAAgD,CAC3D,WAAY,0BACZ,YAAa,QACb,WAAY,4BCxCd,eAAA,MAyBE,YAAY,OAAkB,MAJ9B,KAAA,cAAgB,CAAC,KAKf,GAAM,MAAO,OAAO,OACpB,GAAI,KAAO,EACT,KAAM,IAAI,OACN,kCAAkC,oCAIxC,GAFA,KAAK,YAAc,OAEf,OAAS,GACX,KAAK,SAAW;;;2BAGK,OAAO;;QAG5B,OAEF,GAAM,YAAc,GACd,KAAK,QAAQ,KAAO,IAAM,OAAO,KAAO,EACnC,GAAG,OAAO,eAAe,SAE3B,UAAU,KAEb,SAAW,OAAO,IAAI,CAAC,EAAG,IAAM,WAAW,IAAI,KAAK,KACpD,KAAO,kBAAkB,MAE/B,KAAK,SAAW;;UAEV;yBACe;;QCtDzB,qBAAA,MA4BE,YAAY,OAAkB,MAN9B,KAAA,cAAgB,CAAC,KAGjB,KAAA,aAAe,GACf,KAAA,aAAe,GAGb,GAAM,MAAO,OAAO,OACpB,GAAI,KAAO,EACT,KAAM,IAAI,OACN,kCAAkC,oCAExC,KAAK,YAAc,OACnB,GAAM,UAAW,YAAY,KAAM,MAC7B,WACF,GAAG,SAAS,KAAO,YAAY,KAAK,YAAY,KAAO,KACrD,QAAU,GAAG,SAAS,KAAO,YAAY,KAAK,YAAY,KAAO,KACjE,KAAO,kBAAkB,MAC3B,OAAS,EACX,KAAK,SAAW;;;;uCAIiB,OAAO;cAChC,OAAO;eACN;2CAC4B,OAAO;kBAChC,OAAO;;;;QAMnB,KAAK,SAAW;;YAEV;;uBAEW,KAAK,SAAS;eACtB;yBACU,KAAK,SAAS;;eAExB;yBACU,KAAK,SAAS;iBACtB;2BACU,KAAK,SAAS;;;;;MAQrC,cAAc,WACZ,MAAO,YAAW,WAGpB,cAAc,WACZ,MAAA,WAAS,KAAO,GAAK,IAAM,UAAS,KAAO,GAAK,QACzC,WAAW,WAGpB,cAAc,WACZ,MAAA,WAAS,KAAO,GAAK,IAAM,UAAS,KAAO,GAAK,QACzC,WAAW,WAGpB,cAAc,WACZ,MAAA,WAAS,KAAO,GAAK,IAAM,UAAS,KAAO,GAAK,QAChD,UAAS,KAAO,GAAK,IAAM,UAAS,KAAO,GAAK,QACzC,WAAW,WAGpB,oBAAoB,WAClB,GAAM,eAAgB,OAAO,IAAI,CAAC,EAAG,IAAM,WAAW,EAAG,YACnD,SAAW,cAAc,KAAK,KAC9B,UAAY,cAAc,MAAM,IAAI,KAAK,KAC/C,MAAO,mBAAmB,mBAAmB,cAG/C,oBAAoB,EAAW,WAC7B,MAAI,MAAK,QAAQ,KAAO,IAAM,OAAO,KAAO,EACnC,GAAG,OAAO,QAAQ,UAAU,SAE5B,GAAG,UAAU,QChFtB,kBAAkB,MAKtB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MAET,MAAQ,EAAE,MAAM,OAEhB,MAAQ,aAAK,eAAe,KAAM,EAAE,OAC1C,GAAI,QAAU,EACZ,MAAO,WAAS,CAAC,OAAQ,CAAC,GAAI,QAAA,YAGhC,GAAM,SAAU,MAAM,QAAQ,+BAC1B,GAAI,sBAAqB,EAAE,MAAO,OAClC,GAAI,gBAAe,EAAE,MAAO,OAEhC,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,OAG1C,GAAM,gBAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UCnDd,cAAA,MA0BE,YACI,WAA8C,QAC9C,UACA,QAPJ,KAAA,cAAgB,CAAC,SACjB,KAAA,YAAwB,GAOtB,GAAM,aAAc,WAAW,GACzB,WAAa,WAAW,GACxB,UAAY,KAAK,IAAI,SAAS,QAAQ,GACtC,UAAY,KAAK,IAAI,SAAS,QAAQ,GAC5C,KAAK,YAAc,WAEnB,GAAM,CAAC,QAAS,SACZ,qBAAa,eAAe,OAAQ,YAAa,YAC/C,cAAgB,QAAQ,QAAQ,GAChC,cAAgB,QAAQ,QAAQ,GAElC,YAAc,GACd,MAAO,YAAc,SACvB,YAAc,uBAAuB,UAAU,QAAQ,MAEvD,YAAc;2BACO,UAAU,KAAK;8CAItC,KAAK,SAAW;;;;;4CAKwB,oBACpC,2BAA2B,oBAAoB;4CACX,oBACpC,2BAA2B,oBAAoB;iDACN;iDACA;YACrC;uCAC2B,yCAC/B;;;;;QCxCK,wBAAuC,CAClD,WAAY,iBACZ,YAAa,QACb,WAAY,CAAC,CAAC,OAAQ,MAAO,QAAA,cAC3B,GAAM,CAAC,MAAA,QAAS,OACV,CAAC,QAAS,UAAW,QAAU,MAC/B,aAAe,UAEf,QAAU,GAAI,eACf,OAAmB,MAAO,QAAS,UAAW,QAEnD,MADe,cAAa,gBAAgB,QAAS,CAAC,QAAQ,OAAM,SCblE,MAAQ;;;;;;;;;;;;;;;EAiBD,OAAQ,iBAAgB,CAAC,UAAW,QAEpC,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QCrBR,MAAQ,yBAED,OACT,iBAAgB,CAAC,UAAW,MAAO,cAAe,eAEzC,aAA4B,CACvC,WAAY,MACZ,YAAa,QACb,WAAY,QC7Bd,eAAA,MAyBE,YACI,WAAoB,SAAkB,YACtC,YAAqB,QAAmB,MACxC,iBAAmB,IAPvB,KAAA,cAAgB,CAAC,UAAW,UAAW,gBAQrC,KAAK,YAAc,MACnB,GAAM,aAAc,kBAAkB,QAAQ,QACxC,MAAQ,kBAAkB,MAAM,QAClC,cAAgB,GAChB,cAAgB,EAClB,cAAgB,IACP,cAAgB,GACzB,eAAgB,QAElB,GAAM,gBAAiB,cAAc,iBAEjC,cAAgB,GAChB,cAAgB,EAClB,cAAgB,IACP,cAAgB,GACzB,eAAgB,gBAElB,GAAM,gBAAiB,cAAc,iBAE/B,aAAe,SAAW,EAAI,aAAe,UACnD,KAAK,SAAW;UACV,yBAAyB,eAAe;;;YAGtC;;;gCAGoB;;kCAEE;kCACA;0CACQ;;;uBAGnB;;;;;;UCxCjB,oBAAoB,MAKxB,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,QAAS,SAAW,OACrB,CAAC,OAAS,MAEV,CAAC,UAAW,WAAY,UAAW,QAAS,YAC9C,qBAAa,gBAAgB,QAAS,QAAS,OAE7C,aAAe,CAAC,WAAa,UAAW,WAE9C,GAAI,aAAe,EACjB,MAAO,WAAQ,eAAe,MAAO,QAAQ,OAG/C,GAAM,gBAAiB,SACnB,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,WAAY,cAC1D,SAAW,SACb,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,WAAY,cAE1D,aAAe,UAAQ,eACzB,GAAI,UAAW,GAAI,cAAa,CAAC,KAC/B,QAAU,GAAI,gBAChB,WAAY,UAAW,eAAe,MAAM,OAAQ,SAAS,MAAM,OACnE,QAAS,cACP,IAAM,UAAQ,gBAChB,QAAS,CAAC,SAAU,eAAgB,cAAe,SAAS,OAE1D,SAAW,SAAQ,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,SAE7D,MAAA,WAAQ,8BAA8B,gBACtC,UAAQ,8BAA8B,UACtC,UAAQ,8BAA8B,KACtC,UAAQ,8BAA8B,cAE/B,SAGF,GAAM,kBAAgC,CAC3C,WAAY,UACZ,YAAa,QACb,WAAY,YCnEd,cAAA,MAyBE,YAAY,MAAe,MAAiB,MAJ5C,KAAA,cAAgB,CAAC,IAAK,IAAK,KAKzB,KAAK,YAAc,MAEnB,GAAI,SACA,SACJ,GAAI,KAAO,EACT,KAAM,OAAM,kBAAkB,6BAGhC,GAAI,OAAS,EACX,SAAW,QACX,QAAU,aAEV,GAAM,eAAgB,CAAC,UAAW,UAAW,UAAW,WAClD,WAAa,GACb,YAAc,GACpB,OAAS,GAAI,EAAG,EAAI,MAAM,OAAQ,IAChC,YAAY,KAAK,GAAG,cAAc,MAC9B,EAAI,OACN,WAAW,KAAK,GAAG,cAAc,MAGrC,QAAU,WAAW,OACrB,SAAW,YAAY,OAGzB,GAAM,OAAQ,kBAAkB,MAEhC,KAAK,SAAW;;UAEV;4BACkB;;2BAED;;2BAEA;;;QCtCrB,iBAAiB,MAErB,GAAM,CAAC,OAAQ,QAAA,WAAW,KACpB,CAAC,UAAW,EAAG,GAAK,OAEpB,QACF,GAAI,eAAc,UAAU,MAAM,OAAQ,EAAE,MAAO,EAAE,MAAM,QAC/D,MAAO,WAAQ,gBACX,QAAS,CAAC,UAAW,EAAG,GAAI,WAAW,EAAE,MAAO,EAAE,QAGjD,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SCfR,KAAO;;;uBAGU,qBAAa;kBAClB,qBAAa;;EAIlB,MAAO,iBAAgB,CAAC,UAAW,OAEnC,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCdR,QAAU,sCAEH,SAAU,iBAAgB,CAAC,UAAW,UAEtC,eAA8B,CACzC,WAAY,QACZ,YAAa,QACb,WAAY,UCLR,KAAO;;;EAKA,MAAO,iBAAgB,CAAC,UAAW,OAEnC,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCXR,IAAM,wBAA0B;;EAIzB,KAAM,iBAAgB,CAAC,UAAW,MAElC,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCVR,KAAO;;;EAKA,MAAO,iBAAgB,CAAC,UAAW,OAEnC,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCVR,SAAW;;;;;;;;;;;;;;;;;;;;EAsBJ,UAAW,iBAAgB,CAAC,UAAW,WAEvC,gBAA+B,CAC1C,WAAY,SACZ,YAAa,QACb,WAAY,WCtBD,gBAAkB,OAK7B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,WAAY,UAAY,MAE/B,aAAK,OACD,EAAE,MAAM,QAAU,EAClB,IAAM,wEAGV,GAAM,OAAO,WAAW,OAAO,CAAC,EAAG,IAAM,EAAI,GAEvC,iBAA4C,CAAC,CAAC,EAAG,IACvD,iBAAiB,KAAK,GAAG,UACzB,OAAS,GAAI,EAAI,WAAW,OAAQ,EAAI,EAAE,MAAM,OAAQ,EAAE,EACxD,iBAAiB,KAAK,CAAC,EAAG,IAG5B,GAAM,WAAY,GAEZ,QAAU,OAAM,CACpB,OAAQ,CAAC,GACT,QAAA,UACA,MAAO,CAAC,SAAU,iBAAkB,cAAe,KAG/C,oBACF,qBAAa,YAAY,QAAQ,MAAO,WAAY,MAAM,IAExD,kCAAoC,qBAAa,YACnD,oBAAoB,OAAQ,WAAW,OAAQ,IAE7C,aACF,qBAAa,oBAAoB,QAAQ,MAAO,WAAY,MAAM,IAEhE,gBAAkB,SACpB,CAAC,OAAQ,CAAC,EAAG,SAAU,QAAA,UAAS,MAAO,CAAC,MAAO,uBAE7C,SAAW,WAAU,CACzB,OAAQ,CAAC,EAAG,iBACZ,QAAA,UACA,MAAO,CAAC,KAAM,qCAGV,OACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,UAAW,QAAA,UAAS,MAAO,CAAC,MAAO,gBAE5D,MAAA,WAAU,KAAK,SACf,UAAU,KAAK,iBACf,UAAU,KAAK,UAEf,UAAU,QAAQ,GAAK,UAAQ,8BAA8B,IAEtD,QAGI,sBAAqC,CAChD,WAAY,eACZ,YAAa,QACb,WAAY,iBCjER,wBAAwB,MAK5B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,cAAe,aAAc,cAAgB,OAC9C,CAAC,aAAe,MAEhB,CAAC,UAAW,WAAY,QAAS,YACnC,qBAAa,gBAAgB,aAAc,cAAe,aAExD,eAAiB,GACjB,QAAU,GAAI,gBAChB,WAAY,UAAW,cAAc,MAAM,OAC3C,aAAa,MAAM,OAAQ,QAAS,CAAC,WAAY,GAAI,gBAEnD,IAAM,UAAQ,gBAChB,QAAS,CAAC,aAAc,cAAe,cAAe,aAAa,OAEjE,SACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,KAAM,QAAA,UAAS,MAAO,CAAC,MAAO,eAEvD,MAAA,WAAQ,8BAA8B,KAC/B,SAGF,GAAM,sBAAoC,CAC/C,WAAY,cACZ,YAAa,QACb,WAAY,gBC/BR,iBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,gBAAiB,MAAQ,MAE1B,MAAQ,aAAK,eAAe,KAAM,EAAE,OAAO,GAC3C,WAAa,qBAAa,iBAAiB,EAAG,gBAAiB,OAE/D,MAAQ,EAAE,MAAM,OAChB,MAAQ,GAAI,OAAM,OAAO,KAAK,GAC9B,KAAO,EAAE,MAAM,QAErB,MAAO,YAAW,IAAI,IACpB,GAAM,WAAY,CAAC,GAAG,MACtB,UAAU,OAAS,EACnB,GAAM,QACF,OAAM,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,KAAM,aACtD,MAAA,OAAM,QAAU,EACT,SAIJ,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SC9BR,KAAO,kBAEA,MAAO,iBAAgB,CAAC,UAAW,OAEnC,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCNR,OAAS,gBAEF,QAAS,iBAAgB,CAAC,UAAW,SAErC,cAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SCPR,mBAAqB,4BAEd,mBAAoB,kBAC7B,CAAC,UAAW,mBAAoB,gBAAiB,qBAExC,yBAAwC,CACnD,WAAY,kBACZ,YAAa,QACb,WAAY,oBCPR,eACF,CAAC,OAAQ,MAAO,QAAA,YAGlB,GAAM,CAAC,GAAK,OACN,UAAY,kBAAoB;mCACL,MAAM;IAGjC,QAAU,GAAI,gBAAe,EAAE,MAAO,WAE5C,MAAO,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,OAG1C,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCvCd,oBAAA,MAyBE,YAAY,MAAiB,QAAmB,MAJhD,KAAA,cAAgB,CAAC,KAKf,KAAK,YAAc,KACnB,GAAM,MAAO,KAAK,OACZ,WAAa,kBAAkB,KAAK,QACpC,MAAQ,kBAAkB,KAAK,QAEjC,UAAY,GAChB,GAAI,OAAS,EACX,UAAY,gCAEZ,GAAI,YAAa,EACjB,UACI,KAAK,IAAI,CAAC,EAAG,IACP,cACO,KAAK,SAAW,EACnB,oBAAoB,cAAc,KAClC,UAAU,WAAa,gBAAgB,cAAc,OAE1D,KAAK,KAGhB,KAAK,SAAW;QACZ,sBAAsB,cAAc;QACpC,wBAAwB,cAAc;;;UAGpC;yBACe;;QC1BnB,uBAAuB,MAK3B,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CACJ,MACA,IACA,QACA,UACA,QACA,aACA,YACA,gBACE,MAEE,CAAC,WAAY,OAAQ,SAAU,KAAM,SAAU,UACjD,mBAAW,UACP,EAAE,MAAO,MAAO,IAAK,QAAS,UAAW,QAAS,aAClD,YAAa,gBAEf,GAAK,SAAQ,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,YAErD,OACJ,GAAI,YACF,GAAM,QACF,OAAM,CAAC,OAAQ,CAAC,EAAG,IAAK,QAAA,UAAS,MAAO,CAAC,MAAO,OAAQ,QAC5D,OAAS,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,YAE/D,UAAQ,8BAA8B,gBAC7B,SAAS,KAAK,MAAQ,OAAS,GACxC,OAAS,UAAQ,eAAe,SAAU,EAAE,MAAO,YAExB,UAAQ,mBAAmB,CAAC,MAGrD,GAAM,QADW,UAAQ,QAAQ,IAAI,GAAG,QAChB,OAClB,KAAO,OAAO,GAAG,MAAO,GAAG,MAAO,QAClC,aACF,oBAAoB,SAAU,KAAM,SAAU,QAClD,OAAS,UAAQ,eAAe,SAAU,GAAG,MAAO,aAAa,aAEjE,GAAM,SAAU,GAAI,qBAAoB,OAAQ,SAAU,UAC1D,OAAS,UAAQ,gBAAgB,QAAS,CAAC,IAAK,GAAG,OAIvD,GAAM,gBACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,YAE1D,MAAA,WAAQ,8BAA8B,IACtC,UAAQ,8BAA8B,QAE/B,eAGF,GAAM,qBAAmC,CAC9C,WAAY,aACZ,YAAa,QACb,WAAY,eClER,IAAM,iBAEC,KAAM,iBAAgB,CAAC,UAAW,MAElC,WAA0B,CACrC,WAAY,IACZ,YAAa,QACb,WAAY,MCRR,KAAO;;;EAKA,MAAO,iBAAgB,CAAC,UAAW,OAEnC,YAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OC9Bd,YAAA,MA0BE,YAAY,OAAkB,MAL9B,KAAA,cAAgB,CAAC,KAMf,GAAM,aAAwB,GAAI,OAAM,OAAO,QAC/C,OAAS,GAAI,EAAG,EAAI,YAAY,OAAQ,IACtC,YAAY,GAAK,OAAO,GAAK,KAAK,GAEpC,KAAK,YAAc,YACnB,KAAK,KAAO,YAAY,OACxB,GAAM,OAAQ,kBAAkB,KAAK,MAC/B,aAAe,iBAAgB,QAErC,KAAK,SAAW;;UAEV;yBACe;;QAMzB,0BAAyB,QACvB,GAAM,MAAO,OAAO,OACpB,GAAI,KAAO,EACT,KAAM,OAAM,iBAAiB,6BAE/B,GAAI,OAAS,EACX,MAAO,eAAe,OAAO,MAG/B,GAAM,eAAgB,CAAC,UAAW,UAAW,UAAW,UAAW,WAE7D,aAAe,GACrB,OAAS,GAAI,EAAG,EAAI,OAAO,OAAQ,IACjC,aAAa,KAAK,QAAQ,cAAc,OAAO,OAAO,OAExD,MAAO,cAAa,OCrChB,eACF,QAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,OAC3B,CAAC,GAAK,OACN,CAAC,MAAQ,MAEf,GAAI,EAAE,QAAU,UAId,GAAM,aADO,UAAQ,SAAS,EAAE,QACP,IAAI,GAAK,aAAK,aAAa,IAC9C,IAAM,OAAO,EAAE,MAAO,EAAE,MAAO,aAC/B,OAAS,YAAY,IAAK,MAChC,MAAO,WAAQ,eAAe,OAAO,MAAO,OAAO,MAAO,OAAO,QAGnE,GAAM,SAAU,GAAI,aAAY,EAAE,MAAO,MAGzC,MAFe,WAAQ,gBAAgB,QAAS,CAAC,GAAI,EAAE,OAKlD,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OC3BR,eACF,MAEF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,GAAK,OACN,CAAC,EAAG,QAAU,MAEd,MAAQ,UAAQ,SAAS,EAAE,QAC3B,CAAC,YAAa,gBAChB,YAAY,MAAO,EAAE,MAAO,EAAE,MAA0B,EAAG,QAE/D,MAAO,CACL,UAAQ,eACJ,YAAY,MAAO,YAAY,MAAO,YAAY,QACtD,UAAQ,eACJ,eAAe,MAAO,eAAe,MAAO,eAAe,SAI5D,GAAM,aAA2B,CACtC,WAAY,KACZ,YAAa,QACb,WAAY,OCrBR,iBACF,MAGF,GAAM,CAAC,OAAQ,MAAO,QAAA,WAAW,KAC3B,CAAC,MAAQ,MACT,CAAC,GAAK,OACZ,kBAAiB,EAAG,UAGpB,QAAQ,KACJ,YACA,8DACJ,GAAM,QAAS,UAAQ,SAAS,EAAE,QAC5B,CAAC,aAAc,YAAa,SAC9B,cAAc,OAAQ,KAAM,EAAE,MAAO,EAAE,OAC3C,MAAO,CACL,UAAQ,eAAe,YAAa,EAAE,MAAO,cAC7C,UAAQ,eAAe,CAAC,QAAQ,QAAS,QAAS,UAI/C,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SCxBR,iBACF,MAGF,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,OAAS,OACZ,CAAC,MAAQ,MAET,KAAO,GACT,OAAQ,MAAM,MAAM,QAGtB,GAAM,GAAI,MACJ,MAAQ,EAAE,MAAM,OAEhB,IAAM,MAAM,MAAM,MAClB,SAAqB,GAAI,OAAM,MAAQ,GACzC,SAAW,EACf,OAAS,GAAI,EAAG,EAAI,MAAO,IACrB,IAAM,MACR,UAAS,YAAc,EAAE,MAAM,IAInC,GAAM,WAAY,GAEZ,MAAQ,GAAI,OAAM,OAAO,KAAK,GAC9B,KAAO,EAAE,MAAM,QACrB,KAAK,MAAQ,EACb,GAAM,KAAoB,GAAI,OAAM,KACpC,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,KAC9B,MAAM,MAAQ,EACd,GAAM,QAAS,OAAM,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,MAAO,QACrD,SACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,MAAO,YAC1D,IAAI,GAAK,SAET,UAAU,KAAK,QAGjB,MAAA,WAAU,QAAQ,GAAK,UAAQ,8BAA8B,IACtD,IAGF,GAAM,eAA6B,CACxC,WAAY,OACZ,YAAa,QACb,WAAY,SCvEd,iBAAA,MAyBE,YACI,UACA,WANJ,KAAA,cAAgB,CAAC,IAAK,cAOpB,GAAM,YAAa,UAAU,WACvB,UAAY,UAAU,UACtB,OAAS,UAAU,OACnB,YAAc,UAAU,YACxB,QAAU,YAAc,KAAK,KAAK,OAAS,YACjD,KAAK,YAAc,CAAC,UAAW,SAE/B,GAAM,qBAAsB,MACtB,YAAc,WAEd,sBAAwB,KAAK,MAAM,WAAa,GAAK,EACrD,wBAA0B,WAAa,EAEvC,cAAgB;;MAIlB,sBAAwB,GACxB,OAAS,WAAa,GACxB,uBAAwB;oCACM;;;SAMhC,GAAI,2BAA4B,GAC5B,OAAS,WAAa,GACxB,2BAA4B;oCACE;;;SAMhC,KAAK,SAAW;0CACsB;;;UAGhC;;;;;UAKA;;;;;;;;;YASE,yBAAyB;wDACmB;;;;8BAI1B;;;;;;;;;;;;;;;;YAgBlB;;;iCAGqB;cACnB,0BAA4B;;;;;;;;;;;;;;;;;YAiB9B;qBACS,0BAA4B;;;;;;;;;;;;;;;YAerC;qBACS,0BAA4B;;;;;;;;;;;;;;;YAerC;;oBAEQ;;QClId,6BAA6B,MAKjC,GAAM,CAAC,OAAQ,QAAA,UAAS,OAAS,KAC3B,CAAC,EAAG,YAAc,OAClB,CAAC,aAAe,MAEhB,MAAQ,EAAE,MAAM,OAEhB,UAAY,GAEd,KAAO,EACL,YAAc,qBAAa,mBAAmB,CAAC,MAAO,OACxD,UAAY,EACZ,aAAe,MACjB,WAAY,WAAU,CAAC,OAAQ,CAAC,GAAI,QAAA,UAAS,MAAO,CAAC,KAAM,eAC3D,UAAU,KAAK,WACf,KAAO,qBAAa,iBAAiB,EAAG,OAAO,IAGjD,GAAM,UAAW,qBAAa,aAAa,gBACvC,UAAU,MAAO,KAAM,aACrB,OAAS,aAAK,cAAc,CAAC,UAAU,MAAM,QAC7C,IACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,WAAY,QAAA,UAAS,MAAO,CAAC,MAAO,CAAC,GAAI,WAClE,UAAU,KAAK,KAEf,GAAM,aAAc,WAAW,EAAE,OAE3B,aACF,CAAC,GAAe,UAAiC,YAChD,MAAiB,gBAChB,GAAM,WAAY,GAAE,MAAM,GACpB,QAAS,GAAE,MAAM,GACjB,WACF,qBAAa,aAAa,8BACtB,QAAQ,cACV,UAAY,CAAC,WAAY,OAAA,QAAQ,UAAW,YAAA,cAC5C,QAAU,GAAI,kBAAiB,UAAW,WAC1C,OAAS,UAAQ,cAAc,QAAS,CAAC,GAAG,aAAa,OAG/D,GAFA,UAAU,KAAK,QAEX,OAAO,MAAM,KAAO,aACtB,MAAO,QAET,GAAM,WAAY,OAAM,CACtB,QAAA,UACA,MAAO,CAAC,MAAO,EAAG,KAAM,aAAa,KAAM,EAAG,MAAO,aAEjD,SAAW,MAAK,CACpB,OAAQ,CAAC,EAAG,WACZ,QAAA,UACA,MAAO,CAAC,KAAM,CAAC,QAAS,eAG1B,MAAA,WAAU,KAAK,WACf,UAAU,KAAK,UAGX,aAAa,OAAQ,UAAW,SAAU,MAAO,eAIrD,YAAc,aAChB,IAAK,qBAAsB,WAAY,YAAa,aAElD,SACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,aAAc,QAAA,UAAS,MAAO,CAAC,MAAO,YAE3D,OAAS,SACb,GAAI,aAAe,MACjB,UAAU,KAAK,UACf,GAAM,MAAO,qBAAa,uBAAuB,aACjD,OAAS,WAAU,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,QAG5D,MAAA,WAAU,QAAQ,GAAK,UAAQ,8BAA8B,IACtD,OAGF,GAAM,2BAAyC,CACpD,WAAY,mBACZ,YAAa,QACb,WAAY,qBC4DR,eAAgC,CACpC,UACA,cACA,oBACA,WACA,YACA,aACA,WACA,YACA,WACA,WACA,cACA,cACA,YACA,aACA,aACA,YACA,aACA,iBACA,eACA,oBACA,mBACA,mBACA,iBACA,sBACA,gBACA,YACA,YACA,kBACA,kBACA,eACA,cACA,4BACA,2BACA,cACA,8BACA,0BACA,cACA,WACA,YACA,qBACA,cACA,qBACA,oBACA,2CACA,0CACA,6BACA,YACA,iBACA,WACA,eACA,aACA,WACA,WACA,kBACA,aACA,WACA,YACA,qBACA,aACA,gBACA,iBACA,mBACA,4BACA,gBACA,gBACA,eACA,oBACA,gBACA,YACA,YACA,gBACA,aACA,aACA,iBACA,YACA,iBACA,gBACA,aACA,WACA,kBACA,kBACA,iBACA,WACA,iBACA,eACA,oBACA,mBACA,yBACA,eACA,YACA,WACA,eACA,iBACA,WACA,mBACA,gBACA,WACA,2BACA,2BACA,2BACA,gBACA,cACA,gBACA,YACA,aACA,WACA,aACA,YACA,aACA,YACA,eACA,kBACA,aACA,YACA,eACA,sBACA,0BACA,6BACA,iCACA,eACA,wBACA,aACA,aACA,iBACA,cACA,YACA,eACA,YACA,WACA,YACA,aACA,eACA,gBACA,sBACA,qBACA,cACA,YACA,cACA,yBACA,YACA,oBACA,WACA,WACA,WACA,YAC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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;6BLxIpB,GAAM,MAAM,IACN,MAAO,cAAgB,YAAoB,YAAY,MACpD,SAAS,OAAO,QAAQ,OAAO,UAAY,IAAO,KAI3D,sBAAsB,SACpB,GAAM,UAAW,AAAC,KAAQ,KAAO,MAAO,MAAQ,SAChD,MAAO,SAAQ,OAAO,CAAC,KAAM,MAC3B,QAAO,KAAK,KAAO,IAAI,QAAQ,AAAC,MAC9B,GAAM,MAAO,KAAK,KACZ,KAAO,IAAI,KACjB,AAAI,MAAM,QAAQ,OAAS,MAAM,QAAQ,MACvC,KAAK,KAAO,KAAK,OAAO,GAAG,MACtB,AAAI,SAAS,OAAS,SAAS,MACpC,KAAK,KAAO,UAAU,KAAM,MAE5B,KAAK,KAAO,OAGT,MACN,IAxCL,gBA4CE,YAAY,WAAa,IACvB,KAAK,GAAK,iBACV,KAAK,QAAc,UACnB,KAAK,OAAS,UAAiB,eAAS,YACxC,KAAK,GAAK,KACV,KAAK,MAAQ,OACb,KAAK,WAAa,EAClB,KAAK,mBAAqB,GAC1B,KAAK,YAAc,GACnB,KAAK,SAAW,GAChB,KAAK,KAAO,GAEZ,KAAK,OAAS,CACZ,SAAU,KACV,QAAS,KACT,SAAU,KACV,KAAM,KACN,IAAK,KACL,OAAQ,KACR,QAAS,MAGX,KAAK,SAAW,SAChB,KAAK,IAAM,IACX,KAAK,OAAS,OACd,KAAK,QAAU,QACf,KAAK,KAAO,QACZ,KAAK,KAAO,SAGd,UACE,MAAI,MAAK,OAAO,QAAwB,cACjC,GAIT,WAAW,KACT,GAAI,CAAC,KAAK,mBAAoB,OAC9B,GAAM,SAAU,AAAG,SAAS,MAAM,WAC5B,SAAW,KAAK,WACtB,KAAK,WAAa,QAClB,GAAM,QAAS,QAAU,SACzB,AAAI,SAAW,GAAG,IAAI,GAAG,IAAK,QAIhC,OAAO,QACL,GAAI,CAAC,KAAK,YAAa,MAAO,MAC9B,GAAI,CAAC,OAAO,MAAO,uBACnB,GAAI,AAAG,IAAI,MAAM,SAAW,CAAE,kBAAoB,SAChD,MAAO,yBAET,IACE,AAAG,mBACG,GACN,MAAO,qBAET,MAAO,MAGT,YAAY,WAAY,aACtB,MAAI,MAAK,OAAO,KAAK,UAAU,QAAgB,AAAU,uBAAY,WAAY,aAC1E,OAIH,MAAK,YACT,KAAK,MAAQ,OACb,GAAM,WAAY,OAClB,AAAI,YAAY,MAAK,OAAS,UAAU,KAAK,OAAQ,aAEjD,KAAK,UACP,KAAI,YAAY,KAAK,kCAAqC,YAC1D,KAAM,MAAK,aAAa,IACpB,AAAG,IAAI,MAAM,YACf,KAAI,iBAAkB,KAAK,QAC3B,IAAI,YAAa,AAAG,IAAI,QAE1B,KAAK,SAAW,IAGlB,AAAI,KAAK,OAAO,MACd,CACE,KAAK,OAAO,SACZ,KAAK,OAAO,IACZ,KAAK,OAAO,OACZ,KAAK,OAAO,QACZ,KAAK,OAAO,UACZ,KAAK,OAAO,QACZ,KAAK,OAAO,SACZ,KAAK,OAAO,WACV,KAAM,SAAQ,IAAI,CACpB,KAAK,OAAO,UAAa,MAAK,OAAO,KAAK,QAAU,AAAS,cAAK,KAAK,QAAU,MACjF,KAAK,OAAO,KAAS,MAAK,OAAO,KAAK,SAAW,KAAK,OAAO,KAAK,IAAI,QAAW,AAAI,SAAK,KAAK,QAAU,MACzG,KAAK,OAAO,QAAY,MAAK,OAAO,KAAK,SAAW,KAAK,OAAO,KAAK,OAAO,QAAW,AAAO,YAAK,KAAK,QAAU,MAClH,KAAK,OAAO,SAAa,MAAK,OAAO,KAAK,SAAW,KAAK,OAAO,KAAK,QAAQ,QAAW,AAAQ,aAAK,KAAK,QAAU,MACrH,KAAK,OAAO,WAAe,MAAK,OAAO,KAAK,SAAW,KAAK,OAAO,KAAK,UAAU,QAAW,AAAU,gBAAK,KAAK,QAAU,MAC3H,KAAK,OAAO,SAAY,MAAK,OAAO,KAAK,QAAU,AAAQ,aAAK,KAAK,QAAU,MAC/E,KAAK,OAAO,UAAa,MAAK,OAAO,KAAK,QAAU,AAAS,cAAK,KAAK,QAAU,MACjF,KAAK,OAAO,WAAc,MAAK,OAAO,KAAK,QAAU,AAAU,KAAK,KAAK,QAAU,QAGjF,MAAK,OAAO,KAAK,SAAW,CAAC,KAAK,OAAO,UAAU,MAAK,OAAO,SAAW,KAAM,AAAS,eAAK,KAAK,SACnG,KAAK,OAAO,KAAK,SAAW,KAAK,OAAO,KAAK,IAAI,SAAW,CAAC,KAAK,OAAO,KAAK,MAAK,OAAO,IAAM,KAAM,AAAI,UAAK,KAAK,SACpH,KAAK,OAAO,KAAK,SAAW,KAAK,OAAO,KAAK,OAAO,SAAW,CAAC,KAAK,OAAO,QAAQ,MAAK,OAAO,OAAS,KAAM,AAAO,aAAK,KAAK,SAChI,KAAK,OAAO,KAAK,SAAW,KAAK,OAAO,KAAK,QAAQ,SAAW,CAAC,KAAK,OAAO,SAAS,MAAK,OAAO,QAAU,KAAM,AAAQ,cAAK,KAAK,SACpI,KAAK,OAAO,KAAK,SAAW,KAAK,OAAO,KAAK,UAAU,SAAW,CAAC,KAAK,OAAO,WAAW,MAAK,OAAO,UAAY,KAAM,AAAU,iBAAK,KAAK,SAC5I,KAAK,OAAO,KAAK,SAAW,CAAC,KAAK,OAAO,SAAS,MAAK,OAAO,QAAU,KAAM,AAAQ,cAAK,KAAK,SAChG,KAAK,OAAO,KAAK,SAAW,CAAC,KAAK,OAAO,UAAU,MAAK,OAAO,SAAW,KAAM,AAAS,eAAK,KAAK,SACnG,KAAK,OAAO,KAAK,SAAW,CAAC,KAAK,OAAO,WAAW,MAAK,OAAO,UAAY,KAAM,AAAU,MAAK,KAAK,UAE5G,GAAM,SAAU,KAAK,MAAM,OAAQ,WACnC,AAAI,QAAW,MAAK,KAAK,MAAQ,IAAI,MAAK,KAAK,KAAO,cAIlD,cAAa,OACjB,GAAI,KAAK,OAAO,SAAY,KAAK,OAAO,UAAY,IAAO,OAAU,AAAG,eAAiB,KAAK,OAAO,SACnG,GAAM,WAAY,OA+BlB,GA9BA,KAAK,MAAQ,UAWb,IAAI,mBAAoB,KAAK,OAAO,SAEhC,KAAK,OAAO,UAAY,QAC1B,KAAI,sBAAuB,KAAK,OAAO,UACvC,AAAG,aAAa,KAAK,OAAO,UAEvB,AADQ,KAAM,AAAG,OAAM,SAAS,0BAC1B,IAAI,8CAGb,KAAK,OAAO,UAAY,WAC1B,KAAI,+BACJ,AAAQ,YAGV,KAAM,AAAG,YAAW,KAAK,OAAO,SAChC,AAAG,iBAIC,AAAG,eAAiB,SACtB,AAAI,KAAK,OAAO,YACd,KAAI,kDAAmD,KAAK,OAAO,YACnE,AAAG,IAAI,IAAI,iCAAkC,KAAK,OAAO,WAAa,EAAI,KAE5E,AAAG,IAAI,IAAI,2BAA4B,IACvC,AAAG,IAAI,IAAI,2BAA4B,IACvC,GAAM,IAAK,KAAM,AAAG,WAAU,kBAAkB,GAChD,IAAI,cAAc,GAAG,aAAa,GAAG,qBAAqB,GAAG,aAAa,GAAG,aAE/E,KAAM,AAAG,SACT,KAAK,KAAK,QAAU,KAAK,MAAM,OAAQ,iBAIrC,YAAW,QAhNnB,OAmNI,GAAI,WACA,OACA,UACA,WACA,aACE,QAAU,GAChB,KAAK,MAAQ,WACb,UAAY,OACZ,GAAM,OAAQ,KAAM,UAAK,OAAO,WAAZ,eAAsB,cAAc,OAAO,KAAK,SACpE,KAAK,KAAK,KAAO,KAAK,MAAM,OAAQ,WACpC,OAAW,SAAQ,QAIjB,GAHA,KAAK,QAAQ,YAGT,CAAC,MAAK,OAAS,MAAK,MAAM,oBAC5B,IAAI,2BAA4B,MAAK,OACrC,SAIF,KAAK,QAAQ,cACb,AAAI,KAAK,OAAO,MACd,OAAS,KAAK,OAAO,KAAK,IAAI,QAAU,AAAI,YAAQ,MAAK,MAAO,KAAK,QAAU,GAE/E,MAAK,MAAQ,UACb,UAAY,OACZ,OAAS,KAAK,OAAO,KAAK,IAAI,QAAU,KAAM,AAAI,aAAQ,MAAK,MAAO,KAAK,QAAU,GACrF,KAAK,KAAK,IAAM,KAAK,MAAM,OAAQ,YAIrC,KAAK,QAAQ,iBACb,AAAI,KAAK,OAAO,MACd,UAAY,KAAK,OAAO,KAAK,OAAO,QAAU,AAAO,eAAQ,MAAK,MAAO,KAAK,QAAU,GAExF,MAAK,MAAQ,aACb,UAAY,OACZ,UAAY,KAAK,OAAO,KAAK,OAAO,QAAU,KAAM,AAAO,gBAAQ,MAAK,MAAO,KAAK,QAAU,GAC9F,KAAK,KAAK,OAAS,KAAK,MAAM,OAAQ,YAIxC,KAAK,QAAQ,kBACb,AAAI,KAAK,OAAO,MACd,WAAa,KAAK,OAAO,KAAK,QAAQ,QAAU,AAAQ,gBAAQ,MAAK,MAAO,KAAK,QAAU,GAE3F,MAAK,MAAQ,cACb,UAAY,OACZ,WAAa,KAAK,OAAO,KAAK,QAAQ,QAAU,KAAM,AAAQ,iBAAQ,MAAK,MAAO,KAAK,QAAU,GACjG,KAAK,KAAK,QAAU,KAAK,MAAM,OAAQ,YAEzC,KAAK,QAAQ,gBAGb,KAAK,QAAQ,oBACb,AAAI,KAAK,OAAO,MACd,aAAe,KAAK,OAAO,KAAK,UAAU,QAAU,AAAU,mBAAQ,MAAK,MAAO,KAAK,QAAU,GAEjG,MAAK,MAAQ,gBACb,UAAY,OACZ,aAAe,KAAK,OAAO,KAAK,UAAU,QAAU,KAAM,AAAU,oBAAQ,MAAK,MAAO,KAAK,QAAU,GACvG,KAAK,KAAK,UAAY,KAAK,MAAM,OAAQ,YAE3C,KAAK,QAAQ,gBAGT,KAAK,OAAO,OACd,EAAC,OAAQ,UAAW,WAAY,cAAgB,KAAM,SAAQ,IAAI,CAAC,OAAQ,UAAW,WAAY,gBAGpG,KAAK,QAAQ,gBAEb,MAAK,MAAM,UAIN,KAAK,OAAO,KAAK,KAAK,SACzB,OAAO,OAAK,YAAY,YACxB,MAAO,OAAK,YAAY,cAE1B,GAAM,UAAY,MAAK,YAAY,aAAe,MAAK,YAAY,aAE/D,KAAO,KAAK,IAAI,KAAK,IAAI,MAAK,YAAY,YAAY,GAAG,GAAK,MAAK,YAAY,YAAY,GAAG,IAAK,KAAK,IAAI,MAAK,YAAY,aAAa,GAAG,GAAK,MAAK,YAAY,aAAa,GAAG,KACnL,EAGJ,QAAQ,KAAK,CACX,WAAY,MAAK,WACjB,IAAK,MAAK,IACV,KAAM,MAAK,KACX,OAAQ,MAAK,OACb,QAAS,MAAK,QACd,YAAa,MAAK,YAClB,IAAK,OAAO,IACZ,OAAQ,UAAU,OAClB,iBAAkB,UAAU,WAC5B,QAAS,WACT,UAAW,aACX,KAAO,WAAa,EAAK,KAAK,MAAM,UAAY,IAAM,IAExD,KAAK,QAAQ,YAEf,YAAK,QAAQ,iBACT,KAAK,OAAO,OACV,MAAK,KAAK,MAAM,MAAO,MAAK,KAAK,KACjC,KAAK,KAAK,KAAK,MAAO,MAAK,KAAK,IAChC,KAAK,KAAK,QAAQ,MAAO,MAAK,KAAK,OACnC,KAAK,KAAK,SAAS,MAAO,MAAK,KAAK,SAEnC,aAGH,OAAM,OAAO,WAAa,IAC9B,KAAK,MAAQ,QACb,KAAK,OAAS,UAAU,KAAK,OAAQ,YACrC,GAAM,UAAU,AAAM,eAAQ,OAAO,KAAK,QAC1C,gBAAQ,OAAO,UACR,SAAQ,YAIX,QAAO,OAAO,WAAa,IAE/B,MAAO,IAAI,SAAQ,KAAO,WA9U9B,gBA+UM,KAAK,MAAQ,SACb,GAAI,WAGJ,KAAK,OAAS,UAAU,KAAK,OAAQ,YAGrC,KAAK,MAAQ,QACb,GAAM,OAAQ,KAAK,OAAO,QAC1B,AAAI,OACF,KAAI,MAAO,QACX,QAAQ,CAAE,SAGZ,GAAI,SACA,aACA,QACA,QAEE,UAAY,OAGlB,KAAM,MAAK,eAGX,KAAM,MAAK,OAEP,KAAK,OAAO,QAAQ,AAAG,SAAS,aACpC,KAAK,QAAQ,gBAEb,UAAY,OACZ,GAAM,UAAU,AAAM,eAAQ,OAAO,KAAK,QAC1C,GAAI,CAAC,UAAW,CAAC,SAAQ,QACvB,IAAI,qCACJ,QAAQ,CAAE,MAAO,sCACjB,OAEF,KAAK,KAAK,MAAQ,KAAK,MAAM,OAAQ,WACrC,KAAK,QAAQ,cAGb,AAAI,KAAK,OAAO,MACd,SAAU,KAAK,OAAO,KAAK,QAAU,KAAK,WAAW,SAAQ,QAAU,GACnE,KAAK,KAAK,MAAM,MAAO,MAAK,KAAK,MAErC,MAAK,MAAQ,WACb,UAAY,OACZ,QAAU,KAAK,OAAO,KAAK,QAAU,KAAM,MAAK,WAAW,SAAQ,QAAU,GAC7E,KAAK,KAAK,KAAO,KAAK,MAAM,OAAQ,YAItC,KAAK,QAAQ,eACb,AAAI,KAAK,OAAO,MACd,SAAU,KAAK,OAAO,KAAK,QAAU,SAAK,OAAO,UAAZ,eAAqB,cAAc,SAAQ,OAAQ,KAAK,QAAU,GACnG,KAAK,KAAK,MAAM,MAAO,MAAK,KAAK,MAErC,MAAK,MAAQ,WACb,UAAY,OACZ,QAAU,KAAK,OAAO,KAAK,QAAU,KAAM,UAAK,OAAO,UAAZ,eAAqB,cAAc,SAAQ,OAAQ,KAAK,SAAU,GAC7G,KAAK,KAAK,KAAO,KAAK,MAAM,OAAQ,YAEtC,KAAK,QAAQ,aAGb,KAAK,QAAQ,eACb,AAAI,KAAK,OAAO,MACd,cAAe,KAAK,OAAO,KAAK,QAAU,AAAU,QAAQ,SAAQ,OAAQ,KAAK,QAAU,GACvF,KAAK,KAAK,MAAM,MAAO,MAAK,KAAK,MAErC,MAAK,MAAQ,WACb,UAAY,OACZ,aAAe,KAAK,OAAO,KAAK,QAAU,KAAM,AAAU,SAAQ,SAAQ,OAAQ,KAAK,QAAU,GACjG,KAAK,KAAK,KAAO,KAAK,MAAM,OAAQ,YAEtC,KAAK,QAAQ,aAGb,KAAK,QAAQ,eACb,AAAI,KAAK,OAAO,MACd,SAAU,KAAK,OAAO,KAAK,QAAU,SAAK,OAAO,WAAZ,eAAsB,cAAc,SAAQ,OAAQ,KAAK,QAAU,GACpG,KAAK,KAAK,MAAM,MAAO,MAAK,KAAK,MAErC,MAAK,MAAQ,WACb,UAAY,OACZ,QAAU,KAAK,OAAO,KAAK,QAAU,KAAM,UAAK,OAAO,WAAZ,eAAsB,cAAc,SAAQ,OAAQ,KAAK,SAAU,GAC9G,KAAK,KAAK,KAAO,KAAK,MAAM,OAAQ,YAEtC,KAAK,QAAQ,aAGT,KAAK,OAAO,OACd,EAAC,QAAS,QAAS,aAAc,SAAW,KAAM,SAAQ,IAAI,CAAC,QAAS,QAAS,aAAc,WAEjG,SAAQ,OAAO,UAEX,KAAK,OAAO,QAAQ,AAAG,SAAS,WACpC,KAAK,QAAQ,cAEb,GAAI,YAAa,GACjB,AAAI,KAAK,OAAO,QAAQ,SACtB,WAAY,OACZ,WAAa,CAAC,GAAG,AAAQ,aAAK,SAAU,GAAG,AAAQ,aAAK,SAAU,GAAG,AAAQ,aAAK,SAAU,GAAG,AAAQ,aAAK,UAC5G,AAAK,KAAK,OAAO,MACR,KAAK,KAAK,SAAS,MAAO,MAAK,KAAK,QADrB,KAAK,KAAK,QAAU,KAAK,MAAM,OAAQ,YAIjE,KAAK,KAAK,MAAQ,KAAK,MAAM,OAAQ,WACrC,KAAK,MAAQ,OACb,QAAQ,CAAE,KAAM,QAAS,KAAM,QAAS,KAAM,QAAS,KAAM,aAAc,QAAS,WAAY,YAAa,KAAK,KAAM,OAAQ,SAAQ,gBAItI,QAAO,YACX,GAAM,WAAY,CAAC,OAAQ,KAAO,6BAA+B,MAAM,QAAQ,eAAe,UAAU,KAAK,AAAC,KAAQ,IAAI,QAE1H,AAAI,YAAY,MAAK,OAAS,UAAU,KAAK,OAAQ,aACrD,GAAM,OAAQ,KAAK,OAAO,eAC1B,KAAK,OAAO,eAAiB,GAC7B,GAAI,MACJ,OAAQ,KAAK,OAAO,YACb,OAAQ,KAAO,KAAM,WAAiB,MAAO,UAC7C,OAAQ,KAAO,KAAM,WAAiB,MAAO,cACzC,KAAO,KAElB,GAAI,CAAC,KAAM,MAAO,MAClB,GAAM,QAAS,KAAM,mBAAkB,MACjC,GAAK,OACL,OAAS,KAAM,MAAK,OAAO,OAAQ,gBACnC,GAAK,OACX,cAAO,QACP,IAAI,SAAU,KAAK,OAAO,OAAS,GAAK,GAAK,QAC7C,KAAK,OAAO,eAAiB,MACtB", + "sourcesContent": ["import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var _scriptDir=undefined;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":169,\"maximum\":169+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13056;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":151,\"maximum\":151+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport { version as tfjs } from '@tensorflow/tfjs/package.json';\nimport { version as versionCore } from '@tensorflow/tfjs-core/package.json';\nimport { version as versionData } from '@tensorflow/tfjs-data/package.json';\nimport { version as versionLayers } from '@tensorflow/tfjs-layers/package.json';\nimport { version as versionConverter } from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs,\n 'tfjs-core': versionCore,\n 'tfjs-data': versionData,\n 'tfjs-layers': versionLayers,\n 'tfjs-converter': versionConverter,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './blazeface/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './posenet/posenet.js';\nimport * as blazepose from './blazepose/blazepose.js';\nimport * as handpose from './handpose/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.blazepose || (this.config.pose.enabled ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.pose.enabled && !this.models.blazepose) this.models.blazepose = await blazepose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let blazeposeRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run posenet\n this.analyze('Start Pose:');\n if (this.config.async) {\n blazeposeRes = this.config.pose.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.perf.pose) delete this.perf.pose;\n } else {\n this.state = 'run:pose';\n timeStamp = now();\n blazeposeRes = this.config.pose.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.perf.pose = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Pose:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, blazeposeRes, handRes] = await Promise.all([faceRes, poseRes, blazeposeRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, pose: blazeposeRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmupBitmap() {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, config);\n bitmap.close();\n }\n return res;\n }\n\n async warmupCanvas() {\n return new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n const img = new Image(size, size);\n img.onload = () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = size;\n canvas.height = size;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const data = ctx.getImageData(0, 0, size, size);\n this.detect(data, config).then((res) => resolve(res));\n };\n if (src) img.src = src;\n else resolve(null);\n });\n }\n\n async warmup(userConfig) {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.warmupBitmap();\n else res = await this.warmupCanvas();\n this.config.videoOptimized = video;\n const t1 = now();\n log('Warmup', this.config.warmup, (t1 - t0), res);\n return res;\n }\n}\n\nexport { Human as default };\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n// import * as profile from '../profile.js';\n\nconst models = {};\n\nexport async function load(config) {\n if (!models.blazepose) {\n models.blazepose = await tf.loadGraphModel(config.pose.modelPath);\n log(`load model: ${config.pose.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.blazepose;\n}\n\nexport async function predict(image, config) {\n if (!models.blazepose) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.pose.inputSize, config.pose.inputSize], false);\n const enhance = tf.div(resize, 127.5).sub(1);\n tf.dispose(resize);\n const logits = await models.blazepose.predict(enhance);\n //\n tf.dispose(enhance);\n logits.map((logit) => logit.dispose());\n resolve(logits);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n pose: { // TBD: not currently in use\n enabled: false,\n scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n modelPath: '../models/blazepose.json',\n inputSize: 256, // fixed value\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAB5n2q03LfDqqx39y39npmlxbS/TOG5se29tuavzgWzeV4mtui2\nO3RRSY2hdVhqO2MvI36iu9lUsrSrvDHn6spnmSiq5jooyV6tq1VV69RC32byTh43h8otMx+r6I+Z\naK/g8TwX7bXh9Mid4iW+fjl8n1ICWb57xLBOm4zqse20Tbmj8+qKdnS9q8PhcTw5tumSm0/OHMxz\n0Za+uzx3sX1t0Zxurr1ZxvspWiZYWZbsbT0QK7KLrZVZJFaqt5vbezNOTg9J/FaZeJns93wCvLwb\nT/GJn92uGHldIBowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuAPA67F9H4l\nqMW20VvO3yRWW97T4fC4rXJHSMtI/WGhVlue3b473K2KzMML4+62tujG9pnozXaOSOVFMnVbmq1t\ntrJRW5E7wwvUxTvCyY6CHOt7moxz6Wh9PxTzYaT61h8x1MbZK/OH0zTf+Fxf6I/htj45vL9WgLMn\nmvbPFvocGWO9L7fq85p5maw9d7VYvE4JkmPu2if3eW0+PasdFNOnxfF1Y2hlykRsmY+LJ0MZjZXa\neq2eyi8oQTO0KLdZWzPRjWu6VaqtHR73g0bcI0sf0Q8Nkq93wqNuFaWP+XDTDDytwBowAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAef9q8HNpcGaI60vtPyl56k9Iew49j8ThGe\nPwxFv0l4zH2U26fDfTYiyJljvsjf4sm6vJ1hrXjq2MkqLdZEVbgbMx0auGdmzNt6iHN1Ub5af6of\nTdPG2nxx6Vj+HzaaTm1+nx/iyVj930ysbViPRrj45vL9SAuyc7j1efguqj+jd4/T33rD3HEcPj8O\n1GP8WOY/Z4TTT7sKadHhbcsZnaCJ3TPZk6VdrKbTutmP0U2nqgrGOsr8deiuI2X09EqKM1dt3uuG\nf/jdN/06/wAPE546S9rwud+Gaaf+XH8NMMPK2wGjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAABrcRp4nDtRWPPHP8PCYusPoWSvNjtX1iYfPuWaXtX8MzCuvjfw32siu8ptXoxi\n0wy5t4YulReqmazu2skbquURWFInddM7VYRGyL291KFnCcfj8e0le/Lbmn8n0N4b2Ur4nHLWmPsY\n5e5a5+OXyXugBZmiY3iY9Xz7NjnTa3Ph/BeYj5PoTxftFg8Hjk2iOmWkW/Psrr418V5WrWd2faFc\nV2jdnEMXWxntupmN7NiYU27iWML6dVMVnddjgVqMsdHr+CW5uE6f4Rt+7yuSsTDv+zWXn0WTHP3L\n/tK+GHl+O0A1c4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8Dn93W56/wDM\nt/L3z59qp24jn+OS38lnpr4r7ZxHQ2TEstt3PXUrt27K57rr1VT0BjKnJPRbMqMs7QlV2fYvHvrd\nVknyrEfu9m8f7FZI8fVU85iJewbT45NfQBKo817W4eulzxHaZrL0rje09ItwqbfhtBVs3leai8RD\nKLw1sduesL606dWFdsZT1jdhNeq6K9DlhCVUU6s4jZnt1YzAhnM71dH2bycmszY/K1d/0c6OzY4R\nfwuK4p8rTstn6z8k7HrwGzkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHz3\nVxvr80/8y38voTwGpj/F5/8AqT/JfjTx/WVeyY6FPspc9dZPVXaOq2WEwIUTVRmjo2rNfLHRI3vZ\nDJycXtX8dZh7t879nsnhcbwz23tt+r6I2nxyb+gCVBzuPY/E4PqI9K7ui19fTxNBnp60n+Aj5/pJ\n3jZu1aOnnltMNussdfXbm+l3ZM9URHREdZVXTuT1Nk7boQiOkJw28PU47/htEp5eivJPLMTCZ9Vv\nx7mJ3iJ9UqNHk8XR4b+tIXuhxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\nweqjbWZ4/wCZP8vePCaz/wDIaiP+Zb+UX408f0r9lOxWOifJhXWjfyYWllPRXYQxnrCrJHRd3YZI\n6A1NJecHEsN/S0T+76bE7xE+r5dk93LW3pL6ZpMni6PDf8VIn9m2fjm8s9rgFmQxvHNS0esbMiew\nPnHLyai9fS0w2aNfUTtrs3+uf5bGPqy068fF227KtSsdFlKqNGMV6myyY6sbdIQI8tlOWOi6Jhhk\nj3RD0vA8nicMx9etZmHRcT2Zyb6XNT8N9/2dt0T449T2AJVAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAHhdfG3E9TH9cvdPEcXjk4zqI/q3L8aeP6xr2TsxpLOekMK6mFo6qpXSrm\nOqBixvHSVmzC4OfqK7S9/wAByeLwbTW9K7fo8Fqo6Paeyl+fglI/Da0NcMPK7QC7AAB8313TiOf/\nAKk/y2MHWrX4jG3E9R/1Lfyv0/aFNOrHxuU7LI7MMayGTVlHWUXhNe6Z6wIUsb9d1m20q7dkDpez\nN9tRqKT5xEvRvKez9+Xis1/FSYerb5+OTyf6AFlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAB43j9eXjN/jWJ/Z7J5L2mry8Upb8VIF8f6aGOey2eynHvOy7bowrrYSxZSwQJ2YXZ\n92N4BoanrEvVexmTm4blr+HJ/aHltRHSXofYm/1Wrp5RaJaYY+X49WA0c4AD51xONuKan/qW/lbp\n+0MOLRtxbU/9SU4J7KadWPjep2WQrr2WRPRk1TvsndXMpiRCb9FNu0rbTuqvKBscCjfi9PhWZeue\nV9n434rafTHL1TfPxy+T/QAszAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmv\navHtfTZfnV6VxPajHzcNrf8ABeJFs/XnMcr4no18c+6vr2YadkY2YM57sEDLyY37Mo7MMnYGlqO0\nvQ+xNfqNVb1tEfs87qZ2rL0/sVX/AHdnt65P7Q0wx8vx6UBo5wAHz/jUbcX1PT78qtO2vaCnJxjP\n8Zif2amnnspp04+OjWejKJ6MKdmcMmyJn4m5ZHzEVPMwtJv0VZLbQDqezcb8RzT6Y/7vUPM+ytZt\nn1OTyiIh6Ztn45N/6AFlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABocbxeLw\nnUR5xXm/Rvq8+OMuDJjntaswEeBxT0bNZ6NatZpNqz3rO0rqsdO3PxlaWEMpY+aqWXkryT0ZT2V3\n7A0dVPuy9f7G124NM/iyT/Z4zWT7sw957MYfB4Fp4/FE2/WWmGHldcBowAAeM9qKcvFeb8VIly9P\n0nq7ntbTbVYL+tJj93CwT76unR4/jo0nozhhTsy3Y1sWljM9Ce7HyQIm3RRlttVbaWrnt0Sh6n2U\nx8vD8mSfv3/h3XN4Bi8Lg2nj8Uc36y6TeOPXugCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAPD8RxeBxXUU26Tbmj8+quro+02Lw+I4ssdslNvzhzazvDPbq8d7GW7Dfqz2VzG\n0s2qd+iu/Zn5Ksk9BVztX1mI8930zh2LwOHabH+HHWP2fNYp4+vwYvxXiP3fUqxtWIjyjZtj45/L\nfaQFmQADzftfj3w6fJ6WmHmsP23rvaqnNwqLfhvEvIYZ+sV038bo0noy36MK9oZQxrdMyrlnMbMZ\nQKrS1M07zEestq/RRjr4utwY/wAV4j91p9V18fQdJj8LR4ccfdpEfsuREbREJbuMAAAAAAAAAAAA\nBAJAAAAEAJEAJQAJQAJEAJQAJQAJEACUJAQlAJEAJQAJQJAAAEAJEAJBAAAJAABAJEJAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwvanDzaPFmjvjv8A\ntLztJ3h7HjGHx+FainnFeaPnHV4vFbeIU038VbHeGF+kso7Mb9mTdhKnLK3dRm7SIrHhGPxeP6Sv\n9cT/AHfSnz72Zx+J7Q45/BWZ/Z9BbZ+OXyfQBZQABzeP4/E4NqI9Ii36S8Ng/wAx9C4jTxOH6ivr\njn+Hz3B/mQi/GvjdCnWNlsdI2V07LIlg6USrt2ZzZXMoFV+zPhGLxeOaavpbm/RVltEN72Yx+Jxm\nb7dKUmf7L5+s9/HtRA2cqRACRACRACRACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQCQQCRACRACRCQBCQBCQB\nACRACRACRACRACL1i9LVntMbPATTwdRkxT3pea/u+gPE8Xx+DxrPHlaYt+qNfGvjvtXXsi0dOrKk\ndEXjZg6VMtbP2bMtXUdpEV0/Y2nNxbNf8OP+727xvsXH+N1U/wBEfy9k3nxyb+gCVQAGOWvNivX1\nrMPnGGOXNNfOJ2fSZ6w+dZKeHxDPX8N7R+6L8a+L63KdoZ7q6zvEMpnowdKJ6ywmWUyqvIKM0vQ+\nx+D6rU55+9aKx+TzWa36vbezmDwODYenW+95/Nphj5L6dQBo5wAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAEiAAAEoA\nAAAAAAAAAAAAAEAkEAkRuAkQbgkQAkQAkQAkQAl5T2nx8nEMOT8dNv0l6pwfarHvpcGWPu32/WCr\nYvK4mOem6b9mGKd4Z3idmFdka0y1c892zfpMtLPaNpEV6D2Kj/Eauf6YeweQ9ieuTVz8K/3evbT4\n5NfQBKoAA8FxCvJxrUx/XMvevD8Zry8fz/Haf2RfjTx/6RSOnRMyypHu9kXjowrqVSrvPRnZVl6V\nkK0775MsUjvadn0nT4ow6bFijtSsVfPuFYvpPGtNTy54mfy6vorXDm8l9pEC7JIgBIgBIgBIgBIg\nBIgBIhIAgBIhIAgBIgBIIBIAAhIAhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAA\nAAAAAAAAABAJQkAEAAAAAAAAAAjc3BIjdG4Mkbo5kcwMjdhzHMDPc3V8xzAs3N1fMjmBZubq+Y5g\nWbm6vmOYFm5ur5jmBZubq+Y5gWbm6vmOYFm5ur5jmBZubq+Y5gWbm6vmTzAz3N2HMnmBlu5ftFTx\nOEZJ/DMW/d0t2rxKni8N1FPWkiZ9eS08e7Cy8dGGn6UhZaJljXZGnmc3UT3dPP2cnUT78xCIV6j2\nH/8A9c/6f7vXPI+w8bU1U+vL/d63du5NfUiDcVSIAS8b7RV5eOb/AIqRL2TyXtNX/e2KfXH/AHlF\n+NPH/pr4+2xcxx0hFpY11K7R16KM32ZWz3UaidqSgrc9kcPicWyZJjfw6T+727y3sXh2xarN+K0V\nh6lvPjj3e0ASqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAAkQAkQAkAAAAAAAAAAAAAAA\nEgAAAAAAAAAAAAAAAAAAAAAgAAABKDcAN0bgkY8xzAyRux5kcwM9zdXNkTcFm6OZXzMeYFvMibKu\nZHMC2bo51U2RuC2bom6rc3BZzom6sBZzI52ADPnOdggFnMc6skFnMc6rc3BbznOp3RzAv50c6nml\nHMC/nOf4qOY5wX85zqOc5wbHOc7X5znBsc6edr85zg2ec52vzpi4NjmY5bROG+/bllVzsNTk5dLl\nn0pP8BHmMHWNmzt0aum8obm08vVjfrtnxztR0mXHzTvaZdjVRMTLkZo6yiFen9iZ2pqY/wBP93rN\n3kPY+/LfPX1rE/u9XzN3HfqzdO6vmTuIZ7m7Hc3Bnu8t7TR/vHBP9E/y9Pu837SV31umn+if5Rfi\n/j/01MMb1hjkrtKzBG0bMsmOZY11tOYamr6Und0LUc7XT7u3rJPqL8er9lcPhcFpbzyWm39v7O00\n+FYvA4Zpsc94xxu227jv1IAgAAAAAAAAABKAAAASgASgBIgBIgBIgBIhIAAAAAAAAAAAAAAAAAAC\nUACUJAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAg3AEbomQZbo3YzLGbAz3RNlc3YzcFs2YzdVN2\nM2Bdzom6nmNwW86JurTAMuY3REJ2BB1ZRVMVBhsbSsiqeUFXLucq3lTygp5TlXcpygp5TlXcpygp\n5TlXcqOUFXKjlXcrGYBXysdlswiYBVMdUTCyY6sZBWxlnMMZgGLGZZSwkDdHMiWO4MuY5mEyjcFn\nN1OdVzHMC3nTzqeY5gX85zqOZPMC+Lqdbk20eb/RKOZr8QybaK/XvtH7iZ9aGlp2luzT3fg19NHS\nOjbmPcYX67XH1XSZ9XIzRvMuzrK7zLkZYmYnciunb9lZ5dTk+OP+71cXeP8AZnJ/ip2nf3J/l6iL\n/Fu5L9bMWZczXi6YuIbEWTzKIuyiwLt3nuO25uI4a/hx7/rLuczg8TicvFLbfdpEK6+NPH/phhjo\nstLGkctUWnoxrrU3j1cnWTzZq1jzl1clo5Zcu8c+txR63iP3Tn6pv4+g4o5cVI9IiGe7CJ2iE7t3\nGyN2O6dwSINwSISAlAAlACRAAlAAlACRACRCQAAAAAAAAAASgASISAAAAAAAAAAAAACQAAAAAAAA\nAAAAAASAAAAAAAAAAAAAAAAIAAAQCAJljuljsCJlhMs9mOwMJYys5TkBVsjZdyHICrZPKt5E8oK4\nqmKrOVOwMIqyirPY2Bjyp2ZbAI2NmSARsbMgEbI2ZAMdjZICNkbMkSCNmOzJEgx2YyzljMAwlhKy\nWEwCuWErJhhMArlhLOWEgxljMpljIImWMyTKJA3N0IBO5vux3NwZbnMx3NwZczT4jf3MdPW27a3a\nfJOq1XNP2KdIRfi+J2trSYfcjeF+Wm1OicVeWIiN9kai8xjY12ORqultnI1Ecsujq79XP1FovWYI\nrTgeq+j8QrWZ+3Mx+r2UXeC0WG2Ti2kiN5mL807eUREvbzbaejefHJv62Iv8WUXa0WTFhVtRdlF2\nrz9WUXBtc7jR9dqc2T1ttHyhvZMvJitb0jdq6XHNcNenWVN3028U99WRj6Kb02be3Tq18/SN2Lpc\n3UdN9nOmZrqKX/DaJ/d0svvTLRzV3jomK6+Pd1vvWJj0ZczT0mXxNJht60hfFnQ4qu3N1cWTEgs3\nTur5k7gz3N2O5uDM3Y7m4MtxBuCQASIASIASAAAAAAACRCQAAAAAAAAEoSAAAAAAAAAAAlAAlCQA\nAAAAAAAAAAASAAAAAAAAAAAAIASgAAAEJAQJQCNkbMgGOyOVnsAw5TlZ7GwMOVPKy2NgY7GzIBGx\nskA2AAAAAAAAAAQkBAEghEskAxYzDPZGwK5hjMLJhjMAqmGEwumrCagomFcw2JqqtUFEsLLrV82F\no7gqljKyYYTGwMZRKUSCAQAboJnaN5Bjkneu0d5W4ccViIiOzHFWbTzNumP1Zarr8eeRMbxDW1Mx\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n"], + "mappings": "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B,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,I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AAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,CACC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EA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CH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OA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,eAG1B,MAAA,WAAU,KAAK,WACf,UAAU,KAAK,UAGX,aAAa,OAAQ,UAAW,SAAU,MAAO,eAIrD,YAAc,aAChB,IAAK,qBAAsB,WAAY,YAAa,aAElD,SACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,aAAc,QAAA,UAAS,MAAO,CAAC,MAAO,YAE3D,OAAS,SACb,GAAI,aAAe,MACjB,UAAU,KAAK,UACf,GAAM,MAAO,qBAAa,uBAAuB,aACjD,OAAS,WAAU,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,QAG5D,MAAA,WAAU,QAAQ,GAAK,UAAQ,8BAA8B,IACtD,OAGF,GAAM,2BAAyC,CACpD,WAAY,mBACZ,YAAa,QACb,WAAY,qBC4DR,eAAgC,CACpC,UACA,cACA,oBACA,WACA,YACA,aACA,WACA,YACA,WACA,WACA,cACA,cACA,YACA,aACA,aACA,YACA,aACA,iBACA,eACA,oBACA,mBACA,mBACA,iBACA,sBACA,gBACA,YACA,YACA,kBACA,kBACA,eACA,cACA,4BACA,2BACA,cACA,8BACA,0BACA,cACA,WACA,YACA,qBACA,cACA,qBACA,oBACA,2CACA,0CACA,6BACA,YACA,iBACA,WACA,eACA,aACA,WACA,WACA,kBACA,aACA,WACA,YACA,qBACA,aACA,gBACA,iBACA,mBACA,4BACA,gBACA,gBACA,eACA,oBACA,gBACA,YACA,YACA,gBACA,aACA,aACA,iBACA,YACA,iBACA,gBACA,aACA,WACA,kBACA,kBACA,iBACA,WACA,iBACA,eACA,oBACA,mBACA,yBACA,eACA,YACA,WACA,eACA,iBACA,WACA,mBACA,gBACA,WACA,2BACA,2BACA,2BACA,gBACA,cACA,gBACA,YACA,aACA,WACA,aACA,YACA,aACA,YACA,eACA,kBACA,aACA,YACA,eACA,sBACA,0BACA,6BACA,iCACA,eACA,wBACA,aACA,aACA,iBACA,cACA,YACA,eACA,YACA,WACA,YACA,aACA,eACA,gBACA,sBACA,qBACA,cACA,YACA,cACA,yBACA,YACA,oBACA,WACA,WACA,WACA,YAC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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kEA0JP,KAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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", "names": [] } diff --git a/dist/human.esm.json b/dist/human.esm.json index 9a03dc13..5d3755c1 100644 --- a/dist/human.esm.json +++ b/dist/human.esm.json @@ -264,7 +264,7 @@ ] }, "src/blazepose/blazepose.js": { - "bytes": 8999, + "bytes": 856, "imports": [ { "path": "src/log.js" @@ -361,7 +361,7 @@ ] }, "config.js": { - "bytes": 10062, + "bytes": 10110, "imports": [] }, "src/sample.js": { @@ -373,7 +373,7 @@ "imports": [] }, "src/human.js": { - "bytes": 17787, + "bytes": 18921, "imports": [ { "path": "src/log.js" @@ -433,7 +433,7 @@ "dist/human.esm.js.map": { "imports": [], "inputs": {}, - "bytes": 1945558 + "bytes": 1934763 }, "dist/human.esm.js": { "imports": [], @@ -442,7 +442,7 @@ ], "inputs": { "src/blazeface/blazeface.js": { - "bytesInOutput": 5046 + "bytesInOutput": 5039 }, "src/blazeface/box.js": { "bytesInOutput": 1567 @@ -517,7 +517,7 @@ "bytesInOutput": 127037 }, "src/handpose/handpose.js": { - "bytesInOutput": 2025 + "bytesInOutput": 2023 }, "src/gesture/gesture.js": { "bytesInOutput": 3162 @@ -538,10 +538,10 @@ "bytesInOutput": 918 }, "src/human.js": { - "bytesInOutput": 11921 + "bytesInOutput": 12660 }, "src/blazepose/blazepose.js": { - "bytesInOutput": 6201 + "bytesInOutput": 572 }, "src/handpose/box.js": { "bytesInOutput": 1420 @@ -559,7 +559,7 @@ "bytesInOutput": 23 } }, - "bytes": 1912580 + "bytes": 1907681 } } } diff --git a/dist/human.js b/dist/human.js index bea3cb2e..80375fb4 100644 --- a/dist/human.js +++ b/dist/human.js @@ -5,19 +5,19 @@ author: ' */ -var Human=(()=>{var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export=(target,all4)=>{__markAsModule(target);for(var name in all4)__defProp(target,name,{get:all4[name],enumerable:!0})},__exportStar=(target,module,desc)=>{if(__markAsModule(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames(module))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc(module,key))||desc.enumerable});return target},__toModule=module=>module&&module.__esModule?module:__exportStar(__defProp(module!=null?__create(__getProtoOf(module)):{},"default",{value:module,enumerable:!0}),module);var require_blazeface=__commonJS(exports=>{var NUM_LANDMARKS=6;function generateAnchors2(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors2=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:slice(startEndTensor,[0,0],[-1,2]),endPoint:slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=mul(box.startPoint,factors),ends=mul(box.endPoint,factors),newCoordinates=concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors2,inputSize){let boxStarts=slice(boxOutputs,[0,1],[-1,2]),centers=add2(boxStarts,anchors2),boxSizes=slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=div(boxSizes,inputSize),centersNormalized=div(centers,inputSize),halfBoxSize=div(boxSizesNormalized,2),starts=sub(centersNormalized,halfBoxSize),ends=add2(centersNormalized,halfBoxSize),startNormalized=mul(starts,inputSize),endNormalized=mul(ends,inputSize);return concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model2,config3){this.blazeFaceModel=model2,this.width=config3.face.detector.inputSize,this.height=config3.face.detector.inputSize,this.anchorsData=generateAnchors2(config3.face.detector.inputSize),this.anchors=tensor2d(this.anchorsData),this.inputSize=tensor1d([this.width,this.height]),this.config=config3,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=concat([sorted[0],sorted[2]],2),concat512=concat([sorted[1],sorted[3]],2);prediction=concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=slice(prediction,[0,0],[-1,1]),scoresOut=sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tidy(()=>slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input2){let{boxes,scaleFactor}=await this.getBoundingBoxes(input2),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load3(config3){let blazeface=await loadGraphModel(config3.face.detector.modelPath,{fromTFHub:config3.face.detector.modelPath.includes("tfhub.dev")}),model2=new BlazeFaceModel(blazeface,config3);return log(`load model: ${config3.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model2}exports.load=load3;exports.BlazeFaceModel=BlazeFaceModel;exports.disposeBox=disposeBox});var require_box=__commonJS(exports=>{function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}exports.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports.squarifyBox=squarifyBox2});var require_util=__commonJS(exports=>{exports.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot5(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports.TRI468=TRI468;exports.TRI68=TRI68;exports.TRI33=TRI33;exports.TRI7=TRI7;exports.UV468=UV468;exports.UV68=VTX68.map(x=>UV468[x]);exports.UV33=VTX33.map(x=>UV468[x]);exports.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports=>{var bounding=__toModule(require_box()),util=__toModule(require_util()),coords2=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords2.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input2,config3){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config3.face.detector.skipFrames||!config3.face.mesh.enabled||!config3.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input2),this.skipped=0),config3.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config3.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config3.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config3.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input2.shape[2],faceCenter[1]/input2.shape[1]],rotatedImage=image.rotateWithOffset(input2,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input2.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config3.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports.Pipeline=Pipeline});var require_facemesh=__commonJS(exports=>{var blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords2=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config3){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config3),this.config=config3}async estimateFaces(input2,config3){let predictions=await this.facePipeline.predict(input2,config3),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords2.MESH_ANNOTATIONS))annotations[key]=coords2.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config3.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input2.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input2.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load3(config3){faceModels=await Promise.all([!faceModels[0]&&config3.face.enabled?blazeface.load(config3):null,!faceModels[1]&&config3.face.mesh.enabled?loadGraphModel(config3.face.mesh.modelPath,{fromTFHub:config3.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config3.face.iris.enabled?loadGraphModel(config3.face.iris.modelPath,{fromTFHub:config3.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config3);return config3.face.mesh.enabled&&log(`load model: ${config3.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config3.face.iris.enabled&&log(`load model: ${config3.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports.load=load3;exports.MediaPipeFaceMesh=MediaPipeFaceMesh;exports.triangulation=coords2.TRI468});var require_profile=__commonJS(exports=>{var profileData={};function profile3(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time2=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time2,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports.run=profile3});var require_age=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load3(config3){return models2.age||(models2.age=await loadGraphModel(config3.face.age.modelPath),log(`load model: ${config3.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models2.age}async function predict3(image3,config3){return models2.age?skipped0?(skipped++,last):(config3.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config3.face.age.inputSize,config3.face.age.inputSize],!1),enhance=mul(resize,[255]);dispose(resize);let ageT,obj={};if(!config3.profile)config3.face.age.enabled&&(ageT=await models2.age.predict(enhance));else{let profileAge=config3.face.age.enabled?await profile(()=>models2.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile3.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_gender=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load3(config3){return models2.gender||(models2.gender=await loadGraphModel(config3.face.gender.modelPath),alternative=models2.gender.inputs[0].shape[3]===1,log(`load model: ${config3.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models2.gender}async function predict3(image3,config3){return models2.gender?skipped{let resize=image.resizeBilinear(image3,[config3.face.gender.inputSize,config3.face.gender.inputSize],!1),enhance;alternative?enhance=tidy(()=>{let[red,green,blue]=split(resize,3,3),redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);return addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=mul(resize,[255]),dispose(resize);let genderT,obj={};if(!config3.profile)config3.face.gender.enabled&&(genderT=await models2.gender.predict(enhance));else{let profileGender=config3.face.gender.enabled?await profile(()=>models2.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile3.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config3.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config3.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_emotion=__commonJS(exports=>{var profile3=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models2={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale2=1;async function load3(config3){return models2.emotion||(models2.emotion=await loadGraphModel(config3.face.emotion.modelPath),log(`load model: ${config3.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models2.emotion}async function predict3(image3,config3){return models2.emotion?skipped0?(skipped++,last):(config3.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config3.face.emotion.inputSize,config3.face.emotion.inputSize],!1),[red,green,blue]=split(resize,3,3);resize.dispose();let redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config3.face.emotion.enabled){let data2;if(config3.profile){let profileData=await profile(()=>models2.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile3.run("emotion",profileData)}else{let emotionT=await models2.emotion.predict(normalize);data2=emotionT.dataSync(),dispose(emotionT)}for(let i=0;iconfig3.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale2*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_embedding=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={};async function load3(config3){return models2.embedding||(models2.embedding=await loadGraphModel(config3.face.embedding.modelPath),log(`load model: ${config3.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models2.embedding}function simmilarity2(embedding1,embedding22){if((embedding1==null?void 0:embedding1.length)!==(embedding22==null?void 0:embedding22.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding22[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict3(image3,config3){return models2.embedding?new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config3.face.embedding.inputSize,config3.face.embedding.inputSize],!1),data2=[];if(config3.face.embedding.enabled)if(config3.profile){let profileData=await profile(()=>models2.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile3.run("emotion",profileData)}else{let embeddingT=await models2.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports.predict=predict3;exports.simmilarity=simmilarity2;exports.load=load3});var require_modelBase=__commonJS(exports=>{var imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model2){this.model=model2}predict(input2,config3){return tidy(()=>{let asBatch=(config3.body.modelType==="ResNet"?input2.toFloat().add(imageNetMean):input2.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config3.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports.BaseModel=BaseModel});var require_heapSort=__commonJS(exports=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max6=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max6}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports.NUM_KEYPOINTS=exports.partNames.length;exports.partIds=exports.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports.partIds[jointNameA],exports.partIds[jointNameB]]);exports.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax6?max6:a}exports.clamp=clamp2;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports.addVectors=addVectors;function clampVector(a,min6,max6){return{y:clamp2(a.y,min6,max6),x:clamp2(a.x,min6,max6)}}exports.clampVector=clampVector});var require_decoders=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports.getOffsetPoints=getOffsetPoints;function mod4(a,b){return tidy(()=>{let floored=a.div(scalar(b,"int32"));return a.sub(floored.mul(scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tidy(()=>{let coords2=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords2.div(scalar(width,"int32")).expandDims(1),xCoords=mod4(coords2,width).expandDims(1);return concat([yCoords,xCoords],1)})}exports.argmax2d=argmax2d});var require_decodePose=__commonJS(exports=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config3.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config3){let poses=[],queue=buildParts.buildPartWithScoreQueue(config3.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config3.body.nmsRadius^2;for(;poses.lengthconfig3.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor2=>tensor2.buffer()))}exports.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports.scalePose=scalePose;function resizeTo(image3,[targetH,targetW]){let input2=image3.squeeze(0),resized=input2.resizeBilinear([targetH,targetW]);return input2.dispose(),resized}exports.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports=>{var modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input2,res,config3){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config3),scaled=util.scaleAndFlipPoses(poses,[height,width],[config3.body.inputSize,config3.body.inputSize]);resolve(scaled)})}async function estimateSingle(input2,res,config3){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config3)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config3.body.inputSize,config3.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model2){this.baseModel=model2}async estimatePoses(input2,config3){let resized=util.resizeTo(input2,[config3.body.inputSize,config3.body.inputSize]),res=this.baseModel.predict(resized,config3),poses=config3.body.maxDetections<2?await estimateSingle(input2,res,config3):await estimateMultiple(input2,res,config3);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports.PoseNet=PoseNet;async function load3(config3){let model2=await loadGraphModel(config3.body.modelPath),mobilenet=new modelBase.BaseModel(model2);return log(`load model: ${config3.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports.load=load3});var require_posenet=__commonJS(exports=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports.load=modelPoseNet.load;exports.PoseNet=modelPoseNet.PoseNet;exports.partChannels=keypoints.partChannels;exports.partIds=keypoints.partIds;exports.partNames=keypoints.partNames;exports.poseChain=keypoints.poseChain;exports.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports.getBoundingBox=util.getBoundingBox;exports.getBoundingBoxPoints=util.getBoundingBoxPoints;exports.scaleAndFlipPoses=util.scaleAndFlipPoses;exports.scalePose=util.scalePose});var require_handdetector=__commonJS(exports=>{var HandDetector=class{constructor(model2,inputSize,anchorsAnnotated){this.model=model2,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tensor2d(this.anchors),this.inputSizeTensor=tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tidy(()=>{let boxOffsets=slice(boxes,[0,0],[-1,2]),boxSizes=slice(boxes,[0,2],[-1,2]),boxCenterPoints=add2(div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=div(boxSizes,this.doubleInputSizeTensor),startPoints=mul(sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=mul(add2(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tidy(()=>{let landmarks=add2(div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return mul(landmarks,this.inputSizeTensor)})}async getBoxes(input2,config3){let batched=this.model.predict(input2),predictions=batched.squeeze();batched.dispose();let scoresT=tidy(()=>sigmoid(slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await image.nonMaxSuppressionAsync(boxes,scores,config3.hand.maxHands,config3.hand.iouThreshold,config3.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config3.hand.minConfidence){let matchingBox=slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=slice(predictions,[index,5],[1,14]),palmLandmarks=tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input2,config3){let inputHeight=input2.shape[1],inputWidth=input2.shape[2],image3=tidy(()=>input2.resizeBilinear([config3.hand.inputSize,config3.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image3,config3);image3.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config3.hand.inputSize,inputHeight/config3.hand.inputSize]))}return hands}};exports.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports=>{var PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot4(boxCenter,inverseRotationMatrix[0]),dot4(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image3,config3){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config3.hand.skipFrames||!config3.hand.landmarks||!config3.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image3,config3),this.skipped=0),config3.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config3.hand.maxHands||!config3.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config3.hand.minConfidence){let keypointsReshaped=reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords2=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords2);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords2,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports=>{exports.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports=>{var handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors2=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input2,config3){let predictions=await this.handPipeline.estimateHands(input2,config3);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input2.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input2.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports.HandPose=HandPose;async function load3(config3){let[handDetectorModel,handPoseModel]=await Promise.all([config3.hand.enabled?loadGraphModel(config3.hand.detector.modelPath,{fromTFHub:config3.hand.detector.modelPath.includes("tfhub.dev")}):null,config3.hand.landmarks?loadGraphModel(config3.hand.skeleton.modelPath,{fromTFHub:config3.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config3.hand.inputSize,anchors2.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config3.hand.inputSize),handPose=new HandPose(handPipeline);return config3.hand.enabled&&log(`load model: ${config3.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config3.hand.landmarks&&log(`load model: ${config3.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports.load=load3});var require_gesture=__commonJS(exports=>{exports.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image3){if(_resize(image3.width,image3.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image3),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` +var Human=(()=>{var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export=(target,all4)=>{__markAsModule(target);for(var name in all4)__defProp(target,name,{get:all4[name],enumerable:!0})},__exportStar=(target,module,desc)=>{if(__markAsModule(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames(module))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc(module,key))||desc.enumerable});return target},__toModule=module=>module&&module.__esModule?module:__exportStar(__defProp(module!=null?__create(__getProtoOf(module)):{},"default",{value:module,enumerable:!0}),module);var require_blazeface=__commonJS(exports=>{var NUM_LANDMARKS=6;function generateAnchors(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:slice(startEndTensor,[0,0],[-1,2]),endPoint:slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=mul(box.startPoint,factors),ends=mul(box.endPoint,factors),newCoordinates=concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors,inputSize){let boxStarts=slice(boxOutputs,[0,1],[-1,2]),centers=add2(boxStarts,anchors),boxSizes=slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=div(boxSizes,inputSize),centersNormalized=div(centers,inputSize),halfBoxSize=div(boxSizesNormalized,2),starts=sub(centersNormalized,halfBoxSize),ends=add2(centersNormalized,halfBoxSize),startNormalized=mul(starts,inputSize),endNormalized=mul(ends,inputSize);return concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model2,config2){this.blazeFaceModel=model2,this.width=config2.face.detector.inputSize,this.height=config2.face.detector.inputSize,this.anchorsData=generateAnchors(config2.face.detector.inputSize),this.anchors=tensor2d(this.anchorsData),this.inputSize=tensor1d([this.width,this.height]),this.config=config2,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=concat([sorted[0],sorted[2]],2),concat512=concat([sorted[1],sorted[3]],2);prediction=concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=slice(prediction,[0,0],[-1,1]),scoresOut=sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tidy(()=>slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input2){let{boxes,scaleFactor}=await this.getBoundingBoxes(input2),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load3(config2){let blazeface=await loadGraphModel(config2.face.detector.modelPath,{fromTFHub:config2.face.detector.modelPath.includes("tfhub.dev")}),model2=new BlazeFaceModel(blazeface,config2);return log(`load model: ${config2.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model2}exports.load=load3;exports.BlazeFaceModel=BlazeFaceModel;exports.disposeBox=disposeBox});var require_box=__commonJS(exports=>{function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}exports.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports.squarifyBox=squarifyBox2});var require_util=__commonJS(exports=>{exports.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot5(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports.TRI468=TRI468;exports.TRI68=TRI68;exports.TRI33=TRI33;exports.TRI7=TRI7;exports.UV468=UV468;exports.UV68=VTX68.map(x=>UV468[x]);exports.UV33=VTX33.map(x=>UV468[x]);exports.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports=>{var bounding=__toModule(require_box()),util=__toModule(require_util()),coords2=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords2.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords2.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input2,config2){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config2.face.detector.skipFrames||!config2.face.mesh.enabled||!config2.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input2),this.skipped=0),config2.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config2.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config2.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config2.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input2.shape[2],faceCenter[1]/input2.shape[1]],rotatedImage=image.rotateWithOffset(input2,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input2.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config2.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports.Pipeline=Pipeline});var require_facemesh=__commonJS(exports=>{var blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords2=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config2){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config2),this.config=config2}async estimateFaces(input2,config2){let predictions=await this.facePipeline.predict(input2,config2),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords2.MESH_ANNOTATIONS))annotations[key]=coords2.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config2.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input2.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input2.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load3(config2){faceModels=await Promise.all([!faceModels[0]&&config2.face.enabled?blazeface.load(config2):null,!faceModels[1]&&config2.face.mesh.enabled?loadGraphModel(config2.face.mesh.modelPath,{fromTFHub:config2.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config2.face.iris.enabled?loadGraphModel(config2.face.iris.modelPath,{fromTFHub:config2.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config2);return config2.face.mesh.enabled&&log(`load model: ${config2.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config2.face.iris.enabled&&log(`load model: ${config2.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports.load=load3;exports.MediaPipeFaceMesh=MediaPipeFaceMesh;exports.triangulation=coords2.TRI468});var require_profile=__commonJS(exports=>{var profileData={};function profile3(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time2=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time2,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports.run=profile3});var require_age=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load3(config2){return models2.age||(models2.age=await loadGraphModel(config2.face.age.modelPath),log(`load model: ${config2.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models2.age}async function predict3(image3,config2){return models2.age?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.face.age.inputSize,config2.face.age.inputSize],!1),enhance=mul(resize,[255]);dispose(resize);let ageT,obj={};if(!config2.profile)config2.face.age.enabled&&(ageT=await models2.age.predict(enhance));else{let profileAge=config2.face.age.enabled?await profile(()=>models2.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile3.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_gender=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load3(config2){return models2.gender||(models2.gender=await loadGraphModel(config2.face.gender.modelPath),alternative=models2.gender.inputs[0].shape[3]===1,log(`load model: ${config2.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models2.gender}async function predict3(image3,config2){return models2.gender?skipped{let resize=image.resizeBilinear(image3,[config2.face.gender.inputSize,config2.face.gender.inputSize],!1),enhance;alternative?enhance=tidy(()=>{let[red,green,blue]=split(resize,3,3),redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);return addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=mul(resize,[255]),dispose(resize);let genderT,obj={};if(!config2.profile)config2.face.gender.enabled&&(genderT=await models2.gender.predict(enhance));else{let profileGender=config2.face.gender.enabled?await profile(()=>models2.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile3.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_emotion=__commonJS(exports=>{var profile3=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models2={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale2=1;async function load3(config2){return models2.emotion||(models2.emotion=await loadGraphModel(config2.face.emotion.modelPath),log(`load model: ${config2.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models2.emotion}async function predict3(image3,config2){return models2.emotion?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.face.emotion.inputSize,config2.face.emotion.inputSize],!1),[red,green,blue]=split(resize,3,3);resize.dispose();let redNorm=mul(red,rgb[0]),greenNorm=mul(green,rgb[1]),blueNorm=mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config2.face.emotion.enabled){let data2;if(config2.profile){let profileData=await profile(()=>models2.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile3.run("emotion",profileData)}else{let emotionT=await models2.emotion.predict(normalize);data2=emotionT.dataSync(),dispose(emotionT)}for(let i=0;iconfig2.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale2*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports.predict=predict3;exports.load=load3});var require_embedding=__commonJS(exports=>{var profile3=__toModule(require_profile()),models2={};async function load3(config2){return models2.embedding||(models2.embedding=await loadGraphModel(config2.face.embedding.modelPath),log(`load model: ${config2.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models2.embedding}function simmilarity2(embedding1,embedding22){if((embedding1==null?void 0:embedding1.length)!==(embedding22==null?void 0:embedding22.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding22[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict3(image3,config2){return models2.embedding?new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.face.embedding.inputSize,config2.face.embedding.inputSize],!1),data2=[];if(config2.face.embedding.enabled)if(config2.profile){let profileData=await profile(()=>models2.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile3.run("emotion",profileData)}else{let embeddingT=await models2.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports.predict=predict3;exports.simmilarity=simmilarity2;exports.load=load3});var require_modelBase=__commonJS(exports=>{var imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model2){this.model=model2}predict(input2,config2){return tidy(()=>{let asBatch=(config2.body.modelType==="ResNet"?input2.toFloat().add(imageNetMean):input2.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config2.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports.BaseModel=BaseModel});var require_heapSort=__commonJS(exports=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max6=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max6}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports.NUM_KEYPOINTS=exports.partNames.length;exports.partIds=exports.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports.partIds[jointNameA],exports.partIds[jointNameB]]);exports.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax6?max6:a}exports.clamp=clamp2;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports.addVectors=addVectors;function clampVector(a,min6,max6){return{y:clamp2(a.y,min6,max6),x:clamp2(a.x,min6,max6)}}exports.clampVector=clampVector});var require_decoders=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports.getOffsetPoints=getOffsetPoints;function mod4(a,b){return tidy(()=>{let floored=a.div(scalar(b,"int32"));return a.sub(floored.mul(scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tidy(()=>{let coords2=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords2.div(scalar(width,"int32")).expandDims(1),xCoords=mod4(coords2,width).expandDims(1);return concat([yCoords,xCoords],1)})}exports.argmax2d=argmax2d});var require_decodePose=__commonJS(exports=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config2.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2){let poses=[],queue=buildParts.buildPartWithScoreQueue(config2.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config2.body.nmsRadius^2;for(;poses.lengthconfig2.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor2=>tensor2.buffer()))}exports.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports.scalePose=scalePose;function resizeTo(image3,[targetH,targetW]){let input2=image3.squeeze(0),resized=input2.resizeBilinear([targetH,targetW]);return input2.dispose(),resized}exports.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports=>{var modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input2,res,config2){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2),scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}async function estimateSingle(input2,res,config2){return new Promise(async resolve=>{let height=input2.shape[1],width=input2.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config2)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model2){this.baseModel=model2}async estimatePoses(input2,config2){let resized=util.resizeTo(input2,[config2.body.inputSize,config2.body.inputSize]),res=this.baseModel.predict(resized,config2),poses=config2.body.maxDetections<2?await estimateSingle(input2,res,config2):await estimateMultiple(input2,res,config2);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports.PoseNet=PoseNet;async function load3(config2){let model2=await loadGraphModel(config2.body.modelPath),mobilenet=new modelBase.BaseModel(model2);return log(`load model: ${config2.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports.load=load3});var require_posenet=__commonJS(exports=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports.load=modelPoseNet.load;exports.PoseNet=modelPoseNet.PoseNet;exports.partChannels=keypoints.partChannels;exports.partIds=keypoints.partIds;exports.partNames=keypoints.partNames;exports.poseChain=keypoints.poseChain;exports.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports.getBoundingBox=util.getBoundingBox;exports.getBoundingBoxPoints=util.getBoundingBoxPoints;exports.scaleAndFlipPoses=util.scaleAndFlipPoses;exports.scalePose=util.scalePose});var require_handdetector=__commonJS(exports=>{var HandDetector=class{constructor(model2,inputSize,anchorsAnnotated){this.model=model2,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tensor2d(this.anchors),this.inputSizeTensor=tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tidy(()=>{let boxOffsets=slice(boxes,[0,0],[-1,2]),boxSizes=slice(boxes,[0,2],[-1,2]),boxCenterPoints=add2(div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=div(boxSizes,this.doubleInputSizeTensor),startPoints=mul(sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=mul(add2(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tidy(()=>{let landmarks=add2(div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return mul(landmarks,this.inputSizeTensor)})}async getBoxes(input2,config2){let batched=this.model.predict(input2),predictions=batched.squeeze();batched.dispose();let scoresT=tidy(()=>sigmoid(slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await image.nonMaxSuppressionAsync(boxes,scores,config2.hand.maxHands,config2.hand.iouThreshold,config2.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config2.hand.minConfidence){let matchingBox=slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=slice(predictions,[index,5],[1,14]),palmLandmarks=tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input2,config2){let inputHeight=input2.shape[1],inputWidth=input2.shape[2],image3=tidy(()=>input2.resizeBilinear([config2.hand.inputSize,config2.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image3,config2);image3.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config2.hand.inputSize,inputHeight/config2.hand.inputSize]))}return hands}};exports.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports=>{var PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot4(boxCenter,inverseRotationMatrix[0]),dot4(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image3,config2){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config2.hand.skipFrames||!config2.hand.landmarks||!config2.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image3,config2),this.skipped=0),config2.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config2.hand.maxHands||!config2.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config2.hand.minConfidence){let keypointsReshaped=reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords2=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords2);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords2,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports=>{exports.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports=>{var handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input2,config2){let predictions=await this.handPipeline.estimateHands(input2,config2);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input2.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input2.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports.HandPose=HandPose;async function load3(config2){let[handDetectorModel,handPoseModel]=await Promise.all([config2.hand.enabled?loadGraphModel(config2.hand.detector.modelPath,{fromTFHub:config2.hand.detector.modelPath.includes("tfhub.dev")}):null,config2.hand.landmarks?loadGraphModel(config2.hand.skeleton.modelPath,{fromTFHub:config2.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config2.hand.inputSize,anchors.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config2.hand.inputSize),handPose=new HandPose(handPipeline);return config2.hand.enabled&&log(`load model: ${config2.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config2.hand.landmarks&&log(`load model: ${config2.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports.load=load3});var require_gesture=__commonJS(exports=>{exports.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image3){if(_resize(image3.width,image3.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image3),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` `),SHADER.FRAGMENT_IDENTITY=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","void main(void) {","gl_FragColor = texture2D(texture, vUv);","}"].join(` `);let _filter={};_filter.colorMatrix=function(matrix){let m=new Float32Array(matrix);m[4]/=255,m[9]/=255,m[14]/=255,m[19]/=255;let shader=m[18]===1&&m[3]===0&&m[8]===0&&m[13]===0&&m[15]===0&&m[16]===0&&m[17]===0&&m[19]===0?_filter.colorMatrix.SHADER.WITHOUT_ALPHA:_filter.colorMatrix.SHADER.WITH_ALPHA,program=_compileShader(shader);gl.uniform1fv(program.uniform.m,m),_draw()},_filter.colorMatrix.SHADER={},_filter.colorMatrix.SHADER.WITH_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];","gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];","}"].join(` `),_filter.colorMatrix.SHADER.WITHOUT_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];","gl_FragColor.a = c.a;","}"].join(` `),_filter.brightness=function(brightness){let b=(brightness||0)+1;_filter.colorMatrix([b,0,0,0,0,0,b,0,0,0,0,0,b,0,0,0,0,0,1,0])},_filter.saturation=function(amount){let x=(amount||0)*2/3+1,y=(x-1)*-.5;_filter.colorMatrix([x,y,y,0,0,y,x,y,0,0,y,y,x,0,0,0,0,0,1,0])},_filter.desaturate=function(){_filter.saturation(-1)},_filter.contrast=function(amount){let v=(amount||0)+1,o=-128*(v-1);_filter.colorMatrix([v,0,0,0,o,0,v,0,0,o,0,0,v,0,o,0,0,0,1,0])},_filter.negative=function(){_filter.contrast(-2)},_filter.hue=function(rotation){rotation=(rotation||0)/180*Math.PI;let cos4=Math.cos(rotation),sin4=Math.sin(rotation),lumR=.213,lumG=.715,lumB=.072;_filter.colorMatrix([lumR+cos4*(1-lumR)+sin4*-lumR,lumG+cos4*-lumG+sin4*-lumG,lumB+cos4*-lumB+sin4*(1-lumB),0,0,lumR+cos4*-lumR+sin4*.143,lumG+cos4*(1-lumG)+sin4*.14,lumB+cos4*-lumB+sin4*-.283,0,0,lumR+cos4*-lumR+sin4*-(1-lumR),lumG+cos4*-lumG+sin4*lumG,lumB+cos4*(1-lumB)+sin4*lumB,0,0,0,0,0,1,0])},_filter.desaturateLuminance=function(){_filter.colorMatrix([.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,0,0,0,1,0])},_filter.sepia=function(){_filter.colorMatrix([.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0])},_filter.brownie=function(){_filter.colorMatrix([.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0])},_filter.vintagePinhole=function(){_filter.colorMatrix([.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0])},_filter.kodachrome=function(){_filter.colorMatrix([1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0])},_filter.technicolor=function(){_filter.colorMatrix([1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0])},_filter.polaroid=function(){_filter.colorMatrix([1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0])},_filter.shiftToBGR=function(){_filter.colorMatrix([0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0])},_filter.convolution=function(matrix){let m=new Float32Array(matrix),pixelSizeX=1/_width,pixelSizeY=1/_height,program=_compileShader(_filter.convolution.SHADER);gl.uniform1fv(program.uniform.m,m),gl.uniform2f(program.uniform.px,pixelSizeX,pixelSizeY),_draw()},_filter.convolution.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","uniform float m[9];","void main(void) {","vec4 c11 = texture2D(texture, vUv - px);","vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));","vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));","vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );","vec4 c22 = texture2D(texture, vUv);","vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );","vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );","vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );","vec4 c33 = texture2D(texture, vUv + px );","gl_FragColor = ","c11 * m[0] + c12 * m[1] + c22 * m[2] +","c21 * m[3] + c22 * m[4] + c23 * m[5] +","c31 * m[6] + c32 * m[7] + c33 * m[8];","gl_FragColor.a = c22.a;","}"].join(` `),_filter.detectEdges=function(){_filter.convolution.call(this,[0,1,0,1,-4,1,0,1,0])},_filter.sobelX=function(){_filter.convolution.call(this,[-1,0,1,-2,0,2,-1,0,1])},_filter.sobelY=function(){_filter.convolution.call(this,[-1,-2,-1,0,0,0,1,2,1])},_filter.sharpen=function(amount){let a=amount||1;_filter.convolution.call(this,[0,-1*a,0,-1*a,1+4*a,-1*a,0,-1*a,0])},_filter.emboss=function(size){let s=size||1;_filter.convolution.call(this,[-2*s,-1*s,0,-1*s,1,1*s,0,1*s,2*s])},_filter.blur=function(size){let blurSizeX=size/7/_width,blurSizeY=size/7/_height,program=_compileShader(_filter.blur.SHADER);gl.uniform2f(program.uniform.px,0,blurSizeY),_draw(DRAW.INTERMEDIATE),gl.uniform2f(program.uniform.px,blurSizeX,0),_draw()},_filter.blur.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","void main(void) {","gl_FragColor = vec4(0.0);","gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;","gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv )*0.159576912161;","gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;","}"].join(` `),_filter.pixelate=function(size){let blurSizeX=size/_width,blurSizeY=size/_height,program=_compileShader(_filter.pixelate.SHADER);gl.uniform2f(program.uniform.size,blurSizeX,blurSizeY),_draw()},_filter.pixelate.SHADER=["precision highp float;","varying vec2 vUv;","uniform vec2 size;","uniform sampler2D texture;","vec2 pixelate(vec2 coord, vec2 size) {","return floor( coord / size ) * size;","}","void main(void) {","gl_FragColor = vec4(0.0);","vec2 coord = pixelate(vUv, size);","gl_FragColor += texture2D(texture, coord);","}"].join(` -`)};exports.Canvas=WebGLImageFilter});var require_image=__commonJS(exports=>{var fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input2,config3){let tensor2;if(input2 instanceof Tensor)tensor2=clone(input2);else{let originalWidth=input2.naturalWidth||input2.videoWidth||input2.width||input2.shape&&input2.shape[1]>0,originalHeight=input2.naturalHeight||input2.videoHeight||input2.height||input2.shape&&input2.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config3.filter.width>0?targetWidth=config3.filter.width:config3.filter.height>0&&(targetWidth=originalWidth*(config3.filter.height/originalHeight)),config3.filter.height>0?targetHeight=config3.filter.height:config3.filter.width>0&&(targetHeight=originalHeight*(config3.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input2),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input2 instanceof ImageData?ctx.putImageData(input2,0,0):ctx.drawImage(input2,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config3.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config3.filter.brightness),config3.filter.contrast!==0&&this.fx.addFilter("contrast",config3.filter.contrast),config3.filter.sharpness!==0&&this.fx.addFilter("sharpen",config3.filter.sharpness),config3.filter.blur!==0&&this.fx.addFilter("blur",config3.filter.blur),config3.filter.saturation!==0&&this.fx.addFilter("saturation",config3.filter.saturation),config3.filter.hue!==0&&this.fx.addFilter("hue",config3.filter.hue),config3.filter.negative&&this.fx.addFilter("negative"),config3.filter.sepia&&this.fx.addFilter("sepia"),config3.filter.vintage&&this.fx.addFilter("brownie"),config3.filter.sepia&&this.fx.addFilter("sepia"),config3.filter.kodachrome&&this.fx.addFilter("kodachrome"),config3.filter.technicolor&&this.fx.addFilter("technicolor"),config3.filter.polaroid&&this.fx.addFilter("polaroid"),config3.filter.pixelate!==0&&this.fx.addFilter("pixelate",config3.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tensor3d(outCanvas.data,shape,"int32")}else if(config3.backend==="webgl"||outCanvas instanceof ImageData)pixels=browser_exports.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=browser_exports.fromPixels(data2)}let casted=pixels.toFloat();tensor2=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor:tensor2,canvas:config3.filter.return?outCanvas:null}}exports.process=process3});var human_exports={};__export(human_exports,{default:()=>Human});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tfjs_esm_exports={};__export(tfjs_esm_exports,{Abs:()=>Abs,Acos:()=>Acos,Acosh:()=>Acosh,AdadeltaOptimizer:()=>AdadeltaOptimizer,AdagradOptimizer:()=>AdagradOptimizer,AdamOptimizer:()=>AdamOptimizer,AdamaxOptimizer:()=>AdamaxOptimizer,Add:()=>Add,AddN:()=>AddN,All:()=>All,Any:()=>Any,ArgMax:()=>ArgMax,ArgMin:()=>ArgMin,Asin:()=>Asin,Asinh:()=>Asinh,Atan:()=>Atan,Atan2:()=>Atan2,Atanh:()=>Atanh,AvgPool:()=>AvgPool,AvgPool3D:()=>AvgPool3D,AvgPool3DGrad:()=>AvgPool3DGrad,AvgPoolGrad:()=>AvgPoolGrad,BackendWasm:()=>BackendWasm,BatchMatMul:()=>BatchMatMul,BatchToSpaceND:()=>BatchToSpaceND,Bincount:()=>Bincount,BroadcastTo:()=>BroadcastTo,Callback:()=>Callback,CallbackList:()=>CallbackList,Cast:()=>Cast,Ceil:()=>Ceil,ClipByValue:()=>ClipByValue,Complex:()=>Complex,ComplexAbs:()=>ComplexAbs,Concat:()=>Concat,Conv2D:()=>Conv2D,Conv2DBackpropFilter:()=>Conv2DBackpropFilter,Conv2DBackpropInput:()=>Conv2DBackpropInput,Conv3D:()=>Conv3D,Conv3DBackpropFilterV2:()=>Conv3DBackpropFilterV2,Conv3DBackpropInputV2:()=>Conv3DBackpropInputV2,Cos:()=>Cos,Cosh:()=>Cosh,CropAndResize:()=>CropAndResize,Cumsum:()=>Cumsum,CustomCallback:()=>CustomCallback,DataStorage:()=>DataStorage,DenseBincount:()=>DenseBincount,DepthToSpace:()=>DepthToSpace,DepthwiseConv2dNative:()=>DepthwiseConv2dNative,DepthwiseConv2dNativeBackpropFilter:()=>DepthwiseConv2dNativeBackpropFilter,DepthwiseConv2dNativeBackpropInput:()=>DepthwiseConv2dNativeBackpropInput,Diag:()=>Diag,Dilation2D:()=>Dilation2D,Dilation2DBackpropFilter:()=>Dilation2DBackpropFilter,Dilation2DBackpropInput:()=>Dilation2DBackpropInput,ENV:()=>ENV,EarlyStopping:()=>EarlyStopping,Elu:()=>Elu,EluGrad:()=>EluGrad,Environment:()=>Environment,Equal:()=>Equal,Erf:()=>Erf,Exp:()=>Exp,ExpandDims:()=>ExpandDims,Expm1:()=>Expm1,FFT:()=>FFT,Fill:()=>Fill,FlipLeftRight:()=>FlipLeftRight,Floor:()=>Floor,FloorDiv:()=>FloorDiv,FromPixels:()=>FromPixels,FusedBatchNorm:()=>FusedBatchNorm,FusedConv2D:()=>FusedConv2D,FusedDepthwiseConv2D:()=>FusedDepthwiseConv2D,GPGPUContext:()=>GPGPUContext,GatherNd:()=>GatherNd,GatherV2:()=>GatherV2,GraphModel:()=>GraphModel,Greater:()=>Greater,GreaterEqual:()=>GreaterEqual,History:()=>History,IFFT:()=>IFFT,Identity:()=>Identity,Imag:()=>Imag,InputSpec:()=>InputSpec,IsFinite:()=>IsFinite,IsInf:()=>IsInf,IsNan:()=>IsNan,KernelBackend:()=>KernelBackend,LRN:()=>LRN,LRNGrad:()=>LRNGrad,LayerVariable:()=>LayerVariable,LayersModel:()=>LayersModel,LeakyRelu:()=>LeakyRelu,Less:()=>Less,LessEqual:()=>LessEqual,LinSpace:()=>LinSpace,Log:()=>Log,Log1p:()=>Log1p,LogSoftmax:()=>LogSoftmax,LogicalAnd:()=>LogicalAnd,LogicalNot:()=>LogicalNot,LogicalOr:()=>LogicalOr,MathBackendCPU:()=>MathBackendCPU,MathBackendWebGL:()=>MathBackendWebGL,Max:()=>Max,MaxPool:()=>MaxPool,MaxPool3D:()=>MaxPool3D,MaxPool3DGrad:()=>MaxPool3DGrad,MaxPoolGrad:()=>MaxPoolGrad,MaxPoolWithArgmax:()=>MaxPoolWithArgmax,Maximum:()=>Maximum,Mean:()=>Mean,Min:()=>Min,Minimum:()=>Minimum,MirrorPad:()=>MirrorPad,Mod:()=>Mod,MomentumOptimizer:()=>MomentumOptimizer,Multinomial:()=>Multinomial,Multiply:()=>Multiply,Neg:()=>Neg,NonMaxSuppressionV3:()=>NonMaxSuppressionV3,NonMaxSuppressionV4:()=>NonMaxSuppressionV4,NonMaxSuppressionV5:()=>NonMaxSuppressionV5,NotEqual:()=>NotEqual,OP_SCOPE_SUFFIX:()=>OP_SCOPE_SUFFIX,OneHot:()=>OneHot,OnesLike:()=>OnesLike,Optimizer:()=>Optimizer,Pack:()=>Pack,PadV2:()=>PadV2,Pool:()=>Pool,Pow:()=>Pow,Prelu:()=>Prelu,Prod:()=>Prod,RMSPropOptimizer:()=>RMSPropOptimizer,RNN:()=>RNN,Range:()=>Range,Rank:()=>Rank,Real:()=>Real,RealDiv:()=>RealDiv,Reciprocal:()=>Reciprocal,Reduction:()=>Reduction,Relu:()=>Relu,Relu6:()=>Relu6,Reshape:()=>Reshape,ResizeBilinear:()=>ResizeBilinear,ResizeBilinearGrad:()=>ResizeBilinearGrad,ResizeNearestNeighbor:()=>ResizeNearestNeighbor,ResizeNearestNeighborGrad:()=>ResizeNearestNeighborGrad,Reverse:()=>Reverse,RotateWithOffset:()=>RotateWithOffset,Round:()=>Round,Rsqrt:()=>Rsqrt,SGDOptimizer:()=>SGDOptimizer,ScatterNd:()=>ScatterNd,Select:()=>Select,Selu:()=>Selu,Sequential:()=>Sequential,Sigmoid:()=>Sigmoid,Sign:()=>Sign,Sin:()=>Sin,Sinh:()=>Sinh,Slice:()=>Slice,Softmax:()=>Softmax,Softplus:()=>Softplus,SpaceToBatchND:()=>SpaceToBatchND,SparseToDense:()=>SparseToDense,SplitV:()=>SplitV,Sqrt:()=>Sqrt,Square:()=>Square,SquaredDifference:()=>SquaredDifference,Step:()=>Step,StridedSlice:()=>StridedSlice,Sub:()=>Sub,Sum:()=>Sum,SymbolicTensor:()=>SymbolicTensor,Tan:()=>Tan,Tanh:()=>Tanh,Tensor:()=>Tensor,TensorBuffer:()=>TensorBuffer,Tile:()=>Tile,TopK:()=>TopK,Transpose:()=>Transpose,Unique:()=>Unique,Unpack:()=>Unpack,UnsortedSegmentSum:()=>UnsortedSegmentSum,Variable:()=>Variable,ZerosLike:()=>ZerosLike,_FusedMatMul:()=>_FusedMatMul,abs:()=>abs,acos:()=>acos,acosh:()=>acosh,add:()=>add2,addN:()=>addN,addStrict:()=>addStrict,all:()=>all,any:()=>any,argMax:()=>argMax,argMin:()=>argMin,asin:()=>asin,asinh:()=>asinh,atan:()=>atan,atan2:()=>atan2,atanh:()=>atanh,avgPool:()=>avgPool,avgPool3d:()=>avgPool3d,backend:()=>backend,backend_util:()=>backend_util_exports,basicLSTMCell:()=>basicLSTMCell,batchNorm:()=>batchNorm,batchNorm2d:()=>batchNorm2d,batchNorm3d:()=>batchNorm3d,batchNorm4d:()=>batchNorm4d,batchToSpaceND:()=>batchToSpaceND,bincount:()=>bincount,booleanMaskAsync:()=>booleanMaskAsync,broadcastTo:()=>broadcastTo,browser:()=>browser_exports,buffer:()=>buffer,callbacks:()=>callbacks,cast:()=>cast,ceil:()=>ceil,clipByValue:()=>clipByValue,clone:()=>clone,complex:()=>complex,concat:()=>concat,concat1d:()=>concat1d,concat2d:()=>concat2d,concat3d:()=>concat3d,concat4d:()=>concat4d,constraints:()=>exports_constraints_exports,conv1d:()=>conv1d,conv2d:()=>conv2d,conv2dTranspose:()=>conv2dTranspose,conv3d:()=>conv3d,conv3dTranspose:()=>conv3dTranspose,copyRegisteredKernels:()=>copyRegisteredKernels,cos:()=>cos,cosh:()=>cosh,cosineWindow:()=>cosineWindow,cumsum:()=>cumsum,customGrad:()=>customGrad,data:()=>dist_exports,denseBincount:()=>denseBincount,deprecationWarn:()=>deprecationWarn,depthToSpace:()=>depthToSpace,depthwiseConv2d:()=>depthwiseConv2d,deregisterOp:()=>deregisterOp,device_util:()=>device_util_exports,diag:()=>diag,dilation2d:()=>dilation2d,disableDeprecationWarnings:()=>disableDeprecationWarnings,dispose:()=>dispose,disposeVariables:()=>disposeVariables,div:()=>div,divNoNan:()=>divNoNan,divStrict:()=>divStrict,dot:()=>dot,dropout:()=>dropout,elu:()=>elu,enableDebugMode:()=>enableDebugMode,enableProdMode:()=>enableProdMode,enclosingPowerOfTwo:()=>enclosingPowerOfTwo,engine:()=>engine,env:()=>env,equal:()=>equal,equalStrict:()=>equalStrict,erf:()=>erf,exp:()=>exp,expandDims:()=>expandDims,expm1:()=>expm1,eye:()=>eye,fft:()=>fft,fill:()=>fill,findBackend:()=>findBackend,findBackendFactory:()=>findBackendFactory,floor:()=>floor,floorDiv:()=>floorDiv,forceHalfFloat:()=>forceHalfFloat,fused:()=>fused_ops_exports,gather:()=>gather,gatherND:()=>gatherND,gather_util:()=>gather_nd_util_exports,getBackend:()=>getBackend,getGradient:()=>getGradient,getKernel:()=>getKernel,getKernelsForBackend:()=>getKernelsForBackend,gpgpu_util:()=>gpgpu_util_exports,grad:()=>grad,grads:()=>grads,greater:()=>greater,greaterEqual:()=>greaterEqual,greaterEqualStrict:()=>greaterEqualStrict,greaterStrict:()=>greaterStrict,ifft:()=>ifft,imag:()=>imag,image:()=>image,inTopKAsync:()=>inTopKAsync,initializers:()=>exports_initializers_exports,input:()=>input,io:()=>io_exports,irfft:()=>irfft,isFinite:()=>isFinite2,isInf:()=>isInf,isNaN:()=>isNaN2,keep:()=>keep,kernel_impls:()=>kernel_impls_exports,layers:()=>exports_layers_exports,leakyRelu:()=>leakyRelu,less:()=>less,lessEqual:()=>lessEqual,lessEqualStrict:()=>lessEqualStrict,lessStrict:()=>lessStrict,linalg:()=>linalg,linspace:()=>linspace,loadGraphModel:()=>loadGraphModel,loadLayersModel:()=>loadLayersModel,localResponseNormalization:()=>localResponseNormalization,log:()=>log2,log1p:()=>log1p,logSigmoid:()=>logSigmoid,logSoftmax:()=>logSoftmax,logSumExp:()=>logSumExp,logicalAnd:()=>logicalAnd,logicalNot:()=>logicalNot,logicalOr:()=>logicalOr,logicalXor:()=>logicalXor,losses:()=>losses,matMul:()=>matMul,math:()=>math_exports,max:()=>max,maxPool:()=>maxPool,maxPool3d:()=>maxPool3d,maxPoolWithArgmax:()=>maxPoolWithArgmax,maximum:()=>maximum,maximumStrict:()=>maximumStrict,mean:()=>mean,memory:()=>memory,metrics:()=>exports_metrics_exports,min:()=>min,minimum:()=>minimum,minimumStrict:()=>minimumStrict,mirrorPad:()=>mirrorPad,mod:()=>mod,modStrict:()=>modStrict,model:()=>model,models:()=>exports_models_exports,moments:()=>moments,movingAverage:()=>movingAverage,mul:()=>mul,mulStrict:()=>mulStrict,multiRNNCell:()=>multiRNNCell,multinomial:()=>multinomial,neg:()=>neg,nextFrame:()=>nextFrame,norm:()=>norm,notEqual:()=>notEqual,notEqualStrict:()=>notEqualStrict,oneHot:()=>oneHot,ones:()=>ones2,onesLike:()=>onesLike,op:()=>op,outerProduct:()=>outerProduct,pad:()=>pad,pad1d:()=>pad1d,pad2d:()=>pad2d,pad3d:()=>pad3d,pad4d:()=>pad4d,pool:()=>pool,pow:()=>pow,powStrict:()=>powStrict,prelu:()=>prelu,print:()=>print2,prod:()=>prod,profile:()=>profile,rand:()=>rand,randomGamma:()=>randomGamma,randomNormal:()=>randomNormal,randomUniform:()=>randomUniform,range:()=>range,ready:()=>ready,real:()=>real,reciprocal:()=>reciprocal,registerBackend:()=>registerBackend,registerCallbackConstructor:()=>registerCallbackConstructor,registerGradient:()=>registerGradient,registerKernel:()=>registerKernel,registerOp:()=>registerOp,regularizers:()=>exports_regularizers_exports,relu:()=>relu,relu6:()=>relu6,removeBackend:()=>removeBackend,reshape:()=>reshape,reverse:()=>reverse,reverse1d:()=>reverse1d,reverse2d:()=>reverse2d,reverse3d:()=>reverse3d,reverse4d:()=>reverse4d,rfft:()=>rfft,round:()=>round2,rsqrt:()=>rsqrt,scalar:()=>scalar,scatterND:()=>scatterND,scatter_util:()=>scatter_nd_util_exports,selu:()=>selu,separableConv2d:()=>separableConv2d,sequential:()=>sequential,serialization:()=>serialization_exports,setBackend:()=>setBackend,setPlatform:()=>setPlatform,setWasmPath:()=>setWasmPath,setWasmPaths:()=>setWasmPaths,setWebGLContext:()=>setWebGLContext,setdiff1dAsync:()=>setdiff1dAsync,shared:()=>shared_exports,sigmoid:()=>sigmoid,sign:()=>sign,signal:()=>signal,sin:()=>sin,sinh:()=>sinh,slice:()=>slice,slice1d:()=>slice1d,slice2d:()=>slice2d,slice3d:()=>slice3d,slice4d:()=>slice4d,slice_util:()=>slice_util_exports,softmax:()=>softmax,softplus:()=>softplus,spaceToBatchND:()=>spaceToBatchND,sparseToDense:()=>sparseToDense,spectral:()=>spectral,split:()=>split,sqrt:()=>sqrt,square:()=>square,squaredDifference:()=>squaredDifference,squaredDifferenceStrict:()=>squaredDifferenceStrict,squeeze:()=>squeeze,stack:()=>stack,step:()=>step,stridedSlice:()=>stridedSlice,sub:()=>sub,subStrict:()=>subStrict,sum:()=>sum2,sumOutType:()=>sumOutType,tan:()=>tan,tanh:()=>tanh2,tensor:()=>tensor,tensor1d:()=>tensor1d,tensor2d:()=>tensor2d,tensor3d:()=>tensor3d,tensor4d:()=>tensor4d,tensor5d:()=>tensor5d,tensor6d:()=>tensor6d,tensor_util:()=>tensor_util_exports,test_util:()=>test_util_exports,tidy:()=>tidy,tile:()=>tile,time:()=>time,topk:()=>topk,train:()=>train,transpose:()=>transpose,truncatedNormal:()=>truncatedNormal,unique:()=>unique,unregisterGradient:()=>unregisterGradient,unregisterKernel:()=>unregisterKernel,unsortedSegmentSum:()=>unsortedSegmentSum,unstack:()=>unstack,upcastType:()=>upcastType,util:()=>util_exports,valueAndGrad:()=>valueAndGrad,valueAndGrads:()=>valueAndGrads,variable:()=>variable,variableGrads:()=>variableGrads,version:()=>version13,version_converter:()=>version11,version_core:()=>version6,version_cpu:()=>version7,version_layers:()=>version10,version_wasm:()=>version9,version_webgl:()=>version8,webgl:()=>webgl,webgl_util:()=>webgl_util_exports,where:()=>where,whereAsync:()=>whereAsync,zeros:()=>zeros,zerosLike:()=>zerosLike});var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__commonJS2=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export2=(target,all4)=>{__markAsModule2(target);for(var name in all4)__defProp2(target,name,{get:all4[name],enumerable:!0})},__exportStar2=(target,module,desc)=>{if(__markAsModule2(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames2(module))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc2(module,key))||desc.enumerable});return target},__toModule2=module=>module&&module.__esModule?module:__exportStar2(__defProp2(module!=null?__create2(__getProtoOf2(module)):{},"default",{value:module,enumerable:!0}),module),require_browser=__commonJS2(()=>{}),require_alea=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor128=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift7=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor4096=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_crypto=__commonJS2(()=>{}),require_seedrandom=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea(),xor128=require_xor128(),xorwow=require_xorwow(),xorshift7=require_xorshift7(),xor4096=require_xor4096(),tychei=require_tychei(),sr=require_seedrandom();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_alea2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1282=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift72=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40962=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom3=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea2(),xor128=require_xor1282(),xorwow=require_xorwow2(),xorshift7=require_xorshift72(),xor4096=require_xor40962(),tychei=require_tychei2(),sr=require_seedrandom3();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_path=__commonJS2(()=>{}),require_worker_threads=__commonJS2(()=>{}),require_perf_hooks=__commonJS2(()=>{}),require_tfjs_backend_wasm_threaded_simd=__commonJS2((exports,module)=>{var WasmBackendModuleThreadedSimd=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModuleThreadedSimd2){WasmBackendModuleThreadedSimd2=WasmBackendModuleThreadedSimd2||{};function GROWABLE_HEAP_I8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP8}function GROWABLE_HEAP_U8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU8}function GROWABLE_HEAP_I32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP32}function GROWABLE_HEAP_U32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU32}function GROWABLE_HEAP_F64(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd2!="undefined"?WasmBackendModuleThreadedSimd2:{},_scriptDir2=void 0,moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module.ENVIRONMENT_IS_PTHREAD||!1;ENVIRONMENT_IS_PTHREAD&&(buffer2=Module.buffer,DYNAMIC_BASE=Module.DYNAMIC_BASE,DYNAMICTOP_PTR=Module.DYNAMICTOP_PTR);var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;if(ENVIRONMENT_IS_NODE){ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status){process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require_worker_threads()}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}Worker=nodeWorkerThreads.Worker}else ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status){quit(status)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir2&&(scriptDirectory=_scriptDir2),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",ENVIRONMENT_IS_NODE?(read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret}):(read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)}),setWindowTitle=function(title){document.title=title});ENVIRONMENT_IS_NODE&&typeof performance=="undefined"&&(performance=require_perf_hooks().performance);var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var Atomics_load=Atomics.load,Atomics_store=Atomics.store,Atomics_compareExchange=Atomics.compareExchange,wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:169,maximum:169+0,element:"anyfunc"}),wasmModule,threadInfoStruct=0,selfThreadId=0,ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str){var ret2=0;if(str!=null&&str!==0){var len=(str.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224?u0=(u0&15)<<12|u1<<6|u2:u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63,u0<65536)str+=String.fromCharCode(u0);else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){for(var len=0,i=0;i=55296&&u<=57343&&(u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023),u<=127?++len:u<=2047?len+=2:u<=65535?len+=3:len+=4}return len}function writeArrayToMemory(array2,buffer3){GROWABLE_HEAP_I8().set(array2,buffer3)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){return x%multiple>0&&(x+=multiple-x%multiple),x}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656,INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;if(ENVIRONMENT_IS_PTHREAD)wasmMemory=Module.wasmMemory,buffer2=Module.buffer;else if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else if(wasmMemory=new WebAssembly.Memory({initial:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,maximum:2147483648/WASM_PAGE_SIZE,shared:!0}),!(wasmMemory.buffer instanceof SharedArrayBuffer))throw err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ENVIRONMENT_IS_NODE&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");wasmMemory&&(buffer2=wasmMemory.buffer),INITIAL_INITIAL_MEMORY=buffer2.byteLength,updateGlobalBufferAndViews(buffer2),ENVIRONMENT_IS_PTHREAD||(GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE);function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1;ENVIRONMENT_IS_PTHREAD&&(runtimeInitialized=!0);function preRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){ENVIRONMENT_IS_PTHREAD||callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){assert3(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker"),runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),ENVIRONMENT_IS_PTHREAD&&console.error("Pthread aborting at "+new Error().stack),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm-threaded-simd.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={a:asmLibraryArg};function receiveInstance(instance,module2){var exports3=instance.exports;if(Module.asm=exports3,wasmModule=module2,!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){--numWorkersToLoad||removeRunDependency("wasm-instantiate")})})}}ENVIRONMENT_IS_PTHREAD||addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance,output.module)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}ENVIRONMENT_IS_PTHREAD||__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0,__pthread_is_main_runtime_thread=0,__pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0,isMainBrowserThread=isMainBrowserThread|0,isMainRuntimeThread=isMainRuntimeThread|0,__pthread_ptr=pthreadPtr,__pthread_is_main_browser_thread=isMainBrowserThread,__pthread_is_main_runtime_thread=isMainRuntimeThread}Module.__register_pthread_ptr=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},__main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count2){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0||count2<0)return-28;if(count2==0)return 0;count2>=2147483647&&(count2=Infinity);var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2),mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress&&(--count2,mainThreadWoken=1,count2<=0))return 1}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count2);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module._emscripten_futex_wake=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _kill_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate(),PThread.freeThreadData(pthread),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1),pthread.worker.pthread=void 0}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({cmd:"cancel"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1),_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){for(var pthreadPoolSize=8,i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;for(var tlsMemory=13056,i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){for(;PThread.exitHandlers.length>0;)PThread.exitHandlers.pop()();PThread.exitHandlers=null}ENVIRONMENT_IS_PTHREAD&&threadInfoStruct&&___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();tb&&(Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode),Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0),PThread.runExitHandlers(),_emscripten_futex_wake(tb+0,2147483647),__register_pthread_ptr(0,0,0),threadInfoStruct=0,ENVIRONMENT_IS_PTHREAD&&postMessage({cmd:"exit"}))},threadCancel:function(){PThread.runExitHandlers(),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1),_emscripten_futex_wake(threadInfoStruct+0,2147483647),threadInfoStruct=selfThreadId=0,__register_pthread_ptr(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];pthread&&pthread.worker&&PThread.returnWorkerToPool(pthread.worker)}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0,_free(tlsMemory),_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0,pthread.allocatedOwnStack&&pthread.stackBase&&_free(pthread.stackBase),pthread.stackBase=0,pthread.worker&&(pthread.worker.pthread=null)}},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread],PThread.unusedWorkers.push(worker),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1),PThread.freeThreadData(worker.pthread),worker.pthread=void 0},receiveObjectTransfer:function(data2){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e.data,cmd=d.cmd;if(worker.pthread&&(PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct),d.targetThread&&d.targetThread!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];thread?thread.worker.postMessage(e.data,d.transferList):console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d.targetThread+", but that thread no longer exists!"),PThread.currentProxiedOperationCallerThread=void 0;return}if(cmd==="processQueuedMainThreadWork")_emscripten_main_thread_process_queued_calls();else if(cmd==="spawnThread")__spawn_thread(e.data);else if(cmd==="cleanupThread")__cleanup_thread(d.thread);else if(cmd==="killThread")__kill_thread(d.thread);else if(cmd==="cancelThread")__cancel_thread(d.thread);else if(cmd==="loaded")worker.loaded=!0,onFinishedLoading&&onFinishedLoading(worker),worker.runPthread&&(worker.runPthread(),delete worker.runPthread);else if(cmd==="print")out("Thread "+d.threadId+": "+d.text);else if(cmd==="printErr")err("Thread "+d.threadId+": "+d.text);else if(cmd==="alert")alert("Thread "+d.threadId+": "+d.text);else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);detached&&PThread.returnWorkerToPool(worker)}else cmd==="cancelDone"?PThread.returnWorkerToPool(worker):cmd==="objectTransfer"?PThread.receiveObjectTransfer(e.data):e.data.target==="setimmediate"?worker.postMessage(e.data):err("worker sent an unknown command "+cmd);PThread.currentProxiedOperationCallerThread=void 0},worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)},ENVIRONMENT_IS_NODE&&(worker.on("message",function(data2){worker.onmessage({data:data2})}),worker.on("error",function(data2){worker.onerror(data2)}),worker.on("exit",function(data2){console.log("worker exited - TODO: update the worker queue?")})),worker.postMessage({cmd:"load",urlOrBlob:Module.mainScriptUrlOrBlob||_scriptDir2,wasmMemory,wasmModule,DYNAMIC_BASE,DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("tfjs-backend-wasm-threaded-simd.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){return PThread.unusedWorkers.length==0&&(PThread.allocateUnusedWorker(),PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])),PThread.unusedWorkers.length>0?PThread.unusedWorkers.pop():null},busySpinWait:function(msecs){for(var t=performance.now()+msecs;performance.now()>2]=value,value}function _atexit(func2,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func2,arg);__ATEXIT__.unshift({func:func2,arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId)postMessage({cmd:"processQueuedMainThreadWork"});else if(ENVIRONMENT_IS_PTHREAD)postMessage({targetThread:targetThreadId,cmd:"processThreadQueue"});else{var pthread=PThread.pthreads[targetThreadId],worker=pthread&&pthread.worker;if(!worker)return;worker.postMessage({cmd:"processThreadQueue"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0,newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now(),tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);for(var ourWaitAddress=addr;addr==ourWaitAddress;){if(tNow=performance.now(),tNow>tEnd)return-73;_emscripten_main_thread_process_queued_calls(),addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator.hardwareConcurrency}function _emscripten_proxy_to_main_thread_js(index,sync){for(var numCallArgs=arguments.length-2,stack2=stackSave(),args=stackAlloc(numCallArgs*8),b=args>>3,i=0;i>3]),buf+=8):(buf=buf+3&~3,args.push(GROWABLE_HEAP_I32()[buf>>2]),buf+=4);return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;for(var b=args>>3,i=0;i>>16),updateGlobalBufferAndViews(wasmMemory.buffer),1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize)return!1;var PAGE_MULTIPLE=65536,maxHeapSize=2147483648;if(requestedSize>maxHeapSize)return!1;for(var minHeapSize=16777216,cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE)),replacement=emscripten_realloc_buffer(newSize);if(replacement)return!0}return!1}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i)JSEvents._removeHandler(i);JSEvents.eventHandlers=[],JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){JSEvents.removeEventListenersRegistered||(__ATEXIT__.push(JSEvents.removeAllEventListeners),JSEvents.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return!1;for(var i2 in arrA)if(arrA[i2]!=arrB[i2])return!1;return!0}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList))return}JSEvents.deferredCalls.push({targetFunction,precedence,argsList}),JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId,GROWABLE_HEAP_I32()[varargs+4>>2]=eventData,GROWABLE_HEAP_I32()[varargs+8>>2]=userData,_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs),stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){return target?target==window?"#window":target==screen?"#screen":target&&target.nodeName?target.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1,cString=_malloc(length);return stringToUTF8(jsString,cString,length),cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave(),varargs=stackAlloc(12),targetCanvasPtr=0;targetCanvas&&(targetCanvasPtr=stringToNewUTF8(targetCanvas)),GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr,GROWABLE_HEAP_I32()[varargs+4>>2]=width,GROWABLE_HEAP_I32()[varargs+8>>2]=height,_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs),stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"",_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):void 0);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr&&(GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width,GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height),canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){canvas.offscreenCanvas&&(canvas=canvas.offscreenCanvas);var autoResizeViewport=!1;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width,canvas.height=height,autoResizeViewport&&canvas.GLctxObject.GLctx.viewport(0,0,width,height)}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];return _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height),1}else return-4;return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(2,1,target,width,height):_emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);return canvas?_emscripten_set_canvas_element_size_calling_thread(target,width,height):_emscripten_set_canvas_element_size_main_thread(target,width,height)}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0,name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext)return ctx.vertexAttribDivisor=function(index,divisor){ext.vertexAttribDivisorANGLE(index,divisor)},ctx.drawArraysInstanced=function(mode,first,count2,primcount){ext.drawArraysInstancedANGLE(mode,first,count2,primcount)},ctx.drawElementsInstanced=function(mode,count2,type,indices,primcount){ext.drawElementsInstancedANGLE(mode,count2,type,indices,primcount)},1}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext)return ctx.createVertexArray=function(){return ext.createVertexArrayOES()},ctx.deleteVertexArray=function(vao){ext.deleteVertexArrayOES(vao)},ctx.bindVertexArray=function(vao){ext.bindVertexArrayOES(vao)},ctx.isVertexArray=function(vao){return ext.isVertexArrayOES(vao)},1}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext)return ctx.drawBuffers=function(n,bufs){ext.drawBuffersWEBGL(n,bufs)},1}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE),i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?void 0:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};return ctx.canvas&&(ctx.canvas.GLctxObject=context),GL.contexts[handle]=context,(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault)&&GL.initExtensions(context),handle},makeContextCurrent:function(contextHandle){return GL.currentContext=GL.contexts[contextHandle],Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx,!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){GL.currentContext===GL.contexts[contextHandle]&&(GL.currentContext=null),typeof JSEvents=="object"&&JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas),GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas&&(GL.contexts[contextHandle].GLctx.canvas.GLctxObject=void 0),_free(GL.contexts[contextHandle].handle),GL.contexts[contextHandle]=null},initExtensions:function(context){if(context||(context=GL.currentContext),!context.initExtensionsDone){context.initExtensionsDone=!0;var GLctx2=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx2),__webgl_enable_OES_vertex_array_object(GLctx2),__webgl_enable_WEBGL_draw_buffers(GLctx2),GLctx2.disjointTimerQueryExt=GLctx2.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],exts=GLctx2.getSupportedExtensions()||[];exts.forEach(function(ext){automaticallyEnabledExtensions.indexOf(ext)!=-1&&GLctx2.getExtension(ext)})}},populateUniformTable:function(program){for(var p2=GL.programs[program],ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},utable=ptable.uniforms,numUniforms=GLctx.getProgramParameter(p2,35718),i=0;i>2;contextAttributes.alpha=!!GROWABLE_HEAP_I32()[a+(0>>2)],contextAttributes.depth=!!GROWABLE_HEAP_I32()[a+(4>>2)],contextAttributes.stencil=!!GROWABLE_HEAP_I32()[a+(8>>2)],contextAttributes.antialias=!!GROWABLE_HEAP_I32()[a+(12>>2)],contextAttributes.premultipliedAlpha=!!GROWABLE_HEAP_I32()[a+(16>>2)],contextAttributes.preserveDrawingBuffer=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes.powerPreference=__emscripten_webgl_power_preferences[powerPreference],contextAttributes.failIfMajorPerformanceCaveat=!!GROWABLE_HEAP_I32()[a+(28>>2)],contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)],contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)],contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)],contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)],contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)],contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(contextAttributes.explicitSwapControl)return-1;var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a12){return _emscripten_webgl_do_create_context(a0,a12)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(3,1,fd):0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);for(var num=0,i=0;i>2],len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _pthread_cleanup_pop(execute2){var routine=PThread.exitHandlers.pop();execute2&&routine()}function _pthread_cleanup_push(routine,arg){PThread.exitHandlers===null&&(PThread.exitHandlers=[]),PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(worker.pthread!==void 0)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);for(var tlsMemory=_malloc(128*4),i=0;i<128;++i)GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0;var stackHigh=threadParams.stackBase+threadParams.stackSize,pthread=PThread.pthreads[threadParams.pthread_ptr]={worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr},tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct),Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42),Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc(),global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale),worker.pthread=pthread;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,threadInfoStruct:threadParams.pthread_ptr,selfThreadId:threadParams.pthread_ptr,parentThreadId:threadParams.parent_pthread_ptr,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now(),worker.postMessage(msg,threadParams.transferList)},worker.loaded&&(worker.runPthread(),delete worker.runPthread)}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread)return err("pthread_getschedparam called with a null thread pointer!"),ERRNO_CODES.ESRCH;var self2=GROWABLE_HEAP_I32()[thread+12>>2];if(self2!==thread)return err("pthread_getschedparam attempted on thread "+thread+", which does not point to a valid thread, or does not exist anymore!"),ERRNO_CODES.ESRCH;var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2),schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);return policy&&(GROWABLE_HEAP_I32()[policy>>2]=schedPolicy),schedparam&&(GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio),0}function _pthread_self(){return __pthread_ptr|0}Module._pthread_self=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer=="undefined")return err("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!pthread_ptr)return err("pthread_create called with a null thread pointer!"),28;var transferList=[],error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error))return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg);if(error)return error;var stackSize=0,stackBase=0,detached=0,schedPolicy=0,schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2],stackSize+=81920,stackBase=GROWABLE_HEAP_I32()[attr+8>>2],detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2],parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24),schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2],GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy,GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}else stackSize=2097152;var allocatedOwnStack=stackBase==0;allocatedOwnStack?stackBase=_memalign(16,stackSize):(stackBase-=stackSize,assert3(stackBase>0));for(var threadInfoStruct2=_malloc(232),i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct2>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct2,GROWABLE_HEAP_I32()[threadInfoStruct2+12>>2]=threadInfoStruct2;var headPtr=threadInfoStruct2+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase,stackSize,allocatedOwnStack,schedPolicy,schedPrio,detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct2,parent_pthread_ptr:_pthread_self(),arg,transferList};return ENVIRONMENT_IS_PTHREAD?(threadParams.cmd="spawnThread",postMessage(threadParams,transferList)):__spawn_thread(threadParams),0}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return setErrNo(28),-1}ENVIRONMENT_IS_PTHREAD?PThread.initWorker():PThread.initMainThreadBlock();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf],asmLibraryArg={e:___assert_fail,r:___call_main,w:__emscripten_notify_thread_queue,a:_abort,l:_emscripten_conditional_set_current_thread_status,d:_emscripten_futex_wait,c:_emscripten_futex_wake,h:_emscripten_get_now,g:_emscripten_is_main_browser_thread,x:_emscripten_is_main_runtime_thread,q:_emscripten_memcpy_big,B:_emscripten_num_logical_cores,t:_emscripten_receive_on_main_thread_js,A:_emscripten_resize_heap,u:_emscripten_set_canvas_element_size,k:_emscripten_set_current_thread_status,s:_emscripten_set_thread_name,v:_emscripten_webgl_create_context,m:_fd_close,o:_fd_seek,i:_fd_write,p:initPthreadsJS,memory:wasmMemory||Module.wasmMemory,y:_pthread_cleanup_pop,z:_pthread_cleanup_push,j:_pthread_create,b:_pthread_self,f:_roundf,n:_sysconf,table:wasmTable},asm=createWasm();Module.asm=asm;var ___wasm_call_ctors=Module.___wasm_call_ctors=function(){return(___wasm_call_ctors=Module.___wasm_call_ctors=Module.asm.C).apply(null,arguments)},_init=Module._init=function(){return(_init=Module._init=Module.asm.D).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.E).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.F).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.G).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.H).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.I).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.J).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.K).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.L).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.M).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.N).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.O).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.P).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Q).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.R).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.S).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.T).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.U).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.V).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.W).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.X).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Y).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.Z).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm._).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.$).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.aa).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.ba).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.ca).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.da).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.ea).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.fa).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.ga).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.ha).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.ia).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.ja).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.ka).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.la).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.ma).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.na).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.oa).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.pa).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.qa).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.ra).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.sa).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.ta).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.ua).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.va).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.wa).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.xa).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.ya).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.za).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Aa).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.Ba).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Ca).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Da).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.Ea).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Fa).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.Ga).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Ha).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Ia).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.Ja).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.Ka).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.La).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Ma).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Na).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Oa).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Pa).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.Qa).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.Ra).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sa).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Ta).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Ua).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Va).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.Wa).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Xa).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm.Ya).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.Za).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm._a).apply(null,arguments)},_emscripten_get_global_libc=Module._emscripten_get_global_libc=function(){return(_emscripten_get_global_libc=Module._emscripten_get_global_libc=Module.asm.$a).apply(null,arguments)},___errno_location=Module.___errno_location=function(){return(___errno_location=Module.___errno_location=Module.asm.ab).apply(null,arguments)},___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=function(){return(___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=Module.asm.bb).apply(null,arguments)},_memalign=Module._memalign=function(){return(_memalign=Module._memalign=Module.asm.cb).apply(null,arguments)},___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=function(){return(___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=Module.asm.db).apply(null,arguments)},_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=function(){return(_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=Module.asm.eb).apply(null,arguments)},_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=function(){return(_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=Module.asm.fb).apply(null,arguments)},_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=function(){return(_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=Module.asm.gb).apply(null,arguments)},_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=function(){return(_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=Module.asm.hb).apply(null,arguments)},_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=function(){return(_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=Module.asm.ib).apply(null,arguments)},_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=function(){return(_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=Module.asm.jb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=function(){return(_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=Module.asm.kb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=function(){return(_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=Module.asm.lb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=function(){return(_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=Module.asm.mb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=Module.asm.nb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=function(){return(_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=Module.asm.ob).apply(null,arguments)},_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=function(){return(_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=Module.asm.pb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=function(){return(_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=Module.asm.qb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=function(){return(_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=Module.asm.rb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=function(){return(_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=Module.asm.sb).apply(null,arguments)},_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=function(){return(_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=Module.asm.tb).apply(null,arguments)},_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=function(){return(_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=Module.asm.ub).apply(null,arguments)},_emscripten_tls_init=Module._emscripten_tls_init=function(){return(_emscripten_tls_init=Module._emscripten_tls_init=Module.asm.vb).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.wb).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.xb).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.yb).apply(null,arguments)},dynCall_vi=Module.dynCall_vi=function(){return(dynCall_vi=Module.dynCall_vi=Module.asm.zb).apply(null,arguments)},dynCall_v=Module.dynCall_v=function(){return(dynCall_v=Module.dynCall_v=Module.asm.Ab).apply(null,arguments)},dynCall_ii=Module.dynCall_ii=function(){return(dynCall_ii=Module.dynCall_ii=Module.asm.Bb).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap,Module.PThread=PThread,Module.PThread=PThread,Module._pthread_self=_pthread_self,Module.wasmMemory=wasmMemory,Module.ExitStatus=ExitStatus;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}if(Module.run=run,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();return ENVIRONMENT_IS_PTHREAD||(noExitRuntime=!0),ENVIRONMENT_IS_PTHREAD||run(),WasmBackendModuleThreadedSimd2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModuleThreadedSimd:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModuleThreadedSimd}):typeof exports=="object"&&(exports.WasmBackendModuleThreadedSimd=WasmBackendModuleThreadedSimd)}),require_tfjs_backend_wasm=__commonJS2((exports,module)=>{var WasmBackendModule=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModule2){WasmBackendModule2=WasmBackendModule2||{};var Module=typeof WasmBackendModule2!="undefined"?WasmBackendModule2:{},moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;ENVIRONMENT_IS_NODE?(ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status){process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"}):ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status){quit(status)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)},setWindowTitle=function(title){document.title=title});var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:151,maximum:151+0,element:"anyfunc"}),ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str){var ret2=0;if(str!=null&&str!==0){var len=(str.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);)++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder)return UTF8Decoder.decode(heap.subarray(idx,endPtr));for(var str="";idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array2,buffer3){HEAP8.set(array2,buffer3)}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function receiveInstance(instance,module2){var exports3=instance.exports;Module.asm=exports3,wasmMemory=exports3.memory,updateGlobalBufferAndViews(wasmMemory.buffer),removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){for(var num=0,i=0;i>2],len=HEAP32[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}var asmLibraryArg={emscripten_notify_memory_growth:_emscripten_notify_memory_growth,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,proc_exit:_proc_exit,roundf:_roundf},asm=createWasm();Module.asm=asm;var _init=Module._init=function(){return(_init=Module._init=Module.asm.init).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.register_tensor).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.dispose_data).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.dispose).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.Abs).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.Add).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.AddN).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.ArgMax).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.AvgPool).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.BatchMatMul).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.ClipByValue).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.Conv2D).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.Conv2DBackpropInput).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Cos).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.CropAndResize).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.Cumsum).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.DepthToSpace).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.DepthwiseConv2dNative).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.Equal).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.Exp).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.FlipLeftRight).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Floor).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.FloorDiv).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm.FusedBatchNorm).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.FusedConv2D).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.FusedDepthwiseConv2D).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.Gather).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.GatherNd).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.Greater).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.GreaterEqual).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.LeakyRelu).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.Less).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.LessEqual).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.Log).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.LogicalAnd).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.Max).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.MaxPool).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.Maximum).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.Mean).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.Min).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.Minimum).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.Multiply).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.Neg).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.NonMaxSuppressionV3).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.NonMaxSuppressionV4).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.NonMaxSuppressionV5).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.NotEqual).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.OneHot).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.PadV2).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.Pow).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.Prelu).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Prod).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.RealDiv).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Relu).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Relu6).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.ResizeBilinear).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Reverse).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.RotateWithOffset).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Round).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Rsqrt).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.ScatterNd).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.SelectV2).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.Sigmoid).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Sin).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Softmax).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Sqrt).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Square).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.SquaredDifference).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.StridedSlice).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sub).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Sum).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Tanh).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Tile).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.TopK).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Transpose).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm._FusedMatMul).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.malloc).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm.free).apply(null,arguments)},__start=Module.__start=function(){return(__start=Module.__start=Module.asm._start).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.stackSave).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.stackRestore).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}var calledMain=!1;dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function callMain(args){var entryFunction=Module.__start;try{entryFunction();var ret=0;exit(ret,!0)}catch(e){if(e instanceof ExitStatus)return;if(e=="unwind"){noExitRuntime=!0;return}else{var toLog=e;e&&typeof e=="object"&&e.stack&&(toLog=[e,e.stack]),err("exception thrown: "+toLog),quit_(1,e)}}finally{calledMain=!0}}function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(args),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}Module.run=run;function exit(status,implicit){implicit&&noExitRuntime&&status===0||(noExitRuntime||(ABORT=!0,EXITSTATUS=status,exitRuntime(),Module.onExit&&Module.onExit(status)),quit_(status,new ExitStatus(status)))}if(Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),noExitRuntime=!0,run(),WasmBackendModule2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModule:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModule}):typeof exports=="object"&&(exports.WasmBackendModule=WasmBackendModule)}),require_alea3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=String(data2);for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1283=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift73=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40963=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom5=__commonJS2((exports,module)=>{(function(global2,pool3,math){var width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea3(),xor128=require_xor1283(),xorwow=require_xorwow3(),xorshift7=require_xorshift73(),xor4096=require_xor40963(),tychei=require_tychei3(),sr=require_seedrandom5();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_string_decoder=__commonJS2(()=>{}),version="2.8.3",version2="2.8.3",version3="2.8.3",version4="2.8.3",version5="2.8.3",EPSILON_FLOAT32=1e-7,EPSILON_FLOAT16=1e-4,DataStorage=class{constructor(backend22,dataMover){this.backend=backend22,this.dataMover=dataMover,this.data=new WeakMap,this.dataIdsCount=0}get(dataId){return this.data.has(dataId)||this.dataMover.moveData(this.backend,dataId),this.data.get(dataId)}set(dataId,value){this.dataIdsCount++,this.data.set(dataId,value)}has(dataId){return this.data.has(dataId)}delete(dataId){return this.dataIdsCount--,this.data.delete(dataId)}numDataIds(){return this.dataIdsCount}},KernelBackend=class{time(f){return notYetImplemented("time")}read(dataId){return notYetImplemented("read")}readSync(dataId){return notYetImplemented("readSync")}numDataIds(){return notYetImplemented("numDataIds")}disposeData(dataId){return notYetImplemented("disposeData")}write(values,shape,dtype){return notYetImplemented("write")}move(dataId,values,shape,dtype){return notYetImplemented("move")}memory(){return notYetImplemented("memory")}floatPrecision(){return notYetImplemented("floatPrecision")}epsilon(){return this.floatPrecision()===32?EPSILON_FLOAT32:EPSILON_FLOAT16}batchMatMul(a,b,transposeA,transposeB){return notYetImplemented("batchMatMul")}fusedBatchMatMul({a,b,transposeA,transposeB,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedBatchMatMul")}slice(x,begin,size){return notYetImplemented("slice")}stridedSlice(x,begin,end,strides){return notYetImplemented("stridedSlice")}unstack(x,axis){return notYetImplemented("unstack")}reverse(a,axis){return notYetImplemented("reverse")}concat(tensors,axis){return notYetImplemented("concat")}neg(a){return notYetImplemented("neg")}add(a,b){return notYetImplemented("add")}addN(tensors){return notYetImplemented("addN")}subtract(a,b){return notYetImplemented("subtract")}multiply(a,b){return notYetImplemented("multiply")}realDivide(a,b){return notYetImplemented("realDivide")}floorDiv(a,b){return notYetImplemented("floorDiv")}sum(x,axes){return notYetImplemented("sum")}prod(x,axes){return notYetImplemented("prod")}unsortedSegmentSum(x,segmentIds,numSegments){return notYetImplemented("unsortedSegmentSum")}argMin(x,axis){return notYetImplemented("argMin")}argMax(x,axis){return notYetImplemented("argMax")}equal(a,b){return notYetImplemented("equal")}notEqual(a,b){return notYetImplemented("notEqual")}less(a,b){return notYetImplemented("less")}lessEqual(a,b){return notYetImplemented("lessEqual")}greater(a,b){return notYetImplemented("greater")}greaterEqual(a,b){return notYetImplemented("greaterEqual")}logicalNot(a){return notYetImplemented("logicalNot")}logicalAnd(a,b){return notYetImplemented("logicalAnd")}logicalOr(a,b){return notYetImplemented("logicalOr")}where(condition){return notYetImplemented("where")}select(condition,a,b){return notYetImplemented("select")}topk(x,k,sorted){return notYetImplemented("topk")}min(x,axes){return notYetImplemented("min")}minimum(a,b){return notYetImplemented("minimum")}mod(a,b){return notYetImplemented("mod")}max(x,axes){return notYetImplemented("max")}maximum(a,b){return notYetImplemented("maximum")}all(x,axes){return notYetImplemented("all")}any(x,axes){return notYetImplemented("any")}squaredDifference(a,b){return notYetImplemented("squaredDifference")}ceil(x){return notYetImplemented("ceil")}floor(x){return notYetImplemented("floor")}round(x){return notYetImplemented("round")}sign(x){return notYetImplemented("sign")}isNaN(x){return notYetImplemented("isNaN")}isInf(x){return notYetImplemented("isInf")}isFinite(x){return notYetImplemented("isFinite")}pow(a,b){return notYetImplemented("pow")}exp(x){return notYetImplemented("exp")}expm1(x){return notYetImplemented("expm1")}softmax(x,dim){return notYetImplemented("softmax")}log(x){return notYetImplemented("log")}log1p(x){return notYetImplemented("log1p")}sqrt(x){return notYetImplemented("sqrt")}rsqrt(x){return notYetImplemented("rsqrt")}square(x){return notYetImplemented("square")}reciprocal(x){return notYetImplemented("reciprocal")}relu(x){return notYetImplemented("relu")}relu6(x){return notYetImplemented("relu6")}prelu(x,a){return notYetImplemented("prelu")}elu(x){return notYetImplemented("elu")}eluDer(dy,y){return notYetImplemented("eluDer")}selu(x){return notYetImplemented("selu")}int(x){return notYetImplemented("int")}clip(x,min6,max6){return notYetImplemented("clip")}abs(x){return notYetImplemented("abs")}complexAbs(x){return notYetImplemented("complexAbs")}sigmoid(x){return notYetImplemented("sigmoid")}softplus(x){return notYetImplemented("softplus")}sin(x){return notYetImplemented("sin")}cos(x){return notYetImplemented("cos")}tan(x){return notYetImplemented("tan")}asin(x){return notYetImplemented("asin")}acos(x){return notYetImplemented("acos")}atan(x){return notYetImplemented("atan")}atan2(a,b){return notYetImplemented("atan2")}sinh(x){return notYetImplemented("sinh")}cosh(x){return notYetImplemented("cosh")}tanh(x){return notYetImplemented("tanh")}asinh(x){return notYetImplemented("asinh")}acosh(x){return notYetImplemented("acosh")}atanh(x){return notYetImplemented("atanh")}erf(x){return notYetImplemented("erf")}step(x,alpha){return notYetImplemented("step")}fusedConv2d({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedConv2d")}conv2d(x,filter,convInfo){return notYetImplemented("conv2d")}conv2dDerInput(dy,filter,convInfo){return notYetImplemented("conv2dDerInput")}conv2dDerFilter(x,dY,convInfo){return notYetImplemented("conv2dDerFilter")}fusedDepthwiseConv2D({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedDepthwiseConv2D")}depthwiseConv2D(input2,filter,convInfo){return notYetImplemented("depthwiseConv2D")}depthwiseConv2DDerInput(dy,filter,convInfo){return notYetImplemented("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(x,dY,convInfo){return notYetImplemented("depthwiseConv2DDerFilter")}conv3d(x,filter,convInfo){return notYetImplemented("conv3d")}conv3dDerInput(dy,filter,convInfo){return notYetImplemented("conv3dDerInput")}conv3dDerFilter(x,dY,convInfo){return notYetImplemented("conv3dDerFilter")}maxPool(x,convInfo){return notYetImplemented("maxPool")}maxPoolBackprop(dy,x,y,convInfo){return notYetImplemented("maxPoolBackprop")}avgPool(x,convInfo){return notYetImplemented("avgPool")}avgPoolBackprop(dy,x,convInfo){return notYetImplemented("avgPoolBackprop")}avgPool3d(x,convInfo){return notYetImplemented("avgPool3d")}avgPool3dBackprop(dy,x,convInfo){return notYetImplemented("avgPool3dBackprop")}maxPool3d(x,convInfo){return notYetImplemented("maxPool3d")}maxPool3dBackprop(dy,x,y,convInfo){return notYetImplemented("maxPool3dBackprop")}reshape(x,shape){return notYetImplemented("reshape")}cast(x,dtype){return notYetImplemented("cast")}tile(x,reps){return notYetImplemented("tile")}pad(x,paddings,constantValue){return notYetImplemented("pad")}transpose(x,perm){return notYetImplemented("transpose")}gather(x,indices,axis,batchDims=0){return notYetImplemented("gather")}gatherND(x,indices){return notYetImplemented("gatherND")}scatterND(indices,updates,shape){return notYetImplemented("scatterND")}batchToSpaceND(x,blockShape,crops){return notYetImplemented("batchToSpaceND")}spaceToBatchND(x,blockShape,paddings){return notYetImplemented("spaceToBatchND")}resizeBilinear(x,newHeight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeBilinear")}resizeBilinearBackprop(dy,x,alignCorners){return notYetImplemented("resizeBilinearBackprop")}resizeNearestNeighbor(x,newHEight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeNearestNeighbor")}resizeNearestNeighborBackprop(dy,x,alignCorners){return notYetImplemented("resizeNearestNeighborBackprop")}batchNorm(x,mean4,variance,offset,scale2,varianceEpsilon){return notYetImplemented("batchNorm")}localResponseNormalization4D(x,radius,bias,alpha,beta){return notYetImplemented("localResponseNormalization4D")}LRNGrad(dy,inputImage,outputImage,radius,bias,alpha,beta){return notYetImplemented("LRNGrad")}multinomial(logits,normalized,numSamples,seed){return notYetImplemented("multinomial")}oneHot(indices,depth,onValue,offValue){return notYetImplemented("oneHot")}cumsum(x,axis,exclusive,reverse5){return notYetImplemented("cumsum")}nonMaxSuppression(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return notYetImplemented("nonMaxSuppression")}fft(x){return notYetImplemented("fft")}ifft(x){return notYetImplemented("ifft")}complex(real4,imag4){return notYetImplemented("complex")}real(input2){return notYetImplemented("real")}imag(input2){return notYetImplemented("imag")}cropAndResize(image3,boxes,boxIndex,cropSize,method,extrapolationValue){return notYetImplemented("cropAndResize")}depthToSpace(x,blockSize,dataFormat){return notYetImplemented("depthToSpace")}split(value,sizeSplits,axis){return notYetImplemented("split")}sparseToDense(sparseIndices,sparseValues,outputShape,defaultValue){return notYetImplemented("sparseToDense")}diag(x){return notYetImplemented("diag")}fill(shape,value,dtype){return notYetImplemented("fill")}onesLike(x){return notYetImplemented("onesLike")}zerosLike(x){return notYetImplemented("zerosLike")}linspace(start,stop,num){return notYetImplemented("linspace")}dispose(){return notYetImplemented("dispose")}};function notYetImplemented(kernelName){throw new Error(`'${kernelName}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function shuffle(array2){let counter=array2.length,temp=0,index=0;for(;counter>0;)index=Math.random()*counter|0,counter--,temp=array2[counter],array2[counter]=array2[index],array2[index]=temp}function clamp(min6,x,max6){return Math.max(min6,Math.min(x,max6))}function nearestLargerEven(val){return val%2==0?val:val+1}function sum(arr){let sum6=0;for(let i=0;ierrorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function assertNonNull(a){assert(a!=null,()=>"The input to the tensor constructor must be a non-null value.")}function flatten(arr,result=[],skipTypedArray=!1){if(result==null&&(result=[]),Array.isArray(arr)||isTypedArray(arr)&&!skipTypedArray)for(let i=0;i0,maxCounter){return new Promise((resolve,reject)=>{let tryCount=0,tryFn=()=>{if(checkFn()){resolve();return}tryCount++;let nextBackoff=delayFn(tryCount);if(maxCounter!=null&&tryCount>=maxCounter){reject();return}setTimeout(tryFn,nextBackoff)};tryFn()})}function inferFromImplicitShape(shape,size){let shapeProd=1,implicitIdx=-1;for(let i=0;i=0)shapeProd*=shape[i];else if(shape[i]===-1){if(implicitIdx!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${implicitIdx} and dim ${i}`);implicitIdx=i}else if(shape[i]<0)throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);if(implicitIdx===-1){if(size>0&&size!==shapeProd)throw Error(`Size(${size}) must match the product of shape ${shape}`);return shape}if(shapeProd===0)throw Error(`Cannot infer the missing size in [${shape}] when there are 0 elements`);if(size%shapeProd!=0)throw Error(`The implicit shape can't be a fractional number. Got ${size} / ${shapeProd}`);let newShape=shape.slice();return newShape[implicitIdx]=size/shapeProd,newShape}function parseAxisParam(axis,shape){let rank=shape.length;return axis=axis==null?shape.map((s,i)=>i):[].concat(axis),assert(axis.every(ax=>ax>=-rank&&ax`All values in axis param must be in range [-${rank}, ${rank}) but got axis ${axis}`),assert(axis.every(ax=>isInt(ax)),()=>`All values in axis param must be integers but got axis ${axis}`),axis.map(a=>a<0?rank+a:a)}function squeezeShape(shape,axis){let newShape=[],keptDims=[],isEmptyArray=axis!=null&&Array.isArray(axis)&&axis.length===0,axes=axis==null||isEmptyArray?null:parseAxisParam(axis,shape).sort(),j=0;for(let i=0;ii)&&shape[i]===1&&(newShape.push(shape[i]),keptDims.push(i)),axes[j]<=i&&j++}shape[i]!==1&&(newShape.push(shape[i]),keptDims.push(i))}return{newShape,keptDims}}function getTypedArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function getArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else if(dtype==="string")values=new Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function checkConversionForErrors(vals,dtype){for(let i=0;ibytes+=x.length),bytes}function isString(value){return typeof value=="string"||value instanceof String}function isBoolean(value){return typeof value=="boolean"}function isNumber(value){return typeof value=="number"}function inferDtype(values){return Array.isArray(values)?inferDtype(values[0]):values instanceof Float32Array?"float32":values instanceof Int32Array||values instanceof Uint8Array?"int32":isNumber(values)?"float32":isString(values)?"string":isBoolean(values)?"bool":"float32"}function isFunction(f){return!!(f&&f.constructor&&f.call&&f.apply)}function nearestDivisor(size,start){for(let i=start;i=0;--i)strides[i]=strides[i+1]*shape[i+1];return strides}function createNestedArray(offset,shape,a){let ret=new Array;if(shape.length===1){let d=shape[0];for(let i=0;iacc*c);for(let i=0;iacc*c);if(size===0)return[];if(size!==a.length)throw new Error(`[${shape}] does not match the input size ${a.length}.`);return createNestedArray(0,shape,a)}function makeOnesTypedArray(size,dtype){let array2=makeZerosTypedArray(size,dtype);for(let i=0;iprev*curr,1);if(dtype==null||dtype==="float32")return toNestedArray(shape,new Float32Array(size));if(dtype==="int32")return toNestedArray(shape,new Int32Array(size));if(dtype==="bool")return toNestedArray(shape,new Uint8Array(size));throw new Error(`Unknown data type ${dtype}`)}function assertNonNegativeIntegerDimensions(shape){shape.forEach(dimSize=>{assert(Number.isInteger(dimSize)&&dimSize>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${shape}].`)})}function locToIndex(locs,rank,strides){if(rank===0)return 0;if(rank===1)return locs[0];let index=locs[locs.length-1];for(let i=0;i{let[key,value]=keyValue.split(":");this.urlFlags[key]=parseValue(key,value)})}};function getQueryParams(queryString){let params={};return queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...t)=>(decodeParam(params,t[0],t[1]),t.join("="))),params}function decodeParam(params,name,value){params[decodeURIComponent(name)]=decodeURIComponent(value||"")}function parseValue(flagName,value){if(value=value.toLowerCase(),value==="true"||value==="false")return value==="true";if(`${+value}`===value)return+value;throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`)}function env(){return ENV}var ENV=null;function setEnvironmentGlobal(environment){ENV=environment}var globalNameSpace;function getGlobalNamespace(){if(globalNameSpace==null){let ns;if(typeof window!="undefined")ns=window;else if(typeof global!="undefined")ns=global;else if(typeof process!="undefined")ns=process;else if(typeof self!="undefined")ns=self;else throw new Error("Could not find a global object");globalNameSpace=ns}return globalNameSpace}function getGlobalMap(){let ns=getGlobalNamespace();return ns._tfGlobals==null&&(ns._tfGlobals=new Map),ns._tfGlobals}function getGlobal(key,init2){let globalMap=getGlobalMap();if(globalMap.has(key))return globalMap.get(key);{let singleton=init2();return globalMap.set(key,singleton),globalMap.get(key)}}var Abs="Abs",Acos="Acos",Acosh="Acosh",Add="Add",AddN="AddN",All="All",Any="Any",ArgMax="ArgMax",ArgMin="ArgMin",Asin="Asin",Asinh="Asinh",Atan="Atan",Atanh="Atanh",Atan2="Atan2",AvgPool="AvgPool",AvgPoolGrad="AvgPoolGrad",AvgPool3D="AvgPool3D",AvgPool3DGrad="AvgPool3DGrad",BatchMatMul="BatchMatMul",BatchToSpaceND="BatchToSpaceND",Bincount="Bincount",BroadcastTo="BroadcastTo",Cast="Cast",Ceil="Ceil",ClipByValue="ClipByValue",Complex="Complex",ComplexAbs="ComplexAbs",Concat="Concat",Conv2D="Conv2D",Conv2DBackpropFilter="Conv2DBackpropFilter",Conv2DBackpropInput="Conv2DBackpropInput",Conv3D="Conv3D",Conv3DBackpropFilterV2="Conv3DBackpropFilterV2",Conv3DBackpropInputV2="Conv3DBackpropInputV2",Cos="Cos",Cosh="Cosh",Cumsum="Cumsum",CropAndResize="CropAndResize",DenseBincount="DenseBincount",DepthToSpace="DepthToSpace",DepthwiseConv2dNative="DepthwiseConv2dNative",DepthwiseConv2dNativeBackpropFilter="DepthwiseConv2dNativeBackpropFilter",DepthwiseConv2dNativeBackpropInput="DepthwiseConv2dNativeBackpropInput",Diag="Diag",Dilation2D="Dilation2D",Dilation2DBackpropInput="Dilation2DBackpropInput",Dilation2DBackpropFilter="Dilation2DBackpropFilter",RealDiv="RealDiv",Elu="Elu",EluGrad="EluGrad",Erf="Erf",Equal="Equal",Exp="Exp",ExpandDims="ExpandDims",Expm1="Expm1",FFT="FFT",Fill="Fill",FlipLeftRight="FlipLeftRight",Floor="Floor",FloorDiv="FloorDiv",FusedBatchNorm="FusedBatchNorm",GatherV2="GatherV2",GatherNd="GatherNd",Greater="Greater",GreaterEqual="GreaterEqual",Identity="Identity",IFFT="IFFT",Imag="Imag",IsFinite="IsFinite",IsInf="IsInf",IsNan="IsNan",LeakyRelu="LeakyRelu",Less="Less",LessEqual="LessEqual",LinSpace="LinSpace",Log="Log",Log1p="Log1p",LogicalAnd="LogicalAnd",LogicalNot="LogicalNot",LogicalOr="LogicalOr",LogSoftmax="LogSoftmax",LRN="LRN",LRNGrad="LRNGrad",Max="Max",Maximum="Maximum",MaxPool="MaxPool",MaxPoolGrad="MaxPoolGrad",MaxPool3D="MaxPool3D",MaxPool3DGrad="MaxPool3DGrad",MaxPoolWithArgmax="MaxPoolWithArgmax",Mean="Mean",Min="Min",Minimum="Minimum",MirrorPad="MirrorPad",Mod="Mod",Multinomial="Multinomial",Multiply="Multiply",Neg="Neg",NotEqual="NotEqual",NonMaxSuppressionV3="NonMaxSuppressionV3",NonMaxSuppressionV4="NonMaxSuppressionV4",NonMaxSuppressionV5="NonMaxSuppressionV5",OnesLike="OnesLike",OneHot="OneHot",Pack="Pack",PadV2="PadV2",Pool="Pool",Pow="Pow",Prelu="Prelu",Prod="Prod",Range="Range",Real="Real",Reciprocal="Reciprocal",Relu="Relu",Reshape="Reshape",ResizeNearestNeighbor="ResizeNearestNeighbor",ResizeNearestNeighborGrad="ResizeNearestNeighborGrad",ResizeBilinear="ResizeBilinear",ResizeBilinearGrad="ResizeBilinearGrad",Relu6="Relu6",Reverse="Reverse",Round="Round",Rsqrt="Rsqrt",ScatterNd="ScatterNd",Select="Select",Selu="Selu",Slice="Slice",Sin="Sin",Sinh="Sinh",Sign="Sign",Sigmoid="Sigmoid",Softplus="Softplus",Sqrt="Sqrt",Sum="Sum",SpaceToBatchND="SpaceToBatchND",SplitV="SplitV",Softmax="Softmax",SquaredDifference="SquaredDifference",Square="Square",Sub="Sub",SparseToDense="SparseToDense",StridedSlice="StridedSlice",Tan="Tan",Tanh="Tanh",Tile="Tile",TopK="TopK",Transpose="Transpose",Unique="Unique",Unpack="Unpack",UnsortedSegmentSum="UnsortedSegmentSum",ZerosLike="ZerosLike",Step="Step",FromPixels="FromPixels",RotateWithOffset="RotateWithOffset",_FusedMatMul="_FusedMatMul",FusedConv2D="FusedConv2D",FusedDepthwiseConv2D="FusedDepthwiseConv2D",kernelRegistry=getGlobal("kernelRegistry",()=>new Map),gradRegistry=getGlobal("gradRegistry",()=>new Map);function getKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);return kernelRegistry.get(key)}function getGradient(kernelName){return gradRegistry.get(kernelName)}function getKernelsForBackend(backendName){let it=kernelRegistry.entries(),result=[];for(;;){let{done,value}=it.next();if(done)break;let[key,config3]=value,[backend22]=key.split("_");backend22===backendName&&result.push(config3)}return result}function registerKernel(config3){let{kernelName,backendName}=config3,key=makeKey(kernelName,backendName);kernelRegistry.has(key)&&console.warn(`The kernel '${kernelName}' for backend '${backendName}' is already registered`),kernelRegistry.set(key,config3)}function registerGradient(config3){let{kernelName}=config3;gradRegistry.has(kernelName)&&env().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${kernelName}'`),gradRegistry.set(kernelName,config3)}function unregisterKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);if(!kernelRegistry.has(key))throw new Error(`The kernel '${kernelName}' for backend '${backendName}' is not registered`);kernelRegistry.delete(key)}function unregisterGradient(kernelName){if(!gradRegistry.has(kernelName))throw new Error(`The gradient '${kernelName}' for backend is not registered`);gradRegistry.delete(kernelName)}function copyRegisteredKernels(registeredBackendName,newBackendName){getKernelsForBackend(registeredBackendName).forEach(kernelConfig=>{let newKernelConfig=Object.assign({},kernelConfig,{backendName:newBackendName});registerKernel(newKernelConfig)})}function makeKey(kernelName,backendName){return`${backendName}_${kernelName}`}var util_exports={};__export2(util_exports,{arraysEqual:()=>arraysEqual,assert:()=>assert,assertNonNegativeIntegerDimensions:()=>assertNonNegativeIntegerDimensions,assertNonNull:()=>assertNonNull,assertShapesMatch:()=>assertShapesMatch,bytesFromStringArray:()=>bytesFromStringArray,bytesPerElement:()=>bytesPerElement,checkConversionForErrors:()=>checkConversionForErrors,clamp:()=>clamp,computeStrides:()=>computeStrides,createScalarValue:()=>createScalarValue,createShuffledIndices:()=>createShuffledIndices,decodeString:()=>decodeString,distSquared:()=>distSquared,encodeString:()=>encodeString,fetch:()=>fetch2,flatten:()=>flatten,getArrayFromDType:()=>getArrayFromDType,getTypedArrayFromDType:()=>getTypedArrayFromDType,hasEncodingLoss:()=>hasEncodingLoss,indexToLoc:()=>indexToLoc,inferDtype:()=>inferDtype,inferFromImplicitShape:()=>inferFromImplicitShape,isBoolean:()=>isBoolean,isFunction:()=>isFunction,isInt:()=>isInt,isNumber:()=>isNumber,isPromise:()=>isPromise,isScalarShape:()=>isScalarShape,isString:()=>isString,isTypedArray:()=>isTypedArray,isValidDtype:()=>isValidDtype,locToIndex:()=>locToIndex,makeOnesTypedArray:()=>makeOnesTypedArray,makeZerosNestedTypedArray:()=>makeZerosNestedTypedArray,makeZerosTypedArray:()=>makeZerosTypedArray,nearestDivisor:()=>nearestDivisor,nearestLargerEven:()=>nearestLargerEven,now:()=>now,parseAxisParam:()=>parseAxisParam,randUniform:()=>randUniform,repeatedTry:()=>repeatedTry,rightPad:()=>rightPad,shuffle:()=>shuffle,sizeFromShape:()=>sizeFromShape,sizeToSquarishShape:()=>sizeToSquarishShape,squeezeShape:()=>squeezeShape,sum:()=>sum,tanh:()=>tanh,toNestedArray:()=>toNestedArray,toTypedArray:()=>toTypedArray});function createScalarValue(value,dtype){return dtype==="string"?encodeString(value):toTypedArray([value],dtype)}function noConversionNeeded(a,dtype){return a instanceof Float32Array&&dtype==="float32"||a instanceof Int32Array&&dtype==="int32"||a instanceof Uint8Array&&dtype==="bool"}function toTypedArray(a,dtype){if(dtype==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(a)&&(a=flatten(a)),env().getBool("DEBUG")&&checkConversionForErrors(a,dtype),noConversionNeeded(a,dtype))return a;if(dtype==null||dtype==="float32"||dtype==="complex64")return new Float32Array(a);if(dtype==="int32")return new Int32Array(a);if(dtype==="bool"){let bool=new Uint8Array(a.length);for(let i=0;i{outputs=f()},timer=this.backendTimer.time(holdResultWrapperFn);if(env().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let i=0;i{checkComputationForErrors(tensorVals,output.dtype,kernelName)})}return{kernelName,outputs,inputs,timeMs:timer.then(timing=>timing.kernelMs),extraInfo:timer.then(timing=>timing.getExtraProfileInfo!=null?timing.getExtraProfileInfo():"")}}logKernelProfile(kernelProfile){let{kernelName,outputs,timeMs,inputs,extraInfo}=kernelProfile;outputs.forEach(result=>{Promise.all([result.data(),timeMs,extraInfo]).then(valueContainer=>{this.logger.logKernelProfile(kernelName,result,valueContainer[0],valueContainer[1],inputs,valueContainer[2])})})}};function checkComputationForErrors(vals,dtype,kernelName){if(dtype!=="float32")return!1;for(let i=0;i0?inputShape:""} `}}console.log(`%c${paddedName} %c${time2} %c${rank}D ${shape} %c${size} %c${inputShapesDescription} %c${extraInfo}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function getFilteredNodesXToY(tape,xs,y){let tensorsFromX={},nodesFromX={};for(let i=0;itensorsFromX[output.id]=!0),anyInputFromX=!0,nodesFromX[node.id]=!0;break}if(anyInputFromX)break}}let tensorsLeadToY={};tensorsLeadToY[y.id]=!0;let nodesToY={};for(let i=tape.length-1;i>=0;i--){let node=tape[i],nodeInputs=node.inputs;for(let j=0;j=0;i--){let node=filteredTape[i],dys=[];if(node.outputs.forEach(o=>{let gradTensor=tensorAccumulatedGradientMap[o.id];gradTensor!=null?dys.push(gradTensor):dys.push(null)}),node.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${node.kernelName}.`);let inputGradients=node.gradient(dys);for(let inputName in node.inputs){if(!(inputName in inputGradients))throw new Error(`Cannot backprop through input ${inputName}. Available gradients found: ${Object.keys(inputGradients)}.`);let dx=tidy2(()=>inputGradients[inputName]());if(dx.dtype!=="float32")throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);let x=node.inputs[inputName];if(!arraysEqual(dx.shape,x.shape))throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input '${inputName}' has shape '${dx.shape}', which does not match the shape of the input '${x.shape}'`);if(tensorAccumulatedGradientMap[x.id]==null)tensorAccumulatedGradientMap[x.id]=dx;else{let curGradient=tensorAccumulatedGradientMap[x.id];tensorAccumulatedGradientMap[x.id]=add5(curGradient,dx),curGradient.dispose()}}}}var FORMAT_LIMIT_NUM_VALS=20,FORMAT_NUM_FIRST_LAST_VALS=3,FORMAT_NUM_SIG_DIGITS=7;function tensorToString(vals,shape,dtype,verbose){let strides=computeStrides(shape),padPerCol=computeMaxSizePerColumn(vals,shape,dtype,strides),rank=shape.length,valsLines=subTensorToString(vals,shape,dtype,strides,padPerCol),lines=["Tensor"];return verbose&&(lines.push(` dtype: ${dtype}`),lines.push(` rank: ${rank}`),lines.push(` shape: [${shape}]`),lines.push(" values:")),lines.push(valsLines.map(l=>" "+l).join(` +`)};exports.Canvas=WebGLImageFilter});var require_image=__commonJS(exports=>{var fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input2,config2){let tensor2;if(input2 instanceof Tensor)tensor2=clone(input2);else{let originalWidth=input2.naturalWidth||input2.videoWidth||input2.width||input2.shape&&input2.shape[1]>0,originalHeight=input2.naturalHeight||input2.videoHeight||input2.height||input2.shape&&input2.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config2.filter.width>0?targetWidth=config2.filter.width:config2.filter.height>0&&(targetWidth=originalWidth*(config2.filter.height/originalHeight)),config2.filter.height>0?targetHeight=config2.filter.height:config2.filter.width>0&&(targetHeight=originalHeight*(config2.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input2),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input2 instanceof ImageData?ctx.putImageData(input2,0,0):ctx.drawImage(input2,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config2.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config2.filter.brightness),config2.filter.contrast!==0&&this.fx.addFilter("contrast",config2.filter.contrast),config2.filter.sharpness!==0&&this.fx.addFilter("sharpen",config2.filter.sharpness),config2.filter.blur!==0&&this.fx.addFilter("blur",config2.filter.blur),config2.filter.saturation!==0&&this.fx.addFilter("saturation",config2.filter.saturation),config2.filter.hue!==0&&this.fx.addFilter("hue",config2.filter.hue),config2.filter.negative&&this.fx.addFilter("negative"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.vintage&&this.fx.addFilter("brownie"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.kodachrome&&this.fx.addFilter("kodachrome"),config2.filter.technicolor&&this.fx.addFilter("technicolor"),config2.filter.polaroid&&this.fx.addFilter("polaroid"),config2.filter.pixelate!==0&&this.fx.addFilter("pixelate",config2.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tensor3d(outCanvas.data,shape,"int32")}else if(config2.backend==="webgl"||outCanvas instanceof ImageData)pixels=browser_exports.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=browser_exports.fromPixels(data2)}let casted=pixels.toFloat();tensor2=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor:tensor2,canvas:config2.filter.return?outCanvas:null}}exports.process=process3});var human_exports={};__export(human_exports,{default:()=>Human});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tfjs_esm_exports={};__export(tfjs_esm_exports,{Abs:()=>Abs,Acos:()=>Acos,Acosh:()=>Acosh,AdadeltaOptimizer:()=>AdadeltaOptimizer,AdagradOptimizer:()=>AdagradOptimizer,AdamOptimizer:()=>AdamOptimizer,AdamaxOptimizer:()=>AdamaxOptimizer,Add:()=>Add,AddN:()=>AddN,All:()=>All,Any:()=>Any,ArgMax:()=>ArgMax,ArgMin:()=>ArgMin,Asin:()=>Asin,Asinh:()=>Asinh,Atan:()=>Atan,Atan2:()=>Atan2,Atanh:()=>Atanh,AvgPool:()=>AvgPool,AvgPool3D:()=>AvgPool3D,AvgPool3DGrad:()=>AvgPool3DGrad,AvgPoolGrad:()=>AvgPoolGrad,BackendWasm:()=>BackendWasm,BatchMatMul:()=>BatchMatMul,BatchToSpaceND:()=>BatchToSpaceND,Bincount:()=>Bincount,BroadcastTo:()=>BroadcastTo,Callback:()=>Callback,CallbackList:()=>CallbackList,Cast:()=>Cast,Ceil:()=>Ceil,ClipByValue:()=>ClipByValue,Complex:()=>Complex,ComplexAbs:()=>ComplexAbs,Concat:()=>Concat,Conv2D:()=>Conv2D,Conv2DBackpropFilter:()=>Conv2DBackpropFilter,Conv2DBackpropInput:()=>Conv2DBackpropInput,Conv3D:()=>Conv3D,Conv3DBackpropFilterV2:()=>Conv3DBackpropFilterV2,Conv3DBackpropInputV2:()=>Conv3DBackpropInputV2,Cos:()=>Cos,Cosh:()=>Cosh,CropAndResize:()=>CropAndResize,Cumsum:()=>Cumsum,CustomCallback:()=>CustomCallback,DataStorage:()=>DataStorage,DenseBincount:()=>DenseBincount,DepthToSpace:()=>DepthToSpace,DepthwiseConv2dNative:()=>DepthwiseConv2dNative,DepthwiseConv2dNativeBackpropFilter:()=>DepthwiseConv2dNativeBackpropFilter,DepthwiseConv2dNativeBackpropInput:()=>DepthwiseConv2dNativeBackpropInput,Diag:()=>Diag,Dilation2D:()=>Dilation2D,Dilation2DBackpropFilter:()=>Dilation2DBackpropFilter,Dilation2DBackpropInput:()=>Dilation2DBackpropInput,ENV:()=>ENV,EarlyStopping:()=>EarlyStopping,Elu:()=>Elu,EluGrad:()=>EluGrad,Environment:()=>Environment,Equal:()=>Equal,Erf:()=>Erf,Exp:()=>Exp,ExpandDims:()=>ExpandDims,Expm1:()=>Expm1,FFT:()=>FFT,Fill:()=>Fill,FlipLeftRight:()=>FlipLeftRight,Floor:()=>Floor,FloorDiv:()=>FloorDiv,FromPixels:()=>FromPixels,FusedBatchNorm:()=>FusedBatchNorm,FusedConv2D:()=>FusedConv2D,FusedDepthwiseConv2D:()=>FusedDepthwiseConv2D,GPGPUContext:()=>GPGPUContext,GatherNd:()=>GatherNd,GatherV2:()=>GatherV2,GraphModel:()=>GraphModel,Greater:()=>Greater,GreaterEqual:()=>GreaterEqual,History:()=>History,IFFT:()=>IFFT,Identity:()=>Identity,Imag:()=>Imag,InputSpec:()=>InputSpec,IsFinite:()=>IsFinite,IsInf:()=>IsInf,IsNan:()=>IsNan,KernelBackend:()=>KernelBackend,LRN:()=>LRN,LRNGrad:()=>LRNGrad,LayerVariable:()=>LayerVariable,LayersModel:()=>LayersModel,LeakyRelu:()=>LeakyRelu,Less:()=>Less,LessEqual:()=>LessEqual,LinSpace:()=>LinSpace,Log:()=>Log,Log1p:()=>Log1p,LogSoftmax:()=>LogSoftmax,LogicalAnd:()=>LogicalAnd,LogicalNot:()=>LogicalNot,LogicalOr:()=>LogicalOr,MathBackendCPU:()=>MathBackendCPU,MathBackendWebGL:()=>MathBackendWebGL,Max:()=>Max,MaxPool:()=>MaxPool,MaxPool3D:()=>MaxPool3D,MaxPool3DGrad:()=>MaxPool3DGrad,MaxPoolGrad:()=>MaxPoolGrad,MaxPoolWithArgmax:()=>MaxPoolWithArgmax,Maximum:()=>Maximum,Mean:()=>Mean,Min:()=>Min,Minimum:()=>Minimum,MirrorPad:()=>MirrorPad,Mod:()=>Mod,MomentumOptimizer:()=>MomentumOptimizer,Multinomial:()=>Multinomial,Multiply:()=>Multiply,Neg:()=>Neg,NonMaxSuppressionV3:()=>NonMaxSuppressionV3,NonMaxSuppressionV4:()=>NonMaxSuppressionV4,NonMaxSuppressionV5:()=>NonMaxSuppressionV5,NotEqual:()=>NotEqual,OP_SCOPE_SUFFIX:()=>OP_SCOPE_SUFFIX,OneHot:()=>OneHot,OnesLike:()=>OnesLike,Optimizer:()=>Optimizer,Pack:()=>Pack,PadV2:()=>PadV2,Pool:()=>Pool,Pow:()=>Pow,Prelu:()=>Prelu,Prod:()=>Prod,RMSPropOptimizer:()=>RMSPropOptimizer,RNN:()=>RNN,Range:()=>Range,Rank:()=>Rank,Real:()=>Real,RealDiv:()=>RealDiv,Reciprocal:()=>Reciprocal,Reduction:()=>Reduction,Relu:()=>Relu,Relu6:()=>Relu6,Reshape:()=>Reshape,ResizeBilinear:()=>ResizeBilinear,ResizeBilinearGrad:()=>ResizeBilinearGrad,ResizeNearestNeighbor:()=>ResizeNearestNeighbor,ResizeNearestNeighborGrad:()=>ResizeNearestNeighborGrad,Reverse:()=>Reverse,RotateWithOffset:()=>RotateWithOffset,Round:()=>Round,Rsqrt:()=>Rsqrt,SGDOptimizer:()=>SGDOptimizer,ScatterNd:()=>ScatterNd,Select:()=>Select,Selu:()=>Selu,Sequential:()=>Sequential,Sigmoid:()=>Sigmoid,Sign:()=>Sign,Sin:()=>Sin,Sinh:()=>Sinh,Slice:()=>Slice,Softmax:()=>Softmax,Softplus:()=>Softplus,SpaceToBatchND:()=>SpaceToBatchND,SparseToDense:()=>SparseToDense,SplitV:()=>SplitV,Sqrt:()=>Sqrt,Square:()=>Square,SquaredDifference:()=>SquaredDifference,Step:()=>Step,StridedSlice:()=>StridedSlice,Sub:()=>Sub,Sum:()=>Sum,SymbolicTensor:()=>SymbolicTensor,Tan:()=>Tan,Tanh:()=>Tanh,Tensor:()=>Tensor,TensorBuffer:()=>TensorBuffer,Tile:()=>Tile,TopK:()=>TopK,Transpose:()=>Transpose,Unique:()=>Unique,Unpack:()=>Unpack,UnsortedSegmentSum:()=>UnsortedSegmentSum,Variable:()=>Variable,ZerosLike:()=>ZerosLike,_FusedMatMul:()=>_FusedMatMul,abs:()=>abs,acos:()=>acos,acosh:()=>acosh,add:()=>add2,addN:()=>addN,addStrict:()=>addStrict,all:()=>all,any:()=>any,argMax:()=>argMax,argMin:()=>argMin,asin:()=>asin,asinh:()=>asinh,atan:()=>atan,atan2:()=>atan2,atanh:()=>atanh,avgPool:()=>avgPool,avgPool3d:()=>avgPool3d,backend:()=>backend,backend_util:()=>backend_util_exports,basicLSTMCell:()=>basicLSTMCell,batchNorm:()=>batchNorm,batchNorm2d:()=>batchNorm2d,batchNorm3d:()=>batchNorm3d,batchNorm4d:()=>batchNorm4d,batchToSpaceND:()=>batchToSpaceND,bincount:()=>bincount,booleanMaskAsync:()=>booleanMaskAsync,broadcastTo:()=>broadcastTo,browser:()=>browser_exports,buffer:()=>buffer,callbacks:()=>callbacks,cast:()=>cast,ceil:()=>ceil,clipByValue:()=>clipByValue,clone:()=>clone,complex:()=>complex,concat:()=>concat,concat1d:()=>concat1d,concat2d:()=>concat2d,concat3d:()=>concat3d,concat4d:()=>concat4d,constraints:()=>exports_constraints_exports,conv1d:()=>conv1d,conv2d:()=>conv2d,conv2dTranspose:()=>conv2dTranspose,conv3d:()=>conv3d,conv3dTranspose:()=>conv3dTranspose,copyRegisteredKernels:()=>copyRegisteredKernels,cos:()=>cos,cosh:()=>cosh,cosineWindow:()=>cosineWindow,cumsum:()=>cumsum,customGrad:()=>customGrad,data:()=>dist_exports,denseBincount:()=>denseBincount,deprecationWarn:()=>deprecationWarn,depthToSpace:()=>depthToSpace,depthwiseConv2d:()=>depthwiseConv2d,deregisterOp:()=>deregisterOp,device_util:()=>device_util_exports,diag:()=>diag,dilation2d:()=>dilation2d,disableDeprecationWarnings:()=>disableDeprecationWarnings,dispose:()=>dispose,disposeVariables:()=>disposeVariables,div:()=>div,divNoNan:()=>divNoNan,divStrict:()=>divStrict,dot:()=>dot,dropout:()=>dropout,elu:()=>elu,enableDebugMode:()=>enableDebugMode,enableProdMode:()=>enableProdMode,enclosingPowerOfTwo:()=>enclosingPowerOfTwo,engine:()=>engine,env:()=>env,equal:()=>equal,equalStrict:()=>equalStrict,erf:()=>erf,exp:()=>exp,expandDims:()=>expandDims,expm1:()=>expm1,eye:()=>eye,fft:()=>fft,fill:()=>fill,findBackend:()=>findBackend,findBackendFactory:()=>findBackendFactory,floor:()=>floor,floorDiv:()=>floorDiv,forceHalfFloat:()=>forceHalfFloat,fused:()=>fused_ops_exports,gather:()=>gather,gatherND:()=>gatherND,gather_util:()=>gather_nd_util_exports,getBackend:()=>getBackend,getGradient:()=>getGradient,getKernel:()=>getKernel,getKernelsForBackend:()=>getKernelsForBackend,gpgpu_util:()=>gpgpu_util_exports,grad:()=>grad,grads:()=>grads,greater:()=>greater,greaterEqual:()=>greaterEqual,greaterEqualStrict:()=>greaterEqualStrict,greaterStrict:()=>greaterStrict,ifft:()=>ifft,imag:()=>imag,image:()=>image,inTopKAsync:()=>inTopKAsync,initializers:()=>exports_initializers_exports,input:()=>input,io:()=>io_exports,irfft:()=>irfft,isFinite:()=>isFinite2,isInf:()=>isInf,isNaN:()=>isNaN2,keep:()=>keep,kernel_impls:()=>kernel_impls_exports,layers:()=>exports_layers_exports,leakyRelu:()=>leakyRelu,less:()=>less,lessEqual:()=>lessEqual,lessEqualStrict:()=>lessEqualStrict,lessStrict:()=>lessStrict,linalg:()=>linalg,linspace:()=>linspace,loadGraphModel:()=>loadGraphModel,loadLayersModel:()=>loadLayersModel,localResponseNormalization:()=>localResponseNormalization,log:()=>log2,log1p:()=>log1p,logSigmoid:()=>logSigmoid,logSoftmax:()=>logSoftmax,logSumExp:()=>logSumExp,logicalAnd:()=>logicalAnd,logicalNot:()=>logicalNot,logicalOr:()=>logicalOr,logicalXor:()=>logicalXor,losses:()=>losses,matMul:()=>matMul,math:()=>math_exports,max:()=>max,maxPool:()=>maxPool,maxPool3d:()=>maxPool3d,maxPoolWithArgmax:()=>maxPoolWithArgmax,maximum:()=>maximum,maximumStrict:()=>maximumStrict,mean:()=>mean,memory:()=>memory,metrics:()=>exports_metrics_exports,min:()=>min,minimum:()=>minimum,minimumStrict:()=>minimumStrict,mirrorPad:()=>mirrorPad,mod:()=>mod,modStrict:()=>modStrict,model:()=>model,models:()=>exports_models_exports,moments:()=>moments,movingAverage:()=>movingAverage,mul:()=>mul,mulStrict:()=>mulStrict,multiRNNCell:()=>multiRNNCell,multinomial:()=>multinomial,neg:()=>neg,nextFrame:()=>nextFrame,norm:()=>norm,notEqual:()=>notEqual,notEqualStrict:()=>notEqualStrict,oneHot:()=>oneHot,ones:()=>ones2,onesLike:()=>onesLike,op:()=>op,outerProduct:()=>outerProduct,pad:()=>pad,pad1d:()=>pad1d,pad2d:()=>pad2d,pad3d:()=>pad3d,pad4d:()=>pad4d,pool:()=>pool,pow:()=>pow,powStrict:()=>powStrict,prelu:()=>prelu,print:()=>print2,prod:()=>prod,profile:()=>profile,rand:()=>rand,randomGamma:()=>randomGamma,randomNormal:()=>randomNormal,randomUniform:()=>randomUniform,range:()=>range,ready:()=>ready,real:()=>real,reciprocal:()=>reciprocal,registerBackend:()=>registerBackend,registerCallbackConstructor:()=>registerCallbackConstructor,registerGradient:()=>registerGradient,registerKernel:()=>registerKernel,registerOp:()=>registerOp,regularizers:()=>exports_regularizers_exports,relu:()=>relu,relu6:()=>relu6,removeBackend:()=>removeBackend,reshape:()=>reshape,reverse:()=>reverse,reverse1d:()=>reverse1d,reverse2d:()=>reverse2d,reverse3d:()=>reverse3d,reverse4d:()=>reverse4d,rfft:()=>rfft,round:()=>round2,rsqrt:()=>rsqrt,scalar:()=>scalar,scatterND:()=>scatterND,scatter_util:()=>scatter_nd_util_exports,selu:()=>selu,separableConv2d:()=>separableConv2d,sequential:()=>sequential,serialization:()=>serialization_exports,setBackend:()=>setBackend,setPlatform:()=>setPlatform,setWasmPath:()=>setWasmPath,setWasmPaths:()=>setWasmPaths,setWebGLContext:()=>setWebGLContext,setdiff1dAsync:()=>setdiff1dAsync,shared:()=>shared_exports,sigmoid:()=>sigmoid,sign:()=>sign,signal:()=>signal,sin:()=>sin,sinh:()=>sinh,slice:()=>slice,slice1d:()=>slice1d,slice2d:()=>slice2d,slice3d:()=>slice3d,slice4d:()=>slice4d,slice_util:()=>slice_util_exports,softmax:()=>softmax,softplus:()=>softplus,spaceToBatchND:()=>spaceToBatchND,sparseToDense:()=>sparseToDense,spectral:()=>spectral,split:()=>split,sqrt:()=>sqrt,square:()=>square,squaredDifference:()=>squaredDifference,squaredDifferenceStrict:()=>squaredDifferenceStrict,squeeze:()=>squeeze,stack:()=>stack,step:()=>step,stridedSlice:()=>stridedSlice,sub:()=>sub,subStrict:()=>subStrict,sum:()=>sum2,sumOutType:()=>sumOutType,tan:()=>tan,tanh:()=>tanh2,tensor:()=>tensor,tensor1d:()=>tensor1d,tensor2d:()=>tensor2d,tensor3d:()=>tensor3d,tensor4d:()=>tensor4d,tensor5d:()=>tensor5d,tensor6d:()=>tensor6d,tensor_util:()=>tensor_util_exports,test_util:()=>test_util_exports,tidy:()=>tidy,tile:()=>tile,time:()=>time,topk:()=>topk,train:()=>train,transpose:()=>transpose,truncatedNormal:()=>truncatedNormal,unique:()=>unique,unregisterGradient:()=>unregisterGradient,unregisterKernel:()=>unregisterKernel,unsortedSegmentSum:()=>unsortedSegmentSum,unstack:()=>unstack,upcastType:()=>upcastType,util:()=>util_exports,valueAndGrad:()=>valueAndGrad,valueAndGrads:()=>valueAndGrads,variable:()=>variable,variableGrads:()=>variableGrads,version:()=>version13,version_converter:()=>version11,version_core:()=>version6,version_cpu:()=>version7,version_layers:()=>version10,version_wasm:()=>version9,version_webgl:()=>version8,webgl:()=>webgl,webgl_util:()=>webgl_util_exports,where:()=>where,whereAsync:()=>whereAsync,zeros:()=>zeros,zerosLike:()=>zerosLike});var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__commonJS2=(callback,module)=>()=>(module||(module={exports:{}},callback(module.exports,module)),module.exports),__export2=(target,all4)=>{__markAsModule2(target);for(var name in all4)__defProp2(target,name,{get:all4[name],enumerable:!0})},__exportStar2=(target,module,desc)=>{if(__markAsModule2(target),module&&typeof module=="object"||typeof module=="function")for(let key of __getOwnPropNames2(module))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module[key],enumerable:!(desc=__getOwnPropDesc2(module,key))||desc.enumerable});return target},__toModule2=module=>module&&module.__esModule?module:__exportStar2(__defProp2(module!=null?__create2(__getProtoOf2(module)):{},"default",{value:module,enumerable:!0}),module),require_browser=__commonJS2(()=>{}),require_alea=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor128=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift7=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor4096=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_crypto=__commonJS2(()=>{}),require_seedrandom=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea(),xor128=require_xor128(),xorwow=require_xorwow(),xorshift7=require_xorshift7(),xor4096=require_xor4096(),tychei=require_tychei(),sr=require_seedrandom();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_alea2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=data2.toString();for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1282=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift72=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40962=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei2=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom3=__commonJS2((exports,module)=>{(function(pool3,math){var global2=this,width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}math["seed"+rngname]=seedrandom5;function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea2(),xor128=require_xor1282(),xorwow=require_xorwow2(),xorshift7=require_xorshift72(),xor4096=require_xor40962(),tychei=require_tychei2(),sr=require_seedrandom3();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_path=__commonJS2(()=>{}),require_worker_threads=__commonJS2(()=>{}),require_perf_hooks=__commonJS2(()=>{}),require_tfjs_backend_wasm_threaded_simd=__commonJS2((exports,module)=>{var WasmBackendModuleThreadedSimd=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModuleThreadedSimd2){WasmBackendModuleThreadedSimd2=WasmBackendModuleThreadedSimd2||{};function GROWABLE_HEAP_I8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP8}function GROWABLE_HEAP_U8(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU8}function GROWABLE_HEAP_I32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAP32}function GROWABLE_HEAP_U32(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPU32}function GROWABLE_HEAP_F64(){return wasmMemory.buffer!=buffer2&&updateGlobalBufferAndViews(wasmMemory.buffer),HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd2!="undefined"?WasmBackendModuleThreadedSimd2:{},_scriptDir2=void 0,moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module.ENVIRONMENT_IS_PTHREAD||!1;ENVIRONMENT_IS_PTHREAD&&(buffer2=Module.buffer,DYNAMIC_BASE=Module.DYNAMIC_BASE,DYNAMICTOP_PTR=Module.DYNAMICTOP_PTR);var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;if(ENVIRONMENT_IS_NODE){ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status){process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"};var nodeWorkerThreads;try{nodeWorkerThreads=require_worker_threads()}catch(e){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),e}Worker=nodeWorkerThreads.Worker}else ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status){quit(status)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir2&&(scriptDirectory=_scriptDir2),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",ENVIRONMENT_IS_NODE?(read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret}):(read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)}),setWindowTitle=function(title){document.title=title});ENVIRONMENT_IS_NODE&&typeof performance=="undefined"&&(performance=require_perf_hooks().performance);var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var Atomics_load=Atomics.load,Atomics_store=Atomics.store,Atomics_compareExchange=Atomics.compareExchange,wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:169,maximum:169+0,element:"anyfunc"}),wasmModule,threadInfoStruct=0,selfThreadId=0,ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str){var ret2=0;if(str!=null&&str!==0){var len=(str.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224?u0=(u0&15)<<12|u1<<6|u2:u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63,u0<65536)str+=String.fromCharCode(u0);else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){for(var len=0,i=0;i=55296&&u<=57343&&(u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023),u<=127?++len:u<=2047?len+=2:u<=65535?len+=3:len+=4}return len}function writeArrayToMemory(array2,buffer3){GROWABLE_HEAP_I8().set(array2,buffer3)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){return x%multiple>0&&(x+=multiple-x%multiple),x}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656,INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;if(ENVIRONMENT_IS_PTHREAD)wasmMemory=Module.wasmMemory,buffer2=Module.buffer;else if(Module.wasmMemory)wasmMemory=Module.wasmMemory;else if(wasmMemory=new WebAssembly.Memory({initial:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,maximum:2147483648/WASM_PAGE_SIZE,shared:!0}),!(wasmMemory.buffer instanceof SharedArrayBuffer))throw err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ENVIRONMENT_IS_NODE&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");wasmMemory&&(buffer2=wasmMemory.buffer),INITIAL_INITIAL_MEMORY=buffer2.byteLength,updateGlobalBufferAndViews(buffer2),ENVIRONMENT_IS_PTHREAD||(GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE);function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1;ENVIRONMENT_IS_PTHREAD&&(runtimeInitialized=!0);function preRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){ENVIRONMENT_IS_PTHREAD||callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(!ENVIRONMENT_IS_PTHREAD){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){assert3(!ENVIRONMENT_IS_PTHREAD,"addRunDependency cannot be used in a pthread worker"),runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),ENVIRONMENT_IS_PTHREAD&&console.error("Pthread aborting at "+new Error().stack),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm-threaded-simd.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={a:asmLibraryArg};function receiveInstance(instance,module2){var exports3=instance.exports;if(Module.asm=exports3,wasmModule=module2,!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){--numWorkersToLoad||removeRunDependency("wasm-instantiate")})})}}ENVIRONMENT_IS_PTHREAD||addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance,output.module)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}ENVIRONMENT_IS_PTHREAD||__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0,__pthread_is_main_runtime_thread=0,__pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0,isMainBrowserThread=isMainBrowserThread|0,isMainRuntimeThread=isMainRuntimeThread|0,__pthread_ptr=pthreadPtr,__pthread_is_main_browser_thread=isMainBrowserThread,__pthread_is_main_runtime_thread=isMainRuntimeThread}Module.__register_pthread_ptr=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},__main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count2){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0||count2<0)return-28;if(count2==0)return 0;count2>=2147483647&&(count2=Infinity);var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2),mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress&&(--count2,mainThreadWoken=1,count2<=0))return 1}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count2);if(ret>=0)return ret+mainThreadWoken;throw"Atomics.notify returned an unexpected value "+ret}Module._emscripten_futex_wake=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _kill_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate(),PThread.freeThreadData(pthread),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1),pthread.worker.pthread=void 0}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({cmd:"cancel"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!pthread_ptr)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1),_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){for(var pthreadPoolSize=8,i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;for(var tlsMemory=13056,i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock),Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){for(;PThread.exitHandlers.length>0;)PThread.exitHandlers.pop()();PThread.exitHandlers=null}ENVIRONMENT_IS_PTHREAD&&threadInfoStruct&&___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();tb&&(Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode),Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1),Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0),PThread.runExitHandlers(),_emscripten_futex_wake(tb+0,2147483647),__register_pthread_ptr(0,0,0),threadInfoStruct=0,ENVIRONMENT_IS_PTHREAD&&postMessage({cmd:"exit"}))},threadCancel:function(){PThread.runExitHandlers(),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1),Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1),_emscripten_futex_wake(threadInfoStruct+0,2147483647),threadInfoStruct=selfThreadId=0,__register_pthread_ptr(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];pthread&&pthread.worker&&PThread.returnWorkerToPool(pthread.worker)}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0,_free(tlsMemory),_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0,pthread.allocatedOwnStack&&pthread.stackBase&&_free(pthread.stackBase),pthread.stackBase=0,pthread.worker&&(pthread.worker.pthread=null)}},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread],PThread.unusedWorkers.push(worker),PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1),PThread.freeThreadData(worker.pthread),worker.pthread=void 0},receiveObjectTransfer:function(data2){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e.data,cmd=d.cmd;if(worker.pthread&&(PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct),d.targetThread&&d.targetThread!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];thread?thread.worker.postMessage(e.data,d.transferList):console.error('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d.targetThread+", but that thread no longer exists!"),PThread.currentProxiedOperationCallerThread=void 0;return}if(cmd==="processQueuedMainThreadWork")_emscripten_main_thread_process_queued_calls();else if(cmd==="spawnThread")__spawn_thread(e.data);else if(cmd==="cleanupThread")__cleanup_thread(d.thread);else if(cmd==="killThread")__kill_thread(d.thread);else if(cmd==="cancelThread")__cancel_thread(d.thread);else if(cmd==="loaded")worker.loaded=!0,onFinishedLoading&&onFinishedLoading(worker),worker.runPthread&&(worker.runPthread(),delete worker.runPthread);else if(cmd==="print")out("Thread "+d.threadId+": "+d.text);else if(cmd==="printErr")err("Thread "+d.threadId+": "+d.text);else if(cmd==="alert")alert("Thread "+d.threadId+": "+d.text);else if(cmd==="exit"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);detached&&PThread.returnWorkerToPool(worker)}else cmd==="cancelDone"?PThread.returnWorkerToPool(worker):cmd==="objectTransfer"?PThread.receiveObjectTransfer(e.data):e.data.target==="setimmediate"?worker.postMessage(e.data):err("worker sent an unknown command "+cmd);PThread.currentProxiedOperationCallerThread=void 0},worker.onerror=function(e){err("pthread sent an error! "+e.filename+":"+e.lineno+": "+e.message)},ENVIRONMENT_IS_NODE&&(worker.on("message",function(data2){worker.onmessage({data:data2})}),worker.on("error",function(data2){worker.onerror(data2)}),worker.on("exit",function(data2){console.log("worker exited - TODO: update the worker queue?")})),worker.postMessage({cmd:"load",urlOrBlob:Module.mainScriptUrlOrBlob||_scriptDir2,wasmMemory,wasmModule,DYNAMIC_BASE,DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("tfjs-backend-wasm-threaded-simd.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){return PThread.unusedWorkers.length==0&&(PThread.allocateUnusedWorker(),PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])),PThread.unusedWorkers.length>0?PThread.unusedWorkers.pop():null},busySpinWait:function(msecs){for(var t=performance.now()+msecs;performance.now()>2]=value,value}function _atexit(func2,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func2,arg);__ATEXIT__.unshift({func:func2,arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId)postMessage({cmd:"processQueuedMainThreadWork"});else if(ENVIRONMENT_IS_PTHREAD)postMessage({targetThread:targetThreadId,cmd:"processThreadQueue"});else{var pthread=PThread.pthreads[targetThreadId],worker=pthread&&pthread.worker;if(!worker)return;worker.postMessage({cmd:"processThreadQueue"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0,newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&!0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret==="timed-out")return-73;if(ret==="not-equal")return-6;if(ret==="ok")return 0;throw"Atomics.wait returned an unexpected value "+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now(),tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);for(var ourWaitAddress=addr;addr==ourWaitAddress;){if(tNow=performance.now(),tNow>tEnd)return-73;_emscripten_main_thread_process_queued_calls(),addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator.hardwareConcurrency}function _emscripten_proxy_to_main_thread_js(index,sync){for(var numCallArgs=arguments.length-2,stack2=stackSave(),args=stackAlloc(numCallArgs*8),b=args>>3,i=0;i>3]),buf+=8):(buf=buf+3&~3,args.push(GROWABLE_HEAP_I32()[buf>>2]),buf+=4);return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;for(var b=args>>3,i=0;i>>16),updateGlobalBufferAndViews(wasmMemory.buffer),1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize)return!1;var PAGE_MULTIPLE=65536,maxHeapSize=2147483648;if(requestedSize>maxHeapSize)return!1;for(var minHeapSize=16777216,cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE)),replacement=emscripten_realloc_buffer(newSize);if(replacement)return!0}return!1}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i)JSEvents._removeHandler(i);JSEvents.eventHandlers=[],JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){JSEvents.removeEventListenersRegistered||(__ATEXIT__.push(JSEvents.removeAllEventListeners),JSEvents.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return!1;for(var i2 in arrA)if(arrA[i2]!=arrB[i2])return!1;return!0}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList))return}JSEvents.deferredCalls.push({targetFunction,precedence,argsList}),JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId,GROWABLE_HEAP_I32()[varargs+4>>2]=eventData,GROWABLE_HEAP_I32()[varargs+8>>2]=userData,_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs),stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){return target?target==window?"#window":target==screen?"#screen":target&&target.nodeName?target.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1,cString=_malloc(length);return stringToUTF8(jsString,cString,length),cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave(),varargs=stackAlloc(12),targetCanvasPtr=0;targetCanvas&&(targetCanvasPtr=stringToNewUTF8(targetCanvas)),GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr,GROWABLE_HEAP_I32()[varargs+4>>2]=width,GROWABLE_HEAP_I32()[varargs+8>>2]=height,_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs),stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):"",_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):void 0);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr&&(GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width,GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height),canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){canvas.offscreenCanvas&&(canvas=canvas.offscreenCanvas);var autoResizeViewport=!1;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width,canvas.height=height,autoResizeViewport&&canvas.GLctxObject.GLctx.viewport(0,0,width,height)}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];return _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height),1}else return-4;return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(2,1,target,width,height):_emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);return canvas?_emscripten_set_canvas_element_size_calling_thread(target,width,height):_emscripten_set_canvas_element_size_main_thread(target,width,height)}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0,name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext)return ctx.vertexAttribDivisor=function(index,divisor){ext.vertexAttribDivisorANGLE(index,divisor)},ctx.drawArraysInstanced=function(mode,first,count2,primcount){ext.drawArraysInstancedANGLE(mode,first,count2,primcount)},ctx.drawElementsInstanced=function(mode,count2,type,indices,primcount){ext.drawElementsInstancedANGLE(mode,count2,type,indices,primcount)},1}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext)return ctx.createVertexArray=function(){return ext.createVertexArrayOES()},ctx.deleteVertexArray=function(vao){ext.deleteVertexArrayOES(vao)},ctx.bindVertexArray=function(vao){ext.bindVertexArrayOES(vao)},ctx.isVertexArray=function(vao){return ext.isVertexArrayOES(vao)},1}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext)return ctx.drawBuffers=function(n,bufs){ext.drawBuffersWEBGL(n,bufs)},1}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE),i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?void 0:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};return ctx.canvas&&(ctx.canvas.GLctxObject=context),GL.contexts[handle]=context,(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault)&&GL.initExtensions(context),handle},makeContextCurrent:function(contextHandle){return GL.currentContext=GL.contexts[contextHandle],Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx,!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){GL.currentContext===GL.contexts[contextHandle]&&(GL.currentContext=null),typeof JSEvents=="object"&&JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas),GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas&&(GL.contexts[contextHandle].GLctx.canvas.GLctxObject=void 0),_free(GL.contexts[contextHandle].handle),GL.contexts[contextHandle]=null},initExtensions:function(context){if(context||(context=GL.currentContext),!context.initExtensionsDone){context.initExtensionsDone=!0;var GLctx2=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx2),__webgl_enable_OES_vertex_array_object(GLctx2),__webgl_enable_WEBGL_draw_buffers(GLctx2),GLctx2.disjointTimerQueryExt=GLctx2.getExtension("EXT_disjoint_timer_query");var automaticallyEnabledExtensions=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],exts=GLctx2.getSupportedExtensions()||[];exts.forEach(function(ext){automaticallyEnabledExtensions.indexOf(ext)!=-1&&GLctx2.getExtension(ext)})}},populateUniformTable:function(program){for(var p2=GL.programs[program],ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},utable=ptable.uniforms,numUniforms=GLctx.getProgramParameter(p2,35718),i=0;i>2;contextAttributes.alpha=!!GROWABLE_HEAP_I32()[a+(0>>2)],contextAttributes.depth=!!GROWABLE_HEAP_I32()[a+(4>>2)],contextAttributes.stencil=!!GROWABLE_HEAP_I32()[a+(8>>2)],contextAttributes.antialias=!!GROWABLE_HEAP_I32()[a+(12>>2)],contextAttributes.premultipliedAlpha=!!GROWABLE_HEAP_I32()[a+(16>>2)],contextAttributes.preserveDrawingBuffer=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes.powerPreference=__emscripten_webgl_power_preferences[powerPreference],contextAttributes.failIfMajorPerformanceCaveat=!!GROWABLE_HEAP_I32()[a+(28>>2)],contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)],contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)],contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)],contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)],contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)],contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(contextAttributes.explicitSwapControl)return-1;var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a12){return _emscripten_webgl_do_create_context(a0,a12)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return ENVIRONMENT_IS_PTHREAD?_emscripten_proxy_to_main_thread_js(3,1,fd):0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);for(var num=0,i=0;i>2],len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _pthread_cleanup_pop(execute2){var routine=PThread.exitHandlers.pop();execute2&&routine()}function _pthread_cleanup_push(routine,arg){PThread.exitHandlers===null&&(PThread.exitHandlers=[]),PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var worker=PThread.getNewWorker();if(worker.pthread!==void 0)throw"Internal error!";if(!threadParams.pthread_ptr)throw"Internal error, no pthread ptr!";PThread.runningWorkers.push(worker);for(var tlsMemory=_malloc(128*4),i=0;i<128;++i)GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0;var stackHigh=threadParams.stackBase+threadParams.stackSize,pthread=PThread.pthreads[threadParams.pthread_ptr]={worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr},tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory),Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0),Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct),Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42),Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize),Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy),Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc(),global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale),worker.pthread=pthread;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,threadInfoStruct:threadParams.pthread_ptr,selfThreadId:threadParams.pthread_ptr,parentThreadId:threadParams.parent_pthread_ptr,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now(),worker.postMessage(msg,threadParams.transferList)},worker.loaded&&(worker.runPthread(),delete worker.runPthread)}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread)return err("pthread_getschedparam called with a null thread pointer!"),ERRNO_CODES.ESRCH;var self2=GROWABLE_HEAP_I32()[thread+12>>2];if(self2!==thread)return err("pthread_getschedparam attempted on thread "+thread+", which does not point to a valid thread, or does not exist anymore!"),ERRNO_CODES.ESRCH;var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2),schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);return policy&&(GROWABLE_HEAP_I32()[policy>>2]=schedPolicy),schedparam&&(GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio),0}function _pthread_self(){return __pthread_ptr|0}Module._pthread_self=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer=="undefined")return err("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!pthread_ptr)return err("pthread_create called with a null thread pointer!"),28;var transferList=[],error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error))return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg);if(error)return error;var stackSize=0,stackBase=0,detached=0,schedPolicy=0,schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2],stackSize+=81920,stackBase=GROWABLE_HEAP_I32()[attr+8>>2],detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2],parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24),schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2],GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy,GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2],schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}else stackSize=2097152;var allocatedOwnStack=stackBase==0;allocatedOwnStack?stackBase=_memalign(16,stackSize):(stackBase-=stackSize,assert3(stackBase>0));for(var threadInfoStruct2=_malloc(232),i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct2>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct2,GROWABLE_HEAP_I32()[threadInfoStruct2+12>>2]=threadInfoStruct2;var headPtr=threadInfoStruct2+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase,stackSize,allocatedOwnStack,schedPolicy,schedPrio,detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct2,parent_pthread_ptr:_pthread_self(),arg,transferList};return ENVIRONMENT_IS_PTHREAD?(threadParams.cmd="spawnThread",postMessage(threadParams,transferList)):__spawn_thread(threadParams),0}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return setErrNo(28),-1}ENVIRONMENT_IS_PTHREAD?PThread.initWorker():PThread.initMainThreadBlock();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf],asmLibraryArg={e:___assert_fail,r:___call_main,w:__emscripten_notify_thread_queue,a:_abort,l:_emscripten_conditional_set_current_thread_status,d:_emscripten_futex_wait,c:_emscripten_futex_wake,h:_emscripten_get_now,g:_emscripten_is_main_browser_thread,x:_emscripten_is_main_runtime_thread,q:_emscripten_memcpy_big,B:_emscripten_num_logical_cores,t:_emscripten_receive_on_main_thread_js,A:_emscripten_resize_heap,u:_emscripten_set_canvas_element_size,k:_emscripten_set_current_thread_status,s:_emscripten_set_thread_name,v:_emscripten_webgl_create_context,m:_fd_close,o:_fd_seek,i:_fd_write,p:initPthreadsJS,memory:wasmMemory||Module.wasmMemory,y:_pthread_cleanup_pop,z:_pthread_cleanup_push,j:_pthread_create,b:_pthread_self,f:_roundf,n:_sysconf,table:wasmTable},asm=createWasm();Module.asm=asm;var ___wasm_call_ctors=Module.___wasm_call_ctors=function(){return(___wasm_call_ctors=Module.___wasm_call_ctors=Module.asm.C).apply(null,arguments)},_init=Module._init=function(){return(_init=Module._init=Module.asm.D).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.E).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.F).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.G).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.H).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.I).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.J).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.K).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.L).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.M).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.N).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.O).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.P).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Q).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.R).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.S).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.T).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.U).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.V).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.W).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.X).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Y).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.Z).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm._).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.$).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.aa).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.ba).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.ca).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.da).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.ea).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.fa).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.ga).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.ha).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.ia).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.ja).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.ka).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.la).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.ma).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.na).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.oa).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.pa).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.qa).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.ra).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.sa).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.ta).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.ua).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.va).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.wa).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.xa).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.ya).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.za).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Aa).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.Ba).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Ca).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Da).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.Ea).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Fa).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.Ga).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Ha).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Ia).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.Ja).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.Ka).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.La).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Ma).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Na).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Oa).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Pa).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.Qa).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.Ra).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sa).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Ta).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Ua).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Va).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.Wa).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Xa).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm.Ya).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.Za).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm._a).apply(null,arguments)},_emscripten_get_global_libc=Module._emscripten_get_global_libc=function(){return(_emscripten_get_global_libc=Module._emscripten_get_global_libc=Module.asm.$a).apply(null,arguments)},___errno_location=Module.___errno_location=function(){return(___errno_location=Module.___errno_location=Module.asm.ab).apply(null,arguments)},___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=function(){return(___em_js__initPthreadsJS=Module.___em_js__initPthreadsJS=Module.asm.bb).apply(null,arguments)},_memalign=Module._memalign=function(){return(_memalign=Module._memalign=Module.asm.cb).apply(null,arguments)},___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=function(){return(___pthread_tsd_run_dtors=Module.___pthread_tsd_run_dtors=Module.asm.db).apply(null,arguments)},_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=function(){return(_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=Module.asm.eb).apply(null,arguments)},_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=function(){return(_emscripten_current_thread_process_queued_calls=Module._emscripten_current_thread_process_queued_calls=Module.asm.fb).apply(null,arguments)},_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=function(){return(_emscripten_register_main_browser_thread_id=Module._emscripten_register_main_browser_thread_id=Module.asm.gb).apply(null,arguments)},_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=function(){return(_emscripten_main_browser_thread_id=Module._emscripten_main_browser_thread_id=Module.asm.hb).apply(null,arguments)},_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=function(){return(_emscripten_async_run_in_main_thread=Module._emscripten_async_run_in_main_thread=Module.asm.ib).apply(null,arguments)},_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=function(){return(_emscripten_sync_run_in_main_thread=Module._emscripten_sync_run_in_main_thread=Module.asm.jb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=function(){return(_emscripten_sync_run_in_main_thread_0=Module._emscripten_sync_run_in_main_thread_0=Module.asm.kb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=function(){return(_emscripten_sync_run_in_main_thread_1=Module._emscripten_sync_run_in_main_thread_1=Module.asm.lb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=function(){return(_emscripten_sync_run_in_main_thread_2=Module._emscripten_sync_run_in_main_thread_2=Module.asm.mb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module._emscripten_sync_run_in_main_thread_xprintf_varargs=Module.asm.nb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=function(){return(_emscripten_sync_run_in_main_thread_3=Module._emscripten_sync_run_in_main_thread_3=Module.asm.ob).apply(null,arguments)},_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=function(){return(_emscripten_sync_run_in_main_thread_4=Module._emscripten_sync_run_in_main_thread_4=Module.asm.pb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=function(){return(_emscripten_sync_run_in_main_thread_5=Module._emscripten_sync_run_in_main_thread_5=Module.asm.qb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=function(){return(_emscripten_sync_run_in_main_thread_6=Module._emscripten_sync_run_in_main_thread_6=Module.asm.rb).apply(null,arguments)},_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=function(){return(_emscripten_sync_run_in_main_thread_7=Module._emscripten_sync_run_in_main_thread_7=Module.asm.sb).apply(null,arguments)},_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=function(){return(_emscripten_run_in_main_runtime_thread_js=Module._emscripten_run_in_main_runtime_thread_js=Module.asm.tb).apply(null,arguments)},_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=function(){return(_emscripten_async_queue_on_thread_=Module._emscripten_async_queue_on_thread_=Module.asm.ub).apply(null,arguments)},_emscripten_tls_init=Module._emscripten_tls_init=function(){return(_emscripten_tls_init=Module._emscripten_tls_init=Module.asm.vb).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.wb).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.xb).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.yb).apply(null,arguments)},dynCall_vi=Module.dynCall_vi=function(){return(dynCall_vi=Module.dynCall_vi=Module.asm.zb).apply(null,arguments)},dynCall_v=Module.dynCall_v=function(){return(dynCall_v=Module.dynCall_v=Module.asm.Ab).apply(null,arguments)},dynCall_ii=Module.dynCall_ii=function(){return(dynCall_ii=Module.dynCall_ii=Module.asm.Bb).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap,Module.PThread=PThread,Module.PThread=PThread,Module._pthread_self=_pthread_self,Module.wasmMemory=wasmMemory,Module.ExitStatus=ExitStatus;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}if(Module.run=run,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();return ENVIRONMENT_IS_PTHREAD||(noExitRuntime=!0),ENVIRONMENT_IS_PTHREAD||run(),WasmBackendModuleThreadedSimd2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModuleThreadedSimd:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModuleThreadedSimd}):typeof exports=="object"&&(exports.WasmBackendModuleThreadedSimd=WasmBackendModuleThreadedSimd)}),require_tfjs_backend_wasm=__commonJS2((exports,module)=>{var WasmBackendModule=function(){var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(_scriptDir=_scriptDir||__filename),function(WasmBackendModule2){WasmBackendModule2=WasmBackendModule2||{};var Module=typeof WasmBackendModule2!="undefined"?WasmBackendModule2:{},moduleOverrides={},key;for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath;ENVIRONMENT_IS_NODE?(ENVIRONMENT_IS_WORKER?scriptDirectory=require_path().dirname(scriptDirectory)+"/":scriptDirectory=__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require_path()),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert3(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status){process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"}):ENVIRONMENT_IS_SHELL?(typeof read!="undefined"&&(read_=function(f){return read(f)}),readBinary=function(f){var data2;return typeof readbuffer=="function"?new Uint8Array(readbuffer(f)):(data2=read(f,"binary"),assert3(typeof data2=="object"),data2)},typeof scriptArgs!="undefined"?arguments_=scriptArgs:typeof arguments!="undefined"&&(arguments_=arguments),typeof quit=="function"&&(quit_=function(status){quit(status)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory.indexOf("blob:")!==0?scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):scriptDirectory="",read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()},xhr.onerror=onerror,xhr.send(null)},setWindowTitle=function(title){document.title=title});var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit);var wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var noExitRuntime;Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),typeof WebAssembly!="object"&&err("no native wasm support detected");var wasmMemory,wasmTable=new WebAssembly.Table({initial:151,maximum:151+0,element:"anyfunc"}),ABORT=!1,EXITSTATUS=0;function assert3(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func2=Module["_"+ident];return assert3(func2,"Cannot call unknown function "+ident+", make sure it is exported"),func2}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str){var ret2=0;if(str!=null&&str!==0){var len=(str.length<<2)+1;ret2=stackAlloc(len),stringToUTF8(str,ret2,len)}return ret2},array:function(arr){var ret2=stackAlloc(arr.length);return writeArrayToMemory(arr,ret2),ret2}};function convertReturnValue(ret2){return returnType==="string"?UTF8ToString(ret2):returnType==="boolean"?Boolean(ret2):ret2}var func2=getCFunc(ident),cArgs=[],stack2=0;if(args)for(var i=0;i=endIdx);)++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder)return UTF8Decoder.decode(heap.subarray(idx,endPtr));for(var str="";idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|u&63}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array2,buffer3){HEAP8.set(array2,buffer3)}var buffer2,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer2=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;function callRuntimeCallbacks(callbacks2){for(;callbacks2.length>0;){var callback=callbacks2.shift();if(typeof callback=="function"){callback(Module);continue}var func2=callback.func;typeof func2=="number"?callback.arg===void 0?Module.dynCall_v(func2):Module.dynCall_vi(func2,callback.arg):func2(callback.arg===void 0?null:callback.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil,Math_floor=Math.floor,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}Module.preloadedImages={},Module.preloadedAudios={};function abort(what){throw Module.onAbort&&Module.onAbort(what),what+="",out(what),err(what),ABORT=!0,EXITSTATUS=1,what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="tfjs-backend-wasm.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(err2){abort(err2)}}function getBinaryPromise(){return!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch=="function"&&!isFileURI(wasmBinaryFile)?fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary()}):new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function receiveInstance(instance,module2){var exports3=instance.exports;Module.asm=exports3,wasmMemory=exports3.memory,updateGlobalBufferAndViews(wasmMemory.buffer),removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output.instance)}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function")fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})});else return instantiateArrayBuffer(receiveInstantiatedSource)}if(Module.instantiateWasm)try{var exports2=Module.instantiateWasm(info,receiveInstance);return exports2}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync(),{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];last==="."?parts.splice(i,1):last===".."?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";return path=PATH.normalizeArray(path.split("/").filter(function(p2){return!!p2}),!isAbsolute).join("/"),!path&&!isAbsolute&&(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];return!root&&!dir?".":(dir&&(dir=dir.substr(0,dir.length-1)),root+dir)},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");return lastSlash===-1?path:path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}},SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer3=SYSCALLS.buffers[stream];curr===0||curr===10?((stream===1?out:err)(UTF8ArrayToString(buffer3,0)),buffer3.length=0):buffer3.push(curr)},varargs:void 0,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){for(var num=0,i=0;i>2],len=HEAP32[iov+(i*8+4)>>2],j=0;j>2]=num,0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){return d=+d,d>=0?+Math_floor(d+.5):+Math_ceil(d-.5)}var asmLibraryArg={emscripten_notify_memory_growth:_emscripten_notify_memory_growth,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write,proc_exit:_proc_exit,roundf:_roundf},asm=createWasm();Module.asm=asm;var _init=Module._init=function(){return(_init=Module._init=Module.asm.init).apply(null,arguments)},_register_tensor=Module._register_tensor=function(){return(_register_tensor=Module._register_tensor=Module.asm.register_tensor).apply(null,arguments)},_dispose_data=Module._dispose_data=function(){return(_dispose_data=Module._dispose_data=Module.asm.dispose_data).apply(null,arguments)},_dispose=Module._dispose=function(){return(_dispose=Module._dispose=Module.asm.dispose).apply(null,arguments)},_Abs=Module._Abs=function(){return(_Abs=Module._Abs=Module.asm.Abs).apply(null,arguments)},_Add=Module._Add=function(){return(_Add=Module._Add=Module.asm.Add).apply(null,arguments)},_AddN=Module._AddN=function(){return(_AddN=Module._AddN=Module.asm.AddN).apply(null,arguments)},_ArgMax=Module._ArgMax=function(){return(_ArgMax=Module._ArgMax=Module.asm.ArgMax).apply(null,arguments)},_AvgPool=Module._AvgPool=function(){return(_AvgPool=Module._AvgPool=Module.asm.AvgPool).apply(null,arguments)},_BatchMatMul=Module._BatchMatMul=function(){return(_BatchMatMul=Module._BatchMatMul=Module.asm.BatchMatMul).apply(null,arguments)},_ClipByValue=Module._ClipByValue=function(){return(_ClipByValue=Module._ClipByValue=Module.asm.ClipByValue).apply(null,arguments)},_Conv2D=Module._Conv2D=function(){return(_Conv2D=Module._Conv2D=Module.asm.Conv2D).apply(null,arguments)},_Conv2DBackpropInput=Module._Conv2DBackpropInput=function(){return(_Conv2DBackpropInput=Module._Conv2DBackpropInput=Module.asm.Conv2DBackpropInput).apply(null,arguments)},_Cos=Module._Cos=function(){return(_Cos=Module._Cos=Module.asm.Cos).apply(null,arguments)},_CropAndResize=Module._CropAndResize=function(){return(_CropAndResize=Module._CropAndResize=Module.asm.CropAndResize).apply(null,arguments)},_Cumsum=Module._Cumsum=function(){return(_Cumsum=Module._Cumsum=Module.asm.Cumsum).apply(null,arguments)},_DepthToSpace=Module._DepthToSpace=function(){return(_DepthToSpace=Module._DepthToSpace=Module.asm.DepthToSpace).apply(null,arguments)},_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=function(){return(_DepthwiseConv2dNative=Module._DepthwiseConv2dNative=Module.asm.DepthwiseConv2dNative).apply(null,arguments)},_Equal=Module._Equal=function(){return(_Equal=Module._Equal=Module.asm.Equal).apply(null,arguments)},_Exp=Module._Exp=function(){return(_Exp=Module._Exp=Module.asm.Exp).apply(null,arguments)},_FlipLeftRight=Module._FlipLeftRight=function(){return(_FlipLeftRight=Module._FlipLeftRight=Module.asm.FlipLeftRight).apply(null,arguments)},_Floor=Module._Floor=function(){return(_Floor=Module._Floor=Module.asm.Floor).apply(null,arguments)},_FloorDiv=Module._FloorDiv=function(){return(_FloorDiv=Module._FloorDiv=Module.asm.FloorDiv).apply(null,arguments)},_FusedBatchNorm=Module._FusedBatchNorm=function(){return(_FusedBatchNorm=Module._FusedBatchNorm=Module.asm.FusedBatchNorm).apply(null,arguments)},_FusedConv2D=Module._FusedConv2D=function(){return(_FusedConv2D=Module._FusedConv2D=Module.asm.FusedConv2D).apply(null,arguments)},_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=function(){return(_FusedDepthwiseConv2D=Module._FusedDepthwiseConv2D=Module.asm.FusedDepthwiseConv2D).apply(null,arguments)},_Gather=Module._Gather=function(){return(_Gather=Module._Gather=Module.asm.Gather).apply(null,arguments)},_GatherNd=Module._GatherNd=function(){return(_GatherNd=Module._GatherNd=Module.asm.GatherNd).apply(null,arguments)},_Greater=Module._Greater=function(){return(_Greater=Module._Greater=Module.asm.Greater).apply(null,arguments)},_GreaterEqual=Module._GreaterEqual=function(){return(_GreaterEqual=Module._GreaterEqual=Module.asm.GreaterEqual).apply(null,arguments)},_LeakyRelu=Module._LeakyRelu=function(){return(_LeakyRelu=Module._LeakyRelu=Module.asm.LeakyRelu).apply(null,arguments)},_Less=Module._Less=function(){return(_Less=Module._Less=Module.asm.Less).apply(null,arguments)},_LessEqual=Module._LessEqual=function(){return(_LessEqual=Module._LessEqual=Module.asm.LessEqual).apply(null,arguments)},_Log=Module._Log=function(){return(_Log=Module._Log=Module.asm.Log).apply(null,arguments)},_LogicalAnd=Module._LogicalAnd=function(){return(_LogicalAnd=Module._LogicalAnd=Module.asm.LogicalAnd).apply(null,arguments)},_Max=Module._Max=function(){return(_Max=Module._Max=Module.asm.Max).apply(null,arguments)},_MaxPool=Module._MaxPool=function(){return(_MaxPool=Module._MaxPool=Module.asm.MaxPool).apply(null,arguments)},_Maximum=Module._Maximum=function(){return(_Maximum=Module._Maximum=Module.asm.Maximum).apply(null,arguments)},_Mean=Module._Mean=function(){return(_Mean=Module._Mean=Module.asm.Mean).apply(null,arguments)},_Min=Module._Min=function(){return(_Min=Module._Min=Module.asm.Min).apply(null,arguments)},_Minimum=Module._Minimum=function(){return(_Minimum=Module._Minimum=Module.asm.Minimum).apply(null,arguments)},_Multiply=Module._Multiply=function(){return(_Multiply=Module._Multiply=Module.asm.Multiply).apply(null,arguments)},_Neg=Module._Neg=function(){return(_Neg=Module._Neg=Module.asm.Neg).apply(null,arguments)},_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=function(){return(_NonMaxSuppressionV3=Module._NonMaxSuppressionV3=Module.asm.NonMaxSuppressionV3).apply(null,arguments)},_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=function(){return(_NonMaxSuppressionV4=Module._NonMaxSuppressionV4=Module.asm.NonMaxSuppressionV4).apply(null,arguments)},_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=function(){return(_NonMaxSuppressionV5=Module._NonMaxSuppressionV5=Module.asm.NonMaxSuppressionV5).apply(null,arguments)},_NotEqual=Module._NotEqual=function(){return(_NotEqual=Module._NotEqual=Module.asm.NotEqual).apply(null,arguments)},_OneHot=Module._OneHot=function(){return(_OneHot=Module._OneHot=Module.asm.OneHot).apply(null,arguments)},_PadV2=Module._PadV2=function(){return(_PadV2=Module._PadV2=Module.asm.PadV2).apply(null,arguments)},_Pow=Module._Pow=function(){return(_Pow=Module._Pow=Module.asm.Pow).apply(null,arguments)},_Prelu=Module._Prelu=function(){return(_Prelu=Module._Prelu=Module.asm.Prelu).apply(null,arguments)},_Prod=Module._Prod=function(){return(_Prod=Module._Prod=Module.asm.Prod).apply(null,arguments)},_RealDiv=Module._RealDiv=function(){return(_RealDiv=Module._RealDiv=Module.asm.RealDiv).apply(null,arguments)},_Relu=Module._Relu=function(){return(_Relu=Module._Relu=Module.asm.Relu).apply(null,arguments)},_Relu6=Module._Relu6=function(){return(_Relu6=Module._Relu6=Module.asm.Relu6).apply(null,arguments)},_ResizeBilinear=Module._ResizeBilinear=function(){return(_ResizeBilinear=Module._ResizeBilinear=Module.asm.ResizeBilinear).apply(null,arguments)},_Reverse=Module._Reverse=function(){return(_Reverse=Module._Reverse=Module.asm.Reverse).apply(null,arguments)},_RotateWithOffset=Module._RotateWithOffset=function(){return(_RotateWithOffset=Module._RotateWithOffset=Module.asm.RotateWithOffset).apply(null,arguments)},_Round=Module._Round=function(){return(_Round=Module._Round=Module.asm.Round).apply(null,arguments)},_Rsqrt=Module._Rsqrt=function(){return(_Rsqrt=Module._Rsqrt=Module.asm.Rsqrt).apply(null,arguments)},_ScatterNd=Module._ScatterNd=function(){return(_ScatterNd=Module._ScatterNd=Module.asm.ScatterNd).apply(null,arguments)},_SelectV2=Module._SelectV2=function(){return(_SelectV2=Module._SelectV2=Module.asm.SelectV2).apply(null,arguments)},_Sigmoid=Module._Sigmoid=function(){return(_Sigmoid=Module._Sigmoid=Module.asm.Sigmoid).apply(null,arguments)},_Sin=Module._Sin=function(){return(_Sin=Module._Sin=Module.asm.Sin).apply(null,arguments)},_Softmax=Module._Softmax=function(){return(_Softmax=Module._Softmax=Module.asm.Softmax).apply(null,arguments)},_Sqrt=Module._Sqrt=function(){return(_Sqrt=Module._Sqrt=Module.asm.Sqrt).apply(null,arguments)},_Square=Module._Square=function(){return(_Square=Module._Square=Module.asm.Square).apply(null,arguments)},_SquaredDifference=Module._SquaredDifference=function(){return(_SquaredDifference=Module._SquaredDifference=Module.asm.SquaredDifference).apply(null,arguments)},_StridedSlice=Module._StridedSlice=function(){return(_StridedSlice=Module._StridedSlice=Module.asm.StridedSlice).apply(null,arguments)},_Sub=Module._Sub=function(){return(_Sub=Module._Sub=Module.asm.Sub).apply(null,arguments)},_Sum=Module._Sum=function(){return(_Sum=Module._Sum=Module.asm.Sum).apply(null,arguments)},_Tanh=Module._Tanh=function(){return(_Tanh=Module._Tanh=Module.asm.Tanh).apply(null,arguments)},_Tile=Module._Tile=function(){return(_Tile=Module._Tile=Module.asm.Tile).apply(null,arguments)},_TopK=Module._TopK=function(){return(_TopK=Module._TopK=Module.asm.TopK).apply(null,arguments)},_Transpose=Module._Transpose=function(){return(_Transpose=Module._Transpose=Module.asm.Transpose).apply(null,arguments)},__FusedMatMul=Module.__FusedMatMul=function(){return(__FusedMatMul=Module.__FusedMatMul=Module.asm._FusedMatMul).apply(null,arguments)},_malloc=Module._malloc=function(){return(_malloc=Module._malloc=Module.asm.malloc).apply(null,arguments)},_free=Module._free=function(){return(_free=Module._free=Module.asm.free).apply(null,arguments)},__start=Module.__start=function(){return(__start=Module.__start=Module.asm._start).apply(null,arguments)},stackSave=Module.stackSave=function(){return(stackSave=Module.stackSave=Module.asm.stackSave).apply(null,arguments)},stackAlloc=Module.stackAlloc=function(){return(stackAlloc=Module.stackAlloc=Module.asm.stackAlloc).apply(null,arguments)},stackRestore=Module.stackRestore=function(){return(stackRestore=Module.stackRestore=Module.asm.stackRestore).apply(null,arguments)};Module.asm=asm,Module.cwrap=cwrap;var calledRun;Module.then=function(func2){if(calledRun)func2(Module);else{var old=Module.onRuntimeInitialized;Module.onRuntimeInitialized=function(){old&&old(),func2(Module)}}return Module};function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}var calledMain=!1;dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)};function callMain(args){var entryFunction=Module.__start;try{entryFunction();var ret=0;exit(ret,!0)}catch(e){if(e instanceof ExitStatus)return;if(e=="unwind"){noExitRuntime=!0;return}else{var toLog=e;e&&typeof e=="object"&&e.stack&&(toLog=[e,e.stack]),err("exception thrown: "+toLog),quit_(1,e)}}finally{calledMain=!0}}function run(args){if(args=args||arguments_,runDependencies>0||(preRun(),runDependencies>0))return;function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,!ABORT&&(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(args),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun()}Module.run=run;function exit(status,implicit){implicit&&noExitRuntime&&status===0||(noExitRuntime||(ABORT=!0,EXITSTATUS=status,exitRuntime(),Module.onExit&&Module.onExit(status)),quit_(status,new ExitStatus(status)))}if(Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),noExitRuntime=!0,run(),WasmBackendModule2}}();typeof exports=="object"&&typeof module=="object"?module.exports=WasmBackendModule:typeof define=="function"&&define.amd?define([],function(){return WasmBackendModule}):typeof exports=="object"&&(exports.WasmBackendModule=WasmBackendModule)}),require_alea3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function Alea(seed){var me=this,mash=Mash();me.next=function(){var t=2091639*me.s0+me.c*23283064365386963e-26;return me.s0=me.s1,me.s1=me.s2,me.s2=t-(me.c=t|0)},me.c=1,me.s0=mash(" "),me.s1=mash(" "),me.s2=mash(" "),me.s0-=mash(seed),me.s0<0&&(me.s0+=1),me.s1-=mash(seed),me.s1<0&&(me.s1+=1),me.s2-=mash(seed),me.s2<0&&(me.s2+=1),mash=null}function copy(f,t){return t.c=f.c,t.s0=f.s0,t.s1=f.s1,t.s2=f.s2,t}function impl(seed,opts){var xg=new Alea(seed),state=opts&&opts.state,prng=xg.next;return prng.int32=function(){return xg.next()*4294967296|0},prng.double=function(){return prng()+(prng()*2097152|0)*11102230246251565e-32},prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}function Mash(){var n=4022871197,mash=function(data2){data2=String(data2);for(var i=0;i>>0,h-=n,h*=n,n=h>>>0,h-=n,n+=h*4294967296}return(n>>>0)*23283064365386963e-26};return mash}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.alea=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor1283=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.x=0,me.y=0,me.z=0,me.w=0,me.next=function(){var t=me.x^me.x<<11;return me.x=me.y,me.y=me.z,me.z=me.w,me.w^=me.w>>>19^t^t>>>8},seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor128=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorwow3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var t=me.x^me.x>>>2;return me.x=me.y,me.y=me.z,me.z=me.w,me.w=me.v,(me.d=me.d+362437|0)+(me.v=me.v^me.v<<4^(t^t<<1))|0},me.x=0,me.y=0,me.z=0,me.w=0,me.v=0,seed===(seed|0)?me.x=seed:strseed+=seed;for(var k=0;k>>4),me.next()}function copy(f,t){return t.x=f.x,t.y=f.y,t.z=f.z,t.w=f.w,t.v=f.v,t.d=f.d,t}function impl(seed,opts){var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorwow=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xorshift73=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var X=me.x,i=me.i,t,v,w;return t=X[i],t^=t>>>7,v=t^t<<24,t=X[i+1&7],v^=t^t>>>10,t=X[i+3&7],v^=t^t>>>3,t=X[i+4&7],v^=t^t<<7,t=X[i+7&7],t=t^t<<13,v^=t^t<<9,X[i]=v,me.i=i+1&7,v};function init2(me2,seed2){var j,w,X=[];if(seed2===(seed2|0))w=X[0]=seed2;else for(seed2=""+seed2,j=0;j0;--j)me2.next()}init2(me,seed)}function copy(f,t){return t.x=f.x.slice(),t.i=f.i,t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.x&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xorshift7=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_xor40963=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this;me.next=function(){var w=me.w,X=me.X,i=me.i,t,v;return me.w=w=w+1640531527|0,v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,v=X[i]=v^t,me.i=i,v+(w^w>>>16)|0};function init2(me2,seed2){var t,v,i,j,w,X=[],limit=128;for(seed2===(seed2|0)?(v=seed2,seed2=null):(seed2=seed2+"\0",v=0,limit=Math.max(limit,seed2.length)),i=0,j=-32;j>>15,v^=v<<4,v^=v>>>13,j>=0&&(w=w+1640531527|0,t=X[j&127]^=v+w,i=t==0?i+1:0);for(i>=128&&(X[(seed2&&seed2.length||0)&127]=-1),i=127,j=4*128;j>0;--j)v=X[i+34&127],t=X[i=i+1&127],v^=v<<13,t^=t<<17,v^=v>>>15,t^=t>>>12,X[i]=v^t;me2.w=w,me2.X=X,me2.i=i}init2(me,seed)}function copy(f,t){return t.i=f.i,t.w=f.w,t.X=f.X.slice(),t}function impl(seed,opts){seed==null&&(seed=+new Date);var xg=new XorGen(seed),state=opts&&opts.state,prng=function(){return(xg.next()>>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(state.X&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.xor4096=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_tychei3=__commonJS2((exports,module)=>{(function(global2,module2,define2){function XorGen(seed){var me=this,strseed="";me.next=function(){var b=me.b,c=me.c,d=me.d,a=me.a;return b=b<<25^b>>>7^c,c=c-d|0,d=d<<24^d>>>8^a,a=a-b|0,me.b=b=b<<20^b>>>12^c,me.c=c=c-d|0,me.d=d<<16^c>>>16^a,me.a=a-b|0},me.a=0,me.b=0,me.c=2654435769|0,me.d=1367130551,seed===Math.floor(seed)?(me.a=seed/4294967296|0,me.b=seed|0):strseed+=seed;for(var k=0;k>>0)/4294967296};return prng.double=function(){do var top=xg.next()>>>11,bot=(xg.next()>>>0)/4294967296,result=(top+bot)/(1<<21);while(result===0);return result},prng.int32=xg.next,prng.quick=prng,state&&(typeof state=="object"&©(state,xg),prng.state=function(){return copy(xg,{})}),prng}module2&&module2.exports?module2.exports=impl:define2&&define2.amd?define2(function(){return impl}):this.tychei=impl})(exports,typeof module=="object"&&module,typeof define=="function"&&define)}),require_seedrandom5=__commonJS2((exports,module)=>{(function(global2,pool3,math){var width=256,chunks=6,digits=52,rngname="random",startdenom=math.pow(width,chunks),significance=math.pow(2,digits),overflow=significance*2,mask=width-1,nodecrypto;function seedrandom5(seed,options,callback){var key=[];options=options==!0?{entropy:!0}:options||{};var shortseed=mixkey(flatten4(options.entropy?[seed,tostring(pool3)]:seed==null?autoseed():seed,3),key),arc4=new ARC4(key),prng=function(){for(var n=arc4.g(chunks),d=startdenom,x=0;n=overflow;)n/=2,d/=2,x>>>=1;return(n+x)/d};return prng.int32=function(){return arc4.g(4)|0},prng.quick=function(){return arc4.g(4)/4294967296},prng.double=prng,mixkey(tostring(arc4.S),pool3),(options.pass||callback||function(prng2,seed2,is_math_call,state){return state&&(state.S&©(state,arc4),prng2.state=function(){return copy(arc4,{})}),is_math_call?(math[rngname]=prng2,seed2):prng2})(prng,shortseed,"global"in options?options.global:this==math,options.state)}function ARC4(key){var t,keylen=key.length,me=this,i=0,j=me.i=me.j=0,s=me.S=[];for(keylen||(key=[keylen++]);i{var alea5=require_alea3(),xor128=require_xor1283(),xorwow=require_xorwow3(),xorshift7=require_xorshift73(),xor4096=require_xor40963(),tychei=require_tychei3(),sr=require_seedrandom5();sr.alea=alea5,sr.xor128=xor128,sr.xorwow=xorwow,sr.xorshift7=xorshift7,sr.xor4096=xor4096,sr.tychei=tychei,module.exports=sr}),require_string_decoder=__commonJS2(()=>{}),version="2.8.3",version2="2.8.3",version3="2.8.3",version4="2.8.3",version5="2.8.3",EPSILON_FLOAT32=1e-7,EPSILON_FLOAT16=1e-4,DataStorage=class{constructor(backend22,dataMover){this.backend=backend22,this.dataMover=dataMover,this.data=new WeakMap,this.dataIdsCount=0}get(dataId){return this.data.has(dataId)||this.dataMover.moveData(this.backend,dataId),this.data.get(dataId)}set(dataId,value){this.dataIdsCount++,this.data.set(dataId,value)}has(dataId){return this.data.has(dataId)}delete(dataId){return this.dataIdsCount--,this.data.delete(dataId)}numDataIds(){return this.dataIdsCount}},KernelBackend=class{time(f){return notYetImplemented("time")}read(dataId){return notYetImplemented("read")}readSync(dataId){return notYetImplemented("readSync")}numDataIds(){return notYetImplemented("numDataIds")}disposeData(dataId){return notYetImplemented("disposeData")}write(values,shape,dtype){return notYetImplemented("write")}move(dataId,values,shape,dtype){return notYetImplemented("move")}memory(){return notYetImplemented("memory")}floatPrecision(){return notYetImplemented("floatPrecision")}epsilon(){return this.floatPrecision()===32?EPSILON_FLOAT32:EPSILON_FLOAT16}batchMatMul(a,b,transposeA,transposeB){return notYetImplemented("batchMatMul")}fusedBatchMatMul({a,b,transposeA,transposeB,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedBatchMatMul")}slice(x,begin,size){return notYetImplemented("slice")}stridedSlice(x,begin,end,strides){return notYetImplemented("stridedSlice")}unstack(x,axis){return notYetImplemented("unstack")}reverse(a,axis){return notYetImplemented("reverse")}concat(tensors,axis){return notYetImplemented("concat")}neg(a){return notYetImplemented("neg")}add(a,b){return notYetImplemented("add")}addN(tensors){return notYetImplemented("addN")}subtract(a,b){return notYetImplemented("subtract")}multiply(a,b){return notYetImplemented("multiply")}realDivide(a,b){return notYetImplemented("realDivide")}floorDiv(a,b){return notYetImplemented("floorDiv")}sum(x,axes){return notYetImplemented("sum")}prod(x,axes){return notYetImplemented("prod")}unsortedSegmentSum(x,segmentIds,numSegments){return notYetImplemented("unsortedSegmentSum")}argMin(x,axis){return notYetImplemented("argMin")}argMax(x,axis){return notYetImplemented("argMax")}equal(a,b){return notYetImplemented("equal")}notEqual(a,b){return notYetImplemented("notEqual")}less(a,b){return notYetImplemented("less")}lessEqual(a,b){return notYetImplemented("lessEqual")}greater(a,b){return notYetImplemented("greater")}greaterEqual(a,b){return notYetImplemented("greaterEqual")}logicalNot(a){return notYetImplemented("logicalNot")}logicalAnd(a,b){return notYetImplemented("logicalAnd")}logicalOr(a,b){return notYetImplemented("logicalOr")}where(condition){return notYetImplemented("where")}select(condition,a,b){return notYetImplemented("select")}topk(x,k,sorted){return notYetImplemented("topk")}min(x,axes){return notYetImplemented("min")}minimum(a,b){return notYetImplemented("minimum")}mod(a,b){return notYetImplemented("mod")}max(x,axes){return notYetImplemented("max")}maximum(a,b){return notYetImplemented("maximum")}all(x,axes){return notYetImplemented("all")}any(x,axes){return notYetImplemented("any")}squaredDifference(a,b){return notYetImplemented("squaredDifference")}ceil(x){return notYetImplemented("ceil")}floor(x){return notYetImplemented("floor")}round(x){return notYetImplemented("round")}sign(x){return notYetImplemented("sign")}isNaN(x){return notYetImplemented("isNaN")}isInf(x){return notYetImplemented("isInf")}isFinite(x){return notYetImplemented("isFinite")}pow(a,b){return notYetImplemented("pow")}exp(x){return notYetImplemented("exp")}expm1(x){return notYetImplemented("expm1")}softmax(x,dim){return notYetImplemented("softmax")}log(x){return notYetImplemented("log")}log1p(x){return notYetImplemented("log1p")}sqrt(x){return notYetImplemented("sqrt")}rsqrt(x){return notYetImplemented("rsqrt")}square(x){return notYetImplemented("square")}reciprocal(x){return notYetImplemented("reciprocal")}relu(x){return notYetImplemented("relu")}relu6(x){return notYetImplemented("relu6")}prelu(x,a){return notYetImplemented("prelu")}elu(x){return notYetImplemented("elu")}eluDer(dy,y){return notYetImplemented("eluDer")}selu(x){return notYetImplemented("selu")}int(x){return notYetImplemented("int")}clip(x,min6,max6){return notYetImplemented("clip")}abs(x){return notYetImplemented("abs")}complexAbs(x){return notYetImplemented("complexAbs")}sigmoid(x){return notYetImplemented("sigmoid")}softplus(x){return notYetImplemented("softplus")}sin(x){return notYetImplemented("sin")}cos(x){return notYetImplemented("cos")}tan(x){return notYetImplemented("tan")}asin(x){return notYetImplemented("asin")}acos(x){return notYetImplemented("acos")}atan(x){return notYetImplemented("atan")}atan2(a,b){return notYetImplemented("atan2")}sinh(x){return notYetImplemented("sinh")}cosh(x){return notYetImplemented("cosh")}tanh(x){return notYetImplemented("tanh")}asinh(x){return notYetImplemented("asinh")}acosh(x){return notYetImplemented("acosh")}atanh(x){return notYetImplemented("atanh")}erf(x){return notYetImplemented("erf")}step(x,alpha){return notYetImplemented("step")}fusedConv2d({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedConv2d")}conv2d(x,filter,convInfo){return notYetImplemented("conv2d")}conv2dDerInput(dy,filter,convInfo){return notYetImplemented("conv2dDerInput")}conv2dDerFilter(x,dY,convInfo){return notYetImplemented("conv2dDerFilter")}fusedDepthwiseConv2D({input:input2,filter,convInfo,bias,activation:activation2,preluActivationWeights}){return notYetImplemented("fusedDepthwiseConv2D")}depthwiseConv2D(input2,filter,convInfo){return notYetImplemented("depthwiseConv2D")}depthwiseConv2DDerInput(dy,filter,convInfo){return notYetImplemented("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(x,dY,convInfo){return notYetImplemented("depthwiseConv2DDerFilter")}conv3d(x,filter,convInfo){return notYetImplemented("conv3d")}conv3dDerInput(dy,filter,convInfo){return notYetImplemented("conv3dDerInput")}conv3dDerFilter(x,dY,convInfo){return notYetImplemented("conv3dDerFilter")}maxPool(x,convInfo){return notYetImplemented("maxPool")}maxPoolBackprop(dy,x,y,convInfo){return notYetImplemented("maxPoolBackprop")}avgPool(x,convInfo){return notYetImplemented("avgPool")}avgPoolBackprop(dy,x,convInfo){return notYetImplemented("avgPoolBackprop")}avgPool3d(x,convInfo){return notYetImplemented("avgPool3d")}avgPool3dBackprop(dy,x,convInfo){return notYetImplemented("avgPool3dBackprop")}maxPool3d(x,convInfo){return notYetImplemented("maxPool3d")}maxPool3dBackprop(dy,x,y,convInfo){return notYetImplemented("maxPool3dBackprop")}reshape(x,shape){return notYetImplemented("reshape")}cast(x,dtype){return notYetImplemented("cast")}tile(x,reps){return notYetImplemented("tile")}pad(x,paddings,constantValue){return notYetImplemented("pad")}transpose(x,perm){return notYetImplemented("transpose")}gather(x,indices,axis,batchDims=0){return notYetImplemented("gather")}gatherND(x,indices){return notYetImplemented("gatherND")}scatterND(indices,updates,shape){return notYetImplemented("scatterND")}batchToSpaceND(x,blockShape,crops){return notYetImplemented("batchToSpaceND")}spaceToBatchND(x,blockShape,paddings){return notYetImplemented("spaceToBatchND")}resizeBilinear(x,newHeight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeBilinear")}resizeBilinearBackprop(dy,x,alignCorners){return notYetImplemented("resizeBilinearBackprop")}resizeNearestNeighbor(x,newHEight,newWidth,alignCorners,halfPixelCenters){return notYetImplemented("resizeNearestNeighbor")}resizeNearestNeighborBackprop(dy,x,alignCorners){return notYetImplemented("resizeNearestNeighborBackprop")}batchNorm(x,mean4,variance,offset,scale2,varianceEpsilon){return notYetImplemented("batchNorm")}localResponseNormalization4D(x,radius,bias,alpha,beta){return notYetImplemented("localResponseNormalization4D")}LRNGrad(dy,inputImage,outputImage,radius,bias,alpha,beta){return notYetImplemented("LRNGrad")}multinomial(logits,normalized,numSamples,seed){return notYetImplemented("multinomial")}oneHot(indices,depth,onValue,offValue){return notYetImplemented("oneHot")}cumsum(x,axis,exclusive,reverse5){return notYetImplemented("cumsum")}nonMaxSuppression(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return notYetImplemented("nonMaxSuppression")}fft(x){return notYetImplemented("fft")}ifft(x){return notYetImplemented("ifft")}complex(real4,imag4){return notYetImplemented("complex")}real(input2){return notYetImplemented("real")}imag(input2){return notYetImplemented("imag")}cropAndResize(image3,boxes,boxIndex,cropSize,method,extrapolationValue){return notYetImplemented("cropAndResize")}depthToSpace(x,blockSize,dataFormat){return notYetImplemented("depthToSpace")}split(value,sizeSplits,axis){return notYetImplemented("split")}sparseToDense(sparseIndices,sparseValues,outputShape,defaultValue){return notYetImplemented("sparseToDense")}diag(x){return notYetImplemented("diag")}fill(shape,value,dtype){return notYetImplemented("fill")}onesLike(x){return notYetImplemented("onesLike")}zerosLike(x){return notYetImplemented("zerosLike")}linspace(start,stop,num){return notYetImplemented("linspace")}dispose(){return notYetImplemented("dispose")}};function notYetImplemented(kernelName){throw new Error(`'${kernelName}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function shuffle(array2){let counter=array2.length,temp=0,index=0;for(;counter>0;)index=Math.random()*counter|0,counter--,temp=array2[counter],array2[counter]=array2[index],array2[index]=temp}function clamp(min6,x,max6){return Math.max(min6,Math.min(x,max6))}function nearestLargerEven(val){return val%2==0?val:val+1}function sum(arr){let sum6=0;for(let i=0;ierrorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function assertNonNull(a){assert(a!=null,()=>"The input to the tensor constructor must be a non-null value.")}function flatten(arr,result=[],skipTypedArray=!1){if(result==null&&(result=[]),Array.isArray(arr)||isTypedArray(arr)&&!skipTypedArray)for(let i=0;i0,maxCounter){return new Promise((resolve,reject)=>{let tryCount=0,tryFn=()=>{if(checkFn()){resolve();return}tryCount++;let nextBackoff=delayFn(tryCount);if(maxCounter!=null&&tryCount>=maxCounter){reject();return}setTimeout(tryFn,nextBackoff)};tryFn()})}function inferFromImplicitShape(shape,size){let shapeProd=1,implicitIdx=-1;for(let i=0;i=0)shapeProd*=shape[i];else if(shape[i]===-1){if(implicitIdx!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${implicitIdx} and dim ${i}`);implicitIdx=i}else if(shape[i]<0)throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);if(implicitIdx===-1){if(size>0&&size!==shapeProd)throw Error(`Size(${size}) must match the product of shape ${shape}`);return shape}if(shapeProd===0)throw Error(`Cannot infer the missing size in [${shape}] when there are 0 elements`);if(size%shapeProd!=0)throw Error(`The implicit shape can't be a fractional number. Got ${size} / ${shapeProd}`);let newShape=shape.slice();return newShape[implicitIdx]=size/shapeProd,newShape}function parseAxisParam(axis,shape){let rank=shape.length;return axis=axis==null?shape.map((s,i)=>i):[].concat(axis),assert(axis.every(ax=>ax>=-rank&&ax`All values in axis param must be in range [-${rank}, ${rank}) but got axis ${axis}`),assert(axis.every(ax=>isInt(ax)),()=>`All values in axis param must be integers but got axis ${axis}`),axis.map(a=>a<0?rank+a:a)}function squeezeShape(shape,axis){let newShape=[],keptDims=[],isEmptyArray=axis!=null&&Array.isArray(axis)&&axis.length===0,axes=axis==null||isEmptyArray?null:parseAxisParam(axis,shape).sort(),j=0;for(let i=0;ii)&&shape[i]===1&&(newShape.push(shape[i]),keptDims.push(i)),axes[j]<=i&&j++}shape[i]!==1&&(newShape.push(shape[i]),keptDims.push(i))}return{newShape,keptDims}}function getTypedArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function getArrayFromDType(dtype,size){let values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else if(dtype==="string")values=new Array(size);else throw new Error(`Unknown data type ${dtype}`);return values}function checkConversionForErrors(vals,dtype){for(let i=0;ibytes+=x.length),bytes}function isString(value){return typeof value=="string"||value instanceof String}function isBoolean(value){return typeof value=="boolean"}function isNumber(value){return typeof value=="number"}function inferDtype(values){return Array.isArray(values)?inferDtype(values[0]):values instanceof Float32Array?"float32":values instanceof Int32Array||values instanceof Uint8Array?"int32":isNumber(values)?"float32":isString(values)?"string":isBoolean(values)?"bool":"float32"}function isFunction(f){return!!(f&&f.constructor&&f.call&&f.apply)}function nearestDivisor(size,start){for(let i=start;i=0;--i)strides[i]=strides[i+1]*shape[i+1];return strides}function createNestedArray(offset,shape,a){let ret=new Array;if(shape.length===1){let d=shape[0];for(let i=0;iacc*c);for(let i=0;iacc*c);if(size===0)return[];if(size!==a.length)throw new Error(`[${shape}] does not match the input size ${a.length}.`);return createNestedArray(0,shape,a)}function makeOnesTypedArray(size,dtype){let array2=makeZerosTypedArray(size,dtype);for(let i=0;iprev*curr,1);if(dtype==null||dtype==="float32")return toNestedArray(shape,new Float32Array(size));if(dtype==="int32")return toNestedArray(shape,new Int32Array(size));if(dtype==="bool")return toNestedArray(shape,new Uint8Array(size));throw new Error(`Unknown data type ${dtype}`)}function assertNonNegativeIntegerDimensions(shape){shape.forEach(dimSize=>{assert(Number.isInteger(dimSize)&&dimSize>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${shape}].`)})}function locToIndex(locs,rank,strides){if(rank===0)return 0;if(rank===1)return locs[0];let index=locs[locs.length-1];for(let i=0;i{let[key,value]=keyValue.split(":");this.urlFlags[key]=parseValue(key,value)})}};function getQueryParams(queryString){let params={};return queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...t)=>(decodeParam(params,t[0],t[1]),t.join("="))),params}function decodeParam(params,name,value){params[decodeURIComponent(name)]=decodeURIComponent(value||"")}function parseValue(flagName,value){if(value=value.toLowerCase(),value==="true"||value==="false")return value==="true";if(`${+value}`===value)return+value;throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`)}function env(){return ENV}var ENV=null;function setEnvironmentGlobal(environment){ENV=environment}var globalNameSpace;function getGlobalNamespace(){if(globalNameSpace==null){let ns;if(typeof window!="undefined")ns=window;else if(typeof global!="undefined")ns=global;else if(typeof process!="undefined")ns=process;else if(typeof self!="undefined")ns=self;else throw new Error("Could not find a global object");globalNameSpace=ns}return globalNameSpace}function getGlobalMap(){let ns=getGlobalNamespace();return ns._tfGlobals==null&&(ns._tfGlobals=new Map),ns._tfGlobals}function getGlobal(key,init2){let globalMap=getGlobalMap();if(globalMap.has(key))return globalMap.get(key);{let singleton=init2();return globalMap.set(key,singleton),globalMap.get(key)}}var Abs="Abs",Acos="Acos",Acosh="Acosh",Add="Add",AddN="AddN",All="All",Any="Any",ArgMax="ArgMax",ArgMin="ArgMin",Asin="Asin",Asinh="Asinh",Atan="Atan",Atanh="Atanh",Atan2="Atan2",AvgPool="AvgPool",AvgPoolGrad="AvgPoolGrad",AvgPool3D="AvgPool3D",AvgPool3DGrad="AvgPool3DGrad",BatchMatMul="BatchMatMul",BatchToSpaceND="BatchToSpaceND",Bincount="Bincount",BroadcastTo="BroadcastTo",Cast="Cast",Ceil="Ceil",ClipByValue="ClipByValue",Complex="Complex",ComplexAbs="ComplexAbs",Concat="Concat",Conv2D="Conv2D",Conv2DBackpropFilter="Conv2DBackpropFilter",Conv2DBackpropInput="Conv2DBackpropInput",Conv3D="Conv3D",Conv3DBackpropFilterV2="Conv3DBackpropFilterV2",Conv3DBackpropInputV2="Conv3DBackpropInputV2",Cos="Cos",Cosh="Cosh",Cumsum="Cumsum",CropAndResize="CropAndResize",DenseBincount="DenseBincount",DepthToSpace="DepthToSpace",DepthwiseConv2dNative="DepthwiseConv2dNative",DepthwiseConv2dNativeBackpropFilter="DepthwiseConv2dNativeBackpropFilter",DepthwiseConv2dNativeBackpropInput="DepthwiseConv2dNativeBackpropInput",Diag="Diag",Dilation2D="Dilation2D",Dilation2DBackpropInput="Dilation2DBackpropInput",Dilation2DBackpropFilter="Dilation2DBackpropFilter",RealDiv="RealDiv",Elu="Elu",EluGrad="EluGrad",Erf="Erf",Equal="Equal",Exp="Exp",ExpandDims="ExpandDims",Expm1="Expm1",FFT="FFT",Fill="Fill",FlipLeftRight="FlipLeftRight",Floor="Floor",FloorDiv="FloorDiv",FusedBatchNorm="FusedBatchNorm",GatherV2="GatherV2",GatherNd="GatherNd",Greater="Greater",GreaterEqual="GreaterEqual",Identity="Identity",IFFT="IFFT",Imag="Imag",IsFinite="IsFinite",IsInf="IsInf",IsNan="IsNan",LeakyRelu="LeakyRelu",Less="Less",LessEqual="LessEqual",LinSpace="LinSpace",Log="Log",Log1p="Log1p",LogicalAnd="LogicalAnd",LogicalNot="LogicalNot",LogicalOr="LogicalOr",LogSoftmax="LogSoftmax",LRN="LRN",LRNGrad="LRNGrad",Max="Max",Maximum="Maximum",MaxPool="MaxPool",MaxPoolGrad="MaxPoolGrad",MaxPool3D="MaxPool3D",MaxPool3DGrad="MaxPool3DGrad",MaxPoolWithArgmax="MaxPoolWithArgmax",Mean="Mean",Min="Min",Minimum="Minimum",MirrorPad="MirrorPad",Mod="Mod",Multinomial="Multinomial",Multiply="Multiply",Neg="Neg",NotEqual="NotEqual",NonMaxSuppressionV3="NonMaxSuppressionV3",NonMaxSuppressionV4="NonMaxSuppressionV4",NonMaxSuppressionV5="NonMaxSuppressionV5",OnesLike="OnesLike",OneHot="OneHot",Pack="Pack",PadV2="PadV2",Pool="Pool",Pow="Pow",Prelu="Prelu",Prod="Prod",Range="Range",Real="Real",Reciprocal="Reciprocal",Relu="Relu",Reshape="Reshape",ResizeNearestNeighbor="ResizeNearestNeighbor",ResizeNearestNeighborGrad="ResizeNearestNeighborGrad",ResizeBilinear="ResizeBilinear",ResizeBilinearGrad="ResizeBilinearGrad",Relu6="Relu6",Reverse="Reverse",Round="Round",Rsqrt="Rsqrt",ScatterNd="ScatterNd",Select="Select",Selu="Selu",Slice="Slice",Sin="Sin",Sinh="Sinh",Sign="Sign",Sigmoid="Sigmoid",Softplus="Softplus",Sqrt="Sqrt",Sum="Sum",SpaceToBatchND="SpaceToBatchND",SplitV="SplitV",Softmax="Softmax",SquaredDifference="SquaredDifference",Square="Square",Sub="Sub",SparseToDense="SparseToDense",StridedSlice="StridedSlice",Tan="Tan",Tanh="Tanh",Tile="Tile",TopK="TopK",Transpose="Transpose",Unique="Unique",Unpack="Unpack",UnsortedSegmentSum="UnsortedSegmentSum",ZerosLike="ZerosLike",Step="Step",FromPixels="FromPixels",RotateWithOffset="RotateWithOffset",_FusedMatMul="_FusedMatMul",FusedConv2D="FusedConv2D",FusedDepthwiseConv2D="FusedDepthwiseConv2D",kernelRegistry=getGlobal("kernelRegistry",()=>new Map),gradRegistry=getGlobal("gradRegistry",()=>new Map);function getKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);return kernelRegistry.get(key)}function getGradient(kernelName){return gradRegistry.get(kernelName)}function getKernelsForBackend(backendName){let it=kernelRegistry.entries(),result=[];for(;;){let{done,value}=it.next();if(done)break;let[key,config2]=value,[backend22]=key.split("_");backend22===backendName&&result.push(config2)}return result}function registerKernel(config2){let{kernelName,backendName}=config2,key=makeKey(kernelName,backendName);kernelRegistry.has(key)&&console.warn(`The kernel '${kernelName}' for backend '${backendName}' is already registered`),kernelRegistry.set(key,config2)}function registerGradient(config2){let{kernelName}=config2;gradRegistry.has(kernelName)&&env().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${kernelName}'`),gradRegistry.set(kernelName,config2)}function unregisterKernel(kernelName,backendName){let key=makeKey(kernelName,backendName);if(!kernelRegistry.has(key))throw new Error(`The kernel '${kernelName}' for backend '${backendName}' is not registered`);kernelRegistry.delete(key)}function unregisterGradient(kernelName){if(!gradRegistry.has(kernelName))throw new Error(`The gradient '${kernelName}' for backend is not registered`);gradRegistry.delete(kernelName)}function copyRegisteredKernels(registeredBackendName,newBackendName){getKernelsForBackend(registeredBackendName).forEach(kernelConfig=>{let newKernelConfig=Object.assign({},kernelConfig,{backendName:newBackendName});registerKernel(newKernelConfig)})}function makeKey(kernelName,backendName){return`${backendName}_${kernelName}`}var util_exports={};__export2(util_exports,{arraysEqual:()=>arraysEqual,assert:()=>assert,assertNonNegativeIntegerDimensions:()=>assertNonNegativeIntegerDimensions,assertNonNull:()=>assertNonNull,assertShapesMatch:()=>assertShapesMatch,bytesFromStringArray:()=>bytesFromStringArray,bytesPerElement:()=>bytesPerElement,checkConversionForErrors:()=>checkConversionForErrors,clamp:()=>clamp,computeStrides:()=>computeStrides,createScalarValue:()=>createScalarValue,createShuffledIndices:()=>createShuffledIndices,decodeString:()=>decodeString,distSquared:()=>distSquared,encodeString:()=>encodeString,fetch:()=>fetch2,flatten:()=>flatten,getArrayFromDType:()=>getArrayFromDType,getTypedArrayFromDType:()=>getTypedArrayFromDType,hasEncodingLoss:()=>hasEncodingLoss,indexToLoc:()=>indexToLoc,inferDtype:()=>inferDtype,inferFromImplicitShape:()=>inferFromImplicitShape,isBoolean:()=>isBoolean,isFunction:()=>isFunction,isInt:()=>isInt,isNumber:()=>isNumber,isPromise:()=>isPromise,isScalarShape:()=>isScalarShape,isString:()=>isString,isTypedArray:()=>isTypedArray,isValidDtype:()=>isValidDtype,locToIndex:()=>locToIndex,makeOnesTypedArray:()=>makeOnesTypedArray,makeZerosNestedTypedArray:()=>makeZerosNestedTypedArray,makeZerosTypedArray:()=>makeZerosTypedArray,nearestDivisor:()=>nearestDivisor,nearestLargerEven:()=>nearestLargerEven,now:()=>now,parseAxisParam:()=>parseAxisParam,randUniform:()=>randUniform,repeatedTry:()=>repeatedTry,rightPad:()=>rightPad,shuffle:()=>shuffle,sizeFromShape:()=>sizeFromShape,sizeToSquarishShape:()=>sizeToSquarishShape,squeezeShape:()=>squeezeShape,sum:()=>sum,tanh:()=>tanh,toNestedArray:()=>toNestedArray,toTypedArray:()=>toTypedArray});function createScalarValue(value,dtype){return dtype==="string"?encodeString(value):toTypedArray([value],dtype)}function noConversionNeeded(a,dtype){return a instanceof Float32Array&&dtype==="float32"||a instanceof Int32Array&&dtype==="int32"||a instanceof Uint8Array&&dtype==="bool"}function toTypedArray(a,dtype){if(dtype==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(a)&&(a=flatten(a)),env().getBool("DEBUG")&&checkConversionForErrors(a,dtype),noConversionNeeded(a,dtype))return a;if(dtype==null||dtype==="float32"||dtype==="complex64")return new Float32Array(a);if(dtype==="int32")return new Int32Array(a);if(dtype==="bool"){let bool=new Uint8Array(a.length);for(let i=0;i{outputs=f()},timer=this.backendTimer.time(holdResultWrapperFn);if(env().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let i=0;i{checkComputationForErrors(tensorVals,output.dtype,kernelName)})}return{kernelName,outputs,inputs,timeMs:timer.then(timing=>timing.kernelMs),extraInfo:timer.then(timing=>timing.getExtraProfileInfo!=null?timing.getExtraProfileInfo():"")}}logKernelProfile(kernelProfile){let{kernelName,outputs,timeMs,inputs,extraInfo}=kernelProfile;outputs.forEach(result=>{Promise.all([result.data(),timeMs,extraInfo]).then(valueContainer=>{this.logger.logKernelProfile(kernelName,result,valueContainer[0],valueContainer[1],inputs,valueContainer[2])})})}};function checkComputationForErrors(vals,dtype,kernelName){if(dtype!=="float32")return!1;for(let i=0;i0?inputShape:""} `}}console.log(`%c${paddedName} %c${time2} %c${rank}D ${shape} %c${size} %c${inputShapesDescription} %c${extraInfo}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function getFilteredNodesXToY(tape,xs,y){let tensorsFromX={},nodesFromX={};for(let i=0;itensorsFromX[output.id]=!0),anyInputFromX=!0,nodesFromX[node.id]=!0;break}if(anyInputFromX)break}}let tensorsLeadToY={};tensorsLeadToY[y.id]=!0;let nodesToY={};for(let i=tape.length-1;i>=0;i--){let node=tape[i],nodeInputs=node.inputs;for(let j=0;j=0;i--){let node=filteredTape[i],dys=[];if(node.outputs.forEach(o=>{let gradTensor=tensorAccumulatedGradientMap[o.id];gradTensor!=null?dys.push(gradTensor):dys.push(null)}),node.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${node.kernelName}.`);let inputGradients=node.gradient(dys);for(let inputName in node.inputs){if(!(inputName in inputGradients))throw new Error(`Cannot backprop through input ${inputName}. Available gradients found: ${Object.keys(inputGradients)}.`);let dx=tidy2(()=>inputGradients[inputName]());if(dx.dtype!=="float32")throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);let x=node.inputs[inputName];if(!arraysEqual(dx.shape,x.shape))throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input '${inputName}' has shape '${dx.shape}', which does not match the shape of the input '${x.shape}'`);if(tensorAccumulatedGradientMap[x.id]==null)tensorAccumulatedGradientMap[x.id]=dx;else{let curGradient=tensorAccumulatedGradientMap[x.id];tensorAccumulatedGradientMap[x.id]=add5(curGradient,dx),curGradient.dispose()}}}}var FORMAT_LIMIT_NUM_VALS=20,FORMAT_NUM_FIRST_LAST_VALS=3,FORMAT_NUM_SIG_DIGITS=7;function tensorToString(vals,shape,dtype,verbose){let strides=computeStrides(shape),padPerCol=computeMaxSizePerColumn(vals,shape,dtype,strides),rank=shape.length,valsLines=subTensorToString(vals,shape,dtype,strides,padPerCol),lines=["Tensor"];return verbose&&(lines.push(` dtype: ${dtype}`),lines.push(` rank: ${rank}`),lines.push(` shape: [${shape}]`),lines.push(" values:")),lines.push(valsLines.map(l=>" "+l).join(` `)),lines.join(` `)}function computeMaxSizePerColumn(vals,shape,dtype,strides){let n=sizeFromShape(shape),numCols=strides[strides.length-1],padPerCol=new Array(numCols).fill(0),rank=shape.length,valuesOrTuples=dtype==="complex64"?createComplexTuples(vals):vals;if(rank>1)for(let row=0;rowFORMAT_LIMIT_NUM_VALS){let firstValsSize=FORMAT_NUM_FIRST_LAST_VALS*storagePerElement,firstVals=Array.from(vals.slice(0,firstValsSize)),lastVals=Array.from(vals.slice((size-FORMAT_NUM_FIRST_LAST_VALS)*storagePerElement,size*storagePerElement));return dtype==="complex64"&&(firstVals=createComplexTuples(firstVals),lastVals=createComplexTuples(lastVals)),["["+firstVals.map((x,i)=>valToString(x,padPerCol[i],dtype)).join(", ")+", ..., "+lastVals.map((x,i)=>valToString(x,padPerCol[size-FORMAT_NUM_FIRST_LAST_VALS+i],dtype)).join(", ")+"]"]}let displayVals=dtype==="complex64"?createComplexTuples(vals):Array.from(vals);return["["+displayVals.map((x,i)=>valToString(x,padPerCol[i],dtype)).join(", ")+"]"]}let subshape=shape.slice(1),substrides=strides.slice(1),stride=strides[0]*storagePerElement,lines=[];if(size>FORMAT_LIMIT_NUM_VALS){for(let i=0;i`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(dtype==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=values||getArrayFromDType(dtype,this.size),this.strides=computeStrides(shape)}set(value,...locs){locs.length===0&&(locs=[0]),assert(locs.length===this.rank,()=>`The number of provided coordinates (${locs.length}) must match the rank (${this.rank})`);let index=this.locToIndex(locs);this.values[index]=value}get(...locs){locs.length===0&&(locs=[0]);let i=0;for(let loc of locs){if(loc<0||loc>=this.shape[i]){let msg=`Requested out of range element at ${locs}. Buffer shape=${this.shape}`;throw new Error(msg)}i++}let index=locs[locs.length-1];for(let i2=0;i2decodeString(b))}catch(_a){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return data2}dataSync(){this.throwIfDisposed();let data2=trackerFn().readSync(this.dataId);if(this.dtype==="string")try{return data2.map(b=>decodeString(b))}catch(_a){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return data2}async bytes(){this.throwIfDisposed();let data2=await trackerFn().read(this.dataId);return this.dtype==="string"?data2:new Uint8Array(data2.buffer)}dispose(){this.isDisposed||(trackerFn().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(verbose=!1){return opHandler.print(this,verbose)}clone(){return this.throwIfDisposed(),opHandler.clone(this)}toString(verbose=!1){let vals=this.dataSync();return tensorToString(vals,this.shape,this.dtype,verbose)}cast(dtype){return this.throwIfDisposed(),opHandler.cast(this,dtype)}variable(trainable=!0,name,dtype){return this.throwIfDisposed(),trackerFn().makeVariable(this,trainable,name,dtype)}};Object.defineProperty(Tensor,Symbol.hasInstance,{value:instance=>!!instance&&instance.data!=null&&instance.dataSync!=null&&instance.throwIfDisposed!=null});var Variable=class extends Tensor{constructor(initialValue,trainable,name,tensorId){super(initialValue.shape,initialValue.dtype,initialValue.dataId,tensorId);this.trainable=trainable,this.name=name}assign(newValue){if(newValue.dtype!==this.dtype)throw new Error(`dtype of the new value (${newValue.dtype}) and previous value (${this.dtype}) must match`);if(!arraysEqual(newValue.shape,this.shape))throw new Error(`shape of the new value (${newValue.shape}) and previous value (${this.shape}) must match`);trackerFn().disposeTensor(this),this.dataId=newValue.dataId,trackerFn().incRef(this,null)}dispose(){trackerFn().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Variable,Symbol.hasInstance,{value:instance=>instance instanceof Tensor&&instance.assign!=null&&instance.assign instanceof Function});var tensor_util_exports={};__export2(tensor_util_exports,{assertTypesMatch:()=>assertTypesMatch,getTensorsInContainer:()=>getTensorsInContainer,isTensorInList:()=>isTensorInList,makeTypesMatch:()=>makeTypesMatch});var Rank;(function(Rank2){Rank2.R0="R0",Rank2.R1="R1",Rank2.R2="R2",Rank2.R3="R3",Rank2.R4="R4",Rank2.R5="R5",Rank2.R6="R6"})(Rank||(Rank={}));var UpcastInt32AndMap;(function(UpcastInt32AndMap2){UpcastInt32AndMap2.float32="float32",UpcastInt32AndMap2.int32="int32",UpcastInt32AndMap2.bool="int32",UpcastInt32AndMap2.complex64="complex64"})(UpcastInt32AndMap||(UpcastInt32AndMap={}));var UpcastBoolAndMap;(function(UpcastBoolAndMap2){UpcastBoolAndMap2.float32="float32",UpcastBoolAndMap2.int32="int32",UpcastBoolAndMap2.bool="bool",UpcastBoolAndMap2.complex64="complex64"})(UpcastBoolAndMap||(UpcastBoolAndMap={}));var UpcastFloat32AndMap;(function(UpcastFloat32AndMap2){UpcastFloat32AndMap2.float32="float32",UpcastFloat32AndMap2.int32="float32",UpcastFloat32AndMap2.bool="float32",UpcastFloat32AndMap2.complex64="complex64"})(UpcastFloat32AndMap||(UpcastFloat32AndMap={}));var UpcastComplex64AndMap;(function(UpcastComplex64AndMap2){UpcastComplex64AndMap2.float32="complex64",UpcastComplex64AndMap2.int32="complex64",UpcastComplex64AndMap2.bool="complex64",UpcastComplex64AndMap2.complex64="complex64"})(UpcastComplex64AndMap||(UpcastComplex64AndMap={}));var upcastTypeMap={float32:UpcastFloat32AndMap,int32:UpcastInt32AndMap,bool:UpcastBoolAndMap,complex64:UpcastComplex64AndMap};function upcastType(typeA,typeB){if(typeA==="string"||typeB==="string"){if(typeA==="string"&&typeB==="string")return"string";throw new Error(`Can not upcast ${typeA} with ${typeB}`)}return upcastTypeMap[typeA][typeB]}function sumOutType(type){return upcastType(type,"int32")}function makeTypesMatch(a,b){if(a.dtype===b.dtype)return[a,b];let dtype=upcastType(a.dtype,b.dtype);return[a.cast(dtype),b.cast(dtype)]}function assertTypesMatch(a,b){assert(a.dtype===b.dtype,()=>`The dtypes of the first(${a.dtype}) and second(${b.dtype}) input must match`)}function isTensorInList(tensor2,tensorList){return tensorList.some(x=>x.id===tensor2.id)}function getTensorsInContainer(result){let list=[],seen=new Set;return walkTensorContainer(result,list,seen),list}function walkTensorContainer(container,list,seen){if(container==null)return;if(container instanceof Tensor){list.push(container);return}if(!isIterable(container))return;let iterable=container;for(let k in iterable){let val=iterable[k];seen.has(val)||(seen.add(val),walkTensorContainer(val,list,seen))}}function isIterable(obj){return Array.isArray(obj)||typeof obj=="object"}var EngineState=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(k=>k.name)))}}}dispose(){for(let variableName in this.registeredVariables)this.registeredVariables[variableName].dispose()}},Engine=class{constructor(ENV5){this.ENV=ENV5,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new EngineState}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let sortedBackends=this.getSortedBackends();for(let i=0;i{kernel.setupFunc!=null&&kernel.setupFunc(this.backendInstance)})}disposeRegisteredKernels(backendName){getKernelsForBackend(backendName).forEach(kernel=>{kernel.disposeFunc!=null&&kernel.disposeFunc(this.registry[backendName])})}initializeBackend(backendName){let registryFactoryEntry=this.registryFactory[backendName];if(registryFactoryEntry==null)throw new Error(`Cannot initialize backend ${backendName}, no registration found.`);try{let backend22=registryFactoryEntry.factory();if(backend22&&!(backend22 instanceof KernelBackend)&&typeof backend22.then=="function"){let promiseId=++this.pendingBackendInitId,success=backend22.then(backendInstance=>promiseId(promiseIdthis.registryFactory[b].priority-this.registryFactory[a].priority)}initializeBackendsAndReturnBest(){let sortedBackends=this.getSortedBackends();for(let i=0;ithis.startScope(name),()=>this.endScope(result),()=>(result=fn(),result instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),result))}scopedRun(start,end,f){start();try{let res=f();return end(),res}catch(ex){throw end(),ex}}nextTensorId(){return Engine.nextTensorId++}nextVariableId(){return Engine.nextVariableId++}clone(x){let y=this.makeTensorFromDataId(x.dataId,x.shape,x.dtype),inputs={x},grad2=dy=>({x:()=>{let dtype="float32",gradInputs={x:dy},attrs={dtype};return ENGINE.runKernelFunc(backend22=>backend22.cast(dy,dtype),gradInputs,null,Cast,attrs)}}),saved=[];return this.addTapeNode(this.state.activeScope.name,inputs,[y],grad2,saved,{}),y}runKernel(kernelName,inputs,attrs,inputsToSave,outputsToSave){let forwardFunc=null,backwardsFunc=null;return this.runKernelFunc(forwardFunc,inputs,backwardsFunc,kernelName,attrs,inputsToSave,outputsToSave)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(kernelName,numDataIdsBefore,outInfos){let numDataIdsAfter=this.backend.numDataIds(),numOutputDataIds=0;outInfos.forEach(info=>{numOutputDataIds+=info.dtype==="complex64"?3:1});let numMoves=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],dataIdsLeaked=numDataIdsAfter-numDataIdsBefore-numOutputDataIds-numMoves;if(dataIdsLeaked>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${dataIdsLeaked} data ids) after running '${kernelName}'`)}runKernelFunc(forwardFunc,inputs,backwardsFunc,kernelName,attrs,inputsToSave,outputsToSave){let outputs,saved=[],isTapeOn=this.isTapeOn();kernelName==null&&(kernelName=this.state.activeScope!=null?this.state.activeScope.name:"");let startingBytecount=this.state.numBytes,startingNumTensors=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let kernelFunc3;this.backendName==null&&this.backend;let kernel=getKernel(kernelName,this.backendName),out;if(kernel!=null)kernelFunc3=()=>{let numDataIdsBefore=this.backend.numDataIds();out=kernel.kernelFunc({inputs,attrs,backend:this.backend});let outInfos=Array.isArray(out)?out:[out];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(kernelName,numDataIdsBefore,outInfos);let outTensors=outInfos.map(outInfo=>{if(outInfo.rank!=null)return outInfo;let{dataId,shape,dtype}=outInfo;return this.makeTensorFromDataId(dataId,shape,dtype)});if(isTapeOn){let tensorsToSave=this.getTensorsForGradient(kernelName,inputs,outTensors);if(tensorsToSave==null){outputsToSave==null&&(outputsToSave=[]);let outsToSave=outTensors.filter((_,i)=>outputsToSave[i]);tensorsToSave=(inputsToSave||[]).slice().concat(outsToSave)}saved=this.saveTensorsForBackwardMode(tensorsToSave)}return outTensors};else{if(forwardFunc==null)throw new Error(`Error running ${kernelName}: Neither modular kernel nor forward func passed`);let saveFunc=tensors=>{!isTapeOn||(saved=tensors.map(tensor2=>this.keep(this.clone(tensor2))))};kernelFunc3=()=>{let numDataIdsBefore=this.backend.numDataIds();out=this.tidy(()=>forwardFunc(this.backend,saveFunc));let outs=Array.isArray(out)?out:[out];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(kernelName,numDataIdsBefore,outs),outs}}let kernelProfile;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?outputs=kernelFunc3():(kernelProfile=this.profiler.profileKernel(kernelName,inputs,()=>kernelFunc3()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(kernelProfile),outputs=kernelProfile.outputs)}),isTapeOn&&this.addTapeNode(kernelName,inputs,outputs,backwardsFunc,saved,attrs),this.state.profiling&&this.state.activeProfile.kernels.push({name:kernelName,bytesAdded:this.state.numBytes-startingBytecount,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-startingNumTensors,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(inputs).map(key=>inputs[key]!=null?inputs[key].shape:null),outputShapes:outputs.map(item=>item.shape),kernelTimeMs:kernelProfile.timeMs,extraInfo:kernelProfile.extraInfo}),Array.isArray(out)?outputs:outputs[0]}saveTensorsForBackwardMode(tensors){return tensors.map(tensor2=>this.keep(this.clone(tensor2)))}getTensorsForGradient(kernelName,inputs,outputs){let gradConfig=getGradient(kernelName);if(gradConfig!=null){let inputsToSave=gradConfig.inputsToSave||[],outputsToSave=gradConfig.outputsToSave||[],inputTensorsToSave;gradConfig.saveAllInputs?(assert(Array.isArray(inputs),()=>"saveAllInputs is true, expected inputs to be an array."),inputTensorsToSave=Object.keys(inputs).map(key=>inputs[key])):inputTensorsToSave=inputsToSave.map(inputName=>inputs[inputName]);let outputTensorsToSave=outputs.filter((_,i)=>outputsToSave[i]);return inputTensorsToSave.concat(outputTensorsToSave)}return null}makeTensor(values,shape,dtype,backend22){if(values==null)throw new Error("Values passed to engine.makeTensor() are null");dtype=dtype||"float32",backend22=backend22||this.backend;let backendVals=values;dtype==="string"&&isString(values[0])&&(backendVals=values.map(d=>encodeString(d)));let dataId=backend22.write(backendVals,shape,dtype),t=new Tensor(shape,dtype,dataId,this.nextTensorId());if(this.incRef(t,backend22),dtype==="string"){let info=this.state.tensorInfo.get(dataId),newBytes=bytesFromStringArray(backendVals);this.state.numBytes+=newBytes-info.bytes,info.bytes=newBytes}return t}makeTensorFromDataId(dataId,shape,dtype,backend22){dtype=dtype||"float32";let t=new Tensor(shape,dtype,dataId,this.nextTensorId());return this.incRef(t,backend22),t}makeVariable(initialValue,trainable=!0,name,dtype){name=name||this.nextVariableId().toString(),dtype!=null&&dtype!==initialValue.dtype&&(initialValue=initialValue.cast(dtype));let v=new Variable(initialValue,trainable,name,this.nextTensorId());if(this.state.registeredVariables[v.name]!=null)throw new Error(`Variable with name ${v.name} was already registered`);return this.state.registeredVariables[v.name]=v,this.incRef(v,this.backend),v}incRef(a,backend22){let refCount=this.state.tensorInfo.has(a.dataId)?this.state.tensorInfo.get(a.dataId).refCount:0;if(this.state.numTensors++,a.dtype==="string"&&this.state.numStringTensors++,refCount===0){this.state.numDataBuffers++;let bytes=0;a.dtype!=="complex64"&&a.dtype!=="string"&&(bytes=a.size*bytesPerElement(a.dtype)),this.state.tensorInfo.set(a.dataId,{backend:backend22||this.backend,dtype:a.dtype,shape:a.shape,bytes,refCount:0}),this.state.numBytes+=bytes}this.state.tensorInfo.get(a.dataId).refCount++,a instanceof Variable||this.track(a)}disposeTensor(a){if(!this.state.tensorInfo.has(a.dataId))return;this.state.numTensors--,a.dtype==="string"&&this.state.numStringTensors--;let info=this.state.tensorInfo.get(a.dataId);info.refCount<=1?(a.dtype!=="complex64"&&(this.state.numBytes-=info.bytes),this.state.numDataBuffers--,info.backend.disposeData(a.dataId),this.state.tensorInfo.delete(a.dataId)):this.state.tensorInfo.get(a.dataId).refCount--}disposeVariables(){for(let varName in this.state.registeredVariables){let v=this.state.registeredVariables[varName];this.disposeVariable(v)}}disposeVariable(v){this.disposeTensor(v),this.state.registeredVariables[v.name]!=null&&delete this.state.registeredVariables[v.name]}memory(){let info=this.backend.memory();return info.numTensors=this.state.numTensors,info.numDataBuffers=this.state.numDataBuffers,info.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(info.unreliable=!0,info.reasons==null&&(info.reasons=[]),info.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),info}async profile(query){this.state.profiling=!0;let startBytes=this.state.numBytes,startNumTensors=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await query(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(d=>d.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-startBytes,this.state.activeProfile.newTensors=this.state.numTensors-startNumTensors;for(let kernel of this.state.activeProfile.kernels)kernel.kernelTimeMs=await kernel.kernelTimeMs,kernel.extraInfo=await kernel.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(kernelName,inputs,outputs,gradientsFunc,saved,attrs){let tapeNode={id:this.state.nextTapeNodeId++,kernelName,inputs,outputs,saved},gradConfig=getGradient(kernelName);gradConfig!=null&&(gradientsFunc=gradConfig.gradFunc),gradientsFunc!=null&&(tapeNode.gradient=dys=>(dys=dys.map((dy,i)=>{if(dy==null){let output=outputs[i],vals=makeZerosTypedArray(output.size,output.dtype);return this.makeTensor(vals,output.shape,output.dtype)}return dy}),gradientsFunc(dys.length>1?dys:dys[0],saved,attrs))),this.state.activeTape.push(tapeNode)}keep(result){return result.kept=!0,result}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(name){let scopeInfo={track:[],name:"unnamed scope",id:this.state.nextScopeId++};name&&(scopeInfo.name=name),this.state.scopeStack.push(scopeInfo),this.state.activeScope=scopeInfo}endScope(result){let tensorsToTrackInParent=getTensorsInContainer(result),tensorsToTrackInParentSet=new Set(tensorsToTrackInParent.map(t=>t.id));for(let i=0;i{!tensor2.kept&&tensor2.scopeId===oldScope.id&&this.track(tensor2)})}gradients(f,xs,dy,allowNoGradients=!1){if(assert(xs.length>0,()=>"gradients() received an empty list of xs."),dy!=null&&dy.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);let y=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",f));assert(y instanceof Tensor,()=>"The result y returned by f() must be a tensor.");let filteredTape=getFilteredNodesXToY(this.state.activeTape,xs,y);if(!allowNoGradients&&filteredTape.length===0&&xs.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let accumulatedGradientMap={};accumulatedGradientMap[y.id]=dy==null?ones(y.shape):dy,backpropagateGradients(accumulatedGradientMap,filteredTape,f2=>this.tidy(f2),add);let grads2=xs.map(x=>accumulatedGradientMap[x.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(node=>{for(let tensor2 of node.saved)tensor2.dispose()}),this.state.activeTape=null),{value:y,grads:grads2}})}customGrad(f){return assert(isFunction(f),()=>"The f passed in customGrad(f) must be a function."),(...inputs)=>{assert(inputs.every(t=>t instanceof Tensor),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let res,inputMap={};return inputs.forEach((input2,i)=>{inputMap[i]=input2}),this.runKernelFunc((_,save)=>(res=f(...inputs,save),assert(res.value instanceof Tensor,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),assert(isFunction(res.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),res.value),inputMap,(dy,saved)=>{let gradRes=res.gradFunc(dy,saved),grads2=Array.isArray(gradRes)?gradRes:[gradRes];assert(grads2.length===inputs.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),assert(grads2.every(t=>t instanceof Tensor),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let gradMap={};return grads2.forEach((grad2,i)=>{gradMap[i]=()=>grad2}),gradMap})}}readSync(dataId){return this.state.tensorInfo.get(dataId).backend.readSync(dataId)}read(dataId){return this.state.tensorInfo.get(dataId).backend.read(dataId)}async time(query){let start=now(),timingInfo=await this.backend.time(query);return timingInfo.wallMs=now()-start,timingInfo}track(result){return this.state.activeScope!=null&&(result.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(result)),result}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new EngineState;for(let backendName in this.registry)this.disposeRegisteredKernels(backendName),this.registry[backendName].dispose(),delete this.registry[backendName];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Engine.nextTensorId=0;Engine.nextVariableId=0;function ones(shape){let values=makeOnesTypedArray(sizeFromShape(shape),"float32");return ENGINE.makeTensor(values,shape,"float32")}function getOrMakeEngine(){let ns=getGlobalNamespace();if(ns._tfengine==null){let environment=new Environment(ns);ns._tfengine=new Engine(environment)}return setEnvironmentGlobal(ns._tfengine.ENV),setTensorTracker(()=>ns._tfengine),ns._tfengine}var ENGINE=getOrMakeEngine();function add(a,b){let inputs={a,b};return ENGINE.runKernel(Add,inputs)}var device_util_exports={};__export2(device_util_exports,{isBrowser:()=>isBrowser,isMobile:()=>isMobile});function _isNavigatorDefined(){return typeof navigator!="undefined"&&navigator!=null}function isMobile(){if(_isNavigatorDefined()){let a=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))}return!1}function isBrowser(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var ENV2=env();ENV2.registerFlag("DEBUG",()=>!1,debugValue=>{debugValue&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});ENV2.registerFlag("IS_BROWSER",()=>isBrowser());ENV2.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");ENV2.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));ENV2.registerFlag("PROD",()=>!1);ENV2.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>ENV2.getBool("DEBUG"));ENV2.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);ENV2.registerFlag("IS_TEST",()=>!1);ENV2.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function inferShape(val,dtype){let firstElem=val;if(isTypedArray(val))return dtype==="string"?[]:[val.length];if(!Array.isArray(val))return[];let shape=[];for(;Array.isArray(firstElem)||isTypedArray(firstElem)&&dtype!=="string";)shape.push(firstElem.length),firstElem=firstElem[0];return Array.isArray(val)&&env().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&deepAssertShapeConsistency(val,shape,[]),shape}function deepAssertShapeConsistency(val,shape,indices){if(indices=indices||[],!Array.isArray(val)&&!isTypedArray(val)){assert(shape.length===0,()=>`Element arr[${indices.join("][")}] is a primitive, but should be an array/TypedArray of ${shape[0]} elements`);return}assert(shape.length>0,()=>`Element arr[${indices.join("][")}] should be a primitive, but is an array of ${val.length} elements`),assert(val.length===shape[0],()=>`Element arr[${indices.join("][")}] should have ${shape[0]} elements, but has ${val.length} elements`);let subShape=shape.slice(1);for(let i=0;i=0&&(inferredDtype=parseAsDtype),assertDtype(parseAsDtype,inferredDtype,argName,functionName),x==null||!isTypedArray(x)&&!Array.isArray(x)&&typeof x!="number"&&typeof x!="boolean"&&typeof x!="string"){let type=x==null?"null":x.constructor.name;throw new Error(`Argument '${argName}' passed to '${functionName}' must be a Tensor or TensorLike, but got '${type}'`)}let inferredShape=inferShape(x,inferredDtype);!isTypedArray(x)&&!Array.isArray(x)&&(x=[x]);let values=inferredDtype!=="string"?toTypedArray(x,inferredDtype):flatten(x,[],!0);return ENGINE.makeTensor(values,inferredShape,inferredDtype)}function convertToTensorArray(arg,argName,functionName,parseAsDtype="numeric"){if(!Array.isArray(arg))throw new Error(`Argument ${argName} passed to ${functionName} must be a \`Tensor[]\` or \`TensorLike[]\``);return arg.map((t,i)=>convertToTensor(t,`${argName}[${i}]`,functionName,parseAsDtype))}var OP_SCOPE_SUFFIX="__op";function op(f){let keys=Object.keys(f);if(keys.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${keys.length} keys.`);let opName=keys[0],fn=f[opName];opName.endsWith("_")&&(opName=opName.substring(0,opName.length-1)),opName=opName+OP_SCOPE_SUFFIX;let f2=(...args)=>{ENGINE.startScope(opName);try{let result=fn(...args);return isPromise(result)&&console.error("Cannot return a Promise inside of tidy."),ENGINE.endScope(result),result}catch(ex){throw ENGINE.endScope(null),ex}};return Object.defineProperty(f2,"name",{value:opName,configurable:!0}),f2}function complex_(real4,imag4){let $real=convertToTensor(real4,"real","complex"),$imag=convertToTensor(imag4,"imag","complex");assertShapesMatch($real.shape,$imag.shape,`real and imag shapes, ${$real.shape} and ${$imag.shape}, must match in call to tf.complex().`);let inputs={real:$real,imag:$imag};return ENGINE.runKernel(Complex,inputs)}var complex=op({complex_});function makeTensor(values,shape,inferredShape,dtype){if(dtype==null&&(dtype=inferDtype(values)),dtype==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!isTypedArray(values)&&!Array.isArray(values)&&typeof values!="number"&&typeof values!="boolean"&&typeof values!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(shape!=null){assertNonNegativeIntegerDimensions(shape);let providedSize=sizeFromShape(shape),inferredSize=sizeFromShape(inferredShape);assert(providedSize===inferredSize,()=>`Based on the provided shape, [${shape}], the tensor should have ${providedSize} values but has ${inferredSize}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${inferredShape}) does not match the provided shape (${shape}). `)}}return!isTypedArray(values)&&!Array.isArray(values)&&(values=[values]),shape=shape||inferredShape,values=dtype!=="string"?toTypedArray(values,dtype):flatten(values,[],!0),ENGINE.makeTensor(values,shape,dtype)}function tensor(values,shape,dtype){let inferredShape=inferShape(values,dtype);return makeTensor(values,shape,inferredShape,dtype)}var DTYPE_VALUE_SIZE_MAP={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},NUM_BYTES_STRING_LENGTH=4;async function encodeWeights(tensors,group){let specs=[],dataPromises=[],names=Array.isArray(tensors)?tensors.map(tensor2=>tensor2.name):Object.keys(tensors);for(let i=0;i{let vals=await t.bytes(),totalNumBytes=vals.reduce((p2,c)=>p2+c.length,0)+NUM_BYTES_STRING_LENGTH*vals.length,bytes=new Uint8Array(totalNumBytes),offset=0;for(let i2=0;i2{if(totalByteLength+=x.byteLength,normalizedXs.push(x.byteLength===x.buffer.byteLength?x:new x.constructor(x)),!(x instanceof Float32Array||x instanceof Int32Array||x instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`)});let y=new Uint8Array(totalByteLength),offset=0;return normalizedXs.forEach(x=>{y.set(new Uint8Array(x.buffer),offset),offset+=x.byteLength}),y.buffer}var useNodeBuffer=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function stringByteLength(str){return useNodeBuffer?Buffer.byteLength(str):new Blob([str]).size}function arrayBufferToBase64String(buffer2){if(useNodeBuffer)return Buffer.from(buffer2).toString("base64");let buf=new Uint8Array(buffer2),s="";for(let i=0,l=buf.length;i{totalByteLength+=buffer2.byteLength});let temp=new Uint8Array(totalByteLength),offset=0;return buffers.forEach(buffer2=>{temp.set(new Uint8Array(buffer2),offset),offset+=buffer2.byteLength}),temp.buffer}function basename(path){let SEPARATOR="/";for(path=path.trim();path.endsWith(SEPARATOR);)path=path.slice(0,path.length-1);let items=path.split(SEPARATOR);return items[items.length-1]}function getModelArtifactsInfoForJSON(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:modelArtifacts.modelTopology==null?0:stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),weightSpecsBytes:modelArtifacts.weightSpecs==null?0:stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),weightDataBytes:modelArtifacts.weightData==null?0:modelArtifacts.weightData.byteLength}}function computeFloat16MantisaTable(){let convertMantissa=i=>{let m=i<<13,e=0;for(;(m&8388608)==0;)e-=8388608,m<<=1;return m&=~8388608,e+=947912704,m|e},mantisaTable=new Uint32Array(2048);mantisaTable[0]=0;for(let i=1;i<1024;i++)mantisaTable[i]=convertMantissa(i);for(let i=1024;i<2048;i++)mantisaTable[i]=939524096+(i-1024<<13);return mantisaTable}function computeFloat16ExponentTable(){let exponentTable=new Uint32Array(64);exponentTable[0]=0,exponentTable[31]=1199570944,exponentTable[32]=2147483648,exponentTable[63]=3347054592;for(let i=1;i<31;i++)exponentTable[i]=i<<23;for(let i=33;i<63;i++)exponentTable[i]=2147483648+(i-32<<23);return exponentTable}function computeFloat16OffsetTable(){let offsetTable=new Uint32Array(64);for(let i=0;i<64;i++)offsetTable[i]=1024;return offsetTable[0]=offsetTable[32]=0,offsetTable}function getFloat16Decoder(){let mantisaTable=computeFloat16MantisaTable(),exponentTable=computeFloat16ExponentTable(),offsetTable=computeFloat16OffsetTable();return quantizedArray=>{let buffer2=new ArrayBuffer(4*quantizedArray.length),bufferUint32View=new Uint32Array(buffer2);for(let index=0;index>10]+(float16Bits&1023)]+exponentTable[float16Bits>>10];bufferUint32View[index]=float32Bits}return new Float32Array(buffer2)}}var IORouterRegistry=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return IORouterRegistry.instance==null&&(IORouterRegistry.instance=new IORouterRegistry),IORouterRegistry.instance}static registerSaveRouter(saveRouter){IORouterRegistry.getInstance().saveRouters.push(saveRouter)}static registerLoadRouter(loadRouter){IORouterRegistry.getInstance().loadRouters.push(loadRouter)}static getSaveHandlers(url){return IORouterRegistry.getHandlers(url,"save")}static getLoadHandlers(url,loadOptions){return IORouterRegistry.getHandlers(url,"load",loadOptions)}static getHandlers(url,handlerType,loadOptions){let validHandlers=[];return(handlerType==="load"?IORouterRegistry.getInstance().loadRouters:IORouterRegistry.getInstance().saveRouters).forEach(router=>{let handler=router(url,loadOptions);handler!==null&&validHandlers.push(handler)}),validHandlers}},registerSaveRouter=loudRouter=>IORouterRegistry.registerSaveRouter(loudRouter),registerLoadRouter=loudRouter=>IORouterRegistry.registerLoadRouter(loudRouter),getSaveHandlers=url=>IORouterRegistry.getSaveHandlers(url),getLoadHandlers=(url,loadOptions)=>IORouterRegistry.getLoadHandlers(url,loadOptions),DATABASE_NAME="tensorflowjs",DATABASE_VERSION=1,MODEL_STORE_NAME="models_store",INFO_STORE_NAME="model_info_store";function getIndexedDBFactory(){if(!env().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let theWindow=typeof window=="undefined"?self:window,factory=theWindow.indexedDB||theWindow.mozIndexedDB||theWindow.webkitIndexedDB||theWindow.msIndexedDB||theWindow.shimIndexedDB;if(factory==null)throw new Error("The current browser does not appear to support IndexedDB.");return factory}function setUpDatabase(openRequest){let db=openRequest.result;db.createObjectStore(MODEL_STORE_NAME,{keyPath:"modelPath"}),db.createObjectStore(INFO_STORE_NAME,{keyPath:"modelPath"})}var BrowserIndexedDB=class{constructor(modelPath){if(this.indexedDB=getIndexedDBFactory(),modelPath==null||!modelPath)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=modelPath}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,modelArtifacts)}async load(){return this.databaseAction(this.modelPath)}databaseAction(modelPath,modelArtifacts){return new Promise((resolve,reject)=>{let openRequest=this.indexedDB.open(DATABASE_NAME,DATABASE_VERSION);openRequest.onupgradeneeded=()=>setUpDatabase(openRequest),openRequest.onsuccess=()=>{let db=openRequest.result;if(modelArtifacts==null){let modelTx=db.transaction(MODEL_STORE_NAME,"readonly"),getRequest=modelTx.objectStore(MODEL_STORE_NAME).get(this.modelPath);getRequest.onsuccess=()=>{if(getRequest.result==null)return db.close(),reject(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));resolve(getRequest.result.modelArtifacts)},getRequest.onerror=error=>(db.close(),reject(getRequest.error)),modelTx.oncomplete=()=>db.close()}else{let modelArtifactsInfo=getModelArtifactsInfoForJSON(modelArtifacts),infoTx=db.transaction(INFO_STORE_NAME,"readwrite"),infoStore=infoTx.objectStore(INFO_STORE_NAME),putInfoRequest=infoStore.put({modelPath:this.modelPath,modelArtifactsInfo}),modelTx;putInfoRequest.onsuccess=()=>{modelTx=db.transaction(MODEL_STORE_NAME,"readwrite");let putModelRequest=modelTx.objectStore(MODEL_STORE_NAME).put({modelPath:this.modelPath,modelArtifacts,modelArtifactsInfo});putModelRequest.onsuccess=()=>resolve({modelArtifactsInfo}),putModelRequest.onerror=error=>{infoStore=infoTx.objectStore(INFO_STORE_NAME);let deleteInfoRequest=infoStore.delete(this.modelPath);deleteInfoRequest.onsuccess=()=>(db.close(),reject(putModelRequest.error)),deleteInfoRequest.onerror=error2=>(db.close(),reject(putModelRequest.error))}},putInfoRequest.onerror=error=>(db.close(),reject(putInfoRequest.error)),infoTx.oncomplete=()=>{modelTx==null?db.close():modelTx.oncomplete=()=>db.close()}}},openRequest.onerror=error=>reject(openRequest.error)})}};BrowserIndexedDB.URL_SCHEME="indexeddb://";var indexedDBRouter=url=>env().getBool("IS_BROWSER")&&!Array.isArray(url)&&url.startsWith(BrowserIndexedDB.URL_SCHEME)?browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length)):null;IORouterRegistry.registerSaveRouter(indexedDBRouter);IORouterRegistry.registerLoadRouter(indexedDBRouter);function browserIndexedDB(modelPath){return new BrowserIndexedDB(modelPath)}function maybeStripScheme(key){return key.startsWith(BrowserIndexedDB.URL_SCHEME)?key.slice(BrowserIndexedDB.URL_SCHEME.length):key}var BrowserIndexedDBManager=class{constructor(){this.indexedDB=getIndexedDBFactory()}async listModels(){return new Promise((resolve,reject)=>{let openRequest=this.indexedDB.open(DATABASE_NAME,DATABASE_VERSION);openRequest.onupgradeneeded=()=>setUpDatabase(openRequest),openRequest.onsuccess=()=>{let db=openRequest.result,tx=db.transaction(INFO_STORE_NAME,"readonly"),getAllInfoRequest=tx.objectStore(INFO_STORE_NAME).getAll();getAllInfoRequest.onsuccess=()=>{let out={};for(let item of getAllInfoRequest.result)out[item.modelPath]=item.modelArtifactsInfo;resolve(out)},getAllInfoRequest.onerror=error=>(db.close(),reject(getAllInfoRequest.error)),tx.oncomplete=()=>db.close()},openRequest.onerror=error=>reject(openRequest.error)})}async removeModel(path){return path=maybeStripScheme(path),new Promise((resolve,reject)=>{let openRequest=this.indexedDB.open(DATABASE_NAME,DATABASE_VERSION);openRequest.onupgradeneeded=()=>setUpDatabase(openRequest),openRequest.onsuccess=()=>{let db=openRequest.result,infoTx=db.transaction(INFO_STORE_NAME,"readwrite"),infoStore=infoTx.objectStore(INFO_STORE_NAME),getInfoRequest=infoStore.get(path),modelTx;getInfoRequest.onsuccess=()=>{if(getInfoRequest.result==null)return db.close(),reject(new Error(`Cannot find model with path '${path}' in IndexedDB.`));{let deleteInfoRequest=infoStore.delete(path),deleteModelData=()=>{modelTx=db.transaction(MODEL_STORE_NAME,"readwrite");let deleteModelRequest=modelTx.objectStore(MODEL_STORE_NAME).delete(path);deleteModelRequest.onsuccess=()=>resolve(getInfoRequest.result.modelArtifactsInfo),deleteModelRequest.onerror=error=>reject(getInfoRequest.error)};deleteInfoRequest.onsuccess=deleteModelData,deleteInfoRequest.onerror=error=>(deleteModelData(),db.close(),reject(getInfoRequest.error))}},getInfoRequest.onerror=error=>(db.close(),reject(getInfoRequest.error)),infoTx.oncomplete=()=>{modelTx==null?db.close():modelTx.oncomplete=()=>db.close()}},openRequest.onerror=error=>reject(openRequest.error)})}},PATH_SEPARATOR="/",PATH_PREFIX="tensorflowjs_models",INFO_SUFFIX="info",MODEL_TOPOLOGY_SUFFIX="model_topology",WEIGHT_SPECS_SUFFIX="weight_specs",WEIGHT_DATA_SUFFIX="weight_data",MODEL_METADATA_SUFFIX="model_metadata";function getModelKeys(path){return{info:[PATH_PREFIX,path,INFO_SUFFIX].join(PATH_SEPARATOR),topology:[PATH_PREFIX,path,MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),weightSpecs:[PATH_PREFIX,path,WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),weightData:[PATH_PREFIX,path,WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),modelMetadata:[PATH_PREFIX,path,MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)}}function getModelPathFromKey(key){let items=key.split(PATH_SEPARATOR);if(items.length<3)throw new Error(`Invalid key format: ${key}`);return items.slice(1,items.length-1).join(PATH_SEPARATOR)}function maybeStripScheme2(key){return key.startsWith(BrowserLocalStorage.URL_SCHEME)?key.slice(BrowserLocalStorage.URL_SCHEME.length):key}var BrowserLocalStorage=class{constructor(modelPath){if(!env().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,modelPath==null||!modelPath)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=modelPath,this.keys=getModelKeys(this.modelPath)}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let topology=JSON.stringify(modelArtifacts.modelTopology),weightSpecs=JSON.stringify(modelArtifacts.weightSpecs),modelArtifactsInfo=getModelArtifactsInfoForJSON(modelArtifacts);try{this.LS.setItem(this.keys.info,JSON.stringify(modelArtifactsInfo)),this.LS.setItem(this.keys.topology,topology),this.LS.setItem(this.keys.weightSpecs,weightSpecs),this.LS.setItem(this.keys.weightData,arrayBufferToBase64String(modelArtifacts.weightData));let result={format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy};return modelArtifacts.signature!=null&&(result.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(result.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(result.modelInitializer=modelArtifacts.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(result)),{modelArtifactsInfo}}catch(err){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`)}}}async load(){let info=JSON.parse(this.LS.getItem(this.keys.info));if(info==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(info.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let out={},topology=JSON.parse(this.LS.getItem(this.keys.topology));if(topology==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);out.modelTopology=topology;let weightSpecs=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(weightSpecs==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);out.weightSpecs=weightSpecs;let metadataString=this.LS.getItem(this.keys.modelMetadata);if(metadataString!=null){let metadata=JSON.parse(metadataString);out.format=metadata.format,out.generatedBy=metadata.generatedBy,out.convertedBy=metadata.convertedBy,metadata.signature!=null&&(out.signature=metadata.signature),metadata.userDefinedMetadata!=null&&(out.userDefinedMetadata=metadata.userDefinedMetadata),metadata.modelInitializer!=null&&(out.modelInitializer=metadata.modelInitializer)}let weightDataBase64=this.LS.getItem(this.keys.weightData);if(weightDataBase64==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return out.weightData=base64StringToArrayBuffer(weightDataBase64),out}};BrowserLocalStorage.URL_SCHEME="localstorage://";var localStorageRouter=url=>env().getBool("IS_BROWSER")&&!Array.isArray(url)&&url.startsWith(BrowserLocalStorage.URL_SCHEME)?browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length)):null;IORouterRegistry.registerSaveRouter(localStorageRouter);IORouterRegistry.registerLoadRouter(localStorageRouter);function browserLocalStorage(modelPath){return new BrowserLocalStorage(modelPath)}var BrowserLocalStorageManager=class{constructor(){assert(env().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),assert(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let out={},prefix=PATH_PREFIX+PATH_SEPARATOR,suffix=PATH_SEPARATOR+INFO_SUFFIX;for(let i=0;i"scheme must not be undefined or null."),scheme.endsWith(URL_SCHEME_SUFFIX)&&(scheme=scheme.slice(0,scheme.indexOf(URL_SCHEME_SUFFIX))),assert(scheme.length>0,()=>"scheme must not be an empty string.");let registry=ModelStoreManagerRegistry.getInstance();assert(registry.managers[scheme]==null,()=>`A model store manager is already registered for scheme '${scheme}'.`),registry.managers[scheme]=manager}static getManager(scheme){let manager=this.getInstance().managers[scheme];if(manager==null)throw new Error(`Cannot find model manager for scheme '${scheme}'`);return manager}static getSchemes(){return Object.keys(this.getInstance().managers)}};function parseURL(url){if(url.indexOf(URL_SCHEME_SUFFIX)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${ModelStoreManagerRegistry.getSchemes().join(",")}`);return{scheme:url.split(URL_SCHEME_SUFFIX)[0],path:url.split(URL_SCHEME_SUFFIX)[1]}}async function cloneModelInternal(sourceURL,destURL,deleteSource=!1){assert(sourceURL!==destURL,()=>`Old path and new path are the same: '${sourceURL}'`);let loadHandlers=IORouterRegistry.getLoadHandlers(sourceURL);assert(loadHandlers.length>0,()=>`Copying failed because no load handler is found for source URL ${sourceURL}.`),assert(loadHandlers.length<2,()=>`Copying failed because more than one (${loadHandlers.length}) load handlers for source URL ${sourceURL}.`);let loadHandler=loadHandlers[0],saveHandlers=IORouterRegistry.getSaveHandlers(destURL);assert(saveHandlers.length>0,()=>`Copying failed because no save handler is found for destination URL ${destURL}.`),assert(saveHandlers.length<2,()=>`Copying failed because more than one (${loadHandlers.length}) save handlers for destination URL ${destURL}.`);let saveHandler=saveHandlers[0],sourceScheme=parseURL(sourceURL).scheme,sourcePath=parseURL(sourceURL).path,sameMedium=sourceScheme===parseURL(sourceURL).scheme,modelArtifacts=await loadHandler.load();deleteSource&&sameMedium&&await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath);let saveResult=await saveHandler.save(modelArtifacts);return deleteSource&&!sameMedium&&await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath),saveResult.modelArtifactsInfo}async function listModels(){let schemes=ModelStoreManagerRegistry.getSchemes(),out={};for(let scheme of schemes){let schemeOut=await ModelStoreManagerRegistry.getManager(scheme).listModels();for(let path in schemeOut){let url=scheme+URL_SCHEME_SUFFIX+path;out[url]=schemeOut[path]}}return out}async function removeModel(url){let schemeAndPath=parseURL(url);return ModelStoreManagerRegistry.getManager(schemeAndPath.scheme).removeModel(schemeAndPath.path)}async function copyModel(sourceURL,destURL){return cloneModelInternal(sourceURL,destURL,!1)}async function moveModel(sourceURL,destURL){return cloneModelInternal(sourceURL,destURL,!0)}var PlatformBrowser=class{fetch(path,init2){return fetch(path,init2)}now(){return performance.now()}encode(text,encoding){if(encoding!=="utf-8"&&encoding!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${encoding}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(text)}decode(bytes,encoding){return new TextDecoder(encoding).decode(bytes)}};if(env().get("IS_BROWSER")){env().setPlatform("browser",new PlatformBrowser);try{ModelStoreManagerRegistry.registerManager(BrowserLocalStorage.URL_SCHEME,new BrowserLocalStorageManager)}catch(err){}try{ModelStoreManagerRegistry.registerManager(BrowserIndexedDB.URL_SCHEME,new BrowserIndexedDBManager)}catch(err){}}var getNodeFetch={importFetch:()=>require_browser()},systemFetch,PlatformNode=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(path,requestInits){return env().global.fetch!=null?env().global.fetch(path,requestInits):(systemFetch==null&&(systemFetch=getNodeFetch.importFetch()),systemFetch(path,requestInits))}now(){let time2=process.hrtime();return time2[0]*1e3+time2[1]/1e6}encode(text,encoding){if(encoding!=="utf-8"&&encoding!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${encoding}`);return this.textEncoder.encode(text)}decode(bytes,encoding){return bytes.length===0?"":new this.util.TextDecoder(encoding).decode(bytes)}};env().get("IS_NODE")&&env().setPlatform("node",new PlatformNode);function buffer(shape,dtype="float32",values){return dtype=dtype||"float32",assertNonNegativeIntegerDimensions(shape),new TensorBuffer(shape,dtype,values)}function cast_(x,dtype){let $x=convertToTensor(x,"x","cast");if(!isValidDtype(dtype))throw new Error(`Failed to cast to unknown dtype ${dtype}`);if(dtype==="string"&&$x.dtype!=="string"||dtype!=="string"&&$x.dtype==="string")throw new Error("Only strings can be casted to strings");let inputs={x:$x},attrs={dtype};return ENGINE.runKernel(Cast,inputs,attrs)}var cast=op({cast_});function clone_(x){let inputs={x:convertToTensor(x,"x","clone","string_or_numeric")};return ENGINE.runKernel(Identity,inputs)}var clone=op({clone_});function print2(x,verbose=!1){console.log(x.toString(verbose))}getOrMakeEngine();var opHandler2={buffer,cast,clone,print:print2};setOpHandler(opHandler2);var io_exports={};__export2(io_exports,{browserFiles:()=>browserFiles,browserHTTPRequest:()=>browserHTTPRequest,concatenateArrayBuffers:()=>concatenateArrayBuffers,copyModel:()=>copyModel,decodeWeights:()=>decodeWeights,encodeWeights:()=>encodeWeights,fromMemory:()=>fromMemory,getLoadHandlers:()=>getLoadHandlers,getModelArtifactsInfoForJSON:()=>getModelArtifactsInfoForJSON,getSaveHandlers:()=>getSaveHandlers,http:()=>http,isHTTPScheme:()=>isHTTPScheme,listModels:()=>listModels,loadWeights:()=>loadWeights,moveModel:()=>moveModel,registerLoadRouter:()=>registerLoadRouter,registerSaveRouter:()=>registerSaveRouter,removeModel:()=>removeModel,weightsLoaderFactory:()=>weightsLoaderFactory,withSaveHandler:()=>withSaveHandler});var DEFAULT_FILE_NAME_PREFIX="model",DEFAULT_JSON_EXTENSION_NAME=".json",DEFAULT_WEIGHT_DATA_EXTENSION_NAME=".weights.bin";function defer(f){return new Promise(resolve=>setTimeout(resolve)).then(f)}var BrowserDownloads=class{constructor(fileNamePrefix){if(!env().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)&&(fileNamePrefix=fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length)),(fileNamePrefix==null||fileNamePrefix.length===0)&&(fileNamePrefix=DEFAULT_FILE_NAME_PREFIX),this.modelTopologyFileName=fileNamePrefix+DEFAULT_JSON_EXTENSION_NAME,this.weightDataFileName=fileNamePrefix+DEFAULT_WEIGHT_DATA_EXTENSION_NAME}async save(modelArtifacts){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let weightsURL=window.URL.createObjectURL(new Blob([modelArtifacts.weightData],{type:"application/octet-stream"}));if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let weightsManifest=[{paths:["./"+this.weightDataFileName],weights:modelArtifacts.weightSpecs}],modelTopologyAndWeightManifest={modelTopology:modelArtifacts.modelTopology,format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy,weightsManifest};modelArtifacts.signature!=null&&(modelTopologyAndWeightManifest.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(modelTopologyAndWeightManifest.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(modelTopologyAndWeightManifest.modelInitializer=modelArtifacts.modelInitializer);let modelTopologyAndWeightManifestURL=window.URL.createObjectURL(new Blob([JSON.stringify(modelTopologyAndWeightManifest)],{type:"application/json"})),jsonAnchor=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(jsonAnchor.download=this.modelTopologyFileName,jsonAnchor.href=modelTopologyAndWeightManifestURL,await defer(()=>jsonAnchor.dispatchEvent(new MouseEvent("click"))),modelArtifacts.weightData!=null){let weightDataAnchor=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;weightDataAnchor.download=this.weightDataFileName,weightDataAnchor.href=weightsURL,await defer(()=>weightDataAnchor.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:getModelArtifactsInfoForJSON(modelArtifacts)}}}};BrowserDownloads.URL_SCHEME="downloads://";var BrowserFiles=class{constructor(files){if(files==null||files.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${files}`);this.files=files}async load(){let jsonFile=this.files[0],weightFiles=this.files.slice(1);return new Promise((resolve,reject)=>{let jsonReader=new FileReader;jsonReader.onload=event=>{let modelJSON=JSON.parse(event.target.result),modelTopology=modelJSON.modelTopology;if(modelTopology==null){reject(new Error(`modelTopology field is missing from file ${jsonFile.name}`));return}weightFiles.length===0&&resolve({modelTopology});let weightsManifest=modelJSON.weightsManifest;if(weightsManifest==null){reject(new Error(`weightManifest field is missing from file ${jsonFile.name}`));return}let pathToFile;try{pathToFile=this.checkManifestAndWeightFiles(weightsManifest,weightFiles)}catch(err){reject(err);return}let weightSpecs=[],paths=[],perFileBuffers=[];weightsManifest.forEach(weightsGroup=>{weightsGroup.paths.forEach(path=>{paths.push(path),perFileBuffers.push(null)}),weightSpecs.push(...weightsGroup.weights)}),weightsManifest.forEach(weightsGroup=>{weightsGroup.paths.forEach(path=>{let weightFileReader=new FileReader;weightFileReader.onload=event2=>{let weightData=event2.target.result,index=paths.indexOf(path);if(perFileBuffers[index]=weightData,perFileBuffers.indexOf(null)===-1){let result={modelTopology,weightSpecs,weightData:concatenateArrayBuffers(perFileBuffers),format:modelJSON.format,generatedBy:modelJSON.generatedBy,convertedBy:modelJSON.convertedBy};modelJSON.signature!=null&&(result.signature=modelJSON.signature),modelJSON.userDefinedMetadata!=null&&(result.userDefinedMetadata=modelJSON.userDefinedMetadata),modelJSON.modelInitializer!=null&&(result.modelInitializer=modelJSON.modelInitializer),resolve(result)}},weightFileReader.onerror=error=>reject(`Failed to weights data from file of path '${path}'.`),weightFileReader.readAsArrayBuffer(pathToFile[path])})})},jsonReader.onerror=error=>reject(`Failed to read model topology and weights manifest JSON from file '${jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),jsonReader.readAsText(jsonFile)})}checkManifestAndWeightFiles(manifest,files){let basenames=[],fileNames=files.map(file=>basename(file.name)),pathToFile={};for(let group of manifest)group.paths.forEach(path=>{let pathBasename=basename(path);if(basenames.indexOf(pathBasename)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${pathBasename}'`);if(basenames.push(pathBasename),fileNames.indexOf(pathBasename)===-1)throw new Error(`Weight file with basename '${pathBasename}' is not provided.`);pathToFile[path]=files[fileNames.indexOf(pathBasename)]});if(basenames.length!==files.length)throw new Error(`Mismatch in the number of files in weights manifest (${basenames.length}) and the number of weight files provided (${files.length}).`);return pathToFile}},browserDownloadsRouter=url=>env().getBool("IS_BROWSER")&&!Array.isArray(url)&&url.startsWith(BrowserDownloads.URL_SCHEME)?browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length)):null;IORouterRegistry.registerSaveRouter(browserDownloadsRouter);function browserDownloads(fileNamePrefix="model"){return new BrowserDownloads(fileNamePrefix)}function browserFiles(files){return new BrowserFiles(files)}function monitorPromisesProgress(promises,onProgress,startFraction,endFraction){checkPromises(promises),startFraction=startFraction==null?0:startFraction,endFraction=endFraction==null?1:endFraction,checkFraction(startFraction,endFraction);let resolvedPromise=0,registerMonitor=promise=>(promise.then(value=>{let fraction=startFraction+ ++resolvedPromise/promises.length*(endFraction-startFraction);return onProgress(fraction),value}),promise);function checkPromises(promises2){assert(promises2!=null&&Array.isArray(promises2)&&promises2.length>0,()=>"promises must be a none empty array")}function checkFraction(startFraction2,endFraction2){assert(startFraction2>=0&&startFraction2<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${startFraction2}`),assert(endFraction2>=0&&endFraction2<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${endFraction2}`),assert(endFraction2>=startFraction2,()=>`startFraction must be no more than endFraction, but got startFraction ${startFraction2} and endFraction ${endFraction2}`)}return Promise.all(promises.map(registerMonitor))}async function loadWeightsAsArrayBuffer(fetchURLs,loadOptions){loadOptions==null&&(loadOptions={});let fetchFunc=loadOptions.fetchFunc==null?env().platform.fetch:loadOptions.fetchFunc,requests=fetchURLs.map(fetchURL=>fetchFunc(fetchURL,loadOptions.requestInit,{isBinary:!0})),fetchStartFraction=0,fetchEndFraction=.5,bufferPromises=(loadOptions.onProgress==null?await Promise.all(requests):await monitorPromisesProgress(requests,loadOptions.onProgress,fetchStartFraction,fetchEndFraction)).map(response=>response.arrayBuffer()),bufferStartFraction=.5,bufferEndFraction=1;return loadOptions.onProgress==null?await Promise.all(bufferPromises):await monitorPromisesProgress(bufferPromises,loadOptions.onProgress,bufferStartFraction,bufferEndFraction)}async function loadWeights(manifest,filePathPrefix="",weightNames,requestInit){return weightsLoaderFactory(fetchUrls=>loadWeightsAsArrayBuffer(fetchUrls,{requestInit}))(manifest,filePathPrefix,weightNames)}function weightsLoaderFactory(fetchWeightsFunction){return async(manifest,filePathPrefix="",weightNames)=>{let groupIndicesToFetchMap=manifest.map(()=>!1),groupWeightsToFetch={},weightsFound=weightNames!=null?weightNames.map(()=>!1):[],allManifestWeightNames=[];if(manifest.forEach((manifestGroupConfig,groupIndex)=>{let groupOffset=0;manifestGroupConfig.weights.forEach(weightsEntry=>{let rawDtype="quantization"in weightsEntry?weightsEntry.quantization.dtype:weightsEntry.dtype,weightsBytes=DTYPE_VALUE_SIZE_MAP[rawDtype]*sizeFromShape(weightsEntry.shape),enqueueWeightsForFetchingFn=()=>{groupIndicesToFetchMap[groupIndex]=!0,groupWeightsToFetch[groupIndex]==null&&(groupWeightsToFetch[groupIndex]=[]),groupWeightsToFetch[groupIndex].push({manifestEntry:weightsEntry,groupOffset,sizeBytes:weightsBytes})};weightNames!=null?weightNames.forEach((weightName,weightIndex)=>{weightName===weightsEntry.name&&(enqueueWeightsForFetchingFn(),weightsFound[weightIndex]=!0)}):enqueueWeightsForFetchingFn(),allManifestWeightNames.push(weightsEntry.name),groupOffset+=weightsBytes})}),!weightsFound.every(found=>found)){let weightsNotFound=weightNames.filter((_,i)=>!weightsFound[i]);throw new Error(`Could not find weights in manifest with names: ${weightsNotFound.join(", ")}. -Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`)}let groupIndicesToFetch=groupIndicesToFetchMap.reduce((accumulator,shouldFetch,i)=>(shouldFetch&&accumulator.push(i),accumulator),[]),fetchUrls=[];groupIndicesToFetch.forEach(i=>{manifest[i].paths.forEach(filepath=>{let fetchUrl=filePathPrefix+(filePathPrefix.endsWith("/")?"":"/")+filepath;fetchUrls.push(fetchUrl)})});let buffers=await fetchWeightsFunction(fetchUrls),weightsTensorMap={},bufferIndexOffset=0;return groupIndicesToFetch.forEach(i=>{let numBuffers=manifest[i].paths.length,groupBytes=0;for(let i2=0;i2{let byteBuffer=groupBuffer.slice(weightsEntry.groupOffset,weightsEntry.groupOffset+weightsEntry.sizeBytes),nameToTensorMap=decodeWeights(byteBuffer,[weightsEntry.manifestEntry]);for(let name in nameToTensorMap)weightsTensorMap[name]=nameToTensorMap[name]}),bufferIndexOffset+=numBuffers}),weightsTensorMap}}var OCTET_STREAM_MIME_TYPE="application/octet-stream",JSON_TYPE="application/json",HTTPRequest=class{constructor(path,loadOptions){if(this.DEFAULT_METHOD="POST",loadOptions==null&&(loadOptions={}),this.weightPathPrefix=loadOptions.weightPathPrefix,this.onProgress=loadOptions.onProgress,this.weightUrlConverter=loadOptions.weightUrlConverter,loadOptions.fetchFunc!=null?(assert(typeof loadOptions.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=loadOptions.fetchFunc):this.fetch=env().platform.fetch,assert(path!=null&&path.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(path)&&assert(path.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${path.length}).`),this.path=path,loadOptions.requestInit!=null&&loadOptions.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=loadOptions.requestInit||{}}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let init2=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);init2.body=new FormData;let weightsManifest=[{paths:["./model.weights.bin"],weights:modelArtifacts.weightSpecs}],modelTopologyAndWeightManifest={modelTopology:modelArtifacts.modelTopology,format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy,weightsManifest};modelArtifacts.signature!=null&&(modelTopologyAndWeightManifest.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(modelTopologyAndWeightManifest.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(modelTopologyAndWeightManifest.modelInitializer=modelArtifacts.modelInitializer),init2.body.append("model.json",new Blob([JSON.stringify(modelTopologyAndWeightManifest)],{type:JSON_TYPE}),"model.json"),modelArtifacts.weightData!=null&&init2.body.append("model.weights.bin",new Blob([modelArtifacts.weightData],{type:OCTET_STREAM_MIME_TYPE}),"model.weights.bin");let response=await this.fetch(this.path,init2);if(response.ok)return{modelArtifactsInfo:getModelArtifactsInfoForJSON(modelArtifacts),responses:[response]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${response.status}.`)}async load(){let modelConfigRequest=await this.fetch(this.path,this.requestInit);if(!modelConfigRequest.ok)throw new Error(`Request to ${this.path} failed with status code ${modelConfigRequest.status}. Please verify this URL points to the model JSON of the model to load.`);let modelConfig;try{modelConfig=await modelConfigRequest.json()}catch(e){let message=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?message+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":message+=" Please make sure the server is serving valid JSON for this request.",new Error(message)}let modelTopology=modelConfig.modelTopology,weightsManifest=modelConfig.weightsManifest,generatedBy=modelConfig.generatedBy,convertedBy=modelConfig.convertedBy,format=modelConfig.format,signature=modelConfig.signature,userDefinedMetadata=modelConfig.userDefinedMetadata;if(modelTopology==null&&weightsManifest==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let weightSpecs,weightData;weightsManifest!=null&&([weightSpecs,weightData]=await this.loadWeights(weightsManifest));let artifacts={modelTopology,weightSpecs,weightData,generatedBy,convertedBy,format};signature!=null&&(artifacts.signature=signature),userDefinedMetadata!=null&&(artifacts.userDefinedMetadata=userDefinedMetadata);let initializer=modelConfig.modelInitializer;return initializer&&(artifacts.modelInitializer=initializer),artifacts}async loadWeights(weightsManifest){let weightPath=Array.isArray(this.path)?this.path[1]:this.path,[prefix,suffix]=parseUrl(weightPath),pathPrefix=this.weightPathPrefix||prefix,weightSpecs=[];for(let entry of weightsManifest)weightSpecs.push(...entry.weights);let fetchURLs=[],urlPromises=[];for(let weightsGroup of weightsManifest)for(let path of weightsGroup.paths)this.weightUrlConverter!=null?urlPromises.push(this.weightUrlConverter(path)):fetchURLs.push(pathPrefix+path+suffix);this.weightUrlConverter&&fetchURLs.push(...await Promise.all(urlPromises));let buffers=await loadWeightsAsArrayBuffer(fetchURLs,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[weightSpecs,concatenateArrayBuffers(buffers)]}};HTTPRequest.URL_SCHEME_REGEX=/^https?:\/\//;function parseUrl(url){let lastSlash=url.lastIndexOf("/"),lastSearchParam=url.lastIndexOf("?"),prefix=url.substring(0,lastSlash),suffix=lastSearchParam>lastSlash?url.substring(lastSearchParam):"";return[prefix+"/",suffix]}function isHTTPScheme(url){return url.match(HTTPRequest.URL_SCHEME_REGEX)!=null}var httpRouter=(url,loadOptions)=>{if(typeof fetch=="undefined"&&(loadOptions==null||loadOptions.fetchFunc==null))return null;{let isHTTP=!0;if(Array.isArray(url)?isHTTP=url.every(urlItem=>isHTTPScheme(urlItem)):isHTTP=isHTTPScheme(url),isHTTP)return http(url,loadOptions)}return null};IORouterRegistry.registerSaveRouter(httpRouter);IORouterRegistry.registerLoadRouter(httpRouter);function http(path,loadOptions){return new HTTPRequest(path,loadOptions)}function browserHTTPRequest(path,loadOptions){return http(path,loadOptions)}var PassthroughLoader=class{constructor(modelArtifacts){this.modelArtifacts=modelArtifacts}async load(){return this.modelArtifacts}},PassthroughSaver=class{constructor(saveHandler){this.saveHandler=saveHandler}async save(modelArtifacts){return this.saveHandler(modelArtifacts)}};function fromMemory(modelArtifacts,weightSpecs,weightData,trainingConfig){return arguments.length===1?modelArtifacts.modelTopology!=null||modelArtifacts.weightSpecs!=null?new PassthroughLoader(modelArtifacts):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts,weightSpecs,weightData,trainingConfig}))}function withSaveHandler(saveHandler){return new PassthroughSaver(saveHandler)}var math_exports={};__export2(math_exports,{confusionMatrix:()=>confusionMatrix});function matMul_(a,b,transposeA=!1,transposeB=!1){let $a=convertToTensor(a,"a","matMul"),$b=convertToTensor(b,"b","matMul");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b},attrs={transposeA,transposeB};return ENGINE.runKernel(BatchMatMul,inputs,attrs)}var matMul=op({matMul_});function oneHot_(indices,depth,onValue=1,offValue=0){if(depth<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);let inputs={indices:convertToTensor(indices,"indices","oneHot","int32")},attrs={depth,onValue,offValue};return ENGINE.runKernel(OneHot,inputs,attrs)}var oneHot=op({oneHot_});function transpose_(x,perm){let $x=convertToTensor(x,"x","transpose");if(perm==null&&(perm=$x.shape.map((s,i)=>i).reverse()),assert($x.rank===perm.length,()=>`Error in transpose: rank of input ${$x.rank} must match length of perm ${perm}.`),perm.forEach(axis=>{assert(axis>=0&&axis<$x.rank,()=>`All entries in 'perm' must be between 0 and ${$x.rank-1} but got ${perm}`)}),$x.rank<=1)return $x.clone();let inputs={x:$x},attrs={perm};return ENGINE.runKernel(Transpose,inputs,attrs)}var transpose=op({transpose_});function confusionMatrix_(labels,predictions,numClasses){let $labels=convertToTensor(labels,"labels","confusionMatrix"),$predictions=convertToTensor(predictions,"predictions","confusionMatrix");assert(numClasses==null||numClasses>0&&Number.isInteger(numClasses),()=>`If provided, numClasses must be a positive integer, but got ${numClasses}`),assert($labels.rank===1,()=>`Expected the rank of labels to be 1, but got ${$labels.rank}`),assert($predictions.rank===1,()=>`Expected the rank of predictions to be 1, but got ${$predictions.rank}`),assert($labels.shape[0]===$predictions.shape[0],()=>`Mismatch in the number of examples: ${$labels.shape[0]} vs. ${$predictions.shape[0]}. Labels and predictions should have the same number of elements.`),assert(numClasses>0&&Number.isInteger(numClasses),()=>`numClasses is required to be a positive integer, but got ${numClasses}`);let oneHotLabels=oneHot(cast($labels,"int32"),numClasses),oneHotPredictions=oneHot(cast($predictions,"int32"),numClasses),oneHotLabelsT=transpose(oneHotLabels),product=matMul(oneHotLabelsT,oneHotPredictions);return cast(product,"int32")}var confusionMatrix=op({confusionMatrix_}),browser_exports={};__export2(browser_exports,{fromPixels:()=>fromPixels,toPixels:()=>toPixels});function tensor3d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==3&&inferredShape.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}var fromPixels2DContext;function fromPixels_(pixels,numChannels=3){if(numChannels>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(pixels==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let isPixelData=!1,isImageData=!1,isVideo=!1,isImage=!1,isCanvasLike=!1,isImageBitmap=!1;if(pixels.data instanceof Uint8Array)isPixelData=!0;else if(typeof ImageData!="undefined"&&pixels instanceof ImageData)isImageData=!0;else if(typeof HTMLVideoElement!="undefined"&&pixels instanceof HTMLVideoElement)isVideo=!0;else if(typeof HTMLImageElement!="undefined"&&pixels instanceof HTMLImageElement)isImage=!0;else if(pixels.getContext!=null)isCanvasLike=!0;else if(typeof ImageBitmap!="undefined"&&pixels instanceof ImageBitmap)isImageBitmap=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${pixels.constructor.name}`);if(isVideo){let HAVE_CURRENT_DATA_READY_STATE=2;if(isVideo&&pixels.readyState element.")}if(getKernel(FromPixels,ENGINE.backendName)!=null){let inputs={pixels},attrs={numChannels};return ENGINE.runKernel(FromPixels,inputs,attrs)}let[width,height]=isVideo?[pixels.videoWidth,pixels.videoHeight]:[pixels.width,pixels.height],vals;isCanvasLike?vals=pixels.getContext("2d").getImageData(0,0,width,height).data:isImageData||isPixelData?vals=pixels.data:(isImage||isVideo||isImageBitmap)&&(fromPixels2DContext==null&&(fromPixels2DContext=document.createElement("canvas").getContext("2d")),fromPixels2DContext.canvas.width=width,fromPixels2DContext.canvas.height=height,fromPixels2DContext.drawImage(pixels,0,0,width,height),vals=fromPixels2DContext.getImageData(0,0,width,height).data);let values;if(numChannels===4)values=new Int32Array(vals);else{let numPixels=width*height;values=new Int32Array(numPixels*numChannels);for(let i=0;i4||depth===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${depth}`);if($img.dtype!=="float32"&&$img.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${$img.dtype}. Please use float32 or int32 tensors.`);let data2=await $img.data(),multiplier=$img.dtype==="float32"?255:1,bytes=new Uint8ClampedArray(width*height*4);for(let i=0;i1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${value}.`)}else if($img.dtype==="int32"&&(value<0||value>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${value}.`);depth===1?(rgba[0]=value*multiplier,rgba[1]=value*multiplier,rgba[2]=value*multiplier):rgba[d]=value*multiplier}let j=i*4;bytes[j+0]=Math.round(rgba[0]),bytes[j+1]=Math.round(rgba[1]),bytes[j+2]=Math.round(rgba[2]),bytes[j+3]=Math.round(rgba[3])}if(canvas!=null){canvas.width=width,canvas.height=height;let ctx=canvas.getContext("2d"),imageData=new ImageData(bytes,width,height);ctx.putImageData(imageData,0,0)}return $img!==img&&$img.dispose(),bytes}var fromPixels=op({fromPixels_}),gather_nd_util_exports={};__export2(gather_nd_util_exports,{prepareAndValidate:()=>prepareAndValidate});function prepareAndValidate(tensor2,indices){let tensorRank=tensor2.shape.length,indicesRank=indices.shape.length;if(tensorRank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${tensorRank}.`);if(indicesRank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${indicesRank}.`);if(indices.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${indices.dtype}.`);if(indices.shape[indicesRank-1]>tensorRank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${indices.shape[indicesRank-1]} vs. ${tensorRank}`);if(sizeFromShape(tensor2.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${tensor2.shape}.`);let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],nResult=1;for(let i=0;istride/sliceSize),1].slice(0,sliceRank);return[resultShape,nResult,sliceSize,strides]}var scatter_nd_util_exports={};__export2(scatter_nd_util_exports,{calculateShapes:()=>calculateShapes,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape});function validateUpdateShape(shape,indices,updates){let sliceDim=indices.rank>1?indices.shape[indices.rank-1]:1,batchDim=indices.rank>1?indices.rank-1:1,shapeError=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${updates.shape}, indices.shape: ${indices.shape}, shape: ${shape}, sliceDim: ${sliceDim}, and batchDim: ${batchDim}.`;if(updates.rank1?indices.shape[indicesRank-1]:1,totalNd=shape.length,sliceSize=1;for(let i=sliceRank;iassertParamsValid,computeFlatOffset:()=>computeFlatOffset,computeOutShape:()=>computeOutShape,getNormalizedAxes:()=>getNormalizedAxes,isSliceContinous:()=>isSliceContinous,maskToAxes:()=>maskToAxes,parseSliceParams:()=>parseSliceParams,sliceInfo:()=>sliceInfo,startForAxis:()=>startForAxis,startIndicesWithElidedDims:()=>startIndicesWithElidedDims,stopForAxis:()=>stopForAxis,stopIndicesWithElidedDims:()=>stopIndicesWithElidedDims,stridesForAxis:()=>stridesForAxis,stridesWithElidedDims:()=>stridesWithElidedDims});function assertParamsValid(input2,begin,size){let inputRank=input2.shape.length;assert(inputRank===begin.length,()=>`Error in slice${inputRank}D: Length of begin ${begin} must match the rank of the array (${inputRank}).`),assert(inputRank===size.length,()=>`Error in slice${inputRank}D: Length of size ${size} must match the rank of the array (${inputRank}).`);for(let i=0;i`Error in slice${inputRank}D: begin[${i}] + size[${i}] (${begin[i]+size[i]}) would overflow input.shape[${i}] (${input2.shape[i]})`)}function maskToAxes(mask){let axes=[],axis=0;for(;mask>0;)mask&1&&axes.push(axis),mask/=2,axis++;return axes}function computeOutShape(begin,end,strides){let size=[];for(let axis=0;axis0){let fullIndex=ellipsisAxes[0],numElidedAxes=numInterpolatedAxes+1;normalizedBegin=startIndicesWithElidedDims(beginMask,fullIndex,numElidedAxes,begin,inputShape),normalizedEnd=stopIndicesWithElidedDims(endMask,fullIndex,numElidedAxes,end,inputShape),normalizedStrides=stridesWithElidedDims(strides,fullIndex,numElidedAxes,inputShape)}else for(let axis=0;axis-1)newIndices[axis]=0;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalBegin[originalAxis];beginMask&1<-1)newIndices[axis]=Number.MAX_SAFE_INTEGER;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalEnd[originalAxis];endMask&1<0?start=Number.MIN_SAFE_INTEGER:start=Number.MAX_SAFE_INTEGER);let axisSize=inputShape[axis];return start<0&&(start+=axisSize),start=clamp(0,start,axisSize-1),start}function stopForAxis(endMask,stopIndices,strides,inputShape,axis,ellipsisMask){let stop=stopIndices[axis],stride=strides[axis]||1;(endMask&1<0?stop=Number.MAX_SAFE_INTEGER:stop=Number.MIN_SAFE_INTEGER);let axisSize=inputShape[axis];return stop<0&&(stop+=axisSize),stride>0?stop=clamp(0,stop,axisSize):stop=clamp(-1,stop,axisSize-1),stop}function isSliceContinous(shape,begin,size){let firstNonOneAxis=size.length;for(let i=0;i1){firstNonOneAxis=i;break}for(let i=firstNonOneAxis+1;i0||size[i]!==shape[i])return!1;return!0}function computeFlatOffset(begin,strides){let flatOffset=begin.length>0?begin[begin.length-1]:1;for(let i=0;i{assert(d!==-1,()=>"slice() does not support negative begin indexing.")});let size_;return size==null?size_=new Array(xRank).fill(-1):typeof size=="number"?size_=[size,...new Array(xRank-1).fill(-1)]:size.lengthd>=0?d:(assert(d===-1,()=>`Negative size values should be exactly -1 but got ${d} for the slice() size at index ${i}.`),x.shape[i]-begin_[i])),[begin_,size_]}function sliceInfo(xShape,begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask){let $begin=begin.slice(),$end=end.slice(),$strides=strides;strides==null&&($strides=new Array($begin.length));let ellipsisAxes=maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=xShape.length-$begin.length,expandAxes=maskToAxes(newAxisMask),newShape=xShape.slice();expandAxes.forEach(axis=>{$begin[axis]=0,$end[axis]=1,newShape.splice(axis,0,1)});let{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=getNormalizedAxes(newShape,ellipsisAxes,numInterpolatedAxes,$begin,$end,$strides,beginMask,endMask,ellipsisMask);$begin=normalizedBegin,$end=normalizedEnd,$strides=normalizedStrides;let shrinkAxes=maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{$end[axis]=$begin[axis]+1,$strides[axis]=1});let size=computeOutShape($begin,$end,$strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);return{nonStrided:$strides.every(v=>v===1),$begin,$end,$strides,size,newShape,outShape}}var serialization_exports={};__export2(serialization_exports,{Serializable:()=>Serializable,SerializationMap:()=>SerializationMap,registerClass:()=>registerClass});var Serializable=class{getClassName(){return this.constructor.className}static fromConfig(cls,config3){return new cls(config3)}},SerializationMap=class{constructor(){this.classNameMap={}}static getMap(){return SerializationMap.instance==null&&(SerializationMap.instance=new SerializationMap),SerializationMap.instance}static register(cls){SerializationMap.getMap().classNameMap[cls.className]=[cls,cls.fromConfig]}};function registerClass(cls){assert(cls.className!=null,()=>"Class being registered does not have the static className property defined."),assert(typeof cls.className=="string",()=>"className is required to be a string, but got type "+typeof cls.className),assert(cls.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),SerializationMap.register(cls)}var test_util_exports={};__export2(test_util_exports,{TEST_EPSILON_FLOAT16:()=>TEST_EPSILON_FLOAT16,encodeStrings:()=>encodeStrings,expectArrayBuffersEqual:()=>expectArrayBuffersEqual,expectArraysClose:()=>expectArraysClose,expectArraysEqual:()=>expectArraysEqual,expectNumbersClose:()=>expectNumbersClose,expectPromiseToFail:()=>expectPromiseToFail,expectValuesInRange:()=>expectValuesInRange,testEpsilon:()=>testEpsilon});var TEST_EPSILON_FLOAT32=.001,TEST_EPSILON_FLOAT16=.1;function expectArraysClose(actual,expected,epsilon3){return epsilon3==null&&(epsilon3=testEpsilon()),expectArraysPredicate(actual,expected,(a,b)=>areClose(a,b,epsilon3))}function testEpsilon(){return ENGINE.backend.floatPrecision()===32?TEST_EPSILON_FLOAT32:TEST_EPSILON_FLOAT16}function expectArraysPredicate(actual,expected,predicate){let checkClassType=!0;if((isTypedArray(actual)||isTypedArray(expected))&&(checkClassType=!1),isTypedArray(actual)&&isTypedArray(expected)&&(checkClassType=!0),checkClassType){let aType=actual.constructor.name,bType=expected.constructor.name;if(aType!==bType)throw new Error(`Arrays are of different type. Actual: ${aType}. Expected: ${bType}`)}if(Array.isArray(actual)&&Array.isArray(expected)){let actualShape=inferShape(actual),expectedShape=inferShape(expected);if(!arraysEqual(actualShape,expectedShape))throw new Error(`Arrays have different shapes. Actual: [${actualShape}]. Expected: [${expectedShape}]`)}let actualFlat=isTypedArray(actual)?actual:flatten(actual),expectedFlat=isTypedArray(expected)?expected:flatten(expected);if(actualFlat.length!==expectedFlat.length)throw new Error(`Arrays have different lengths actual: ${actualFlat.length} vs expected: ${expectedFlat.length}. +Manifest JSON has weights with names: ${allManifestWeightNames.join(", ")}.`)}let groupIndicesToFetch=groupIndicesToFetchMap.reduce((accumulator,shouldFetch,i)=>(shouldFetch&&accumulator.push(i),accumulator),[]),fetchUrls=[];groupIndicesToFetch.forEach(i=>{manifest[i].paths.forEach(filepath=>{let fetchUrl=filePathPrefix+(filePathPrefix.endsWith("/")?"":"/")+filepath;fetchUrls.push(fetchUrl)})});let buffers=await fetchWeightsFunction(fetchUrls),weightsTensorMap={},bufferIndexOffset=0;return groupIndicesToFetch.forEach(i=>{let numBuffers=manifest[i].paths.length,groupBytes=0;for(let i2=0;i2{let byteBuffer=groupBuffer.slice(weightsEntry.groupOffset,weightsEntry.groupOffset+weightsEntry.sizeBytes),nameToTensorMap=decodeWeights(byteBuffer,[weightsEntry.manifestEntry]);for(let name in nameToTensorMap)weightsTensorMap[name]=nameToTensorMap[name]}),bufferIndexOffset+=numBuffers}),weightsTensorMap}}var OCTET_STREAM_MIME_TYPE="application/octet-stream",JSON_TYPE="application/json",HTTPRequest=class{constructor(path,loadOptions){if(this.DEFAULT_METHOD="POST",loadOptions==null&&(loadOptions={}),this.weightPathPrefix=loadOptions.weightPathPrefix,this.onProgress=loadOptions.onProgress,this.weightUrlConverter=loadOptions.weightUrlConverter,loadOptions.fetchFunc!=null?(assert(typeof loadOptions.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=loadOptions.fetchFunc):this.fetch=env().platform.fetch,assert(path!=null&&path.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(path)&&assert(path.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${path.length}).`),this.path=path,loadOptions.requestInit!=null&&loadOptions.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=loadOptions.requestInit||{}}async save(modelArtifacts){if(modelArtifacts.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let init2=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);init2.body=new FormData;let weightsManifest=[{paths:["./model.weights.bin"],weights:modelArtifacts.weightSpecs}],modelTopologyAndWeightManifest={modelTopology:modelArtifacts.modelTopology,format:modelArtifacts.format,generatedBy:modelArtifacts.generatedBy,convertedBy:modelArtifacts.convertedBy,weightsManifest};modelArtifacts.signature!=null&&(modelTopologyAndWeightManifest.signature=modelArtifacts.signature),modelArtifacts.userDefinedMetadata!=null&&(modelTopologyAndWeightManifest.userDefinedMetadata=modelArtifacts.userDefinedMetadata),modelArtifacts.modelInitializer!=null&&(modelTopologyAndWeightManifest.modelInitializer=modelArtifacts.modelInitializer),init2.body.append("model.json",new Blob([JSON.stringify(modelTopologyAndWeightManifest)],{type:JSON_TYPE}),"model.json"),modelArtifacts.weightData!=null&&init2.body.append("model.weights.bin",new Blob([modelArtifacts.weightData],{type:OCTET_STREAM_MIME_TYPE}),"model.weights.bin");let response=await this.fetch(this.path,init2);if(response.ok)return{modelArtifactsInfo:getModelArtifactsInfoForJSON(modelArtifacts),responses:[response]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${response.status}.`)}async load(){let modelConfigRequest=await this.fetch(this.path,this.requestInit);if(!modelConfigRequest.ok)throw new Error(`Request to ${this.path} failed with status code ${modelConfigRequest.status}. Please verify this URL points to the model JSON of the model to load.`);let modelConfig;try{modelConfig=await modelConfigRequest.json()}catch(e){let message=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?message+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":message+=" Please make sure the server is serving valid JSON for this request.",new Error(message)}let modelTopology=modelConfig.modelTopology,weightsManifest=modelConfig.weightsManifest,generatedBy=modelConfig.generatedBy,convertedBy=modelConfig.convertedBy,format=modelConfig.format,signature=modelConfig.signature,userDefinedMetadata=modelConfig.userDefinedMetadata;if(modelTopology==null&&weightsManifest==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let weightSpecs,weightData;weightsManifest!=null&&([weightSpecs,weightData]=await this.loadWeights(weightsManifest));let artifacts={modelTopology,weightSpecs,weightData,generatedBy,convertedBy,format};signature!=null&&(artifacts.signature=signature),userDefinedMetadata!=null&&(artifacts.userDefinedMetadata=userDefinedMetadata);let initializer=modelConfig.modelInitializer;return initializer&&(artifacts.modelInitializer=initializer),artifacts}async loadWeights(weightsManifest){let weightPath=Array.isArray(this.path)?this.path[1]:this.path,[prefix,suffix]=parseUrl(weightPath),pathPrefix=this.weightPathPrefix||prefix,weightSpecs=[];for(let entry of weightsManifest)weightSpecs.push(...entry.weights);let fetchURLs=[],urlPromises=[];for(let weightsGroup of weightsManifest)for(let path of weightsGroup.paths)this.weightUrlConverter!=null?urlPromises.push(this.weightUrlConverter(path)):fetchURLs.push(pathPrefix+path+suffix);this.weightUrlConverter&&fetchURLs.push(...await Promise.all(urlPromises));let buffers=await loadWeightsAsArrayBuffer(fetchURLs,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[weightSpecs,concatenateArrayBuffers(buffers)]}};HTTPRequest.URL_SCHEME_REGEX=/^https?:\/\//;function parseUrl(url){let lastSlash=url.lastIndexOf("/"),lastSearchParam=url.lastIndexOf("?"),prefix=url.substring(0,lastSlash),suffix=lastSearchParam>lastSlash?url.substring(lastSearchParam):"";return[prefix+"/",suffix]}function isHTTPScheme(url){return url.match(HTTPRequest.URL_SCHEME_REGEX)!=null}var httpRouter=(url,loadOptions)=>{if(typeof fetch=="undefined"&&(loadOptions==null||loadOptions.fetchFunc==null))return null;{let isHTTP=!0;if(Array.isArray(url)?isHTTP=url.every(urlItem=>isHTTPScheme(urlItem)):isHTTP=isHTTPScheme(url),isHTTP)return http(url,loadOptions)}return null};IORouterRegistry.registerSaveRouter(httpRouter);IORouterRegistry.registerLoadRouter(httpRouter);function http(path,loadOptions){return new HTTPRequest(path,loadOptions)}function browserHTTPRequest(path,loadOptions){return http(path,loadOptions)}var PassthroughLoader=class{constructor(modelArtifacts){this.modelArtifacts=modelArtifacts}async load(){return this.modelArtifacts}},PassthroughSaver=class{constructor(saveHandler){this.saveHandler=saveHandler}async save(modelArtifacts){return this.saveHandler(modelArtifacts)}};function fromMemory(modelArtifacts,weightSpecs,weightData,trainingConfig){return arguments.length===1?modelArtifacts.modelTopology!=null||modelArtifacts.weightSpecs!=null?new PassthroughLoader(modelArtifacts):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new PassthroughLoader({modelTopology:modelArtifacts,weightSpecs,weightData,trainingConfig}))}function withSaveHandler(saveHandler){return new PassthroughSaver(saveHandler)}var math_exports={};__export2(math_exports,{confusionMatrix:()=>confusionMatrix});function matMul_(a,b,transposeA=!1,transposeB=!1){let $a=convertToTensor(a,"a","matMul"),$b=convertToTensor(b,"b","matMul");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b},attrs={transposeA,transposeB};return ENGINE.runKernel(BatchMatMul,inputs,attrs)}var matMul=op({matMul_});function oneHot_(indices,depth,onValue=1,offValue=0){if(depth<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);let inputs={indices:convertToTensor(indices,"indices","oneHot","int32")},attrs={depth,onValue,offValue};return ENGINE.runKernel(OneHot,inputs,attrs)}var oneHot=op({oneHot_});function transpose_(x,perm){let $x=convertToTensor(x,"x","transpose");if(perm==null&&(perm=$x.shape.map((s,i)=>i).reverse()),assert($x.rank===perm.length,()=>`Error in transpose: rank of input ${$x.rank} must match length of perm ${perm}.`),perm.forEach(axis=>{assert(axis>=0&&axis<$x.rank,()=>`All entries in 'perm' must be between 0 and ${$x.rank-1} but got ${perm}`)}),$x.rank<=1)return $x.clone();let inputs={x:$x},attrs={perm};return ENGINE.runKernel(Transpose,inputs,attrs)}var transpose=op({transpose_});function confusionMatrix_(labels,predictions,numClasses){let $labels=convertToTensor(labels,"labels","confusionMatrix"),$predictions=convertToTensor(predictions,"predictions","confusionMatrix");assert(numClasses==null||numClasses>0&&Number.isInteger(numClasses),()=>`If provided, numClasses must be a positive integer, but got ${numClasses}`),assert($labels.rank===1,()=>`Expected the rank of labels to be 1, but got ${$labels.rank}`),assert($predictions.rank===1,()=>`Expected the rank of predictions to be 1, but got ${$predictions.rank}`),assert($labels.shape[0]===$predictions.shape[0],()=>`Mismatch in the number of examples: ${$labels.shape[0]} vs. ${$predictions.shape[0]}. Labels and predictions should have the same number of elements.`),assert(numClasses>0&&Number.isInteger(numClasses),()=>`numClasses is required to be a positive integer, but got ${numClasses}`);let oneHotLabels=oneHot(cast($labels,"int32"),numClasses),oneHotPredictions=oneHot(cast($predictions,"int32"),numClasses),oneHotLabelsT=transpose(oneHotLabels),product=matMul(oneHotLabelsT,oneHotPredictions);return cast(product,"int32")}var confusionMatrix=op({confusionMatrix_}),browser_exports={};__export2(browser_exports,{fromPixels:()=>fromPixels,toPixels:()=>toPixels});function tensor3d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==3&&inferredShape.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}var fromPixels2DContext;function fromPixels_(pixels,numChannels=3){if(numChannels>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(pixels==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let isPixelData=!1,isImageData=!1,isVideo=!1,isImage=!1,isCanvasLike=!1,isImageBitmap=!1;if(pixels.data instanceof Uint8Array)isPixelData=!0;else if(typeof ImageData!="undefined"&&pixels instanceof ImageData)isImageData=!0;else if(typeof HTMLVideoElement!="undefined"&&pixels instanceof HTMLVideoElement)isVideo=!0;else if(typeof HTMLImageElement!="undefined"&&pixels instanceof HTMLImageElement)isImage=!0;else if(pixels.getContext!=null)isCanvasLike=!0;else if(typeof ImageBitmap!="undefined"&&pixels instanceof ImageBitmap)isImageBitmap=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${pixels.constructor.name}`);if(isVideo){let HAVE_CURRENT_DATA_READY_STATE=2;if(isVideo&&pixels.readyState element.")}if(getKernel(FromPixels,ENGINE.backendName)!=null){let inputs={pixels},attrs={numChannels};return ENGINE.runKernel(FromPixels,inputs,attrs)}let[width,height]=isVideo?[pixels.videoWidth,pixels.videoHeight]:[pixels.width,pixels.height],vals;isCanvasLike?vals=pixels.getContext("2d").getImageData(0,0,width,height).data:isImageData||isPixelData?vals=pixels.data:(isImage||isVideo||isImageBitmap)&&(fromPixels2DContext==null&&(fromPixels2DContext=document.createElement("canvas").getContext("2d")),fromPixels2DContext.canvas.width=width,fromPixels2DContext.canvas.height=height,fromPixels2DContext.drawImage(pixels,0,0,width,height),vals=fromPixels2DContext.getImageData(0,0,width,height).data);let values;if(numChannels===4)values=new Int32Array(vals);else{let numPixels=width*height;values=new Int32Array(numPixels*numChannels);for(let i=0;i4||depth===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${depth}`);if($img.dtype!=="float32"&&$img.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${$img.dtype}. Please use float32 or int32 tensors.`);let data2=await $img.data(),multiplier=$img.dtype==="float32"?255:1,bytes=new Uint8ClampedArray(width*height*4);for(let i=0;i1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${value}.`)}else if($img.dtype==="int32"&&(value<0||value>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${value}.`);depth===1?(rgba[0]=value*multiplier,rgba[1]=value*multiplier,rgba[2]=value*multiplier):rgba[d]=value*multiplier}let j=i*4;bytes[j+0]=Math.round(rgba[0]),bytes[j+1]=Math.round(rgba[1]),bytes[j+2]=Math.round(rgba[2]),bytes[j+3]=Math.round(rgba[3])}if(canvas!=null){canvas.width=width,canvas.height=height;let ctx=canvas.getContext("2d"),imageData=new ImageData(bytes,width,height);ctx.putImageData(imageData,0,0)}return $img!==img&&$img.dispose(),bytes}var fromPixels=op({fromPixels_}),gather_nd_util_exports={};__export2(gather_nd_util_exports,{prepareAndValidate:()=>prepareAndValidate});function prepareAndValidate(tensor2,indices){let tensorRank=tensor2.shape.length,indicesRank=indices.shape.length;if(tensorRank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${tensorRank}.`);if(indicesRank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${indicesRank}.`);if(indices.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${indices.dtype}.`);if(indices.shape[indicesRank-1]>tensorRank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${indices.shape[indicesRank-1]} vs. ${tensorRank}`);if(sizeFromShape(tensor2.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${tensor2.shape}.`);let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],nResult=1;for(let i=0;istride/sliceSize),1].slice(0,sliceRank);return[resultShape,nResult,sliceSize,strides]}var scatter_nd_util_exports={};__export2(scatter_nd_util_exports,{calculateShapes:()=>calculateShapes,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape});function validateUpdateShape(shape,indices,updates){let sliceDim=indices.rank>1?indices.shape[indices.rank-1]:1,batchDim=indices.rank>1?indices.rank-1:1,shapeError=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${updates.shape}, indices.shape: ${indices.shape}, shape: ${shape}, sliceDim: ${sliceDim}, and batchDim: ${batchDim}.`;if(updates.rank1?indices.shape[indicesRank-1]:1,totalNd=shape.length,sliceSize=1;for(let i=sliceRank;iassertParamsValid,computeFlatOffset:()=>computeFlatOffset,computeOutShape:()=>computeOutShape,getNormalizedAxes:()=>getNormalizedAxes,isSliceContinous:()=>isSliceContinous,maskToAxes:()=>maskToAxes,parseSliceParams:()=>parseSliceParams,sliceInfo:()=>sliceInfo,startForAxis:()=>startForAxis,startIndicesWithElidedDims:()=>startIndicesWithElidedDims,stopForAxis:()=>stopForAxis,stopIndicesWithElidedDims:()=>stopIndicesWithElidedDims,stridesForAxis:()=>stridesForAxis,stridesWithElidedDims:()=>stridesWithElidedDims});function assertParamsValid(input2,begin,size){let inputRank=input2.shape.length;assert(inputRank===begin.length,()=>`Error in slice${inputRank}D: Length of begin ${begin} must match the rank of the array (${inputRank}).`),assert(inputRank===size.length,()=>`Error in slice${inputRank}D: Length of size ${size} must match the rank of the array (${inputRank}).`);for(let i=0;i`Error in slice${inputRank}D: begin[${i}] + size[${i}] (${begin[i]+size[i]}) would overflow input.shape[${i}] (${input2.shape[i]})`)}function maskToAxes(mask){let axes=[],axis=0;for(;mask>0;)mask&1&&axes.push(axis),mask/=2,axis++;return axes}function computeOutShape(begin,end,strides){let size=[];for(let axis=0;axis0){let fullIndex=ellipsisAxes[0],numElidedAxes=numInterpolatedAxes+1;normalizedBegin=startIndicesWithElidedDims(beginMask,fullIndex,numElidedAxes,begin,inputShape),normalizedEnd=stopIndicesWithElidedDims(endMask,fullIndex,numElidedAxes,end,inputShape),normalizedStrides=stridesWithElidedDims(strides,fullIndex,numElidedAxes,inputShape)}else for(let axis=0;axis-1)newIndices[axis]=0;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalBegin[originalAxis];beginMask&1<-1)newIndices[axis]=Number.MAX_SAFE_INTEGER;else{let originalAxis=unnormalizeAxis(ellipsisInsertionIndex,numElidedAxes,axis),originalValue=originalEnd[originalAxis];endMask&1<0?start=Number.MIN_SAFE_INTEGER:start=Number.MAX_SAFE_INTEGER);let axisSize=inputShape[axis];return start<0&&(start+=axisSize),start=clamp(0,start,axisSize-1),start}function stopForAxis(endMask,stopIndices,strides,inputShape,axis,ellipsisMask){let stop=stopIndices[axis],stride=strides[axis]||1;(endMask&1<0?stop=Number.MAX_SAFE_INTEGER:stop=Number.MIN_SAFE_INTEGER);let axisSize=inputShape[axis];return stop<0&&(stop+=axisSize),stride>0?stop=clamp(0,stop,axisSize):stop=clamp(-1,stop,axisSize-1),stop}function isSliceContinous(shape,begin,size){let firstNonOneAxis=size.length;for(let i=0;i1){firstNonOneAxis=i;break}for(let i=firstNonOneAxis+1;i0||size[i]!==shape[i])return!1;return!0}function computeFlatOffset(begin,strides){let flatOffset=begin.length>0?begin[begin.length-1]:1;for(let i=0;i{assert(d!==-1,()=>"slice() does not support negative begin indexing.")});let size_;return size==null?size_=new Array(xRank).fill(-1):typeof size=="number"?size_=[size,...new Array(xRank-1).fill(-1)]:size.lengthd>=0?d:(assert(d===-1,()=>`Negative size values should be exactly -1 but got ${d} for the slice() size at index ${i}.`),x.shape[i]-begin_[i])),[begin_,size_]}function sliceInfo(xShape,begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask){let $begin=begin.slice(),$end=end.slice(),$strides=strides;strides==null&&($strides=new Array($begin.length));let ellipsisAxes=maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=xShape.length-$begin.length,expandAxes=maskToAxes(newAxisMask),newShape=xShape.slice();expandAxes.forEach(axis=>{$begin[axis]=0,$end[axis]=1,newShape.splice(axis,0,1)});let{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=getNormalizedAxes(newShape,ellipsisAxes,numInterpolatedAxes,$begin,$end,$strides,beginMask,endMask,ellipsisMask);$begin=normalizedBegin,$end=normalizedEnd,$strides=normalizedStrides;let shrinkAxes=maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{$end[axis]=$begin[axis]+1,$strides[axis]=1});let size=computeOutShape($begin,$end,$strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);return{nonStrided:$strides.every(v=>v===1),$begin,$end,$strides,size,newShape,outShape}}var serialization_exports={};__export2(serialization_exports,{Serializable:()=>Serializable,SerializationMap:()=>SerializationMap,registerClass:()=>registerClass});var Serializable=class{getClassName(){return this.constructor.className}static fromConfig(cls,config2){return new cls(config2)}},SerializationMap=class{constructor(){this.classNameMap={}}static getMap(){return SerializationMap.instance==null&&(SerializationMap.instance=new SerializationMap),SerializationMap.instance}static register(cls){SerializationMap.getMap().classNameMap[cls.className]=[cls,cls.fromConfig]}};function registerClass(cls){assert(cls.className!=null,()=>"Class being registered does not have the static className property defined."),assert(typeof cls.className=="string",()=>"className is required to be a string, but got type "+typeof cls.className),assert(cls.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),SerializationMap.register(cls)}var test_util_exports={};__export2(test_util_exports,{TEST_EPSILON_FLOAT16:()=>TEST_EPSILON_FLOAT16,encodeStrings:()=>encodeStrings,expectArrayBuffersEqual:()=>expectArrayBuffersEqual,expectArraysClose:()=>expectArraysClose,expectArraysEqual:()=>expectArraysEqual,expectNumbersClose:()=>expectNumbersClose,expectPromiseToFail:()=>expectPromiseToFail,expectValuesInRange:()=>expectValuesInRange,testEpsilon:()=>testEpsilon});var TEST_EPSILON_FLOAT32=.001,TEST_EPSILON_FLOAT16=.1;function expectArraysClose(actual,expected,epsilon3){return epsilon3==null&&(epsilon3=testEpsilon()),expectArraysPredicate(actual,expected,(a,b)=>areClose(a,b,epsilon3))}function testEpsilon(){return ENGINE.backend.floatPrecision()===32?TEST_EPSILON_FLOAT32:TEST_EPSILON_FLOAT16}function expectArraysPredicate(actual,expected,predicate){let checkClassType=!0;if((isTypedArray(actual)||isTypedArray(expected))&&(checkClassType=!1),isTypedArray(actual)&&isTypedArray(expected)&&(checkClassType=!0),checkClassType){let aType=actual.constructor.name,bType=expected.constructor.name;if(aType!==bType)throw new Error(`Arrays are of different type. Actual: ${aType}. Expected: ${bType}`)}if(Array.isArray(actual)&&Array.isArray(expected)){let actualShape=inferShape(actual),expectedShape=inferShape(expected);if(!arraysEqual(actualShape,expectedShape))throw new Error(`Arrays have different shapes. Actual: [${actualShape}]. Expected: [${expectedShape}]`)}let actualFlat=isTypedArray(actual)?actual:flatten(actual),expectedFlat=isTypedArray(expected)?expected:flatten(expected);if(actualFlat.length!==expectedFlat.length)throw new Error(`Arrays have different lengths actual: ${actualFlat.length} vs expected: ${expectedFlat.length}. Actual: ${actualFlat}. Expected: ${expectedFlat}.`);for(let i=0;i`Dimension size must be evenly divisible by ${blockSize*blockSize} but is ${inputDepth} for depthToSpace with input shape ${$x.shape}`);let inputs={x:$x},attrs={blockSize,dataFormat};return ENGINE.runKernel(DepthToSpace,inputs,attrs)}var depthToSpace=op({depthToSpace_});function depthwiseConv2d_(x,filter,strides,pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode){let $x=convertToTensor(x,"x","depthwiseConv2d"),$filter=convertToTensor(filter,"filter","depthwiseConv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${$filter.rank}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${x4D.shape[3]}) must match the inChannels dimension in filter ${$filter.shape[2]}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D,filter:$filter},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode},res=ENGINE.runKernel(DepthwiseConv2dNative,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var depthwiseConv2d=op({depthwiseConv2d_});function diag_(x){let inputs={x:convertToTensor(x,"x","diag")};return ENGINE.runKernel(Diag,inputs)}var diag=op({diag_});function dilation2d_(x,filter,strides,pad3,dilations=[1,1],dataFormat="NHWC"){let $x=convertToTensor(x,"x","dilation2d"),$filter=convertToTensor(filter,"filter","dilation2d");assert($x.rank===3||$x.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${$x.rank}.`),assert($filter.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${$filter.rank}.`),assert(dataFormat==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${dataFormat}`);let x4D=$x,reshapedTo4D=!1;$x.rank===3&&(x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]]),reshapedTo4D=!0);let inputs={x:x4D,filter:$filter},attrs={strides,pad:pad3,dilations},res=ENGINE.runKernel(Dilation2D,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var dilation2d=op({dilation2d_});function getBroadcastDims(inShape,outShape){let inRank=inShape.length,dims=[];for(let i=0;i1&&a===1&&dims.unshift(dim)}return dims}function getReductionAxes(inShape,outShape){let result=[];for(let i=0;i1)&&result.unshift(outAxis)}return result}function assertAndGetBroadcastShape(shapeA,shapeB){let result=[],l=Math.max(shapeA.length,shapeB.length);for(let i=0;i"The first dimension of `a` must match the size of `condition`."),$condition.rank!==1&&assertShapesMatch($condition.shape,$broadcastedB.shape,"Error in where: ");let inputs={condition:$condition,t:$broadcastedA,e:$broadcastedB};return ENGINE.runKernel(Select,inputs)}var where=op({where_});function zerosLike_(x){let inputs={x:convertToTensor(x,"x","zerosLike")};return ENGINE.runKernel(ZerosLike,inputs)}var zerosLike=op({zerosLike_});function divNoNan_(a,b){let $a=convertToTensor(a,"a","div"),$b=convertToTensor(b,"b","div");[$a,$b]=makeTypesMatch($a,$b);let divResult=div($a,$b),zeros4=zerosLike(divResult),bEqualsZero=equal($b,zeros4);return where(bEqualsZero,zeros4,divResult)}var divNoNan=op({divNoNan_});function dot_(t1,t2){let $t1=convertToTensor(t1,"t1","dot"),$t2=convertToTensor(t2,"t2","dot");assert(($t1.rank===1||$t1.rank===2)&&($t2.rank===1||$t2.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${$t1.rank} and ${$t2.rank}.`);let t1Inner=$t1.rank===1?$t1.size:$t1.shape[1],t2Inner=$t2.rank===1?$t2.size:$t2.shape[0];if(assert(t1Inner===t2Inner,()=>`Error in dot: inner dimensions of inputs must match, but got ${t1Inner} and ${t2Inner}.`),$t1.rank===1&&$t2.rank===1){let t12D=reshape($t1,[1,-1]),t22D=reshape($t2,[-1,1]),t1t2=matMul(t12D,t22D);return reshape(t1t2,[])}else if($t1.rank===1&&$t2.rank===2){let t12D=reshape($t1,[1,-1]),t22D=reshape($t2,[$t2.shape[0],$t2.shape[1]]),t1t2=matMul(t12D,t22D);return reshape(t1t2,[t1t2.size])}else if($t1.rank===2&&$t2.rank===1){let t22D=reshape($t2,[-1,1]),t1t2=matMul($t1,t22D);return reshape(t1t2,[t1t2.size])}else{let t22D=reshape($t2,[$t2.shape[0],$t2.shape[1]]);return matMul($t1,t22D)}}var dot=op({dot_});function elu_(x){let inputs={x:convertToTensor(x,"x","elu")};return ENGINE.runKernel(Elu,inputs)}var elu=op({elu_});function erf_(x){let $x=convertToTensor(x,"x","erf");assert($x.dtype==="int32"||$x.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),$x.dtype==="int32"&&($x=cast($x,"float32"));let inputs={x:$x};return ENGINE.runKernel(Erf,inputs)}var erf=op({erf_});function exp_(x){let inputs={x:convertToTensor(x,"x","exp")};return ENGINE.runKernel(Exp,inputs)}var exp=op({exp_});function expandDims_(x,axis=0){let $x=convertToTensor(x,"x","expandDims","string_or_numeric");assert(axis<=$x.rank,()=>"Axis must be <= rank of the tensor");let inputs={input:$x},attrs={dim:axis};return ENGINE.runKernel(ExpandDims,inputs,attrs)}var expandDims=op({expandDims_});function expm1_(x){let inputs={x:convertToTensor(x,"x","expm1")};return ENGINE.runKernel(Expm1,inputs)}var expm1=op({expm1_});function tile_(x,reps){let $x=convertToTensor(x,"x","tile","string_or_numeric");assert($x.rank===reps.length,()=>`Error in transpose: rank of input ${$x.rank} must match length of reps ${reps}.`);let inputs={x:$x},attrs={reps};return ENGINE.runKernel(Tile,inputs,attrs)}var tile=op({tile_});function eye_(numRows,numColumns,batchShape,dtype="float32"){numColumns==null&&(numColumns=numRows);let buff=buffer([numRows,numColumns],dtype),n=numRows<=numColumns?numRows:numColumns;for(let i=0;i`Error in localResponseNormalization: x must be rank 3 or 4 but got rank ${$x.rank}.`),assert(isInt(depthRadius),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${depthRadius}.`);let x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]]));let inputs={x:x4D},attrs={depthRadius,bias,alpha,beta},res=ENGINE.runKernel(LRN,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var localResponseNormalization=op({localResponseNormalization_});function log_(x){let inputs={x:convertToTensor(x,"x","log")};return ENGINE.runKernel(Log,inputs)}var log2=op({log_});function log1p_(x){let inputs={x:convertToTensor(x,"x","log1p")};return ENGINE.runKernel(Log1p,inputs)}var log1p=op({log1p_});function grad(f){return assert(isFunction(f),()=>"The f passed in grad(f) must be a function"),(x,dy)=>{let $x=convertToTensor(x,"x","tf.grad","string_or_numeric"),$dy=dy!=null?convertToTensor(dy,"dy","tf.grad"):null;return ENGINE.tidy(()=>{let{value,grads:grads2}=ENGINE.gradients(()=>f($x),[$x],$dy);return $dy!=null&&assertShapesMatch(value.shape,$dy.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),checkGrads(grads2),grads2[0]})}}function grads(f){return assert(isFunction(f),()=>"The f passed in grads(f) must be a function"),(args,dy)=>{assert(Array.isArray(args),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let $args=convertToTensorArray(args,"args","tf.grads","string_or_numeric"),$dy=dy!=null?convertToTensor(dy,"dy","tf.grads"):null;return ENGINE.tidy(()=>{let{value,grads:grads2}=ENGINE.gradients(()=>f(...$args),$args,$dy);return $dy!=null&&assertShapesMatch(value.shape,$dy.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),checkGrads(grads2),grads2})}}function valueAndGrad(f){return assert(isFunction(f),()=>"The f passed in valueAndGrad(f) must be a function"),(x,dy)=>{assert(x instanceof Tensor,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),assert(dy==null||dy instanceof Tensor,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:grads2,value}=ENGINE.gradients(()=>f(x),[x],dy);return checkGrads(grads2),{grad:grads2[0],value}}}function valueAndGrads(f){return assert(isFunction(f),()=>"The f passed in valueAndGrads(f) must be a function"),(args,dy)=>{assert(Array.isArray(args)&&args.every(arg=>arg instanceof Tensor),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),assert(dy==null||dy instanceof Tensor,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let res=ENGINE.gradients(()=>f(...args),args,dy);return dy!=null&&assertShapesMatch(res.value.shape,dy.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),checkGrads(res.grads),res}}function variableGrads(f,varList){assert(isFunction(f),()=>"The f passed in variableGrads(f) must be a function"),assert(varList==null||Array.isArray(varList)&&varList.every(v=>v instanceof Variable),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let specifiedVarList=varList!=null;if(!specifiedVarList){varList=[];for(let varName in ENGINE.registeredVariables)varList.push(ENGINE.registeredVariables[varName])}let specifiedNonTrainable=specifiedVarList?varList.filter(variable2=>!variable2.trainable):null,originalVarCount=varList.length;varList=varList.filter(variable2=>variable2.trainable),assert(varList.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${originalVarCount} variables is trainable.`);let allowNoGradients=!0,{value,grads:grads2}=ENGINE.gradients(f,varList,null,allowNoGradients);assert(grads2.some(g=>g!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),assert(value.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${value.rank} tensor`);let namedGrads={};return varList.forEach((v,i)=>{grads2[i]!=null&&(namedGrads[v.name]=grads2[i])}),specifiedNonTrainable!=null&&specifiedNonTrainable.forEach(v=>namedGrads[v.name]=null),{value,grads:namedGrads}}function customGrad(f){return ENGINE.customGrad(f)}function checkGrads(grads2){if(grads2.filter(g=>g==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function neg_(x){let inputs={x:convertToTensor(x,"x","neg")};return ENGINE.runKernel(Neg,inputs)}var neg=op({neg_});function softplus_(x){let inputs={x:convertToTensor(x,"x","softplus")};return ENGINE.runKernel(Softplus,inputs)}var softplus=op({softplus_});function logSigmoid_(x){let $x=convertToTensor(x,"x","logSigmoid");return customGrad(x2=>({value:neg(softplus(neg(x2))),gradFunc:dy=>mul(dy,sigmoid(neg(x2)))}))($x)}var logSigmoid=op({logSigmoid_});function max_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","max")},attrs={reductionIndices:axis,keepDims};return ENGINE.runKernel(Max,inputs,attrs)}var max=op({max_});function sub_(a,b){let $a=convertToTensor(a,"a","sub"),$b=convertToTensor(b,"b","sub");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Sub,inputs)}var sub=op({sub_});function sum_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","sum");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Sum,inputs,attrs)}var sum2=op({sum_});function logSoftmax_(logits,axis=-1){let $logits=convertToTensor(logits,"logits","logSoftmax");if(axis===-1&&(axis=$logits.rank-1),axis!==$logits.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and axis was ${axis}`);return customGrad((logits2,save)=>{let keepDims=!0,xMax=max(logits2,axis,!0),shifted=sub(logits2,xMax),value=sub(cast(shifted,"float32"),log2(sum2(exp(shifted),axis,keepDims)));return save([value]),{value,gradFunc:(dy,saved)=>{let[value2]=saved,keepDims2=!0,softmax6=exp(value2);return sub(dy,mul(sum2(dy,axis,keepDims2),softmax6))}}})($logits)}var logSoftmax=op({logSoftmax_});function axesAreInnerMostDims(axes,rank){for(let i=0;iaShape[dim]);return[outShape,reduceShape]}function expandShapeToKeepDim(shape,axes){let reduceSubShape=axes.map(x=>1);return combineLocations(shape,reduceSubShape,axes)}function assertAxesAreInnerMostDims(msg,axes,rank){assert(axesAreInnerMostDims(axes,rank),()=>`${msg} supports only inner-most axes for now. Got axes ${axes} and rank-${rank} input.`)}function getAxesPermutation(axes,rank){if(axesAreInnerMostDims(axes,rank))return null;let result=[];for(let i=0;iresult.push(axis)),result}function getUndoAxesPermutation(axes){return axes.map((axis,i)=>[i,axis]).sort((a,b)=>a[1]-b[1]).map(x=>x[0])}function getInnerMostAxes(numAxes,rank){let res=[];for(let i=rank-numAxes;i`Error in maxPool: input must be rank 4 but got rank ${x4D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D},attrs={filterSize,strides,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(MaxPool,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var maxPool=op({maxPool_});function maxPool3d_(x,filterSize=[1,1,1],strides,pad3,dimRoundingMode,dataFormat="NDHWC",dilations){dilations==null?dilations=[1,1,1]:deprecationWarn("dilations is deprecated, this field will be gone in v3.0.0.");let $x=convertToTensor(x,"x","maxPool3d"),x5D=$x,reshapedTo5D=!1;$x.rank===4&&(reshapedTo5D=!0,x5D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2],$x.shape[3]])),assert(x5D.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${x5D.rank}.`),assert(dataFormat==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${dataFormat}`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x5D},attrs={filterSize,strides,pad:pad3,dimRoundingMode,dataFormat,dilations},res=ENGINE.runKernel(MaxPool3D,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var maxPool3d=op({maxPool3d_});function maxPoolWithArgmax_(x,filterSize,strides,pad3,includeBatchInIndex=!1){let inputs={x:convertToTensor(x,"x","maxPoolWithArgmax")},attrs={filterSize,strides,pad:pad3,includeBatchInIndex},result=ENGINE.runKernel(MaxPoolWithArgmax,inputs,attrs);return{result:result[0],indexes:result[1]}}var maxPoolWithArgmax=op({maxPoolWithArgmax_});function maximum_(a,b){let $a=convertToTensor(a,"a","maximum"),$b=convertToTensor(b,"b","maximum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Maximum,inputs)}var maximum=op({maximum_});function mean_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","mean")},attrs={axis,keepDims};return ENGINE.runKernel(Mean,inputs,attrs)}var mean=op({mean_});function min_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","min")},attrs={axis,keepDims};return ENGINE.runKernel(Min,inputs,attrs)}var min=op({min_});function minimum_(a,b){let $a=convertToTensor(a,"a","minimum"),$b=convertToTensor(b,"b","minimum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Minimum,inputs)}var minimum=op({minimum_});function mirrorPad_(x,paddings,mode){assert(mode==="reflect"||mode==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${mode}.`);let $x=convertToTensor(x,"x","mirrorPad");if($x.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");assert(paddings.length===$x.rank,()=>`Padding doesn't match input. Must be ${$x.rank}. Got ${paddings.length}.`);let shapeOffset=mode==="reflect"?1:0;for(let i=0;i<$x.rank;i++)assert(paddings[i].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),assert(paddings[i][0]>=0&&paddings[i][0]<=$x.shape[i]-shapeOffset&&paddings[i][1]>=0&&paddings[i][1]<=$x.shape[i]-shapeOffset,()=>`Padding in dimension ${i} cannot be greater than or equal to ${$x.shape[i]-shapeOffset} or less than 0 for input of shape ${$x.shape}`);let attrs={paddings,mode},inputs={x:$x};return ENGINE.runKernel(MirrorPad,inputs,attrs)}var mirrorPad=op({mirrorPad_});function mod_(a,b){let $a=convertToTensor(a,"a","mod"),$b=convertToTensor(b,"b","mod");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Mod,inputs)}var mod=op({mod_});function square_(x){let $x=convertToTensor(x,"x","square"),attrs={};return ENGINE.runKernel("Square",{x:$x},attrs)}var square=op({square_});function moments_(x,axis=null,keepDims=!1){x=convertToTensor(x,"x","moments");let axes=parseAxisParam(axis,x.shape),xMean=mean(x,axes,keepDims),keepDimsShape=xMean.shape;keepDims||(keepDimsShape=expandShapeToKeepDim(xMean.shape,axes));let devSquared=square(sub(cast(x,"float32"),reshape(xMean,keepDimsShape))),variance=mean(devSquared,axes,keepDims);return{mean:xMean,variance}}var moments=op({moments_});function multiRNNCell_(lstmCells,data2,c,h){let $data=convertToTensor(data2,"data","multiRNNCell"),$c=convertToTensorArray(c,"c","multiRNNCell"),$h=convertToTensorArray(h,"h","multiRNNCell"),input2=$data,newStates=[];for(let i=0;i2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${origRank}`);seed=seed||Math.random();let inputs={logits:origRank===1?reshape($logits,[1,-1]):$logits},attrs={numSamples,seed,normalized},res=ENGINE.runKernel(Multinomial,inputs,attrs);return origRank===1?reshape(res,[res.size]):res}var multinomial=op({multinomial_});function notEqual_(a,b){let $a=convertToTensor(a,"a","notEqual"),$b=convertToTensor(b,"b","notEqual");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(NotEqual,inputs)}var notEqual=op({notEqual_});function zeros(shape,dtype="float32"){if(dtype==="complex64"){let real4=zeros(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeZerosTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function ones2(shape,dtype="float32"){if(dtype==="complex64"){let real4=ones2(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeOnesTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function onesLike_(x){let inputs={x:convertToTensor(x,"x","onesLike")};return ENGINE.runKernel(OnesLike,inputs)}var onesLike=op({onesLike_});function outerProduct_(v1,v2){let $v1=convertToTensor(v1,"v1","outerProduct"),$v2=convertToTensor(v2,"v2","outerProduct");assert($v1.rank===1&&$v2.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${$v1.rank} and ${$v2.rank}.`);let v12D=reshape($v1,[-1,1]),v22D=reshape($v2,[1,-1]);return matMul(v12D,v22D)}var outerProduct=op({outerProduct_});function pad_(x,paddings,constantValue=0){let $x=convertToTensor(x,"x","pad");if($x.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let attrs={paddings,constantValue},inputs={x:$x};return ENGINE.runKernel(PadV2,inputs,attrs)}var pad=op({pad_});function pad1d_(x,paddings,constantValue=0){return assert(paddings.length===2,()=>"Invalid number of paddings. Must be length of 2."),pad(x,[paddings],constantValue)}var pad1d=op({pad1d_});function pad2d_(x,paddings,constantValue=0){return assert(paddings.length===2&&paddings[0].length===2&&paddings[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad2d=op({pad2d_});function pad3d_(x,paddings,constantValue=0){return assert(paddings.length===3&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad3d=op({pad3d_});function pad4d_(x,paddings,constantValue=0){return assert(paddings.length===4&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2&&paddings[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad4d=op({pad4d_});function spaceToBatchND_(x,blockShape,paddings){let $x=convertToTensor(x,"x","spaceToBatchND");assert($x.rank>=1+blockShape.length,()=>`input rank ${$x.rank} should be > than [blockShape] ${blockShape.length}`),assert(paddings.length===blockShape.length,()=>`paddings.shape[0] ${paddings.length} must be equal to [blockShape] ${blockShape.length}`),assert($x.shape.reduce((a,b,i)=>i>0&&i<=blockShape.length?a&&(b+paddings[i-1][0]+paddings[i-1][1])%blockShape[i-1]==0:a,!0),()=>`input spatial dimensions ${$x.shape.slice(1)} with paddings ${paddings.toString()} must be divisible by blockShapes ${blockShape.toString()}`);let inputs={x:$x},attrs={blockShape,paddings};return ENGINE.runKernel(SpaceToBatchND,inputs,attrs)}var spaceToBatchND=op({spaceToBatchND_});function pool_(input2,windowShape,poolingType,pad3,dilations,strides){dilations==null&&(dilations=[1,1]),strides==null&&(strides=1),pad3===0&&(pad3="valid");let $x=convertToTensor(input2,"x","maxPool"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`);let convInfo=computePool2DInfo(x4D.shape,windowShape,strides,dilations,pad3),dilation=[convInfo.dilationHeight,convInfo.dilationWidth],basePadding;pad3==="same"?basePadding=withSpaceToBatchBasePaddings([convInfo.filterHeight,convInfo.filterWidth],dilation):basePadding=[[0,0],[0,0]];let isDilationOne=dilation[0]===1&&dilation[1]===1,[adjustedPadding,adjustedCrops]=requiredSpaceToBatchPaddings([convInfo.inHeight,convInfo.inWidth],dilation,basePadding),convertedPad=isDilationOne?pad3:"valid",convertedX=isDilationOne?x4D:spaceToBatchND(x4D,dilation,adjustedPadding),y=(poolingType==="avg"?()=>avgPool(convertedX,windowShape,strides,convertedPad):()=>maxPool(convertedX,windowShape,strides,convertedPad))(),res=isDilationOne?y:batchToSpaceND(y,dilation,adjustedCrops);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}function requiredSpaceToBatchPaddings(inputShape,blockShape,basePadding){let padStart=basePadding.map(b=>b[0]),origPadEnd=basePadding.map(b=>b[1]),fullInputShape=inputShape.concat(padStart,origPadEnd),padEndExtra=blockShape.map((b,i)=>(b-fullInputShape[i]%b)%b),padEnd=origPadEnd.map((s,i)=>s+padEndExtra[i]),paddings=blockShape.map((_,i)=>[padStart[i],padEnd[i]]),crops=blockShape.map((_,i)=>[0,padEndExtra[i]]);return[paddings,crops]}function withSpaceToBatchBasePaddings(filterShape,dilation){let padExtraShape=filterShape.map((s,i)=>s+(s-1)*(dilation[i]-1)).map(s=>s-1),padExtraStart=padExtraShape.map(s=>Math.floor(s/2)),padExtraEnd=padExtraShape.map((s,i)=>s-padExtraStart[i]);return padExtraShape.map((_,i)=>[padExtraStart[i],padExtraEnd[i]])}var pool=op({pool_});function pow_(base2,exp4){let $base=convertToTensor(base2,"base","pow"),$exp=convertToTensor(exp4,"exp","pow");[$base,$exp]=makeTypesMatch($base,$exp);let inputs={a:$base,b:$exp};return ENGINE.runKernel(Pow,inputs)}var pow=op({pow_});function prelu_(x,alpha){let $x=convertToTensor(x,"x","prelu"),$alpha=convertToTensor(alpha,"alpha","prelu"),inputs={x:$x,alpha:$alpha};return ENGINE.runKernel(Prelu,inputs)}var prelu=op({prelu_});function prod_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","prod");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Prod,inputs,attrs)}var prod=op({prod_});function rand_(shape,randFunction,dtype){let size=sizeFromShape(shape),values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);for(let i=0;i=1||s===0);let mul2=Math.sqrt(-2*Math.log(s)/s);resultX=this.mean+this.stdDev*v1*mul2,resultY=this.mean+this.stdDev*v2*mul2,(!this.truncated||this.isValidTruncated(resultX))&&(isValid=!0)}return(!this.truncated||this.isValidTruncated(resultY))&&(this.nextVal=this.convertValue(resultY)),this.convertValue(resultX)}convertValue(value){return this.dtype==null||this.dtype==="float32"?value:Math.round(value)}isValidTruncated(value){return value<=this.upper&&value>=this.lower}},RandGamma=class{constructor(alpha,beta,dtype,seed){this.alpha=alpha,this.beta=1/beta,this.dtype=dtype;let seedValue=seed||Math.random();this.randu=seedrandom.alea(seedValue.toString()),this.randn=new MPRandGauss(0,1,dtype,!1,this.randu()),alpha<1?this.d=alpha+2/3:this.d=alpha-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let x2,v0,v1,x,u,v;for(;;){do x=this.randn.nextValue(),v=1+this.c*x;while(v<=0);if(v*=v*v,x2=x*x,v0=1-.331*x2*x2,v1=.5*x2+this.d*(1-v+Math.log(v)),u=this.randu(),uthis.dtype==null||this.dtype==="float32",this.min=min6,this.range=max6-min6,this.dtype=dtype,seed==null&&(seed=Math.random()),typeof seed=="number"&&(seed=seed.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${min6} - ${max6} <= 1 and dtype is not float`);this.random=seedrandom.alea(seed)}convertValue(value){return this.canReturnFloat()?value:Math.round(value)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function randomGamma_(shape,alpha,beta=1,dtype="float32",seed){if(beta==null&&(beta=1),dtype==null&&(dtype="float32"),dtype!=="float32"&&dtype!=="int32")throw new Error(`Unsupported data type ${dtype}`);let rgamma=new RandGamma(alpha,beta,dtype,seed),res=buffer(shape,dtype);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${$x.rank}.`),reverse($x,0)}var reverse1d=op({reverse1d_});function reverse2d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse2d=op({reverse2d_});function reverse3d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse3d=op({reverse3d_});function reverse4d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse4d=op({reverse4d_});function round_(x){let inputs={x:convertToTensor(x,"x","round")};return ENGINE.runKernel(Round,inputs)}var round2=op({round_});function rsqrt_(x){let inputs={x:convertToTensor(x,"x","rsqrt")};return ENGINE.runKernel(Rsqrt,inputs)}var rsqrt=op({rsqrt_});function scalar(value,dtype){if((isTypedArray(value)&&dtype!=="string"||Array.isArray(value))&&dtype!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(dtype==="string"&&isTypedArray(value)&&!(value instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return makeTensor(value,[],[],dtype)}function selu_(x){let inputs={x:convertToTensor(x,"x","selu")};return ENGINE.runKernel(Selu,inputs)}var selu=op({selu_});function separableConv2d_(x,depthwiseFilter,pointwiseFilter,strides,pad3,dilation=[1,1],dataFormat="NHWC"){let $x=convertToTensor(x,"x","separableConv2d"),$depthwiseFilter=convertToTensor(depthwiseFilter,"depthwiseFilter","separableConv2d"),$pointwiseFilter=convertToTensor(pointwiseFilter,"pointwiseFilter","separableConv2d"),x4D=$x,reshapedTo4D=!1;if($x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),dataFormat==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");assert(x4D.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($depthwiseFilter.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[0]}.`),assert($pointwiseFilter.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[1]}.`);let inChannels=$depthwiseFilter.shape[2],channelMultiplier=$depthwiseFilter.shape[3];assert($pointwiseFilter.shape[2]===inChannels*channelMultiplier,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${inChannels*channelMultiplier}, but got ${$pointwiseFilter.shape[2]}.`);let depthwise=depthwiseConv2d(x4D,$depthwiseFilter,strides,pad3,dataFormat,dilation),res=conv2d(depthwise,$pointwiseFilter,1,"valid",dataFormat);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var separableConv2d=op({separableConv2d_});async function setdiff1dAsync_(x,y){let $x=convertToTensor(x,"x","setdiff1d"),$y=convertToTensor(y,"y","setdiff1d");assert($x.dtype===$y.dtype,()=>`x and y should have the same dtype, but got x (${$x.dtype}) and y (${$y.dtype}).`),assert($x.rank===1,()=>`x should be 1D tensor, but got x (${$x.shape}).`),assert($y.rank===1,()=>`y should be 1D tensor, but got y (${$y.shape}).`);let xVals=await $x.data(),yVals=await $y.data(),ySet=new Set(yVals),outputSize=0;for(let i=0;i`slice1d expects a rank-1 tensor, but got a rank-${$x.rank} tensor`),slice($x,[begin],[size])}var slice1d=op({slice1d_});function slice2d_(x,begin,size){let $x=convertToTensor(x,"x","slice2d");return assert($x.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice2d=op({slice2d_});function slice3d_(x,begin,size){let $x=convertToTensor(x,"x","slice3d");return assert($x.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice3d=op({slice3d_});function slice4d_(x,begin,size){let $x=convertToTensor(x,"x","slice4d");return assert($x.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice4d=op({slice4d_});function softmax_(logits,dim=-1){let $logits=convertToTensor(logits,"logits","softmax","float32");if(dim===-1&&(dim=$logits.rank-1),dim!==$logits.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and dim was ${dim}`);let inputs={logits:$logits},attrs={dim};return ENGINE.runKernel(Softmax,inputs,attrs)}var softmax=op({softmax_});function fft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(FFT,inputs)}var fft=op({fft_});function ifft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(IFFT,inputs)}var ifft=op({ifft_});function irfft_(input2){let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,ret;if(innerDimensionSize<=2){let complexInput=reshape(input2,[batch,innerDimensionSize]);ret=ifft(complexInput)}else{let outputShape=[batch,2*(innerDimensionSize-1)],realInput=reshape(real(input2),[batch,innerDimensionSize]),imagInput=reshape(imag(input2),[batch,innerDimensionSize]),realConjugate=reverse(slice(realInput,[0,1],[batch,innerDimensionSize-2]),1),imagConjugate=mul(reverse(slice(imagInput,[0,1],[batch,innerDimensionSize-2]),1),scalar(-1)),r=concat([realInput,realConjugate],1),i=concat([imagInput,imagConjugate],1),complexInput=reshape(complex(r,i),[outputShape[0],outputShape[1]]);ret=ifft(complexInput)}if(ret=real(ret),input2.rank===3&&input2.shape[0]!==0){let temp=ret,batch2=input2.shape[0];ret=reshape(ret,[batch2,ret.shape[0]/batch2,ret.shape[1]]),temp.dispose()}return ret}var irfft=op({irfft_});function split_(x,numOrSizeSplits,axis=0){let inputs={x:convertToTensor(x,"x","split")},attr={numOrSizeSplits,axis};return ENGINE.runKernel(SplitV,inputs,attr)}var split=op({split_});function rfft_(input2,fftLength){assert(input2.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${input2.dtype}`);let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,adjustedInput;if(fftLength!=null&&fftLength0),size=input2.shape.map(v=>v);size[input2.shape.length-1]=fftLength,adjustedInput=slice(input2,begin,size),innerDimensionSize=fftLength}else if(fftLength!=null&&fftLength>innerDimensionSize){let zerosShape=input2.shape.map(v=>v);zerosShape[input2.shape.length-1]=fftLength-innerDimensionSize,adjustedInput=concat([input2,zeros(zerosShape)],input2.shape.length-1),innerDimensionSize=fftLength}else adjustedInput=input2;let zerosInput=zerosLike(adjustedInput),complexInput=reshape(complex(adjustedInput,zerosInput),[batch,innerDimensionSize]),ret=fft(complexInput),half=Math.floor(innerDimensionSize/2)+1,realValues=real(ret),imagValues=imag(ret),realComplexConjugate=split(realValues,[half,innerDimensionSize-half],realValues.shape.length-1),imagComplexConjugate=split(imagValues,[half,innerDimensionSize-half],imagValues.shape.length-1),outputShape=adjustedInput.shape.slice();return outputShape[adjustedInput.shape.length-1]=half,reshape(complex(realComplexConjugate[0],imagComplexConjugate[0]),outputShape)}var rfft=op({rfft_});function sqrt_(x){let inputs={x:convertToTensor(x,"x","sqrt")};return ENGINE.runKernel(Sqrt,inputs)}var sqrt=op({sqrt_});function squaredDifference_(a,b){let $a=convertToTensor(a,"a","squaredDifference"),$b=convertToTensor(b,"b","squaredDifference");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b},attrs={};return ENGINE.runKernel(SquaredDifference,inputs,attrs)}var squaredDifference=op({squaredDifference_});function squeeze_(x,axis){let $x=convertToTensor(x,"x","squeeze");return reshape($x,squeezeShape($x.shape,axis).newShape)}var squeeze=op({squeeze_});function stack_(tensors,axis=0){let $tensors=convertToTensorArray(tensors,"tensors","stack","string_or_numeric");assert($tensors.length>=1,()=>"Pass at least one tensor to tf.stack"),$tensors.length>0&&assert(axis<=$tensors[0].rank,()=>"Axis must be <= rank of the tensor");let inputs=$tensors,attrs={axis};return ENGINE.runKernel(Pack,inputs,attrs)}var stack=op({stack_});function step_(x,alpha=0){let inputs={x:convertToTensor(x,"x","step")},attrs={alpha};return ENGINE.runKernel(Step,inputs,attrs)}var step=op({step_});function stridedSlice_(x,begin,end,strides,beginMask=0,endMask=0,ellipsisMask=0,newAxisMask=0,shrinkAxisMask=0){let inputs={x:convertToTensor(x,"x","stridedSlice")},attrs={begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask};return ENGINE.runKernel(StridedSlice,inputs,attrs)}var stridedSlice=op({stridedSlice_});function tan_(x){let inputs={x:convertToTensor(x,"x","tan")};return ENGINE.runKernel(Tan,inputs)}var tan=op({tan_});function tensor1d(values,dtype){assertNonNull(values);let inferredShape=inferShape(values,dtype);if(inferredShape.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return makeTensor(values,null,inferredShape,dtype)}function tensor2d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==2&&inferredShape.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return makeTensor(values,shape,inferredShape,dtype)}function tensor4d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==4&&inferredShape.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor5d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==5&&inferredShape.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor6d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==6&&inferredShape.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return shape=shape||inferredShape,makeTensor(values,shape,inferredShape,dtype)}function topk_(x,k=1,sorted=!0){let $x=convertToTensor(x,"x","topk");if($x.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let lastDim=$x.shape[$x.shape.length-1];if(k>lastDim)throw new Error(`'k' passed to topk() must be <= the last dimension (${lastDim}) but got ${k}`);let inputs={x:$x},attrs={k,sorted},[values,indices]=ENGINE.runKernel(TopK,inputs,attrs);return{values,indices}}var topk=op({topk_});function truncatedNormal_(shape,mean4=0,stdDev=1,dtype,seed){if(dtype!=null&&dtype==="bool")throw new Error("Unsupported data type $ { dtype }");let randGauss=new MPRandGauss(mean4,stdDev,dtype,!0,seed),res=buffer(shape,dtype);for(let i=0;i0,()=>"The input tensor must be at least 1D");let inputs={x:$x},attrs={axis},[values,indices]=ENGINE.runKernel(Unique,inputs,attrs);return{values,indices}}var unique=op({unique_});function unsortedSegmentSum_(x,segmentIds,numSegments){let $x=convertToTensor(x,"x","unsortedSegmentSum"),$segmentIds=convertToTensor(segmentIds,"segmentIds","unsortedSegmentSum","int32");assert(isInt(numSegments),()=>"numSegments must be of dtype int");let inputs={x:$x,segmentIds:$segmentIds},attrs={numSegments};return ENGINE.runKernel(UnsortedSegmentSum,inputs,attrs)}var unsortedSegmentSum=op({unsortedSegmentSum_});function unstack_(x,axis=0){let $x=convertToTensor(x,"x","unstack","string_or_numeric");assert(axis>=-$x.shape.length&&axis<$x.shape.length,()=>`Axis = ${axis} is not in [-${$x.shape.length}, ${$x.shape.length})`);let inputs={value:$x},attrs={axis};return ENGINE.runKernel(Unpack,inputs,attrs)}var unstack=op({unstack_});function variable(initialValue,trainable=!0,name,dtype){return ENGINE.makeVariable(initialValue,trainable,name,dtype)}function whereImpl(condShape,condVals){let indices=[];for(let i=0;i0,()=>"mask cannot be scalar"),assertShapesMatch(tensorShape.slice(axisFrom,axisFrom+maskDim),$mask.shape,"mask's shape must match the first K dimensions of tensor's shape,");let leadingSize=1;for(let i=axisFrom;i"Shape mismatch in v and x");let one=scalar(1),oneMinusDecay=sub(one,$decay),update=mul(sub($x,$v),oneMinusDecay);if(zeroDebias){assert(step4!=null,()=>"When using zeroDebias: true, step is required.");let $step=convertToTensor(step4,"step","movingAverage");update=div(update,sub(one,pow($decay,$step)))}return add2($v,update)}var movingAverage=op({movingAverage_});function scatterND_(indices,updates,shape){let $indices=convertToTensor(indices,"indices","scatterND","int32"),$updates=convertToTensor(updates,"updates","scatterND");validateInput($updates,$indices,shape);let inputs={indices:$indices,updates:$updates},attrs={shape};return ENGINE.runKernel(ScatterNd,inputs,attrs)}var scatterND=op({scatterND_});function validateInput2(sparseIndices,sparseValues,outputShape,defaultValues){if(sparseIndices.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${sparseIndices.dtype}.`);if(sparseIndices.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${sparseIndices.shape}.`);let numElems=sparseIndices.rank>0?sparseIndices.shape[0]:1,numDims=sparseIndices.rank>1?sparseIndices.shape[1]:1;if(outputShape.length!==numDims)throw new Error(`outputShape has incorrect number of elements:, ${outputShape.length}, should be: ${numDims}.`);let numValues=sparseValues.size;if(!(sparseValues.rank===0||sparseValues.rank===1&&numValues===numElems))throw new Error(`sparseValues has incorrect shape ${sparseValues.shape}, should be [] or [${numElems}]`);if(sparseValues.dtype!==defaultValues.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function sparseToDense_(sparseIndices,sparseValues,outputShape,defaultValue=0){let $sparseIndices=convertToTensor(sparseIndices,"sparseIndices","sparseToDense","int32"),$sparseValues=convertToTensor(sparseValues,"sparseValues","sparseToDense"),$defaultValue=convertToTensor(defaultValue,"defaultValue","sparseToDense",$sparseValues.dtype);validateInput2($sparseIndices,$sparseValues,outputShape,$defaultValue);let inputs={sparseIndices:$sparseIndices,sparseValues:$sparseValues,defaultValue:$defaultValue},attrs={outputShape};return ENGINE.runKernel(SparseToDense,inputs,attrs)}var sparseToDense=op({sparseToDense_});function gatherND_(x,indices){let $indices=convertToTensor(indices,"indices","gatherND","int32"),inputs={params:convertToTensor(x,"x","gatherND"),indices:$indices};return ENGINE.runKernel(GatherNd,inputs)}var gatherND=op({gatherND_});function getNoiseShape(x,noiseShape){if(noiseShape==null)return x.shape.slice();if(arraysEqual(x.shape,noiseShape))return noiseShape;if(x.shape.length===noiseShape.length){let newDimension=[];for(let i=0;i`x has to be a floating point tensor since it's going to be scaled, but got a ${$x.dtype} tensor instead.`),assert(rate>=0&&rate<1,()=>`rate must be a float in the range [0, 1), but got ${rate}.`),rate===0)return x instanceof Tensor?$x.clone():$x;let $noiseShape=getNoiseShape($x,noiseShape),keepProb=1-rate,multiplier=div(floor(add2(randomUniform($noiseShape,0,1,"float32",seed),keepProb)),keepProb);return mul($x,multiplier)}var dropout=op({dropout_});function enclosingPowerOfTwo(value){return Math.floor(Math.pow(2,Math.ceil(Math.log(value)/Math.log(2))))}function cosineWindow(windowLength,a,b){let even=1-windowLength%2,newValues=new Float32Array(windowLength);for(let i=0;i1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${$predictions.rank}`),assert($predictions.rank-1===$targets.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${$predictions.rank} and targets rank ${$targets.rank}`),assertShapesMatch($predictions.shape.slice(0,$predictions.shape.length-1),$targets.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let lastDim=$predictions.shape[$predictions.shape.length-1];assert(k>0&&k<=lastDim,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${lastDim}), but got ${k}`);let predictionsVals=await $predictions.data(),targetsVals=await $targets.data(),[batch,size]=[predictionsVals.length/lastDim,lastDim],precision3=getTypedArrayFromDType("bool",batch);for(let b=0;bb2.value-a.value),precision3[b]=0;for(let i=0;iconv2d2,depthwiseConv2d:()=>depthwiseConv2d2,matMul:()=>matMul2});function conv2DBackpropFilter_(x,dy,filterShape,strides,pad3,dataFormat="NHWC",dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]])),assert(x4D.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${x4D.shape}.`),assert(dy4D.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${dy4D.shape}.`),assert(filterShape.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${filterShape}.`);let inDepth=dataFormat==="NHWC"?x4D.shape[3]:x4D.shape[1],outDepth=dataFormat==="NHWC"?dy4D.shape[3]:dy4D.shape[1];assert(inDepth===filterShape[2],()=>`Error in conv2dDerFilter: depth of input ${inDepth}) must match input depth in filter (${filterShape[2]}.`),assert(outDepth===filterShape[3],()=>`Error in conv2dDerFilter: depth of dy (${outDepth}) must match output depth for filter (${filterShape[3]}).`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dataFormat,dimRoundingMode,filterShape};return ENGINE.runKernel(Conv2DBackpropFilter,inputs,attrs)}var conv2DBackpropFilter=op({conv2DBackpropFilter_});function getFusedDyActivation(dy,y,activation2){if(activation2==null||activation2==="linear")return dy;if(activation2==="relu")return mul(dy,step(y));throw new Error(`Cannot compute gradient for fused activation ${activation2}.`)}function getFusedBiasGradient(bias,dyActivation){let res=dyActivation,reduceAxes=getReductionAxes(bias.shape,dyActivation.shape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,bias.shape)}function applyActivation(x,activation2,preluActivationWeights,leakyreluAlpha){if(activation2==="linear")return x;if(activation2==="relu")return relu(x);if(activation2==="elu")return elu(x);if(activation2==="relu6")return relu6(x);if(activation2==="prelu")return prelu(x,preluActivationWeights);if(activation2==="leakyrelu")return leakyRelu(x,leakyreluAlpha);throw new Error(`Unknown fused activation ${activation2}.`)}var shouldFuse=(gradientDepth,activation2)=>!(gradientDepth>0)||activation2==="linear";function fusedConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(activation2=activation2||"linear",shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=conv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","conv2d"),$filter=convertToTensor(filter,"filter","conv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${$filter.rank}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in conv2d: depth of input (${x4D.shape[3]}) must match input depth for filter ${$filter.shape[2]}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),assert(dataFormat==="NHWC",()=>`Error in conv2d: got dataFormat of ${dataFormat} but only NHWC is currently supported.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused conv2d"));let grad2=(dy,saved)=>{let[$filter2,x4D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2);assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`);let xDer=conv2DBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3),filterDer=conv2DBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3),der=[xDer,filterDer];if($bias2!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);der.push(biasDer)}return der},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var conv2d2=op({fusedConv2d_});function depthwiseConv2dNativeBackpropFilter_(x,dy,filterShape,strides,pad3,dilations=[1,1],dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dimRoundingMode,dilations,filterShape};return ENGINE.runKernel(DepthwiseConv2dNativeBackpropFilter,inputs,attrs)}var depthwiseConv2dNativeBackpropFilter=op({depthwiseConv2dNativeBackpropFilter_});function depthwiseConv2dNativeBackpropInput_(xShape,dy,filter,strides,pad3,dilations=[1,1],dimRoundingMode){let dy4D=dy,reshapedTo4D=!1;dy.rank===3&&(reshapedTo4D=!0,dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={dy:dy4D,filter},attrs={strides,pad:pad3,dimRoundingMode,dilations,inputShape:xShape},res=ENGINE.runKernel(DepthwiseConv2dNativeBackpropInput,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var depthwiseConv2dNativeBackpropInput=op({depthwiseConv2dNativeBackpropInput_});function fusedDepthwiseConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=depthwiseConv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","depthwiseConv2d"),$filter=convertToTensor(filter,"filter","depthwiseConv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${$filter.rank}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${x4D.shape[3]}) must match the inChannels dimension in filter ${$filter.shape[2]}.`),dilations==null&&(dilations=[1,1]),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode,!0),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused depthwiseConv2d"));let grad2=(dy,saved)=>{assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${dilations}'`);let[$filter2,x4D2,y,bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2),xDer=depthwiseConv2dNativeBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3,dilations,dimRoundingMode),filterDer=depthwiseConv2dNativeBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3,dilations,dimRoundingMode);if(bias2!=null){let biasDer=getFusedBiasGradient($bias,dyActivation);return[xDer,filterDer,biasDer]}return[xDer,filterDer]},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var depthwiseConv2d2=op({fusedDepthwiseConv2d_});function fusedMatMul_({a,b,transposeA=!1,transposeB=!1,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=matMul(a,b,transposeA,transposeB);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $a=convertToTensor(a,"a","fused matMul"),$b=convertToTensor(b,"b","fused matMul");[$a,$b]=makeTypesMatch($a,$b);let innerShapeA=transposeA?$a.shape[$a.rank-2]:$a.shape[$a.rank-1],innerShapeB=transposeB?$b.shape[$b.rank-1]:$b.shape[$b.rank-2],outerShapeA=transposeA?$a.shape[$a.rank-1]:$a.shape[$a.rank-2],outerShapeB=transposeB?$b.shape[$b.rank-2]:$b.shape[$b.rank-1],outerDimsA=$a.shape.slice(0,-2),outerDimsB=$b.shape.slice(0,-2),batchDimA=sizeFromShape(outerDimsA),batchDimB=sizeFromShape(outerDimsB);assert($a.rank>=2&&$b.rank>=2&&$a.rank===$b.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${$a.rank} and ${$b.rank}.`),assert(arraysEqual(outerDimsA,outerDimsB),()=>`Error in fused matMul: outer dimensions (${outerDimsA}) and (${outerDimsB}) of Tensors with shapes ${$a.shape} and ${$b.shape} must match.`),assert(innerShapeA===innerShapeB,()=>`Error in fused matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${$a.shape} and ${$b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let outShape=$a.shape.slice(0,-2).concat([outerShapeA,outerShapeB]),a3D=transposeA?reshape($a,[batchDimA,innerShapeA,outerShapeA]):reshape($a,[batchDimA,outerShapeA,innerShapeA]),b3D=transposeB?reshape($b,[batchDimB,outerShapeB,innerShapeB]):reshape($b,[batchDimB,innerShapeB,outerShapeB]),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused matMul"),[$bias]=makeTypesMatch($bias,$a),assertAndGetBroadcastShape(outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused matMul"));let grad2=(dy,saved)=>{let[a3D2,b3D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(reshape(dy,y.shape),y,activation2),aDer,bDer;if(!transposeA&&!transposeB?(aDer=matMul(dyActivation,b3D2,!1,!0),bDer=matMul(a3D2,dyActivation,!0,!1)):!transposeA&&transposeB?(aDer=matMul(dyActivation,b3D2,!1,!1),bDer=matMul(dyActivation,a3D2,!0,!1)):transposeA&&!transposeB?(aDer=matMul(b3D2,dyActivation,!1,!0),bDer=matMul(a3D2,dyActivation,!1,!1)):(aDer=matMul(b3D2,dyActivation,!0,!0),bDer=matMul(dyActivation,a3D2,!0,!0)),bias!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);return[aDer,bDer,biasDer]}else return[aDer,bDer]},inputs={a:a3D,b:b3D,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={transposeA,transposeB,activation:activation2,leakyreluAlpha};return bias==null?customGrad((a3D2,b3D2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D):customGrad((a3D2,b3D2,$bias2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res,$bias2]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D,$bias)}var matMul2=op({fusedMatMul_});function hammingWindow_(windowLength){return cosineWindow(windowLength,.54,.46)}var hammingWindow=op({hammingWindow_});function hannWindow_(windowLength){return cosineWindow(windowLength,.5,.5)}var hannWindow=op({hannWindow_});function frame_(signal2,frameLength,frameStep,padEnd=!1,padValue=0){let start=0,output=[];for(;start+frameLength<=signal2.size;)output.push(slice(signal2,start,frameLength)),start+=frameStep;if(padEnd)for(;start`Error in cropAndResize: image must be rank 4,but got rank ${$image.rank}.`),assert($boxes.rank===2&&$boxes.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${numBoxes},4] but had shape ${$boxes.shape}.`),assert($boxInd.rank===1&&$boxInd.shape[0]===numBoxes,()=>`Error in cropAndResize: boxInd must be have size [${numBoxes}] but had shape ${$boxes.shape}.`),assert(cropSize.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${cropSize.length}.`),assert(cropSize[0]>=1&&cropSize[1]>=1,()=>`cropSize must be atleast [1,1], but was ${cropSize}`),assert(method==="bilinear"||method==="nearest",()=>`method must be bilinear or nearest, but was ${method}`);let inputs={image:$image,boxes:$boxes,boxInd:$boxInd},attrs={method,extrapolationValue,cropSize};return ENGINE.runKernel(CropAndResize,inputs,attrs)}var cropAndResize=op({cropAndResize_});function flipLeftRight_(image3){let $image=convertToTensor(image3,"image","flipLeftRight","float32");assert($image.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image};return ENGINE.runKernel(FlipLeftRight,inputs,{})}var flipLeftRight=op({flipLeftRight_});function rotateWithOffset_(image3,radians,fillValue=0,center=.5){let $image=convertToTensor(image3,"image","rotateWithOffset","float32");assert($image.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image},attrs={radians,fillValue,center};return ENGINE.runKernel(RotateWithOffset,inputs,attrs)}var rotateWithOffset=op({rotateWithOffset_});function nonMaxSuppSanityCheck(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){iouThreshold==null&&(iouThreshold=.5),scoreThreshold==null&&(scoreThreshold=Number.NEGATIVE_INFINITY),softNmsSigma==null&&(softNmsSigma=0);let numBoxes=boxes.shape[0];return maxOutputSize=Math.min(maxOutputSize,numBoxes),assert(0<=iouThreshold&&iouThreshold<=1,()=>`iouThreshold must be in [0, 1], but was '${iouThreshold}'`),assert(boxes.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${boxes.rank}'`),assert(boxes.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${boxes.shape[1]}`),assert(scores.rank===1,()=>"scores must be a 1D tensor"),assert(scores.shape[0]===numBoxes,()=>`scores has incompatible shape with boxes. Expected ${numBoxes}, but was ${scores.shape[0]}`),assert(0<=softNmsSigma&&softNmsSigma<=1,()=>`softNmsSigma must be in [0, 1], but was '${softNmsSigma}'`),{maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}function nonMaxSuppression_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let attrs={maxOutputSize,iouThreshold,scoreThreshold};return ENGINE.runKernel(NonMaxSuppressionV3,{boxes:$boxes,scores:$scores},attrs)}var nonMaxSuppression=op({nonMaxSuppression_});function binaryInsert(arr,element,comparator){let index=binarySearch(arr,element,comparator),insertionPoint=index<0?-(index+1):index;arr.splice(insertionPoint,0,element)}function binarySearch(arr,target,comparator){return binarySearch_(arr,target,comparator||defaultComparator)}function defaultComparator(a,b){return a>b?1:a>>1);let compareResult=comparator(target,arr[middle]);compareResult>0?left=middle+1:(right=middle,found=!compareResult)}return found?left:-left-1}function nonMaxSuppressionV3Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0)}function nonMaxSuppressionV4Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0,!1,padToMaxOutputSize,!0)}function nonMaxSuppressionV5Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,!0)}function nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,returnScoresTensor=!1,padToMaxOutputSize=!1,returnValidOutputs=!1){let candidates=[];for(let i=0;iscoreThreshold&&candidates.push({score:scores[i],boxIndex:i,suppressBeginIndex:0});candidates.sort(ascendingComparator);let scale2=softNmsSigma>0?-.5/softNmsSigma:0,selectedIndices=[],selectedScores=[];for(;selectedIndices.length0;){let candidate=candidates.pop(),{score:originalScore,boxIndex,suppressBeginIndex}=candidate;if(originalScore=suppressBeginIndex;--j){let iou=intersectionOverUnion(boxes,boxIndex,selectedIndices[j]);if(iou>=iouThreshold){ignoreCandidate=!0;break}if(candidate.score=candidate.score*suppressWeight(iouThreshold,scale2,iou),candidate.score<=scoreThreshold)break}candidate.suppressBeginIndex=selectedIndices.length,ignoreCandidate||(candidate.score===originalScore?(selectedIndices.push(boxIndex),selectedScores.push(candidate.score)):candidate.score>scoreThreshold&&binaryInsert(candidates,candidate,ascendingComparator))}let validOutputs=selectedIndices.length,elemsToPad=maxOutputSize-validOutputs;padToMaxOutputSize&&elemsToPad>0&&(selectedIndices.push(...new Array(elemsToPad).fill(0)),selectedScores.push(...new Array(elemsToPad).fill(0)));let result={selectedIndices};return returnScoresTensor&&(result.selectedScores=selectedScores),returnValidOutputs&&(result.validOutputs=validOutputs),result}function intersectionOverUnion(boxes,i,j){let iCoord=boxes.subarray(i*4,i*4+4),jCoord=boxes.subarray(j*4,j*4+4),yminI=Math.min(iCoord[0],iCoord[2]),xminI=Math.min(iCoord[1],iCoord[3]),ymaxI=Math.max(iCoord[0],iCoord[2]),xmaxI=Math.max(iCoord[1],iCoord[3]),yminJ=Math.min(jCoord[0],jCoord[2]),xminJ=Math.min(jCoord[1],jCoord[3]),ymaxJ=Math.max(jCoord[0],jCoord[2]),xmaxJ=Math.max(jCoord[1],jCoord[3]),areaI=(ymaxI-yminI)*(xmaxI-xminI),areaJ=(ymaxJ-yminJ)*(xmaxJ-xminJ);if(areaI<=0||areaJ<=0)return 0;let intersectionYmin=Math.max(yminI,yminJ),intersectionXmin=Math.max(xminI,xminJ),intersectionYmax=Math.min(ymaxI,ymaxJ),intersectionXmax=Math.min(xmaxI,xmaxJ),intersectionArea=Math.max(intersectionYmax-intersectionYmin,0)*Math.max(intersectionXmax-intersectionXmin,0);return intersectionArea/(areaI+areaJ-intersectionArea)}function suppressWeight(iouThreshold,scale2,iou){let weight=Math.exp(scale2*iou*iou);return iou<=iouThreshold?weight:0}function ascendingComparator(c1,c2){return c1.score-c2.score||c1.score===c2.score&&c2.boxIndex-c1.boxIndex}async function nonMaxSuppressionAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices}=nonMaxSuppressionV3Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),tensor1d(selectedIndices,"int32")}var nonMaxSuppressionAsync=nonMaxSuppressionAsync_;function nonMaxSuppressionWithScore_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma},result=ENGINE.runKernel(NonMaxSuppressionV5,inputs,attrs);return{selectedIndices:result[0],selectedScores:result[1]}}var nonMaxSuppressionWithScore=op({nonMaxSuppressionWithScore_});async function nonMaxSuppressionWithScoreAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices,selectedScores}=nonMaxSuppressionV5Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),selectedScores:tensor1d(selectedScores)}}var nonMaxSuppressionWithScoreAsync=nonMaxSuppressionWithScoreAsync_;function nonMaxSuppressionPadded_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize:$maxOutputSize,iouThreshold:$iouThreshold,scoreThreshold:$scoreThreshold,padToMaxOutputSize},result=ENGINE.runKernel(NonMaxSuppressionV4,inputs,attrs);return{selectedIndices:result[0],validOutputs:result[1]}}var nonMaxSuppressionPadded=op({nonMaxSuppressionPadded_});async function nonMaxSuppressionPaddedAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,[boxesVals,scoresVals]=await Promise.all([$boxes.data(),$scores.data()]),{selectedIndices,validOutputs}=nonMaxSuppressionV4Impl(boxesVals,scoresVals,$maxOutputSize,$iouThreshold,$scoreThreshold,padToMaxOutputSize);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),validOutputs:scalar(validOutputs,"int32")}}var nonMaxSuppressionPaddedAsync=nonMaxSuppressionPaddedAsync_;function resizeBilinear_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeBilinear");assert($images.rank===3||$images.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${size}.`),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeBilinear,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeBilinear=op({resizeBilinear_});function resizeNearestNeighbor_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeNearestNeighbor");assert($images.rank===3||$images.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${size}.`),assert($images.dtype==="float32"||$images.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeNearestNeighbor,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeNearestNeighbor=op({resizeNearestNeighbor_});function bandPart_(a,numLower,numUpper){assert(numLower%1==0,()=>`bandPart(): numLower must be an integer, got ${numLower}.`),assert(numUpper%1==0,()=>`bandPart(): numUpper must be an integer, got ${numUpper}.`);let $a=convertToTensor(a,"a","bandPart");assert($a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${$a.rank}.`);let shape=$a.shape,[M,N]=$a.shape.slice(-2);if(!(numLower<=M))throw new Error(`bandPart(): numLower (${numLower}) must not be greater than the number of rows (${M}).`);if(!(numUpper<=N))throw new Error(`bandPart(): numUpper (${numUpper}) must not be greater than the number of columns (${N}).`);numLower<0&&(numLower=M),numUpper<0&&(numUpper=N);let i=reshape(range(0,M,1,"int32"),[-1,1]),j=range(0,N,1,"int32"),ij=sub(i,j),inBand=logicalAnd(lessEqual(ij,scalar(+numLower,"int32")),greaterEqual(ij,scalar(-numUpper,"int32"))),zero=zeros([M,N],$a.dtype);return reshape(stack(unstack(reshape($a,[-1,M,N])).map(mat=>where(inBand,mat,zero))),shape)}var bandPart=op({bandPart_});function gramSchmidt_(xs){let inputIsTensor2D;if(Array.isArray(xs)){inputIsTensor2D=!1,assert(xs!=null&&xs.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let dim=xs[0].shape[0];for(let i=1;i`Gram-Schmidt: Non-unique lengths found in the input vectors: (${xs[i].shape[0]} vs. ${dim})`)}else inputIsTensor2D=!0,xs=split(xs,xs.shape[0],0).map(x=>squeeze(x,[0]));assert(xs.length<=xs[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${xs.length}) exceeds number of dimensions (${xs[0].shape[0]}).`);let ys=[],xs1d=xs;for(let i=0;i{let x=xs1d[i];if(i>0)for(let j=0;j=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${x.rank}`),x.rank===2)return qr2d(x,fullMatrices);{let outerDimsProd=x.shape.slice(0,x.shape.length-2).reduce((value,prev)=>value*prev),x2ds=unstack(reshape(x,[outerDimsProd,x.shape[x.shape.length-2],x.shape[x.shape.length-1]]),0),q2ds=[],r2ds=[];x2ds.forEach(x2d=>{let[q2d,r2d]=qr2d(x2d,fullMatrices);q2ds.push(q2d),r2ds.push(r2d)});let q=reshape(stack(q2ds,0),x.shape),r=reshape(stack(r2ds,0),x.shape);return[q,r]}}function qr2d(x,fullMatrices=!1){return ENGINE.tidy(()=>{assert(x.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${x.shape.length}D Tensor.`);let m=x.shape[0],n=x.shape[1],q=eye(m),r=clone(x),one2D=tensor2d([[1]],[1,1]),w=clone(one2D),iters=m>=n?n:m;for(let j=0;j{let rjEnd1=slice(r,[j,j],[m-j,1]),normX=norm(rjEnd1),rjj=slice(r,[j,j],[1,1]),s=where(greater(rjj,0),tensor2d([[-1]]),tensor2d([[1]])),u1=sub(rjj,mul(s,normX)),wPre=div(rjEnd1,u1);wPre.shape[0]===1?w=clone(one2D):w=concat([one2D,slice(wPre,[1,0],[wPre.shape[0]-1,wPre.shape[1]])],0);let tau=neg(div(matMul(s,u1),normX)),rjEndAll=slice(r,[j,0],[m-j,n]),tauTimesW=mul(tau,w),wT=transpose(w);if(j===0)r=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));else{let rTimesTau=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));r=concat([slice(r,[0,0],[j,n]),rTimesTau],0)}let tawTimesWT=transpose(tauTimesW),qAllJEnd=slice(q,[0,j],[m,q.shape[1]-j]);if(j===0)q=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));else{let qTimesTau=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));q=concat([slice(q,[0,0],[m,j]),qTimesTau],1)}return[w,r,q]}),dispose([rTemp,wTemp,qTemp])}return!fullMatrices&&m>n&&(q=slice(q,[0,0],[m,n]),r=slice(r,[0,0],[n,n])),[q,r]})}var qr=op({qr_}),Reduction;(function(Reduction2){Reduction2[Reduction2.NONE=0]="NONE",Reduction2[Reduction2.MEAN=1]="MEAN",Reduction2[Reduction2.SUM=2]="SUM",Reduction2[Reduction2.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Reduction||(Reduction={}));function computeWeightedLoss_(losses4,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $losses=convertToTensor(losses4,"losses","computeWeightedLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","computeWeightedLoss"));let weightedLoss=$weights==null?$losses:mul($losses,$weights);if(reduction2===Reduction.NONE)return weightedLoss;if(reduction2===Reduction.SUM)return sum2(weightedLoss);if(reduction2===Reduction.MEAN){if($weights==null)return mean(weightedLoss);{let broadcastFactor=$losses.size/$weights.size,result=div(sum2(weightedLoss),sum2($weights));return broadcastFactor>1?div(result,scalar(broadcastFactor)):result}}if(reduction2===Reduction.SUM_BY_NONZERO_WEIGHTS){if($weights==null)return div(sum2(weightedLoss),scalar($losses.size));{let broadcastedWeights=mul($weights,ones2($losses.shape)),numNonZeros=cast(sum2(notEqual(broadcastedWeights,scalar(0))),"float32");return div(sum2(weightedLoss),numNonZeros)}}throw Error(`Unknown reduction: ${reduction2}`)}var computeWeightedLoss=op({computeWeightedLoss_});function absoluteDifference_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","absoluteDifference"),$predictions=convertToTensor(predictions,"predictions","absoluteDifference"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","absoluteDifference")),assertShapesMatch($labels.shape,$predictions.shape,"Error in absoluteDifference: ");let losses4=abs(sub($labels,$predictions));return computeWeightedLoss(losses4,$weights,reduction2)}var absoluteDifference=op({absoluteDifference_});function cosineDistance_(labels,predictions,axis,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","cosineDistance"),$predictions=convertToTensor(predictions,"predictions","cosineDistance"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","cosineDistance")),assertShapesMatch($labels.shape,$predictions.shape,"Error in cosineDistance: ");let one=scalar(1),losses4=sub(one,sum2(mul($labels,$predictions),axis,!0));return computeWeightedLoss(losses4,$weights,reduction2)}var cosineDistance=op({cosineDistance_});function hingeLoss_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","hingeLoss"),$predictions=convertToTensor(predictions,"predictions","hingeLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","hingeLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in hingeLoss: ");let one=scalar(1);$labels=sub(mul(scalar(2),$labels),one);let losses4=relu(sub(one,mul($labels,$predictions)));return computeWeightedLoss(losses4,$weights,reduction2)}var hingeLoss=op({hingeLoss_});function huberLoss_(labels,predictions,weights,delta=1,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","huberLoss"),$predictions=convertToTensor(predictions,"predictions","huberLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","huberLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in huberLoss: ");let deltaScalar=scalar(delta),error=abs(sub($predictions,$labels)),quadratic=minimum(error,deltaScalar),linear=sub(error,quadratic),losses4=add2(mul(scalar(.5),square(quadratic)),mul(deltaScalar,linear));return computeWeightedLoss(losses4,$weights,reduction2)}var huberLoss=op({huberLoss_});function logLoss_(labels,predictions,weights,epsilon3=1e-7,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","logLoss"),$predictions=convertToTensor(predictions,"predictions","logLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","logLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in logLoss: ");let one=scalar(1),epsilonScalar=scalar(epsilon3),l13=neg(mul($labels,log2(add2($predictions,epsilonScalar)))),l23=mul(sub(one,$labels),log2(add2(sub(one,$predictions),epsilonScalar))),losses4=sub(l13,l23);return computeWeightedLoss(losses4,$weights,reduction2)}var logLoss=op({logLoss_});function meanSquaredError_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","meanSquaredError"),$predictions=convertToTensor(predictions,"predictions","meanSquaredError"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","meanSquaredError")),assertShapesMatch($labels.shape,$predictions.shape,"Error in meanSquaredError: ");let losses4=squaredDifference($labels,$predictions);return computeWeightedLoss(losses4,$weights,reduction2)}var meanSquaredError=op({meanSquaredError_});function sigmoidCrossEntropyWithLogits_(labels,logits){let $labels=convertToTensor(labels,"labels","sigmoidCrossEntropyWithLogits"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropyWithLogits");assertShapesMatch($labels.shape,$logits.shape,"Error in sigmoidCrossEntropyWithLogits: ");let maxOutput=relu($logits),outputXTarget=mul($logits,$labels),sigmoidOutput=log1p(exp(neg(abs($logits))));return add2(sub(maxOutput,outputXTarget),sigmoidOutput)}function sigmoidCrossEntropy_(multiClassLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $multiClassLabels=convertToTensor(multiClassLabels,"multiClassLabels","sigmoidCrossEntropy"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","sigmoidCrossEntropy")),assertShapesMatch($multiClassLabels.shape,$logits.shape,"Error in sigmoidCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),half=scalar(.5);$multiClassLabels=add2(mul($multiClassLabels,sub(one,labelSmoothingScalar)),mul(half,labelSmoothingScalar))}let losses4=sigmoidCrossEntropyWithLogits_($multiClassLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var sigmoidCrossEntropy=op({sigmoidCrossEntropy_});function softmaxCrossEntropyWithLogits_(labels,logits,dim=-1){if(dim===-1&&(dim=logits.rank-1),dim!==logits.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${logits.rank} and dim was ${dim}`);return customGrad((labels2,logits2,save)=>{let lse=logSumExp(logits2,[dim],!0),logResult=sub(cast(logits2,"float32"),lse);save([labels2,logResult]);let costVector=neg(mul(logResult,labels2));return{value:sum2(costVector,[dim]),gradFunc:(dy,saved)=>{let[labels3,logResult2]=saved,dyShape=expandShapeToKeepDim(dy.shape,[dim]);return[mul(reshape(dy,dyShape),sub(cast(labels3,"float32"),exp(logResult2))),mul(reshape(dy,dyShape),sub(exp(logResult2),cast(labels3,"float32")))]}}})(labels,logits)}function softmaxCrossEntropy_(onehotLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $onehotLabels=convertToTensor(onehotLabels,"onehotLabels","softmaxCrossEntropy"),$logits=convertToTensor(logits,"logits","softmaxCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","softmaxCrossEntropy")),assertShapesMatch($onehotLabels.shape,$logits.shape,"Error in softmaxCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),numClasses=scalar($onehotLabels.shape[1]);$onehotLabels=add2(mul($onehotLabels,sub(one,labelSmoothingScalar)),div(labelSmoothingScalar,numClasses))}let losses4=softmaxCrossEntropyWithLogits_($onehotLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var softmaxCrossEntropy=op({softmaxCrossEntropy_}),spectral={fft,ifft,rfft,irfft},signal={hammingWindow,hannWindow,frame,stft},image={flipLeftRight,resizeNearestNeighbor,resizeBilinear,rotateWithOffset,cropAndResize,nonMaxSuppression,nonMaxSuppressionAsync,nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync},linalg={bandPart,gramSchmidt,qr},losses={absoluteDifference,computeWeightedLoss,cosineDistance,hingeLoss,huberLoss,logLoss,meanSquaredError,sigmoidCrossEntropy,softmaxCrossEntropy},Optimizer=class extends Serializable{minimize(f,returnCost=!1,varList){let{value,grads:grads2}=this.computeGradients(f,varList);if(varList!=null){let gradArray=varList.map(v=>({name:v.name,tensor:grads2[v.name]}));this.applyGradients(gradArray)}else this.applyGradients(grads2);return dispose(grads2),returnCost?value:(value.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(f,varList){return variableGrads(f,varList)}dispose(){this.iterations_!=null&&dispose(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:scalar(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(weightValues){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(weightValues){return this.iterations_=(await weightValues[0].tensor.data())[0],weightValues.slice(1)}};Object.defineProperty(Optimizer,Symbol.hasInstance,{value:instance=>instance.minimize!=null&&instance.computeGradients!=null&&instance.applyGradients!=null});var AdadeltaOptimizer=class extends Optimizer{constructor(learningRate,rho,epsilon3=null){super();this.learningRate=learningRate,this.rho=rho,this.epsilon=epsilon3,this.accumulatedGrads=[],this.accumulatedUpdates=[],epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedGrads[i]==null&&(this.accumulatedGrads[i]={originalName:`${name}/accum_grad`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedUpdates[i]==null&&(this.accumulatedUpdates[i]={originalName:`${name}/accum_var`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable,accumulatedUpdate=this.accumulatedUpdates[i].variable;tidy(()=>{let newAccumulatedGrad=add2(mul(accumulatedGrad,this.rho),mul(square(gradient),1-this.rho)),updates=mul(div(sqrt(add2(accumulatedUpdate,this.epsilon)),sqrt(add2(accumulatedGrad,this.epsilon))),gradient),newAccumulatedUpdate=add2(mul(accumulatedUpdate,this.rho),mul(square(updates),1-this.rho));accumulatedGrad.assign(newAccumulatedGrad),accumulatedUpdate.assign(newAccumulatedUpdate);let newValue=add2(mul(updates,-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(dispose(this.accumulatedGrads.map(v=>v.variable)),dispose(this.accumulatedUpdates.map(v=>v.variable)))}async getWeights(){let variables=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=weightValues.length/2,trainable=!1;this.accumulatedGrads=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedUpdates=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.rho,config3.epsilon)}};AdadeltaOptimizer.className="Adadelta";registerClass(AdadeltaOptimizer);var AdagradOptimizer=class extends Optimizer{constructor(learningRate,initialAccumulatorValue=.1){super();this.learningRate=learningRate,this.initialAccumulatorValue=initialAccumulatorValue,this.accumulatedGrads=[]}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulatedGrads[i]==null){let trainable=!1;this.accumulatedGrads[i]={originalName:`${name}/accumulator`,variable:tidy(()=>fill(value.shape,this.initialAccumulatorValue).variable(trainable))}}let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable;tidy(()=>{let newAccumulatedGrad=add2(accumulatedGrad,square(gradient));accumulatedGrad.assign(newAccumulatedGrad);let newValue=add2(mul(div(gradient,sqrt(add2(newAccumulatedGrad,ENGINE.backend.epsilon()))),-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&dispose(this.accumulatedGrads.map(v=>v.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulatedGrads=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.initialAccumulatorValue)}};AdagradOptimizer.className="Adagrad";registerClass(AdagradOptimizer);var AdamOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],tidy(()=>{this.accBeta1=scalar(beta1).variable(),this.accBeta2=scalar(beta2).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let varNames=Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),oneMinusAccBeta2=sub(1,this.accBeta2);varNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${name}/v`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,secondMoment=this.accumulatedSecondMoment[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),newSecondMoment=add2(mul(secondMoment,this.beta2),mul(square(gradient),1-this.beta2)),biasCorrectedFirstMoment=div(newFirstMoment,oneMinusAccBeta1),biasCorrectedSecondMoment=div(newSecondMoment,oneMinusAccBeta2);firstMoment.assign(newFirstMoment),secondMoment.assign(newSecondMoment);let newValue=add2(mul(div(biasCorrectedFirstMoment,add2(sqrt(biasCorrectedSecondMoment),this.epsilon)),-this.learningRate),value);value.assign(newValue)}),this.accBeta1.assign(mul(this.accBeta1,this.beta1)),this.accBeta2.assign(mul(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedSecondMoment!=null&&dispose(this.accumulatedSecondMoment.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues),tidy(()=>{this.accBeta1.assign(pow(this.beta1,this.iterations_+1)),this.accBeta2.assign(pow(this.beta2,this.iterations_+1))});let variableCount=weightValues.length/2,trainable=!1;this.accumulatedFirstMoment=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedSecondMoment=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.beta1,config3.beta2,config3.epsilon)}};AdamOptimizer.className="Adam";registerClass(AdamOptimizer);var AdamaxOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null,decay=0){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.decay=decay,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],tidy(()=>{this.iteration=scalar(0).variable(),this.accBeta1=scalar(beta1).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let variableNames=Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),lr=div(-this.learningRate,add2(mul(this.iteration,this.decay),1));variableNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:zerosLike(value).variable(trainable)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${name}/v`,variable:zerosLike(value).variable(trainable)});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,weightedInfNorm=this.accumulatedWeightedInfNorm[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),ut0=mul(weightedInfNorm,this.beta2),ut1=abs(gradient),newWeightedInfNorm=maximum(ut0,ut1);firstMoment.assign(newFirstMoment),weightedInfNorm.assign(newWeightedInfNorm);let newValue=add2(mul(div(lr,oneMinusAccBeta1),div(newFirstMoment,add2(newWeightedInfNorm,this.epsilon))),value);value.assign(newValue)}),this.iteration.assign(add2(this.iteration,1)),this.accBeta1.assign(mul(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedWeightedInfNorm!=null&&dispose(this.accumulatedWeightedInfNorm.map(v=>v.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(weightValues){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.beta1,config3.beta2,config3.epsilon,config3.decay)}};AdamaxOptimizer.className="Adamax";registerClass(AdamaxOptimizer);var SGDOptimizer=class extends Optimizer{constructor(learningRate){super();this.learningRate=learningRate,this.setLearningRate(learningRate)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients)).forEach((name,i)=>{let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let value=ENGINE.registeredVariables[name];tidy(()=>{let newValue=add2(mul(this.c,gradient),value);value.assign(newValue)})}),this.incrementIterations()}setLearningRate(learningRate){this.learningRate=learningRate,this.c!=null&&this.c.dispose(),this.c=keep(scalar(-learningRate))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(weightValues){if(weightValues=await this.extractIterations(weightValues),weightValues.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(cls,config3){return new cls(config3.learningRate)}};SGDOptimizer.className="SGD";registerClass(SGDOptimizer);var MomentumOptimizer=class extends SGDOptimizer{constructor(learningRate,momentum,useNesterov=!1){super(learningRate);this.learningRate=learningRate,this.momentum=momentum,this.useNesterov=useNesterov,this.accumulations=[],this.m=scalar(this.momentum)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulations[i]==null){let trainable=!1;this.accumulations[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}}let accumulation=this.accumulations[i].variable,gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];gradient!=null&&tidy(()=>{let newValue,newAccumulation=add2(mul(this.m,accumulation),gradient);this.useNesterov?newValue=add2(mul(this.c,add2(gradient,mul(newAccumulation,this.m))),value):newValue=add2(mul(this.c,newAccumulation),value),accumulation.assign(newAccumulation),value.assign(newValue)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&dispose(this.accumulations.map(v=>v.variable))}setMomentum(momentum){this.momentum=momentum}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulations=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.momentum,config3.useNesterov)}};MomentumOptimizer.className="Momentum";registerClass(MomentumOptimizer);var RMSPropOptimizer=class extends Optimizer{constructor(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){super();if(this.learningRate=learningRate,this.decay=decay,this.momentum=momentum,this.epsilon=epsilon3,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=centered,epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon()),learningRate==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedMeanSquares[i]==null&&(this.accumulatedMeanSquares[i]={originalName:`${name}/rms`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMoments[i]==null&&(this.accumulatedMoments[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMeanGrads[i]==null&&this.centered&&(this.accumulatedMeanGrads[i]={originalName:`${name}/mg`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedMeanSquare=this.accumulatedMeanSquares[i].variable,accumulatedMoments=this.accumulatedMoments[i].variable;tidy(()=>{let newAccumulatedMeanSquare=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay));if(this.centered){let accumulatedMeanGrad=this.accumulatedMeanGrads[i].variable,newAccumulatedMeanGrad=add2(mul(accumulatedMeanGrad,this.decay),mul(gradient,1-this.decay)),gradContribution=div(mul(gradient,this.learningRate),sqrt(sub(newAccumulatedMeanSquare,add2(square(newAccumulatedMeanGrad),this.epsilon)))),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),gradContribution);accumulatedMeanSquare.assign(newAccumulatedMeanSquare),accumulatedMeanGrad.assign(newAccumulatedMeanGrad),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}else{let newAccumulatedMeanSquare2=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay)),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),div(mul(gradient,this.learningRate),sqrt(add2(newAccumulatedMeanSquare2,this.epsilon))));accumulatedMeanSquare.assign(newAccumulatedMeanSquare2),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&dispose(this.accumulatedMeanSquares.map(v=>v.variable)),this.accumulatedMeanGrads!=null&&this.centered&&dispose(this.accumulatedMeanGrads.map(v=>v.variable)),this.accumulatedMoments!=null&&dispose(this.accumulatedMoments.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&variables.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=this.centered?weightValues.length/3:weightValues.length/2,trainable=!1;this.accumulatedMeanSquares=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedMoments=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.centered&&(this.accumulatedMeanGrads=weightValues.slice(variableCount*2,variableCount*3).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(cls,config3){return new cls(config3.learningRate,config3.decay,config3.momentum,config3.epsilon,config3.centered)}};RMSPropOptimizer.className="RMSProp";registerClass(RMSPropOptimizer);var OptimizerConstructors=class{static sgd(learningRate){return new SGDOptimizer(learningRate)}static momentum(learningRate,momentum,useNesterov=!1){return new MomentumOptimizer(learningRate,momentum,useNesterov)}static rmsprop(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){return new RMSPropOptimizer(learningRate,decay,momentum,epsilon3,centered)}static adam(learningRate=.001,beta1=.9,beta2=.999,epsilon3=null){return new AdamOptimizer(learningRate,beta1,beta2,epsilon3)}static adadelta(learningRate=.001,rho=.95,epsilon3=null){return new AdadeltaOptimizer(learningRate,rho,epsilon3)}static adamax(learningRate=.002,beta1=.9,beta2=.999,epsilon3=null,decay=0){return new AdamaxOptimizer(learningRate,beta1,beta2,epsilon3,decay)}static adagrad(learningRate,initialAccumulatorValue=.1){return new AdagradOptimizer(learningRate,initialAccumulatorValue)}},train={sgd:OptimizerConstructors.sgd,momentum:OptimizerConstructors.momentum,adadelta:OptimizerConstructors.adadelta,adagrad:OptimizerConstructors.adagrad,rmsprop:OptimizerConstructors.rmsprop,adamax:OptimizerConstructors.adamax,adam:OptimizerConstructors.adam},delayCallback=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:f=>f())();function nextFrame(){return new Promise(resolve=>delayCallback(()=>resolve()))}var backend_util_exports={};__export2(backend_util_exports,{ERF_A1:()=>ERF_A1,ERF_A2:()=>ERF_A2,ERF_A3:()=>ERF_A3,ERF_A4:()=>ERF_A4,ERF_A5:()=>ERF_A5,ERF_P:()=>ERF_P,PARALLELIZE_THRESHOLD:()=>PARALLELIZE_THRESHOLD,SELU_SCALE:()=>SELU_SCALE,SELU_SCALEALPHA:()=>SELU_SCALEALPHA,applyActivation:()=>applyActivation,assertAndGetBroadcastShape:()=>assertAndGetBroadcastShape,assertAxesAreInnerMostDims:()=>assertAxesAreInnerMostDims,assertParamsConsistent:()=>assertParamsConsistent,assignToTypedArray:()=>assignToTypedArray,axesAreInnerMostDims:()=>axesAreInnerMostDims,calculateShapes:()=>calculateShapes,castTensor:()=>castTensor,combineLocations:()=>combineLocations,complexWithEvenIndex:()=>complexWithEvenIndex,complexWithOddIndex:()=>complexWithOddIndex,computeConv2DInfo:()=>computeConv2DInfo,computeConv3DInfo:()=>computeConv3DInfo,computeDefaultPad:()=>computeDefaultPad,computeDilation2DInfo:()=>computeDilation2DInfo,computeOptimalWindowSize:()=>computeOptimalWindowSize,computeOutAndReduceShapes:()=>computeOutAndReduceShapes,computeOutShape:()=>computeOutShape2,computePool2DInfo:()=>computePool2DInfo,computePool3DInfo:()=>computePool3DInfo,convertConv2DDataFormat:()=>convertConv2DDataFormat,eitherStridesOrDilationsAreOne:()=>eitherStridesOrDilationsAreOne,expandShapeToKeepDim:()=>expandShapeToKeepDim,exponent:()=>exponent,exponents:()=>exponents,fromStringArrayToUint8:()=>fromStringArrayToUint8,fromUint8ToStringArray:()=>fromUint8ToStringArray,getAxesPermutation:()=>getAxesPermutation,getBroadcastDims:()=>getBroadcastDims,getComplexWithIndex:()=>getComplexWithIndex,getFusedBiasGradient:()=>getFusedBiasGradient,getFusedDyActivation:()=>getFusedDyActivation,getImageCenter:()=>getImageCenter,getInnerMostAxes:()=>getInnerMostAxes,getPermuted:()=>getPermuted,getReductionAxes:()=>getReductionAxes,getReshaped:()=>getReshaped,getReshapedPermuted:()=>getReshapedPermuted,getSliceBeginCoords:()=>getSliceBeginCoords,getSliceSize:()=>getSliceSize,getUndoAxesPermutation:()=>getUndoAxesPermutation,log:()=>log22,mergeRealAndImagArrays:()=>mergeRealAndImagArrays,prepareAndValidate:()=>prepareAndValidate,prepareSplitSize:()=>prepareSplitSize,reshapeTensor:()=>reshapeTensor,segment_util:()=>segment_util_exports,shouldFuse:()=>shouldFuse,slice_util:()=>slice_util_exports,splitRealAndImagArrays:()=>splitRealAndImagArrays,tupleValuesAreOne:()=>tupleValuesAreOne,upcastType:()=>upcastType,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape,warn:()=>warn});function assertParamsConsistent(shapes,axis){let rank=shapes[0].length;shapes.forEach((shape,i)=>{assert(shape.length===rank,()=>`Error in concat${rank}D: rank of tensors[${i}] must be the same as the rank of the rest (${rank})`)}),assert(axis>=0&&axis`Error in concat${rank}D: axis must be between 0 and ${rank-1}.`);let firstShape=shapes[0];shapes.forEach((shape,i)=>{for(let r=0;r`Error in concat${rank}D: Shape of tensors[${i}] (${shape}) does not match the shape of the rest (${firstShape}) along the non-concatenated axis ${i}.`)})}function computeOutShape2(shapes,axis){let outputShape=shapes[0].slice();for(let i=1;i=blockShapeRank*2+1||i%2==1?permutedAfterBatch.push(i):permutedBeforeBatch.push(i);permuted.push(...permutedBeforeBatch),permuted.push(0),permuted.push(...permutedAfterBatch)}return permuted}function getReshapedPermuted(inputShape,blockShape,prod5,batchToSpace=!0){let reshapedPermuted=[];batchToSpace?reshapedPermuted.push(inputShape[0]/prod5):reshapedPermuted.push(inputShape[0]*prod5);for(let i=1;i"Number of splits must evenly divide the axis."),splitSizes=new Array(numOrSizeSplits).fill(x.shape[axis]/numOrSizeSplits);else{let numOfNegs=numOrSizeSplits.reduce((count2,value)=>(value===-1&&(count2+=1),count2),0);assert(numOfNegs<=1,()=>"There should be only one negative value in split array.");let negIndex=numOrSizeSplits.indexOf(-1);if(negIndex!==-1){let total=numOrSizeSplits.reduce((a,b)=>b>0?a+b:a);numOrSizeSplits[negIndex]=x.shape[axis]-total}assert(x.shape[axis]===numOrSizeSplits.reduce((a,b)=>a+b),()=>"The sum of sizes must match the size of the axis dimension."),splitSizes=numOrSizeSplits}return splitSizes}var segment_util_exports={};__export2(segment_util_exports,{collectGatherOpShapeInfo:()=>collectGatherOpShapeInfo,computeOutShape:()=>computeOutShape3,segOpComputeOptimalWindowSize:()=>segOpComputeOptimalWindowSize});function segOpComputeOptimalWindowSize(inSize,numSegments){let done=!1,res;for(inSize<=PARALLELIZE_THRESHOLD?(res=inSize,done=!0):res=nearestDivisor(inSize,Math.floor(Math.sqrt(inSize)));!done;)res>numSegments||res===inSize?done=!0:res=nearestDivisor(inSize,res+1);return res}function computeOutShape3(aShape,axis,numSegments){let outShape=[],rank=aShape.length;for(let dim=0;dimindicesRank))throw new Error(`Expect batchDims in the range of [-${indicesRank}, ${indicesRank}], but got ${batchDims}`);if(batchDims<0&&(batchDims+=indicesRank),batchDims>xRank)throw new Error(`batchDims (${batchDims}) must be less than rank(x) ( + the f you passed encloses all operations that lead from x to y.`)}function neg_(x){let inputs={x:convertToTensor(x,"x","neg")};return ENGINE.runKernel(Neg,inputs)}var neg=op({neg_});function softplus_(x){let inputs={x:convertToTensor(x,"x","softplus")};return ENGINE.runKernel(Softplus,inputs)}var softplus=op({softplus_});function logSigmoid_(x){let $x=convertToTensor(x,"x","logSigmoid");return customGrad(x2=>({value:neg(softplus(neg(x2))),gradFunc:dy=>mul(dy,sigmoid(neg(x2)))}))($x)}var logSigmoid=op({logSigmoid_});function max_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","max")},attrs={reductionIndices:axis,keepDims};return ENGINE.runKernel(Max,inputs,attrs)}var max=op({max_});function sub_(a,b){let $a=convertToTensor(a,"a","sub"),$b=convertToTensor(b,"b","sub");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Sub,inputs)}var sub=op({sub_});function sum_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","sum");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Sum,inputs,attrs)}var sum2=op({sum_});function logSoftmax_(logits,axis=-1){let $logits=convertToTensor(logits,"logits","logSoftmax");if(axis===-1&&(axis=$logits.rank-1),axis!==$logits.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and axis was ${axis}`);return customGrad((logits2,save)=>{let keepDims=!0,xMax=max(logits2,axis,!0),shifted=sub(logits2,xMax),value=sub(cast(shifted,"float32"),log2(sum2(exp(shifted),axis,keepDims)));return save([value]),{value,gradFunc:(dy,saved)=>{let[value2]=saved,keepDims2=!0,softmax6=exp(value2);return sub(dy,mul(sum2(dy,axis,keepDims2),softmax6))}}})($logits)}var logSoftmax=op({logSoftmax_});function axesAreInnerMostDims(axes,rank){for(let i=0;iaShape[dim]);return[outShape,reduceShape]}function expandShapeToKeepDim(shape,axes){let reduceSubShape=axes.map(x=>1);return combineLocations(shape,reduceSubShape,axes)}function assertAxesAreInnerMostDims(msg,axes,rank){assert(axesAreInnerMostDims(axes,rank),()=>`${msg} supports only inner-most axes for now. Got axes ${axes} and rank-${rank} input.`)}function getAxesPermutation(axes,rank){if(axesAreInnerMostDims(axes,rank))return null;let result=[];for(let i=0;iresult.push(axis)),result}function getUndoAxesPermutation(axes){return axes.map((axis,i)=>[i,axis]).sort((a,b)=>a[1]-b[1]).map(x=>x[0])}function getInnerMostAxes(numAxes,rank){let res=[];for(let i=rank-numAxes;i`Error in maxPool: input must be rank 4 but got rank ${x4D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D},attrs={filterSize,strides,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(MaxPool,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var maxPool=op({maxPool_});function maxPool3d_(x,filterSize=[1,1,1],strides,pad3,dimRoundingMode,dataFormat="NDHWC",dilations){dilations==null?dilations=[1,1,1]:deprecationWarn("dilations is deprecated, this field will be gone in v3.0.0.");let $x=convertToTensor(x,"x","maxPool3d"),x5D=$x,reshapedTo5D=!1;$x.rank===4&&(reshapedTo5D=!0,x5D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2],$x.shape[3]])),assert(x5D.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${x5D.rank}.`),assert(dataFormat==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${dataFormat}`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x5D},attrs={filterSize,strides,pad:pad3,dimRoundingMode,dataFormat,dilations},res=ENGINE.runKernel(MaxPool3D,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var maxPool3d=op({maxPool3d_});function maxPoolWithArgmax_(x,filterSize,strides,pad3,includeBatchInIndex=!1){let inputs={x:convertToTensor(x,"x","maxPoolWithArgmax")},attrs={filterSize,strides,pad:pad3,includeBatchInIndex},result=ENGINE.runKernel(MaxPoolWithArgmax,inputs,attrs);return{result:result[0],indexes:result[1]}}var maxPoolWithArgmax=op({maxPoolWithArgmax_});function maximum_(a,b){let $a=convertToTensor(a,"a","maximum"),$b=convertToTensor(b,"b","maximum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Maximum,inputs)}var maximum=op({maximum_});function mean_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","mean")},attrs={axis,keepDims};return ENGINE.runKernel(Mean,inputs,attrs)}var mean=op({mean_});function min_(x,axis=null,keepDims=!1){let inputs={x:convertToTensor(x,"x","min")},attrs={axis,keepDims};return ENGINE.runKernel(Min,inputs,attrs)}var min=op({min_});function minimum_(a,b){let $a=convertToTensor(a,"a","minimum"),$b=convertToTensor(b,"b","minimum");[$a,$b]=makeTypesMatch($a,$b),$a.dtype==="bool"&&($a=cast($a,"int32"),$b=cast($b,"int32")),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(Minimum,inputs)}var minimum=op({minimum_});function mirrorPad_(x,paddings,mode){assert(mode==="reflect"||mode==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${mode}.`);let $x=convertToTensor(x,"x","mirrorPad");if($x.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");assert(paddings.length===$x.rank,()=>`Padding doesn't match input. Must be ${$x.rank}. Got ${paddings.length}.`);let shapeOffset=mode==="reflect"?1:0;for(let i=0;i<$x.rank;i++)assert(paddings[i].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),assert(paddings[i][0]>=0&&paddings[i][0]<=$x.shape[i]-shapeOffset&&paddings[i][1]>=0&&paddings[i][1]<=$x.shape[i]-shapeOffset,()=>`Padding in dimension ${i} cannot be greater than or equal to ${$x.shape[i]-shapeOffset} or less than 0 for input of shape ${$x.shape}`);let attrs={paddings,mode},inputs={x:$x};return ENGINE.runKernel(MirrorPad,inputs,attrs)}var mirrorPad=op({mirrorPad_});function mod_(a,b){let $a=convertToTensor(a,"a","mod"),$b=convertToTensor(b,"b","mod");[$a,$b]=makeTypesMatch($a,$b);let inputs={a:$a,b:$b};return ENGINE.runKernel(Mod,inputs)}var mod=op({mod_});function square_(x){let $x=convertToTensor(x,"x","square"),attrs={};return ENGINE.runKernel("Square",{x:$x},attrs)}var square=op({square_});function moments_(x,axis=null,keepDims=!1){x=convertToTensor(x,"x","moments");let axes=parseAxisParam(axis,x.shape),xMean=mean(x,axes,keepDims),keepDimsShape=xMean.shape;keepDims||(keepDimsShape=expandShapeToKeepDim(xMean.shape,axes));let devSquared=square(sub(cast(x,"float32"),reshape(xMean,keepDimsShape))),variance=mean(devSquared,axes,keepDims);return{mean:xMean,variance}}var moments=op({moments_});function multiRNNCell_(lstmCells,data2,c,h){let $data=convertToTensor(data2,"data","multiRNNCell"),$c=convertToTensorArray(c,"c","multiRNNCell"),$h=convertToTensorArray(h,"h","multiRNNCell"),input2=$data,newStates=[];for(let i=0;i2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${origRank}`);seed=seed||Math.random();let inputs={logits:origRank===1?reshape($logits,[1,-1]):$logits},attrs={numSamples,seed,normalized},res=ENGINE.runKernel(Multinomial,inputs,attrs);return origRank===1?reshape(res,[res.size]):res}var multinomial=op({multinomial_});function notEqual_(a,b){let $a=convertToTensor(a,"a","notEqual"),$b=convertToTensor(b,"b","notEqual");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b};return ENGINE.runKernel(NotEqual,inputs)}var notEqual=op({notEqual_});function zeros(shape,dtype="float32"){if(dtype==="complex64"){let real4=zeros(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeZerosTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function ones2(shape,dtype="float32"){if(dtype==="complex64"){let real4=ones2(shape,"float32"),imag4=zeros(shape,"float32");return complex(real4,imag4)}let values=makeOnesTypedArray(sizeFromShape(shape),dtype);return ENGINE.makeTensor(values,shape,dtype)}function onesLike_(x){let inputs={x:convertToTensor(x,"x","onesLike")};return ENGINE.runKernel(OnesLike,inputs)}var onesLike=op({onesLike_});function outerProduct_(v1,v2){let $v1=convertToTensor(v1,"v1","outerProduct"),$v2=convertToTensor(v2,"v2","outerProduct");assert($v1.rank===1&&$v2.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${$v1.rank} and ${$v2.rank}.`);let v12D=reshape($v1,[-1,1]),v22D=reshape($v2,[1,-1]);return matMul(v12D,v22D)}var outerProduct=op({outerProduct_});function pad_(x,paddings,constantValue=0){let $x=convertToTensor(x,"x","pad");if($x.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let attrs={paddings,constantValue},inputs={x:$x};return ENGINE.runKernel(PadV2,inputs,attrs)}var pad=op({pad_});function pad1d_(x,paddings,constantValue=0){return assert(paddings.length===2,()=>"Invalid number of paddings. Must be length of 2."),pad(x,[paddings],constantValue)}var pad1d=op({pad1d_});function pad2d_(x,paddings,constantValue=0){return assert(paddings.length===2&&paddings[0].length===2&&paddings[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad2d=op({pad2d_});function pad3d_(x,paddings,constantValue=0){return assert(paddings.length===3&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad3d=op({pad3d_});function pad4d_(x,paddings,constantValue=0){return assert(paddings.length===4&&paddings[0].length===2&&paddings[1].length===2&&paddings[2].length===2&&paddings[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pad(x,paddings,constantValue)}var pad4d=op({pad4d_});function spaceToBatchND_(x,blockShape,paddings){let $x=convertToTensor(x,"x","spaceToBatchND");assert($x.rank>=1+blockShape.length,()=>`input rank ${$x.rank} should be > than [blockShape] ${blockShape.length}`),assert(paddings.length===blockShape.length,()=>`paddings.shape[0] ${paddings.length} must be equal to [blockShape] ${blockShape.length}`),assert($x.shape.reduce((a,b,i)=>i>0&&i<=blockShape.length?a&&(b+paddings[i-1][0]+paddings[i-1][1])%blockShape[i-1]==0:a,!0),()=>`input spatial dimensions ${$x.shape.slice(1)} with paddings ${paddings.toString()} must be divisible by blockShapes ${blockShape.toString()}`);let inputs={x:$x},attrs={blockShape,paddings};return ENGINE.runKernel(SpaceToBatchND,inputs,attrs)}var spaceToBatchND=op({spaceToBatchND_});function pool_(input2,windowShape,poolingType,pad3,dilations,strides){dilations==null&&(dilations=[1,1]),strides==null&&(strides=1),pad3===0&&(pad3="valid");let $x=convertToTensor(input2,"x","maxPool"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`);let convInfo=computePool2DInfo(x4D.shape,windowShape,strides,dilations,pad3),dilation=[convInfo.dilationHeight,convInfo.dilationWidth],basePadding;pad3==="same"?basePadding=withSpaceToBatchBasePaddings([convInfo.filterHeight,convInfo.filterWidth],dilation):basePadding=[[0,0],[0,0]];let isDilationOne=dilation[0]===1&&dilation[1]===1,[adjustedPadding,adjustedCrops]=requiredSpaceToBatchPaddings([convInfo.inHeight,convInfo.inWidth],dilation,basePadding),convertedPad=isDilationOne?pad3:"valid",convertedX=isDilationOne?x4D:spaceToBatchND(x4D,dilation,adjustedPadding),y=(poolingType==="avg"?()=>avgPool(convertedX,windowShape,strides,convertedPad):()=>maxPool(convertedX,windowShape,strides,convertedPad))(),res=isDilationOne?y:batchToSpaceND(y,dilation,adjustedCrops);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}function requiredSpaceToBatchPaddings(inputShape,blockShape,basePadding){let padStart=basePadding.map(b=>b[0]),origPadEnd=basePadding.map(b=>b[1]),fullInputShape=inputShape.concat(padStart,origPadEnd),padEndExtra=blockShape.map((b,i)=>(b-fullInputShape[i]%b)%b),padEnd=origPadEnd.map((s,i)=>s+padEndExtra[i]),paddings=blockShape.map((_,i)=>[padStart[i],padEnd[i]]),crops=blockShape.map((_,i)=>[0,padEndExtra[i]]);return[paddings,crops]}function withSpaceToBatchBasePaddings(filterShape,dilation){let padExtraShape=filterShape.map((s,i)=>s+(s-1)*(dilation[i]-1)).map(s=>s-1),padExtraStart=padExtraShape.map(s=>Math.floor(s/2)),padExtraEnd=padExtraShape.map((s,i)=>s-padExtraStart[i]);return padExtraShape.map((_,i)=>[padExtraStart[i],padExtraEnd[i]])}var pool=op({pool_});function pow_(base2,exp4){let $base=convertToTensor(base2,"base","pow"),$exp=convertToTensor(exp4,"exp","pow");[$base,$exp]=makeTypesMatch($base,$exp);let inputs={a:$base,b:$exp};return ENGINE.runKernel(Pow,inputs)}var pow=op({pow_});function prelu_(x,alpha){let $x=convertToTensor(x,"x","prelu"),$alpha=convertToTensor(alpha,"alpha","prelu"),inputs={x:$x,alpha:$alpha};return ENGINE.runKernel(Prelu,inputs)}var prelu=op({prelu_});function prod_(x,axis=null,keepDims=!1){let $x=convertToTensor(x,"x","prod");$x.dtype==="bool"&&($x=cast($x,"int32"));let inputs={x:$x},attrs={axis,keepDims};return ENGINE.runKernel(Prod,inputs,attrs)}var prod=op({prod_});function rand_(shape,randFunction,dtype){let size=sizeFromShape(shape),values=null;if(dtype==null||dtype==="float32")values=new Float32Array(size);else if(dtype==="int32")values=new Int32Array(size);else if(dtype==="bool")values=new Uint8Array(size);else throw new Error(`Unknown data type ${dtype}`);for(let i=0;i=1||s===0);let mul2=Math.sqrt(-2*Math.log(s)/s);resultX=this.mean+this.stdDev*v1*mul2,resultY=this.mean+this.stdDev*v2*mul2,(!this.truncated||this.isValidTruncated(resultX))&&(isValid=!0)}return(!this.truncated||this.isValidTruncated(resultY))&&(this.nextVal=this.convertValue(resultY)),this.convertValue(resultX)}convertValue(value){return this.dtype==null||this.dtype==="float32"?value:Math.round(value)}isValidTruncated(value){return value<=this.upper&&value>=this.lower}},RandGamma=class{constructor(alpha,beta,dtype,seed){this.alpha=alpha,this.beta=1/beta,this.dtype=dtype;let seedValue=seed||Math.random();this.randu=seedrandom.alea(seedValue.toString()),this.randn=new MPRandGauss(0,1,dtype,!1,this.randu()),alpha<1?this.d=alpha+2/3:this.d=alpha-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let x2,v0,v1,x,u,v;for(;;){do x=this.randn.nextValue(),v=1+this.c*x;while(v<=0);if(v*=v*v,x2=x*x,v0=1-.331*x2*x2,v1=.5*x2+this.d*(1-v+Math.log(v)),u=this.randu(),uthis.dtype==null||this.dtype==="float32",this.min=min6,this.range=max6-min6,this.dtype=dtype,seed==null&&(seed=Math.random()),typeof seed=="number"&&(seed=seed.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${min6} - ${max6} <= 1 and dtype is not float`);this.random=seedrandom.alea(seed)}convertValue(value){return this.canReturnFloat()?value:Math.round(value)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function randomGamma_(shape,alpha,beta=1,dtype="float32",seed){if(beta==null&&(beta=1),dtype==null&&(dtype="float32"),dtype!=="float32"&&dtype!=="int32")throw new Error(`Unsupported data type ${dtype}`);let rgamma=new RandGamma(alpha,beta,dtype,seed),res=buffer(shape,dtype);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${$x.rank}.`),reverse($x,0)}var reverse1d=op({reverse1d_});function reverse2d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse2d=op({reverse2d_});function reverse3d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse3d=op({reverse3d_});function reverse4d_(x,axis){let $x=convertToTensor(x,"x","reverse");return assert($x.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${$x.rank}.`),reverse($x,axis)}var reverse4d=op({reverse4d_});function round_(x){let inputs={x:convertToTensor(x,"x","round")};return ENGINE.runKernel(Round,inputs)}var round2=op({round_});function rsqrt_(x){let inputs={x:convertToTensor(x,"x","rsqrt")};return ENGINE.runKernel(Rsqrt,inputs)}var rsqrt=op({rsqrt_});function scalar(value,dtype){if((isTypedArray(value)&&dtype!=="string"||Array.isArray(value))&&dtype!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(dtype==="string"&&isTypedArray(value)&&!(value instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return makeTensor(value,[],[],dtype)}function selu_(x){let inputs={x:convertToTensor(x,"x","selu")};return ENGINE.runKernel(Selu,inputs)}var selu=op({selu_});function separableConv2d_(x,depthwiseFilter,pointwiseFilter,strides,pad3,dilation=[1,1],dataFormat="NHWC"){let $x=convertToTensor(x,"x","separableConv2d"),$depthwiseFilter=convertToTensor(depthwiseFilter,"depthwiseFilter","separableConv2d"),$pointwiseFilter=convertToTensor(pointwiseFilter,"pointwiseFilter","separableConv2d"),x4D=$x,reshapedTo4D=!1;if($x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),dataFormat==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");assert(x4D.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($depthwiseFilter.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${$depthwiseFilter.rank}.`),assert($pointwiseFilter.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[0]}.`),assert($pointwiseFilter.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${$pointwiseFilter.shape[1]}.`);let inChannels=$depthwiseFilter.shape[2],channelMultiplier=$depthwiseFilter.shape[3];assert($pointwiseFilter.shape[2]===inChannels*channelMultiplier,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${inChannels*channelMultiplier}, but got ${$pointwiseFilter.shape[2]}.`);let depthwise=depthwiseConv2d(x4D,$depthwiseFilter,strides,pad3,dataFormat,dilation),res=conv2d(depthwise,$pointwiseFilter,1,"valid",dataFormat);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var separableConv2d=op({separableConv2d_});async function setdiff1dAsync_(x,y){let $x=convertToTensor(x,"x","setdiff1d"),$y=convertToTensor(y,"y","setdiff1d");assert($x.dtype===$y.dtype,()=>`x and y should have the same dtype, but got x (${$x.dtype}) and y (${$y.dtype}).`),assert($x.rank===1,()=>`x should be 1D tensor, but got x (${$x.shape}).`),assert($y.rank===1,()=>`y should be 1D tensor, but got y (${$y.shape}).`);let xVals=await $x.data(),yVals=await $y.data(),ySet=new Set(yVals),outputSize=0;for(let i=0;i`slice1d expects a rank-1 tensor, but got a rank-${$x.rank} tensor`),slice($x,[begin],[size])}var slice1d=op({slice1d_});function slice2d_(x,begin,size){let $x=convertToTensor(x,"x","slice2d");return assert($x.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice2d=op({slice2d_});function slice3d_(x,begin,size){let $x=convertToTensor(x,"x","slice3d");return assert($x.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice3d=op({slice3d_});function slice4d_(x,begin,size){let $x=convertToTensor(x,"x","slice4d");return assert($x.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${$x.rank} tensor`),slice($x,begin,size)}var slice4d=op({slice4d_});function softmax_(logits,dim=-1){let $logits=convertToTensor(logits,"logits","softmax","float32");if(dim===-1&&(dim=$logits.rank-1),dim!==$logits.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${$logits.rank} and dim was ${dim}`);let inputs={logits:$logits},attrs={dim};return ENGINE.runKernel(Softmax,inputs,attrs)}var softmax=op({softmax_});function fft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(FFT,inputs)}var fft=op({fft_});function ifft_(input2){assert(input2.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${input2.dtype}.`);let inputs={input:input2};return ENGINE.runKernel(IFFT,inputs)}var ifft=op({ifft_});function irfft_(input2){let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,ret;if(innerDimensionSize<=2){let complexInput=reshape(input2,[batch,innerDimensionSize]);ret=ifft(complexInput)}else{let outputShape=[batch,2*(innerDimensionSize-1)],realInput=reshape(real(input2),[batch,innerDimensionSize]),imagInput=reshape(imag(input2),[batch,innerDimensionSize]),realConjugate=reverse(slice(realInput,[0,1],[batch,innerDimensionSize-2]),1),imagConjugate=mul(reverse(slice(imagInput,[0,1],[batch,innerDimensionSize-2]),1),scalar(-1)),r=concat([realInput,realConjugate],1),i=concat([imagInput,imagConjugate],1),complexInput=reshape(complex(r,i),[outputShape[0],outputShape[1]]);ret=ifft(complexInput)}if(ret=real(ret),input2.rank===3&&input2.shape[0]!==0){let temp=ret,batch2=input2.shape[0];ret=reshape(ret,[batch2,ret.shape[0]/batch2,ret.shape[1]]),temp.dispose()}return ret}var irfft=op({irfft_});function split_(x,numOrSizeSplits,axis=0){let inputs={x:convertToTensor(x,"x","split")},attr={numOrSizeSplits,axis};return ENGINE.runKernel(SplitV,inputs,attr)}var split=op({split_});function rfft_(input2,fftLength){assert(input2.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${input2.dtype}`);let innerDimensionSize=input2.shape[input2.shape.length-1],batch=input2.size/innerDimensionSize,adjustedInput;if(fftLength!=null&&fftLength0),size=input2.shape.map(v=>v);size[input2.shape.length-1]=fftLength,adjustedInput=slice(input2,begin,size),innerDimensionSize=fftLength}else if(fftLength!=null&&fftLength>innerDimensionSize){let zerosShape=input2.shape.map(v=>v);zerosShape[input2.shape.length-1]=fftLength-innerDimensionSize,adjustedInput=concat([input2,zeros(zerosShape)],input2.shape.length-1),innerDimensionSize=fftLength}else adjustedInput=input2;let zerosInput=zerosLike(adjustedInput),complexInput=reshape(complex(adjustedInput,zerosInput),[batch,innerDimensionSize]),ret=fft(complexInput),half=Math.floor(innerDimensionSize/2)+1,realValues=real(ret),imagValues=imag(ret),realComplexConjugate=split(realValues,[half,innerDimensionSize-half],realValues.shape.length-1),imagComplexConjugate=split(imagValues,[half,innerDimensionSize-half],imagValues.shape.length-1),outputShape=adjustedInput.shape.slice();return outputShape[adjustedInput.shape.length-1]=half,reshape(complex(realComplexConjugate[0],imagComplexConjugate[0]),outputShape)}var rfft=op({rfft_});function sqrt_(x){let inputs={x:convertToTensor(x,"x","sqrt")};return ENGINE.runKernel(Sqrt,inputs)}var sqrt=op({sqrt_});function squaredDifference_(a,b){let $a=convertToTensor(a,"a","squaredDifference"),$b=convertToTensor(b,"b","squaredDifference");[$a,$b]=makeTypesMatch($a,$b),assertAndGetBroadcastShape($a.shape,$b.shape);let inputs={a:$a,b:$b},attrs={};return ENGINE.runKernel(SquaredDifference,inputs,attrs)}var squaredDifference=op({squaredDifference_});function squeeze_(x,axis){let $x=convertToTensor(x,"x","squeeze");return reshape($x,squeezeShape($x.shape,axis).newShape)}var squeeze=op({squeeze_});function stack_(tensors,axis=0){let $tensors=convertToTensorArray(tensors,"tensors","stack","string_or_numeric");assert($tensors.length>=1,()=>"Pass at least one tensor to tf.stack"),$tensors.length>0&&assert(axis<=$tensors[0].rank,()=>"Axis must be <= rank of the tensor");let inputs=$tensors,attrs={axis};return ENGINE.runKernel(Pack,inputs,attrs)}var stack=op({stack_});function step_(x,alpha=0){let inputs={x:convertToTensor(x,"x","step")},attrs={alpha};return ENGINE.runKernel(Step,inputs,attrs)}var step=op({step_});function stridedSlice_(x,begin,end,strides,beginMask=0,endMask=0,ellipsisMask=0,newAxisMask=0,shrinkAxisMask=0){let inputs={x:convertToTensor(x,"x","stridedSlice")},attrs={begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask};return ENGINE.runKernel(StridedSlice,inputs,attrs)}var stridedSlice=op({stridedSlice_});function tan_(x){let inputs={x:convertToTensor(x,"x","tan")};return ENGINE.runKernel(Tan,inputs)}var tan=op({tan_});function tensor1d(values,dtype){assertNonNull(values);let inferredShape=inferShape(values,dtype);if(inferredShape.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return makeTensor(values,null,inferredShape,dtype)}function tensor2d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==2&&inferredShape.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return makeTensor(values,shape,inferredShape,dtype)}function tensor4d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==4&&inferredShape.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor5d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==5&&inferredShape.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return makeTensor(values,shape,inferredShape,dtype)}function tensor6d(values,shape,dtype){if(assertNonNull(values),shape!=null&&shape.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let inferredShape=inferShape(values,dtype);if(inferredShape.length!==6&&inferredShape.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(inferredShape.length===1&&shape==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return shape=shape||inferredShape,makeTensor(values,shape,inferredShape,dtype)}function topk_(x,k=1,sorted=!0){let $x=convertToTensor(x,"x","topk");if($x.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let lastDim=$x.shape[$x.shape.length-1];if(k>lastDim)throw new Error(`'k' passed to topk() must be <= the last dimension (${lastDim}) but got ${k}`);let inputs={x:$x},attrs={k,sorted},[values,indices]=ENGINE.runKernel(TopK,inputs,attrs);return{values,indices}}var topk=op({topk_});function truncatedNormal_(shape,mean4=0,stdDev=1,dtype,seed){if(dtype!=null&&dtype==="bool")throw new Error("Unsupported data type $ { dtype }");let randGauss=new MPRandGauss(mean4,stdDev,dtype,!0,seed),res=buffer(shape,dtype);for(let i=0;i0,()=>"The input tensor must be at least 1D");let inputs={x:$x},attrs={axis},[values,indices]=ENGINE.runKernel(Unique,inputs,attrs);return{values,indices}}var unique=op({unique_});function unsortedSegmentSum_(x,segmentIds,numSegments){let $x=convertToTensor(x,"x","unsortedSegmentSum"),$segmentIds=convertToTensor(segmentIds,"segmentIds","unsortedSegmentSum","int32");assert(isInt(numSegments),()=>"numSegments must be of dtype int");let inputs={x:$x,segmentIds:$segmentIds},attrs={numSegments};return ENGINE.runKernel(UnsortedSegmentSum,inputs,attrs)}var unsortedSegmentSum=op({unsortedSegmentSum_});function unstack_(x,axis=0){let $x=convertToTensor(x,"x","unstack","string_or_numeric");assert(axis>=-$x.shape.length&&axis<$x.shape.length,()=>`Axis = ${axis} is not in [-${$x.shape.length}, ${$x.shape.length})`);let inputs={value:$x},attrs={axis};return ENGINE.runKernel(Unpack,inputs,attrs)}var unstack=op({unstack_});function variable(initialValue,trainable=!0,name,dtype){return ENGINE.makeVariable(initialValue,trainable,name,dtype)}function whereImpl(condShape,condVals){let indices=[];for(let i=0;i0,()=>"mask cannot be scalar"),assertShapesMatch(tensorShape.slice(axisFrom,axisFrom+maskDim),$mask.shape,"mask's shape must match the first K dimensions of tensor's shape,");let leadingSize=1;for(let i=axisFrom;i"Shape mismatch in v and x");let one=scalar(1),oneMinusDecay=sub(one,$decay),update=mul(sub($x,$v),oneMinusDecay);if(zeroDebias){assert(step4!=null,()=>"When using zeroDebias: true, step is required.");let $step=convertToTensor(step4,"step","movingAverage");update=div(update,sub(one,pow($decay,$step)))}return add2($v,update)}var movingAverage=op({movingAverage_});function scatterND_(indices,updates,shape){let $indices=convertToTensor(indices,"indices","scatterND","int32"),$updates=convertToTensor(updates,"updates","scatterND");validateInput($updates,$indices,shape);let inputs={indices:$indices,updates:$updates},attrs={shape};return ENGINE.runKernel(ScatterNd,inputs,attrs)}var scatterND=op({scatterND_});function validateInput2(sparseIndices,sparseValues,outputShape,defaultValues){if(sparseIndices.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${sparseIndices.dtype}.`);if(sparseIndices.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${sparseIndices.shape}.`);let numElems=sparseIndices.rank>0?sparseIndices.shape[0]:1,numDims=sparseIndices.rank>1?sparseIndices.shape[1]:1;if(outputShape.length!==numDims)throw new Error(`outputShape has incorrect number of elements:, ${outputShape.length}, should be: ${numDims}.`);let numValues=sparseValues.size;if(!(sparseValues.rank===0||sparseValues.rank===1&&numValues===numElems))throw new Error(`sparseValues has incorrect shape ${sparseValues.shape}, should be [] or [${numElems}]`);if(sparseValues.dtype!==defaultValues.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function sparseToDense_(sparseIndices,sparseValues,outputShape,defaultValue=0){let $sparseIndices=convertToTensor(sparseIndices,"sparseIndices","sparseToDense","int32"),$sparseValues=convertToTensor(sparseValues,"sparseValues","sparseToDense"),$defaultValue=convertToTensor(defaultValue,"defaultValue","sparseToDense",$sparseValues.dtype);validateInput2($sparseIndices,$sparseValues,outputShape,$defaultValue);let inputs={sparseIndices:$sparseIndices,sparseValues:$sparseValues,defaultValue:$defaultValue},attrs={outputShape};return ENGINE.runKernel(SparseToDense,inputs,attrs)}var sparseToDense=op({sparseToDense_});function gatherND_(x,indices){let $indices=convertToTensor(indices,"indices","gatherND","int32"),inputs={params:convertToTensor(x,"x","gatherND"),indices:$indices};return ENGINE.runKernel(GatherNd,inputs)}var gatherND=op({gatherND_});function getNoiseShape(x,noiseShape){if(noiseShape==null)return x.shape.slice();if(arraysEqual(x.shape,noiseShape))return noiseShape;if(x.shape.length===noiseShape.length){let newDimension=[];for(let i=0;i`x has to be a floating point tensor since it's going to be scaled, but got a ${$x.dtype} tensor instead.`),assert(rate>=0&&rate<1,()=>`rate must be a float in the range [0, 1), but got ${rate}.`),rate===0)return x instanceof Tensor?$x.clone():$x;let $noiseShape=getNoiseShape($x,noiseShape),keepProb=1-rate,multiplier=div(floor(add2(randomUniform($noiseShape,0,1,"float32",seed),keepProb)),keepProb);return mul($x,multiplier)}var dropout=op({dropout_});function enclosingPowerOfTwo(value){return Math.floor(Math.pow(2,Math.ceil(Math.log(value)/Math.log(2))))}function cosineWindow(windowLength,a,b){let even=1-windowLength%2,newValues=new Float32Array(windowLength);for(let i=0;i1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${$predictions.rank}`),assert($predictions.rank-1===$targets.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${$predictions.rank} and targets rank ${$targets.rank}`),assertShapesMatch($predictions.shape.slice(0,$predictions.shape.length-1),$targets.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let lastDim=$predictions.shape[$predictions.shape.length-1];assert(k>0&&k<=lastDim,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${lastDim}), but got ${k}`);let predictionsVals=await $predictions.data(),targetsVals=await $targets.data(),[batch,size]=[predictionsVals.length/lastDim,lastDim],precision3=getTypedArrayFromDType("bool",batch);for(let b=0;bb2.value-a.value),precision3[b]=0;for(let i=0;iconv2d2,depthwiseConv2d:()=>depthwiseConv2d2,matMul:()=>matMul2});function conv2DBackpropFilter_(x,dy,filterShape,strides,pad3,dataFormat="NHWC",dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]])),assert(x4D.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${x4D.shape}.`),assert(dy4D.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${dy4D.shape}.`),assert(filterShape.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${filterShape}.`);let inDepth=dataFormat==="NHWC"?x4D.shape[3]:x4D.shape[1],outDepth=dataFormat==="NHWC"?dy4D.shape[3]:dy4D.shape[1];assert(inDepth===filterShape[2],()=>`Error in conv2dDerFilter: depth of input ${inDepth}) must match input depth in filter (${filterShape[2]}.`),assert(outDepth===filterShape[3],()=>`Error in conv2dDerFilter: depth of dy (${outDepth}) must match output depth for filter (${filterShape[3]}).`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dataFormat,dimRoundingMode,filterShape};return ENGINE.runKernel(Conv2DBackpropFilter,inputs,attrs)}var conv2DBackpropFilter=op({conv2DBackpropFilter_});function getFusedDyActivation(dy,y,activation2){if(activation2==null||activation2==="linear")return dy;if(activation2==="relu")return mul(dy,step(y));throw new Error(`Cannot compute gradient for fused activation ${activation2}.`)}function getFusedBiasGradient(bias,dyActivation){let res=dyActivation,reduceAxes=getReductionAxes(bias.shape,dyActivation.shape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,bias.shape)}function applyActivation(x,activation2,preluActivationWeights,leakyreluAlpha){if(activation2==="linear")return x;if(activation2==="relu")return relu(x);if(activation2==="elu")return elu(x);if(activation2==="relu6")return relu6(x);if(activation2==="prelu")return prelu(x,preluActivationWeights);if(activation2==="leakyrelu")return leakyRelu(x,leakyreluAlpha);throw new Error(`Unknown fused activation ${activation2}.`)}var shouldFuse=(gradientDepth,activation2)=>!(gradientDepth>0)||activation2==="linear";function fusedConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(activation2=activation2||"linear",shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=conv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","conv2d"),$filter=convertToTensor(filter,"filter","conv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${$filter.rank}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in conv2d: depth of input (${x4D.shape[3]}) must match input depth for filter ${$filter.shape[2]}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),assert(dataFormat==="NHWC",()=>`Error in conv2d: got dataFormat of ${dataFormat} but only NHWC is currently supported.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused conv2d"));let grad2=(dy,saved)=>{let[$filter2,x4D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2);assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`);let xDer=conv2DBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3),filterDer=conv2DBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3),der=[xDer,filterDer];if($bias2!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);der.push(biasDer)}return der},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var conv2d2=op({fusedConv2d_});function depthwiseConv2dNativeBackpropFilter_(x,dy,filterShape,strides,pad3,dilations=[1,1],dimRoundingMode){let x4D=x;x.rank===3&&(x4D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2]]));let dy4D=dy;dy4D.rank===3&&(dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={x:x4D,dy:dy4D},attrs={strides,pad:pad3,dimRoundingMode,dilations,filterShape};return ENGINE.runKernel(DepthwiseConv2dNativeBackpropFilter,inputs,attrs)}var depthwiseConv2dNativeBackpropFilter=op({depthwiseConv2dNativeBackpropFilter_});function depthwiseConv2dNativeBackpropInput_(xShape,dy,filter,strides,pad3,dilations=[1,1],dimRoundingMode){let dy4D=dy,reshapedTo4D=!1;dy.rank===3&&(reshapedTo4D=!0,dy4D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2]]));let inputs={dy:dy4D,filter},attrs={strides,pad:pad3,dimRoundingMode,dilations,inputShape:xShape},res=ENGINE.runKernel(DepthwiseConv2dNativeBackpropInput,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var depthwiseConv2dNativeBackpropInput=op({depthwiseConv2dNativeBackpropInput_});function fusedDepthwiseConv2d_({x,filter,strides,pad:pad3,dataFormat="NHWC",dilations=[1,1],dimRoundingMode,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=depthwiseConv2d(x,filter,strides,pad3,dataFormat,dilations,dimRoundingMode);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $x=convertToTensor(x,"x","depthwiseConv2d"),$filter=convertToTensor(filter,"filter","depthwiseConv2d"),x4D=$x,reshapedTo4D=!1;$x.rank===3&&(reshapedTo4D=!0,x4D=reshape($x,[1,$x.shape[0],$x.shape[1],$x.shape[2]])),assert(x4D.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${x4D.rank}.`),assert($filter.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${$filter.rank}.`),assert(x4D.shape[3]===$filter.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${x4D.shape[3]}) must match the inChannels dimension in filter ${$filter.shape[2]}.`),dilations==null&&(dilations=[1,1]),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let convInfo=computeConv2DInfo(x4D.shape,$filter.shape,strides,dilations,pad3,dimRoundingMode,!0),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused conv2d"),[$bias]=makeTypesMatch($bias,$x),assertAndGetBroadcastShape(convInfo.outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused depthwiseConv2d"));let grad2=(dy,saved)=>{assert(tupleValuesAreOne(dilations),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${dilations}'`);let[$filter2,x4D2,y,bias2]=saved,dyActivation=getFusedDyActivation(dy,y,activation2),xDer=depthwiseConv2dNativeBackpropInput(x4D2.shape,dyActivation,$filter2,strides,pad3,dilations,dimRoundingMode),filterDer=depthwiseConv2dNativeBackpropFilter(x4D2,dyActivation,$filter2.shape,strides,pad3,dilations,dimRoundingMode);if(bias2!=null){let biasDer=getFusedBiasGradient($bias,dyActivation);return[xDer,filterDer,biasDer]}return[xDer,filterDer]},inputs={x:x4D,filter:$filter,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={strides,pad:pad3,dataFormat,dilations,dimRoundingMode,activation:activation2,leakyreluAlpha};return bias==null?customGrad((x4D2,filter2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter):customGrad((x4D2,filter2,bias2,save)=>{let res=ENGINE.runKernel(FusedDepthwiseConv2D,inputs,attrs);return save([filter2,x4D2,res,bias2]),reshapedTo4D&&(res=reshape(res,[res.shape[1],res.shape[2],res.shape[3]])),{value:res,gradFunc:grad2}})(x4D,$filter,$bias)}var depthwiseConv2d2=op({fusedDepthwiseConv2d_});function fusedMatMul_({a,b,transposeA=!1,transposeB=!1,bias,activation:activation2="linear",preluActivationWeights,leakyreluAlpha}){if(shouldFuse(ENGINE.state.gradientDepth,activation2)===!1){let result=matMul(a,b,transposeA,transposeB);return bias!=null&&(result=add2(result,bias)),applyActivation(result,activation2,preluActivationWeights,leakyreluAlpha)}let $a=convertToTensor(a,"a","fused matMul"),$b=convertToTensor(b,"b","fused matMul");[$a,$b]=makeTypesMatch($a,$b);let innerShapeA=transposeA?$a.shape[$a.rank-2]:$a.shape[$a.rank-1],innerShapeB=transposeB?$b.shape[$b.rank-1]:$b.shape[$b.rank-2],outerShapeA=transposeA?$a.shape[$a.rank-1]:$a.shape[$a.rank-2],outerShapeB=transposeB?$b.shape[$b.rank-2]:$b.shape[$b.rank-1],outerDimsA=$a.shape.slice(0,-2),outerDimsB=$b.shape.slice(0,-2),batchDimA=sizeFromShape(outerDimsA),batchDimB=sizeFromShape(outerDimsB);assert($a.rank>=2&&$b.rank>=2&&$a.rank===$b.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${$a.rank} and ${$b.rank}.`),assert(arraysEqual(outerDimsA,outerDimsB),()=>`Error in fused matMul: outer dimensions (${outerDimsA}) and (${outerDimsB}) of Tensors with shapes ${$a.shape} and ${$b.shape} must match.`),assert(innerShapeA===innerShapeB,()=>`Error in fused matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${$a.shape} and ${$b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let outShape=$a.shape.slice(0,-2).concat([outerShapeA,outerShapeB]),a3D=transposeA?reshape($a,[batchDimA,innerShapeA,outerShapeA]):reshape($a,[batchDimA,outerShapeA,innerShapeA]),b3D=transposeB?reshape($b,[batchDimB,outerShapeB,innerShapeB]):reshape($b,[batchDimB,innerShapeB,outerShapeB]),$bias;bias!=null&&($bias=convertToTensor(bias,"bias","fused matMul"),[$bias]=makeTypesMatch($bias,$a),assertAndGetBroadcastShape(outShape,$bias.shape));let $preluActivationWeights;preluActivationWeights!=null&&($preluActivationWeights=convertToTensor(preluActivationWeights,"prelu weights","fused matMul"));let grad2=(dy,saved)=>{let[a3D2,b3D2,y,$bias2]=saved,dyActivation=getFusedDyActivation(reshape(dy,y.shape),y,activation2),aDer,bDer;if(!transposeA&&!transposeB?(aDer=matMul(dyActivation,b3D2,!1,!0),bDer=matMul(a3D2,dyActivation,!0,!1)):!transposeA&&transposeB?(aDer=matMul(dyActivation,b3D2,!1,!1),bDer=matMul(dyActivation,a3D2,!0,!1)):transposeA&&!transposeB?(aDer=matMul(b3D2,dyActivation,!1,!0),bDer=matMul(a3D2,dyActivation,!1,!1)):(aDer=matMul(b3D2,dyActivation,!0,!0),bDer=matMul(dyActivation,a3D2,!0,!0)),bias!=null){let biasDer=getFusedBiasGradient($bias2,dyActivation);return[aDer,bDer,biasDer]}else return[aDer,bDer]},inputs={a:a3D,b:b3D,bias:$bias,preluActivationWeights:$preluActivationWeights},attrs={transposeA,transposeB,activation:activation2,leakyreluAlpha};return bias==null?customGrad((a3D2,b3D2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D):customGrad((a3D2,b3D2,$bias2,save)=>{let res=ENGINE.runKernel(_FusedMatMul,inputs,attrs);return save([a3D2,b3D2,res,$bias2]),{value:reshape(res,outShape),gradFunc:grad2}})(a3D,b3D,$bias)}var matMul2=op({fusedMatMul_});function hammingWindow_(windowLength){return cosineWindow(windowLength,.54,.46)}var hammingWindow=op({hammingWindow_});function hannWindow_(windowLength){return cosineWindow(windowLength,.5,.5)}var hannWindow=op({hannWindow_});function frame_(signal2,frameLength,frameStep,padEnd=!1,padValue=0){let start=0,output=[];for(;start+frameLength<=signal2.size;)output.push(slice(signal2,start,frameLength)),start+=frameStep;if(padEnd)for(;start`Error in cropAndResize: image must be rank 4,but got rank ${$image.rank}.`),assert($boxes.rank===2&&$boxes.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${numBoxes},4] but had shape ${$boxes.shape}.`),assert($boxInd.rank===1&&$boxInd.shape[0]===numBoxes,()=>`Error in cropAndResize: boxInd must be have size [${numBoxes}] but had shape ${$boxes.shape}.`),assert(cropSize.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${cropSize.length}.`),assert(cropSize[0]>=1&&cropSize[1]>=1,()=>`cropSize must be atleast [1,1], but was ${cropSize}`),assert(method==="bilinear"||method==="nearest",()=>`method must be bilinear or nearest, but was ${method}`);let inputs={image:$image,boxes:$boxes,boxInd:$boxInd},attrs={method,extrapolationValue,cropSize};return ENGINE.runKernel(CropAndResize,inputs,attrs)}var cropAndResize=op({cropAndResize_});function flipLeftRight_(image3){let $image=convertToTensor(image3,"image","flipLeftRight","float32");assert($image.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image};return ENGINE.runKernel(FlipLeftRight,inputs,{})}var flipLeftRight=op({flipLeftRight_});function rotateWithOffset_(image3,radians,fillValue=0,center=.5){let $image=convertToTensor(image3,"image","rotateWithOffset","float32");assert($image.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${$image.rank}.`);let inputs={image:$image},attrs={radians,fillValue,center};return ENGINE.runKernel(RotateWithOffset,inputs,attrs)}var rotateWithOffset=op({rotateWithOffset_});function nonMaxSuppSanityCheck(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){iouThreshold==null&&(iouThreshold=.5),scoreThreshold==null&&(scoreThreshold=Number.NEGATIVE_INFINITY),softNmsSigma==null&&(softNmsSigma=0);let numBoxes=boxes.shape[0];return maxOutputSize=Math.min(maxOutputSize,numBoxes),assert(0<=iouThreshold&&iouThreshold<=1,()=>`iouThreshold must be in [0, 1], but was '${iouThreshold}'`),assert(boxes.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${boxes.rank}'`),assert(boxes.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${boxes.shape[1]}`),assert(scores.rank===1,()=>"scores must be a 1D tensor"),assert(scores.shape[0]===numBoxes,()=>`scores has incompatible shape with boxes. Expected ${numBoxes}, but was ${scores.shape[0]}`),assert(0<=softNmsSigma&&softNmsSigma<=1,()=>`softNmsSigma must be in [0, 1], but was '${softNmsSigma}'`),{maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}function nonMaxSuppression_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let attrs={maxOutputSize,iouThreshold,scoreThreshold};return ENGINE.runKernel(NonMaxSuppressionV3,{boxes:$boxes,scores:$scores},attrs)}var nonMaxSuppression=op({nonMaxSuppression_});function binaryInsert(arr,element,comparator){let index=binarySearch(arr,element,comparator),insertionPoint=index<0?-(index+1):index;arr.splice(insertionPoint,0,element)}function binarySearch(arr,target,comparator){return binarySearch_(arr,target,comparator||defaultComparator)}function defaultComparator(a,b){return a>b?1:a>>1);let compareResult=comparator(target,arr[middle]);compareResult>0?left=middle+1:(right=middle,found=!compareResult)}return found?left:-left-1}function nonMaxSuppressionV3Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0)}function nonMaxSuppressionV4Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,0,!1,padToMaxOutputSize,!0)}function nonMaxSuppressionV5Impl(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma){return nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,!0)}function nonMaxSuppressionImpl_(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma,returnScoresTensor=!1,padToMaxOutputSize=!1,returnValidOutputs=!1){let candidates=[];for(let i=0;iscoreThreshold&&candidates.push({score:scores[i],boxIndex:i,suppressBeginIndex:0});candidates.sort(ascendingComparator);let scale2=softNmsSigma>0?-.5/softNmsSigma:0,selectedIndices=[],selectedScores=[];for(;selectedIndices.length0;){let candidate=candidates.pop(),{score:originalScore,boxIndex,suppressBeginIndex}=candidate;if(originalScore=suppressBeginIndex;--j){let iou=intersectionOverUnion(boxes,boxIndex,selectedIndices[j]);if(iou>=iouThreshold){ignoreCandidate=!0;break}if(candidate.score=candidate.score*suppressWeight(iouThreshold,scale2,iou),candidate.score<=scoreThreshold)break}candidate.suppressBeginIndex=selectedIndices.length,ignoreCandidate||(candidate.score===originalScore?(selectedIndices.push(boxIndex),selectedScores.push(candidate.score)):candidate.score>scoreThreshold&&binaryInsert(candidates,candidate,ascendingComparator))}let validOutputs=selectedIndices.length,elemsToPad=maxOutputSize-validOutputs;padToMaxOutputSize&&elemsToPad>0&&(selectedIndices.push(...new Array(elemsToPad).fill(0)),selectedScores.push(...new Array(elemsToPad).fill(0)));let result={selectedIndices};return returnScoresTensor&&(result.selectedScores=selectedScores),returnValidOutputs&&(result.validOutputs=validOutputs),result}function intersectionOverUnion(boxes,i,j){let iCoord=boxes.subarray(i*4,i*4+4),jCoord=boxes.subarray(j*4,j*4+4),yminI=Math.min(iCoord[0],iCoord[2]),xminI=Math.min(iCoord[1],iCoord[3]),ymaxI=Math.max(iCoord[0],iCoord[2]),xmaxI=Math.max(iCoord[1],iCoord[3]),yminJ=Math.min(jCoord[0],jCoord[2]),xminJ=Math.min(jCoord[1],jCoord[3]),ymaxJ=Math.max(jCoord[0],jCoord[2]),xmaxJ=Math.max(jCoord[1],jCoord[3]),areaI=(ymaxI-yminI)*(xmaxI-xminI),areaJ=(ymaxJ-yminJ)*(xmaxJ-xminJ);if(areaI<=0||areaJ<=0)return 0;let intersectionYmin=Math.max(yminI,yminJ),intersectionXmin=Math.max(xminI,xminJ),intersectionYmax=Math.min(ymaxI,ymaxJ),intersectionXmax=Math.min(xmaxI,xmaxJ),intersectionArea=Math.max(intersectionYmax-intersectionYmin,0)*Math.max(intersectionXmax-intersectionXmin,0);return intersectionArea/(areaI+areaJ-intersectionArea)}function suppressWeight(iouThreshold,scale2,iou){let weight=Math.exp(scale2*iou*iou);return iou<=iouThreshold?weight:0}function ascendingComparator(c1,c2){return c1.score-c2.score||c1.score===c2.score&&c2.boxIndex-c1.boxIndex}async function nonMaxSuppressionAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),inputs=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold);maxOutputSize=inputs.maxOutputSize,iouThreshold=inputs.iouThreshold,scoreThreshold=inputs.scoreThreshold;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices}=nonMaxSuppressionV3Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),tensor1d(selectedIndices,"int32")}var nonMaxSuppressionAsync=nonMaxSuppressionAsync_;function nonMaxSuppressionWithScore_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma},result=ENGINE.runKernel(NonMaxSuppressionV5,inputs,attrs);return{selectedIndices:result[0],selectedScores:result[1]}}var nonMaxSuppressionWithScore=op({nonMaxSuppressionWithScore_});async function nonMaxSuppressionWithScoreAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,softNmsSigma=0){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);maxOutputSize=params.maxOutputSize,iouThreshold=params.iouThreshold,scoreThreshold=params.scoreThreshold,softNmsSigma=params.softNmsSigma;let boxesAndScores=await Promise.all([$boxes.data(),$scores.data()]),boxesVals=boxesAndScores[0],scoresVals=boxesAndScores[1],{selectedIndices,selectedScores}=nonMaxSuppressionV5Impl(boxesVals,scoresVals,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),selectedScores:tensor1d(selectedScores)}}var nonMaxSuppressionWithScoreAsync=nonMaxSuppressionWithScoreAsync_;function nonMaxSuppressionPadded_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppression"),$scores=convertToTensor(scores,"scores","nonMaxSuppression"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,inputs={boxes:$boxes,scores:$scores},attrs={maxOutputSize:$maxOutputSize,iouThreshold:$iouThreshold,scoreThreshold:$scoreThreshold,padToMaxOutputSize},result=ENGINE.runKernel(NonMaxSuppressionV4,inputs,attrs);return{selectedIndices:result[0],validOutputs:result[1]}}var nonMaxSuppressionPadded=op({nonMaxSuppressionPadded_});async function nonMaxSuppressionPaddedAsync_(boxes,scores,maxOutputSize,iouThreshold=.5,scoreThreshold=Number.NEGATIVE_INFINITY,padToMaxOutputSize=!1){let $boxes=convertToTensor(boxes,"boxes","nonMaxSuppressionAsync"),$scores=convertToTensor(scores,"scores","nonMaxSuppressionAsync"),params=nonMaxSuppSanityCheck($boxes,$scores,maxOutputSize,iouThreshold,scoreThreshold,null),$maxOutputSize=params.maxOutputSize,$iouThreshold=params.iouThreshold,$scoreThreshold=params.scoreThreshold,[boxesVals,scoresVals]=await Promise.all([$boxes.data(),$scores.data()]),{selectedIndices,validOutputs}=nonMaxSuppressionV4Impl(boxesVals,scoresVals,$maxOutputSize,$iouThreshold,$scoreThreshold,padToMaxOutputSize);return $boxes!==boxes&&$boxes.dispose(),$scores!==scores&&$scores.dispose(),{selectedIndices:tensor1d(selectedIndices,"int32"),validOutputs:scalar(validOutputs,"int32")}}var nonMaxSuppressionPaddedAsync=nonMaxSuppressionPaddedAsync_;function resizeBilinear_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeBilinear");assert($images.rank===3||$images.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${size}.`),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeBilinear,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeBilinear=op({resizeBilinear_});function resizeNearestNeighbor_(images,size,alignCorners=!1,halfPixelCenters=!1){let $images=convertToTensor(images,"images","resizeNearestNeighbor");assert($images.rank===3||$images.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${$images.rank}.`),assert(size.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${size}.`),assert($images.dtype==="float32"||$images.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),assert(halfPixelCenters===!1||alignCorners===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let batchImages=$images,reshapedTo4D=!1;$images.rank===3&&(reshapedTo4D=!0,batchImages=reshape($images,[1,$images.shape[0],$images.shape[1],$images.shape[2]]));let[]=size,inputs={images:batchImages},attrs={alignCorners,halfPixelCenters,size},res=ENGINE.runKernel(ResizeNearestNeighbor,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var resizeNearestNeighbor=op({resizeNearestNeighbor_});function bandPart_(a,numLower,numUpper){assert(numLower%1==0,()=>`bandPart(): numLower must be an integer, got ${numLower}.`),assert(numUpper%1==0,()=>`bandPart(): numUpper must be an integer, got ${numUpper}.`);let $a=convertToTensor(a,"a","bandPart");assert($a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${$a.rank}.`);let shape=$a.shape,[M,N]=$a.shape.slice(-2);if(!(numLower<=M))throw new Error(`bandPart(): numLower (${numLower}) must not be greater than the number of rows (${M}).`);if(!(numUpper<=N))throw new Error(`bandPart(): numUpper (${numUpper}) must not be greater than the number of columns (${N}).`);numLower<0&&(numLower=M),numUpper<0&&(numUpper=N);let i=reshape(range(0,M,1,"int32"),[-1,1]),j=range(0,N,1,"int32"),ij=sub(i,j),inBand=logicalAnd(lessEqual(ij,scalar(+numLower,"int32")),greaterEqual(ij,scalar(-numUpper,"int32"))),zero=zeros([M,N],$a.dtype);return reshape(stack(unstack(reshape($a,[-1,M,N])).map(mat=>where(inBand,mat,zero))),shape)}var bandPart=op({bandPart_});function gramSchmidt_(xs){let inputIsTensor2D;if(Array.isArray(xs)){inputIsTensor2D=!1,assert(xs!=null&&xs.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let dim=xs[0].shape[0];for(let i=1;i`Gram-Schmidt: Non-unique lengths found in the input vectors: (${xs[i].shape[0]} vs. ${dim})`)}else inputIsTensor2D=!0,xs=split(xs,xs.shape[0],0).map(x=>squeeze(x,[0]));assert(xs.length<=xs[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${xs.length}) exceeds number of dimensions (${xs[0].shape[0]}).`);let ys=[],xs1d=xs;for(let i=0;i{let x=xs1d[i];if(i>0)for(let j=0;j=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${x.rank}`),x.rank===2)return qr2d(x,fullMatrices);{let outerDimsProd=x.shape.slice(0,x.shape.length-2).reduce((value,prev)=>value*prev),x2ds=unstack(reshape(x,[outerDimsProd,x.shape[x.shape.length-2],x.shape[x.shape.length-1]]),0),q2ds=[],r2ds=[];x2ds.forEach(x2d=>{let[q2d,r2d]=qr2d(x2d,fullMatrices);q2ds.push(q2d),r2ds.push(r2d)});let q=reshape(stack(q2ds,0),x.shape),r=reshape(stack(r2ds,0),x.shape);return[q,r]}}function qr2d(x,fullMatrices=!1){return ENGINE.tidy(()=>{assert(x.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${x.shape.length}D Tensor.`);let m=x.shape[0],n=x.shape[1],q=eye(m),r=clone(x),one2D=tensor2d([[1]],[1,1]),w=clone(one2D),iters=m>=n?n:m;for(let j=0;j{let rjEnd1=slice(r,[j,j],[m-j,1]),normX=norm(rjEnd1),rjj=slice(r,[j,j],[1,1]),s=where(greater(rjj,0),tensor2d([[-1]]),tensor2d([[1]])),u1=sub(rjj,mul(s,normX)),wPre=div(rjEnd1,u1);wPre.shape[0]===1?w=clone(one2D):w=concat([one2D,slice(wPre,[1,0],[wPre.shape[0]-1,wPre.shape[1]])],0);let tau=neg(div(matMul(s,u1),normX)),rjEndAll=slice(r,[j,0],[m-j,n]),tauTimesW=mul(tau,w),wT=transpose(w);if(j===0)r=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));else{let rTimesTau=sub(rjEndAll,matMul(tauTimesW,matMul(wT,rjEndAll)));r=concat([slice(r,[0,0],[j,n]),rTimesTau],0)}let tawTimesWT=transpose(tauTimesW),qAllJEnd=slice(q,[0,j],[m,q.shape[1]-j]);if(j===0)q=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));else{let qTimesTau=sub(qAllJEnd,matMul(matMul(qAllJEnd,w),tawTimesWT));q=concat([slice(q,[0,0],[m,j]),qTimesTau],1)}return[w,r,q]}),dispose([rTemp,wTemp,qTemp])}return!fullMatrices&&m>n&&(q=slice(q,[0,0],[m,n]),r=slice(r,[0,0],[n,n])),[q,r]})}var qr=op({qr_}),Reduction;(function(Reduction2){Reduction2[Reduction2.NONE=0]="NONE",Reduction2[Reduction2.MEAN=1]="MEAN",Reduction2[Reduction2.SUM=2]="SUM",Reduction2[Reduction2.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Reduction||(Reduction={}));function computeWeightedLoss_(losses4,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $losses=convertToTensor(losses4,"losses","computeWeightedLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","computeWeightedLoss"));let weightedLoss=$weights==null?$losses:mul($losses,$weights);if(reduction2===Reduction.NONE)return weightedLoss;if(reduction2===Reduction.SUM)return sum2(weightedLoss);if(reduction2===Reduction.MEAN){if($weights==null)return mean(weightedLoss);{let broadcastFactor=$losses.size/$weights.size,result=div(sum2(weightedLoss),sum2($weights));return broadcastFactor>1?div(result,scalar(broadcastFactor)):result}}if(reduction2===Reduction.SUM_BY_NONZERO_WEIGHTS){if($weights==null)return div(sum2(weightedLoss),scalar($losses.size));{let broadcastedWeights=mul($weights,ones2($losses.shape)),numNonZeros=cast(sum2(notEqual(broadcastedWeights,scalar(0))),"float32");return div(sum2(weightedLoss),numNonZeros)}}throw Error(`Unknown reduction: ${reduction2}`)}var computeWeightedLoss=op({computeWeightedLoss_});function absoluteDifference_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","absoluteDifference"),$predictions=convertToTensor(predictions,"predictions","absoluteDifference"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","absoluteDifference")),assertShapesMatch($labels.shape,$predictions.shape,"Error in absoluteDifference: ");let losses4=abs(sub($labels,$predictions));return computeWeightedLoss(losses4,$weights,reduction2)}var absoluteDifference=op({absoluteDifference_});function cosineDistance_(labels,predictions,axis,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","cosineDistance"),$predictions=convertToTensor(predictions,"predictions","cosineDistance"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","cosineDistance")),assertShapesMatch($labels.shape,$predictions.shape,"Error in cosineDistance: ");let one=scalar(1),losses4=sub(one,sum2(mul($labels,$predictions),axis,!0));return computeWeightedLoss(losses4,$weights,reduction2)}var cosineDistance=op({cosineDistance_});function hingeLoss_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","hingeLoss"),$predictions=convertToTensor(predictions,"predictions","hingeLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","hingeLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in hingeLoss: ");let one=scalar(1);$labels=sub(mul(scalar(2),$labels),one);let losses4=relu(sub(one,mul($labels,$predictions)));return computeWeightedLoss(losses4,$weights,reduction2)}var hingeLoss=op({hingeLoss_});function huberLoss_(labels,predictions,weights,delta=1,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","huberLoss"),$predictions=convertToTensor(predictions,"predictions","huberLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","huberLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in huberLoss: ");let deltaScalar=scalar(delta),error=abs(sub($predictions,$labels)),quadratic=minimum(error,deltaScalar),linear=sub(error,quadratic),losses4=add2(mul(scalar(.5),square(quadratic)),mul(deltaScalar,linear));return computeWeightedLoss(losses4,$weights,reduction2)}var huberLoss=op({huberLoss_});function logLoss_(labels,predictions,weights,epsilon3=1e-7,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","logLoss"),$predictions=convertToTensor(predictions,"predictions","logLoss"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","logLoss")),assertShapesMatch($labels.shape,$predictions.shape,"Error in logLoss: ");let one=scalar(1),epsilonScalar=scalar(epsilon3),l13=neg(mul($labels,log2(add2($predictions,epsilonScalar)))),l23=mul(sub(one,$labels),log2(add2(sub(one,$predictions),epsilonScalar))),losses4=sub(l13,l23);return computeWeightedLoss(losses4,$weights,reduction2)}var logLoss=op({logLoss_});function meanSquaredError_(labels,predictions,weights,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $labels=convertToTensor(labels,"labels","meanSquaredError"),$predictions=convertToTensor(predictions,"predictions","meanSquaredError"),$weights=null;weights!=null&&($weights=convertToTensor(weights,"weights","meanSquaredError")),assertShapesMatch($labels.shape,$predictions.shape,"Error in meanSquaredError: ");let losses4=squaredDifference($labels,$predictions);return computeWeightedLoss(losses4,$weights,reduction2)}var meanSquaredError=op({meanSquaredError_});function sigmoidCrossEntropyWithLogits_(labels,logits){let $labels=convertToTensor(labels,"labels","sigmoidCrossEntropyWithLogits"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropyWithLogits");assertShapesMatch($labels.shape,$logits.shape,"Error in sigmoidCrossEntropyWithLogits: ");let maxOutput=relu($logits),outputXTarget=mul($logits,$labels),sigmoidOutput=log1p(exp(neg(abs($logits))));return add2(sub(maxOutput,outputXTarget),sigmoidOutput)}function sigmoidCrossEntropy_(multiClassLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $multiClassLabels=convertToTensor(multiClassLabels,"multiClassLabels","sigmoidCrossEntropy"),$logits=convertToTensor(logits,"logits","sigmoidCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","sigmoidCrossEntropy")),assertShapesMatch($multiClassLabels.shape,$logits.shape,"Error in sigmoidCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),half=scalar(.5);$multiClassLabels=add2(mul($multiClassLabels,sub(one,labelSmoothingScalar)),mul(half,labelSmoothingScalar))}let losses4=sigmoidCrossEntropyWithLogits_($multiClassLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var sigmoidCrossEntropy=op({sigmoidCrossEntropy_});function softmaxCrossEntropyWithLogits_(labels,logits,dim=-1){if(dim===-1&&(dim=logits.rank-1),dim!==logits.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${logits.rank} and dim was ${dim}`);return customGrad((labels2,logits2,save)=>{let lse=logSumExp(logits2,[dim],!0),logResult=sub(cast(logits2,"float32"),lse);save([labels2,logResult]);let costVector=neg(mul(logResult,labels2));return{value:sum2(costVector,[dim]),gradFunc:(dy,saved)=>{let[labels3,logResult2]=saved,dyShape=expandShapeToKeepDim(dy.shape,[dim]);return[mul(reshape(dy,dyShape),sub(cast(labels3,"float32"),exp(logResult2))),mul(reshape(dy,dyShape),sub(exp(logResult2),cast(labels3,"float32")))]}}})(labels,logits)}function softmaxCrossEntropy_(onehotLabels,logits,weights,labelSmoothing=0,reduction2=Reduction.SUM_BY_NONZERO_WEIGHTS){let $onehotLabels=convertToTensor(onehotLabels,"onehotLabels","softmaxCrossEntropy"),$logits=convertToTensor(logits,"logits","softmaxCrossEntropy"),$weights=null;if(weights!=null&&($weights=convertToTensor(weights,"weights","softmaxCrossEntropy")),assertShapesMatch($onehotLabels.shape,$logits.shape,"Error in softmaxCrossEntropy: "),labelSmoothing>0){let labelSmoothingScalar=scalar(labelSmoothing),one=scalar(1),numClasses=scalar($onehotLabels.shape[1]);$onehotLabels=add2(mul($onehotLabels,sub(one,labelSmoothingScalar)),div(labelSmoothingScalar,numClasses))}let losses4=softmaxCrossEntropyWithLogits_($onehotLabels,$logits);return computeWeightedLoss(losses4,$weights,reduction2)}var softmaxCrossEntropy=op({softmaxCrossEntropy_}),spectral={fft,ifft,rfft,irfft},signal={hammingWindow,hannWindow,frame,stft},image={flipLeftRight,resizeNearestNeighbor,resizeBilinear,rotateWithOffset,cropAndResize,nonMaxSuppression,nonMaxSuppressionAsync,nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync},linalg={bandPart,gramSchmidt,qr},losses={absoluteDifference,computeWeightedLoss,cosineDistance,hingeLoss,huberLoss,logLoss,meanSquaredError,sigmoidCrossEntropy,softmaxCrossEntropy},Optimizer=class extends Serializable{minimize(f,returnCost=!1,varList){let{value,grads:grads2}=this.computeGradients(f,varList);if(varList!=null){let gradArray=varList.map(v=>({name:v.name,tensor:grads2[v.name]}));this.applyGradients(gradArray)}else this.applyGradients(grads2);return dispose(grads2),returnCost?value:(value.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(f,varList){return variableGrads(f,varList)}dispose(){this.iterations_!=null&&dispose(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:scalar(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(weightValues){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(weightValues){return this.iterations_=(await weightValues[0].tensor.data())[0],weightValues.slice(1)}};Object.defineProperty(Optimizer,Symbol.hasInstance,{value:instance=>instance.minimize!=null&&instance.computeGradients!=null&&instance.applyGradients!=null});var AdadeltaOptimizer=class extends Optimizer{constructor(learningRate,rho,epsilon3=null){super();this.learningRate=learningRate,this.rho=rho,this.epsilon=epsilon3,this.accumulatedGrads=[],this.accumulatedUpdates=[],epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedGrads[i]==null&&(this.accumulatedGrads[i]={originalName:`${name}/accum_grad`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedUpdates[i]==null&&(this.accumulatedUpdates[i]={originalName:`${name}/accum_var`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable,accumulatedUpdate=this.accumulatedUpdates[i].variable;tidy(()=>{let newAccumulatedGrad=add2(mul(accumulatedGrad,this.rho),mul(square(gradient),1-this.rho)),updates=mul(div(sqrt(add2(accumulatedUpdate,this.epsilon)),sqrt(add2(accumulatedGrad,this.epsilon))),gradient),newAccumulatedUpdate=add2(mul(accumulatedUpdate,this.rho),mul(square(updates),1-this.rho));accumulatedGrad.assign(newAccumulatedGrad),accumulatedUpdate.assign(newAccumulatedUpdate);let newValue=add2(mul(updates,-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(dispose(this.accumulatedGrads.map(v=>v.variable)),dispose(this.accumulatedUpdates.map(v=>v.variable)))}async getWeights(){let variables=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=weightValues.length/2,trainable=!1;this.accumulatedGrads=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedUpdates=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.rho,config2.epsilon)}};AdadeltaOptimizer.className="Adadelta";registerClass(AdadeltaOptimizer);var AdagradOptimizer=class extends Optimizer{constructor(learningRate,initialAccumulatorValue=.1){super();this.learningRate=learningRate,this.initialAccumulatorValue=initialAccumulatorValue,this.accumulatedGrads=[]}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulatedGrads[i]==null){let trainable=!1;this.accumulatedGrads[i]={originalName:`${name}/accumulator`,variable:tidy(()=>fill(value.shape,this.initialAccumulatorValue).variable(trainable))}}let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedGrad=this.accumulatedGrads[i].variable;tidy(()=>{let newAccumulatedGrad=add2(accumulatedGrad,square(gradient));accumulatedGrad.assign(newAccumulatedGrad);let newValue=add2(mul(div(gradient,sqrt(add2(newAccumulatedGrad,ENGINE.backend.epsilon()))),-this.learningRate),value);value.assign(newValue)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&dispose(this.accumulatedGrads.map(v=>v.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulatedGrads=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.initialAccumulatorValue)}};AdagradOptimizer.className="Adagrad";registerClass(AdagradOptimizer);var AdamOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],tidy(()=>{this.accBeta1=scalar(beta1).variable(),this.accBeta2=scalar(beta2).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let varNames=Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),oneMinusAccBeta2=sub(1,this.accBeta2);varNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${name}/v`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,secondMoment=this.accumulatedSecondMoment[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),newSecondMoment=add2(mul(secondMoment,this.beta2),mul(square(gradient),1-this.beta2)),biasCorrectedFirstMoment=div(newFirstMoment,oneMinusAccBeta1),biasCorrectedSecondMoment=div(newSecondMoment,oneMinusAccBeta2);firstMoment.assign(newFirstMoment),secondMoment.assign(newSecondMoment);let newValue=add2(mul(div(biasCorrectedFirstMoment,add2(sqrt(biasCorrectedSecondMoment),this.epsilon)),-this.learningRate),value);value.assign(newValue)}),this.accBeta1.assign(mul(this.accBeta1,this.beta1)),this.accBeta2.assign(mul(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedSecondMoment!=null&&dispose(this.accumulatedSecondMoment.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues),tidy(()=>{this.accBeta1.assign(pow(this.beta1,this.iterations_+1)),this.accBeta2.assign(pow(this.beta2,this.iterations_+1))});let variableCount=weightValues.length/2,trainable=!1;this.accumulatedFirstMoment=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedSecondMoment=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.beta1,config2.beta2,config2.epsilon)}};AdamOptimizer.className="Adam";registerClass(AdamOptimizer);var AdamaxOptimizer=class extends Optimizer{constructor(learningRate,beta1,beta2,epsilon3=null,decay=0){super();this.learningRate=learningRate,this.beta1=beta1,this.beta2=beta2,this.epsilon=epsilon3,this.decay=decay,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],tidy(()=>{this.iteration=scalar(0).variable(),this.accBeta1=scalar(beta1).variable()}),epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon())}applyGradients(variableGradients){let variableNames=Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients);tidy(()=>{let oneMinusAccBeta1=sub(1,this.accBeta1),lr=div(-this.learningRate,add2(mul(this.iteration,this.decay),1));variableNames.forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${name}/m`,variable:zerosLike(value).variable(trainable)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${name}/v`,variable:zerosLike(value).variable(trainable)});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let firstMoment=this.accumulatedFirstMoment[i].variable,weightedInfNorm=this.accumulatedWeightedInfNorm[i].variable,newFirstMoment=add2(mul(firstMoment,this.beta1),mul(gradient,1-this.beta1)),ut0=mul(weightedInfNorm,this.beta2),ut1=abs(gradient),newWeightedInfNorm=maximum(ut0,ut1);firstMoment.assign(newFirstMoment),weightedInfNorm.assign(newWeightedInfNorm);let newValue=add2(mul(div(lr,oneMinusAccBeta1),div(newFirstMoment,add2(newWeightedInfNorm,this.epsilon))),value);value.assign(newValue)}),this.iteration.assign(add2(this.iteration,1)),this.accBeta1.assign(mul(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&dispose(this.accumulatedFirstMoment.map(v=>v.variable)),this.accumulatedWeightedInfNorm!=null&&dispose(this.accumulatedWeightedInfNorm.map(v=>v.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(weightValues){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.beta1,config2.beta2,config2.epsilon,config2.decay)}};AdamaxOptimizer.className="Adamax";registerClass(AdamaxOptimizer);var SGDOptimizer=class extends Optimizer{constructor(learningRate){super();this.learningRate=learningRate,this.setLearningRate(learningRate)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(v=>v.name):Object.keys(variableGradients)).forEach((name,i)=>{let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let value=ENGINE.registeredVariables[name];tidy(()=>{let newValue=add2(mul(this.c,gradient),value);value.assign(newValue)})}),this.incrementIterations()}setLearningRate(learningRate){this.learningRate=learningRate,this.c!=null&&this.c.dispose(),this.c=keep(scalar(-learningRate))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(weightValues){if(weightValues=await this.extractIterations(weightValues),weightValues.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(cls,config2){return new cls(config2.learningRate)}};SGDOptimizer.className="SGD";registerClass(SGDOptimizer);var MomentumOptimizer=class extends SGDOptimizer{constructor(learningRate,momentum,useNesterov=!1){super(learningRate);this.learningRate=learningRate,this.momentum=momentum,this.useNesterov=useNesterov,this.accumulations=[],this.m=scalar(this.momentum)}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name];if(this.accumulations[i]==null){let trainable=!1;this.accumulations[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}}let accumulation=this.accumulations[i].variable,gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];gradient!=null&&tidy(()=>{let newValue,newAccumulation=add2(mul(this.m,accumulation),gradient);this.useNesterov?newValue=add2(mul(this.c,add2(gradient,mul(newAccumulation,this.m))),value):newValue=add2(mul(this.c,newAccumulation),value),accumulation.assign(newAccumulation),value.assign(newValue)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&dispose(this.accumulations.map(v=>v.variable))}setMomentum(momentum){this.momentum=momentum}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let trainable=!1;this.accumulations=weightValues.map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.momentum,config2.useNesterov)}};MomentumOptimizer.className="Momentum";registerClass(MomentumOptimizer);var RMSPropOptimizer=class extends Optimizer{constructor(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){super();if(this.learningRate=learningRate,this.decay=decay,this.momentum=momentum,this.epsilon=epsilon3,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=centered,epsilon3==null&&(this.epsilon=ENGINE.backend.epsilon()),learningRate==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(variableGradients){(Array.isArray(variableGradients)?variableGradients.map(item=>item.name):Object.keys(variableGradients)).forEach((name,i)=>{let value=ENGINE.registeredVariables[name],trainable=!1;this.accumulatedMeanSquares[i]==null&&(this.accumulatedMeanSquares[i]={originalName:`${name}/rms`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMoments[i]==null&&(this.accumulatedMoments[i]={originalName:`${name}/momentum`,variable:tidy(()=>zerosLike(value).variable(trainable))}),this.accumulatedMeanGrads[i]==null&&this.centered&&(this.accumulatedMeanGrads[i]={originalName:`${name}/mg`,variable:tidy(()=>zerosLike(value).variable(trainable))});let gradient=Array.isArray(variableGradients)?variableGradients[i].tensor:variableGradients[name];if(gradient==null)return;let accumulatedMeanSquare=this.accumulatedMeanSquares[i].variable,accumulatedMoments=this.accumulatedMoments[i].variable;tidy(()=>{let newAccumulatedMeanSquare=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay));if(this.centered){let accumulatedMeanGrad=this.accumulatedMeanGrads[i].variable,newAccumulatedMeanGrad=add2(mul(accumulatedMeanGrad,this.decay),mul(gradient,1-this.decay)),gradContribution=div(mul(gradient,this.learningRate),sqrt(sub(newAccumulatedMeanSquare,add2(square(newAccumulatedMeanGrad),this.epsilon)))),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),gradContribution);accumulatedMeanSquare.assign(newAccumulatedMeanSquare),accumulatedMeanGrad.assign(newAccumulatedMeanGrad),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}else{let newAccumulatedMeanSquare2=add2(mul(accumulatedMeanSquare,this.decay),mul(square(gradient),1-this.decay)),newAccumulatedMoments=add2(mul(accumulatedMoments,this.momentum),div(mul(gradient,this.learningRate),sqrt(add2(newAccumulatedMeanSquare2,this.epsilon))));accumulatedMeanSquare.assign(newAccumulatedMeanSquare2),accumulatedMoments.assign(newAccumulatedMoments);let newValue=sub(value,newAccumulatedMoments);value.assign(newValue)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&dispose(this.accumulatedMeanSquares.map(v=>v.variable)),this.accumulatedMeanGrads!=null&&this.centered&&dispose(this.accumulatedMeanGrads.map(v=>v.variable)),this.accumulatedMoments!=null&&dispose(this.accumulatedMoments.map(v=>v.variable))}async getWeights(){let variables=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&variables.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(variables.map(v=>({name:v.originalName,tensor:v.variable})))}async setWeights(weightValues){weightValues=await this.extractIterations(weightValues);let variableCount=this.centered?weightValues.length/3:weightValues.length/2,trainable=!1;this.accumulatedMeanSquares=weightValues.slice(0,variableCount).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.accumulatedMoments=weightValues.slice(variableCount,variableCount*2).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})),this.centered&&(this.accumulatedMeanGrads=weightValues.slice(variableCount*2,variableCount*3).map(v=>({originalName:v.name,variable:v.tensor.variable(trainable)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(cls,config2){return new cls(config2.learningRate,config2.decay,config2.momentum,config2.epsilon,config2.centered)}};RMSPropOptimizer.className="RMSProp";registerClass(RMSPropOptimizer);var OptimizerConstructors=class{static sgd(learningRate){return new SGDOptimizer(learningRate)}static momentum(learningRate,momentum,useNesterov=!1){return new MomentumOptimizer(learningRate,momentum,useNesterov)}static rmsprop(learningRate,decay=.9,momentum=0,epsilon3=null,centered=!1){return new RMSPropOptimizer(learningRate,decay,momentum,epsilon3,centered)}static adam(learningRate=.001,beta1=.9,beta2=.999,epsilon3=null){return new AdamOptimizer(learningRate,beta1,beta2,epsilon3)}static adadelta(learningRate=.001,rho=.95,epsilon3=null){return new AdadeltaOptimizer(learningRate,rho,epsilon3)}static adamax(learningRate=.002,beta1=.9,beta2=.999,epsilon3=null,decay=0){return new AdamaxOptimizer(learningRate,beta1,beta2,epsilon3,decay)}static adagrad(learningRate,initialAccumulatorValue=.1){return new AdagradOptimizer(learningRate,initialAccumulatorValue)}},train={sgd:OptimizerConstructors.sgd,momentum:OptimizerConstructors.momentum,adadelta:OptimizerConstructors.adadelta,adagrad:OptimizerConstructors.adagrad,rmsprop:OptimizerConstructors.rmsprop,adamax:OptimizerConstructors.adamax,adam:OptimizerConstructors.adam},delayCallback=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:f=>f())();function nextFrame(){return new Promise(resolve=>delayCallback(()=>resolve()))}var backend_util_exports={};__export2(backend_util_exports,{ERF_A1:()=>ERF_A1,ERF_A2:()=>ERF_A2,ERF_A3:()=>ERF_A3,ERF_A4:()=>ERF_A4,ERF_A5:()=>ERF_A5,ERF_P:()=>ERF_P,PARALLELIZE_THRESHOLD:()=>PARALLELIZE_THRESHOLD,SELU_SCALE:()=>SELU_SCALE,SELU_SCALEALPHA:()=>SELU_SCALEALPHA,applyActivation:()=>applyActivation,assertAndGetBroadcastShape:()=>assertAndGetBroadcastShape,assertAxesAreInnerMostDims:()=>assertAxesAreInnerMostDims,assertParamsConsistent:()=>assertParamsConsistent,assignToTypedArray:()=>assignToTypedArray,axesAreInnerMostDims:()=>axesAreInnerMostDims,calculateShapes:()=>calculateShapes,castTensor:()=>castTensor,combineLocations:()=>combineLocations,complexWithEvenIndex:()=>complexWithEvenIndex,complexWithOddIndex:()=>complexWithOddIndex,computeConv2DInfo:()=>computeConv2DInfo,computeConv3DInfo:()=>computeConv3DInfo,computeDefaultPad:()=>computeDefaultPad,computeDilation2DInfo:()=>computeDilation2DInfo,computeOptimalWindowSize:()=>computeOptimalWindowSize,computeOutAndReduceShapes:()=>computeOutAndReduceShapes,computeOutShape:()=>computeOutShape2,computePool2DInfo:()=>computePool2DInfo,computePool3DInfo:()=>computePool3DInfo,convertConv2DDataFormat:()=>convertConv2DDataFormat,eitherStridesOrDilationsAreOne:()=>eitherStridesOrDilationsAreOne,expandShapeToKeepDim:()=>expandShapeToKeepDim,exponent:()=>exponent,exponents:()=>exponents,fromStringArrayToUint8:()=>fromStringArrayToUint8,fromUint8ToStringArray:()=>fromUint8ToStringArray,getAxesPermutation:()=>getAxesPermutation,getBroadcastDims:()=>getBroadcastDims,getComplexWithIndex:()=>getComplexWithIndex,getFusedBiasGradient:()=>getFusedBiasGradient,getFusedDyActivation:()=>getFusedDyActivation,getImageCenter:()=>getImageCenter,getInnerMostAxes:()=>getInnerMostAxes,getPermuted:()=>getPermuted,getReductionAxes:()=>getReductionAxes,getReshaped:()=>getReshaped,getReshapedPermuted:()=>getReshapedPermuted,getSliceBeginCoords:()=>getSliceBeginCoords,getSliceSize:()=>getSliceSize,getUndoAxesPermutation:()=>getUndoAxesPermutation,log:()=>log22,mergeRealAndImagArrays:()=>mergeRealAndImagArrays,prepareAndValidate:()=>prepareAndValidate,prepareSplitSize:()=>prepareSplitSize,reshapeTensor:()=>reshapeTensor,segment_util:()=>segment_util_exports,shouldFuse:()=>shouldFuse,slice_util:()=>slice_util_exports,splitRealAndImagArrays:()=>splitRealAndImagArrays,tupleValuesAreOne:()=>tupleValuesAreOne,upcastType:()=>upcastType,validateInput:()=>validateInput,validateUpdateShape:()=>validateUpdateShape,warn:()=>warn});function assertParamsConsistent(shapes,axis){let rank=shapes[0].length;shapes.forEach((shape,i)=>{assert(shape.length===rank,()=>`Error in concat${rank}D: rank of tensors[${i}] must be the same as the rank of the rest (${rank})`)}),assert(axis>=0&&axis`Error in concat${rank}D: axis must be between 0 and ${rank-1}.`);let firstShape=shapes[0];shapes.forEach((shape,i)=>{for(let r=0;r`Error in concat${rank}D: Shape of tensors[${i}] (${shape}) does not match the shape of the rest (${firstShape}) along the non-concatenated axis ${i}.`)})}function computeOutShape2(shapes,axis){let outputShape=shapes[0].slice();for(let i=1;i=blockShapeRank*2+1||i%2==1?permutedAfterBatch.push(i):permutedBeforeBatch.push(i);permuted.push(...permutedBeforeBatch),permuted.push(0),permuted.push(...permutedAfterBatch)}return permuted}function getReshapedPermuted(inputShape,blockShape,prod5,batchToSpace=!0){let reshapedPermuted=[];batchToSpace?reshapedPermuted.push(inputShape[0]/prod5):reshapedPermuted.push(inputShape[0]*prod5);for(let i=1;i"Number of splits must evenly divide the axis."),splitSizes=new Array(numOrSizeSplits).fill(x.shape[axis]/numOrSizeSplits);else{let numOfNegs=numOrSizeSplits.reduce((count2,value)=>(value===-1&&(count2+=1),count2),0);assert(numOfNegs<=1,()=>"There should be only one negative value in split array.");let negIndex=numOrSizeSplits.indexOf(-1);if(negIndex!==-1){let total=numOrSizeSplits.reduce((a,b)=>b>0?a+b:a);numOrSizeSplits[negIndex]=x.shape[axis]-total}assert(x.shape[axis]===numOrSizeSplits.reduce((a,b)=>a+b),()=>"The sum of sizes must match the size of the axis dimension."),splitSizes=numOrSizeSplits}return splitSizes}var segment_util_exports={};__export2(segment_util_exports,{collectGatherOpShapeInfo:()=>collectGatherOpShapeInfo,computeOutShape:()=>computeOutShape3,segOpComputeOptimalWindowSize:()=>segOpComputeOptimalWindowSize});function segOpComputeOptimalWindowSize(inSize,numSegments){let done=!1,res;for(inSize<=PARALLELIZE_THRESHOLD?(res=inSize,done=!0):res=nearestDivisor(inSize,Math.floor(Math.sqrt(inSize)));!done;)res>numSegments||res===inSize?done=!0:res=nearestDivisor(inSize,res+1);return res}function computeOutShape3(aShape,axis,numSegments){let outShape=[],rank=aShape.length;for(let dim=0;dimindicesRank))throw new Error(`Expect batchDims in the range of [-${indicesRank}, ${indicesRank}], but got ${batchDims}`);if(batchDims<0&&(batchDims+=indicesRank),batchDims>xRank)throw new Error(`batchDims (${batchDims}) must be less than rank(x) ( ${xRank}).`);if(axisdecodeString(val))}catch(err){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${err}`)}}function fromStringArrayToUint8(strings){return strings.map(s=>encodeString(s))}var kernel_impls_exports={};__export2(kernel_impls_exports,{nonMaxSuppressionV3Impl:()=>nonMaxSuppressionV3Impl,nonMaxSuppressionV4Impl:()=>nonMaxSuppressionV4Impl,nonMaxSuppressionV5Impl:()=>nonMaxSuppressionV5Impl,whereImpl:()=>whereImpl});var absGradConfig={kernelName:Abs,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,step(cast(x,"float32"),-1))}}},acosGradConfig={kernelName:Acos,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let a=square(cast(x,"float32")),b=sqrt(sub(scalar(1),a));return neg(div(dy,b))}}}},acoshGradConfig={kernelName:Acosh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let a=sqrt(sub(square(cast(x,"float32")),1));return div(dy,a)}}}},addGradConfig={kernelName:Add,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=dy,reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,a.shape)},b:()=>{let res=dy,reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,b.shape)}}}},addNGradConfig={kernelName:AddN,saveAllInputs:!0,gradFunc:(dy,saved)=>{let ders={};return saved.forEach((_,i)=>{ders[i]=()=>dy.clone()}),ders}},argMaxGradConfig={kernelName:ArgMax,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>zerosLike(x)}}},argMinGradConfig={kernelName:ArgMin,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>zerosLike(x)}}},asinGradConfig={kernelName:Asin,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,sqrt(sub(scalar(1),square(cast(x,"float32")))))}}},asinhGradConfig={kernelName:Asinh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let a=sqrt(add2(scalar(1),square(cast(x,"float32"))));return div(dy,a)}}}},atan2GradConfig={kernelName:Atan2,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let d=add2(square(a),square(b)),res=mul(dy,div(b,d)),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,a.shape)},b:()=>{let d=add2(square(a),square(b)),res=neg(mul(dy,div(a,d))),reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,b.shape)}}}},atanGradConfig={kernelName:Atan,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,add2(square(cast(x,"float32")),1))}}},atanhGradConfig={kernelName:Atanh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,sub(scalar(1),square(cast(x,"float32"))))}}};function avgPool3dGrad_(dy,input2,filterSize,strides,dilations=[1,1,1],pad3,dimRoundingMode){let $dy=convertToTensor(dy,"dy","avgPool3dGrad"),$input=convertToTensor(input2,"input","avgPool3dGrad"),dy5D=$dy,input5D=$input,reshapedTo5D=!1;$input.rank===4&&(reshapedTo5D=!0,dy5D=reshape($dy,[1,$dy.shape[0],$dy.shape[1],$dy.shape[2],$dy.shape[3]]),input5D=reshape($input,[1,$input.shape[0],$input.shape[1],$input.shape[2],$input.shape[3]])),assert(dy5D.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${dy5D.rank}.`),assert(input5D.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${input5D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in avgPool3dGrad: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={dy:dy5D,input:input5D},attrs={filterSize,strides,dilations,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(AvgPool3DGrad,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var avgPool3dGrad=op({avgPool3dGrad_}),avgPool3DGradConfig={kernelName:AvgPool3D,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{filterSize,strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1,1]:dilations;return{x:()=>avgPool3dGrad(dy,x,filterSize,strides,$dilations,pad3,dimRoundingMode)}}};function avgPoolGrad_(dy,input2,filterSize,strides,pad3){let $dy=convertToTensor(dy,"dy","avgPoolGrad"),$input=convertToTensor(input2,"input","avgPoolGrad");assert($input.rank===$dy.rank,()=>`Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`);let input4D=$input,dy4D=$dy,reshapedTo4D=!1;$input.rank===3&&(reshapedTo4D=!0,input4D=reshape($input,[1,$input.shape[0],$input.shape[1],$input.shape[2]]),dy4D=reshape($dy,[1,$dy.shape[0],$dy.shape[1],$dy.shape[2]])),assert(dy4D.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${dy4D.rank}.`),assert(input4D.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${input4D.rank}.`);let inputs={dy:dy4D,input:input4D},attrs={filterSize,strides,pad:pad3},res=ENGINE.runKernel(AvgPoolGrad,inputs,attrs);return reshapedTo4D?reshape(res,[res.shape[1],res.shape[2],res.shape[3]]):res}var avgPoolGrad=op({avgPoolGrad_}),avgPoolGradConfig={kernelName:AvgPool,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{filterSize,strides,pad:pad3}=attrs;return{x:()=>avgPoolGrad(dy,x,filterSize,strides,pad3)}}},batchMatMulGradConfig={kernelName:BatchMatMul,inputsToSave:["a","b"],gradFunc:(dy,saved,attrs)=>{let[a,b]=saved,{transposeA,transposeB}=attrs;return!transposeA&&!transposeB?{a:()=>matMul(dy,b,!1,!0),b:()=>matMul(a,dy,!0,!1)}:!transposeA&&transposeB?{a:()=>matMul(dy,b,!1,!1),b:()=>matMul(dy,a,!0,!1)}:transposeA&&!transposeB?{a:()=>matMul(b,dy,!1,!0),b:()=>matMul(a,dy,!1,!1)}:{a:()=>matMul(b,dy,!0,!0),b:()=>matMul(dy,a,!0,!0)}}},batchToSpaceNDGradConfig={kernelName:BatchToSpaceND,gradFunc:(dy,saved,attrs)=>{let{blockShape,crops}=attrs;return{x:()=>spaceToBatchND(dy,blockShape,crops)}}},broadcastToGradConfig={kernelName:BroadcastTo,gradFunc:(dy,saved,attrs)=>{let broadCastToAttrs=attrs,inputShape=broadCastToAttrs.inputShape,outputShape=broadCastToAttrs.shape,reps=Array.from(outputShape);for(let i=inputShape.length-1;i>=0;i--)if(inputShape[i]===outputShape[i])reps[i]=1;else if(inputShape[i]!==1)throw new Error(`broadcastTo(): [${inputShape}] cannot be broadcast to [${outputShape}].`);let axes=[];for(let i=0;i1&&axes.push(i);return{x:()=>sum2(dy,axes,!0)}}},castGradConfig={kernelName:Cast,gradFunc:dy=>({x:()=>dy.clone()})},ceilGradConfig={kernelName:Ceil,gradFunc:dy=>({x:()=>zerosLike(dy)})},clipByValueGradConfig={kernelName:ClipByValue,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{clipValueMin,clipValueMax}=attrs;return{x:()=>where(logicalAnd(greaterEqual(x,clipValueMin),lessEqual(x,clipValueMax)),dy,zerosLike(dy))}}},complexAbsGradConfig={kernelName:ComplexAbs,inputsToSave:["x"],gradFunc:absGradConfig.gradFunc},concatGradConfig={kernelName:Concat,saveAllInputs:!0,gradFunc:(dy,saved,attrs)=>{let shapes=saved.map(t=>t.shape),{axis}=attrs,$axis=parseAxisParam(axis,saved[0].shape)[0],sizeSplits=shapes.map(s=>s[$axis]);return split(dy,sizeSplits,$axis).map(t=>()=>t)}},conv2DGradConfig={kernelName:Conv2D,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let[x4D,$filter]=saved,{dilations,strides,pad:pad3,dataFormat}=attrs;return assert(tupleValuesAreOne(dilations),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`),{x:()=>conv2DBackpropInput(x4D.shape,dy,$filter,strides,pad3,dataFormat),filter:()=>conv2DBackpropFilter(x4D,dy,$filter.shape,strides,pad3,dataFormat)}}},conv2DBackpropInputGradConfig={kernelName:Conv2DBackpropInput,inputsToSave:["dy","filter"],gradFunc:(ddx,saved,attrs)=>{let[dy,filter]=saved,{strides,pad:pad3,dataFormat,dimRoundingMode}=attrs;return{dy:()=>conv2d(ddx,filter,strides,pad3,dataFormat,1,dimRoundingMode),filter:()=>conv2DBackpropFilter(ddx,dy,filter.shape,strides,pad3,dataFormat,dimRoundingMode)}}};function conv3DBackpropFilter_(x,dy,filterShape,strides,pad3){let x5D=x;x.rank===4&&(x5D=reshape(x,[1,x.shape[0],x.shape[1],x.shape[2],x.shape[3]]));let dy5D=dy;dy5D.rank===4&&(dy5D=reshape(dy,[1,dy.shape[0],dy.shape[1],dy.shape[2],dy.shape[3]])),assert(x5D.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${x5D.shape}.`),assert(dy5D.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${dy5D.shape}.`),assert(filterShape.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${filterShape}.`),assert(x5D.shape[4]===filterShape[3],()=>`Error in conv3dDerFilter: depth of input ${x5D.shape[4]}) must match input depth in filter (${filterShape[3]}.`),assert(dy5D.shape[4]===filterShape[4],()=>`Error in conv3dDerFilter: depth of dy (${dy5D.shape[4]}) must match output depth for filter (${filterShape[4]}).`);let inputs={x:x5D,dy:dy5D},attrs={strides,pad:pad3,filterShape};return ENGINE.runKernel(Conv3DBackpropFilterV2,inputs,attrs)}var conv3DBackpropFilter=op({conv3DBackpropFilter_}),conv3DGradConfig={kernelName:Conv3D,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let{dilations,strides,pad:pad3}=attrs;assert(tupleValuesAreOne(dilations),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${dilations}'`);let[x5D,$filter]=saved;return{x:()=>conv3DBackpropInput(x5D.shape,dy,$filter,strides,pad3),filter:()=>conv3DBackpropFilter(x5D,dy,$filter.shape,strides,pad3)}}},cosGradConfig={kernelName:Cos,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(neg(sin(cast(x,"float32"))),dy)}}},coshGradConfig={kernelName:Cosh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(sinh(cast(x,"float32")),dy)}}},cumsumGradConfig={kernelName:Cumsum,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{axis,exclusive,reverse:reverse5}=attrs;return{x:()=>{let permutation=getAxesPermutation([axis],x.rank),out=cumsum(dy,axis,exclusive,!reverse5);return permutation!=null&&(out=transpose(out,permutation)),out}}}},depthwiseConv2dNativeGradConfig={kernelName:DepthwiseConv2dNative,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let{dilations,strides,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations;assert(tupleValuesAreOne($dilations),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${$dilations}'`);let[x,filter]=saved;return assert(x.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${x.rank}.`),assert(filter.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${filter.rank}.`),assert(x.shape[3]===filter.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${x.shape[3]}) must match the inChannels dimension in filter ${filter.shape[2]}.`),assert(eitherStridesOrDilationsAreOne(strides,$dilations),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${strides} and dilations '${$dilations}'.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`),{x:()=>depthwiseConv2dNativeBackpropInput(x.shape,dy,filter,strides,pad3,dilations,dimRoundingMode),filter:()=>depthwiseConv2dNativeBackpropFilter(x,dy,filter.shape,strides,pad3,dilations,dimRoundingMode)}}},dilation2dGradConfig={kernelName:Dilation2D,inputsToSave:["x","filter"],gradFunc:(dy,saved,attrs)=>{let[x,filter]=saved,inputInputs={x,filter,dy},filterInputs={x,filter,dy};return{x:()=>ENGINE.runKernel(Dilation2DBackpropInput,inputInputs,attrs),filter:()=>ENGINE.runKernel(Dilation2DBackpropFilter,filterInputs,attrs)}}},eluGradConfig={kernelName:Elu,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved,inputs={dy,y};return{x:()=>ENGINE.runKernel(EluGrad,inputs)}}},erfGradConfig={kernelName:Erf,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved,a=mul(exp(neg(square(x))),2/Math.sqrt(Math.PI));return{x:()=>mul(dy,a)}}},expGradConfig={kernelName:Exp,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved;return{x:()=>mul(dy,y)}}},expandDimsGradConfig={kernelName:ExpandDims,inputsToSave:["input"],gradFunc:(dy,saved)=>{let[input2]=saved;return{input:()=>reshape(dy,input2.shape)}}},expm1GradConfig={kernelName:Expm1,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,exp(x))}}},floorGradConfig={kernelName:Floor,gradFunc:dy=>({x:()=>zerosLike(dy)})},floorDivGradConfig={kernelName:FloorDiv,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=div(dy,cast(b,"float32")),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),a.shape):res},b:()=>{let res=mul(dy,cast(a,"float32")),reduceAxes=getReductionAxes(b.shape,outShape);reduceAxes.length>0&&(res=reshape(sum2(res,reduceAxes),b.shape));let tmp=square(b);return neg(div(res,cast(tmp,"float32")))}}}},fusedBatchNormGradConfig={kernelName:FusedBatchNorm,inputsToSave:["x","mean","variance","scale"],gradFunc:(dy,saved,attrs)=>{let{varianceEpsilon}=attrs,[x,mean4,variance,scale2]=saved,scaleValue=scale2==null?scalar(1):scale2,reductionAxes=getReductionAxes(mean4.shape,x.shape),tileShape=[];if(mean4.rank===1){for(let i=0;imean4.rank===1?reshape(mul(mul(dy,tile(reshape(oneOverSqrtVariance,[1,1,1,mean4.shape[0]]),tileShape)),scaleValue),x.shape):reshape(mul(mul(dy,oneOverSqrtVariance),scaleValue),x.shape),mean:()=>{let meanDer=mul(mul(oneOverSqrtVariance,scalar(-1)),dyTimesScaleValue);return mean4.rank===1&&(meanDer=sum2(meanDer,reductionAxes)),reshape(meanDer,mean4.shape)},variance:()=>{let varianceDer=mul(mul(minusHalfRCube,xMinusMean),dyTimesScaleValue);return mean4.rank===1&&(varianceDer=sum2(varianceDer,reductionAxes)),reshape(varianceDer,mean4.shape)},scale:()=>{let xMinusMean2TimesRsqrt=mul(xMinusMean,oneOverSqrtVariance),scaleDer=mul(dy,xMinusMean2TimesRsqrt);return mean4.rank===1&&(scaleDer=sum2(scaleDer,reductionAxes)),reshape(scaleDer,mean4.shape)},offset:()=>{let offsetDer=dy;return mean4.rank===1&&(offsetDer=sum2(offsetDer,reductionAxes)),reshape(offsetDer,mean4.shape)}}}},gatherGradConfig={kernelName:GatherV2,inputsToSave:["x","indices"],gradFunc:(dy,saved,attrs)=>{let[x,indices]=saved,{axis}=attrs,parsedAxis=parseAxisParam(axis,x.shape)[0];return{x:()=>{let paramsShape=x.shape,indicesSize=indices.size,outerShape=paramsShape.slice(0,parsedAxis),outerDims=outerShape.length,innerShape=paramsShape.slice(axis,paramsShape.length).slice(1),innerDims=innerShape.length,outerAxesIndices=arrayRange(0,outerDims),innerAxesIndices=arrayRange(outerDims+1,outerDims+1+innerDims),valuesShape=arrayConcat([outerShape,[indicesSize],innerShape]),values=reshape(dy,valuesShape),reshapedIndices=reshape(indices,[indicesSize]),transposeDims=arrayConcat([[outerDims],outerAxesIndices,innerAxesIndices]),valuesTranspose=transpose(values,transposeDims),paramsGrad=unsortedSegmentSum(valuesTranspose,reshapedIndices,x.shape[parsedAxis]),invertTransposeDims=getUndoAxesPermutation(transposeDims);return paramsGrad=transpose(paramsGrad,invertTransposeDims),paramsGrad},indices:()=>indices}}};function arrayRange(start,stop){let result=[];for(let i=start;i{let[a,b]=saved;return{a:()=>zerosLike(a),b:()=>zerosLike(b)}}},identityGradConfig={kernelName:Identity,gradFunc:dy=>({x:()=>cast(dy,"float32")})},isFiniteGradConfig={kernelName:IsFinite,gradFunc:dy=>({x:()=>zerosLike(dy)})},isInfGradConfig={kernelName:IsInf,gradFunc:dy=>({x:()=>zerosLike(dy)})},isNanGradConfig={kernelName:IsNan,gradFunc:dy=>({x:()=>zerosLike(dy)})},leakyReluGradConfig={kernelName:LeakyRelu,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{alpha}=attrs,mask=greater(x,0);return{x:()=>where(mask,dy,mul(dy,alpha))}}},log1pGradConfig={kernelName:Log1p,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,add2(x,1))}}},logGradConfig={kernelName:Log,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,cast(x,"float32"))}}},logSoftmaxGradConfig={kernelName:LogSoftmax,inputsToSave:[],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[value]=saved,{axis}=attrs;return{logits:()=>{let keepDims=!0,softmax6=exp(value);return sub(dy,mul(sum2(dy,axis,keepDims),softmax6))}}}};function localResponseNormalizationBackprop_(x,y,dy,depthRadius=5,bias=1,alpha=1,beta=.5){let inputs={x,y,dy},attrs={depthRadius,bias,alpha,beta};return ENGINE.runKernel(LRNGrad,inputs,attrs)}var localResponseNormalizationBackprop=op({localResponseNormalizationBackprop_}),lrnGradConfig={kernelName:LRN,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[x,y]=saved,{depthRadius,bias,alpha,beta}=attrs;return{x:()=>localResponseNormalizationBackprop(x,y,dy,depthRadius,bias,alpha,beta)}}};function gradForMinAndMax(dy,y,xOrig,origAxes){return y.rankmul(dy,cast(equal(xOrig,y),dy.dtype))}}var maxGradConfig={kernelName:Max,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let maxAttrs=attrs,{reductionIndices}=maxAttrs,x=saved[0],y=saved[1],origAxes=parseAxisParam(reductionIndices,x.shape),maxGrad=gradForMinAndMax(dy,y,x,origAxes);return{x:()=>maxGrad.x()}}},maximumGradConfig={kernelName:Maximum,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved;return{a:()=>mul(dy,cast(greaterEqual(a,b),"float32")),b:()=>mul(dy,cast(less(a,b),"float32"))}}};function maxPool3dGrad_(dy,input2,output,filterSize,strides,dilations=[1,1,1],pad3,dimRoundingMode){let $dy=convertToTensor(dy,"dy","maxPool3dGrad"),$input=convertToTensor(input2,"input","maxPool3dGrad"),$output=convertToTensor(output,"output","maxPool3dGrad"),dy5D=$dy,input5D=$input,output5D=$output,reshapedTo5D=!1;$input.rank===4&&(reshapedTo5D=!0,dy5D=reshape($dy,[1,$dy.shape[0],$dy.shape[1],$dy.shape[2],$dy.shape[3]]),input5D=reshape($input,[1,$input.shape[0],$input.shape[1],$input.shape[2],$input.shape[3]]),output5D=reshape($output,[1,$output.shape[0],$output.shape[1],$output.shape[2],$output.shape[3]])),assert(dy5D.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${dy5D.rank}.`),assert(input5D.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${input5D.rank}.`),assert(output5D.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${output5D.rank}.`),assert(eitherStridesOrDilationsAreOne(strides,dilations),()=>`Error in maxPool3dGrad: Either strides or dilations must be 1. Got strides ${strides} and dilations '${dilations}'`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={dy:dy5D,input:input5D,output:output5D},attrs={filterSize,strides,dilations,pad:pad3,dimRoundingMode},res=ENGINE.runKernel(MaxPool3DGrad,inputs,attrs);return reshapedTo5D?reshape(res,[res.shape[1],res.shape[2],res.shape[3],res.shape[4]]):res}var maxPool3dGrad=op({maxPool3dGrad_}),maxPool3DGradConfig={kernelName:MaxPool3D,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[x,y]=saved,{filterSize,strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1,1]:dilations;return{x:()=>maxPool3dGrad(dy,x,y,filterSize,strides,$dilations,pad3,dimRoundingMode)}}};function maxPoolGrad_(dy,input2,output,filterSize,strides,pad3,dimRoundingMode){let $dy=convertToTensor(dy,"dy","maxPoolGrad"),$input=convertToTensor(input2,"input","maxPoolGrad"),$output=convertToTensor(output,"output","maxPoolGrad");assert($input.rank===$dy.rank,()=>`Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`),assert($dy.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${$dy.rank}.`),assert($input.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${$input.rank}.`),dimRoundingMode!=null&&assert(isInt(pad3),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${dimRoundingMode} but got pad ${pad3}.`);let inputs={dy:$dy,input:$input,output:$output},attrs={filterSize,strides,pad:pad3,dimRoundingMode};return ENGINE.runKernel(MaxPoolGrad,inputs,attrs)}var maxPoolGrad=op({maxPoolGrad_}),maxPoolGradConfig={kernelName:MaxPool,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[x,y]=saved,{filterSize,strides,pad:pad3}=attrs;return{x:()=>maxPoolGrad(dy,x,y,filterSize,strides,pad3)}}},meanGradConfig={kernelName:Mean,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{axis}=attrs,axes=parseAxisParam(axis,x.shape),reduceShape=computeOutAndReduceShapes(x.shape,axes)[1],reduceSize=sizeFromShape(reduceShape);return{x:()=>{let expandedDyShape=x.shape.slice();axes.forEach(axis2=>{expandedDyShape[axis2]=1});let expandedDy=reshape(dy,expandedDyShape);return div(mul(expandedDy,ones2(x.shape,"float32")),reduceSize)}}}},minGradConfig={kernelName:Min,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let minAttrs=attrs,{axis}=minAttrs,[x,y]=saved,origAxes=parseAxisParam(axis,x.shape),minGrad=gradForMinAndMax(dy,y,x,origAxes);return{x:()=>minGrad.x()}}},minimumGradConfig={kernelName:Minimum,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved;return{a:()=>mul(dy,cast(lessEqual(a,b),"float32")),b:()=>mul(dy,cast(greater(a,b),"float32"))}}},mirrorPadGradConfig={kernelName:MirrorPad,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let x=saved[0],{paddings}=attrs,begin=paddings.map(p2=>p2[0]);return{x:()=>slice(dy,begin,x.shape)}}},modGradConfig={kernelName:Mod,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(dy,reduceAxes),a.shape):dy},b:()=>{let res=mul(dy,neg(floor(div(a,b)))),reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),b.shape):res}}}},multiplyGradConfig={kernelName:Multiply,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=mul(dy,cast(b,"float32")),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),a.shape):res},b:()=>{let res=mul(dy,cast(a,"float32")),reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),b.shape):res}}}},negGradConfig={kernelName:Neg,gradFunc:dy=>({x:()=>neg(dy)})},oneHotGradConfig={kernelName:OneHot,inputsToSave:["indices"],gradFunc:(dy,saved)=>{let indices=saved[0];return{indices:()=>zeros(indices.shape,"float32")}}},onesLikeGradConfig={kernelName:OnesLike,gradFunc:dy=>({x:()=>zerosLike(dy)})},packGradConfig={kernelName:Pack,saveAllInputs:!0,gradFunc:(dy,saved,attrs)=>{let{axis}=attrs;return unstack(dy,axis).map(t=>()=>t)}},padV2GradConfig={kernelName:PadV2,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let x=saved[0],{paddings}=attrs,begin=paddings.map(p2=>p2[0]);return{x:()=>slice(dy,begin,x.shape)}}},powGradConfig={kernelName:Pow,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(dy,saved)=>{let[a,b,y]=saved,base2=a,exp4=b,outShape=assertAndGetBroadcastShape(base2.shape,exp4.shape);return{a:()=>{let expFloat=cast(exp4,"float32"),res=mul(dy,mul(expFloat,pow(base2,sub(expFloat,scalar(1))))),reduceAxes=getReductionAxes(base2.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,base2.shape)},b:()=>{let condition=greater(base2,0),logBase=where(condition,log2(base2),zerosLike(base2)),res=mul(dy,mul(y,logBase)),reduceAxes=getReductionAxes(exp4.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,exp4.shape)}}}},preluGradConfig={kernelName:Prelu,inputsToSave:["x","alpha"],gradFunc:(dy,saved)=>{let[x,alpha]=saved,mask=greater(x,0);return{x:()=>where(mask,dy,mul(dy,alpha)),alpha:()=>{let res=where(mask,zerosLike(dy),mul(dy,x)),reduceAxes=getReductionAxes(alpha.shape,dy.shape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,alpha.shape)}}}},divGradConfig={kernelName:RealDiv,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=div(dy,cast(b,"float32")),reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0?reshape(sum2(res,reduceAxes),a.shape):res},b:()=>{let res=mul(dy,cast(a,"float32")),reduceAxes=getReductionAxes(b.shape,outShape);reduceAxes.length>0&&(res=reshape(sum2(res,reduceAxes),b.shape));let tmp=square(b);return neg(div(res,cast(tmp,"float32")))}}}},reciprocalGradConfig={kernelName:Reciprocal,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,neg(square(x)))}}},relu6GradConfig={kernelName:Relu6,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved,mask=mul(lessEqual(x,6),step(x));return{x:()=>mul(dy,cast(mask,"float32"))}}},reluGradConfig={kernelName:Relu,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,cast(step(x),"float32"))}}},reshapeGradConfig={kernelName:Reshape,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>reshape(dy,x.shape)}}},resizeBilinearGradConfig={kernelName:ResizeBilinear,inputsToSave:["images"],gradFunc:(dy,saved,attrs)=>{let[images]=saved,inputs={dy,images};return{images:()=>ENGINE.runKernel(ResizeBilinearGrad,inputs,attrs)}}},resizeNearestNeighborGradConfig={kernelName:ResizeNearestNeighbor,inputsToSave:["images"],gradFunc:(dy,saved,attrs)=>{let[images]=saved,inputs={dy,images};return{images:()=>ENGINE.runKernel(ResizeNearestNeighborGrad,inputs,attrs)}}},reverseGradConfig={kernelName:Reverse,gradFunc:(dy,saved,attrs)=>{let{dims}=attrs,axes=parseAxisParam(dims,dy.shape);return{x:()=>reverse(dy,axes)}}},roundGradConfig={kernelName:Round,gradFunc:dy=>({x:()=>zerosLike(dy)})},rsqrtGradConfig={kernelName:Rsqrt,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>neg(div(dy,mul(pow(x,1.5),2)))}}},selectGradConfig={kernelName:Select,inputsToSave:["condition"],gradFunc:(dy,saved)=>{let[condition]=saved;return{condition:()=>cast(zerosLike(condition),"float32"),t:()=>mul(dy,cast(condition,dy.dtype)),e:()=>mul(dy,cast(logicalNot(condition),dy.dtype))}}},seluGradConfig={kernelName:Selu,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>{let mask=greater(x,scalar(0)),scaleAlpha2=scalar(SELU_SCALEALPHA),scale2=scalar(SELU_SCALE),greaterThanZeroDer=mul(dy,scale2),lessEqualZeroDer=mul(mul(dy,scaleAlpha2),exp(cast(x,"float32")));return where(mask,greaterThanZeroDer,lessEqualZeroDer)}}}},sigmoidGradConfig={kernelName:Sigmoid,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved;return{x:()=>mul(dy,mul(y,sub(scalar(1),y)))}}},signGradConfig={kernelName:Sign,gradFunc:dy=>({x:()=>zerosLike(dy)})},sinGradConfig={kernelName:Sin,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(cos(cast(x,"float32")),dy)}}},sinhGradConfig={kernelName:Sinh,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(cosh(cast(x,"float32")),dy)}}},sliceGradConfig={kernelName:Slice,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{begin,size}=attrs,inputShape=x.shape,[begin_,size_]=parseSliceParams(x,begin,size),paddings=[];for(let i=0;ipad(dy,paddings)}}},softmaxGradConfig={kernelName:Softmax,outputsToSave:[!0],gradFunc:(dy,saved,attrs)=>{let[y]=saved,{dim}=attrs,keepDims=!0,dyTimesY=mul(dy,y);return{logits:()=>sub(dyTimesY,mul(sum2(dyTimesY,[dim],keepDims),y))}}},softplusGradConfig={kernelName:Softplus,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,sigmoid(x))}}},spaceToBatchNDGradConfig={kernelName:SpaceToBatchND,gradFunc:(dy,saved,attrs)=>{let{blockShape,paddings}=attrs;return{x:()=>batchToSpaceND(dy,blockShape,paddings)}}},splitVGradConfig={kernelName:SplitV,gradFunc:(dy,saved,attrs)=>{let{axis}=attrs;return{x:()=>concat(dy,axis)}}},sqrtGradConfig={kernelName:Sqrt,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,mul(sqrt(cast(x,"float32")),2))}}},squareGradConfig={kernelName:Square,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>mul(dy,mul(cast(x,"float32"),2))}}},squaredDifferenceGradConfig={kernelName:SquaredDifference,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,two=scalar(2);return{a:()=>mul(dy,mul(two,sub(a,b))),b:()=>mul(dy,mul(two,sub(b,a)))}}},stepGradConfig={kernelName:Step,gradFunc:dy=>({x:()=>zerosLike(dy)})},subGradConfig={kernelName:Sub,inputsToSave:["a","b"],gradFunc:(dy,saved)=>{let[a,b]=saved,outShape=assertAndGetBroadcastShape(a.shape,b.shape);return{a:()=>{let res=dy,reduceAxes=getReductionAxes(a.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(res,a.shape)},b:()=>{let res=dy,reduceAxes=getReductionAxes(b.shape,outShape);return reduceAxes.length>0&&(res=sum2(res,reduceAxes)),reshape(neg(res),b.shape)}}}},sumGradConfig={kernelName:Sum,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,expandedDyShape=x.shape.slice(),{axis}=attrs;parseAxisParam(axis,x.shape).forEach(axis2=>{expandedDyShape[axis2]=1});let expandedDy=reshape(dy,expandedDyShape),derX=mul(expandedDy,ones2(x.shape,"float32"));return{x:()=>derX}}},tanGradConfig={kernelName:Tan,inputsToSave:["x"],gradFunc:(dy,saved)=>{let[x]=saved;return{x:()=>div(dy,square(cos(x)))}}},tanhGradConfig={kernelName:Tanh,outputsToSave:[!0],gradFunc:(dy,saved)=>{let[y]=saved;return{x:()=>mul(sub(scalar(1),square(y)),dy)}}},tileGradConfig={kernelName:Tile,inputsToSave:["x"],gradFunc:(dy,saved,attrs)=>{let[x]=saved,{reps}=attrs;return{x:()=>{let xGrad=zerosLike(x);if(x.rank===1)for(let i=0;i{let transposeAttrs=attrs,{perm}=transposeAttrs,undoPerm=getUndoAxesPermutation(perm);return{x:()=>transpose(dy,undoPerm)}}},unpackGradConfig={kernelName:Unpack,gradFunc:(dy,saved,attrs)=>{let unpackAttrs=attrs,{axis}=unpackAttrs;return{value:()=>stack(dy,axis)}}},unsortedSegmentSumGradConfig={kernelName:UnsortedSegmentSum,inputsToSave:["segmentIds"],gradFunc:(dy,saved)=>{let[segmentIds]=saved;return{x:()=>gatherDropNegatives(dy,segmentIds)}}};function gatherDropNegatives(x,indices){let zeroClippedIndices=maximum(indices,zerosLike(indices)),gathered=gather(x,zeroClippedIndices),isPositive=greaterEqual(indices,scalar(0,"int32")),numIters=gathered.rank-isPositive.rank;for(let i=0;i({x:()=>zerosLike(dy)})},gradConfigs=[absGradConfig,acosGradConfig,acoshGradConfig,addGradConfig,addNGradConfig,argMaxGradConfig,argMinGradConfig,asinGradConfig,asinhGradConfig,atan2GradConfig,atanGradConfig,atanhGradConfig,avgPool3DGradConfig,avgPoolGradConfig,batchMatMulGradConfig,batchToSpaceNDGradConfig,broadcastToGradConfig,castGradConfig,ceilGradConfig,clipByValueGradConfig,complexAbsGradConfig,concatGradConfig,conv2DBackpropInputGradConfig,conv2DGradConfig,conv3DGradConfig,cosGradConfig,coshGradConfig,cumsumGradConfig,depthwiseConv2dNativeGradConfig,dilation2dGradConfig,divGradConfig,eluGradConfig,erfGradConfig,expGradConfig,expandDimsGradConfig,expm1GradConfig,floorDivGradConfig,floorGradConfig,fusedBatchNormGradConfig,gatherGradConfig,greaterEqualGradConfig,identityGradConfig,isFiniteGradConfig,isInfGradConfig,isNanGradConfig,leakyReluGradConfig,log1pGradConfig,logGradConfig,logSoftmaxGradConfig,lrnGradConfig,maxGradConfig,maxGradConfig,maximumGradConfig,maxPool3DGradConfig,maxPoolGradConfig,meanGradConfig,minGradConfig,minimumGradConfig,mirrorPadGradConfig,modGradConfig,multiplyGradConfig,negGradConfig,oneHotGradConfig,onesLikeGradConfig,packGradConfig,padV2GradConfig,padV2GradConfig,powGradConfig,preluGradConfig,reciprocalGradConfig,relu6GradConfig,reluGradConfig,reshapeGradConfig,resizeBilinearGradConfig,resizeNearestNeighborGradConfig,reverseGradConfig,roundGradConfig,rsqrtGradConfig,selectGradConfig,seluGradConfig,sigmoidGradConfig,signGradConfig,sinGradConfig,sinhGradConfig,sliceGradConfig,softmaxGradConfig,softplusGradConfig,spaceToBatchNDGradConfig,spaceToBatchNDGradConfig,splitVGradConfig,splitVGradConfig,sqrtGradConfig,squaredDifferenceGradConfig,squareGradConfig,stepGradConfig,subGradConfig,sumGradConfig,tanGradConfig,tanhGradConfig,tileGradConfig,transposeGradConfig,unpackGradConfig,unsortedSegmentSumGradConfig,zerosLikeGradConfig];for(let gradientConfig of gradConfigs)registerGradient(gradientConfig);Tensor.prototype.abs=function(){return this.throwIfDisposed(),abs(this)};Tensor.prototype.acos=function(){return this.throwIfDisposed(),acos(this)};Tensor.prototype.acosh=function(){return this.throwIfDisposed(),acosh(this)};Tensor.prototype.addStrict=function(x){return this.throwIfDisposed(),addStrict(this,x)};Tensor.prototype.add=function(b){return this.throwIfDisposed(),add2(this,b)};Tensor.prototype.all=function(axis,keepDims){return this.throwIfDisposed(),all(this,axis,keepDims)};Tensor.prototype.any=function(axis,keepDims){return this.throwIfDisposed(),any(this,axis,keepDims)};Tensor.prototype.argMax=function(axis){return this.throwIfDisposed(),argMax(this,axis)};Tensor.prototype.argMin=function(axis){return this.throwIfDisposed(),argMin(this,axis)};Tensor.prototype.asScalar=function(){return this.throwIfDisposed(),assert(this.size===1,()=>"The array must have only 1 element."),reshape(this,[])};Tensor.prototype.asType=function(dtype){return this.throwIfDisposed(),cast(this,dtype)};Tensor.prototype.as1D=function(){return this.throwIfDisposed(),reshape(this,[this.size])};Tensor.prototype.as2D=function(rows,columns){return this.throwIfDisposed(),reshape(this,[rows,columns])};Tensor.prototype.as3D=function(rows,columns,depth){return this.throwIfDisposed(),reshape(this,[rows,columns,depth])};Tensor.prototype.as4D=function(rows,columns,depth,depth2){return this.throwIfDisposed(),reshape(this,[rows,columns,depth,depth2])};Tensor.prototype.as5D=function(rows,columns,depth,depth2,depth3){return this.throwIfDisposed(),reshape(this,[rows,columns,depth,depth2,depth3])};Tensor.prototype.asin=function(){return this.throwIfDisposed(),asin(this)};Tensor.prototype.asinh=function(){return this.throwIfDisposed(),asinh(this)};Tensor.prototype.atan=function(){return this.throwIfDisposed(),atan(this)};Tensor.prototype.atan2=function(b){return this.throwIfDisposed(),atan2(this,b)};Tensor.prototype.atanh=function(){return this.throwIfDisposed(),atanh(this)};Tensor.prototype.avgPool=function(filterSize,strides,pad3,dimRoundingMode){return this.throwIfDisposed(),avgPool(this,filterSize,strides,pad3,dimRoundingMode)};Tensor.prototype.batchToSpaceND=function(blockShape,crops){return this.throwIfDisposed(),batchToSpaceND(this,blockShape,crops)};Tensor.prototype.batchNorm=function(mean4,variance,offset,scale2,varianceEpsilon){return this.throwIfDisposed(),batchNorm(this,mean4,variance,offset,scale2,varianceEpsilon)};Tensor.prototype.broadcastTo=function(shape){return this.throwIfDisposed(),broadcastTo(this,shape)};Tensor.prototype.cast=function(dtype){return this.throwIfDisposed(),cast(this,dtype)};Tensor.prototype.ceil=function(){return this.throwIfDisposed(),ceil(this)};Tensor.prototype.clipByValue=function(min6,max6){return this.throwIfDisposed(),clipByValue(this,min6,max6)};Tensor.prototype.concat=function(x,axis){return this.throwIfDisposed(),x instanceof Tensor&&(x=[x]),concat([this,...x],axis)};Tensor.prototype.conv1d=function(filter,stride,pad3,dataFormat,dilation,dimRoundingMode){return this.throwIfDisposed(),conv1d(this,filter,stride,pad3,dataFormat,dilation,dimRoundingMode)};Tensor.prototype.conv2dTranspose=function(filter,outputShape,strides,pad3,dimRoundingMode){return this.throwIfDisposed(),conv2dTranspose(this,filter,outputShape,strides,pad3,dimRoundingMode)};Tensor.prototype.conv2d=function(filter,strides,pad3,dataFormat,dilations,dimRoundingMode){return this.throwIfDisposed(),conv2d(this,filter,strides,pad3,dataFormat,dilations,dimRoundingMode)};Tensor.prototype.cos=function(){return this.throwIfDisposed(),cos(this)};Tensor.prototype.cosh=function(){return this.throwIfDisposed(),cosh(this)};Tensor.prototype.cumsum=function(axis,exclusive,reverse5){return this.throwIfDisposed(),cumsum(this,axis,exclusive,reverse5)};Tensor.prototype.depthToSpace=function(blockSize,dataFormat){return this.throwIfDisposed(),depthToSpace(this,blockSize,dataFormat)};Tensor.prototype.depthwiseConv2D=function(filter,strides,pad3,dataFormat,dilations,dimRoundingMode){return deprecationWarn("depthwiseConv2D is deprecated, use depthwiseConv2d instead"),this.throwIfDisposed(),depthwiseConv2d(this,filter,strides,pad3,dataFormat,dilations,dimRoundingMode)};Tensor.prototype.depthwiseConv2d=function(filter,strides,pad3,dataFormat,dilations,dimRoundingMode){return this.throwIfDisposed(),depthwiseConv2d(this,filter,strides,pad3,dataFormat,dilations,dimRoundingMode)};Tensor.prototype.dilation2d=function(filter,strides,pad3,dilations,dataFormat){return this.throwIfDisposed(),dilation2d(this,filter,strides,pad3,dilations,dataFormat)};Tensor.prototype.divNoNan=function(b){return this.throwIfDisposed(),divNoNan(this,b)};Tensor.prototype.divStrict=function(x){return this.throwIfDisposed(),divStrict(this,x)};Tensor.prototype.div=function(b){return this.throwIfDisposed(),div(this,b)};Tensor.prototype.dot=function(b){return this.throwIfDisposed(),dot(this,b)};Tensor.prototype.elu=function(){return this.throwIfDisposed(),elu(this)};Tensor.prototype.equalStrict=function(x){return this.throwIfDisposed(),equalStrict(this,x)};Tensor.prototype.equal=function(b){return this.throwIfDisposed(),equal(this,b)};Tensor.prototype.erf=function(){return this.throwIfDisposed(),erf(this)};Tensor.prototype.exp=function(){return this.throwIfDisposed(),exp(this)};Tensor.prototype.expandDims=function(axis){return this.throwIfDisposed(),expandDims(this,axis)};Tensor.prototype.expm1=function(){return this.throwIfDisposed(),expm1(this)};Tensor.prototype.fft=function(){return this.throwIfDisposed(),fft(this)};Tensor.prototype.flatten=function(){return this.throwIfDisposed(),reshape(this,[this.size])};Tensor.prototype.floor=function(){return this.throwIfDisposed(),floor(this)};Tensor.prototype.floorDiv=function(b){return this.throwIfDisposed(),floorDiv(this,b)};Tensor.prototype.gather=function(indices,axis){return this.throwIfDisposed(),gather(this,indices,axis)};Tensor.prototype.greaterEqualStrict=function(x){return this.throwIfDisposed(),greaterEqualStrict(this,x)};Tensor.prototype.greaterEqual=function(b){return this.throwIfDisposed(),greaterEqual(this,b)};Tensor.prototype.greaterStrict=function(x){return this.throwIfDisposed(),greaterStrict(this,x)};Tensor.prototype.greater=function(b){return this.throwIfDisposed(),greater(this,b)};Tensor.prototype.ifft=function(){return this.throwIfDisposed(),ifft(this)};Tensor.prototype.irfft=function(){return this.throwIfDisposed(),irfft(this)};Tensor.prototype.isFinite=function(){return this.throwIfDisposed(),isFinite2(this)};Tensor.prototype.isInf=function(){return this.throwIfDisposed(),isInf(this)};Tensor.prototype.isNaN=function(){return this.throwIfDisposed(),isNaN2(this)};Tensor.prototype.leakyRelu=function(alpha){return this.throwIfDisposed(),leakyRelu(this,alpha)};Tensor.prototype.lessEqualStrict=function(x){return this.throwIfDisposed(),lessEqualStrict(this,x)};Tensor.prototype.lessEqual=function(b){return this.throwIfDisposed(),lessEqual(this,b)};Tensor.prototype.lessStrict=function(x){return this.throwIfDisposed(),lessStrict(this,x)};Tensor.prototype.less=function(b){return this.throwIfDisposed(),less(this,b)};Tensor.prototype.localResponseNormalization=function(depthRadius,bias,alpha,beta){return this.throwIfDisposed(),localResponseNormalization(this,depthRadius,bias,alpha,beta)};Tensor.prototype.logSigmoid=function(){return this.throwIfDisposed(),logSigmoid(this)};Tensor.prototype.logSoftmax=function(axis){return this.throwIfDisposed(),logSoftmax(this,axis)};Tensor.prototype.logSumExp=function(axis,keepDims){return this.throwIfDisposed(),logSumExp(this,axis,keepDims)};Tensor.prototype.log=function(){return this.throwIfDisposed(),log2(this)};Tensor.prototype.log1p=function(){return this.throwIfDisposed(),log1p(this)};Tensor.prototype.logicalAnd=function(b){return this.throwIfDisposed(),logicalAnd(this,b)};Tensor.prototype.logicalNot=function(){return this.throwIfDisposed(),logicalNot(this)};Tensor.prototype.logicalOr=function(b){return this.throwIfDisposed(),logicalOr(this,b)};Tensor.prototype.logicalXor=function(b){return this.throwIfDisposed(),logicalXor(this,b)};Tensor.prototype.matMul=function(b,transposeA,transposeB){return this.throwIfDisposed(),matMul(this,b,transposeA,transposeB)};Tensor.prototype.maxPool=function(filterSize,strides,pad3,dimRoundingMode){return this.throwIfDisposed(),maxPool(this,filterSize,strides,pad3,dimRoundingMode)};Tensor.prototype.max=function(axis,keepDims){return this.throwIfDisposed(),max(this,axis,keepDims)};Tensor.prototype.maximumStrict=function(x){return this.throwIfDisposed(),maximumStrict(this,x)};Tensor.prototype.maximum=function(b){return this.throwIfDisposed(),maximum(this,b)};Tensor.prototype.mean=function(axis,keepDims){return this.throwIfDisposed(),mean(this,axis,keepDims)};Tensor.prototype.min=function(axis,keepDims){return this.throwIfDisposed(),min(this,axis,keepDims)};Tensor.prototype.minimumStrict=function(x){return this.throwIfDisposed(),minimumStrict(this,x)};Tensor.prototype.minimum=function(b){return this.throwIfDisposed(),minimum(this,b)};Tensor.prototype.mirrorPad=function(paddings,mode){return this.throwIfDisposed(),mirrorPad(this,paddings,mode)};Tensor.prototype.modStrict=function(x){return this.throwIfDisposed(),modStrict(this,x)};Tensor.prototype.mod=function(b){return this.throwIfDisposed(),mod(this,b)};Tensor.prototype.mulStrict=function(x){return this.throwIfDisposed(),mulStrict(this,x)};Tensor.prototype.mul=function(b){return this.throwIfDisposed(),mul(this,b)};Tensor.prototype.neg=function(){return this.throwIfDisposed(),neg(this)};Tensor.prototype.norm=function(ord,axis,keepDims){return this.throwIfDisposed(),norm(this,ord,axis,keepDims)};Tensor.prototype.notEqualStrict=function(x){return this.throwIfDisposed(),notEqualStrict(this,x)};Tensor.prototype.notEqual=function(b){return this.throwIfDisposed(),notEqual(this,b)};Tensor.prototype.oneHot=function(depth,onValue=1,offValue=0){return this.throwIfDisposed(),oneHot(this,depth,onValue,offValue)};Tensor.prototype.onesLike=function(){return this.throwIfDisposed(),onesLike(this)};Tensor.prototype.pad=function(paddings,constantValue){return this.throwIfDisposed(),pad(this,paddings,constantValue)};Tensor.prototype.pool=function(windowShape,poolingType,padding,dilationRate,strides){return this.throwIfDisposed(),pool(this,windowShape,poolingType,padding,dilationRate,strides)};Tensor.prototype.powStrict=function(exp4){return this.throwIfDisposed(),powStrict(this,exp4)};Tensor.prototype.pow=function(exp4){return this.throwIfDisposed(),pow(this,exp4)};Tensor.prototype.prelu=function(alpha){return this.throwIfDisposed(),prelu(this,alpha)};Tensor.prototype.prod=function(axis,keepDims){return this.throwIfDisposed(),prod(this,axis,keepDims)};Tensor.prototype.reciprocal=function(){return this.throwIfDisposed(),reciprocal(this)};Tensor.prototype.relu=function(){return this.throwIfDisposed(),relu(this)};Tensor.prototype.relu6=function(){return this.throwIfDisposed(),relu6(this)};Tensor.prototype.reshapeAs=function(x){return this.throwIfDisposed(),reshape(this,x.shape)};Tensor.prototype.reshape=function(shape){return this.throwIfDisposed(),reshape(this,shape)};Tensor.prototype.resizeBilinear=function(newShape2D,alignCorners,halfPixelCenters){return this.throwIfDisposed(),resizeBilinear(this,newShape2D,alignCorners,halfPixelCenters)};Tensor.prototype.resizeNearestNeighbor=function(newShape2D,alignCorners,halfFloatCenters){return this.throwIfDisposed(),resizeNearestNeighbor(this,newShape2D,alignCorners,halfFloatCenters)};Tensor.prototype.reverse=function(axis){return this.throwIfDisposed(),reverse(this,axis)};Tensor.prototype.rfft=function(){return this.throwIfDisposed(),rfft(this)};Tensor.prototype.round=function(){return this.throwIfDisposed(),round2(this)};Tensor.prototype.rsqrt=function(){return this.throwIfDisposed(),rsqrt(this)};Tensor.prototype.selu=function(){return this.throwIfDisposed(),selu(this)};Tensor.prototype.separableConv2d=function(depthwiseFilter,pointwiseFilter,strides,pad3,dilation,dataFormat){return this.throwIfDisposed(),separableConv2d(this,depthwiseFilter,pointwiseFilter,strides,pad3,dilation,dataFormat)};Tensor.prototype.sigmoid=function(){return this.throwIfDisposed(),sigmoid(this)};Tensor.prototype.sign=function(){return this.throwIfDisposed(),sign(this)};Tensor.prototype.sin=function(){return this.throwIfDisposed(),sin(this)};Tensor.prototype.sinh=function(){return this.throwIfDisposed(),sinh(this)};Tensor.prototype.slice=function(begin,size){return this.throwIfDisposed(),slice(this,begin,size)};Tensor.prototype.softmax=function(dim){return this.throwIfDisposed(),softmax(this,dim)};Tensor.prototype.softplus=function(){return this.throwIfDisposed(),softplus(this)};Tensor.prototype.spaceToBatchND=function(blockShape,paddings){return this.throwIfDisposed(),spaceToBatchND(this,blockShape,paddings)};Tensor.prototype.split=function(numOrSizeSplits,axis){return this.throwIfDisposed(),split(this,numOrSizeSplits,axis)};Tensor.prototype.sqrt=function(){return this.throwIfDisposed(),sqrt(this)};Tensor.prototype.square=function(){return this.throwIfDisposed(),square(this)};Tensor.prototype.squaredDifference=function(b){return this.throwIfDisposed(),squaredDifference(this,b)};Tensor.prototype.squaredDifferenceStrict=function(x){return this.throwIfDisposed(),squaredDifferenceStrict(this,x)};Tensor.prototype.squeeze=function(axis){return this.throwIfDisposed(),squeeze(this,axis)};Tensor.prototype.stack=function(x,axis){this.throwIfDisposed();let tensorsToBeStacked=x instanceof Tensor?[this,x]:[this,...x];return stack(tensorsToBeStacked,axis)};Tensor.prototype.step=function(alpha){return this.throwIfDisposed(),step(this,alpha)};Tensor.prototype.stridedSlice=function(begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask){return this.throwIfDisposed(),stridedSlice(this,begin,end,strides,beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask)};Tensor.prototype.subStrict=function(x){return this.throwIfDisposed(),subStrict(this,x)};Tensor.prototype.sub=function(b){return this.throwIfDisposed(),sub(this,b)};Tensor.prototype.sum=function(axis,keepDims){return this.throwIfDisposed(),sum2(this,axis,keepDims)};Tensor.prototype.tan=function(){return this.throwIfDisposed(),tan(this)};Tensor.prototype.tanh=function(){return this.throwIfDisposed(),tanh2(this)};Tensor.prototype.tile=function(reps){return this.throwIfDisposed(),tile(this,reps)};Tensor.prototype.toBool=function(){return this.throwIfDisposed(),cast(this,"bool")};Tensor.prototype.toFloat=function(){return this.throwIfDisposed(),cast(this,"float32")};Tensor.prototype.toInt=function(){return this.throwIfDisposed(),cast(this,"int32")};Tensor.prototype.topk=function(k,sorted){return this.throwIfDisposed(),topk(this,k,sorted)};Tensor.prototype.transpose=function(perm){return this.throwIfDisposed(),transpose(this,perm)};Tensor.prototype.unique=function(axis){return this.throwIfDisposed(),unique(this,axis)};Tensor.prototype.unsortedSegmentSum=function(segmentIds,numSegments){return this.throwIfDisposed(),unsortedSegmentSum(this,segmentIds,numSegments)};Tensor.prototype.unstack=function(axis){return this.throwIfDisposed(),unstack(this,axis)};Tensor.prototype.where=function(condition,x){return this.throwIfDisposed(),where(condition,this,x)};Tensor.prototype.zerosLike=function(){return this.throwIfDisposed(),zerosLike(this)};function assertNotComplex(tensor2,opName){Array.isArray(tensor2)||(tensor2=[tensor2]),tensor2.forEach(t=>{t!=null&&util_exports.assert(t.dtype!=="complex64",()=>`${opName} does not support complex64 tensors in the CPU backend.`)})}var whereImpl2=kernel_impls_exports.whereImpl,MathBackendCPU=class extends KernelBackend{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new DataStorage(this,engine())}write(values,shape,dtype){this.firstUse&&(this.firstUse=!1,env().get("IS_NODE")&&backend_util_exports.warn(` ============================ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. @@ -4040,19 +4040,19 @@ return a / b;`,DIV_PACKED=` } setOutput(${returnValue}); } - `}};function unsortedSegmentSum3(args){let{inputs,backend:backend22,attrs}=args,{x,segmentIds}=inputs,{numSegments}=attrs,xRank=x.shape.length,toDispose=[],axis=0,permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!=null&&(permutedX=transpose3({inputs:{x},backend:backend22,attrs:{perm:permutation}}),toDispose.push(permutedX),axis=backend_util_exports.getInnerMostAxes(1,xRank)[0]);let outShape=backend_util_exports.segment_util.computeOutShape(permutedX.shape,axis,numSegments),inSize=util_exports.sizeFromShape([permutedX.shape[axis]]),a2D=reshape3({inputs:{x:permutedX},backend:backend22,attrs:{shape:[-1,inSize]}});toDispose.push(a2D);let outputDType=sumOutType(x.dtype),segOpCompute=(x2,segOpType,segmentIds2,dtype,numSegments2)=>{let batchSize=x2.shape[0],inSize2=x2.shape[1],windowSize=backend_util_exports.segment_util.segOpComputeOptimalWindowSize(inSize2,numSegments2),segOpInfo={windowSize,inSize:inSize2,batchSize,numSegments:numSegments2},program=new SegmentOpProgram(segOpInfo,segOpType),output=backend22.compileAndRun(program,[x2,segmentIds2],dtype);if(toDispose.push(output),output.shape[1]===numSegments2)return output;let rangeInfo=range3({backend:backend22,attrs:{start:0,stop:numSegments2,step:1,dtype:"float32"}}),tileInfo=tile3({inputs:{x:rangeInfo},backend:backend22,attrs:{reps:[inSize2/windowSize]}});return toDispose.push(rangeInfo),toDispose.push(tileInfo),segOpCompute(output,segOpType,tileInfo,dtype,numSegments2)},segOpResult=segOpCompute(a2D,"unsortedSegmentSum",segmentIds,outputDType,numSegments),reshaped=reshape3({inputs:{x:segOpResult},backend:backend22,attrs:{shape:outShape}}),result=reshaped;if(permutation!=null){toDispose.push(reshaped);let perm=backend_util_exports.getUndoAxesPermutation(permutation);result=transpose3({inputs:{x:result},backend:backend22,attrs:{perm}})}return toDispose.forEach(t=>backend22.disposeIntermediateTensorInfo(t)),result}var unsortedSegmentSumConfig2={kernelName:UnsortedSegmentSum,backendName:"webgl",kernelFunc:unsortedSegmentSum3},kernelConfigs2=[LRNConfig,LRNGradConfig,_fusedMatMulConfig2,absConfig2,acosConfig2,acoshConfig2,addConfig2,addNConfig2,allConfig2,anyConfig2,argMaxConfig2,argMinConfig2,asinConfig2,asinhConfig2,atan2Config2,atanConfig2,atanhConfig2,avgPool3DConfig2,avgPoolConfig2,avgPoolGrad3DConfig,avgPoolGradConfig3,batchMatMulConfig2,batchNormConfig2,batchToSpaceNDConfig2,bincountConfig2,castConfig2,ceilConfig2,clipByValueConfig,complexAbsConfig2,complexConfig2,concatConfig2,conv2DBackpropFilterConfig2,conv2DBackpropInputConfig2,conv2DConfig2,conv3DBackpropFilterV2Config2,conv3DBackpropInputConfig,conv3DConfig2,cosConfig2,coshConfig2,cropAndResizeConfig2,cumsumConfig2,denseBincountConfig2,depthToSpaceConfig2,depthwiseConv2dNativeBackpropFilterConfig2,depthwiseConv2dNativeBackpropInputConfig2,depthwiseConv2dNativeConfig2,diagConfig2,dilation2DConfig,eluConfig2,eluGradConfig3,equalConfig2,erfConfig2,expConfig2,expandDimsConfig2,expm1Config2,fftConfig2,fillConfig2,flipLeftRightConfig2,floorConfig2,floorDivConfig2,fromPixelsConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig2,gatherV2Config2,greaterConfig2,greaterEqualConfig2,identityConfig2,ifftConfig2,imagConfig2,isFiniteConfig2,isInfConfig2,isNaNConfig2,leakyReluConfig2,lessConfig2,lessEqualConfig2,linSpaceConfig2,log1pConfig2,logConfig2,logicalAndConfig2,logicalNotConfig2,logicalOrConfig2,maxConfig2,maxPool3DConfig2,maxPoolConfig2,maxPoolGrad3DConfig,maxPoolGradConfig3,maxPoolWithArgmaxConfig2,maximumConfig2,meanConfig2,minConfig2,minimumConfig2,mirrorPadConfig2,modConfig2,multinomialConfig2,multiplyConfig2,negConfig2,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config2,nonMaxSuppressionV5Config2,notEqualConfig2,oneHotConfig2,onesLikeConfig2,packConfig2,padV2Config2,powConfig2,preluConfig2,prodConfig2,rangeConfig2,realConfig2,realDivConfig2,reciprocalConfig2,relu6Config2,reluConfig2,reshapeConfig2,resizeBilinearConfig2,resizeBilinearGradConfig3,resizeNearestNeighborConfig2,resizeNearestNeighborGradConfig3,reverseConfig2,rotateWithOffsetConfig2,roundConfig2,rsqrtConfig2,scatterNdConfig2,selectConfig2,seluConfig2,sigmoidConfig2,signConfig2,sinConfig2,sinhConfig2,sliceConfig2,softmaxConfig2,softplusConfig2,spaceToBatchNDConfig2,sparseToDenseConfig2,splitVConfig2,sqrtConfig2,squareConfig2,squaredDifferenceConfig2,stepConfig2,stridedSliceConfig2,subConfig2,sumConfig2,tanConfig2,tanhConfig2,tileConfig2,topKConfig2,transposeConfig2,uniqueConfig2,unpackConfig2,unsortedSegmentSumConfig2,zerosLikeConfig2];for(let kernelConfig of kernelConfigs2)registerKernel(kernelConfig);var CppDType;(function(CppDType2){CppDType2[CppDType2.float32=0]="float32",CppDType2[CppDType2.int32=1]="int32",CppDType2[CppDType2.bool=2]="bool",CppDType2[CppDType2.string=3]="string",CppDType2[CppDType2.complex64=4]="complex64"})(CppDType||(CppDType={}));var FusableActivation;(function(FusableActivation2){FusableActivation2[FusableActivation2.linear=0]="linear",FusableActivation2[FusableActivation2.relu=1]="relu",FusableActivation2[FusableActivation2.relu6=2]="relu6",FusableActivation2[FusableActivation2.prelu=3]="prelu",FusableActivation2[FusableActivation2.leakyrelu=4]="leakyrelu"})(FusableActivation||(FusableActivation={}));var wasmFusedMatMul;function setup(backend22){wasmFusedMatMul=backend22.wasm.cwrap(_FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function fusedBatchMatMul(args){let{inputs,backend:backend22,attrs}=args,{a,b,bias,preluActivationWeights}=inputs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA,transposeB,activation:activation2,leakyreluAlpha}=attrs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${biasData.shape.length}.`);biasId=biasData.id}let preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id,fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let leftDim=transposeA?a.shape[2]:a.shape[1],rightDim=transposeB?b.shape[1]:b.shape[2],batchDim=a.shape[0],out=backend22.makeOutput([batchDim,leftDim,rightDim],a.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer);return wasmFusedMatMul(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,transposeA,transposeB,fusedActivation,biasId,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedMatMulConfig={kernelName:_FusedMatMul,backendName:"wasm",setupFunc:setup,kernelFunc:fusedBatchMatMul};function createUnaryKernelConfig(kernelName){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","number"])}function kernelFunc3(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc9(xId,outId),out}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var absConfig3=createUnaryKernelConfig(Abs);function createBinaryKernelConfig(kernelName,supportsFullBroadcast17,dtype){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","array","number","number","array","number","number","number"])}function kernelFunc3(args){let{backend:backend22,inputs}=args,{a,b}=inputs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,outputType=dtype!=null?dtype:a.dtype,newShape=backend_util_exports.assertAndGetBroadcastShape(a.shape,b.shape),out=backend22.makeOutput(newShape,outputType);if(util_exports.sizeFromShape(newShape)===0)return out;let aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer),outId=backend22.dataIdMap.get(out.dataId).id,kernelFunc4=()=>wasmFunc9(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;let aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast),wasmFunc;function setupFunc(backend22){wasmFunc=backend22.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){let{inputs,backend:backend22}=args,out=backend22.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;let inputIds=inputs.map(x=>backend22.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}var addNConfig3={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity3(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity3},wasmTranspose;function setup2(backend22){wasmTranspose=backend22.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose4(args){let{inputs,backend:backend22,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm),permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}var transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose4,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend22){let xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape),axes=originalAxes,permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank),xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){let newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}var reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape4},wasmBatchMatMul;function setup5(backend22){wasmBatchMatMul=backend22.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul3(args){let{inputs,backend:backend22,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);let outShape=(batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2)).concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape4({inputs:{x:a},backend:backend22,attrs:{shape:a3dShape}}),b3d=reshape4({inputs:{x:b},backend:backend22,attrs:{shape:b3dShape}}),a3dId=backend22.dataIdMap.get(a3d.dataId).id,b3dId=backend22.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend22.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}var batchMatMulConfig3={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul3};function cast4(args){let{inputs:{x},attrs:{dtype},backend:backend22}=args,out=backend22.makeOutput(x.shape,dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast4},wasmClip;function setup6(backend22){wasmClip=backend22.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}var clipByValueConfig2={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat4(args){let{inputs,backend:backend22}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),$inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return identity3({inputs:{x:$inputs[0]},backend:backend22});let out=backend22.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;let shapes=$inputs.map(t=>t.shape);if(backend_util_exports.assertParamsConsistent(shapes,axis),$inputs[0].dtype==="string"){let inputs2D=$inputs.map(t=>{let innerSize=util_exports.sizeFromShape(t.shape.slice(axis));return reshape4({inputs:{x:t},backend:backend22,attrs:{shape:[-1,innerSize]}})}),inputsValShapes=inputs2D.map(t=>({vals:backend22.readSync(t.dataId),shape:t.shape}));outShape=backend_util_exports.computeOutShape(inputs2D.map(t=>t.shape),1);let simplyConcat=inputs2D[0].shape[0]===1,outVals2=concatImpl(inputsValShapes,outShape,inputs[0].dtype,simplyConcat),finalOutShape=backend_util_exports.computeOutShape($inputs.map(t=>t.shape),axis);out.shape=finalOutShape;let outData=backend22.dataIdMap.get(out.dataId);return outData.stringBytes=backend_util_exports.fromStringArrayToUint8(outVals2),out}let batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis)),sumInnerDims=0,innerDims=$inputs.map(input2=>{let innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend22.typedArrayFromHeap(input2)),outVals=backend22.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);let permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!==null&&(permutedX=transpose4({inputs:{x},attrs:{perm:permutation},backend:backend22}));let permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);let permutedOut=backend22.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend22.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend22.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse5?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){let undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose4({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend22}),backend22.disposeData(permutedX.dataId),backend22.disposeData(permutedOut.dataId)}return out}var cumsumConfig3={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum4},wasmDepthToSpace;function setup11(backend22){wasmDepthToSpace=backend22.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);let batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend22.makeOutput(outputShape,"float32"),xId=backend22.dataIdMap.get(x.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthToSpace(xId,blockSize,dataFormat==="NHWC"?1:0,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}var depthToSpaceConfig3={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace4},wasmDepthwiseConv2d;function setup12(backend22){wasmDepthwiseConv2d=backend22.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d3(args){let{inputs,attrs,backend:backend22}=args,{x,filter}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad3,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var depthwiseConv2dNativeConfig3={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d3},supportsFullBroadcast2=!1,equalConfig3=createBinaryKernelConfig(Equal,supportsFullBroadcast2,"bool"),expConfig3=createUnaryKernelConfig(Exp);function expandDims4(args){let{inputs,attrs,backend:backend22}=args,{input:input2}=inputs,{dim}=attrs,inputRank=input2.shape.length,newShape=input2.shape.slice(),$dim=dim;return dim<0&&(util_exports.assert(-(inputRank+1)<=dim,()=>`Axis must be in the interval [${-(inputRank+1)}, ${inputRank}]`),$dim=inputRank+dim+1),newShape.splice($dim,0,1),reshape4({inputs:{x:input2},backend:backend22,attrs:{shape:newShape}})}var expandDimsConfig3={kernelName:ExpandDims,backendName:"wasm",kernelFunc:expandDims4};function fill4(args){let{attrs:{shape,value,dtype},backend:backend22}=args,out=backend22.makeOutput(shape,dtype);return backend22.typedArrayFromHeap(out).fill(value),out}var fillConfig3={kernelName:Fill,backendName:"wasm",kernelFunc:fill4},wasmFlipLeftRight;function setup13(backend22){wasmFlipLeftRight=backend22.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){let{inputs,backend:backend22}=args,{image:image3}=inputs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}var flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},floorConfig3=createUnaryKernelConfig(Floor),supportsFullBroadcast3=!1,floorDivConfig3=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast3),wasmBatchNorm;function setup14(backend22){wasmBatchNorm=backend22.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){let{backend:backend22,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean4,variance,offset,scale:scale2}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,meanId=backend22.dataIdMap.get(mean4.dataId).id,varianceId=backend22.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend22.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend22.dataIdMap.get(scale2.dataId).id:0,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}var fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm},wasmFusedConv2d;function setup15(backend22){wasmFusedConv2d=backend22.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d2(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedConv2DConfig3={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d2},wasmFusedDepthwiseConv2d;function setup16(backend22){wasmFusedDepthwiseConv2d=backend22.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedDepthwiseConv2DConfig3={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d},wasmGatherNd;function setup17(backend22){wasmGatherNd=backend22.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd3(args){let{backend:backend22,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend22.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xId=backend22.dataIdMap.get(params.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}var gatherNdConfig3={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd3},wasmGather;function setup18(backend22){wasmGather=backend22.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV23(args){let{backend:backend22,inputs,attrs}=args,{x,indices}=inputs,{axis,batchDims}=attrs,parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis,batchDims),flattenX=reshape4({inputs:{x},attrs:{shape:[shapeInfo.batchSize,shapeInfo.outerSize,shapeInfo.dimSize,shapeInfo.sliceSize]},backend:backend22}),indicesSize=util_exports.sizeFromShape(indices.shape),flattenIndex=reshape4({inputs:{x:indices},attrs:{shape:[shapeInfo.batchSize,indicesSize/shapeInfo.batchSize]},backend:backend22}),flattenOutputShape=[shapeInfo.batchSize,shapeInfo.outerSize,indicesSize/shapeInfo.batchSize,shapeInfo.sliceSize],out=backend22.makeOutput(flattenOutputShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let stridesSize=flattenX.shape.length-1,xId=backend22.dataIdMap.get(flattenX.dataId).id,indicesId=backend22.dataIdMap.get(flattenIndex.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenX.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenOutputShape)).buffer);return wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,shapeInfo.batchSize,outStridesBytes,outId),out.shape=shapeInfo.outputShape,out}var gatherV2Config3={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV23},supportsFullBroadcast4=!1,greaterConfig3=createBinaryKernelConfig(Greater,supportsFullBroadcast4,"bool"),supportsFullBroadcast5=!1,greaterEqualConfig3=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast5,"bool"),wasmFunc3;function setupFunc2(backend22){wasmFunc3=backend22.wasm.cwrap(LeakyRelu,null,["number","number","number"])}function leakyRelu4(args){let{inputs:{x},attrs:{alpha},backend:backend22}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmFunc3(xId,alpha,outId)}return out}var leakyReluConfig3={kernelName:LeakyRelu,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:leakyRelu4},supportsFullBroadcast6=!1,lessConfig3=createBinaryKernelConfig(Less,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessEqualConfig3=createBinaryKernelConfig(LessEqual,supportsFullBroadcast7,"bool"),logConfig3=createUnaryKernelConfig(Log),supportsFullBroadcast8=!1,logicalAndConfig3=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast8,"bool"),wasmMax;function setup19(backend22){wasmMax=backend22.wasm.cwrap(Max,null,["number, number, number"])}function max4(args){let{backend:backend22,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,inputId=backend22.dataIdMap.get(x.dataId).id,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max4},supportsFullBroadcast9=!1,maximumConfig3=createBinaryKernelConfig(Maximum,supportsFullBroadcast9),wasmMaxPool;function setup20(backend22){wasmMaxPool=backend22.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){let{inputs,attrs,backend:backend22}=args,x=inputs.x,xId=backend22.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad3,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad3,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4},wasmMean;function setup21(backend22){wasmMean=backend22.wasm.cwrap(Mean,null,["number, number, number"])}function mean3(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("mean",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),castedInput=input2;input2.dtype!=="float32"&&(castedInput=cast4({backend:backend22,inputs:{x:input2},attrs:{dtype:"float32"}}),inputId=backend22.dataIdMap.get(castedInput.dataId).id);let out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMean(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return input2.dtype!=="float32"&&backend22.disposeData(castedInput.dataId),out}var meanConfig3={kernelName:Mean,backendName:"wasm",setupFunc:setup21,kernelFunc:mean3},wasmMin;function setup22(backend22){wasmMin=backend22.wasm.cwrap(Min,null,["number, number, number"])}function min4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var minConfig3={kernelName:Min,backendName:"wasm",setupFunc:setup22,kernelFunc:min4},supportsFullBroadcast10=!1,minimumConfig3=createBinaryKernelConfig(Minimum,supportsFullBroadcast10),supportsFullBroadcast11=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast11),negConfig3=createUnaryKernelConfig(Neg);function parseResultStruct(backend22,resOffset){let result=new Int32Array(backend22.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend22.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}var wasmFunc4;function setup23(backend22){wasmFunc4=backend22.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);return backend22.wasm._free(pSelectedScores),backend22.wasm._free(pValidOutputs),backend22.makeOutput([selectedSize],"int32",pSelectedIndices)}var nonMaxSuppressionV3Config3={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup23,kernelFunc},wasmFunc5;function setup24(backend22){wasmFunc5=backend22.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV43(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pSelectedScores);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend22.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}var nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup24,kernelFunc:nonMaxSuppressionV43},wasmFunc6;function setup25(backend22){wasmFunc6=backend22.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc6(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pValidOutputs);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend22.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}var nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup25,kernelFunc:kernelFunc2},supportsFullBroadcast12=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast12,"bool"),wasmOneHot;function setup26(backend22){wasmOneHot=backend22.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot4(args){let{inputs,backend:backend22,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend22.makeOutput([...indices.shape,depth],"int32"),outId=backend22.dataIdMap.get(out.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}var oneHotConfig3={kernelName:OneHot,backendName:"wasm",setupFunc:setup26,kernelFunc:oneHot4};function onesLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(1),out}var onesLikeConfig3={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike4};function pack3(args){let{inputs,backend:backend22,attrs}=args,{axis}=attrs;if(inputs.length===1)return expandDims4({inputs:{input:inputs[0]},backend:backend22,attrs:{dim:axis}});let shape=inputs[0].shape,dtype=inputs[0].dtype;inputs.forEach(t=>{util_exports.assertShapesMatch(shape,t.shape,"All tensors passed to stack must have matching shapes"),util_exports.assert(dtype===t.dtype,()=>"All tensors passed to stack must have matching dtypes")});let expandedTensors=inputs.map(t=>expandDims4({inputs:{input:t},backend:backend22,attrs:{dim:axis}}));return concat4({inputs:expandedTensors,backend:backend22,attrs:{axis}})}var packConfig3={kernelName:Pack,backendName:"wasm",kernelFunc:pack3},wasmPadV2;function setup27(backend22){wasmPadV2=backend22.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad2(args){let{inputs:{x},backend:backend22,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(outShape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}var padV2Config3={kernelName:PadV2,backendName:"wasm",kernelFunc:pad2,setupFunc:setup27},supportsFullBroadcast13=!1,powConfig3=createBinaryKernelConfig(Pow,supportsFullBroadcast13),wasmPrelu;function setup28(backend22){wasmPrelu=backend22.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu4(args){let{inputs,backend:backend22}=args,{x,alpha}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,weightsId=backend22.dataIdMap.get(alpha.dataId).id,out=backend22.makeOutput(x.shape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}var preluConfig3={kernelName:Prelu,backendName:"wasm",setupFunc:setup28,kernelFunc:prelu4},wasmProd;function setup29(backend22){wasmProd=backend22.wasm.cwrap(Prod,null,["number","number","number","number"])}function prod4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("prod",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmProd(inputId,reduceSize,CppDType[out.dtype],outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var prodConfig3={kernelName:Prod,backendName:"wasm",setupFunc:setup29,kernelFunc:prod4},range4=args=>{let{backend:backend22,attrs}=args,{start,stop,step:step4,dtype}=attrs,values=rangeImpl(start,stop,step4,dtype),out=backend22.makeOutput([values.length],dtype);return backend22.typedArrayFromHeap(out).set(values),out},rangeConfig3={kernelName:Range,backendName:"wasm",kernelFunc:range4},supportsFullBroadcast14=!0,realDivConfig3=createBinaryKernelConfig(RealDiv,supportsFullBroadcast14),reluConfig3=createUnaryKernelConfig(Relu),relu6Config3=createUnaryKernelConfig(Relu6),wasmResizeBilinear;function setup30(backend22){wasmResizeBilinear=backend22.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number","number"])}function resizeBilinear4(args){let{backend:backend22,inputs,attrs}=args,{images}=inputs,{alignCorners,halfPixelCenters,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels],xData=backend22.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast4({backend:backend22,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend22.dataIdMap.get(castedData.dataId));let xId=xData.id,out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,halfPixelCenters?1:0,outId),castedData!=null&&backend22.disposeData(castedData.dataId),out}var resizeBilinearConfig3={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup30,kernelFunc:resizeBilinear4},wasmReverse;function setup31(backend22){wasmReverse=backend22.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity3({inputs:{x},backend:backend22});let out=backend22.makeOutput(x.shape,x.dtype),xId=backend22.dataIdMap.get(x.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape4({inputs:{x:out},attrs:{shape:x.shape},backend:backend22})}var reverseConfig3={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse4,setupFunc:setup31},wasmRotate;function setup32(backend22){wasmRotate=backend22.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){let{inputs,backend:backend22,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}var rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup32},roundConfig3=createUnaryKernelConfig(Round),rsqrtConfig3=createUnaryKernelConfig(Rsqrt),wasmScatterNd;function setup33(backend22){wasmScatterNd=backend22.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd3(args){let{backend:backend22,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend22.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;let{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesId=backend22.dataIdMap.get(indices.dataId).id,updatesId=backend22.dataIdMap.get(updates.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}var scatterNdConfig3={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup33,kernelFunc:scatterNd3},wasmSelect;function setup34(backend22){wasmSelect=backend22.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function select3(args){let{inputs,backend:backend22}=args,{condition,t,e}=inputs,conditionId=backend22.dataIdMap.get(condition.dataId).id,tId=backend22.dataIdMap.get(t.dataId).id,eId=backend22.dataIdMap.get(e.dataId).id,out=backend22.makeOutput(t.shape,t.dtype),outId=backend22.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}var selectConfig3={kernelName:Select,backendName:"wasm",kernelFunc:select3,setupFunc:setup34},wasmFunc7;function setup35(backend22){wasmFunc7=backend22.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid4(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId),out}var sigmoidConfig3={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup35,kernelFunc:sigmoid4},sinConfig3=createUnaryKernelConfig(Sin);function slice4(args){let{inputs:{x},attrs:{begin,size},backend:backend22}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend22.readSync(x.dataId),out=backend22.makeOutput(size_,x.dtype),xStrides=util_exports.computeStrides(x.shape),outData=backend22.dataIdMap.get(out.dataId);if(isContinous){let flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return x.dtype==="string"?outData.stringBytes=xVals.slice(flatOffset,flatOffset+util_exports.sizeFromShape(size_)):backend22.typedArrayFromHeap(out).set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}if(x.dtype==="string"){let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);return outData.stringBytes=res,out}let outVals=backend22.typedArrayFromHeap(out),rank=x.shape.length;if(rank===2)slice2d2(xVals,xStrides[0],outVals,begin_,size_);else if(rank===3)slice3d2(xVals,xStrides[0],xStrides[1],outVals,begin_,size_);else if(rank===4)slice4d2(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_);else{let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);outVals.set(res)}return out}function slice2d2(xVals,xStride,outVals,begin,size){let outOffset=0,beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;i{let xSliceSize=[...size];xSliceSize[$axis]=s;let xSlice=slice4({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend22});return begin[$axis]+=s,xSlice})}var splitVConfig3={kernelName:SplitV,backendName:"wasm",kernelFunc:splitV3},sqrtConfig3=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15),wasmStridedSlice;function setup37(backend22){wasmStridedSlice=backend22.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));let{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});let xReshaped=reshape4({inputs:{x},attrs:{shape:newShape},backend:backend22}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;let shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});let size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);if(strides.every(v=>v===1)){let xSliced=slice4({inputs:{x},attrs:{begin,size},backend:backend22});return reshape4({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend22})}let out=backend22.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){let xId=backend22.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape4({inputs:{x:out},attrs:{shape:outShape},backend:backend22})}var stridedSliceConfig3={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup37,kernelFunc:stridedSlice4},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16),wasmSum;function setup38(backend22){wasmSum=backend22.wasm.cwrap(Sum,null,["number, number, number"])}function sum5(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var sumConfig3={kernelName:Sum,backendName:"wasm",setupFunc:setup38,kernelFunc:sum5},tanhConfig3=createUnaryKernelConfig(Tanh),wasmTile;function setup39(backend22){wasmTile=backend22.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i{let{x}=inputs,{k,sorted}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),outputShape=x.shape.slice();outputShape[outputShape.length-1]=k;let outValues=backend22.makeOutput(outputShape,x.dtype),outValuesId=backend22.dataIdMap.get(outValues.dataId).id,outIndices=backend22.makeOutput(outputShape,"int32"),outIndicesId=backend22.dataIdMap.get(outIndices.dataId).id;return wasmTopK(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],k,sorted,outValuesId,outIndicesId),[outValues,outIndices]},topKConfig3={kernelName:TopK,backendName:"wasm",setupFunc:setup40,kernelFunc:topk2};function unpack3(args){let{inputs,backend:backend22,attrs}=args,{value}=inputs,{axis}=attrs;axis<0&&(axis+=value.shape.length);let numOutputs=value.shape[axis],rank=value.shape.length,outShape=new Array(rank-1),outIndex=0;for(let i=0;i({dataId,dtype,shape:outShape}))}var unpackConfig3={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack3};function zerosLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(0),out}var zerosLikeConfig3={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike4},kernelConfigs3=[absConfig3,addConfig3,addNConfig3,argMaxConfig3,avgPoolConfig3,batchMatMulConfig3,castConfig3,clipByValueConfig2,concatConfig3,conv2DConfig3,conv2DBackpropInputConfig3,cosConfig3,cropAndResizeConfig3,cumsumConfig3,depthToSpaceConfig3,depthwiseConv2dNativeConfig3,equalConfig3,expConfig3,expandDimsConfig3,fillConfig3,flipLeftRightConfig3,floorConfig3,floorDivConfig3,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig3,fusedDepthwiseConv2DConfig3,gatherNdConfig3,gatherV2Config3,greaterConfig3,greaterEqualConfig3,identityConfig3,leakyReluConfig3,lessConfig3,lessEqualConfig3,logConfig3,logicalAndConfig3,maxConfig3,maximumConfig3,maxPoolConfig3,meanConfig3,minConfig3,minimumConfig3,multiplyConfig3,negConfig3,nonMaxSuppressionV3Config3,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig3,onesLikeConfig3,packConfig3,padV2Config3,powConfig3,preluConfig3,prodConfig3,rangeConfig3,realDivConfig3,reluConfig3,relu6Config3,reshapeConfig3,resizeBilinearConfig3,reverseConfig3,rotateWithOffsetConfig3,rsqrtConfig3,roundConfig3,scatterNdConfig3,selectConfig3,sigmoidConfig3,sinConfig3,sliceConfig3,softmaxConfig3,splitVConfig3,sqrtConfig3,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig3,subConfig3,sumConfig3,tanhConfig3,tileConfig3,topKConfig3,transposeConfig3,unpackConfig3,zerosLikeConfig3];for(let kernelConfig of kernelConfigs3)registerKernel(kernelConfig);var ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var import_tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',import_tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),BackendWasm=class extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine())}write(values,shape,dtype){let dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){let start=util_exports.now();return f(),{kernelMs:util_exports.now()-start}}move(dataId,values,shape,dtype){let id=this.dataIdNextNumber++;if(dtype==="string"){let stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}let size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){let{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;let bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){let data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};let id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});let size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){let buffer2=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer2,memoryOffset,size);case"int32":return new Int32Array(buffer2,memoryOffset,size);case"bool":return new Uint8Array(buffer2,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}};function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){let[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{let factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){let response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=import_tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+import_tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=import_tfjs_backend_wasm.default(factoryConfig);let voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{initialized||initAborted||(initAborted=!0,reject({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))}})}function typedArrayFromBuffer(buffer2,dtype){switch(dtype){case"float32":return new Float32Array(buffer2);case"int32":return new Int32Array(buffer2);case"bool":return new Uint8Array(buffer2);default:throw new Error(`Unknown dtype ${dtype}`)}}var wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;let missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}var version9="2.8.3",WASM_PRIORITY=2;registerBackend("wasm",async()=>{let{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);var exports_constraints_exports={};__export2(exports_constraints_exports,{maxNorm:()=>maxNorm,minMaxNorm:()=>minMaxNorm,nonNeg:()=>nonNeg,unitNorm:()=>unitNorm});var _epsilon;function epsilon2(){return _epsilon==null&&(_epsilon=backend().epsilon()),_epsilon}function imageDataFormat(){return"channelsLast"}var AttributeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AttributeError.prototype)}},RuntimeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,RuntimeError.prototype)}},ValueError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,ValueError.prototype)}},NotImplementedError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,NotImplementedError.prototype)}},AssertionError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AssertionError.prototype)}},IndexError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,IndexError.prototype)}};function pyListRepeat(value,numValues){if(Array.isArray(value)){let newArray=[];for(let i=0;ip1.toUpperCase())}var _GLOBAL_CUSTOM_OBJECTS={};function serializeKerasObject(instance){if(instance==null)return null;let dict={};return dict.className=instance.getClassName(),dict.config=instance.getConfig(),dict}function convertNDArrayScalarsInConfig(config3){if(!(config3==null||typeof config3!="object"))if(Array.isArray(config3))config3.forEach(configItem=>convertNDArrayScalarsInConfig(configItem));else{let fields=Object.keys(config3);for(let field of fields){let value=config3[field];value!=null&&typeof value=="object"&&(!Array.isArray(value)&&value.type==="ndarray"&&typeof value.value=="number"?config3[field]=value.value:convertNDArrayScalarsInConfig(value))}}}function deserializeKerasObject(identifier,moduleObjects={},customObjects={},printableModuleName="object",fastWeightInit=!1){if(typeof identifier=="string"){let functionName=identifier,fn;if(functionName in customObjects)fn=customObjects[functionName];else if(functionName in _GLOBAL_CUSTOM_OBJECTS)fn=_GLOBAL_CUSTOM_OBJECTS[functionName];else if(fn=moduleObjects[functionName],fn==null)throw new ValueError(`Unknown ${printableModuleName}: ${identifier}. This may be due to one of the following reasons: + `}};function unsortedSegmentSum3(args){let{inputs,backend:backend22,attrs}=args,{x,segmentIds}=inputs,{numSegments}=attrs,xRank=x.shape.length,toDispose=[],axis=0,permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!=null&&(permutedX=transpose3({inputs:{x},backend:backend22,attrs:{perm:permutation}}),toDispose.push(permutedX),axis=backend_util_exports.getInnerMostAxes(1,xRank)[0]);let outShape=backend_util_exports.segment_util.computeOutShape(permutedX.shape,axis,numSegments),inSize=util_exports.sizeFromShape([permutedX.shape[axis]]),a2D=reshape3({inputs:{x:permutedX},backend:backend22,attrs:{shape:[-1,inSize]}});toDispose.push(a2D);let outputDType=sumOutType(x.dtype),segOpCompute=(x2,segOpType,segmentIds2,dtype,numSegments2)=>{let batchSize=x2.shape[0],inSize2=x2.shape[1],windowSize=backend_util_exports.segment_util.segOpComputeOptimalWindowSize(inSize2,numSegments2),segOpInfo={windowSize,inSize:inSize2,batchSize,numSegments:numSegments2},program=new SegmentOpProgram(segOpInfo,segOpType),output=backend22.compileAndRun(program,[x2,segmentIds2],dtype);if(toDispose.push(output),output.shape[1]===numSegments2)return output;let rangeInfo=range3({backend:backend22,attrs:{start:0,stop:numSegments2,step:1,dtype:"float32"}}),tileInfo=tile3({inputs:{x:rangeInfo},backend:backend22,attrs:{reps:[inSize2/windowSize]}});return toDispose.push(rangeInfo),toDispose.push(tileInfo),segOpCompute(output,segOpType,tileInfo,dtype,numSegments2)},segOpResult=segOpCompute(a2D,"unsortedSegmentSum",segmentIds,outputDType,numSegments),reshaped=reshape3({inputs:{x:segOpResult},backend:backend22,attrs:{shape:outShape}}),result=reshaped;if(permutation!=null){toDispose.push(reshaped);let perm=backend_util_exports.getUndoAxesPermutation(permutation);result=transpose3({inputs:{x:result},backend:backend22,attrs:{perm}})}return toDispose.forEach(t=>backend22.disposeIntermediateTensorInfo(t)),result}var unsortedSegmentSumConfig2={kernelName:UnsortedSegmentSum,backendName:"webgl",kernelFunc:unsortedSegmentSum3},kernelConfigs2=[LRNConfig,LRNGradConfig,_fusedMatMulConfig2,absConfig2,acosConfig2,acoshConfig2,addConfig2,addNConfig2,allConfig2,anyConfig2,argMaxConfig2,argMinConfig2,asinConfig2,asinhConfig2,atan2Config2,atanConfig2,atanhConfig2,avgPool3DConfig2,avgPoolConfig2,avgPoolGrad3DConfig,avgPoolGradConfig3,batchMatMulConfig2,batchNormConfig2,batchToSpaceNDConfig2,bincountConfig2,castConfig2,ceilConfig2,clipByValueConfig,complexAbsConfig2,complexConfig2,concatConfig2,conv2DBackpropFilterConfig2,conv2DBackpropInputConfig2,conv2DConfig2,conv3DBackpropFilterV2Config2,conv3DBackpropInputConfig,conv3DConfig2,cosConfig2,coshConfig2,cropAndResizeConfig2,cumsumConfig2,denseBincountConfig2,depthToSpaceConfig2,depthwiseConv2dNativeBackpropFilterConfig2,depthwiseConv2dNativeBackpropInputConfig2,depthwiseConv2dNativeConfig2,diagConfig2,dilation2DConfig,eluConfig2,eluGradConfig3,equalConfig2,erfConfig2,expConfig2,expandDimsConfig2,expm1Config2,fftConfig2,fillConfig2,flipLeftRightConfig2,floorConfig2,floorDivConfig2,fromPixelsConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig2,gatherV2Config2,greaterConfig2,greaterEqualConfig2,identityConfig2,ifftConfig2,imagConfig2,isFiniteConfig2,isInfConfig2,isNaNConfig2,leakyReluConfig2,lessConfig2,lessEqualConfig2,linSpaceConfig2,log1pConfig2,logConfig2,logicalAndConfig2,logicalNotConfig2,logicalOrConfig2,maxConfig2,maxPool3DConfig2,maxPoolConfig2,maxPoolGrad3DConfig,maxPoolGradConfig3,maxPoolWithArgmaxConfig2,maximumConfig2,meanConfig2,minConfig2,minimumConfig2,mirrorPadConfig2,modConfig2,multinomialConfig2,multiplyConfig2,negConfig2,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config2,nonMaxSuppressionV5Config2,notEqualConfig2,oneHotConfig2,onesLikeConfig2,packConfig2,padV2Config2,powConfig2,preluConfig2,prodConfig2,rangeConfig2,realConfig2,realDivConfig2,reciprocalConfig2,relu6Config2,reluConfig2,reshapeConfig2,resizeBilinearConfig2,resizeBilinearGradConfig3,resizeNearestNeighborConfig2,resizeNearestNeighborGradConfig3,reverseConfig2,rotateWithOffsetConfig2,roundConfig2,rsqrtConfig2,scatterNdConfig2,selectConfig2,seluConfig2,sigmoidConfig2,signConfig2,sinConfig2,sinhConfig2,sliceConfig2,softmaxConfig2,softplusConfig2,spaceToBatchNDConfig2,sparseToDenseConfig2,splitVConfig2,sqrtConfig2,squareConfig2,squaredDifferenceConfig2,stepConfig2,stridedSliceConfig2,subConfig2,sumConfig2,tanConfig2,tanhConfig2,tileConfig2,topKConfig2,transposeConfig2,uniqueConfig2,unpackConfig2,unsortedSegmentSumConfig2,zerosLikeConfig2];for(let kernelConfig of kernelConfigs2)registerKernel(kernelConfig);var CppDType;(function(CppDType2){CppDType2[CppDType2.float32=0]="float32",CppDType2[CppDType2.int32=1]="int32",CppDType2[CppDType2.bool=2]="bool",CppDType2[CppDType2.string=3]="string",CppDType2[CppDType2.complex64=4]="complex64"})(CppDType||(CppDType={}));var FusableActivation;(function(FusableActivation2){FusableActivation2[FusableActivation2.linear=0]="linear",FusableActivation2[FusableActivation2.relu=1]="relu",FusableActivation2[FusableActivation2.relu6=2]="relu6",FusableActivation2[FusableActivation2.prelu=3]="prelu",FusableActivation2[FusableActivation2.leakyrelu=4]="leakyrelu"})(FusableActivation||(FusableActivation={}));var wasmFusedMatMul;function setup(backend22){wasmFusedMatMul=backend22.wasm.cwrap(_FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function fusedBatchMatMul(args){let{inputs,backend:backend22,attrs}=args,{a,b,bias,preluActivationWeights}=inputs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA,transposeB,activation:activation2,leakyreluAlpha}=attrs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${biasData.shape.length}.`);biasId=biasData.id}let preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id,fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let leftDim=transposeA?a.shape[2]:a.shape[1],rightDim=transposeB?b.shape[1]:b.shape[2],batchDim=a.shape[0],out=backend22.makeOutput([batchDim,leftDim,rightDim],a.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer);return wasmFusedMatMul(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,transposeA,transposeB,fusedActivation,biasId,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedMatMulConfig={kernelName:_FusedMatMul,backendName:"wasm",setupFunc:setup,kernelFunc:fusedBatchMatMul};function createUnaryKernelConfig(kernelName){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","number"])}function kernelFunc3(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc9(xId,outId),out}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var absConfig3=createUnaryKernelConfig(Abs);function createBinaryKernelConfig(kernelName,supportsFullBroadcast17,dtype){let wasmFunc9;function setupFunc3(backend22){wasmFunc9=backend22.wasm.cwrap(kernelName,null,["number","array","number","number","array","number","number","number"])}function kernelFunc3(args){let{backend:backend22,inputs}=args,{a,b}=inputs,aId=backend22.dataIdMap.get(a.dataId).id,bId=backend22.dataIdMap.get(b.dataId).id,outputType=dtype!=null?dtype:a.dtype,newShape=backend_util_exports.assertAndGetBroadcastShape(a.shape,b.shape),out=backend22.makeOutput(newShape,outputType);if(util_exports.sizeFromShape(newShape)===0)return out;let aShapeBytes=new Uint8Array(new Int32Array(a.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b.shape).buffer),outId=backend22.dataIdMap.get(out.dataId).id,kernelFunc4=()=>wasmFunc9(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;let aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc3,kernelFunc:kernelFunc3}}var supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast),wasmFunc;function setupFunc(backend22){wasmFunc=backend22.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){let{inputs,backend:backend22}=args,out=backend22.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;let inputIds=inputs.map(x=>backend22.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}var addNConfig3={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity3(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity3},wasmTranspose;function setup2(backend22){wasmTranspose=backend22.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose4(args){let{inputs,backend:backend22,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm),permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}var transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose4,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend22){let xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape),axes=originalAxes,permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank),xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){let newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}var reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape4},wasmBatchMatMul;function setup5(backend22){wasmBatchMatMul=backend22.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul3(args){let{inputs,backend:backend22,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);let outShape=(batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2)).concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);let a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape4({inputs:{x:a},backend:backend22,attrs:{shape:a3dShape}}),b3d=reshape4({inputs:{x:b},backend:backend22,attrs:{shape:b3dShape}}),a3dId=backend22.dataIdMap.get(a3d.dataId).id,b3dId=backend22.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend22.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend22.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}var batchMatMulConfig3={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul3};function cast4(args){let{inputs:{x},attrs:{dtype},backend:backend22}=args,out=backend22.makeOutput(x.shape,dtype),inVals=backend22.typedArrayFromHeap(x);return backend22.typedArrayFromHeap(out).set(inVals),out}var castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast4},wasmClip;function setup6(backend22){wasmClip=backend22.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}var clipByValueConfig2={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat4(args){let{inputs,backend:backend22}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),$inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return identity3({inputs:{x:$inputs[0]},backend:backend22});let out=backend22.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;let shapes=$inputs.map(t=>t.shape);if(backend_util_exports.assertParamsConsistent(shapes,axis),$inputs[0].dtype==="string"){let inputs2D=$inputs.map(t=>{let innerSize=util_exports.sizeFromShape(t.shape.slice(axis));return reshape4({inputs:{x:t},backend:backend22,attrs:{shape:[-1,innerSize]}})}),inputsValShapes=inputs2D.map(t=>({vals:backend22.readSync(t.dataId),shape:t.shape}));outShape=backend_util_exports.computeOutShape(inputs2D.map(t=>t.shape),1);let simplyConcat=inputs2D[0].shape[0]===1,outVals2=concatImpl(inputsValShapes,outShape,inputs[0].dtype,simplyConcat),finalOutShape=backend_util_exports.computeOutShape($inputs.map(t=>t.shape),axis);out.shape=finalOutShape;let outData=backend22.dataIdMap.get(out.dataId);return outData.stringBytes=backend_util_exports.fromStringArrayToUint8(outVals2),out}let batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis)),sumInnerDims=0,innerDims=$inputs.map(input2=>{let innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend22.typedArrayFromHeap(input2)),outVals=backend22.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);let permutation=backend_util_exports.getAxesPermutation([axis],xRank),permutedX=x;permutation!==null&&(permutedX=transpose4({inputs:{x},attrs:{perm:permutation},backend:backend22}));let permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);let permutedOut=backend22.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend22.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend22.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse5?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){let undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose4({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend22}),backend22.disposeData(permutedX.dataId),backend22.disposeData(permutedOut.dataId)}return out}var cumsumConfig3={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum4},wasmDepthToSpace;function setup11(backend22){wasmDepthToSpace=backend22.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);let batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend22.makeOutput(outputShape,"float32"),xId=backend22.dataIdMap.get(x.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthToSpace(xId,blockSize,dataFormat==="NHWC"?1:0,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}var depthToSpaceConfig3={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace4},wasmDepthwiseConv2d;function setup12(backend22){wasmDepthwiseConv2d=backend22.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d3(args){let{inputs,attrs,backend:backend22}=args,{x,filter}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad3,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad3,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var depthwiseConv2dNativeConfig3={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d3},supportsFullBroadcast2=!1,equalConfig3=createBinaryKernelConfig(Equal,supportsFullBroadcast2,"bool"),expConfig3=createUnaryKernelConfig(Exp);function expandDims4(args){let{inputs,attrs,backend:backend22}=args,{input:input2}=inputs,{dim}=attrs,inputRank=input2.shape.length,newShape=input2.shape.slice(),$dim=dim;return dim<0&&(util_exports.assert(-(inputRank+1)<=dim,()=>`Axis must be in the interval [${-(inputRank+1)}, ${inputRank}]`),$dim=inputRank+dim+1),newShape.splice($dim,0,1),reshape4({inputs:{x:input2},backend:backend22,attrs:{shape:newShape}})}var expandDimsConfig3={kernelName:ExpandDims,backendName:"wasm",kernelFunc:expandDims4};function fill4(args){let{attrs:{shape,value,dtype},backend:backend22}=args,out=backend22.makeOutput(shape,dtype);return backend22.typedArrayFromHeap(out).fill(value),out}var fillConfig3={kernelName:Fill,backendName:"wasm",kernelFunc:fill4},wasmFlipLeftRight;function setup13(backend22){wasmFlipLeftRight=backend22.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){let{inputs,backend:backend22}=args,{image:image3}=inputs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}var flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},floorConfig3=createUnaryKernelConfig(Floor),supportsFullBroadcast3=!1,floorDivConfig3=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast3),wasmBatchNorm;function setup14(backend22){wasmBatchNorm=backend22.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){let{backend:backend22,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean4,variance,offset,scale:scale2}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,meanId=backend22.dataIdMap.get(mean4.dataId).id,varianceId=backend22.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend22.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend22.dataIdMap.get(scale2.dataId).id:0,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}var fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm},wasmFusedConv2d;function setup15(backend22){wasmFusedConv2d=backend22.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d2(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedConv2DConfig3={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d2},wasmFusedDepthwiseConv2d;function setup16(backend22){wasmFusedDepthwiseConv2d=backend22.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){let{inputs,attrs,backend:backend22}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad3,dilations,dataFormat,dimRoundingMode,activation:activation2,leakyreluAlpha}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad3,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let xId=backend22.dataIdMap.get(x.dataId).id,filterId=backend22.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels,biasId=0;if(bias!=null){let biasData=backend22.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}let filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend22.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,leakyreluAlpha||0,outId),out}var fusedDepthwiseConv2DConfig3={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d},wasmGatherNd;function setup17(backend22){wasmGatherNd=backend22.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd3(args){let{backend:backend22,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend22.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;let indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xId=backend22.dataIdMap.get(params.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}var gatherNdConfig3={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd3},wasmGather;function setup18(backend22){wasmGather=backend22.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV23(args){let{backend:backend22,inputs,attrs}=args,{x,indices}=inputs,{axis,batchDims}=attrs,parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis,batchDims),flattenX=reshape4({inputs:{x},attrs:{shape:[shapeInfo.batchSize,shapeInfo.outerSize,shapeInfo.dimSize,shapeInfo.sliceSize]},backend:backend22}),indicesSize=util_exports.sizeFromShape(indices.shape),flattenIndex=reshape4({inputs:{x:indices},attrs:{shape:[shapeInfo.batchSize,indicesSize/shapeInfo.batchSize]},backend:backend22}),flattenOutputShape=[shapeInfo.batchSize,shapeInfo.outerSize,indicesSize/shapeInfo.batchSize,shapeInfo.sliceSize],out=backend22.makeOutput(flattenOutputShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;let stridesSize=flattenX.shape.length-1,xId=backend22.dataIdMap.get(flattenX.dataId).id,indicesId=backend22.dataIdMap.get(flattenIndex.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenX.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(flattenOutputShape)).buffer);return wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,shapeInfo.batchSize,outStridesBytes,outId),out.shape=shapeInfo.outputShape,out}var gatherV2Config3={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV23},supportsFullBroadcast4=!1,greaterConfig3=createBinaryKernelConfig(Greater,supportsFullBroadcast4,"bool"),supportsFullBroadcast5=!1,greaterEqualConfig3=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast5,"bool"),wasmFunc3;function setupFunc2(backend22){wasmFunc3=backend22.wasm.cwrap(LeakyRelu,null,["number","number","number"])}function leakyRelu4(args){let{inputs:{x},attrs:{alpha},backend:backend22}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmFunc3(xId,alpha,outId)}return out}var leakyReluConfig3={kernelName:LeakyRelu,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:leakyRelu4},supportsFullBroadcast6=!1,lessConfig3=createBinaryKernelConfig(Less,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessEqualConfig3=createBinaryKernelConfig(LessEqual,supportsFullBroadcast7,"bool"),logConfig3=createUnaryKernelConfig(Log),supportsFullBroadcast8=!1,logicalAndConfig3=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast8,"bool"),wasmMax;function setup19(backend22){wasmMax=backend22.wasm.cwrap(Max,null,["number, number, number"])}function max4(args){let{backend:backend22,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,inputId=backend22.dataIdMap.get(x.dataId).id,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max4},supportsFullBroadcast9=!1,maximumConfig3=createBinaryKernelConfig(Maximum,supportsFullBroadcast9),wasmMaxPool;function setup20(backend22){wasmMaxPool=backend22.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){let{inputs,attrs,backend:backend22}=args,x=inputs.x,xId=backend22.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad3,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad3,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);let out=backend22.makeOutput(convInfo.outShape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}var maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4},wasmMean;function setup21(backend22){wasmMean=backend22.wasm.cwrap(Mean,null,["number, number, number"])}function mean3(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("mean",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),castedInput=input2;input2.dtype!=="float32"&&(castedInput=cast4({backend:backend22,inputs:{x:input2},attrs:{dtype:"float32"}}),inputId=backend22.dataIdMap.get(castedInput.dataId).id);let out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMean(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return input2.dtype!=="float32"&&backend22.disposeData(castedInput.dataId),out}var meanConfig3={kernelName:Mean,backendName:"wasm",setupFunc:setup21,kernelFunc:mean3},wasmMin;function setup22(backend22){wasmMin=backend22.wasm.cwrap(Min,null,["number, number, number"])}function min4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22);if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}let inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var minConfig3={kernelName:Min,backendName:"wasm",setupFunc:setup22,kernelFunc:min4},supportsFullBroadcast10=!1,minimumConfig3=createBinaryKernelConfig(Minimum,supportsFullBroadcast10),supportsFullBroadcast11=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast11),negConfig3=createUnaryKernelConfig(Neg);function parseResultStruct(backend22,resOffset){let result=new Int32Array(backend22.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend22.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}var wasmFunc4;function setup23(backend22){wasmFunc4=backend22.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);return backend22.wasm._free(pSelectedScores),backend22.wasm._free(pValidOutputs),backend22.makeOutput([selectedSize],"int32",pSelectedIndices)}var nonMaxSuppressionV3Config3={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup23,kernelFunc},wasmFunc5;function setup24(backend22){wasmFunc5=backend22.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV43(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pSelectedScores);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend22.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}var nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup24,kernelFunc:nonMaxSuppressionV43},wasmFunc6;function setup25(backend22){wasmFunc6=backend22.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){let{backend:backend22,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend22.dataIdMap.get(boxes.dataId).id,scoresId=backend22.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc6(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend22,resOffset);backend22.wasm._free(pValidOutputs);let selectedIndicesTensor=backend22.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend22.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}var nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup25,kernelFunc:kernelFunc2},supportsFullBroadcast12=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast12,"bool"),wasmOneHot;function setup26(backend22){wasmOneHot=backend22.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot4(args){let{inputs,backend:backend22,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend22.makeOutput([...indices.shape,depth],"int32"),outId=backend22.dataIdMap.get(out.dataId).id,indicesId=backend22.dataIdMap.get(indices.dataId).id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}var oneHotConfig3={kernelName:OneHot,backendName:"wasm",setupFunc:setup26,kernelFunc:oneHot4};function onesLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(1),out}var onesLikeConfig3={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike4};function pack3(args){let{inputs,backend:backend22,attrs}=args,{axis}=attrs;if(inputs.length===1)return expandDims4({inputs:{input:inputs[0]},backend:backend22,attrs:{dim:axis}});let shape=inputs[0].shape,dtype=inputs[0].dtype;inputs.forEach(t=>{util_exports.assertShapesMatch(shape,t.shape,"All tensors passed to stack must have matching shapes"),util_exports.assert(dtype===t.dtype,()=>"All tensors passed to stack must have matching dtypes")});let expandedTensors=inputs.map(t=>expandDims4({inputs:{input:t},backend:backend22,attrs:{dim:axis}}));return concat4({inputs:expandedTensors,backend:backend22,attrs:{axis}})}var packConfig3={kernelName:Pack,backendName:"wasm",kernelFunc:pack3},wasmPadV2;function setup27(backend22){wasmPadV2=backend22.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad2(args){let{inputs:{x},backend:backend22,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(outShape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}var padV2Config3={kernelName:PadV2,backendName:"wasm",kernelFunc:pad2,setupFunc:setup27},supportsFullBroadcast13=!1,powConfig3=createBinaryKernelConfig(Pow,supportsFullBroadcast13),wasmPrelu;function setup28(backend22){wasmPrelu=backend22.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu4(args){let{inputs,backend:backend22}=args,{x,alpha}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,weightsId=backend22.dataIdMap.get(alpha.dataId).id,out=backend22.makeOutput(x.shape,"float32"),outId=backend22.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}var preluConfig3={kernelName:Prelu,backendName:"wasm",setupFunc:setup28,kernelFunc:prelu4},wasmProd;function setup29(backend22){wasmProd=backend22.wasm.cwrap(Prod,null,["number","number","number","number"])}function prod4(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("prod",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmProd(inputId,reduceSize,CppDType[out.dtype],outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var prodConfig3={kernelName:Prod,backendName:"wasm",setupFunc:setup29,kernelFunc:prod4},range4=args=>{let{backend:backend22,attrs}=args,{start,stop,step:step4,dtype}=attrs,values=rangeImpl(start,stop,step4,dtype),out=backend22.makeOutput([values.length],dtype);return backend22.typedArrayFromHeap(out).set(values),out},rangeConfig3={kernelName:Range,backendName:"wasm",kernelFunc:range4},supportsFullBroadcast14=!0,realDivConfig3=createBinaryKernelConfig(RealDiv,supportsFullBroadcast14),reluConfig3=createUnaryKernelConfig(Relu),relu6Config3=createUnaryKernelConfig(Relu6),wasmResizeBilinear;function setup30(backend22){wasmResizeBilinear=backend22.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number","number"])}function resizeBilinear4(args){let{backend:backend22,inputs,attrs}=args,{images}=inputs,{alignCorners,halfPixelCenters,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels],xData=backend22.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast4({backend:backend22,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend22.dataIdMap.get(castedData.dataId));let xId=xData.id,out=backend22.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;let outId=backend22.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,halfPixelCenters?1:0,outId),castedData!=null&&backend22.disposeData(castedData.dataId),out}var resizeBilinearConfig3={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup30,kernelFunc:resizeBilinear4},wasmReverse;function setup31(backend22){wasmReverse=backend22.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity3({inputs:{x},backend:backend22});let out=backend22.makeOutput(x.shape,x.dtype),xId=backend22.dataIdMap.get(x.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape4({inputs:{x:out},attrs:{shape:x.shape},backend:backend22})}var reverseConfig3={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse4,setupFunc:setup31},wasmRotate;function setup32(backend22){wasmRotate=backend22.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){let{inputs,backend:backend22,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend22.makeOutput(image3.shape,image3.dtype),imageId=backend22.dataIdMap.get(image3.dataId).id,outId=backend22.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}var rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup32},roundConfig3=createUnaryKernelConfig(Round),rsqrtConfig3=createUnaryKernelConfig(Rsqrt),wasmScatterNd;function setup33(backend22){wasmScatterNd=backend22.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd3(args){let{backend:backend22,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend22.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;let{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesId=backend22.dataIdMap.get(indices.dataId).id,updatesId=backend22.dataIdMap.get(updates.dataId).id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend22.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}var scatterNdConfig3={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup33,kernelFunc:scatterNd3},wasmSelect;function setup34(backend22){wasmSelect=backend22.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function select3(args){let{inputs,backend:backend22}=args,{condition,t,e}=inputs,conditionId=backend22.dataIdMap.get(condition.dataId).id,tId=backend22.dataIdMap.get(t.dataId).id,eId=backend22.dataIdMap.get(e.dataId).id,out=backend22.makeOutput(t.shape,t.dtype),outId=backend22.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}var selectConfig3={kernelName:Select,backendName:"wasm",kernelFunc:select3,setupFunc:setup34},wasmFunc7;function setup35(backend22){wasmFunc7=backend22.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid4(args){let{backend:backend22,inputs:{x}}=args,xId=backend22.dataIdMap.get(x.dataId).id,out=backend22.makeOutput(x.shape,x.dtype),outId=backend22.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId),out}var sigmoidConfig3={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup35,kernelFunc:sigmoid4},sinConfig3=createUnaryKernelConfig(Sin);function slice4(args){let{inputs:{x},attrs:{begin,size},backend:backend22}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend22.readSync(x.dataId),out=backend22.makeOutput(size_,x.dtype),xStrides=util_exports.computeStrides(x.shape),outData=backend22.dataIdMap.get(out.dataId);if(isContinous){let flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return x.dtype==="string"?outData.stringBytes=xVals.slice(flatOffset,flatOffset+util_exports.sizeFromShape(size_)):backend22.typedArrayFromHeap(out).set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}if(x.dtype==="string"){let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);return outData.stringBytes=res,out}let outVals=backend22.typedArrayFromHeap(out),rank=x.shape.length;if(rank===2)slice2d2(xVals,xStrides[0],outVals,begin_,size_);else if(rank===3)slice3d2(xVals,xStrides[0],xStrides[1],outVals,begin_,size_);else if(rank===4)slice4d2(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_);else{let res=sliceImpl(xVals,begin_,size_,x.shape,x.dtype);outVals.set(res)}return out}function slice2d2(xVals,xStride,outVals,begin,size){let outOffset=0,beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;i{let xSliceSize=[...size];xSliceSize[$axis]=s;let xSlice=slice4({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend22});return begin[$axis]+=s,xSlice})}var splitVConfig3={kernelName:SplitV,backendName:"wasm",kernelFunc:splitV3},sqrtConfig3=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15),wasmStridedSlice;function setup37(backend22){wasmStridedSlice=backend22.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice4(args){let{backend:backend22,inputs,attrs}=args,{x}=inputs,{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));let{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});let xReshaped=reshape4({inputs:{x},attrs:{shape:newShape},backend:backend22}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;let shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});let size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1);if(strides.every(v=>v===1)){let xSliced=slice4({inputs:{x},attrs:{begin,size},backend:backend22});return reshape4({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend22})}let out=backend22.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){let xId=backend22.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend22.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape4({inputs:{x:out},attrs:{shape:outShape},backend:backend22})}var stridedSliceConfig3={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup37,kernelFunc:stridedSlice4},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16),wasmSum;function setup38(backend22){wasmSum=backend22.wasm.cwrap(Sum,null,["number, number, number"])}function sum5(args){let{backend:backend22,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,inputId=xId,input2=x,{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend22),reductionAxes=axes;if(inputWasTransposed){let transposedId=backend22.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);let[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend22.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){let outId=backend22.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend22.disposeData(transposed.dataId),keepDims){let newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}var sumConfig3={kernelName:Sum,backendName:"wasm",setupFunc:setup38,kernelFunc:sum5},tanhConfig3=createUnaryKernelConfig(Tanh),wasmTile;function setup39(backend22){wasmTile=backend22.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile4(args){let{inputs,backend:backend22,attrs}=args,{x}=inputs,xId=backend22.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i{let{x}=inputs,{k,sorted}=attrs,xId=backend22.dataIdMap.get(x.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),outputShape=x.shape.slice();outputShape[outputShape.length-1]=k;let outValues=backend22.makeOutput(outputShape,x.dtype),outValuesId=backend22.dataIdMap.get(outValues.dataId).id,outIndices=backend22.makeOutput(outputShape,"int32"),outIndicesId=backend22.dataIdMap.get(outIndices.dataId).id;return wasmTopK(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],k,sorted,outValuesId,outIndicesId),[outValues,outIndices]},topKConfig3={kernelName:TopK,backendName:"wasm",setupFunc:setup40,kernelFunc:topk2};function unpack3(args){let{inputs,backend:backend22,attrs}=args,{value}=inputs,{axis}=attrs;axis<0&&(axis+=value.shape.length);let numOutputs=value.shape[axis],rank=value.shape.length,outShape=new Array(rank-1),outIndex=0;for(let i=0;i({dataId,dtype,shape:outShape}))}var unpackConfig3={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack3};function zerosLike4(args){let{inputs:{x},backend:backend22}=args,out=backend22.makeOutput(x.shape,x.dtype);return backend22.typedArrayFromHeap(out).fill(0),out}var zerosLikeConfig3={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike4},kernelConfigs3=[absConfig3,addConfig3,addNConfig3,argMaxConfig3,avgPoolConfig3,batchMatMulConfig3,castConfig3,clipByValueConfig2,concatConfig3,conv2DConfig3,conv2DBackpropInputConfig3,cosConfig3,cropAndResizeConfig3,cumsumConfig3,depthToSpaceConfig3,depthwiseConv2dNativeConfig3,equalConfig3,expConfig3,expandDimsConfig3,fillConfig3,flipLeftRightConfig3,floorConfig3,floorDivConfig3,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig3,fusedDepthwiseConv2DConfig3,gatherNdConfig3,gatherV2Config3,greaterConfig3,greaterEqualConfig3,identityConfig3,leakyReluConfig3,lessConfig3,lessEqualConfig3,logConfig3,logicalAndConfig3,maxConfig3,maximumConfig3,maxPoolConfig3,meanConfig3,minConfig3,minimumConfig3,multiplyConfig3,negConfig3,nonMaxSuppressionV3Config3,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig3,onesLikeConfig3,packConfig3,padV2Config3,powConfig3,preluConfig3,prodConfig3,rangeConfig3,realDivConfig3,reluConfig3,relu6Config3,reshapeConfig3,resizeBilinearConfig3,reverseConfig3,rotateWithOffsetConfig3,rsqrtConfig3,roundConfig3,scatterNdConfig3,selectConfig3,sigmoidConfig3,sinConfig3,sliceConfig3,softmaxConfig3,splitVConfig3,sqrtConfig3,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig3,subConfig3,sumConfig3,tanhConfig3,tileConfig3,topKConfig3,transposeConfig3,unpackConfig3,zerosLikeConfig3];for(let kernelConfig of kernelConfigs3)registerKernel(kernelConfig);var ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var import_tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',import_tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),BackendWasm=class extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine())}write(values,shape,dtype){let dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){let start=util_exports.now();return f(),{kernelMs:util_exports.now()-start}}move(dataId,values,shape,dtype){let id=this.dataIdNextNumber++;if(dtype==="string"){let stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}let size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){let{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;let bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){let data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};let id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});let size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){let buffer2=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer2,memoryOffset,size);case"int32":return new Int32Array(buffer2,memoryOffset,size);case"bool":return new Uint8Array(buffer2,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}};function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){let[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{let factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){let response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=import_tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+import_tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=import_tfjs_backend_wasm.default(factoryConfig);let voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{initialized||initAborted||(initAborted=!0,reject({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))}})}function typedArrayFromBuffer(buffer2,dtype){switch(dtype){case"float32":return new Float32Array(buffer2);case"int32":return new Int32Array(buffer2);case"bool":return new Uint8Array(buffer2);default:throw new Error(`Unknown dtype ${dtype}`)}}var wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;let missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}var version9="2.8.3",WASM_PRIORITY=2;registerBackend("wasm",async()=>{let{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);var exports_constraints_exports={};__export2(exports_constraints_exports,{maxNorm:()=>maxNorm,minMaxNorm:()=>minMaxNorm,nonNeg:()=>nonNeg,unitNorm:()=>unitNorm});var _epsilon;function epsilon2(){return _epsilon==null&&(_epsilon=backend().epsilon()),_epsilon}function imageDataFormat(){return"channelsLast"}var AttributeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AttributeError.prototype)}},RuntimeError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,RuntimeError.prototype)}},ValueError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,ValueError.prototype)}},NotImplementedError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,NotImplementedError.prototype)}},AssertionError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,AssertionError.prototype)}},IndexError=class extends Error{constructor(message){super(message);Object.setPrototypeOf(this,IndexError.prototype)}};function pyListRepeat(value,numValues){if(Array.isArray(value)){let newArray=[];for(let i=0;ip1.toUpperCase())}var _GLOBAL_CUSTOM_OBJECTS={};function serializeKerasObject(instance){if(instance==null)return null;let dict={};return dict.className=instance.getClassName(),dict.config=instance.getConfig(),dict}function convertNDArrayScalarsInConfig(config2){if(!(config2==null||typeof config2!="object"))if(Array.isArray(config2))config2.forEach(configItem=>convertNDArrayScalarsInConfig(configItem));else{let fields=Object.keys(config2);for(let field of fields){let value=config2[field];value!=null&&typeof value=="object"&&(!Array.isArray(value)&&value.type==="ndarray"&&typeof value.value=="number"?config2[field]=value.value:convertNDArrayScalarsInConfig(value))}}}function deserializeKerasObject(identifier,moduleObjects={},customObjects={},printableModuleName="object",fastWeightInit=!1){if(typeof identifier=="string"){let functionName=identifier,fn;if(functionName in customObjects)fn=customObjects[functionName];else if(functionName in _GLOBAL_CUSTOM_OBJECTS)fn=_GLOBAL_CUSTOM_OBJECTS[functionName];else if(fn=moduleObjects[functionName],fn==null)throw new ValueError(`Unknown ${printableModuleName}: ${identifier}. This may be due to one of the following reasons: 1. The ${printableModuleName} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return fn}else{let config3=identifier;if(config3.className==null||config3.config==null)throw new ValueError(`${printableModuleName}: Improper config format: ${JSON.stringify(config3)}. -'className' and 'config' must set.`);let className=config3.className,cls,fromConfig;if(className in customObjects?[cls,fromConfig]=customObjects[className]:className in _GLOBAL_CUSTOM_OBJECTS?[cls,fromConfig]=_GLOBAL_CUSTOM_OBJECTS.className:className in moduleObjects&&([cls,fromConfig]=moduleObjects[className]),cls==null)throw new ValueError(`Unknown ${printableModuleName}: ${className}. This may be due to one of the following reasons: +2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return fn}else{let config2=identifier;if(config2.className==null||config2.config==null)throw new ValueError(`${printableModuleName}: Improper config format: ${JSON.stringify(config2)}. +'className' and 'config' must set.`);let className=config2.className,cls,fromConfig;if(className in customObjects?[cls,fromConfig]=customObjects[className]:className in _GLOBAL_CUSTOM_OBJECTS?[cls,fromConfig]=_GLOBAL_CUSTOM_OBJECTS.className:className in moduleObjects&&([cls,fromConfig]=moduleObjects[className]),cls==null)throw new ValueError(`Unknown ${printableModuleName}: ${className}. This may be due to one of the following reasons: 1. The ${printableModuleName} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(fromConfig!=null){let customObjectsCombined={};for(let key of Object.keys(_GLOBAL_CUSTOM_OBJECTS))customObjectsCombined[key]=_GLOBAL_CUSTOM_OBJECTS[key];for(let key of Object.keys(customObjects))customObjectsCombined[key]=customObjects[key];let nestedConfig=config3.config;nestedConfig.customObjects=customObjectsCombined;let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];convertNDArrayScalarsInConfig(config3.config);let returnObj=fromConfig(cls,config3.config,customObjects,fastWeightInit);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}else{let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];let returnObj=new cls(config3.config);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}}}function numberCompare(a,b){return ab?1:0}function reverseNumberCompare(a,b){return-1*numberCompare(a,b)}function unique4(xs){if(xs==null)return xs;let out=[];for(let x of xs)out.indexOf(x)===-1&&out.push(x);return out}function isObjectEmpty(obj){if(obj==null)throw new ValueError(`Invalid value in obj: ${JSON.stringify(obj)}`);for(let key in obj)if(obj.hasOwnProperty(key))return!1;return!0}function checkStringTypeUnionValue(values,label,value){if(value!=null&&values.indexOf(value)<0)throw new ValueError(`${value} is not a valid ${label}. Valid values are ${values} or null/undefined.`)}function checkArrayTypeAndLength(x,expectedType,minLength=0,maxLength=Infinity){return assert2(minLength>=0),assert2(maxLength>=minLength),Array.isArray(x)&&x.length>=minLength&&x.length<=maxLength&&x.every(e=>typeof e===expectedType)}function assertPositiveInteger(value,name){Array.isArray(value)?(util_exports.assert(value.length>0,()=>`${name} is unexpectedly an empty array.`),value.forEach((v,i)=>assertPositiveInteger(v,`element ${i+1} of ${name}`))):util_exports.assert(Number.isInteger(value)&&value>0,()=>`Expected ${name} to be a positive integer, but got ${formatAsFriendlyString(value)}.`)}function formatAsFriendlyString(value){return value===null?"null":Array.isArray(value)?"["+value.map(v=>formatAsFriendlyString(v)).join(",")+"]":typeof value=="string"?`"${value}"`:`${value}`}function debounce(f,waitMs){let lastTime=util_exports.now(),lastResult;return(...args)=>{let now22=util_exports.now();return now22-lastTimesqrt(sum2(mul(w,w),axis,!0)))}var Constraint=class extends serialization_exports.Serializable{getConfig(){return{}}},MaxNorm=class extends Constraint{constructor(args){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=clipByValue(norms,0,this.maxValue);return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};MaxNorm.className="MaxNorm";serialization_exports.registerClass(MaxNorm);var UnitNorm=class extends Constraint{constructor(args){super();this.defaultAxis=0,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>div(w,add2(epsilon2(),calcL2Norms(w,this.axis))))}getConfig(){return{axis:this.axis}}};UnitNorm.className="UnitNorm";serialization_exports.registerClass(UnitNorm);var NonNeg=class extends Constraint{apply(w){return relu(w)}};NonNeg.className="NonNeg";serialization_exports.registerClass(NonNeg);var MinMaxNorm=class extends Constraint{constructor(args){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=args.minValue!=null?args.minValue:this.defaultMinValue,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.rate=args.rate!=null?args.rate:this.defaultRate,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=add2(mul(this.rate,clipByValue(norms,this.minValue,this.maxValue)),mul(1-this.rate,norms));return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};MinMaxNorm.className="MinMaxNorm";serialization_exports.registerClass(MinMaxNorm);var CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function serializeConstraint(constraint){return serializeKerasObject(constraint)}function deserializeConstraint(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"constraint")}function getConstraint(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config3={className:identifier in CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP?CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeConstraint(config3)}else return identifier instanceof Constraint?identifier:deserializeConstraint(identifier)}function maxNorm(args){return new MaxNorm(args)}function unitNorm(args){return new UnitNorm(args)}function nonNeg(){return new NonNeg}function minMaxNorm(config3){return new MinMaxNorm(config3)}var exports_initializers_exports={};__export2(exports_initializers_exports,{constant:()=>constant,glorotNormal:()=>glorotNormal,glorotUniform:()=>glorotUniform,heNormal:()=>heNormal,heUniform:()=>heUniform,identity:()=>identity4,leCunNormal:()=>leCunNormal,leCunUniform:()=>leCunUniform,ones:()=>ones3,orthogonal:()=>orthogonal,randomNormal:()=>randomNormal3,randomUniform:()=>randomUniform2,truncatedNormal:()=>truncatedNormal2,varianceScaling:()=>varianceScaling,zeros:()=>zeros3});var VALID_DATA_FORMAT_VALUES=["channelsFirst","channelsLast"],VALID_INTERPOLATION_FORMAT_VALUES=["nearest","bilinear"],VALID_PADDING_MODE_VALUES=["valid","same","causal"],VALID_POOL_MODE_VALUES=["max","avg"],VALID_BIDIRECTIONAL_MERGE_MODES=["sum","mul","concat","ave"],nameMap=new Map;function checkDataFormat(value){checkStringTypeUnionValue(VALID_DATA_FORMAT_VALUES,"DataFormat",value)}function checkInterpolationFormat(value){checkStringTypeUnionValue(VALID_INTERPOLATION_FORMAT_VALUES,"InterpolationFormat",value)}function checkPaddingMode(value){checkStringTypeUnionValue(VALID_PADDING_MODE_VALUES,"PaddingMode",value)}function checkPoolMode(value){checkStringTypeUnionValue(VALID_POOL_MODE_VALUES,"PoolMode",value)}var _nameScopeStack=[],_nameScopeDivider="/";function nameScope(name,fn){_nameScopeStack.push(name);try{let val=fn();return _nameScopeStack.pop(),val}catch(e){throw _nameScopeStack.pop(),e}}function currentNameScopePrefix(){return _nameScopeStack.length===0?"":_nameScopeStack.join(_nameScopeDivider)+_nameScopeDivider}function getScopedTensorName(tensorName){if(!isValidTensorName(tensorName))throw new Error("Not a valid tensor name: '"+tensorName+"'");return currentNameScopePrefix()+tensorName}function getUniqueTensorName(scopedName){if(!isValidTensorName(scopedName))throw new Error("Not a valid tensor name: '"+scopedName+"'");nameMap.has(scopedName)||nameMap.set(scopedName,0);let index=nameMap.get(scopedName);if(nameMap.set(scopedName,nameMap.get(scopedName)+1),index>0){let result=`${scopedName}_${index}`;return nameMap.set(result,1),result}else return scopedName}var tensorNameRegex=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function isValidTensorName(name){return!!name.match(tensorNameRegex)}function isInteger(x){return x===parseInt(x.toString(),10)}function arrayProd(array2,begin,end){begin==null&&(begin=0),end==null&&(end=array2.length);let prod5=1;for(let i=begin;i{if(x.shape.length!==2)throw new ValueError(`repeat() expects a rank-2 tensor, but received a rank-${x.shape.length} tensor.`);let y=expandDims5(x,1);return tile5(y,[1,n,1])})}function flatten2(x){let newShape=[arrayProd(x.shape)];return x.reshape(newShape)}function batchFlatten(x){if(x.rank<=1)throw new ValueError(`batchFlatten requires a minimum rank of 2. Got rank: ${x.rank}.`);let newShape=[x.shape[0],arrayProd(x.shape,1)];return x.reshape(newShape)}function sliceAlongFirstAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[start,0],[size,array2.shape[1]]);case 3:return slice3d(array2,[start,0,0],[size,array2.shape[1],array2.shape[2]]);case 4:return slice4d(array2,[start,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3]]);case 5:return slice(array2,[start,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4]]);case 6:return slice(array2,[start,0,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4],array2.shape[5]]);default:throw new ValueError(`sliceAlongFirstAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongLastAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[0,start],[array2.shape[0],size]);case 3:return slice3d(array2,[0,0,start],[array2.shape[0],array2.shape[1],size]);case 4:return slice4d(array2,[0,0,0,start],[array2.shape[0],array2.shape[1],array2.shape[2],size]);default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongAxis(array2,start,size,axis){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 3:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice3d(array2,[0,start,0],[array2.shape[0],size,array2.shape[2]]);case 3:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 4:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice4d(array2,[0,start,0,0],[array2.shape[0],size,array2.shape[2],array2.shape[3]]);case 3:return slice4d(array2,[0,0,start,0],[array2.shape[0],array2.shape[1],size,array2.shape[3]]);case 4:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function concatenate(tensors,axis=-1){let rank;return axis<0&&(rank=tensors[0].rank,rank!==0?axis=rank:axis=0),axis===tensors[0].rank&&(axis=-1),concat(tensors,axis)}function concatAlongFirstAxis(a,b){switch(a.rank){case 1:return concat1d([a,b]);case 2:return concat2d([a,b],0);case 3:return concat3d([a,b],0);case 4:return concat4d([a,b],0);default:throw new ValueError(`concatAlongFirstAxis() received an unsupported tensor rank: ${a.rank}`)}}function tile5(x,n){if(Array.isArray(n)||(n=[n]),x.rank!==n.length)throw new ValueError(`The length of input n (${n.length}) does not match the number of dimensions in input x (${x.rank})`);return tile(x,n)}function randomNormal2(shape,mean4=0,stddev=1,dtype,seed){return randomNormal(shape,mean4,stddev,dtype,seed)}function dot2(a,b,activation2,bias){if(a.rank<2||b.rank<2)throw new NotImplementedError(`dot requires both inputs to be rank >= 2 but got x shape = ${a.shape} and y shape = ${b.shape}`);if(b.rank>=3){let xLastDim=a.shape.slice(-1)[0],ySecondLastDim=b.shape.slice(-2)[0];if(xLastDim!==ySecondLastDim)throw new NotImplementedError(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${a.shape} and y shape = ${b.shape}`)}if(a.rank===2&&b.rank===2){let transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2})}else{let aFirstDims=a.shape.slice(),aLastDim=aFirstDims.pop();a=a.reshape([-1,aLastDim]);let bShape=b.shape.slice(),bLastDim=bShape.pop(),ySecondLastDim=bShape.pop(),yOtherDims=[...bShape,bLastDim],perm=Array.from({length:b.rank},(_,i)=>i===0?b.rank-2:i<=b.rank-2?i-1:i);b=b.transpose(perm).reshape([ySecondLastDim,-1]);let outputShape=[...aFirstDims,...yOtherDims],transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2}).reshape(outputShape)}}function gather2(reference,indices,axis){return tidy(()=>(Array.isArray(indices)?indices=tensor1d(indices,"int32"):indices=indices.toInt(),gather(reference,indices,axis)))}function square3(x){return mul(x,x)}function reshapeBias(xRank,bias,dataFormat){let biasShape=bias.shape;if(bias.rank!==1&&bias.rank!==xRank)throw new ValueError(`Unexpected bias dimensions: ${bias.rank}; expected it to be 1 or ${xRank}`);if(xRank===5){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1,1]):bias.reshape([1,biasShape[3],biasShape[0],biasShape[1],biasShape[2]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===4){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1]):bias.reshape([1,biasShape[2],biasShape[0],biasShape[1]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===3){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1]):bias.reshape([1,biasShape[1],biasShape[0]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank<3)return bias;throw new ValueError(`Unsupported input rank by biasAdd: ${bias.rank}`)}function biasAdd(x,bias,dataFormat){return tidy(()=>(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.add(reshapeBias(x.rank,bias,dataFormat))))}function elu4(x,alpha=1){if(alpha!==1)throw new NotImplementedError(`Support for alpha values other than 1 (${alpha}) is not implemented yet.`);return elu(x)}function softsign(x){return tidy(()=>div(x,abs(x).add(1)))}function dropout2(x,level,noiseShape,seed){return tidy(()=>dropout(x,level,noiseShape,seed))}function hardSigmoid(x){return tidy(()=>{let y=add2(.5,mul(.2,x));return clipByValue(y,0,1)})}function inTrainPhase(x,alt,training=!1){return training?x():alt()}var VALID_FAN_MODE_VALUES=["fanIn","fanOut","fanAvg"],VALID_DISTRIBUTION_VALUES=["normal","uniform","truncatedNormal"];function checkFanMode(value){checkStringTypeUnionValue(VALID_FAN_MODE_VALUES,"FanMode",value)}function checkDistribution(value){checkStringTypeUnionValue(VALID_DISTRIBUTION_VALUES,"Distribution",value)}var Initializer=class extends serialization_exports.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Zeros=class extends Initializer{apply(shape,dtype){return zeros(shape,dtype)}};Zeros.className="Zeros";serialization_exports.registerClass(Zeros);var Ones=class extends Initializer{apply(shape,dtype){return ones2(shape,dtype)}};Ones.className="Ones";serialization_exports.registerClass(Ones);var Constant=class extends Initializer{constructor(args){super();if(typeof args!="object")throw new ValueError(`Expected argument of type ConstantConfig but got ${args}`);if(args.value===void 0)throw new ValueError(`config must have value set but got ${args}`);this.value=args.value}apply(shape,dtype){return tidy(()=>mul(scalar(this.value),ones2(shape,dtype)))}getConfig(){return{value:this.value}}};Constant.className="Constant";serialization_exports.registerClass(Constant);var RandomUniform=class extends Initializer{constructor(args){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=args.minval||this.DEFAULT_MINVAL,this.maxval=args.maxval||this.DEFAULT_MAXVAL,this.seed=args.seed}apply(shape,dtype){return randomUniform(shape,this.minval,this.maxval,dtype)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};RandomUniform.className="RandomUniform";serialization_exports.registerClass(RandomUniform);var RandomNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`randomNormal does not support dType ${dtype}.`);return randomNormal2(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};RandomNormal.className="RandomNormal";serialization_exports.registerClass(RandomNormal);var TruncatedNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`truncatedNormal does not support dType ${dtype}.`);return truncatedNormal(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};TruncatedNormal.className="TruncatedNormal";serialization_exports.registerClass(TruncatedNormal);var Identity2=class extends Initializer{constructor(args){super();this.gain=args.gain!=null?args.gain:1}apply(shape,dtype){return tidy(()=>{if(shape.length!==2||shape[0]!==shape[1])throw new ValueError("Identity matrix initializer can only be used for 2D square matrices.");return mul(this.gain,eye(shape[0]))})}getConfig(){return{gain:this.gain}}};Identity2.className="Identity";serialization_exports.registerClass(Identity2);function computeFans(shape,dataFormat="channelsLast"){let fanIn,fanOut;if(checkDataFormat(dataFormat),shape.length===2)fanIn=shape[0],fanOut=shape[1];else if([3,4,5].indexOf(shape.length)!==-1){if(dataFormat==="channelsFirst"){let receptiveFieldSize=arrayProd(shape,2);fanIn=shape[1]*receptiveFieldSize,fanOut=shape[0]*receptiveFieldSize}else if(dataFormat==="channelsLast"){let receptiveFieldSize=arrayProd(shape,0,shape.length-2);fanIn=shape[shape.length-2]*receptiveFieldSize,fanOut=shape[shape.length-1]*receptiveFieldSize}}else{let shapeProd=arrayProd(shape);fanIn=Math.sqrt(shapeProd),fanOut=Math.sqrt(shapeProd)}return[fanIn,fanOut]}var VarianceScaling=class extends Initializer{constructor(args){super();if(args.scale<0)throw new ValueError(`scale must be a positive float. Got: ${args.scale}`);this.scale=args.scale==null?1:args.scale,this.mode=args.mode==null?"fanIn":args.mode,checkFanMode(this.mode),this.distribution=args.distribution==null?"normal":args.distribution,checkDistribution(this.distribution),this.seed=args.seed}apply(shape,dtype){let fans=computeFans(shape),fanIn=fans[0],fanOut=fans[1],scale2=this.scale;if(this.mode==="fanIn"?scale2/=Math.max(1,fanIn):this.mode==="fanOut"?scale2/=Math.max(1,fanOut):scale2/=Math.max(1,(fanIn+fanOut)/2),this.distribution==="normal"){let stddev=Math.sqrt(scale2);if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`${this.getClassName()} does not support dType ${dtype}.`);return truncatedNormal(shape,0,stddev,dtype,this.seed)}else{let limit=Math.sqrt(3*scale2);return randomUniform(shape,-limit,limit,dtype)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};VarianceScaling.className="VarianceScaling";serialization_exports.registerClass(VarianceScaling);var GlorotUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotUniform.className="GlorotUniform";serialization_exports.registerClass(GlorotUniform);var GlorotNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotNormal.className="GlorotNormal";serialization_exports.registerClass(GlorotNormal);var HeNormal=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeNormal.className="HeNormal";serialization_exports.registerClass(HeNormal);var HeUniform=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeUniform.className="HeUniform";serialization_exports.registerClass(HeUniform);var LeCunNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunNormal.className="LeCunNormal";serialization_exports.registerClass(LeCunNormal);var LeCunUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunUniform.className="LeCunNormal";serialization_exports.registerClass(LeCunUniform);var Orthogonal=class extends Initializer{constructor(args){super();if(this.DEFAULT_GAIN=1,this.gain=args.gain==null?this.DEFAULT_GAIN:args.gain,this.seed=args.seed,this.seed!=null)throw new NotImplementedError("Random seed is not implemented for Orthogonal Initializer yet.")}apply(shape,dtype){return tidy(()=>{if(shape.length<2)throw new NotImplementedError("Shape must be at least 2D.");shape[0]*shape[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${shape[0]*shape[1]}) elements: Slowness may result.`);let normalizedShape=shape[0]>shape[1]?[shape[1],shape[0]]:shape,a=randomNormal2(normalizedShape,0,1,"float32"),q=linalg.gramSchmidt(a);return shape[0]>shape[1]&&(q=q.transpose()),mul(this.gain,q)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Orthogonal.className="Orthogonal";serialization_exports.registerClass(Orthogonal);var INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function deserializeInitializer(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"initializer")}function serializeInitializer(initializer){return serializeKerasObject(initializer)}function getInitializer(identifier){if(typeof identifier=="string"){let className=identifier in INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier;if(className==="GlorotNormal")return new GlorotNormal;if(className==="GlorotUniform")return new GlorotUniform;if(className==="HeNormal")return new HeNormal;if(className==="HeUniform")return new HeUniform;if(className==="LeCunNormal")return new LeCunNormal;if(className==="LeCunUniform")return new LeCunUniform;{let config3={};return config3.className=className,config3.config={},deserializeInitializer(config3)}}else return identifier instanceof Initializer?identifier:deserializeInitializer(identifier)}function zeros3(){return new Zeros}function ones3(){return new Ones}function constant(args){return new Constant(args)}function randomUniform2(args){return new RandomUniform(args)}function randomNormal3(args){return new RandomNormal(args)}function truncatedNormal2(args){return new TruncatedNormal(args)}function identity4(args){return new Identity2(args)}function varianceScaling(config3){return new VarianceScaling(config3)}function glorotUniform(args){return new GlorotUniform(args)}function glorotNormal(args){return new GlorotNormal(args)}function heNormal(args){return new HeNormal(args)}function heUniform(args){return new HeUniform(args)}function leCunNormal(args){return new LeCunNormal(args)}function leCunUniform(args){return new LeCunUniform(args)}function orthogonal(args){return new Orthogonal(args)}var exports_layers_exports={};__export2(exports_layers_exports,{Layer:()=>Layer,RNN:()=>RNN,RNNCell:()=>RNNCell,activation:()=>activation,add:()=>add4,alphaDropout:()=>alphaDropout,average:()=>average,averagePooling1d:()=>averagePooling1d,averagePooling2d:()=>averagePooling2d,averagePooling3d:()=>averagePooling3d,avgPool1d:()=>avgPool1d,avgPool2d:()=>avgPool2d,avgPool3d:()=>avgPool3d2,avgPooling1d:()=>avgPooling1d,avgPooling2d:()=>avgPooling2d,avgPooling3d:()=>avgPooling3d,batchNormalization:()=>batchNormalization2,bidirectional:()=>bidirectional,concatenate:()=>concatenate2,conv1d:()=>conv1d2,conv2d:()=>conv2d5,conv2dTranspose:()=>conv2dTranspose2,conv3d:()=>conv3d2,convLstm2d:()=>convLstm2d,convLstm2dCell:()=>convLstm2dCell,cropping2D:()=>cropping2D,dense:()=>dense,depthwiseConv2d:()=>depthwiseConv2d5,dot:()=>dot3,dropout:()=>dropout3,elu:()=>elu5,embedding:()=>embedding,flatten:()=>flatten3,gaussianDropout:()=>gaussianDropout,gaussianNoise:()=>gaussianNoise,globalAveragePooling1d:()=>globalAveragePooling1d,globalAveragePooling2d:()=>globalAveragePooling2d,globalMaxPool1d:()=>globalMaxPool1d,globalMaxPool2d:()=>globalMaxPool2d,globalMaxPooling1d:()=>globalMaxPooling1d,globalMaxPooling2d:()=>globalMaxPooling2d,gru:()=>gru,gruCell:()=>gruCell,input:()=>input,inputLayer:()=>inputLayer,layerNormalization:()=>layerNormalization,leakyReLU:()=>leakyReLU,lstm:()=>lstm,lstmCell:()=>lstmCell,masking:()=>masking,maxPool1d:()=>maxPool1d,maxPool2d:()=>maxPool2d,maxPooling1d:()=>maxPooling1d,maxPooling2d:()=>maxPooling2d,maxPooling3d:()=>maxPooling3d,maximum:()=>maximum4,minimum:()=>minimum4,multiply:()=>multiply3,permute:()=>permute,prelu:()=>prelu5,reLU:()=>reLU,repeatVector:()=>repeatVector,reshape:()=>reshape5,rnn:()=>rnn2,separableConv2d:()=>separableConv2d2,simpleRNN:()=>simpleRNN,simpleRNNCell:()=>simpleRNNCell,softmax:()=>softmax5,spatialDropout1d:()=>spatialDropout1d,stackedRNNCells:()=>stackedRNNCells,thresholdedReLU:()=>thresholdedReLU,timeDistributed:()=>timeDistributed,upSampling2d:()=>upSampling2d,zeroPadding2d:()=>zeroPadding2d});var _nextUniqueTensorId=0;function getNextUniqueTensorId(){return _nextUniqueTensorId++}var _uidPrefixes={};function getUid(prefix=""){return prefix in _uidPrefixes||(_uidPrefixes[prefix]=0),_uidPrefixes[prefix]+=1,prefix+_uidPrefixes[prefix].toString()}function isArrayOfShapes(x){return Array.isArray(x)&&Array.isArray(x[0])}function normalizeShapeList(x){return x.length===0?[]:Array.isArray(x[0])?x:[x]}function getExactlyOneTensor(xs){let x;if(Array.isArray(xs)){if(xs.length!==1)throw new ValueError(`Expected Tensor length to be 1; got ${xs.length}`);x=xs[0]}else x=xs;return x}function getExactlyOneShape(shapes){if(Array.isArray(shapes)&&Array.isArray(shapes[0])){if(shapes.length===1)return shapes=shapes,shapes[0];throw new ValueError(`Expected exactly 1 Shape; got ${shapes.length}`)}else return shapes}function countParamsInWeights(weights){let count2=0;for(let weight of weights)weight.shape.length===0?count2+=1:count2+=weight.shape.reduce((a,b)=>a*b);return count2}var DEFAULT_VARIABLE_NAME_PREFIX="Variable",LayerVariable=class{constructor(val,dtype="float32",name=DEFAULT_VARIABLE_NAME_PREFIX,trainable=!0,constraint=null){this.dtype=dtype==null?"float32":dtype,this.shape=val.shape,this.id=getNextUniqueTensorId(),name=name==null?DEFAULT_VARIABLE_NAME_PREFIX:name,this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName),this.trainable_=trainable,this.constraint=constraint,this.val=variable(val,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(newVal){return this.assertNotDisposed(),checkShapesMatch(this.val,newVal),this.val.id!==newVal.id&&(this.val.assign(newVal),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(trainable){this.trainable_=trainable,this.val.trainable=trainable}};function checkShapesMatch(x,y){if(x.shape.toString()!==y.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(x.shape)+" vs. "+JSON.stringify(y.shape))}function batchGetValue(xs){return xs.map(x=>x.read())}function batchSetValue(variablesAndValues){variablesAndValues.forEach(variableAndValue=>{variableAndValue[0].write(variableAndValue[1])})}var InputSpec=class{constructor(args){this.dtype=args.dtype,this.shape=args.shape,args.shape!=null?this.ndim=args.shape.length:this.ndim=args.ndim,this.maxNDim=args.maxNDim,this.minNDim=args.minNDim,this.axes=args.axes||{}}},SymbolicTensor=class{constructor(dtype,shape,sourceLayer,inputs,callArgs,name,outputTensorIndex){this.dtype=dtype,this.shape=shape,this.sourceLayer=sourceLayer,this.inputs=inputs,this.callArgs=callArgs,this.outputTensorIndex=outputTensorIndex,this.id=getNextUniqueTensorId(),name!=null&&(this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName)),this.rank=shape.length}},_nextNodeID=0,Node=class{constructor(args,callArgs){this.callArgs=callArgs,this.id=_nextNodeID++,this.outboundLayer=args.outboundLayer,this.inboundLayers=args.inboundLayers,this.nodeIndices=args.nodeIndices,this.tensorIndices=args.tensorIndices,this.inputTensors=args.inputTensors,this.outputTensors=args.outputTensors,this.inputMasks=args.inputMasks,this.outputMasks=args.outputMasks,this.inputShapes=args.inputShapes,this.outputShapes=args.outputShapes;for(let layer of args.inboundLayers)layer!=null&&layer.outboundNodes.push(this);args.outboundLayer.inboundNodes.push(this)}getConfig(){let inboundNames=[];for(let layer of this.inboundLayers)layer!=null?inboundNames.push(layer.name):inboundNames.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:inboundNames,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},_nextLayerID=0,Layer=class extends serialization_exports.Serializable{constructor(args={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=_nextLayerID++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let name=args.name;if(!name){let prefix=this.getClassName();name=toSnakeCase(prefix)+"_"+getUid(prefix)}if(this.name=name,this.trainable_=args.trainable==null?!0:args.trainable,args.inputShape!=null||args.batchInputShape!=null){let batchInputShape;if(args.batchInputShape!=null)batchInputShape=args.batchInputShape;else if(args.inputShape!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),batchInputShape=[batchSize].concat(args.inputShape)}this.batchInputShape=batchInputShape;let dtype=args.dtype;dtype==null&&(dtype=args.inputDType),dtype==null&&(dtype="float32"),this.dtype=dtype}args.weights!=null?this.initialWeights=args.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(layer,nodeIndex){return layer.name+"_ib-"+nodeIndex.toString()}getNodeAtIndex(nodeIndex,attrName){if(this.inboundNodes.length===0)throw new RuntimeError(`The layer has never been called and thus has no defined ${attrName}.`);if(this.inboundNodes.length<=nodeIndex)throw new ValueError(`Asked to get ${attrName} at node ${nodeIndex}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[nodeIndex]}getInputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"input").inputTensors)}getOutputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} is not connected, no input to return.`);return singletonOrArray(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return singletonOrArray(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(lossFn=>lossFn())}get updates(){return this._updates}get built(){return this._built}set built(built){this._built=built}get trainable(){return this.trainable_}set trainable(trainable){this._trainableWeights.forEach(w=>w.trainable=trainable),this.trainable_=trainable}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(w=>w.trainable):[]}set trainableWeights(weights){this._trainableWeights=weights}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(w=>!w.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(weights){this._nonTrainableWeights=weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(inputs){if(inputs=toList(inputs),this.inputSpec==null||this.inputSpec.length===0)return;let inputSpec=toList(this.inputSpec);if(inputs.length!==inputSpec.length)throw new ValueError(`Layer ${this.name} expects ${inputSpec.length} inputs, but it received ${inputs.length} input tensors. Input received: ${inputs}`);for(let inputIndex=0;inputIndexspec.maxNDim)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected max_ndim=${spec.maxNDim}, found ndim=${ndim}`);if(spec.minNDim!=null&&ndim=0?xShape[axis]:xShape[xShape.length+axis];if(value!=null&&[value,null].indexOf(xShapeAtAxis)===-1)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected axis ${axis} of input shape to have value ${value} but got shape ${xShape}.`)}}if(spec.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(inputs);let inputShapes=[];for(let xElem of toList(inputs))inputShapes.push(xElem.shape);this.build(singletonOrArray(inputShapes)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&noneAreSymbolic&&(this._refCount=1)}if(this.assertInputCompatibility(inputs),noneAreSymbolic){let output=this.call(inputs,kwargs),outputList=toList(output),outputListCopy=[];for(let x of outputList)inputsList.indexOf(x)!==-1&&(x=x.clone()),outputListCopy.push(x);if(output=singletonOrArray(outputListCopy),this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}else{let inputShape=collectInputShape(inputs),outputShape=this.computeOutputShape(inputShape),output,outputDType=guessOutputDType(inputs);if(this.warnOnIncompatibleInputShape(Array.isArray(inputs)?inputShape[0]:inputShape),outputShape!=null&&outputShape.length>0&&Array.isArray(outputShape[0])?output=outputShape.map((shape,index)=>new SymbolicTensor(outputDType,shape,this,toList(inputs),kwargs,this.name,index)):output=new SymbolicTensor(outputDType,outputShape,this,toList(inputs),kwargs,this.name),this.addInboundNode(inputs,output,null,null,inputShape,outputShape,kwargs),this._refCount++,this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}})}warnOnIncompatibleInputShape(inputShape){if(this.batchInputShape!=null)if(inputShape.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(inputShape)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let dimMismatch=!1;this.batchInputShape.forEach((dimension,i)=>{dimension!=null&&inputShape[i]!=null&&inputShape[i]!==dimension&&(dimMismatch=!0)}),dimMismatch&&console.warn(`The shape of the input tensor (${JSON.stringify(inputShape)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new AttributeError(`The layer ${this.name} has never been called and thus has no defined output shape.`);let allOutputShapes=[];for(let node of this.inboundNodes){let shapeString=JSON.stringify(node.outputShapes);allOutputShapes.indexOf(shapeString)===-1&&allOutputShapes.push(shapeString)}if(allOutputShapes.length===1){let outputShapes=this.inboundNodes[0].outputShapes;return Array.isArray(outputShapes)&&Array.isArray(outputShapes[0])&&outputShapes.length===1?outputShapes[0]:outputShapes}else throw new AttributeError(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new RuntimeError(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return countParamsInWeights(this.weights)}build(inputShape){this.built=!0}getWeights(trainableOnly=!1){return batchGetValue(trainableOnly?this.trainableWeights:this.weights)}setWeights(weights){tidy(()=>{let params=this.weights;if(params.length!==weights.length)throw new ValueError(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${weights.length}, but the layer was expecting ${params.length} weights. Provided weights: ${weights}...`);if(params.length===0)return;let weightValueTuples=[],paramValues=batchGetValue(params);for(let i=0;iregularizer.apply(weight.read())),trainable==null&&(trainable=!0),trainable?this._trainableWeights.push(weight):this._nonTrainableWeights.push(weight),weight}setFastWeightInitDuringBuild(value){this.fastWeightInitDuringBuild=value}addLoss(losses4){losses4==null||Array.isArray(losses4)&&losses4.length===0||(losses4=toList(losses4),this._losses!==void 0&&this._losses!==null&&this.losses.push(...losses4))}computeOutputShape(inputShape){return inputShape}computeMask(inputs,mask){if(!this.supportsMasking){if(mask!=null)if(Array.isArray(mask))mask.forEach(maskElement=>{if(maskElement!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return mask}addInboundNode(inputTensors,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes,kwargs=null){let inputTensorList=toList(inputTensors);outputTensors=toList(outputTensors),inputMasks=toList(inputMasks),outputMasks=toList(outputMasks),inputShapes=normalizeShapeList(inputShapes),outputShapes=normalizeShapeList(outputShapes);let inboundLayers=[],nodeIndices=[],tensorIndices=[];for(let x of inputTensorList)inboundLayers.push(x.sourceLayer),nodeIndices.push(x.nodeIndex),tensorIndices.push(x.tensorIndex);new Node({outboundLayer:this,inboundLayers,nodeIndices,tensorIndices,inputTensors:inputTensorList,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes},kwargs);for(let i=0;iweight.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let numDisposedVariables=0;return--this._refCount==0&&(numDisposedVariables=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables}}};function collectInputShape(inputTensors){inputTensors=toList(inputTensors);let shapes=[];for(let x of inputTensors)shapes.push(x.shape);return singletonOrArray(shapes)}function guessOutputDType(inputTensors){return"float32"}function getSourceInputs(tensor2,layer,nodeIndex){if((layer==null||nodeIndex!=null&&nodeIndex>0)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex),layer.inboundNodes.length===0)return[tensor2];{let node=layer.inboundNodes[nodeIndex];if(node.inboundLayers.length===0)return node.inputTensors;{let sourceTensors=[];for(let i=0;i0){let values=await Promise.all(promises);for(let i=0;iadd2(this.totals[key],mul(value,batchSize)));this.totals[key]=total,oldTotalsToDispose!=null&&oldTotalsToDispose.dispose()}}}async onEpochEnd(epoch,logs){if(logs!=null)for(let key of this.params.metrics)this.totals[key]!=null&&(typeof this.totals[key]=="number"?logs[key]=this.totals[key]/this.seen:tidy(()=>{let log5=mul(div(1,this.seen),this.totals[key]);logs[key]=log5,this.totals[key].dispose(),keep(logs[key])}))}},History=class extends BaseCallback{async onTrainBegin(logs){this.epoch=[],this.history={}}async onEpochEnd(epoch,logs){logs==null&&(logs={}),this.epoch.push(epoch);for(let key in logs)this.history[key]==null&&(this.history[key]=[]),this.history[key].push(logs[key])}async syncData(){let promises=[],keys=[],indices=[];for(let key in this.history){let valueArray=this.history[key];for(let i=0;inew CustomCallback(callbackConfig,yieldEvery))}var CallbackConstructorRegistry=class{constructor(){}static registerCallbackConstructor(verbosityLevel,callbackConstructor){util_exports.assert(verbosityLevel>=0&&Number.isInteger(verbosityLevel),()=>`Verbosity level is expected to be an integer >= 0, but got ${verbosityLevel}`),CallbackConstructorRegistry.checkForDuplicate(callbackConstructor),CallbackConstructorRegistry.constructors[verbosityLevel]==null&&(CallbackConstructorRegistry.constructors[verbosityLevel]=[]),CallbackConstructorRegistry.constructors[verbosityLevel].push(callbackConstructor)}static checkForDuplicate(callbackConstructor){for(let levelName in CallbackConstructorRegistry.constructors)CallbackConstructorRegistry.constructors[+levelName].forEach(ctor=>{if(ctor===callbackConstructor)throw new ValueError("Duplicate callback constructor.")})}static clear(){CallbackConstructorRegistry.constructors={}}static createCallbacks(verbosityLevel){let constructors=[];for(let levelName in CallbackConstructorRegistry.constructors){let level=+levelName;verbosityLevel>=level&&constructors.push(...CallbackConstructorRegistry.constructors[level])}return constructors.map(ctor=>new ctor)}};CallbackConstructorRegistry.constructors={};function configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics){let history=new History,actualCallbacks=[new BaseLogger,...CallbackConstructorRegistry.createCallbacks(verbose)];callbacks2!=null&&actualCallbacks.push(...callbacks2),actualCallbacks.push(history);let callbackList=new CallbackList(actualCallbacks);return callbackList.setParams({epochs,initialEpoch,samples:numTrainSamples,steps:stepsPerEpoch,batchSize,verbose,doValidation,metrics:callbackMetrics}),{callbackList,history}}function deserialize(config3,customObjects={},fastWeightInit=!1){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"layer",fastWeightInit)}function l2Normalize(x,axis){return tidy(()=>{x.dtype!=="float32"&&(x=x.asType("float32"));let squareSum=sum2(square3(x),axis,!0),epsilonTensor=fill(squareSum.shape,epsilon2()),norm2=sqrt(maximum(squareSum,epsilonTensor));return div(x,norm2)})}function meanSquaredError2(yTrue,yPred){return tidy(()=>mean(square3(sub(yPred,yTrue)),-1))}function meanAbsoluteError(yTrue,yPred){return tidy(()=>mean(abs(sub(yPred,yTrue)),-1))}function meanAbsolutePercentageError(yTrue,yPred){return tidy(()=>{let diff=sub(yTrue,yPred),clippedTrue=clipByValue(abs(yTrue),epsilon2(),Number.MAX_VALUE),absResult=abs(div(diff,clippedTrue));return mul(100,mean(absResult,-1))})}function meanSquaredLogarithmicError(yTrue,yPred){return tidy(()=>{let clippedPred=clipByValue(yPred,epsilon2(),Number.MAX_VALUE),firstLog=log2(add2(1,clippedPred)),clippedTrue=clipByValue(yTrue,epsilon2(),Number.MAX_VALUE),secondLog=log2(add2(1,clippedTrue));return mean(square3(sub(firstLog,secondLog)),-1)})}function squaredHinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(square3(maxResult),-1)})}function hinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(maxResult,-1)})}function categoricalHinge(yTrue,yPred){return tidy(()=>{let pos=sum2(mul(yTrue,yPred),-1),neg4=max(mul(sub(1,yTrue),yPred),-1);return maximum(0,add2(1,sub(neg4,pos)))})}function logcosh(yTrue,yPred){return tidy(()=>{let log222=Math.log(2),predictionDiff=sub(yPred,yTrue),logcoshResult=sub(add2(predictionDiff,softplus(mul(-2,predictionDiff))),log222);return mean(logcoshResult,-1)})}function categoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{if(fromLogits)output=softmax(output);else{let outputSum=sum2(output,output.shape.length-1,!0);output=div(output,outputSum)}return output=clipByValue(output,epsilon2(),1-epsilon2()),neg(sum2(mul(target.toFloat(),log2(output)),output.shape.length-1))})}function sparseCategoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{let flatTarget=floor(flatten2(target)).toInt();output=clipByValue(output,epsilon2(),1-epsilon2());let outputShape=output.shape,oneHotTarget=oneHot(flatTarget,outputShape[outputShape.length-1]).reshape(outputShape);return categoricalCrossentropy(oneHotTarget,output,fromLogits)})}function sigmoidCrossEntropyWithLogits(labels,logits){if(!util_exports.arraysEqual(labels.shape,logits.shape))throw new ValueError(`logits and labels must have the same shape, but got shapes ${JSON.stringify(labels.shape)} and ${JSON.stringify(logits.shape)}`);return tidy(()=>{let reluLogits=logits.relu(),negAbsLogits=logits.abs().neg();return reluLogits.sub(logits.mul(labels)).add(negAbsLogits.exp().log1p())})}function binaryCrossentropy(yTrue,yPred){return tidy(()=>{let y;return y=clipByValue(yPred,epsilon2(),1-epsilon2()),y=log2(div(y,sub(1,y))),mean(sigmoidCrossEntropyWithLogits(yTrue,y),-1)})}function kullbackLeiblerDivergence(yTrue,yPred){return tidy(()=>{let clippedTrue=clipByValue(yTrue,epsilon2(),1),clippedPred=clipByValue(yPred,epsilon2(),1);return sum2(mul(yTrue,log2(div(clippedTrue,clippedPred))),-1)})}function poisson(yTrue,yPred){return tidy(()=>{let logPred=log2(add2(epsilon2(),yPred));return mean(sub(yPred,mul(yTrue,logPred)),-1)})}function cosineProximity(yTrue,yPred){return tidy(()=>{let trueNormalized=l2Normalize(yTrue,-1),predNormalized=l2Normalize(yPred,-1),trueXPred=mul(trueNormalized,predNormalized);return neg(sum2(trueXPred,-1))})}var lossesMap={meanSquaredError:meanSquaredError2,meanAbsoluteError,meanAbsolutePercentageError,meanSquaredLogarithmicError,squaredHinge,hinge,categoricalHinge,logcosh,categoricalCrossentropy,sparseCategoricalCrossentropy,binaryCrossentropy,kullbackLeiblerDivergence,poisson,cosineProximity};function get(identifierOrFn){if(typeof identifierOrFn=="string"){if(identifierOrFn in lossesMap)return lossesMap[identifierOrFn];let errMsg=`Unknown loss ${identifierOrFn}`;throw identifierOrFn.toLowerCase().includes("softmaxcrossentropy")&&(errMsg=`Unknown loss ${identifierOrFn}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new ValueError(errMsg)}else return identifierOrFn}function binaryAccuracy(yTrue,yPred){return tidy(()=>{let threshold2=mul(.5,onesLike(yPred)),yPredThresholded=cast5(greater(yPred,threshold2),yTrue.dtype);return mean(equal(yTrue,yPredThresholded),-1)})}function categoricalAccuracy(yTrue,yPred){return tidy(()=>cast5(equal(argMax(yTrue,-1),argMax(yPred,-1)),"float32"))}function truePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(1)).sum().cast("float32"))}function falseNegatives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(0)).sum().cast("float32"))}function falsePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(0),yPred.equal(1)).sum().cast("float32"))}function precision(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fp=falsePositives(yTrue,yPred),denominator=tp.add(fp);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function recall(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fn=falseNegatives(yTrue,yPred),denominator=tp.add(fn);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function binaryCrossentropy2(yTrue,yPred){return binaryCrossentropy(yTrue,yPred)}function sparseCategoricalAccuracy(yTrue,yPred){return yTrue.rank===yPred.rank&&(yTrue=yTrue.squeeze([yTrue.rank-1])),yPred=yPred.argMax(-1),yPred.dtype!==yTrue.dtype&&(yPred=yPred.asType(yTrue.dtype)),equal(yTrue,yPred).asType("float32")}var mse=meanSquaredError2,MSE=meanSquaredError2,mae=meanAbsoluteError,MAE=meanAbsoluteError,mape=meanAbsolutePercentageError,MAPE=meanAbsolutePercentageError,categoricalCrossentropy2=categoricalCrossentropy,cosine=cosineProximity,sparseCategoricalCrossentropy2=sparseCategoricalCrossentropy,metricsMap={binaryAccuracy,categoricalAccuracy,precision,categoricalCrossentropy:categoricalCrossentropy2,sparseCategoricalCrossentropy:sparseCategoricalCrossentropy2,mse,MSE,mae,MAE,mape,MAPE,cosine};function get2(identifier){if(typeof identifier=="string"&&identifier in metricsMap)return metricsMap[identifier];if(typeof identifier!="string"&&identifier!=null)return identifier;throw new ValueError(`Unknown metric ${identifier}`)}function getLossOrMetricName(fn){if(assert2(fn!==null,`Unknown LossOrMetricFn ${fn}`),typeof fn=="string")return fn;{let fnName;for(let key of Object.keys(lossesMap))if(lossesMap[key]===fn){fnName=key;break}if(fnName!==void 0)return fnName;for(let key of Object.keys(metricsMap))if(metricsMap[key]===fn){fnName=key;break}return fnName!==void 0?fnName:fn.name}}function getOptimizer(identifier){let optimizerMap={Adagrad:()=>train.adagrad(.01),Adadelta:()=>train.adadelta(1,.95,epsilon2()),Adam:()=>train.adam(.001,.9,.999,epsilon2()),Adamax:()=>train.adamax(.002,.9,.999,epsilon2(),0),RMSProp:()=>train.rmsprop(.001,.9,0,epsilon2()),SGD:()=>train.sgd(.01)};if(optimizerMap.adagrad=optimizerMap.Adagrad,optimizerMap.adadelta=optimizerMap.Adadelta,optimizerMap.adam=optimizerMap.Adam,optimizerMap.adamax=optimizerMap.Adamax,optimizerMap.rmsprop=optimizerMap.RMSProp,optimizerMap.sgd=optimizerMap.SGD,identifier in optimizerMap)return optimizerMap[identifier]();throw new ValueError(`Unknown Optimizer ${identifier}`)}var MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH=1*1024*1024;function checkUserDefinedMetadata(userDefinedMetadata,modelName,checkSize=!1){if(userDefinedMetadata==null||typeof userDefinedMetadata!="object"||Object.getPrototypeOf(userDefinedMetadata)!==Object.prototype||!plainObjectCheck(userDefinedMetadata))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(checkSize){let out=JSON.stringify(userDefinedMetadata);out.length>MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH&&console.warn(`User-defined metadata of model "${modelName}" is too large in size (length=${out.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH}.`)}}function plainObjectCheck(x){if(x===null)return!0;if(typeof x=="object")if(Object.getPrototypeOf(x)===Object.prototype){let keys=Object.keys(x);for(let key of keys)if(typeof key!="string"||!plainObjectCheck(x[key]))return!1;return!0}else if(Array.isArray(x)){for(let item of x)if(!plainObjectCheck(item))return!1;return!0}else return!1;else{let xType=typeof x;return xType==="string"||xType==="number"||xType==="boolean"}}function printSummary(model2,lineLength,positions,printFn=console.log){let sequentialLike=isModelSequentialLike(model2),toDisplay=["Layer (type)","Output shape","Param #"];sequentialLike?(lineLength=lineLength||65,positions=positions||[.45,.85,1]):(lineLength=lineLength||98,positions=positions||[.33,.55,.67,1]),positions[positions.length-1]<=1&&(positions=positions.map(p2=>Math.floor(lineLength*p2)));let relevantNodes;if(!sequentialLike){toDisplay.push("Receives inputs"),relevantNodes=[];for(let depth in model2.nodesByDepth)relevantNodes.push(...model2.nodesByDepth[depth])}printFn("_".repeat(lineLength)),printRow(toDisplay,positions,printFn),printFn("=".repeat(lineLength));let layers=model2.layers;for(let i=0;i1||depthNodes.length===1&&depthNodes[0].inboundLayers.length>1){sequentialLike=!1;break}nodes.push(...depthNodes)}if(sequentialLike)for(let layer of model2.layers){let flag=!1;for(let node of layer.inboundNodes)if(nodes.indexOf(node)!==-1)if(flag){sequentialLike=!1;break}else flag=!0;if(!sequentialLike)break}return sequentialLike}function printRow(fields,positions,printFn=console.log){let line="";for(let i=0;i0&&(line=line.slice(0,line.length-1)+" "),line+=fields[i],line=line.slice(0,positions[i]),line+=" ".repeat(positions[i]-line.length);printFn(line)}function printLayerSummary(layer,positions,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let name=layer.name,className=layer.getClassName(),fields=[`${name} (${className})`,outputShape,layer.countParams().toString()];printRow(fields,positions,printFn)}function printLayerSummaryWithConnections(layer,positions,relevantNodes,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let connections=[];for(let node of layer.inboundNodes)if(!(relevantNodes!=null&&relevantNodes.length>0&&relevantNodes.indexOf(node)===-1))for(let i=0;it.name),finalOutputs=[],feedNames=feedDict.names();for(let outputName of outputNames)feedNames.indexOf(outputName)!==-1?finalOutputs.push(feedDict.getValue(outputName)):finalOutputs.push(null);probe!=null&&(probe.maxNumTensors=-Infinity,probe.minNumTensors=Infinity);let fetchAndFeedKey=outputNames.join(",")+"|"+feedDict.names().join(","),sorted,recipientCounts;if(cachedSorted[fetchAndFeedKey]==null){let out=getTopologicalSortAndRecipientCounts(fetchArray,feedDict);sorted=out.sorted,recipientCounts=out.recipientCounts,cachedSorted[fetchAndFeedKey]=sorted,cachedRecipientCounts[fetchAndFeedKey]=recipientCounts}sorted=cachedSorted[fetchAndFeedKey],recipientCounts={},training||Object.assign(recipientCounts,cachedRecipientCounts[fetchAndFeedKey]);let internalFeedDict=new FeedDict(feedDict);for(let i=0;iprobe.maxNumTensors&&(probe.maxNumTensors=numTensors),numTensors0,()=>"Expected at least one fetch, got none");let finalSorted=[],finalRecipientMap={};if(fetches.length===1){let out=getTopologicalSortAndRecipientCountsForOneFetch(fetches[0],feedDict);finalSorted=out.sorted,finalRecipientMap=out.recipientMap}else{let visited=new Set;for(let fetch3 of fetches){let{sorted,recipientMap}=getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict);for(let symbolicTensor of sorted)visited.has(symbolicTensor.name)||(finalSorted.push(symbolicTensor),visited.add(symbolicTensor.name));for(let name in recipientMap)finalRecipientMap[name]==null&&(finalRecipientMap[name]=new Set),recipientMap[name].forEach(recipient=>finalRecipientMap[name].add(recipient))}}return{sorted:finalSorted,recipientCounts:recipientMap2Counts(finalRecipientMap)}}function recipientMap2Counts(recipientMap){let recipientCounts={};for(let name in recipientMap)recipientCounts[name]=recipientMap[name].size;return recipientCounts}function getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict){let visited=new Set,sorted=[],recipientMap={};for(let key of feedDict.names())visited.add(key);let stack2=[],marks=[];for(stack2.push(fetch3);stack2.length>0;){let top=stack2[stack2.length-1];if(visited.has(top.name)){stack2.pop();continue}let topIsMarked=marks[marks.length-1]===stack2.length-1;if(top.inputs.length===0||topIsMarked)stack2.pop(),sorted.push(top),visited.add(top.name),topIsMarked&&marks.pop();else{marks.push(stack2.length-1);for(let input2 of top.inputs)recipientMap[input2.name]==null&&(recipientMap[input2.name]=new Set),recipientMap[input2.name].add(top.name),!visited.has(input2.name)&&stack2.push(input2)}}return{sorted,recipientMap}}function getNodeOutputs(fetch3){let layerOutputs;if(fetch3.sourceLayer.inboundNodes.length===1)layerOutputs=fetch3.sourceLayer.output;else{let nodeIndex=null;for(let i=0;ix.name)}`);unique4(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(x=>x.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let x of this.outputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;this.outputLayers.push(layer),this.outputLayersNodeIndices.push(nodeIndex),this.outputLayersTensorIndices.push(tensorIndex)}for(let x of this.inputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;assert2(nodeIndex===0,"input layer has >1 nodes"),assert2(tensorIndex===0,"input layer has >1 tensors"),this.inputLayers.push(layer),this.inputLayersNodeIndices.push(nodeIndex),this.inputLayersTensorIndices.push(tensorIndex)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let i=0;ix.shape),this.internalOutputShapes=this.outputs.map(x=>x.shape);let nodesDepths={},nodeIDToNode={},layersDepths={},layerIDToLayer={},layerIndices={},nodesInDecreasingDepth=[],buildMapOfGraph=(tensor2,finishedNodes2,nodesInProgress2,layer,nodeIndex,tensorIndex)=>{(layer==null||nodeIndex==null||tensorIndex==null)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex,tensorIndex=tensor2.tensorIndex);let node=layer.inboundNodes[nodeIndex];if(nodesInProgress2.indexOf(node)!==-1)throw new RuntimeError(`The tensor ${tensor2.name} at layer "${layer.name}" is part of a cycle.`);if(finishedNodes2.indexOf(node)!==-1)return;this.containerNodes.add(Container.nodeKey(layer,nodeIndex)),layer.id in layerIndices||(layerIndices[layer.id]=Object.keys(layerIndices).length),nodesInProgress2.indexOf(node)===-1&&nodesInProgress2.push(node);let numInboundLayers=node.inboundLayers.length;for(let i=0;i=0;)nodesInProgress2.splice(nodesInProgress2.indexOf(node),1);nodesInDecreasingDepth.push(node)},finishedNodes=[],nodesInProgress=[];for(let x of this.outputs)buildMapOfGraph(x,finishedNodes,nodesInProgress);let reversedNodesInDecreasingDepth=nodesInDecreasingDepth.slice().reverse();for(let node of reversedNodesInDecreasingDepth){nodeIDToNode[node.id]=node,node.id in nodesDepths||(nodesDepths[node.id]=0);let depth=nodesDepths[node.id],previousDepth=layersDepths[node.outboundLayer.id]==null?0:layersDepths[node.outboundLayer.id];depth=Math.max(depth,previousDepth),layersDepths[node.outboundLayer.id]=depth,layerIDToLayer[node.outboundLayer.id]=node.outboundLayer,nodesDepths[node.id]=depth;for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);this.layers=[];for(let depth of depthKeys){let layersForDepth=layersByDepth[depth];layersForDepth.sort((a,b)=>{let aIndex=layerIndices[a.id],bIndex=layerIndices[b.id];return aIndexbIndex?1:0});for(let layer of layersForDepth)layer instanceof Container&&this.internalContainerRefs.push(layer),this.layers.push(layer)}this.layersByDepth=layersByDepth,depthKeys=Object.keys(nodesByDepth).map(x=>parseInt(x,10)).sort(reverseNumberCompare);let computableTensors=this.inputs.slice(),layersWithCompleteInput=[];for(let depth of depthKeys)for(let node of nodesByDepth[depth]){let layer=node.outboundLayer;if(layer!=null){for(let x of node.inputTensors)if(computableTensors.indexOf(x)===-1)throw new RuntimeError(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${layer.name}". The following previous layers were accessed without issue: ${layersWithCompleteInput}`);for(let x of node.outputTensors)computableTensors.push(x);layersWithCompleteInput.push(layer.name)}}this.nodesByDepth=nodesByDepth;let allNames=this.layers.map(x=>x.name);for(let name of allNames){let numOccurrences=allNames.filter(x=>x===name).length;if(numOccurrences!==1)throw new RuntimeError(`The name "${name}" is used ${numOccurrences} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(allNames))}this.outboundNodes=[],this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(x=>null),outputMasks:this.outputs.map(x=>null),inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs.map(x=>x.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let result={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let layer of this.layers)result.numDisposedVariables+=layer.dispose().numDisposedVariables;for(let container of this.internalContainerRefs)result.numDisposedVariables+=container.dispose().numDisposedVariables}return result.refCountAfterDispose=this._refCount,result}get trainable(){return this.trainable_}set trainable(trainable){this.layers.forEach(layer=>{layer._trainableWeights.forEach(w=>w.trainable=trainable)}),this.trainable_=trainable}get trainableWeights(){if(this._trainableWeights.length>0)throw new ValueError("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let weights=[];for(let layer of this.layers)weights=weights.concat(layer.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let layer of this.layers)weights.push(...layer.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let layer of this.layers)trainableWeights.push(...layer.trainableWeights);return trainableWeights.concat(weights)}return weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(weights,strict=!0){let nameToWeight={},totalWeightsCount=0;for(let layer of this.layers)for(let weight of layer.weights){if(nameToWeight[weight.originalName]!=null)throw new ValueError(`Duplicate weight name: ${weight.originalName}`);nameToWeight[weight.originalName]=weight,totalWeightsCount++}let weightValueTuples=[];for(let name in weights){let validatedName=name;if(nameToWeight[name]==null){let tokens=name.split("/");validatedName=tokens.slice(0,-2).concat([tokens[tokens.length-1]]).join("/")}if(nameToWeight[validatedName]!=null)weightValueTuples.push([nameToWeight[validatedName],weights[name]]);else if(strict)throw new ValueError(`Provided weight data has no target variable: ${name}`);delete nameToWeight[validatedName]}if(strict){let unsetNames=[];for(let name in nameToWeight)unsetNames.push(name);if(unsetNames.length>0)throw new ValueError(`${unsetNames.length} of ${totalWeightsCount} weights are not set: ${unsetNames}`)}batchSetValue(weightValueTuples)}updatedConfig(){let theConfig=this.getConfig(),modelConfig={};return modelConfig.className=this.getClassName(),modelConfig.config=theConfig,modelConfig.kerasVersion=`tfjs-layers ${version10}`,modelConfig.backend="TensorFlow.js",modelConfig}toJSON(unused,returnString=!0){let modelConfig=convertTsToPythonic(this.updatedConfig());return returnString?JSON.stringify(modelConfig):modelConfig}call(inputs,kwargs){return tidy(()=>{inputs=toList(inputs);let feedDict=new FeedDict;for(let i=0;i{inputs=toList(inputs);let masks;return mask==null?masks=pyListRepeat(null,inputs.length):masks=toList(mask),this.runInternalGraph(inputs,masks)[1]})}computeOutputShape(inputShape){let inputShapes=normalizeShapeList(inputShape);if(inputShapes.length!==this.inputLayers.length)throw new ValueError(`Invalid inputShape argument ${inputShape}: model has ${this.inputLayers.length} tensor inputs.`);let layersToOutputShapes={};for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);if(depthKeys.length>1)for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer;if(this.inputLayers.map(x=>x.id).indexOf(layer.id)!==-1)continue;let inputShapes2=[];for(let j=0;jparseInt(x,10)).sort(reverseNumberCompare);for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer,referenceInputTensors=node.inputTensors,referenceOutputTensors=node.outputTensors,computedData=new Array;for(let x of referenceInputTensors)x.id in tensorMap&&computedData.push(tensorMap[x.id]);if(computedData.length===referenceInputTensors.length){let kwargs={},computedTensors,computedMasks,outputTensors2,outputMasks2;if(node.callArgs!=null&&(kwargs=node.callArgs),computedData.length===1){let[computedTensor,computedMask]=computedData[0];kwargs.mask==null&&(kwargs.mask=computedMask),outputTensors2=toList(layer.call(computedTensor,kwargs)),outputMasks2=toList(layer.computeMask(computedTensor,computedMask)),computedTensors=[computedTensor],computedMasks=[computedMask]}else computedTensors=computedData.map(x=>x[0]),computedMasks=computedData.map(x=>x[1]),kwargs.mask==null&&(kwargs.mask=computedMasks),outputTensors2=toList(layer.call(computedTensors,kwargs)),outputMasks2=toList(layer.computeMask(computedTensors,computedMasks));if(layer.activityRegularizer)throw new NotImplementedError("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let i=0;i{let losses4=[];for(let layer of this.layers)for(let nodeIndex=0;nodeIndex0){let nodeData=[];for(let i=0;i0&&layer.apply(singletonOrArray(inputTensors2),kwargs)}function processLayer(layerData){let layerName=layerData.name,layer=deserialize(layerData,config3.customObjects!=null?config3.customObjects:{});layer.setFastWeightInitDuringBuild(fastWeightInit),createdLayers[layerName]=layer,layerData.inboundNodes.forEach(nodeData=>{if(!(nodeData instanceof Array))throw new ValueError(`Corrupted configuration, expected array for nodeData: ${nodeData}`);addUnprocessedNode(layer,nodeData)})}let name=config3.name,layersFromConfig=config3.layers;for(let layerData of layersFromConfig)processLayer(layerData);for(;!isObjectEmpty(unprocessedNodes);)for(let layerData of layersFromConfig){let layer=createdLayers[layerData.name];if(layer.name in unprocessedNodes){let currentUnprocessedNodesForLayer=unprocessedNodes[layer.name];delete unprocessedNodes[layer.name];for(let nodeData of currentUnprocessedNodesForLayer)processNode(layer,nodeData)}}let inputTensors=[],outputTensors=[],inputLayersFromConfig=config3.inputLayers;for(let layerData of inputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;inputTensors.push(layerOutputTensors[tensorIndex])}let outputLayersFromConfig=config3.outputLayers;for(let layerData of outputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;outputTensors.push(layerOutputTensors[tensorIndex])}return new cls({inputs:inputTensors,outputs:outputTensors,name})}get stateful(){if(this._stateful)throw new ValueError("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let layer of this.layers)if(layer.stateful)return!0;return!1}resetStates(){tidy(()=>{this.layers.forEach(layer=>{layer.stateful&&layer.resetStates()})})}};function standardizeSampleOrClassWeights(xWeight,outputNames,weightType){let numOutputs=outputNames.length;if(xWeight==null||Array.isArray(xWeight)&&xWeight.length===0)return outputNames.map(name=>null);if(numOutputs===1)return Array.isArray(xWeight)&&xWeight.length===1?xWeight:typeof xWeight=="object"&&outputNames[0]in xWeight?[xWeight[outputNames[0]]]:[xWeight];if(Array.isArray(xWeight)){if(xWeight.length!==numOutputs)throw new Error(`Provided ${weightType} is an array of ${xWeight.length} element(s), but the model has ${numOutputs} outputs. Make sure a set of weights is provided for each model output.`);return xWeight}else if(typeof xWeight=="object"&&Object.keys(xWeight).length>0&&typeof xWeight[Object.keys(xWeight)[0]]=="object"){let output=[];return outputNames.forEach(outputName=>{outputName in xWeight?output.push(xWeight[outputName]):output.push(null)}),output}else throw new Error(`The model has multiple (${numOutputs}) outputs, so ${weightType} must be either an array with ${numOutputs} elements or an object with ${outputNames} keys. Provided ${weightType} not understood: ${JSON.stringify(xWeight)}`)}function standardizeClassWeights(classWeight,outputNames){return standardizeSampleOrClassWeights(classWeight,outputNames,"classWeight")}async function standardizeWeights(y,sampleWeight,classWeight,sampleWeightMode){if(sampleWeight!=null||sampleWeightMode!=null)throw new Error("Support sampleWeight is not implemented yet");if(classWeight!=null){let yClasses=tidy(()=>{if(y.shape.length===1)return y.clone();if(y.shape.length===2)if(y.shape[1]>1){let axis=1;return y.argMax(axis)}else{if(y.shape[1]===1)return y.reshape([y.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${y.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${y.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),yClassIndices=Array.from(await yClasses.data());dispose(yClasses);let classSampleWeight=[];return yClassIndices.forEach(classIndex=>{if(classWeight[classIndex]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${classIndex} exists in the data but not in classWeight`);classSampleWeight.push(classWeight[classIndex])}),tensor1d(classSampleWeight,"float32")}else return null}function computeWeightedLoss2(losses4,sampleWeights){return mul(losses4,sampleWeights)}var DEFAULT_VALIDATION_BATCH_SIZE=32;function standardizeDataIteratorOutput(model2,iteratorOut){let xs,ys,iteratorOutObj=iteratorOut;xs=iteratorOutObj.xs,ys=iteratorOutObj.ys,util_exports.assert(xs!=null&&ys!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${iteratorOut}`);let flattenedXs=flattenTensorOrArrayOrMap("input",model2.inputNames,xs),flattenedYs=flattenTensorOrArrayOrMap("output",model2.outputNames,ys),batchSize=flattenedXs[0].shape[0];util_exports.assert(flattenedXs.length===model2.inputs.length,()=>`LayersModel has ${model2.inputs.length} inputs, but the dataset provides ${flattenedXs.length} inputs. (Expected input keys: ${JSON.stringify(model2.inputNames)})`),util_exports.assert(flattenedYs.length===model2.outputs.length,()=>`LayersModel has ${model2.outputs.length} outputs, but the dataset provides ${flattenedYs.length} outputs. (Expected output keys: ${JSON.stringify(model2.outputNames)})`);for(let xIndex=0;xIndex`Batch size mismatch: input ${model2.inputNames[xIndex]} has ${flattenedXs[xIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);for(let yIndex=0;yIndex`Batch size mismatch: output ${model2.outputNames[yIndex]} has ${flattenedYs[yIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);return{xs:flattenedXs,ys:flattenedYs}}function flattenTensorOrArrayOrMap(inputOrOutput,names,values){if(values instanceof Tensor)return[values];if(Array.isArray(values))return util_exports.assert(values.length===names.length,()=>`Received an array of ${values.length} Tensors, but expected ${names.length} to match the ${inputOrOutput} keys ${names}.`),values;{let result=[];for(let name of names){if(values[name]==null)throw new ValueError(`The feature data generated by the dataset lacks the required ${inputOrOutput} key '${name}'.`);result.push(values[name])}return result}}function standardizeTensorValidationData(data2){if(data2.length===3)throw new NotImplementedError("Validation with sample weights is not implemented yet.");return{xs:data2[0],ys:data2[1]}}async function fitDataset(model2,dataset,args){let hasBatchesPerEpoch=args.batchesPerEpoch!=null;if(util_exports.assert(model2.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),util_exports.assert(args!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),util_exports.assert(args.epochs!=null&&args.epochs>0&&Number.isInteger(args.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${args.epochs}`),util_exports.assert(!hasBatchesPerEpoch||args.batchesPerEpoch>0&&Number.isInteger(args.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${args.batchesPerEpoch}`),util_exports.assert(args.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),model2.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");model2.isTraining=!0;try{let doValidation=args.validationData!=null,valXs,valYs;if(doValidation)if(isDatasetObject(args.validationData))util_exports.assert(args.validationBatches==null||args.validationBatches>0&&Number.isInteger(args.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${args.validationBatches}`);else{let validationData=standardizeTensorValidationData(args.validationData);valXs=validationData.xs,valYs=validationData.ys}let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),callbackMetrics;doValidation?callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n)):callbackMetrics=outLabels.slice();let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery),verbose=args.verbose==null?1:args.verbose,{callbackList,history}=configureCallbacks(callbacks2,verbose,args.epochs,null,null,getStepsPerEpoch(dataset,args),null,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;let epoch=args.initialEpoch==null?0:args.initialEpoch,dataIterator=await dataset.iterator();for(;epoch=args.batchesPerEpoch:iteratorOut.done){if(doValidation){let valOuts;isDatasetObject(args.validationData)?valOuts=toList(await model2.evaluateDataset(args.validationData,{batches:args.validationBatches})):valOuts=toList(model2.evaluate(valXs,valYs,{batchSize:args.validationBatchSize==null?DEFAULT_VALIDATION_BATCH_SIZE:args.validationBatchSize,verbose:0}));for(let i=0;i0)throw new NotImplementedError("Verbose mode is not implemented yet.");util_exports.assert(!hasBatches||args.batches>0&&Number.isInteger(args.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(args.batches)}`);let dataIterator=isLazyIteratorObject(dataset)?dataset:await dataset.iterator(),numExamples=0,batch=0;for(;hasBatches?batch{if(iteratorOut.value){let{xs,ys}=standardizeDataIteratorOutput(model2,iteratorOut.value),xsAndYs=xs.concat(ys),batchOuts=tidy(()=>f(xsAndYs));if(dispose(xsAndYs),batch===0)for(let i=0;iadd2(outs[i],mul(batchSize,batchOut))),batch>0&&dispose(oldScalar)}dispose(batchOuts),numExamples+=batchSize,++batch}return outs}),iteratorOut.done){hasBatches&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${args.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let i=0;i0&&Number.isInteger(batchSize),()=>`batchSize is required to be a positive integer, but got ${batchSize}`)}function sliceArrays(arrays,start,stop){return arrays==null?[null]:Array.isArray(arrays)?arrays.map(array2=>sliceAlongFirstAxis(array2,start,stop-start)):sliceAlongFirstAxis(arrays,start,stop-start)}function sliceArraysByIndices(arrays,indices){return tidy(()=>arrays==null?null:Array.isArray(arrays)?arrays.map(array2=>sliceArraysByIndices(array2,indices)):gather2(arrays,indices.dtype==="int32"?indices:indices.toInt()))}function makeBatches(size,batchSize){let output=[],batchStart=0,batchEnd=null;for(;batchStart=size&&(batchEnd=size),output.push([batchStart,batchEnd]),batchStart=batchEnd;return output}async function fitLoop(model2,f,ins,outLabels,batchSize,epochs,verbose,callbacks2,valF,valIns,shuffle2,callbackMetrics,initialEpoch,stepsPerEpoch,validationSteps){batchSize==null&&(batchSize=32),epochs==null&&(epochs=1),shuffle2==null&&(shuffle2=!0),initialEpoch==null&&(initialEpoch=0);let doValidation=!1;if(valF!=null&&valIns!=null&&(doValidation=!0),validationSteps!=null&&(doValidation=!0,stepsPerEpoch==null))throw new ValueError("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let numTrainSamples=model2.checkNumSamples(ins,batchSize,stepsPerEpoch,"steps_per_epoch"),indexArray;numTrainSamples!=null&&(indexArray=range5(0,numTrainSamples)),verbose==null&&(verbose=1);let{callbackList,history}=configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;for(let epoch=initialEpoch;epoch{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],batchIds=sliceAlongFirstAxis(epochIndexArray1D,batchStart,batchEnd-batchStart);batchLogs.batch=batchIndex,batchLogs.size=batchEnd-batchStart;let insBatch=sliceArraysByIndices(ins,batchIds),outs=f(insBatch);for(let i=0;i0){if(doValidation=!0,args.validationData.length===2)inputValX=args.validationData[0],inputValY=args.validationData[1];else throw args.validationData.length===3?new NotImplementedError("validationData including sample weights is not supported yet."):new ValueError(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${args.validationData} is invalid.`);let checkBatchAxis2=!0,valStandardized=await model2.standardizeUserData(inputValX,inputValY,null,null,checkBatchAxis2,batchSize);valX=valStandardized[0],valY=valStandardized[1],valIns=valX.concat(valY)}else if(args.validationSplit!=null&&args.validationSplit>0&&args.validationSplit<1){doValidation=!0;let splitAt=Math.floor(inputs[0].shape[0]*(1-args.validationSplit)),originalBatchSize=inputs[0].shape[0];valX=sliceArrays(inputs,splitAt,originalBatchSize),inputs=sliceArrays(inputs,0,splitAt),valY=sliceArrays(targets,splitAt,originalBatchSize),targets=sliceArrays(targets,0,splitAt),valIns=valX.concat(valY)}else args.validationSteps!=null&&(doValidation=!0);let ins=inputs.concat(targets).concat(sampleWeights);model2.checkTrainableWeightsConsistency();let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),valFunction,callbackMetrics;doValidation?(model2.makeTestFunction(),valFunction=model2.testFunction,callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n))):(valFunction=null,valIns=[],callbackMetrics=outLabels.slice());let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery);return await fitLoop(model2,trainFunction,ins,outLabels,batchSize,args.epochs,args.verbose,callbacks2,valFunction,valIns,args.shuffle,callbackMetrics,args.initialEpoch,null,null)}finally{model2.isTraining=!1,disposeNewTensors(inputs,x),disposeNewTensors(targets,y),disposeNewTensors(valX,inputValX),disposeNewTensors(valY,inputValY),sampleWeights!=null&&dispose(sampleWeights)}}function ensureTensorsRank2OrHigher(tensors){let outs=[];tensors instanceof Tensor&&(tensors=[tensors]);for(let i=0;ioldTensorIds.push(t.id));else if(refTensors!=null)for(let name in refTensors){let oldTensor=refTensors[name];oldTensorIds.push(oldTensor.id)}let tensorsToDispose=[];if(tensors instanceof Tensor)oldTensorIds.indexOf(tensors.id)===-1&&tensorsToDispose.push(tensors);else if(Array.isArray(tensors))tensors.forEach(t=>{oldTensorIds.indexOf(t.id)===-1&&tensorsToDispose.push(t)});else if(tensors!=null)for(let name in tensors){let tensor2=tensors[name];oldTensorIds.indexOf(tensor2.id)===-1&&tensorsToDispose.push(tensor2)}tensorsToDispose.forEach(t=>{t.isDisposed||t.dispose()})}function isDataTensor(x){return x instanceof Tensor}function isDataArray(x){return Array.isArray(x)}function isDataDict(x){return!isDataTensor(x)&&!isDataArray(x)}function standardizeInputData(data2,names,shapes,checkBatchAxis=!0,exceptionPrefix=""){if(names==null||names.length===0){if(data2!=null){let gotUnexpectedData=!1;if(isDataArray(data2)&&data2.length>0)gotUnexpectedData=!0;else if(isDataDict(data2)){for(let key in data2)if(data2.hasOwnProperty(key)){gotUnexpectedData=!0;break}}else gotUnexpectedData=!0;if(gotUnexpectedData)throw new ValueError(`Error when checking model ${exceptionPrefix} expected no data, but got ${data2}`)}return[]}if(data2==null)return names.map(name=>null);let arrays;if(isDataDict(data2)){data2=data2,arrays=[];for(let name of names){if(data2[name]==null)throw new ValueError(`No data provided for "${name}". Need data for each key in: ${names}`);arrays.push(data2[name])}}else if(isDataArray(data2)){if(data2=data2,data2.length!==names.length)throw new ValueError(`Error when checking model ${exceptionPrefix}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${names.length} Tensor(s), but instead got the following list of Tensor(s): ${data2}`);arrays=data2}else{if(data2=data2,names.length>1)throw new ValueError(`The model ${exceptionPrefix} expects ${names.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${data2.shape}`);arrays=[data2]}if(arrays=ensureTensorsRank2OrHigher(arrays),shapes!=null)for(let i=0;i=0&&dim!==refDim)throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have shape [${shapes[i]}], but got array with shape [${array2.shape}].`)}}return arrays}function checkArrayLengths(inputs,targets,weights){let setX=unique4(inputs.map(input2=>input2.shape[0]));setX.sort();let setY=unique4(targets.map(target=>target.shape[0]));if(setY.sort(),setX.length>1)throw new ValueError(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(inputs.map(input2=>input2.shape))}`);if(setY.length>1)throw new ValueError(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(targets.map(target=>target.shape))}`);if(setX.length>0&&setY.length>0&&!util_exports.arraysEqual(setX,setY))throw new ValueError(`Input Tensors should have the same number of samples as target Tensors. Found ${setX[0]} input sample(s) and ${setY[0]} target sample(s).`)}function checkLossAndTargetCompatibility(targets,lossFns,outputShapes){let keyLosses=[meanSquaredError2,binaryCrossentropy,categoricalCrossentropy];for(let i=0;i1)throw new ValueError(`The model expects ${names.length} ${exceptionPrefix} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(data2.shape)}.`);arrays=[data2]}if(shapes!=null)for(let i=0;i[]);let wrappedMetrics;if(typeof metrics2=="string"||typeof metrics2=="function")wrappedMetrics=[metrics2];else if(Array.isArray(metrics2)||typeof metrics2=="object")wrappedMetrics=metrics2;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${metrics2}`);if(Array.isArray(wrappedMetrics))return outputNames.map(name=>wrappedMetrics);{let nestedMetrics=[];for(let name of outputNames){let outputMetrics=wrappedMetrics.hasOwnProperty(name)?wrappedMetrics[name]:[];Array.isArray(outputMetrics)||(outputMetrics=[outputMetrics]),nestedMetrics.push(outputMetrics)}return nestedMetrics}}var LAYERS_MODEL_FORMAT_NAME="layers-model",LayersModel=class extends Container{constructor(args){super(args);this.isTraining=!1}summary(lineLength,positions,printFn=console.log){if(!this.built)throw new ValueError("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");printSummary(this,lineLength,positions,printFn)}compile(args){if(args.loss==null&&(args.loss=[]),this.loss=args.loss,typeof args.optimizer=="string")this.optimizer_=getOptimizer(args.optimizer),this.isOptimizerOwned=!0;else{if(!(args.optimizer instanceof Optimizer))throw new ValueError("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=args.optimizer,this.isOptimizerOwned=!1}let lossFunctions=[];if(!Array.isArray(args.loss)&&typeof args.loss!="string"&&typeof args.loss!="function"){args.loss=args.loss;for(let name in args.loss)if(this.outputNames.indexOf(name)===-1)throw new ValueError(`Unknown entry in loss dictionary: "${name}". Only expected the following keys: ${this.outputNames}`);for(let name of this.outputNames)args.loss[name]==null&&console.warn(`Output "${name}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${name} during training`),lossFunctions.push(get(args.loss[name]))}else if(Array.isArray(args.loss)){if(args.loss.length!==this.outputs.length)throw new ValueError(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${args.loss}.`);lossFunctions=args.loss.map(l=>get(l))}else{let lossFunction=get(args.loss);this.outputs.forEach(_=>{lossFunctions.push(lossFunction)})}this.lossFunctions=lossFunctions,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([weightedLoss,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let nestedMetrics=collectMetrics(args.metrics,this.outputNames),appendMetric=(outputIndex,metricName,metricTensor)=>{this.outputNames.length>1&&(metricName=this.outputNames[outputIndex]+"_"+metricName),this.metricsNames.push(metricName),this.metricsTensors.push([metricTensor,outputIndex])};nameScope("metric",()=>{for(let i=0;i{let metricNamePrefix="",metricName,accFn,weightedMetricFn;for(let metric of metrics2){if(typeof metric=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(metric)!==-1){let outputShape=this.internalOutputShapes[i];outputShape[outputShape.length-1]===1||this.lossFunctions[i]===binaryCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=binaryAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=binaryCrossentropy2):this.lossFunctions[i]===sparseCategoricalCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=sparseCategoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=sparseCategoricalCrossentropy2):["accuracy","acc"].indexOf(metric)!==-1?accFn=categoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=categoricalCrossentropy2);let suffix;["accuracy","acc"].indexOf(metric)!==-1?suffix="acc":["crossentropy","ce"].indexOf(metric)!==-1&&(suffix="ce"),weightedMetricFn=accFn,metricName=metricNamePrefix+suffix}else weightedMetricFn=get2(metric),metricName=metricNamePrefix+getLossOrMetricName(metric);let metricResult;nameScope(metricName,()=>{metricResult=weightedMetricFn}),appendMetric(i,metricName,metricResult)}})(outputMetrics)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(x,y,args={}){let batchSize=args.batchSize==null?32:args.batchSize;checkBatchSize(batchSize);let checkBatchAxis=!0,standardizedOuts=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);try{let ins=standardizedOuts[0].concat(standardizedOuts[1]);this.makeTestFunction();let f=this.testFunction,testOuts=this.testLoop(f,ins,batchSize,args.verbose,args.steps);return singletonOrArray(testOuts)}finally{disposeNewTensors(standardizedOuts[0],x),disposeNewTensors(standardizedOuts[1],y)}}async evaluateDataset(dataset,args){return this.makeTestFunction(),evaluateDataset(this,dataset,args)}checkNumSamples(ins,batchSize,steps,stepsName="steps"){let numSamples;if(steps!=null){if(numSamples=null,batchSize!=null)throw new ValueError(`If ${stepsName} is set, batchSize must be null or undefined.Got batchSize = ${batchSize}`)}else if(ins!=null)Array.isArray(ins)?numSamples=ins[0].shape[0]:numSamples=ins.shape[0];else throw new ValueError(`Either the input data should have a defined shape, or ${stepsName} shoud be specified.`);return numSamples}execute(inputs,outputs){if(Array.isArray(outputs)&&outputs.length===0)throw new ValueError("`outputs` is an empty Array, which is not allowed.");let outputsIsArray=Array.isArray(outputs),outputNames=outputsIsArray?outputs:[outputs],outputSymbolicTensors=this.retrieveSymbolicTensors(outputNames),feedDict=new FeedDict;if(inputs instanceof Tensor&&(inputs=[inputs]),Array.isArray(inputs)){if(inputs.length!==this.inputs.length)throw new ValueError(`The number of inputs provided (${inputs.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let i=0;ioutput.name);for(let i=0;i0){let remainingNames=[];throw outputSymbolicTensors.forEach((tensor2,i)=>{tensor2==null&&remainingNames.push(symbolicTensorNames[i])}),new ValueError(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(remainingNames)}`)}return outputSymbolicTensors}predictLoop(ins,batchSize=32,verbose=!1){return tidy(()=>{let numSamples=this.checkNumSamples(ins);if(verbose)throw new NotImplementedError("Verbose predictLoop() is not implemented yet.");let batches=makeBatches(numSamples,batchSize),outsBatches=this.outputs.map(output=>[]);for(let batchIndex=0;batchIndex{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],insBatch=sliceArrays(ins,batchStart,batchEnd),feeds=[];if(Array.isArray(insBatch))for(let i=0;ioutsBatches[i].push(batchOut));return singletonOrArray(outsBatches.map(batches2=>concat(batches2,0)))})}predict(x,args={}){let xsRank2OrHigher=ensureTensorsRank2OrHigher(x);checkInputData(xsRank2OrHigher,this.inputNames,this.feedInputShapes,!1);try{let batchSize=args.batchSize==null?32:args.batchSize;return checkBatchSize(batchSize),this.predictLoop(xsRank2OrHigher,batchSize)}finally{disposeNewTensors(xsRank2OrHigher,x)}}predictOnBatch(x){checkInputData(x,this.inputNames,this.feedInputShapes,!0);let batchSize=(Array.isArray(x)?x[0]:x).shape[0];return this.predictLoop(x,batchSize)}standardizeUserDataXY(x,y,checkBatchAxis=!0,batchSize){if(this.optimizer_==null)throw new RuntimeError("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let outputShapes=[];for(let i=0;i0&&x[0].shape[0]%batchSize!=0)throw new ValueError(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${batchSize}. Found: ${x[0].shape[0]} sample(s).`);return[x,y]}async standardizeUserData(x,y,sampleWeight,classWeight,checkBatchAxis=!0,batchSize){let[standardXs,standardYs]=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);if(sampleWeight!=null)throw new Error("sample weight is not supported yet.");let standardSampleWeights=null;if(classWeight!=null){let classWeights=standardizeClassWeights(classWeight,this.outputNames);standardSampleWeights=[];for(let i=0;i{let numSamples=this.checkNumSamples(ins,batchSize,steps,"steps"),outs=[];if(verbose>0)throw new NotImplementedError("Verbose mode is not implemented yet.");if(steps!=null)throw new NotImplementedError("steps mode in testLoop() is not implemented yet");{let batches=makeBatches(numSamples,batchSize),indexArray=tensor1d(range5(0,numSamples));for(let batchIndex=0;batchIndex1&&(newLabel+=`_${count(outLabels.slice(0,i),label)}`),dedupedOutLabels.push(newLabel)}return dedupedOutLabels}makeTrainFunction(){return data2=>{let lossValues=[],inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),sampleWeights=data2.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),metricsValues=[],totalLossFunction=()=>{let feeds=[];for(let i=0;i1&&i{totalLoss=add2(totalLoss,regularizerLoss)}),totalLoss},variables=this.collectedTrainableWeights.map(param=>param.read()),returnCost=!0;return[this.optimizer_.minimize(totalLossFunction,returnCost,variables)].concat(metricsValues)}}makeTestFunction(){this.testFunction=data2=>tidy(()=>{let valOutputs=[],totalLoss,inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),feeds=[];for(let i=0;itoSnakeCase(name))}else{let outputNames=Object.keys(this.loss);lossNames={};let losses4=this.loss;for(let outputName of outputNames)if(typeof losses4[outputName]=="string")lossNames[outputName]=toSnakeCase(losses4[outputName]);else throw new Error("Serialization of non-string loss is not supported.")}return lossNames}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[toSnakeCase(getLossOrMetricName(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(metric=>toSnakeCase(getLossOrMetricName(metric)));{let metricsIdentifiers={};for(let key in this.metrics)metricsIdentifiers[key]=toSnakeCase(getLossOrMetricName(this.metrics[key]));return metricsIdentifiers}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(trainingConfig){if(trainingConfig.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(trainingConfig.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(trainingConfig.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let tsConfig=convertPythonicToTs(trainingConfig.optimizer_config),optimizer=deserialize(tsConfig),loss;if(typeof trainingConfig.loss=="string")loss=toCamelCase(trainingConfig.loss);else if(Array.isArray(trainingConfig.loss))loss=trainingConfig.loss.map(lossEntry=>toCamelCase(lossEntry));else if(trainingConfig.loss!=null){loss={};for(let key in trainingConfig.loss)loss[key]=toCamelCase(trainingConfig.loss[key])}let metrics2;if(Array.isArray(trainingConfig.metrics))metrics2=trainingConfig.metrics.map(metric=>toCamelCase(metric));else if(trainingConfig.metrics!=null){metrics2={};for(let key in trainingConfig.metrics)metrics2[key]=toCamelCase(trainingConfig.metrics[key])}this.compile({loss,metrics:metrics2,optimizer})}async save(handlerOrURL,config3){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new ValueError(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new ValueError("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let weightDataAndSpecs=await io_exports.encodeWeights(this.getNamedWeights(config3)),returnString=!1,unusedArg=null,modelArtifacts={modelTopology:this.toJSON(unusedArg,returnString),format:LAYERS_MODEL_FORMAT_NAME,generatedBy:`TensorFlow.js tfjs-layers v${version10}`,convertedBy:null};if((config3==null?!1:config3.includeOptimizer)&&this.optimizer!=null){modelArtifacts.trainingConfig=this.getTrainingConfig();let weightType="optimizer",{data:optimizerWeightData,specs:optimizerWeightSpecs}=await io_exports.encodeWeights(await this.optimizer.getWeights(),weightType);weightDataAndSpecs.specs.push(...optimizerWeightSpecs),weightDataAndSpecs.data=io_exports.concatenateArrayBuffers([weightDataAndSpecs.data,optimizerWeightData])}if(this.userDefinedMetadata!=null){let checkSize=!0;checkUserDefinedMetadata(this.userDefinedMetadata,this.name,checkSize),modelArtifacts.userDefinedMetadata=this.userDefinedMetadata}return modelArtifacts.weightData=weightDataAndSpecs.data,modelArtifacts.weightSpecs=weightDataAndSpecs.specs,handlerOrURL.save(modelArtifacts)}setUserDefinedMetadata(userDefinedMetadata){checkUserDefinedMetadata(userDefinedMetadata,this.name),this.userDefinedMetadata=userDefinedMetadata}getUserDefinedMetadata(){return this.userDefinedMetadata}};LayersModel.className="Model";serialization_exports.registerClass(LayersModel);var Functional=class extends LayersModel{};Functional.className="Functional";serialization_exports.registerClass(Functional);async function modelFromJSON(modelAndWeightsConfig,customObjects){"modelTopology"in modelAndWeightsConfig||(modelAndWeightsConfig={modelTopology:modelAndWeightsConfig}),modelAndWeightsConfig=modelAndWeightsConfig;let modelTopology=modelAndWeightsConfig.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let tsConfig=convertPythonicToTs(modelTopology),model2=deserialize(tsConfig,customObjects);if(modelAndWeightsConfig.weightsManifest!=null){let weightValues=await io_exports.loadWeights(modelAndWeightsConfig.weightsManifest,modelAndWeightsConfig.pathPrefix,model2.weights.map(weight=>weight.originalName)),uniqueWeightValues={};for(let weight of model2.weights)uniqueWeightValues[weight.originalName]=weightValues[weight.originalName];model2.loadWeights(uniqueWeightValues),dispose(weightValues)}return model2}async function loadLayersModelInternal(pathOrIOHandler,options){if(options==null&&(options={}),typeof pathOrIOHandler=="string"){let handlers=io_exports.getLoadHandlers(pathOrIOHandler,options);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(pathOrIOHandler,options));else if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) load handlers for URL '${pathOrIOHandler}'`);pathOrIOHandler=handlers[0]}return loadLayersModelFromIOHandler(pathOrIOHandler,void 0,options)}async function loadLayersModelFromIOHandler(handler,customObjects,options){if(options==null&&(options={}),handler.load==null)throw new ValueError("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await handler.load(),modelTopology=artifacts.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let strict=options.strict==null?!0:options.strict,fastWeightInit=artifacts.weightData!=null&&artifacts.weightSpecs!=null&&strict,model2=deserialize(convertPythonicToTs(modelTopology),customObjects,fastWeightInit),trainingConfig=artifacts.trainingConfig;if(trainingConfig!=null&&model2.loadTrainingConfig(trainingConfig),artifacts.userDefinedMetadata!=null&&model2.setUserDefinedMetadata(artifacts.userDefinedMetadata),artifacts.weightData!=null){if(artifacts.weightSpecs==null)throw new ValueError("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights,optimizerWeights}=decodeModelAndOptimizerWeights(artifacts.weightData,artifacts.weightSpecs);model2.loadWeights(modelWeights,strict),model2.optimizer!=null&&optimizerWeights.length>0&&await model2.optimizer.setWeights(optimizerWeights),dispose(modelWeights),dispose(optimizerWeights.map(w=>w.tensor))}return model2}function decodeModelAndOptimizerWeights(buffer2,specs){let name2Tensor=io_exports.decodeWeights(buffer2,specs),modelWeights={},optimizerWeights=[];return specs.forEach(spec=>{spec.group==="optimizer"?optimizerWeights.push({name:spec.name,tensor:name2Tensor[spec.name]}):modelWeights[spec.name]=name2Tensor[spec.name]}),{modelWeights,optimizerWeights}}var Sequential=class extends LayersModel{constructor(args){super({inputs:[],outputs:[]});if(args=args||{},this.trainable=!0,this.built=!1,this.name=args.name!=null?args.name:getUid("sequential_"),args.layers!=null)for(let layer of args.layers)this.add(layer)}checkShape(layer){if(layer.inboundNodes[0].outputTensors[0].shape.some(x=>x<0))throw new ValueError(`Negative dimension size caused by adding layer ${layer.name} with input shape [${layer.inboundNodes[0].inputTensors[0].shape}]`)}add(layer){let isLayerModelInstance=layer instanceof Sequential||layer instanceof LayersModel,modelLayer;if(isLayerModelInstance){if(modelLayer=layer,modelLayer.outputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(modelLayer.inputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(layer.inboundNodes.length===0){if(layer.batchInputShape==null)throw new ValueError("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let x=Input({batchShape:layer.batchInputShape,dtype:layer.dtype,name:layer.name+"_input"});layer.apply(x)}if(isLayerModelInstance)this.outputs=modelLayer.outputs,this.inputs=modelLayer.inputs;else{if(layer.inboundNodes.length!==1)throw new ValueError(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${layer.name} which has ${layer.inboundNodes.length} pre-existing inbound connections.`);if(layer.inboundNodes[0].outputTensors.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[layer.inboundNodes[0].outputTensors[0]],this.inputs=getSourceInputs(this.outputs[0])}this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:pyListRepeat(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs[0].shape})}else{let outputTensor=layer.apply(this.outputs[0]);if(Array.isArray(outputTensor))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[outputTensor],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(layer),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let lastLayerIndex=this.layers.length-1;this.layers[lastLayerIndex].outboundNodes=[],this.outputs=[this.layers[lastLayerIndex].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(inputs,kwargs){return this.model==null&&this.build(),this.model.call(inputs,kwargs)}build(inputShape){if(getExactlyOneShape(inputShape),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new LayersModel({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(lineLength,positions,printFn=console.log){this.built||this.build(),super.summary(lineLength,positions,printFn)}setWeights(weights){this.model==null&&this.build(),this.model.setWeights(weights)}evaluate(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluate(x,y,args)}async evaluateDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluateDataset(dataset,args)}predict(x,args={}){return this.model==null&&this.build(),this.model.predict(x,args)}predictOnBatch(x){return this.model==null&&this.build(),this.model.predictOnBatch(x)}compile(args){this.build(),this.model.compile(args),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(optimizer){this.model.optimizer=optimizer}async fit(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fit(x,y,args)}async fitDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fitDataset(dataset,args)}async trainOnBatch(x,y){return this.model.trainOnBatch(x,y)}static fromConfig(cls,config3,customObjects={},fastWeightInit=!1){let configArray,extraModelConfig={};if(config3 instanceof Array){if(config3[0].className==null||config3[0].className==="Merge")throw new ValueError("Legacy serialization format not supported yet.");configArray=config3}else util_exports.assert(config3.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),configArray=config3.layers,delete config3.layers,extraModelConfig=config3;let model2=new cls(extraModelConfig);if(!(model2 instanceof Sequential))throw new NotImplementedError(`Sequential.fromConfig called on non-Sequential input: ${model2}`);for(let conf of configArray){let layer=deserialize(conf,void 0,fastWeightInit);fastWeightInit&&layer.setFastWeightInitDuringBuild(!0),model2.add(layer)}return model2}set stopTraining(stop){if(this.model==null)throw new ValueError("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=stop}get stopTraining(){if(this.model==null)throw new ValueError("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let layers=[];for(let layer of this.layers){let dict={};dict.className=layer.getClassName(),dict.config=layer.getConfig(),layers.push(dict)}return{name:this.name,layers}}};Sequential.className="Sequential";serialization_exports.registerClass(Sequential);function model(args){return new LayersModel(args)}function sequential(config3){return new Sequential(config3)}function loadLayersModel(pathOrIOHandler,options){return options==null&&(options={}),loadLayersModelInternal(pathOrIOHandler,options)}function input(config3){return Input(config3)}function registerCallbackConstructor(verbosityLevel,callbackConstructor){CallbackConstructorRegistry.registerCallbackConstructor(verbosityLevel,callbackConstructor)}var Activation=class extends serialization_exports.Serializable{getConfig(){return{}}},Elu2=class extends Activation{apply(x,alpha=1){return elu4(x,alpha)}};Elu2.className="elu";serialization_exports.registerClass(Elu2);var Selu2=class extends Activation{apply(x){return selu(x)}};Selu2.className="selu";serialization_exports.registerClass(Selu2);var Relu2=class extends Activation{apply(x){return relu(x)}};Relu2.className="relu";serialization_exports.registerClass(Relu2);var Relu62=class extends Activation{apply(x){return tidy(()=>minimum(6,relu(x)))}};Relu62.className="relu6";serialization_exports.registerClass(Relu62);var Linear=class extends Activation{apply(x){return x}};Linear.className="linear";serialization_exports.registerClass(Linear);var Sigmoid2=class extends Activation{apply(x){return sigmoid(x)}};Sigmoid2.className="sigmoid";serialization_exports.registerClass(Sigmoid2);var HardSigmoid=class extends Activation{apply(x){return hardSigmoid(x)}};HardSigmoid.className="hardSigmoid";serialization_exports.registerClass(HardSigmoid);var Softplus2=class extends Activation{apply(x){return softplus(x)}};Softplus2.className="softplus";serialization_exports.registerClass(Softplus2);var Softsign=class extends Activation{apply(x){return softsign(x)}};Softsign.className="softsign";serialization_exports.registerClass(Softsign);var Tanh2=class extends Activation{apply(x){return tanh2(x)}};Tanh2.className="tanh";serialization_exports.registerClass(Tanh2);var Softmax2=class extends Activation{apply(x,axis=-1){return softmax(x,axis)}};Softmax2.className="softmax";serialization_exports.registerClass(Softmax2);var LogSoftmax2=class extends Activation{apply(x,axis=-1){return logSoftmax(x,axis)}};LogSoftmax2.className="logSoftmax";serialization_exports.registerClass(LogSoftmax2);var Swish=class extends Activation{apply(x,alpha=1){return tidy(()=>sigmoid(x.mul(alpha)).mul(x))}};Swish.className="swish";serialization_exports.registerClass(Swish);function serializeActivation(activation2){return activation2.getClassName()}function deserializeActivation(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"activation")}function getActivation(identifier){if(identifier==null){let config3={};return config3.className="linear",config3.config={},deserializeActivation(config3)}if(typeof identifier=="string"){let config3={};return config3.className=identifier,config3.config={},deserializeActivation(config3)}else return identifier instanceof Activation?identifier:deserializeActivation(identifier)}function assertObjectArgs(args){if(args!=null&&typeof args!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${args}`)}var Regularizer=class extends serialization_exports.Serializable{},L1L2=class extends Regularizer{constructor(args){super();assertObjectArgs(args),this.l1=args==null||args.l1==null?.01:args.l1,this.l2=args==null||args.l2==null?.01:args.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(x){return tidy(()=>{let regularization=zeros([1]);return this.hasL1&&(regularization=add2(regularization,sum2(mul(this.l1,abs(x))))),this.hasL2&&(regularization=add2(regularization,sum2(mul(this.l2,square3(x))))),regularization.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(cls,config3){return new cls({l1:config3.l1,l2:config3.l2})}};L1L2.className="L1L2";serialization_exports.registerClass(L1L2);function l1(args){return assertObjectArgs(args),new L1L2({l1:args!=null?args.l1:null,l2:0})}function l2(args){return assertObjectArgs(args),new L1L2({l2:args!=null?args.l2:null,l1:0})}var REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={l1l2:"L1L2"};function serializeRegularizer(constraint){return serializeKerasObject(constraint)}function deserializeRegularizer(config3,customObjects={}){return deserializeKerasObject(config3,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"regularizer")}function getRegularizer(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config3={className:identifier in REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeRegularizer(config3)}else return identifier instanceof Regularizer?identifier:deserializeRegularizer(identifier)}var ReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null&&(this.maxValue=args.maxValue)}call(inputs,kwargs){inputs=getExactlyOneTensor(inputs);let output=relu(inputs);return this.maxValue!=null&&(output=clipByValue(output,0,this.maxValue)),output}computeOutputShape(inputShape){return inputShape}getConfig(){let config3={maxValue:this.maxValue},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};ReLU.className="ReLU";serialization_exports.registerClass(ReLU);var LeakyReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.DEFAULT_ALPHA=.3,args==null&&(args={}),this.alpha=args.alpha==null?this.DEFAULT_ALPHA:args.alpha}call(inputs,kwargs){let x=getExactlyOneTensor(inputs);return leakyRelu(x,this.alpha)}computeOutputShape(inputShape){return inputShape}getConfig(){let config3={alpha:this.alpha},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};LeakyReLU.className="LeakyReLU";serialization_exports.registerClass(LeakyReLU);var PReLU=class extends Layer{constructor(args){super(args==null?{}:args);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",args==null&&(args={}),this.supportsMasking=!0,this.alphaInitializer=getInitializer(args.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=getRegularizer(args.alphaRegularizer),this.alphaConstraint=getConstraint(args.alphaConstraint),args.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(args.sharedAxes))this.sharedAxes=args.sharedAxes;else if(typeof args.sharedAxes=="number")this.sharedAxes=[args.sharedAxes];else throw new ValueError(`Expected sharedAxes to be a number or an array of numbers, but got ${args.sharedAxes}`)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let paramShape=inputShape.slice(1);if(this.sharedAxes!=null)for(let i of this.sharedAxes)paramShape[i-1]=1;this.alpha=this.addWeight("alpha",paramShape,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let axes={};if(this.sharedAxes!=null)for(let i=1;i(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,1]):x))}function preprocessConv3DInput(x,dataFormat){return tidy(()=>(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,4,1]):x))}function conv1dWithBias(x,kernel,bias,strides=1,padding="valid",dataFormat,dilationRate=1){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.shape.length!==3)throw new ValueError(`The input of a conv1dWithBias operation should be 3, but is ${x.shape.length} instead.`);if(kernel.shape.length!==3)throw new ValueError(`The kernel for a conv1dWithBias operation should be 3, but is ${kernel.shape.length} instead`);if(bias!=null&&bias.shape.length!==1)throw new ValueError(`The bias for a conv1dWithBias operation should be 1, but is ${kernel.shape.length} instead`);if(dataFormat==="channelsFirst"&&(x=transpose(x,[0,2,1])),padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let y=conv1d(x,kernel,strides,padding==="same"?"same":"valid","NWC",dilationRate);return bias!=null&&(y=biasAdd(y,bias)),y})}function conv2dWithBiasActivation(x,kernel,bias,strides=[1,1],padding="valid",dataFormat,dilationRate,activation2=null){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==3&&x.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${x.rank}.`);if(kernel.rank!==3&&kernel.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${x.rank}.`);let y=preprocessConv2DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return y=fused_ops_exports.conv2d({x:y,filter:kernel,strides,pad:padding==="same"?"same":"valid",dilations:dilationRate,dataFormat:"NHWC",bias,activation:activation2}),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function conv3dWithBias(x,kernel,bias,strides=[1,1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==4&&x.rank!==5)throw new ValueError(`conv3dWithBias expects input to be of rank 4 or 5, but received ${x.rank}.`);if(kernel.rank!==4&&kernel.rank!==5)throw new ValueError(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${x.rank}.`);let y=preprocessConv3DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return y=conv3d(y,kernel,strides,padding==="same"?"same":"valid","NDHWC",dilationRate),bias!=null&&(y=biasAdd(y,bias)),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var BaseConv=class extends Layer{constructor(rank,args){super(args);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",BaseConv.verifyArgs(args),this.rank=rank,assertPositiveInteger(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new NotImplementedError(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=normalizeArray(args.kernelSize,rank,"kernelSize"),this.strides=normalizeArray(args.strides==null?1:args.strides,rank,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.activation=getActivation(args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=getConstraint(args.biasConstraint),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.dilationRate=normalizeArray(args.dilationRate==null?1:args.dilationRate,rank,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new ValueError(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new ValueError(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new ValueError(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(args){if(assert2("kernelSize"in args,"required key 'kernelSize' not in config"),typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,3))throw new ValueError(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(args.kernelSize)}.`)}getConfig(){let config3={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:serializeActivation(this.activation),useBias:this.useBias,biasInitializer:serializeInitializer(this.biasInitializer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},Conv=class extends BaseConv{constructor(rank,args){super(rank,args);this.kernel=null,Conv.verifyArgs(args),this.filters=args.filters,assertPositiveInteger(this.filters,"filters"),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([inputDim,this.filters]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[channelAxis]:inputDim}}],this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs,biasValue=this.bias==null?null:this.bias.read(),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName());if(fusedActivationName!=null&&this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate,fusedActivationName);else{if(this.rank===1)outputs=conv1dWithBias(inputs,this.kernel.read(),biasValue,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)outputs=conv3dWithBias(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new NotImplementedError("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(outputs=this.activation.apply(outputs))}return outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let newSpace=[],space=this.dataFormat==="channelsLast"?inputShape.slice(1,inputShape.length-1):inputShape.slice(2);for(let i=0;i 0 but got ${JSON.stringify(args.filters)}`)}},Conv2D2=class extends Conv{constructor(args){super(2,args);Conv2D2.verifyArgs(args)}getConfig(){let config3=super.getConfig();return delete config3.rank,config3}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,2))throw new ValueError(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv2D2.className="Conv2D";serialization_exports.registerClass(Conv2D2);var Conv3D2=class extends Conv{constructor(args){super(3,args);Conv3D2.verifyArgs(args)}getConfig(){let config3=super.getConfig();return delete config3.rank,config3}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!(Array.isArray(args.kernelSize)&&(args.kernelSize.length===1||args.kernelSize.length===3)))throw new ValueError(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(args.kernelSize)}.`)}};Conv3D2.className="Conv3D";serialization_exports.registerClass(Conv3D2);var Conv2DTranspose=class extends Conv2D2{constructor(args){super(args);if(this.inputSpec=[new InputSpec({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new ValueError(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length!==4)throw new ValueError("Input should have rank 4; Received input shape: "+JSON.stringify(inputShape));let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError("The channel dimension of the inputs should be defined. Found `None`.");let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([this.filters,inputDim]);this.kernel=this.addWeight("kernel",kernelShape,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new InputSpec({ndim:4,axes:{[channelAxis]:inputDim}})],this.built=!0}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);if(input2.shape.length!==4)throw new ValueError(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${input2.shape.length}`);let inputShape=input2.shape,batchSize=inputShape[0],hAxis,wAxis;this.dataFormat==="channelsFirst"?(hAxis=2,wAxis=3):(hAxis=1,wAxis=2);let height=inputShape[hAxis],width=inputShape[wAxis],kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1],outHeight=deconvLength(height,strideH,kernelH,this.padding),outWidth=deconvLength(width,strideW,kernelW,this.padding),outputShape=[batchSize,outHeight,outWidth,this.filters];this.dataFormat!=="channelsLast"&&(input2=transpose(input2,[0,2,3,1]));let outputs=conv2dTranspose(input2,this.kernel.read(),outputShape,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(outputs=transpose(outputs,[0,3,1,2])),this.bias!=null&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice(),channelAxis,heightAxis,widthAxis;this.dataFormat==="channelsFirst"?(channelAxis=1,heightAxis=2,widthAxis=3):(channelAxis=3,heightAxis=1,widthAxis=2);let kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1];return outputShape[channelAxis]=this.filters,outputShape[heightAxis]=deconvLength(outputShape[heightAxis],strideH,kernelH,this.padding),outputShape[widthAxis]=deconvLength(outputShape[widthAxis],strideW,kernelW,this.padding),outputShape}getConfig(){let config3=super.getConfig();return delete config3.dilationRate,config3}};Conv2DTranspose.className="Conv2DTranspose";serialization_exports.registerClass(Conv2DTranspose);var SeparableConv=class extends Conv{constructor(rank,config3){super(rank,config3);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,config3.filters==null)throw new ValueError("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(config3.kernelInitializer!=null||config3.kernelRegularizer!=null||config3.kernelConstraint!=null)throw new ValueError("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(config3.padding!=null&&config3.padding!=="same"&&config3.padding!=="valid")throw new ValueError(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(config3.padding)}`);this.depthMultiplier=config3.depthMultiplier==null?1:config3.depthMultiplier,this.depthwiseInitializer=getInitializer(config3.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=getRegularizer(config3.depthwiseRegularizer),this.depthwiseConstraint=getConstraint(config3.depthwiseConstraint),this.pointwiseInitializer=getInitializer(config3.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=getRegularizer(config3.pointwiseRegularizer),this.pointwiseConstraint=getConstraint(config3.pointwiseConstraint)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length{inputs=getExactlyOneTensor(inputs);let output;if(this.rank===1)throw new NotImplementedError("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(inputs=transpose(inputs,[0,2,3,1])),output=separableConv2d(inputs,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(output=biasAdd(output,this.bias.read(),this.dataFormat)),this.activation!=null&&(output=this.activation.apply(output)),this.dataFormat==="channelsFirst"&&(output=transpose(output,[0,3,1,2])),output})}getConfig(){let config3=super.getConfig();return delete config3.rank,delete config3.kernelInitializer,delete config3.kernelRegularizer,delete config3.kernelConstraint,config3.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config3.pointwiseInitializer=serializeInitializer(this.pointwiseInitializer),config3.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config3.pointwiseRegularizer=serializeRegularizer(this.pointwiseRegularizer),config3.depthwiseConstraint=serializeConstraint(this.depthwiseConstraint),config3.pointwiseConstraint=serializeConstraint(this.pointwiseConstraint),config3}};SeparableConv.className="SeparableConv";var SeparableConv2D=class extends SeparableConv{constructor(args){super(2,args)}};SeparableConv2D.className="SeparableConv2D";serialization_exports.registerClass(SeparableConv2D);var Conv1D=class extends Conv{constructor(args){super(1,args);Conv1D.verifyArgs(args),this.inputSpec=[{ndim:3}]}getConfig(){let config3=super.getConfig();return delete config3.rank,delete config3.dataFormat,config3}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,1))throw new ValueError(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv1D.className="Conv1D";serialization_exports.registerClass(Conv1D);var Cropping2D=class extends Layer{constructor(args){super(args);typeof args.cropping=="number"?this.cropping=[[args.cropping,args.cropping],[args.cropping,args.cropping]]:typeof args.cropping[0]=="number"?this.cropping=[[args.cropping[0],args.cropping[0]],[args.cropping[1],args.cropping[1]]]:this.cropping=args.cropping,this.dataFormat=args.dataFormat===void 0?"channelsLast":args.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(inputShape){return this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],inputShape[2]-this.cropping[0][0]-this.cropping[0][1],inputShape[3]-this.cropping[1][0]-this.cropping[1][1]]:[inputShape[0],inputShape[1]-this.cropping[0][0]-this.cropping[0][1],inputShape[2]-this.cropping[1][0]-this.cropping[1][1],inputShape[3]]}call(inputs,kwargs){return tidy(()=>{if(inputs=getExactlyOneTensor(inputs),this.dataFormat==="channelsLast"){let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let config3={cropping:this.cropping,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Cropping2D.className="Cropping2D";serialization_exports.registerClass(Cropping2D);var UpSampling2D=class extends Layer{constructor(args){super(args);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=args.size==null?this.DEFAULT_SIZE:args.size,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.interpolation=args.interpolation==null?"nearest":args.interpolation,checkInterpolationFormat(this.interpolation)}computeOutputShape(inputShape){if(this.dataFormat==="channelsFirst"){let height=inputShape[2]==null?null:this.size[0]*inputShape[2],width=inputShape[3]==null?null:this.size[1]*inputShape[3];return[inputShape[0],inputShape[1],height,width]}else{let height=inputShape[1]==null?null:this.size[0]*inputShape[1],width=inputShape[2]==null?null:this.size[1]*inputShape[2];return[inputShape[0],height,width,inputShape[3]]}}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs),inputShape=input2.shape;if(this.dataFormat==="channelsFirst"){input2=transpose(input2,[0,2,3,1]);let height=this.size[0]*inputShape[2],width=this.size[1]*inputShape[3],resized=this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width]);return transpose(resized,[0,3,1,2])}else{let height=this.size[0]*inputShape[1],width=this.size[1]*inputShape[2];return this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width])}})}getConfig(){let config3={size:this.size,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};UpSampling2D.className="UpSampling2D";serialization_exports.registerClass(UpSampling2D);function depthwiseConv2d4(x,depthwiseKernel,strides=[1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat);let y=preprocessConv2DInput(x,dataFormat);if(x.rank!==4)throw new ValueError(`Input for depthwiseConv2d is required to be 4-D, but is instead ${x.rank}-D`);if(depthwiseKernel.rank!==4)throw new ValueError(`depthwiseKernel is required to be 4-D, but is instead ${depthwiseKernel.rank}-D`);return y=depthwiseConv2d(y,depthwiseKernel,strides,padding==="same"?"same":"valid","NHWC",dilationRate),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}var DepthwiseConv2D=class extends BaseConv{constructor(args){super(2,args);this.depthwiseKernel=null,this.depthMultiplier=args.depthMultiplier==null?1:args.depthMultiplier,this.depthwiseInitializer=getInitializer(args.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=getConstraint(args.depthwiseConstraint),this.depthwiseRegularizer=getRegularizer(args.depthwiseRegularizer)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<4)throw new ValueError(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(inputShape)}.`);let channelAxis=this.dataFormat==="channelsFirst"?1:3;if(inputShape[channelAxis]==null||inputShape[channelAxis]<0)throw new ValueError(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${inputShape[channelAxis]}).`);let inputDim=inputShape[channelAxis],depthwiseKernelShape=[this.kernelSize[0],this.kernelSize[1],inputDim,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",depthwiseKernelShape,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[inputDim*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs=depthwiseConv2d4(inputs,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],outFilters=this.dataFormat==="channelsFirst"?inputShape[1]*this.depthMultiplier:inputShape[3]*this.depthMultiplier,outRows=convOutputLength(rows,this.kernelSize[0],this.padding,this.strides[0]),outCols=convOutputLength(cols,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[inputShape[0],outFilters,outRows,outCols]:[inputShape[0],outRows,outCols,outFilters]}getConfig(){let config3=super.getConfig();return config3.depthMultiplier=this.depthMultiplier,config3.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config3.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config3.depthwiseConstraint=serializeConstraint(this.depthwiseRegularizer),config3}};DepthwiseConv2D.className="DepthwiseConv2D";serialization_exports.registerClass(DepthwiseConv2D);function standardizeArgs(inputs,initialState,constants,numConstants){if(Array.isArray(inputs)){if(initialState!=null||constants!=null)throw new ValueError("When inputs is an array, neither initialState or constants should be provided");numConstants!=null&&(constants=inputs.slice(inputs.length-numConstants,inputs.length),inputs=inputs.slice(0,inputs.length-numConstants)),inputs.length>1&&(initialState=inputs.slice(1,inputs.length)),inputs=inputs[0]}function toListOrNull(x){return x==null||Array.isArray(x)?x:[x]}return initialState=toListOrNull(initialState),constants=toListOrNull(constants),{inputs,initialState,constants}}function rnn(stepFunction,inputs,initialStates,goBackwards=!1,mask,constants,unroll=!1,needPerStepOutputs=!1){return tidy(()=>{let ndim=inputs.shape.length;if(ndim<3)throw new ValueError(`Input should be at least 3D, but is ${ndim}D.`);let axes=[1,0].concat(range5(2,ndim));if(inputs=transpose(inputs,axes),constants!=null)throw new NotImplementedError("The rnn() functoin of the deeplearn.js backend does not support constants yet.");unroll&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),mask!=null&&(mask=mask.asType("bool").asType("float32"),mask.rank===ndim-1&&(mask=expandDims(mask,-1)),mask=transpose(mask,axes)),goBackwards&&(inputs=reverse(inputs,0),mask!=null&&(mask=reverse(mask,0)));let perStepOutputs=[],lastOutput,states=initialStates,timeSteps=inputs.shape[0],perStepInputs=unstack(inputs),perStepMasks;mask!=null&&(perStepMasks=unstack(mask));for(let t=0;tstepFunction(currentInput,states));if(mask==null)lastOutput=stepOutputs[0],states=stepOutputs[1];else{let maskedOutputs=tidy(()=>{let stepMask=perStepMasks[t],negStepMask=onesLike(stepMask).sub(stepMask),output=stepOutputs[0].mul(stepMask).add(states[0].mul(negStepMask)),newStates=states.map((state,i)=>stepOutputs[1][i].mul(stepMask).add(state.mul(negStepMask)));return{output,newStates}});lastOutput=maskedOutputs.output,states=maskedOutputs.newStates}needPerStepOutputs&&perStepOutputs.push(lastOutput)}let outputs;return needPerStepOutputs&&(outputs=stack(perStepOutputs,1)),[lastOutput,outputs,states]})}var RNN=class extends Layer{constructor(args){super(args);let cell;if(args.cell==null)throw new ValueError("cell property is missing for the constructor of RNN.");if(Array.isArray(args.cell)?cell=new StackedRNNCells({cells:args.cell}):cell=args.cell,cell.stateSize==null)throw new ValueError("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=cell,this.returnSequences=args.returnSequences==null?!1:args.returnSequences,this.returnState=args.returnState==null?!1:args.returnState,this.goBackwards=args.goBackwards==null?!1:args.goBackwards,this._stateful=args.stateful==null?!1:args.stateful,this.unroll=args.unroll==null?!1:args.unroll,this.supportsMasking=!0,this.inputSpec=[new InputSpec({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return range5(0,numStates).map(x=>null)}else return this.states_}setStates(states){this.states_=states}computeOutputShape(inputShape){isArrayOfShapes(inputShape)&&(inputShape=inputShape[0]),inputShape=inputShape;let stateSize=this.cell.stateSize;Array.isArray(stateSize)||(stateSize=[stateSize]);let outputDim=stateSize[0],outputShape;if(this.returnSequences?outputShape=[inputShape[0],inputShape[1],outputDim]:outputShape=[inputShape[0],outputDim],this.returnState){let stateShape=[];for(let dim of stateSize)stateShape.push([inputShape[0],dim]);return[outputShape].concat(stateShape)}else return outputShape}computeMask(inputs,mask){return tidy(()=>{Array.isArray(mask)&&(mask=mask[0]);let outputMask=this.returnSequences?mask:null;if(this.returnState){let stateMask=this.states.map(s=>null);return[outputMask].concat(stateMask)}else return outputMask})}get states(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,output=[];for(let i=0;ispec.shape[spec.shape.length-1]),stateSize))throw new ValueError(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=stateSize.map(dim=>new InputSpec({shape:[null,dim]}));this.stateful&&this.resetStates()}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let batchSize=this.inputSpec[0].shape[0];if(batchSize==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_=[zeros([batchSize,this.cell.stateSize])];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_[0]=zeros([batchSize,this.cell.stateSize]);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training===!0?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants;let additionalInputs=[],additionalSpecs=[];if(initialState!=null){kwargs.initialState=initialState,additionalInputs=additionalInputs.concat(initialState),this.stateSpec=[];for(let state of initialState)this.stateSpec.push(new InputSpec({shape:state.shape}));additionalSpecs=additionalSpecs.concat(this.stateSpec)}if(constants!=null&&(kwargs.constants=constants,additionalInputs=additionalInputs.concat(constants),this.numConstants=constants.length),additionalInputs[0]instanceof SymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;inputs=getExactlyOneTensor(inputs),initialState==null&&(this.stateful?initialState=this.states_:initialState=this.getInitialState(inputs));let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(initialState.length!==numStates)throw new ValueError(`RNN Layer has ${numStates} state(s) but was passed ${initialState.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let cellCallKwargs={training},rnnOutputs=rnn((inputs2,states2)=>{let outputs2=this.cell.call([inputs2].concat(states2),cellCallKwargs);return[outputs2[0],outputs2.slice(1)]},inputs,initialState,this.goBackwards,mask,null,this.unroll,this.returnSequences),lastOutput=rnnOutputs[0],outputs=rnnOutputs[1],states=rnnOutputs[2];this.stateful&&this.resetStates(states,training);let output=this.returnSequences?outputs:lastOutput;return this.returnState?[output].concat(states):output})}getInitialState(inputs){return tidy(()=>{let initialState=zeros(inputs.shape);return initialState=sum2(initialState,[1,2]),initialState=expandDims5(initialState),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(dim=>dim>1?tile5(initialState,[1,dim]):initialState):this.cell.stateSize>1?[tile5(initialState,[1,this.cell.stateSize])]:[initialState]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(value)}getConfig(){let baseConfig=super.getConfig(),config3={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(config3.numConstants=this.numConstants);let cellConfig=this.cell.getConfig();return this.getClassName()===RNN.className&&(config3.cell={className:this.cell.getClassName(),config:cellConfig}),Object.assign({},cellConfig,baseConfig,config3)}static fromConfig(cls,config3,customObjects={}){let cellConfig=config3.cell,cell=deserialize(cellConfig,customObjects);return new cls(Object.assign(config3,{cell}))}};RNN.className="RNN";serialization_exports.registerClass(RNN);var RNNCell=class extends Layer{},SimpleRNNCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation==null?this.DEFAULT_ACTIVATION:args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape),this.kernel=this.addWeight("kernel",[inputShape[inputShape.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`SimpleRNNCell expects 2 input Tensors, got ${inputs.length}.`);let prevOutput=inputs[1];inputs=inputs[0];let training=kwargs.training==null?!1:kwargs.training;0onesLike(inputs),rate:this.dropout,training})),0onesLike(prevOutput),rate:this.recurrentDropout,training}));let h,dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask;dpMask!=null?h=dot2(mul(inputs,dpMask),this.kernel.read()):h=dot2(inputs,this.kernel.read()),this.bias!=null&&(h=biasAdd(h,this.bias.read())),recDpMask!=null&&(prevOutput=mul(prevOutput,recDpMask));let output=add2(h,dot2(prevOutput,this.recurrentKernel.read()));return this.activation!=null&&(output=this.activation.apply(output)),[output,output]})}getConfig(){let baseConfig=super.getConfig(),config3={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),recurrentInitializer:serializeInitializer(this.recurrentInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),recurrentRegularizer:serializeRegularizer(this.recurrentRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),recurrentConstraint:serializeConstraint(this.recurrentConstraint),biasConstraint:serializeConstraint(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},baseConfig,config3)}};SimpleRNNCell.className="SimpleRNNCell";serialization_exports.registerClass(SimpleRNNCell);var SimpleRNN=class extends RNN{constructor(args){args.cell=new SimpleRNNCell(args),super(args)}call(inputs,kwargs){return tidy(()=>{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config3){return new cls(config3)}};SimpleRNN.className="SimpleRNN";serialization_exports.registerClass(SimpleRNN);var GRUCell=class extends RNNCell{constructor(args){super(args);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.resetAfter)throw new ValueError("GRUCell does not support reset_after parameter set to true.");this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`GRUCell expects 2 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training==null?!1:kwargs.training,hTMinus1=inputs[1];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:3})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:3}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,z,r,hh;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config3){return config3.implmentation===0&&(config3.implementation=1),new cls(config3)}};GRU.className="GRU";serialization_exports.registerClass(GRU);var LSTMCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=args.unitForgetBias,this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let biasInitializer;if(this.useBias){if(this.unitForgetBias){let capturedBiasInit=this.biasInitializer,capturedUnits=this.units;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let bI=capturedBiasInit.apply([capturedUnits]),bF=new Ones().apply([capturedUnits]),bCAndH=capturedBiasInit.apply([capturedUnits*2]);return concatAlongFirstAxis(concatAlongFirstAxis(bI,bF),bCAndH)}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training;if(inputs=inputs,inputs.length!==3)throw new ValueError(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let hTMinus1=inputs[1],cTMinus1=inputs[2];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:4})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:4}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,i,f,c,o;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config3){return config3.implmentation===0&&(config3.implementation=1),new cls(config3)}};LSTM.className="LSTM";serialization_exports.registerClass(LSTM);var StackedRNNCells=class extends RNNCell{constructor(args){super(args);this.cells=args.cells}get stateSize(){let stateSize=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?stateSize.push(...cell.stateSize):stateSize.push(cell.stateSize);return stateSize}call(inputs,kwargs){return tidy(()=>{inputs=inputs;let states=inputs.slice(1),nestedStates=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?nestedStates.push(states.splice(0,cell.stateSize.length)):nestedStates.push(states.splice(0,1));nestedStates.reverse();let newNestedStates=[],callInputs;for(let i=0;i{nameScope(`RNNCell_${i}`,()=>{cell.build(inputShape),Array.isArray(cell.stateSize)?outputDim=cell.stateSize[0]:outputDim=cell.stateSize,inputShape=[inputShape[0],outputDim]})}),this.built=!0}getConfig(){let baseConfig=super.getConfig(),getCellConfig=cell=>({className:cell.getClassName(),config:cell.getConfig()}),config3={cells:this.cells.map(getCellConfig)};return Object.assign({},baseConfig,config3)}static fromConfig(cls,config3,customObjects={}){let cells=[];for(let cellConfig of config3.cells)cells.push(deserialize(cellConfig,customObjects));return new cls({cells})}get trainableWeights(){if(!this.trainable)return[];let weights=[];for(let cell of this.cells)weights.push(...cell.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let cell of this.cells)trainableWeights.push(...cell.trainableWeights);return trainableWeights.concat(weights)}return weights}getWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.weights);return batchGetValue(weights)}setWeights(weights){let tuples=[];for(let cell of this.cells){let numParams=cell.weights.length,inputWeights=weights.splice(numParams);for(let i=0;idropout2(ones4(),rate),createMask=()=>inTrainPhase(droppedInputs,ones4,training);return!count2||count2<=1?keep(createMask().clone()):Array(count2).fill(void 0).map(createMask).map(m=>keep(m.clone()))}var __rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i{if(this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),kwargs&&kwargs.constants)throw new ValueError("ConvRNN2D cell does not support constants");let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}computeOutputShape(inputShape){let outShape=this.computeSingleOutputShape(inputShape);return this.returnSequences||(outShape=[outShape[0],...outShape.slice(2)]),this.returnState&&(outShape=[outShape,...Array(2).fill([inputShape[0],...outShape.slice(-3)])]),outShape}getInitialState(inputs){return tidy(()=>{let{stateSize}=this.cell,inputShape=inputs.shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)],initialState=zeros(stateShape);return Array.isArray(stateSize)?Array(stateSize.length).fill(initialState):[initialState]})}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let inputShape=this.inputSpec[0].shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)];if(inputShape[0]==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_=[zeros(stateShape)];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_[0]=zeros(stateShape);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}computeSingleOutputShape(inputShape){let{dataFormat,filters,kernelSize,padding,strides,dilationRate}=this.cell,isChannelsFirst=dataFormat==="channelsFirst",h=inputShape[isChannelsFirst?3:2],w=inputShape[isChannelsFirst?4:3],hOut=convOutputLength(h,kernelSize[0],padding,strides[0],dilationRate[0]),wOut=convOutputLength(w,kernelSize[1],padding,strides[1],dilationRate[1]);return[...inputShape.slice(0,2),...isChannelsFirst?[filters,hOut,wOut]:[hOut,wOut,filters]]}};ConvRNN2D.className="ConvRNN2D";var ConvLSTM2DCell=class extends LSTMCell{constructor(args){let{filters,kernelSize,strides,padding,dataFormat,dilationRate}=args;super(Object.assign({},args,{units:filters}));this.filters=filters,assertPositiveInteger(this.filters,"filters"),this.kernelSize=normalizeArray(kernelSize,2,"kernelSize"),this.kernelSize.forEach(size=>assertPositiveInteger(size,"kernelSize")),this.strides=normalizeArray(strides||1,2,"strides"),this.strides.forEach(stride=>assertPositiveInteger(stride,"strides")),this.padding=padding||"valid",checkPaddingMode(this.padding),this.dataFormat=dataFormat||"channelsLast",checkDataFormat(this.dataFormat),this.dilationRate=normalizeArray(dilationRate||1,2,"dilationRate"),this.dilationRate.forEach(rate=>assertPositiveInteger(rate,"dilationRate"))}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],numOfKernels=4,kernelShape=this.kernelSize.concat([inputDim,this.filters*numOfKernels]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let recurrentKernelShape=this.kernelSize.concat([this.filters,this.filters*numOfKernels]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",recurrentKernelShape,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let biasInitializer;if(this.unitForgetBias){let init2=this.biasInitializer,filters=this.filters;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let biasI=init2.apply([filters]),biasF=ones2([filters]),biasCAndO=init2.apply([filters*2]);return concatenate([biasI,biasF,biasCAndO])}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*numOfKernels],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs.length!==3)throw new ValueError(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training||!1,x=inputs[0],hTMinus1=inputs[1],cTMinus1=inputs[2],numOfKernels=4;0onesLike(x),rate:this.dropout,training,count:numOfKernels}));let dropoutMask=this.dropoutMask,applyDropout=(x2,mask,index)=>!mask||!mask[index]?x2:mul(mask[index],x2),xI=applyDropout(x,dropoutMask,0),xF=applyDropout(x,dropoutMask,1),xC=applyDropout(x,dropoutMask,2),xO=applyDropout(x,dropoutMask,3);0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:numOfKernels}));let recDropoutMask=this.recurrentDropoutMask,hI=applyDropout(hTMinus1,recDropoutMask,0),hF=applyDropout(hTMinus1,recDropoutMask,1),hC=applyDropout(hTMinus1,recDropoutMask,2),hO=applyDropout(hTMinus1,recDropoutMask,3),kernelChannelAxis=3,[kernelI,kernelF,kernelC,kernelO]=split(this.kernel.read(),numOfKernels,kernelChannelAxis),[biasI,biasF,biasC,biasO]=this.useBias?split(this.bias.read(),numOfKernels):[null,null,null,null];xI=this.inputConv(xI,kernelI,biasI,this.padding),xF=this.inputConv(xF,kernelF,biasF,this.padding),xC=this.inputConv(xC,kernelC,biasC,this.padding),xO=this.inputConv(xO,kernelO,biasO,this.padding);let[recKernelI,recKernelF,recKernelC,recKernelO]=split(this.recurrentKernel.read(),numOfKernels,kernelChannelAxis);hI=this.recurrentConv(hI,recKernelI),hF=this.recurrentConv(hF,recKernelF),hC=this.recurrentConv(hC,recKernelC),hO=this.recurrentConv(hO,recKernelO);let i=this.recurrentActivation.apply(add2(xI,hI)),f=this.recurrentActivation.apply(add2(xF,hF)),c=add2(mul(f,cTMinus1),mul(i,this.activation.apply(add2(xC,hC)))),h=mul(this.recurrentActivation.apply(add2(xO,hO)),this.activation.apply(c));return[h,h,c]})}getConfig(){let _a=super.getConfig(),{units:_}=_a,baseConfig=__rest(_a,["units"]),config3={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},baseConfig,config3)}inputConv(x,w,b,padding){let out=conv2d(x,w,this.strides,padding||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return b?biasAdd(out,b,this.dataFormat):out}recurrentConv(x,w){return conv2d(x,w,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};ConvLSTM2DCell.className="ConvLSTM2DCell";serialization_exports.registerClass(ConvLSTM2DCell);var ConvLSTM2D=class extends ConvRNN2D{constructor(args){let cell=new ConvLSTM2DCell(args);super(Object.assign({},args,{cell}))}static fromConfig(cls,config3){return new cls(config3)}};ConvLSTM2D.className="ConvLSTM2D";serialization_exports.registerClass(ConvLSTM2D);var Dropout=class extends Layer{constructor(args){super(args);this.rate=Math.max(Math.min(args.rate,1),0),this.noiseShape=args.noiseShape,this.seed=args.seed,this.supportsMasking=!0}getNoiseShape(input2){if(this.noiseShape==null)return this.noiseShape;let inputShape=input2.shape,noiseShape=[];for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(0dropout2(input2,this.rate,noiseShape,this.seed),()=>input2,training)}return inputs})}getConfig(){let config3={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}dispose(){return super.dispose()}};Dropout.className="Dropout";serialization_exports.registerClass(Dropout);var SpatialDropout1D=class extends Dropout{constructor(args){super(args);this.inputSpec=[{ndim:3}]}getNoiseShape(input2){let inputShape=input2.shape;return[inputShape[0],1,inputShape[2]]}};SpatialDropout1D.className="SpatialDropout1D";serialization_exports.registerClass(SpatialDropout1D);var Dense=class extends Layer{constructor(args){super(args);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.batchInputShape==null&&args.inputShape==null&&args.inputDim!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),this.batchInputShape=[batchSize,args.inputDim]}this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation),args.useBias!=null&&(this.useBias=args.useBias),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputLastDim=inputShape[inputShape.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[inputLastDim,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:inputLastDim}}],this.built=!0}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return outputShape[outputShape.length-1]=this.units,outputShape}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName()),output;return fusedActivationName!=null?output=dot2(input2,this.kernel.read(),fusedActivationName,this.bias?this.bias.read():null):(output=dot2(input2,this.kernel.read()),this.bias!=null&&(output=biasAdd(output,this.bias.read())),this.activation!=null&&(output=this.activation.apply(output))),output})}getConfig(){let config3={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Dense.className="Dense";serialization_exports.registerClass(Dense);var Flatten=class extends Layer{constructor(args){args=args||{},super(args),this.inputSpec=[{minNDim:3}],this.dataFormat=args.dataFormat}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);for(let dim of inputShape.slice(1))if(dim==null)throw new ValueError(`The shape of the input to "Flatten" is not fully defined (got ${inputShape.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[inputShape[0],arrayProd(inputShape,1)]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(this.dataFormat==="channelsFirst"&&input2.rank>1){let permutation=[0];for(let i=2;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.activation.apply(input2)})}getConfig(){let config3={activation:serializeActivation(this.activation)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Activation2.className="Activation";serialization_exports.registerClass(Activation2);var RepeatVector=class extends Layer{constructor(args){super(args);this.n=args.n,this.inputSpec=[{ndim:2}]}computeOutputShape(inputShape){return[inputShape[0],this.n,inputShape[1]]}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),repeat(inputs,this.n)))}getConfig(){let config3={n:this.n},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};RepeatVector.className="RepeatVector";serialization_exports.registerClass(RepeatVector);var Reshape2=class extends Layer{constructor(args){super(args);this.targetShape=args.targetShape;for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,outputShape=inputShape.slice(0,1).concat(this.fixUnknownDimension(inputShape.slice(1),this.targetShape));return input2.reshape(outputShape)})}getConfig(){let config3={targetShape:this.targetShape},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Reshape2.className="Reshape";serialization_exports.registerClass(Reshape2);var Permute=class extends Layer{constructor(args){super(args);if(args.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(args.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${args.dims} instead.`);let expectedSortedIndices=range5(1,args.dims.length+1);if(!util_exports.arraysEqual(args.dims.slice().sort(),expectedSortedIndices))throw new Error("Invalid permutation `dims`: "+JSON.stringify(args.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=args.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new InputSpec({ndim:this.dims.length+1})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return this.dims.forEach((dim,i)=>{outputShape[i+1]=inputShape[dim]}),outputShape}call(inputs,kwargs){return transpose(getExactlyOneTensor(inputs),this.dimsIncludingBatch)}getConfig(){let config3={dims:this.dims},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Permute.className="Permute";serialization_exports.registerClass(Permute);var Masking=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null?this.maskValue=args.maskValue==null?0:args.maskValue:this.maskValue=0}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={maskValue:this.maskValue};return Object.assign(config3,baseConfig),config3}computeMask(inputs,mask){let input2=getExactlyOneTensor(inputs),axis=-1;return any(notEqual(input2,this.maskValue),axis)}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),axis=-1,keepDims=!0,booleanMask=any(notEqual(input2,this.maskValue),axis,keepDims);return input2.mul(booleanMask.asType(input2.dtype))})}};Masking.className="Masking";serialization_exports.registerClass(Masking);var Embedding=class extends Layer{constructor(args){super(args);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",args.batchInputShape==null&&args.inputShape==null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),args.inputLength==null?this.batchInputShape=[batchSize,null]:this.batchInputShape=[batchSize].concat(toList(args.inputLength))}this.inputDim=args.inputDim,assertPositiveInteger(this.inputDim,"inputDim"),this.outputDim=args.outputDim,assertPositiveInteger(this.outputDim,"outputDim"),this.embeddingsInitializer=getInitializer(args.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=getRegularizer(args.embeddingsRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.embeddingsConstraint=getConstraint(args.embeddingsConstraint),this.maskZero=args.maskZero,this.supportsMasking=args.maskZero,this.inputLength=args.inputLength}build(inputShape){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(inputShape){}computeMask(inputs,mask){return tidy(()=>this.maskZero?(inputs=getExactlyOneTensor(inputs),notEqual(inputs,zerosLike(inputs))):null)}computeOutputShape(inputShape){if(inputShape=getExactlyOneShape(inputShape),this.inputLength==null)return[...inputShape,this.outputDim];let inLens=toList(this.inputLength);if(inLens.length!==inputShape.length-1)throw new ValueError(`"inputLength" is ${this.inputLength}, but received input shape has shape ${inputShape}`);{let i=0;for(let k=0;k{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return input2.dtype!=="int32"&&(input2=cast5(input2,"int32")),gather2(this.embeddings.read(),input2.as1D()).reshape(getExactlyOneShape(this.computeOutputShape(input2.shape)))})}getConfig(){let config3={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:serializeInitializer(this.embeddingsInitializer),embeddingsRegularizer:serializeRegularizer(this.embeddingsRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),embeddingsConstraint:serializeConstraint(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Embedding.className="Embedding";serialization_exports.registerClass(Embedding);var Merge=class extends Layer{constructor(args){super(args||{});this.supportsMasking=!0}mergeFunction(inputs){throw new NotImplementedError}computeElementwiseOpOutputShape(shape1,shape2){if(shape1==null||shape2==null)return null;if(shape1.length1)throw new ValueError(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(inputShape)}.`);let outputShape=inputShape[0]==null?null:inputShape[0].slice(1);for(let i=1;ishape.length);inputShape.indexOf(null)===-1&&unique4(allRanks).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,this.reshapeRequired){let reshapedInputs=[],inputDims=inputs.map(input2=>input2.rank);if(inputDims.indexOf(null)===-1){let maxNDim=max5(inputDims);for(let x of inputs){let xNDim=x.rank;for(let k=0;k1){let dims=range5(1,xNDim).concat([0]);reshapedInputs.push(transpose(x,dims)),transposed=!0}else reshapedInputs.push(x)}let y=this.mergeFunction(reshapedInputs),yNDim=y.rank;if(transposed){if(yNDim==null){let yShape=y.shape,yNDim2=yShape.length,batchSize=yShape[yNDim2-1],newShape=[batchSize].concat(yShape.slice(0,yShape.length-1));y=transpose(y.reshape([-1,batchSize]),[1,0]).reshape(newShape)}else if(yNDim>1){let dims=[yNDim-1].concat(range5(0,yNDim-1));y=transpose(y,dims)}}return y}}else return this.mergeFunction(inputs)})}computeOutputShape(inputShape){inputShape=inputShape;let outputShape;inputShape[0]==null?outputShape=null:outputShape=inputShape[0].slice(1);for(let i=1;i{if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an Array");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an Array");if(mask.length!==inputs.length)throw new ValueError(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${inputs.length} vs ${mask.length})`);if(mask.every(m=>m==null))return null;mask=mask.map(m=>m==null?m:expandDims(m,0));let output=mask[0];for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0];for(let i=1;i{let output=inputs[0];for(let i=1;i1)throw new ValueError("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(inputShape))}mergeFunction(inputs){return tidy(()=>concatenate(inputs,this.axis))}computeOutputShape(inputShape){if(!(Array.isArray(inputShape)&&Array.isArray(inputShape[0])))throw new ValueError("A `Concatenate` layer should be called on a list of inputs.");let inputShapes=inputShape,outputShape=inputShapes[0].slice(),axis=this.axis<0?outputShape.length+this.axis:this.axis;for(let shape of inputShapes.slice(1)){if(outputShape[axis]==null||shape[axis]==null){outputShape[axis]=null;break}outputShape[axis]+=shape[axis]}return outputShape}computeMask(inputs,mask){if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an array for Concatenate");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an array for Concatenate");if(mask.length!==inputs.length)throw new ValueError(`Mismatch in the length of mask (${mask.length}) and the legnth of inputs (${inputs.length})`);return tidy(()=>{let allNullMasks=!0;if(mask.forEach(m=>{if(m!=null){allNullMasks=!1;return}}),allNullMasks)return null;let outputMasks=[];for(let i=0;i3||y.shape.length>3)throw new NotImplementedError("batchDot is not implemented for tensors of 4D or higher rank yet");if(util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${x.shape.length}`),util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${y.shape.length}`),typeof axes=="number"&&(axes=[axes,axes]),x.dtype==="complex64"||y.dtype==="complex64")throw new NotImplementedError("batchDot is not implemented for complex64-type Tensors yet.");let xNDim=x.shape.length,yNDim=y.shape.length;axes==null&&(axes=[xNDim-1,yNDim-2]);let axesArray=axes;return tidy(()=>{let diff;if(xNDim>yNDim){diff=xNDim-yNDim;let diffShape=[];for(let i=0;ixNDim){diff=yNDim-xNDim;let diffShape=[];for(let i=0;i0){let idx;xNDim>yNDim?idx=xNDim+yNDim-3:idx=xNDim-1;let squeezeAxes=[];for(let i=idx;i"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0],shape2=inputShape[1];if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);if(shape1[axes[0]]!==shape2[axes[1]])throw new ValueError(`Dimension incompatibility: ${shape1[axes[0]]} !== ${shape2[axes[1]]}`)}mergeFunction(inputs){if(inputs.length!==2)throw new ValueError(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${inputs.length} input(s).`);let x1=inputs[0],x2=inputs[1],axes;return Array.isArray(this.axes)?axes=this.axes.map((axis,i)=>interpretAxis(axis,inputs[i].shape.length)):axes=[interpretAxis(this.axes,x1.shape.length),interpretAxis(this.axes,x2.shape.length)],this.normalize&&(x1=l2Normalize(x1,axes[0]),x2=l2Normalize(x2,axes[1])),batchDot(x1,x2,axes)}interpretAxes(shape1,shape2){let axes;return Array.isArray(this.axes)?axes=this.axes:axes=[interpretAxis(this.axes,shape1.length),interpretAxis(this.axes,shape2.length)],axes}computeOutputShape(inputShape){util_exports.assert(Array.isArray(inputShape)&&inputShape.length===2&&Array.isArray(inputShape[0])&&Array.isArray(inputShape[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0].slice(),shape2=inputShape[1].slice();if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);shape1.splice(axes[0],1),shape2.splice(axes[1],1),shape2.splice(0,1);let outputShape=shape1.concat(shape2);return outputShape.length===1&&outputShape.push(1),outputShape}computeMask(inputs,mask){return null}getConfig(){let config3={axes:this.axes,normalize:this.normalize},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};Dot.className="Dot";serialization_exports.registerClass(Dot);var GaussianNoise=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.stddev=args.stddev}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={stddev:this.stddev};return Object.assign(config3,baseConfig),config3}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return inTrainPhase(()=>randomNormal2(input2.shape,0,this.stddev).add(input2),()=>input2,kwargs.training||!1)})}};GaussianNoise.className="GaussianNoise";serialization_exports.registerClass(GaussianNoise);var GaussianDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={rate:this.rate};return Object.assign(config3,baseConfig),config3}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.rate>0&&this.rate<1?inTrainPhase(()=>{let stddev=Math.sqrt(this.rate/(1-this.rate));return input2.mul(randomNormal2(input2.shape,1,stddev))},()=>input2,kwargs.training||!1):input2})}};GaussianDropout.className="GaussianDropout";serialization_exports.registerClass(GaussianDropout);var AlphaDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate,this.noiseShape=args.noiseShape}_getNoiseShape(inputs){return this.noiseShape||getExactlyOneTensor(inputs).shape}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config3={rate:this.rate};return Object.assign(config3,baseConfig),config3}call(inputs,kwargs){return tidy(()=>{if(this.rate<1&&this.rate>0){let noiseShape=this._getNoiseShape(inputs);return inTrainPhase(()=>{let input2=getExactlyOneTensor(inputs),alpha=1.6732632423543772,scale2=1.0507009873554805,alphaP=-alpha*scale2,keptIdx=greaterEqual(randomUniform(noiseShape),this.rate);keptIdx=cast5(keptIdx,"float32");let a=((1-this.rate)*(1+this.rate*alphaP**2))**-.5,b=-a*alphaP*this.rate;return input2.mul(keptIdx).add(keptIdx.add(-1).mul(alphaP)).mul(a).add(b)},()=>getExactlyOneTensor(inputs),kwargs.training||!1)}return inputs})}};AlphaDropout.className="AlphaDropout";serialization_exports.registerClass(AlphaDropout);function batchNormalization(x,mean4,variance,beta,gamma,epsilon3=.001){let out;if(x.rank===2)out=batchNorm2d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===3)out=batchNorm3d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===4)out=batchNorm4d(x,mean4,variance,beta,gamma,epsilon3);else throw new NotImplementedError(`batchNormalization is not implemented for array of rank ${x.rank} yet`);return out}function regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance;return[batchNormalization(x,mean4,variance,beta,gamma,epsilon3),mean4,variance]})}function broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance,targetShape=[];for(let axis of range5(0,x.rank))reductionAxes.indexOf(axis)!==-1?targetShape.push(1):targetShape.push(x.shape[axis]);let broadcastMean=mean4.reshape(targetShape),broadcastVariance=variance.reshape(targetShape),broadcastGamma=gamma==null?null:gamma.reshape(targetShape),broadcastBeta=beta==null?null:beta.reshape(targetShape);return[batchNormalization(x,broadcastMean,broadcastVariance,broadcastBeta,broadcastGamma,epsilon3),mean4,variance]})}function normalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return util_exports.arraysEqual(reductionAxes.slice().sort(),range5(0,x.rank-1))?regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3):broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3)}var BatchNormalization=class extends Layer{constructor(args){args==null&&(args={}),super(args),this.supportsMasking=!0,this.axis=args.axis==null?-1:args.axis,this.momentum=args.momentum==null?.99:args.momentum,this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.movingMeanInitializer=getInitializer(args.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=getInitializer(args.movingVarianceInitializer||"ones"),this.betaConstraint=getConstraint(args.betaConstraint),this.gammaConstraint=getConstraint(args.gammaConstraint),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let axis=this.axis>=0?this.axis:this.axis+inputShape.length,dim=inputShape[axis];if(dim==null)throw new ValueError(`Axis ${axis} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(inputShape)}.`);this.inputSpec=[new InputSpec({ndim:inputShape.length,axes:{[axis]:dim}})];let shape=[dim];this.scale&&(this.gamma=this.addWeight("gamma",shape,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",shape,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",shape,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",shape,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training,input2=getExactlyOneTensor(inputs),inputShape=input2.shape,ndim=inputShape.length,reductionAxes=range5(0,ndim),axis=this.axis>=0?this.axis:this.axis+ndim;reductionAxes.splice(axis,1);let broadcastShape=pyListRepeat(1,ndim);broadcastShape[axis]=inputShape[axis];let sortedReductionAxes=reductionAxes.slice();sortedReductionAxes.sort();let needsBroadcasting=!util_exports.arraysEqual(sortedReductionAxes,range5(0,ndim).slice(0,ndim-1)),normalizeInference=()=>{if(needsBroadcasting){let broadcastMovingMean=this.movingMean.read().reshape(broadcastShape),broadcastMovingVariance=this.movingVariance.read().reshape(broadcastShape),broadcastBeta=this.center?this.beta.read().reshape(broadcastShape):null,broadcastGamma=this.scale?this.gamma.read().reshape(broadcastShape):null;return batchNormalization(input2,broadcastMovingMean,broadcastMovingVariance,broadcastBeta,broadcastGamma,this.epsilon)}else return batchNormalization(input2,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!training)return normalizeInference();let[normedTraining,mean4,variance]=normalizeBatchInTraining(input2,this.gamma.read(),this.beta.read(),reductionAxes,this.epsilon),doMovingAverage=(variable2,value,momentum)=>{tidy(()=>{let decay=1-momentum,origValue=variable2.read(),updateDelta=origValue.sub(value).mul(decay);variable2.write(origValue.sub(updateDelta))})};return(()=>{doMovingAverage(this.movingMean,mean4,this.momentum),doMovingAverage(this.movingVariance,variance,this.momentum)})(),normedTraining})}getConfig(){let config3={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:serializeInitializer(this.betaInitializer),gammaInitializer:serializeInitializer(this.gammaInitializer),movingMeanInitializer:serializeInitializer(this.movingMeanInitializer),movingVarianceInitializer:serializeInitializer(this.movingVarianceInitializer),betaRegularizer:serializeRegularizer(this.betaRegularizer),gammaRegularizer:serializeRegularizer(this.gammaRegularizer),betaConstraint:serializeConstraint(this.betaConstraint),gammaConstraint:serializeConstraint(this.gammaConstraint)},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};BatchNormalization.className="BatchNormalization";serialization_exports.registerClass(BatchNormalization);var LayerNormalization=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.axis=args.axis==null?-1:args.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let axis of this.axis)if(!Number.isInteger(axis))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer),this.supportsMasking=!0}build(inputShape){inputShape=getExactlyOneShape(inputShape);let nDims=inputShape.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=nDims)throw new Error(`Invalid axis: ${axis}`);if(this.axis.length!==unique4(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let paramShape=this.axis.map(axis=>inputShape[axis]),trainable=!0;this.scale?this.gamma=this.addWeight("gamma",paramShape,"float32",this.gammaInitializer,this.gammaRegularizer,trainable):this.gamma=null,this.center?this.beta=this.addWeight("beta",paramShape,"float32",this.betaInitializer,this.betaRegularizer,trainable):this.beta=null,this.built=!0}call(inputs,kwargs){let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,nDims=inputShape.length;return tidy(()=>{let keepDims=!0,{mean:mean4,variance}=moments(input2,this.axis,keepDims),broadcastShape=pyListRepeat(1,nDims);for(let dim of this.axis)broadcastShape[dim]=inputShape[dim];let broadcast=v=>v!=null&&v.shape.length!==nDims&&this.axis!==[nDims-1]?v.reshape(broadcastShape):v,scale2=broadcast(this.gamma.read()),offset=broadcast(this.beta.read()),momentsTiling=[],scaleOffsetTiling=[];for(let i=0;i{if(x.rank!==4)throw new ValueError(`temporalPadding expects input tensor to be 4-D, but received a ${x.rank}-D tensor.`);if(padding==null&&(padding=[[1,1],[1,1]]),padding.length!==2||padding[0].length!==2||padding[1].length!==2)throw new ValueError("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(dataFormat==null&&(dataFormat=imageDataFormat()),dataFormat!=="channelsLast"&&dataFormat!=="channelsFirst")throw new ValueError(`Unknown data format: ${dataFormat}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let pattern;return dataFormat==="channelsFirst"?pattern=[[0,0],[0,0],padding[0],padding[1]]:pattern=[[0,0],padding[0],padding[1],[0,0]],pad(x,pattern)})}var ZeroPadding2D=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.dataFormat=args.dataFormat==null?imageDataFormat():args.dataFormat,args.padding==null)this.padding=[[1,1],[1,1]];else if(typeof args.padding=="number")this.padding=[[args.padding,args.padding],[args.padding,args.padding]];else{if(args.padding=args.padding,args.padding.length!==2)throw new ValueError(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${args.padding.length} array.`);let heightPadding,widthPadding;if(typeof args.padding[0]=="number")heightPadding=[args.padding[0],args.padding[0]],widthPadding=[args.padding[1],args.padding[1]];else{if(args.padding=args.padding,args.padding[0].length!==2)throw new ValueError(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${args.padding[0].length} array.`);if(heightPadding=args.padding[0],args.padding[1].length!==2)throw new ValueError(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${args.padding[1].length} array.`);widthPadding=args.padding[1]}this.padding=[heightPadding,widthPadding]}this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows,cols;return this.dataFormat==="channelsFirst"?(inputShape[2]!=null&&inputShape[2]>=0?rows=inputShape[2]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[3]!=null&&inputShape[3]>=0?cols=inputShape[3]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],inputShape[1],rows,cols]):(inputShape[1]!=null&&inputShape[1]>=0?rows=inputShape[1]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[2]!=null&&inputShape[2]>=0?cols=inputShape[2]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],rows,cols,inputShape[3]])}call(inputs,kwargs){return tidy(()=>spatial2dPadding(getExactlyOneTensor(inputs),this.padding,this.dataFormat))}getConfig(){let config3={padding:this.padding,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}};ZeroPadding2D.className="ZeroPadding2D";serialization_exports.registerClass(ZeroPadding2D);function pool2d(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv2DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool(x,poolSize,strides,paddingString):y=avgPool(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function pool3d2(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv3DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool3d(x,poolSize,strides,paddingString):y=avgPool3d(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var Pooling1D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=2),super(args),typeof args.poolSize=="number")this.poolSize=[args.poolSize];else if(Array.isArray(args.poolSize)&&args.poolSize.length===1&&typeof args.poolSize[0]=="number")this.poolSize=args.poolSize;else throw new ValueError(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.poolSize)}`);if(assertPositiveInteger(this.poolSize,"poolSize"),args.strides==null)this.strides=this.poolSize;else if(typeof args.strides=="number")this.strides=[args.strides];else if(Array.isArray(args.strides)&&args.strides.length===1&&typeof args.strides[0]=="number")this.strides=args.strides;else throw new ValueError(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.strides)}`);assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let length=convOutputLength(inputShape[1],this.poolSize[0],this.padding,this.strides[0]);return[inputShape[0],length,inputShape[2]]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs),inputs=expandDims5(getExactlyOneTensor(inputs),2);let output=this.poolingFunction(getExactlyOneTensor(inputs),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return squeeze(output,[2])})}getConfig(){let config3={poolSize:this.poolSize,padding:this.padding,strides:this.strides},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},MaxPooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling1D.className="MaxPooling1D";serialization_exports.registerClass(MaxPooling1D);var AveragePooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling1D.className="AveragePooling1D";serialization_exports.registerClass(AveragePooling1D);var Pooling2D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==2)throw new ValueError(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2];return rows=convOutputLength(rows,this.poolSize[0],this.padding,this.strides[0]),cols=convOutputLength(cols,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],rows,cols]:[inputShape[0],rows,cols,inputShape[3]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config3={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},MaxPooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling2D.className="MaxPooling2D";serialization_exports.registerClass(MaxPooling2D);var AveragePooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling2D.className="AveragePooling2D";serialization_exports.registerClass(AveragePooling2D);var Pooling3D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==3)throw new ValueError(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:5})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let depths=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],rows=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],cols=this.dataFormat==="channelsFirst"?inputShape[4]:inputShape[3];return depths=convOutputLength(depths,this.poolSize[0],this.padding,this.strides[0]),rows=convOutputLength(rows,this.poolSize[1],this.padding,this.strides[1]),cols=convOutputLength(cols,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],depths,rows,cols]:[inputShape[0],depths,rows,cols,inputShape[4]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config3={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},MaxPooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling3D.className="MaxPooling3D";serialization_exports.registerClass(MaxPooling3D);var AveragePooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling3D.className="AveragePooling3D";serialization_exports.registerClass(AveragePooling3D);var GlobalPooling1D=class extends Layer{constructor(args){super(args);this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){return[inputShape[0],inputShape[2]]}call(inputs,kwargs){throw new NotImplementedError}},GlobalAveragePooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return mean(input2,1)})}};GlobalAveragePooling1D.className="GlobalAveragePooling1D";serialization_exports.registerClass(GlobalAveragePooling1D);var GlobalMaxPooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return max(input2,1)})}};GlobalMaxPooling1D.className="GlobalMaxPooling1D";serialization_exports.registerClass(GlobalMaxPooling1D);var GlobalPooling2D=class extends Layer{constructor(args){super(args);this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){return inputShape=inputShape,this.dataFormat==="channelsLast"?[inputShape[0],inputShape[3]]:[inputShape[0],inputShape[1]]}call(inputs,kwargs){throw new NotImplementedError}getConfig(){let config3={dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}},GlobalAveragePooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?mean(input2,[1,2]):mean(input2,[2,3])})}};GlobalAveragePooling2D.className="GlobalAveragePooling2D";serialization_exports.registerClass(GlobalAveragePooling2D);var GlobalMaxPooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?max(input2,[1,2]):max(input2,[2,3])})}};GlobalMaxPooling2D.className="GlobalMaxPooling2D";serialization_exports.registerClass(GlobalMaxPooling2D);var Wrapper=class extends Layer{constructor(args){super(args);this.layer=args.layer}build(inputShape){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(value){this.layer!=null&&(this.layer.trainable=value)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(weights){this.layer.setWeights(weights)}getConfig(){let config3={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(value)}static fromConfig(cls,config3,customObjects={}){let layerConfig=config3.layer,layer=deserialize(layerConfig,customObjects);delete config3.layer;let newConfig={layer};return Object.assign(newConfig,config3),new cls(newConfig)}},TimeDistributed=class extends Wrapper{constructor(args){super(args);this.supportsMasking=!0}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<3)throw new ValueError(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(inputShape)}`);this.inputSpec=[{shape:inputShape}];let childInputShape=[inputShape[0]].concat(inputShape.slice(2));this.layer.built||(this.layer.build(childInputShape),this.layer.built=!0),super.build(inputShape)}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let childInputShape=[inputShape[0]].concat(inputShape.slice(2)),childOutputShape=this.layer.computeOutputShape(childInputShape),timesteps=inputShape[1];return[childOutputShape[0],timesteps].concat(childOutputShape.slice(1))}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),rnn((inputs2,states)=>[getExactlyOneTensor(this.layer.call(inputs2,kwargs)),[]],inputs,[],!1,null,null,!1,!0)[1]))}};TimeDistributed.className="TimeDistributed";serialization_exports.registerClass(TimeDistributed);function checkBidirectionalMergeMode(value){checkStringTypeUnionValue(VALID_BIDIRECTIONAL_MERGE_MODES,"BidirectionalMergeMode",value)}var DEFAULT_BIDIRECTIONAL_MERGE_MODE="concat",Bidirectional=class extends Wrapper{constructor(args){super(args);let layerConfig=args.layer.getConfig(),forwDict={};forwDict.className=args.layer.getClassName(),forwDict.config=layerConfig,this.forwardLayer=deserialize(forwDict),layerConfig.goBackwards=layerConfig.goBackwards!==!0;let backDict={};if(backDict.className=args.layer.getClassName(),backDict.config=layerConfig,this.backwardLayer=deserialize(backDict),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=args.mergeMode===void 0?DEFAULT_BIDIRECTIONAL_MERGE_MODE:args.mergeMode,checkBidirectionalMergeMode(this.mergeMode),args.weights)throw new NotImplementedError("weights support is not implemented for Bidirectional layer yet.");this._stateful=args.layer.stateful,this.returnSequences=args.layer.returnSequences,this.returnState=args.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=args.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(value){this._trainable=value,this.forwardLayer!=null&&(this.forwardLayer.trainable=value),this.backwardLayer!=null&&(this.backwardLayer.trainable=value)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(weights){let numWeights=weights.length,numeightsOver2=Math.floor(numWeights/2);this.forwardLayer.setWeights(weights.slice(0,numeightsOver2)),this.backwardLayer.setWeights(weights.slice(numeightsOver2))}computeOutputShape(inputShape){let layerShapes=this.forwardLayer.computeOutputShape(inputShape);Array.isArray(layerShapes)&&Array.isArray(layerShapes[0])||(layerShapes=[layerShapes]),layerShapes=layerShapes;let outputShape,outputShapes,stateShape;return this.returnState&&(stateShape=layerShapes.slice(1)),outputShape=layerShapes[0],outputShape=outputShape,this.mergeMode==="concat"?(outputShape[outputShape.length-1]*=2,outputShapes=[outputShape]):this.mergeMode==null?outputShapes=[outputShape,outputShape.slice()]:outputShapes=[outputShape],this.returnState?this.mergeMode==null?outputShapes.concat(stateShape).concat(stateShape.slice()):[outputShape].concat(stateShape).concat(stateShape.slice()):singletonOrArray(outputShapes)}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);if(inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants,Array.isArray(inputs)&&(initialState=inputs.slice(1),inputs=inputs[0]),(initialState==null||initialState.length===0)&&constants==null)return super.apply(inputs,kwargs);let additionalInputs=[],additionalSpecs=[];if(initialState!=null){let numStates=initialState.length;if(numStates%2>0)throw new ValueError("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");kwargs.initialState=initialState,additionalInputs.push(...initialState);let stateSpecs=initialState.map(state=>new InputSpec({shape:state.shape}));this.forwardLayer.stateSpec=stateSpecs.slice(0,numStates/2),this.backwardLayer.stateSpec=stateSpecs.slice(numStates/2),additionalSpecs.push(...stateSpecs)}if(constants!=null)throw new NotImplementedError("Support for constants in Bidirectional layers is not implemented yet.");let isSymbolicTensor=additionalInputs[0]instanceof SymbolicTensor;for(let tensor2 of additionalInputs)if(tensor2 instanceof SymbolicTensor!==isSymbolicTensor)throw new ValueError("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(isSymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let initialState=kwargs.initialState,y,yRev;if(initialState==null)y=this.forwardLayer.call(inputs,kwargs),yRev=this.backwardLayer.call(inputs,kwargs);else{let forwardState=initialState.slice(0,initialState.length/2),backwardState=initialState.slice(initialState.length/2);y=this.forwardLayer.call(inputs,Object.assign(kwargs,{initialState:forwardState})),yRev=this.backwardLayer.call(inputs,Object.assign(kwargs,{initialState:backwardState}))}let states;this.returnState&&(Array.isArray(y)&&(states=y.slice(1).concat(yRev.slice(1))),y=y[0],yRev=yRev[0]),this.returnSequences&&(yRev=reverse(yRev,1));let output;return this.mergeMode==="concat"?output=concatenate([y,yRev]):this.mergeMode==="sum"?output=add2(y,yRev):this.mergeMode==="ave"?output=mul(.5,add2(y,yRev)):this.mergeMode==="mul"?output=mul(y,yRev):this.mergeMode==null&&(output=[y,yRev]),this.returnState?this.mergeMode==null?output.concat(states):[output].concat(states):output})}resetStates(states){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(inputShape){nameScope(this.forwardLayer.name,()=>{this.forwardLayer.build(inputShape)}),nameScope(this.backwardLayer.name,()=>{this.backwardLayer.build(inputShape)}),this.built=!0}computeMask(inputs,mask){Array.isArray(mask)&&(mask=mask[0]);let outputMask;if(this.returnSequences?this.mergeMode==null?outputMask=[mask,mask]:outputMask=mask:this.mergeMode==null?outputMask=[null,null]:outputMask=null,this.returnState){let stateMask=this.forwardLayer.states.map(state=>null);return Array.isArray(outputMask)?outputMask.concat(stateMask).concat(stateMask):[outputMask].concat(stateMask).concat(stateMask)}else return outputMask}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(value),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(value)}getConfig(){let config3={mergeMode:this.mergeMode},baseConfig=super.getConfig();return Object.assign(config3,baseConfig),config3}static fromConfig(cls,config3){let rnnLayer=deserialize(config3.layer);if(delete config3.layer,config3.numConstants!=null)throw new NotImplementedError("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let newConfig=config3;return newConfig.layer=rnnLayer,new cls(newConfig)}};Bidirectional.className="Bidirectional";serialization_exports.registerClass(Bidirectional);function inputLayer(args){return new InputLayer(args)}function elu5(args){return new ELU4(args)}function reLU(args){return new ReLU(args)}function leakyReLU(args){return new LeakyReLU(args)}function prelu5(args){return new PReLU(args)}function softmax5(args){return new Softmax3(args)}function thresholdedReLU(args){return new ThresholdedReLU(args)}function conv1d2(args){return new Conv1D(args)}function conv2d5(args){return new Conv2D2(args)}function conv2dTranspose2(args){return new Conv2DTranspose(args)}function conv3d2(args){return new Conv3D2(args)}function separableConv2d2(args){return new SeparableConv2D(args)}function cropping2D(args){return new Cropping2D(args)}function upSampling2d(args){return new UpSampling2D(args)}function depthwiseConv2d5(args){return new DepthwiseConv2D(args)}function activation(args){return new Activation2(args)}function dense(args){return new Dense(args)}function dropout3(args){return new Dropout(args)}function spatialDropout1d(args){return new SpatialDropout1D(args)}function flatten3(args){return new Flatten(args)}function repeatVector(args){return new RepeatVector(args)}function reshape5(args){return new Reshape2(args)}function permute(args){return new Permute(args)}function embedding(args){return new Embedding(args)}function add4(args){return new Add2(args)}function average(args){return new Average(args)}function concatenate2(args){return new Concatenate(args)}function maximum4(args){return new Maximum2(args)}function minimum4(args){return new Minimum2(args)}function multiply3(args){return new Multiply2(args)}function dot3(args){return new Dot(args)}function batchNormalization2(args){return new BatchNormalization(args)}function layerNormalization(args){return new LayerNormalization(args)}function zeroPadding2d(args){return new ZeroPadding2D(args)}function averagePooling1d(args){return new AveragePooling1D(args)}function avgPool1d(args){return averagePooling1d(args)}function avgPooling1d(args){return averagePooling1d(args)}function averagePooling2d(args){return new AveragePooling2D(args)}function avgPool2d(args){return averagePooling2d(args)}function avgPooling2d(args){return averagePooling2d(args)}function averagePooling3d(args){return new AveragePooling3D(args)}function avgPool3d2(args){return averagePooling3d(args)}function avgPooling3d(args){return averagePooling3d(args)}function globalAveragePooling1d(args){return new GlobalAveragePooling1D(args)}function globalAveragePooling2d(args){return new GlobalAveragePooling2D(args)}function globalMaxPooling1d(args){return new GlobalMaxPooling1D(args)}function globalMaxPooling2d(args){return new GlobalMaxPooling2D(args)}function maxPooling1d(args){return new MaxPooling1D(args)}function maxPooling2d(args){return new MaxPooling2D(args)}function maxPooling3d(args){return new MaxPooling3D(args)}function gru(args){return new GRU(args)}function gruCell(args){return new GRUCell(args)}function lstm(args){return new LSTM(args)}function lstmCell(args){return new LSTMCell(args)}function simpleRNN(args){return new SimpleRNN(args)}function simpleRNNCell(args){return new SimpleRNNCell(args)}function convLstm2d(args){return new ConvLSTM2D(args)}function convLstm2dCell(args){return new ConvLSTM2DCell(args)}function rnn2(args){return new RNN(args)}function stackedRNNCells(args){return new StackedRNNCells(args)}function bidirectional(args){return new Bidirectional(args)}function timeDistributed(args){return new TimeDistributed(args)}var globalMaxPool1d=globalMaxPooling1d,globalMaxPool2d=globalMaxPooling2d,maxPool1d=maxPooling1d,maxPool2d=maxPooling2d;function gaussianNoise(args){return new GaussianNoise(args)}function gaussianDropout(args){return new GaussianDropout(args)}function alphaDropout(args){return new AlphaDropout(args)}function masking(args){return new Masking(args)}var exports_metrics_exports={};__export2(exports_metrics_exports,{MAPE:()=>MAPE2,MSE:()=>MSE2,binaryAccuracy:()=>binaryAccuracy2,binaryCrossentropy:()=>binaryCrossentropy3,categoricalAccuracy:()=>categoricalAccuracy2,categoricalCrossentropy:()=>categoricalCrossentropy3,cosineProximity:()=>cosineProximity2,mape:()=>mape2,meanAbsoluteError:()=>meanAbsoluteError2,meanAbsolutePercentageError:()=>meanAbsolutePercentageError2,meanSquaredError:()=>meanSquaredError3,mse:()=>mse2,precision:()=>precision2,recall:()=>recall2,sparseCategoricalAccuracy:()=>sparseCategoricalAccuracy2});function binaryAccuracy2(yTrue,yPred){return binaryAccuracy(yTrue,yPred)}function binaryCrossentropy3(yTrue,yPred){return binaryCrossentropy2(yTrue,yPred)}function sparseCategoricalAccuracy2(yTrue,yPred){return sparseCategoricalAccuracy(yTrue,yPred)}function categoricalAccuracy2(yTrue,yPred){return categoricalAccuracy(yTrue,yPred)}function categoricalCrossentropy3(yTrue,yPred){return categoricalCrossentropy2(yTrue,yPred)}function precision2(yTrue,yPred){return precision(yTrue,yPred)}function recall2(yTrue,yPred){return recall(yTrue,yPred)}function cosineProximity2(yTrue,yPred){return cosineProximity(yTrue,yPred)}function meanAbsoluteError2(yTrue,yPred){return meanAbsoluteError(yTrue,yPred)}function meanAbsolutePercentageError2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function MAPE2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function mape2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function meanSquaredError3(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function MSE2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function mse2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}var exports_models_exports={};__export2(exports_models_exports,{modelFromJSON:()=>modelFromJSON});var exports_regularizers_exports={};__export2(exports_regularizers_exports,{l1:()=>l12,l1l2:()=>l1l2,l2:()=>l22});function l1l2(config3){return new L1L2(config3)}function l12(config3){return l1(config3)}function l22(config3){return l2(config3)}var Callback=class extends BaseCallback{constructor(){super(...arguments);this.model=null}setModel(model2){if(!(model2 instanceof LayersModel))throw new Error("model must be a LayersModel, not some other Container");this.model=model2}};function less4(currVal,prevVal){return currValprevVal}var EarlyStopping=class extends Callback{constructor(args){super();if(args==null&&(args={}),args.restoreBestWeights)throw new NotImplementedError("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=args.monitor||"val_loss",this.minDelta=Math.abs(args.minDelta||0),this.patience=args.patience||0,this.verbose=args.verbose||0,this.mode=args.mode||"auto",this.baseline=args.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=less4:this.mode==="max"?this.monitorFunc=greater4:this.monitor.indexOf("acc")!==-1?this.monitorFunc=greater4:this.monitorFunc=less4,this.monitorFunc===less4&&(this.minDelta*=-1)}async onTrainBegin(logs){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===less4?Infinity:-Infinity}async onEpochEnd(epoch,logs){await resolveScalarsInLogs(logs);let current=this.getMonitorValue(logs);current!=null&&(this.monitorFunc(current-this.minDelta,this.best)?(this.best=current,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=epoch,this.model.stopTraining=!0)))}async onTrainEnd(logs){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(logs){logs==null&&(logs={});let monitorValue=logs[this.monitor];return monitorValue==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(logs)}`),monitorValue}};function earlyStopping(args){return new EarlyStopping(args)}var callbacks={earlyStopping},DataType;(function(DataType2){DataType2[DataType2.DT_INVALID=0]="DT_INVALID",DataType2[DataType2.DT_FLOAT=1]="DT_FLOAT",DataType2[DataType2.DT_DOUBLE=2]="DT_DOUBLE",DataType2[DataType2.DT_INT32=3]="DT_INT32",DataType2[DataType2.DT_UINT8=4]="DT_UINT8",DataType2[DataType2.DT_INT16=5]="DT_INT16",DataType2[DataType2.DT_INT8=6]="DT_INT8",DataType2[DataType2.DT_STRING=7]="DT_STRING",DataType2[DataType2.DT_COMPLEX64=8]="DT_COMPLEX64",DataType2[DataType2.DT_INT64=9]="DT_INT64",DataType2[DataType2.DT_BOOL=10]="DT_BOOL",DataType2[DataType2.DT_QINT8=11]="DT_QINT8",DataType2[DataType2.DT_QUINT8=12]="DT_QUINT8",DataType2[DataType2.DT_QINT32=13]="DT_QINT32",DataType2[DataType2.DT_BFLOAT16=14]="DT_BFLOAT16",DataType2[DataType2.DT_FLOAT_REF=101]="DT_FLOAT_REF",DataType2[DataType2.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",DataType2[DataType2.DT_INT32_REF=103]="DT_INT32_REF",DataType2[DataType2.DT_UINT8_REF=104]="DT_UINT8_REF",DataType2[DataType2.DT_INT16_REF=105]="DT_INT16_REF",DataType2[DataType2.DT_INT8_REF=106]="DT_INT8_REF",DataType2[DataType2.DT_STRING_REF=107]="DT_STRING_REF",DataType2[DataType2.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",DataType2[DataType2.DT_INT64_REF=109]="DT_INT64_REF",DataType2[DataType2.DT_BOOL_REF=110]="DT_BOOL_REF",DataType2[DataType2.DT_QINT8_REF=111]="DT_QINT8_REF",DataType2[DataType2.DT_QUINT8_REF=112]="DT_QUINT8_REF",DataType2[DataType2.DT_QINT32_REF=113]="DT_QINT32_REF",DataType2[DataType2.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(DataType||(DataType={}));var SaverDef;(function(SaverDef2){let CheckpointFormatVersion;(function(CheckpointFormatVersion2){CheckpointFormatVersion2[CheckpointFormatVersion2.LEGACY=0]="LEGACY",CheckpointFormatVersion2[CheckpointFormatVersion2.V1=1]="V1",CheckpointFormatVersion2[CheckpointFormatVersion2.V2=2]="V2"})(CheckpointFormatVersion=SaverDef2.CheckpointFormatVersion||(SaverDef2.CheckpointFormatVersion={}))})(SaverDef||(SaverDef={}));var CUSTOM_OPS={};function registerOp(name,opFunc){let opMapper={tfOpName:name,category:"custom",inputs:[],attrs:[],customExecutor:opFunc};CUSTOM_OPS[name]=opMapper}function getRegisteredOp(name){return CUSTOM_OPS[name]}function deregisterOp(name){delete CUSTOM_OPS[name]}function getParamValue(paramName,node,tensorMap,context,resourceManager){let inputParam=node.inputParams[paramName];if(inputParam&&inputParam.inputIndexStart!==void 0){let start=inputParam.inputIndexStart,end=inputParam.inputIndexEnd===0?void 0:inputParam.inputIndexEnd===void 0?start+1:inputParam.inputIndexEnd;if(inputParam.type==="tensor")return getTensor(node.inputNames[inputParam.inputIndexStart],tensorMap,context,resourceManager);if(inputParam.type==="tensors")return node.inputNames.slice(start,end).map(name=>getTensor(name,tensorMap,context,resourceManager));let tensor2=getTensor(node.inputNames.slice(start)[0],tensorMap,context,resourceManager),data2=tensor2.dataSync();return inputParam.type==="number"?data2[0]:util_exports.toNestedArray(tensor2.shape,data2)}let attrParam=node.attrParams[paramName];return attrParam&&attrParam.value}function getTensor(name,tensorsMap,context,resourceManager){let[nodeName,index]=parseNodeName(name);if(resourceManager!=null){let tensor2=resourceManager.getHashTableHandleByName(nodeName);if(tensor2!=null)return tensor2}let contextId=context.currentContextIds.find(contextId2=>!!tensorsMap[getNodeNameWithContextId(nodeName,contextId2)]);return contextId!==void 0?tensorsMap[getNodeNameWithContextId(nodeName,contextId)][index]:void 0}function getTensorsForCurrentContenxt(name,tensorsMap,context){return tensorsMap[getNodeNameWithContextId(name,context.currentContextId)]}function getNodeNameAndIndex(inputName,context){let[nodeName,index]=parseNodeName(inputName);return[getNodeNameWithContextId(nodeName,context&&context.currentContextId),index]}function getNodeNameWithContextId(name,contextId){return contextId?`${name}-${contextId}`:name}function parseNodeName(name){let parts=name.split(":");return parts.length===1?[name,0]:[parts[0],Number(parts[parts.length-1])]}function getPadding(node,tensorMap,context){let pad3=getParamValue("pad",node,tensorMap,context);if(pad3==="explicit"){pad3=getParamValue("explicitPaddings",node,tensorMap,context);let explicitPadding=[[0,0],[0,0],[0,0],[0,0]];for(let i=0;i<4;i++)explicitPadding[i][0]=pad3[i*2],explicitPadding[i][1]=pad3[i*2+1];return explicitPadding}return pad3}function cloneTensor(tensor2){return tensor2.kept?tensor2:clone(tensor2)}var arithmetic_exports={};__export2(arithmetic_exports,{json:()=>json});var json=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],basic_math_exports={};__export2(basic_math_exports,{json:()=>json2});var json2=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],control_exports={};__export2(control_exports,{json:()=>json3});var json3=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],convolution_exports={};__export2(convolution_exports,{json:()=>json4});var json4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],creation_exports={};__export2(creation_exports,{json:()=>json5});var json5=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],dynamic_exports={};__export2(dynamic_exports,{json:()=>json6});var json6=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],evaluation_exports={};__export2(evaluation_exports,{json:()=>json7});var json7=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],graph_exports={};__export2(graph_exports,{json:()=>json8});var json8=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],hash_table_exports={};__export2(hash_table_exports,{json:()=>json9});var json9=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],image_exports={};__export2(image_exports,{json:()=>json10});var json10=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],logical_exports={};__export2(logical_exports,{json:()=>json11});var json11=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],matrices_exports={};__export2(matrices_exports,{json:()=>json12});var json12=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],normalization_exports={};__export2(normalization_exports,{json:()=>json13});var json13=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],reduction_exports={};__export2(reduction_exports,{json:()=>json14});var json14=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],slice_join_exports={};__export2(slice_join_exports,{json:()=>json15});var json15=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],spectral_exports={};__export2(spectral_exports,{json:()=>json16});var json16=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],transformation_exports={};__export2(transformation_exports,{json:()=>json17});var json17=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],OperationMapper=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let ops=[arithmetic_exports,basic_math_exports,control_exports,convolution_exports,creation_exports,dynamic_exports,evaluation_exports,logical_exports,image_exports,graph_exports,matrices_exports,normalization_exports,reduction_exports,slice_join_exports,spectral_exports,transformation_exports,hash_table_exports],mappersJson=[].concat(...ops.map(op2=>op2.json));this.opMappers=mappersJson.reduce((map,mapper)=>(map[mapper.tfOpName]=mapper,map),{})}transformGraph(graph2,signature={}){let tfNodes=graph2.node,placeholders=[],weights=[],initNodes=[],nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op.startsWith("Placeholder")?placeholders.push(map[node.name]):node.op==="Const"?weights.push(map[node.name]):(node.input==null||node.input.length===0)&&initNodes.push(map[node.name]),map),{}),inputs=[],outputs=[],inputNodeNameToKey={},outputNodeNameToKey={};signature!=null&&(inputNodeNameToKey=this.mapSignatureEntries(signature.inputs),outputNodeNameToKey=this.mapSignatureEntries(signature.outputs));let allNodes=Object.keys(nodes);allNodes.forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})}),Object.keys(outputNodeNameToKey).length===0?allNodes.forEach(key=>{let node=nodes[key];node.children.length===0&&outputs.push(node)}):Object.keys(outputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node!=null&&(node.signatureKey=outputNodeNameToKey[name],outputs.push(node))}),Object.keys(inputNodeNameToKey).length>0?Object.keys(inputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node&&(node.signatureKey=inputNodeNameToKey[name],inputs.push(node))}):inputs=placeholders;let functions={};graph2.library!=null&&graph2.library.function!=null&&(functions=graph2.library.function.reduce((functions2,func2)=>(functions2[func2.signature.name]=this.mapFunction(func2),functions2),{}));let result={nodes,inputs,outputs,weights,placeholders,signature,functions};return initNodes.length>0&&(result.initNodes=initNodes),result}mapSignatureEntries(entries){return Object.keys(entries||{}).reduce((prev,curr)=>(prev[entries[curr].name]=curr,prev),{})}mapNode(node){let mapper=getRegisteredOp(node.op)||this.opMappers[node.op]||{};node.attr==null&&(node.attr={});let newNode={name:node.name,op:node.op,category:mapper.category,inputNames:(node.input||[]).map(input2=>input2.startsWith("^")?input2.substr(1):input2),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:node.attr};return mapper.inputs!=null&&(newNode.inputParams=mapper.inputs.reduce((map,param)=>(map[param.name]={type:param.type,inputIndexStart:param.start,inputIndexEnd:param.end},map),{})),mapper.attrs!=null&&(newNode.attrParams=mapper.attrs.reduce((map,param)=>{let type=param.type,value;switch(param.type){case"string":value=getStringParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"string[]":value=getStringArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number":value=getNumberParam(node.attr,param.tfName,param.defaultValue||0),value===void 0&&!!param.tfDeprecatedName&&(value=getNumberParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number[]":value=getNumericArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getNumericArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool":value=getBoolParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool[]":value=getBoolArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape":value=getTensorShapeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape[]":value=getTensorShapeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype":value=getDtypeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype[]":value=getDtypeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"func":value=getFuncParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getFuncParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${param.type} for op: ${node.op}`)}return map[param.name]={value,type},map},{})),newNode}mapFunction(functionDef){let tfNodes=functionDef.nodeDef,placeholders=[],weights=[],nodes={};tfNodes!=null&&(nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op==="Const"&&weights.push(map[node.name]),map),{}));let inputs=[],outputs=[];functionDef.signature.inputArg.forEach(arg=>{let[nodeName]=getNodeNameAndIndex(arg.name),node={name:nodeName,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:parseDtypeParam(arg.type),type:"dtype"}},children:[]};node.signatureKey=arg.name,inputs.push(node),nodes[nodeName]=node}),Object.keys(nodes).forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})});let returnNodeMap=functionDef.ret;functionDef.signature.outputArg.forEach(output=>{let[nodeName,index]=getNodeNameAndIndex(returnNodeMap[output.name]),node=nodes[nodeName];node!=null&&(node.defaultOutput=index,outputs.push(node))});let signature=this.mapArgsToSignature(functionDef);return{nodes,inputs,outputs,weights,placeholders,signature}}mapArgsToSignature(functionDef){return{methodName:functionDef.signature.name,inputs:functionDef.signature.inputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg),map),{}),outputs:functionDef.signature.outputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg,functionDef.ret),map),{})}}mapArgToTensorInfo(arg,nameMap2){let name=arg.name;return nameMap2!=null&&(name=nameMap2[name]),{name,dtype:arg.type}}};function decodeBase64(text){let global2=env().global;if(typeof global2.atob!="undefined")return global2.atob(text);if(typeof Buffer!="undefined")return new Buffer(text,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function parseStringParam(s,keepCase){let value=Array.isArray(s)?String.fromCharCode.apply(null,s):decodeBase64(s);return keepCase?value:value.toLowerCase()}function getStringParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param!=null?parseStringParam(param.s,keepCase):def}function getBoolParam(attrs,name,def){let param=attrs[name];return param?param.b:def}function getNumberParam(attrs,name,def){let param=attrs[name]||{},value=param.i!=null?param.i:param.f!=null?param.f:def;return typeof value=="number"?value:parseInt(value,10)}function parseDtypeParam(value){switch(typeof value=="string"&&(value=DataType[value]),value){case DataType.DT_FLOAT:return"float32";case DataType.DT_INT32:case DataType.DT_INT64:case DataType.DT_INT8:case DataType.DT_UINT8:return"int32";case DataType.DT_BOOL:return"bool";case DataType.DT_DOUBLE:return"float32";case DataType.DT_STRING:return"string";default:return null}}function getFuncParam(attrs,name,def){let param=attrs[name];return param&¶m.func?param.func.name:def}function getDtypeParam(attrs,name,def){let param=attrs[name];return param&¶m.type?parseDtypeParam(param.type):def}function getDtypeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.type?param.list.type.map(v=>parseDtypeParam(v)):def}function parseTensorShapeParam(shape){if(!shape.unknownRank)return shape.dim!=null?shape.dim.map(dim=>typeof dim.size=="number"?dim.size:parseInt(dim.size,10)):[]}function getTensorShapeParam(attrs,name,def){let param=attrs[name];return param&¶m.shape?parseTensorShapeParam(param.shape):def}function getNumericArrayParam(attrs,name,def){let param=attrs[name];return param?((param.list.f&¶m.list.f.length?param.list.f:param.list.i)||[]).map(v=>typeof v=="number"?v:parseInt(v,10)):def}function getStringArrayParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param&¶m.list&¶m.list.s?param.list.s.map(v=>parseStringParam(v,keepCase)):def}function getTensorShapeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.shape?param.list.shape.map(v=>parseTensorShapeParam(v)):def}function getBoolArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.b?param.list.b:def}var NodeValueImpl=class{constructor(node,tensorMap,context){this.node=node,this.tensorMap=tensorMap,this.context=context,this.inputs=[],this.attrs={},this.inputs=node.inputNames.map(name=>this.getInput(name)),node.rawAttrs!=null&&(this.attrs=Object.keys(node.rawAttrs).reduce((attrs,key)=>(attrs[key]=this.getAttr(key),attrs),{}))}getInput(name){return getTensor(name,this.tensorMap,this.context)}getAttr(name,defaultValue){let value=this.node.rawAttrs[name];if(value.tensor!=null)return getTensor(name,this.tensorMap,this.context);if(value.i!=null||value.f!=null)return getNumberParam(this.node.rawAttrs,name,defaultValue);if(value.s!=null)return getStringParam(this.node.rawAttrs,name,defaultValue);if(value.b!=null)return getBoolParam(this.node.rawAttrs,name,defaultValue);if(value.shape!=null)return getTensorShapeParam(this.node.rawAttrs,name,defaultValue);if(value.type!=null)return getDtypeParam(this.node.rawAttrs,name,defaultValue);if(value.list!=null){if(value.list.i!=null||value.list.f!=null)return getNumericArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.s!=null)return getStringArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.shape!=null)return getTensorShapeArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.b!=null)return getBoolArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.type!=null)return getDtypeArrayParam(this.node.rawAttrs,name,defaultValue)}return defaultValue}},executeOp=(node,tensorMap,context)=>{switch(node.op){case"BiasAdd":case"AddV2":case"Add":return[add2(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"AddN":return[addN(getParamValue("tensors",node,tensorMap,context))];case"FloorMod":case"Mod":return[mod(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Mul":return[mul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"RealDiv":case"Div":return[div(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"DivNoNan":return[divNoNan(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"FloorDiv":return[floorDiv(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Sub":return[sub(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Minimum":return[minimum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Maximum":return[maximum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Pow":return[pow(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"SquaredDifference":return[squaredDifference(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp2=(node,tensorMap,context)=>{switch(node.op){case"Abs":case"ComplexAbs":return[abs(getParamValue("x",node,tensorMap,context))];case"Acos":return[acos(getParamValue("x",node,tensorMap,context))];case"Acosh":return[acosh(getParamValue("x",node,tensorMap,context))];case"Asin":return[asin(getParamValue("x",node,tensorMap,context))];case"Asinh":return[asinh(getParamValue("x",node,tensorMap,context))];case"Atan":return[atan(getParamValue("x",node,tensorMap,context))];case"Atan2":return[atan2(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context))];case"Atanh":return[atanh(getParamValue("x",node,tensorMap,context))];case"Ceil":return[ceil(getParamValue("x",node,tensorMap,context))];case"Complex":return[complex(getParamValue("real",node,tensorMap,context),getParamValue("imag",node,tensorMap,context))];case"Cos":return[cos(getParamValue("x",node,tensorMap,context))];case"Cosh":return[cosh(getParamValue("x",node,tensorMap,context))];case"Elu":return[elu(getParamValue("x",node,tensorMap,context))];case"Erf":return[erf(getParamValue("x",node,tensorMap,context))];case"Exp":return[exp(getParamValue("x",node,tensorMap,context))];case"Expm1":return[expm1(getParamValue("x",node,tensorMap,context))];case"Floor":return[floor(getParamValue("x",node,tensorMap,context))];case"Log":return[log2(getParamValue("x",node,tensorMap,context))];case"Log1p":return[log1p(getParamValue("x",node,tensorMap,context))];case"Imag":return[imag(getParamValue("x",node,tensorMap,context))];case"Neg":return[neg(getParamValue("x",node,tensorMap,context))];case"Reciprocal":return[reciprocal(getParamValue("x",node,tensorMap,context))];case"Real":return[real(getParamValue("x",node,tensorMap,context))];case"Relu":return[relu(getParamValue("x",node,tensorMap,context))];case"Round":return[round2(getParamValue("x",node,tensorMap,context))];case"Selu":return[selu(getParamValue("x",node,tensorMap,context))];case"Sigmoid":return[sigmoid(getParamValue("x",node,tensorMap,context))];case"Sin":return[sin(getParamValue("x",node,tensorMap,context))];case"Sign":return[sign(getParamValue("x",node,tensorMap,context))];case"Sinh":return[sinh(getParamValue("x",node,tensorMap,context))];case"Softplus":return[softplus(getParamValue("x",node,tensorMap,context))];case"Sqrt":return[sqrt(getParamValue("x",node,tensorMap,context))];case"Square":return[square(getParamValue("x",node,tensorMap,context))];case"Tanh":return[tanh2(getParamValue("x",node,tensorMap,context))];case"Tan":return[tan(getParamValue("x",node,tensorMap,context))];case"ClipByValue":return[clipByValue(getParamValue("x",node,tensorMap,context),getParamValue("clipValueMin",node,tensorMap,context),getParamValue("clipValueMax",node,tensorMap,context))];case"Relu6":return[relu6(getParamValue("x",node,tensorMap,context))];case"Rsqrt":return[rsqrt(getTensor(node.inputNames[0],tensorMap,context))];case"Prod":return[prod(getParamValue("x",node,tensorMap,context),getParamValue("axes",node,tensorMap,context))];case"LeakyRelu":return[leakyRelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];case"Prelu":return[prelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function assertShapesMatchAllowUndefinedSize(shapeA,shapeB,errorMessagePrefix=""){util_exports.assert(shapesEqualAllowUndefinedSize(shapeA,shapeB),()=>errorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function shapesEqualAllowUndefinedSize(n1,n2){if(n1.length!==n2.length)return!1;for(let i=0;i{(keepIds==null||!keepIds.has(tensor2.tensor.id))&&tensor2.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(index){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||index>=this.size())throw new Error(`Tried to read from index ${index}, but array size is: ${this.size()}`);let tensorWithState=this.tensors[index];if(tensorWithState.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${index} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(tensorWithState.cleared=!0),tensorWithState.read=!0,tensorWithState.tensor}readMany(indices){return indices.map(index=>this.read(index))}write(index,tensor2){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||!this.dynamicSize&&index>=this.maxSize)throw new Error(`Tried to write to index ${index}, but array is not resizeable and size is: ${this.maxSize}`);let t=this.tensors[index]||{};if(tensor2.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, +2. The custom ${printableModuleName} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(fromConfig!=null){let customObjectsCombined={};for(let key of Object.keys(_GLOBAL_CUSTOM_OBJECTS))customObjectsCombined[key]=_GLOBAL_CUSTOM_OBJECTS[key];for(let key of Object.keys(customObjects))customObjectsCombined[key]=customObjects[key];let nestedConfig=config2.config;nestedConfig.customObjects=customObjectsCombined;let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];convertNDArrayScalarsInConfig(config2.config);let returnObj=fromConfig(cls,config2.config,customObjects,fastWeightInit);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}else{let backupCustomObjects=Object.assign({},_GLOBAL_CUSTOM_OBJECTS);for(let key of Object.keys(customObjects))_GLOBAL_CUSTOM_OBJECTS[key]=customObjects[key];let returnObj=new cls(config2.config);return _GLOBAL_CUSTOM_OBJECTS=Object.assign({},backupCustomObjects),returnObj}}}function numberCompare(a,b){return ab?1:0}function reverseNumberCompare(a,b){return-1*numberCompare(a,b)}function unique4(xs){if(xs==null)return xs;let out=[];for(let x of xs)out.indexOf(x)===-1&&out.push(x);return out}function isObjectEmpty(obj){if(obj==null)throw new ValueError(`Invalid value in obj: ${JSON.stringify(obj)}`);for(let key in obj)if(obj.hasOwnProperty(key))return!1;return!0}function checkStringTypeUnionValue(values,label,value){if(value!=null&&values.indexOf(value)<0)throw new ValueError(`${value} is not a valid ${label}. Valid values are ${values} or null/undefined.`)}function checkArrayTypeAndLength(x,expectedType,minLength=0,maxLength=Infinity){return assert2(minLength>=0),assert2(maxLength>=minLength),Array.isArray(x)&&x.length>=minLength&&x.length<=maxLength&&x.every(e=>typeof e===expectedType)}function assertPositiveInteger(value,name){Array.isArray(value)?(util_exports.assert(value.length>0,()=>`${name} is unexpectedly an empty array.`),value.forEach((v,i)=>assertPositiveInteger(v,`element ${i+1} of ${name}`))):util_exports.assert(Number.isInteger(value)&&value>0,()=>`Expected ${name} to be a positive integer, but got ${formatAsFriendlyString(value)}.`)}function formatAsFriendlyString(value){return value===null?"null":Array.isArray(value)?"["+value.map(v=>formatAsFriendlyString(v)).join(",")+"]":typeof value=="string"?`"${value}"`:`${value}`}function debounce(f,waitMs){let lastTime=util_exports.now(),lastResult;return(...args)=>{let now22=util_exports.now();return now22-lastTimesqrt(sum2(mul(w,w),axis,!0)))}var Constraint=class extends serialization_exports.Serializable{getConfig(){return{}}},MaxNorm=class extends Constraint{constructor(args){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=clipByValue(norms,0,this.maxValue);return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};MaxNorm.className="MaxNorm";serialization_exports.registerClass(MaxNorm);var UnitNorm=class extends Constraint{constructor(args){super();this.defaultAxis=0,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>div(w,add2(epsilon2(),calcL2Norms(w,this.axis))))}getConfig(){return{axis:this.axis}}};UnitNorm.className="UnitNorm";serialization_exports.registerClass(UnitNorm);var NonNeg=class extends Constraint{apply(w){return relu(w)}};NonNeg.className="NonNeg";serialization_exports.registerClass(NonNeg);var MinMaxNorm=class extends Constraint{constructor(args){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=args.minValue!=null?args.minValue:this.defaultMinValue,this.maxValue=args.maxValue!=null?args.maxValue:this.defaultMaxValue,this.rate=args.rate!=null?args.rate:this.defaultRate,this.axis=args.axis!=null?args.axis:this.defaultAxis}apply(w){return tidy(()=>{let norms=calcL2Norms(w,this.axis),desired=add2(mul(this.rate,clipByValue(norms,this.minValue,this.maxValue)),mul(1-this.rate,norms));return mul(w,div(desired,add2(epsilon2(),norms)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};MinMaxNorm.className="MinMaxNorm";serialization_exports.registerClass(MinMaxNorm);var CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function serializeConstraint(constraint){return serializeKerasObject(constraint)}function deserializeConstraint(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"constraint")}function getConstraint(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config2={className:identifier in CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP?CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeConstraint(config2)}else return identifier instanceof Constraint?identifier:deserializeConstraint(identifier)}function maxNorm(args){return new MaxNorm(args)}function unitNorm(args){return new UnitNorm(args)}function nonNeg(){return new NonNeg}function minMaxNorm(config2){return new MinMaxNorm(config2)}var exports_initializers_exports={};__export2(exports_initializers_exports,{constant:()=>constant,glorotNormal:()=>glorotNormal,glorotUniform:()=>glorotUniform,heNormal:()=>heNormal,heUniform:()=>heUniform,identity:()=>identity4,leCunNormal:()=>leCunNormal,leCunUniform:()=>leCunUniform,ones:()=>ones3,orthogonal:()=>orthogonal,randomNormal:()=>randomNormal3,randomUniform:()=>randomUniform2,truncatedNormal:()=>truncatedNormal2,varianceScaling:()=>varianceScaling,zeros:()=>zeros3});var VALID_DATA_FORMAT_VALUES=["channelsFirst","channelsLast"],VALID_INTERPOLATION_FORMAT_VALUES=["nearest","bilinear"],VALID_PADDING_MODE_VALUES=["valid","same","causal"],VALID_POOL_MODE_VALUES=["max","avg"],VALID_BIDIRECTIONAL_MERGE_MODES=["sum","mul","concat","ave"],nameMap=new Map;function checkDataFormat(value){checkStringTypeUnionValue(VALID_DATA_FORMAT_VALUES,"DataFormat",value)}function checkInterpolationFormat(value){checkStringTypeUnionValue(VALID_INTERPOLATION_FORMAT_VALUES,"InterpolationFormat",value)}function checkPaddingMode(value){checkStringTypeUnionValue(VALID_PADDING_MODE_VALUES,"PaddingMode",value)}function checkPoolMode(value){checkStringTypeUnionValue(VALID_POOL_MODE_VALUES,"PoolMode",value)}var _nameScopeStack=[],_nameScopeDivider="/";function nameScope(name,fn){_nameScopeStack.push(name);try{let val=fn();return _nameScopeStack.pop(),val}catch(e){throw _nameScopeStack.pop(),e}}function currentNameScopePrefix(){return _nameScopeStack.length===0?"":_nameScopeStack.join(_nameScopeDivider)+_nameScopeDivider}function getScopedTensorName(tensorName){if(!isValidTensorName(tensorName))throw new Error("Not a valid tensor name: '"+tensorName+"'");return currentNameScopePrefix()+tensorName}function getUniqueTensorName(scopedName){if(!isValidTensorName(scopedName))throw new Error("Not a valid tensor name: '"+scopedName+"'");nameMap.has(scopedName)||nameMap.set(scopedName,0);let index=nameMap.get(scopedName);if(nameMap.set(scopedName,nameMap.get(scopedName)+1),index>0){let result=`${scopedName}_${index}`;return nameMap.set(result,1),result}else return scopedName}var tensorNameRegex=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function isValidTensorName(name){return!!name.match(tensorNameRegex)}function isInteger(x){return x===parseInt(x.toString(),10)}function arrayProd(array2,begin,end){begin==null&&(begin=0),end==null&&(end=array2.length);let prod5=1;for(let i=begin;i{if(x.shape.length!==2)throw new ValueError(`repeat() expects a rank-2 tensor, but received a rank-${x.shape.length} tensor.`);let y=expandDims5(x,1);return tile5(y,[1,n,1])})}function flatten2(x){let newShape=[arrayProd(x.shape)];return x.reshape(newShape)}function batchFlatten(x){if(x.rank<=1)throw new ValueError(`batchFlatten requires a minimum rank of 2. Got rank: ${x.rank}.`);let newShape=[x.shape[0],arrayProd(x.shape,1)];return x.reshape(newShape)}function sliceAlongFirstAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[start,0],[size,array2.shape[1]]);case 3:return slice3d(array2,[start,0,0],[size,array2.shape[1],array2.shape[2]]);case 4:return slice4d(array2,[start,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3]]);case 5:return slice(array2,[start,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4]]);case 6:return slice(array2,[start,0,0,0,0,0],[size,array2.shape[1],array2.shape[2],array2.shape[3],array2.shape[4],array2.shape[5]]);default:throw new ValueError(`sliceAlongFirstAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongLastAxis(array2,start,size){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:return slice2d(array2,[0,start],[array2.shape[0],size]);case 3:return slice3d(array2,[0,0,start],[array2.shape[0],array2.shape[1],size]);case 4:return slice4d(array2,[0,0,0,start],[array2.shape[0],array2.shape[1],array2.shape[2],size]);default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function sliceAlongAxis(array2,start,size,axis){return tidy(()=>{switch(array2.rank){case 1:return slice1d(array2,start,size);case 2:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 3:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice3d(array2,[0,start,0],[array2.shape[0],size,array2.shape[2]]);case 3:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}case 4:switch(axis){case 1:return sliceAlongFirstAxis(array2,start,size);case 2:return slice4d(array2,[0,start,0,0],[array2.shape[0],size,array2.shape[2],array2.shape[3]]);case 3:return slice4d(array2,[0,0,start,0],[array2.shape[0],array2.shape[1],size,array2.shape[3]]);case 4:return sliceAlongLastAxis(array2,start,size);default:throw new ValueError(`The axis is not within the rank of the tensor ${axis}`)}default:throw new ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ${array2.rank}`)}})}function concatenate(tensors,axis=-1){let rank;return axis<0&&(rank=tensors[0].rank,rank!==0?axis=rank:axis=0),axis===tensors[0].rank&&(axis=-1),concat(tensors,axis)}function concatAlongFirstAxis(a,b){switch(a.rank){case 1:return concat1d([a,b]);case 2:return concat2d([a,b],0);case 3:return concat3d([a,b],0);case 4:return concat4d([a,b],0);default:throw new ValueError(`concatAlongFirstAxis() received an unsupported tensor rank: ${a.rank}`)}}function tile5(x,n){if(Array.isArray(n)||(n=[n]),x.rank!==n.length)throw new ValueError(`The length of input n (${n.length}) does not match the number of dimensions in input x (${x.rank})`);return tile(x,n)}function randomNormal2(shape,mean4=0,stddev=1,dtype,seed){return randomNormal(shape,mean4,stddev,dtype,seed)}function dot2(a,b,activation2,bias){if(a.rank<2||b.rank<2)throw new NotImplementedError(`dot requires both inputs to be rank >= 2 but got x shape = ${a.shape} and y shape = ${b.shape}`);if(b.rank>=3){let xLastDim=a.shape.slice(-1)[0],ySecondLastDim=b.shape.slice(-2)[0];if(xLastDim!==ySecondLastDim)throw new NotImplementedError(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${a.shape} and y shape = ${b.shape}`)}if(a.rank===2&&b.rank===2){let transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2})}else{let aFirstDims=a.shape.slice(),aLastDim=aFirstDims.pop();a=a.reshape([-1,aLastDim]);let bShape=b.shape.slice(),bLastDim=bShape.pop(),ySecondLastDim=bShape.pop(),yOtherDims=[...bShape,bLastDim],perm=Array.from({length:b.rank},(_,i)=>i===0?b.rank-2:i<=b.rank-2?i-1:i);b=b.transpose(perm).reshape([ySecondLastDim,-1]);let outputShape=[...aFirstDims,...yOtherDims],transposeA=!1,transposeB=!1;return fused_ops_exports.matMul({a,b,transposeA,transposeB,bias:bias?reshapeBias(a.rank,bias,imageDataFormat()):null,activation:activation2}).reshape(outputShape)}}function gather2(reference,indices,axis){return tidy(()=>(Array.isArray(indices)?indices=tensor1d(indices,"int32"):indices=indices.toInt(),gather(reference,indices,axis)))}function square3(x){return mul(x,x)}function reshapeBias(xRank,bias,dataFormat){let biasShape=bias.shape;if(bias.rank!==1&&bias.rank!==xRank)throw new ValueError(`Unexpected bias dimensions: ${bias.rank}; expected it to be 1 or ${xRank}`);if(xRank===5){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1,1]):bias.reshape([1,biasShape[3],biasShape[0],biasShape[1],biasShape[2]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===4){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1,1]):bias.reshape([1,biasShape[2],biasShape[0],biasShape[1]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank===3){if(dataFormat==="channelsFirst")return biasShape.length===1?bias.reshape([1,biasShape[0],1]):bias.reshape([1,biasShape[1],biasShape[0]]);if(dataFormat==="channelsLast")return biasShape.length===1?bias.reshape([1,1,biasShape[0]]):bias.reshape([1].concat(biasShape))}else if(xRank<3)return bias;throw new ValueError(`Unsupported input rank by biasAdd: ${bias.rank}`)}function biasAdd(x,bias,dataFormat){return tidy(()=>(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.add(reshapeBias(x.rank,bias,dataFormat))))}function elu4(x,alpha=1){if(alpha!==1)throw new NotImplementedError(`Support for alpha values other than 1 (${alpha}) is not implemented yet.`);return elu(x)}function softsign(x){return tidy(()=>div(x,abs(x).add(1)))}function dropout2(x,level,noiseShape,seed){return tidy(()=>dropout(x,level,noiseShape,seed))}function hardSigmoid(x){return tidy(()=>{let y=add2(.5,mul(.2,x));return clipByValue(y,0,1)})}function inTrainPhase(x,alt,training=!1){return training?x():alt()}var VALID_FAN_MODE_VALUES=["fanIn","fanOut","fanAvg"],VALID_DISTRIBUTION_VALUES=["normal","uniform","truncatedNormal"];function checkFanMode(value){checkStringTypeUnionValue(VALID_FAN_MODE_VALUES,"FanMode",value)}function checkDistribution(value){checkStringTypeUnionValue(VALID_DISTRIBUTION_VALUES,"Distribution",value)}var Initializer=class extends serialization_exports.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Zeros=class extends Initializer{apply(shape,dtype){return zeros(shape,dtype)}};Zeros.className="Zeros";serialization_exports.registerClass(Zeros);var Ones=class extends Initializer{apply(shape,dtype){return ones2(shape,dtype)}};Ones.className="Ones";serialization_exports.registerClass(Ones);var Constant=class extends Initializer{constructor(args){super();if(typeof args!="object")throw new ValueError(`Expected argument of type ConstantConfig but got ${args}`);if(args.value===void 0)throw new ValueError(`config must have value set but got ${args}`);this.value=args.value}apply(shape,dtype){return tidy(()=>mul(scalar(this.value),ones2(shape,dtype)))}getConfig(){return{value:this.value}}};Constant.className="Constant";serialization_exports.registerClass(Constant);var RandomUniform=class extends Initializer{constructor(args){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=args.minval||this.DEFAULT_MINVAL,this.maxval=args.maxval||this.DEFAULT_MAXVAL,this.seed=args.seed}apply(shape,dtype){return randomUniform(shape,this.minval,this.maxval,dtype)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};RandomUniform.className="RandomUniform";serialization_exports.registerClass(RandomUniform);var RandomNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`randomNormal does not support dType ${dtype}.`);return randomNormal2(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};RandomNormal.className="RandomNormal";serialization_exports.registerClass(RandomNormal);var TruncatedNormal=class extends Initializer{constructor(args){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=args.mean||this.DEFAULT_MEAN,this.stddev=args.stddev||this.DEFAULT_STDDEV,this.seed=args.seed}apply(shape,dtype){if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`truncatedNormal does not support dType ${dtype}.`);return truncatedNormal(shape,this.mean,this.stddev,dtype,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};TruncatedNormal.className="TruncatedNormal";serialization_exports.registerClass(TruncatedNormal);var Identity2=class extends Initializer{constructor(args){super();this.gain=args.gain!=null?args.gain:1}apply(shape,dtype){return tidy(()=>{if(shape.length!==2||shape[0]!==shape[1])throw new ValueError("Identity matrix initializer can only be used for 2D square matrices.");return mul(this.gain,eye(shape[0]))})}getConfig(){return{gain:this.gain}}};Identity2.className="Identity";serialization_exports.registerClass(Identity2);function computeFans(shape,dataFormat="channelsLast"){let fanIn,fanOut;if(checkDataFormat(dataFormat),shape.length===2)fanIn=shape[0],fanOut=shape[1];else if([3,4,5].indexOf(shape.length)!==-1){if(dataFormat==="channelsFirst"){let receptiveFieldSize=arrayProd(shape,2);fanIn=shape[1]*receptiveFieldSize,fanOut=shape[0]*receptiveFieldSize}else if(dataFormat==="channelsLast"){let receptiveFieldSize=arrayProd(shape,0,shape.length-2);fanIn=shape[shape.length-2]*receptiveFieldSize,fanOut=shape[shape.length-1]*receptiveFieldSize}}else{let shapeProd=arrayProd(shape);fanIn=Math.sqrt(shapeProd),fanOut=Math.sqrt(shapeProd)}return[fanIn,fanOut]}var VarianceScaling=class extends Initializer{constructor(args){super();if(args.scale<0)throw new ValueError(`scale must be a positive float. Got: ${args.scale}`);this.scale=args.scale==null?1:args.scale,this.mode=args.mode==null?"fanIn":args.mode,checkFanMode(this.mode),this.distribution=args.distribution==null?"normal":args.distribution,checkDistribution(this.distribution),this.seed=args.seed}apply(shape,dtype){let fans=computeFans(shape),fanIn=fans[0],fanOut=fans[1],scale2=this.scale;if(this.mode==="fanIn"?scale2/=Math.max(1,fanIn):this.mode==="fanOut"?scale2/=Math.max(1,fanOut):scale2/=Math.max(1,(fanIn+fanOut)/2),this.distribution==="normal"){let stddev=Math.sqrt(scale2);if(dtype=dtype||"float32",dtype!=="float32"&&dtype!=="int32")throw new NotImplementedError(`${this.getClassName()} does not support dType ${dtype}.`);return truncatedNormal(shape,0,stddev,dtype,this.seed)}else{let limit=Math.sqrt(3*scale2);return randomUniform(shape,-limit,limit,dtype)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};VarianceScaling.className="VarianceScaling";serialization_exports.registerClass(VarianceScaling);var GlorotUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotUniform.className="GlorotUniform";serialization_exports.registerClass(GlorotUniform);var GlorotNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanAvg",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};GlorotNormal.className="GlorotNormal";serialization_exports.registerClass(GlorotNormal);var HeNormal=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeNormal.className="HeNormal";serialization_exports.registerClass(HeNormal);var HeUniform=class extends VarianceScaling{constructor(args){super({scale:2,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};HeUniform.className="HeUniform";serialization_exports.registerClass(HeUniform);var LeCunNormal=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"normal",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunNormal.className="LeCunNormal";serialization_exports.registerClass(LeCunNormal);var LeCunUniform=class extends VarianceScaling{constructor(args){super({scale:1,mode:"fanIn",distribution:"uniform",seed:args==null?null:args.seed})}getClassName(){return VarianceScaling.className}};LeCunUniform.className="LeCunNormal";serialization_exports.registerClass(LeCunUniform);var Orthogonal=class extends Initializer{constructor(args){super();if(this.DEFAULT_GAIN=1,this.gain=args.gain==null?this.DEFAULT_GAIN:args.gain,this.seed=args.seed,this.seed!=null)throw new NotImplementedError("Random seed is not implemented for Orthogonal Initializer yet.")}apply(shape,dtype){return tidy(()=>{if(shape.length<2)throw new NotImplementedError("Shape must be at least 2D.");shape[0]*shape[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${shape[0]*shape[1]}) elements: Slowness may result.`);let normalizedShape=shape[0]>shape[1]?[shape[1],shape[0]]:shape,a=randomNormal2(normalizedShape,0,1,"float32"),q=linalg.gramSchmidt(a);return shape[0]>shape[1]&&(q=q.transpose()),mul(this.gain,q)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Orthogonal.className="Orthogonal";serialization_exports.registerClass(Orthogonal);var INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function deserializeInitializer(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"initializer")}function serializeInitializer(initializer){return serializeKerasObject(initializer)}function getInitializer(identifier){if(typeof identifier=="string"){let className=identifier in INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier;if(className==="GlorotNormal")return new GlorotNormal;if(className==="GlorotUniform")return new GlorotUniform;if(className==="HeNormal")return new HeNormal;if(className==="HeUniform")return new HeUniform;if(className==="LeCunNormal")return new LeCunNormal;if(className==="LeCunUniform")return new LeCunUniform;{let config2={};return config2.className=className,config2.config={},deserializeInitializer(config2)}}else return identifier instanceof Initializer?identifier:deserializeInitializer(identifier)}function zeros3(){return new Zeros}function ones3(){return new Ones}function constant(args){return new Constant(args)}function randomUniform2(args){return new RandomUniform(args)}function randomNormal3(args){return new RandomNormal(args)}function truncatedNormal2(args){return new TruncatedNormal(args)}function identity4(args){return new Identity2(args)}function varianceScaling(config2){return new VarianceScaling(config2)}function glorotUniform(args){return new GlorotUniform(args)}function glorotNormal(args){return new GlorotNormal(args)}function heNormal(args){return new HeNormal(args)}function heUniform(args){return new HeUniform(args)}function leCunNormal(args){return new LeCunNormal(args)}function leCunUniform(args){return new LeCunUniform(args)}function orthogonal(args){return new Orthogonal(args)}var exports_layers_exports={};__export2(exports_layers_exports,{Layer:()=>Layer,RNN:()=>RNN,RNNCell:()=>RNNCell,activation:()=>activation,add:()=>add4,alphaDropout:()=>alphaDropout,average:()=>average,averagePooling1d:()=>averagePooling1d,averagePooling2d:()=>averagePooling2d,averagePooling3d:()=>averagePooling3d,avgPool1d:()=>avgPool1d,avgPool2d:()=>avgPool2d,avgPool3d:()=>avgPool3d2,avgPooling1d:()=>avgPooling1d,avgPooling2d:()=>avgPooling2d,avgPooling3d:()=>avgPooling3d,batchNormalization:()=>batchNormalization2,bidirectional:()=>bidirectional,concatenate:()=>concatenate2,conv1d:()=>conv1d2,conv2d:()=>conv2d5,conv2dTranspose:()=>conv2dTranspose2,conv3d:()=>conv3d2,convLstm2d:()=>convLstm2d,convLstm2dCell:()=>convLstm2dCell,cropping2D:()=>cropping2D,dense:()=>dense,depthwiseConv2d:()=>depthwiseConv2d5,dot:()=>dot3,dropout:()=>dropout3,elu:()=>elu5,embedding:()=>embedding,flatten:()=>flatten3,gaussianDropout:()=>gaussianDropout,gaussianNoise:()=>gaussianNoise,globalAveragePooling1d:()=>globalAveragePooling1d,globalAveragePooling2d:()=>globalAveragePooling2d,globalMaxPool1d:()=>globalMaxPool1d,globalMaxPool2d:()=>globalMaxPool2d,globalMaxPooling1d:()=>globalMaxPooling1d,globalMaxPooling2d:()=>globalMaxPooling2d,gru:()=>gru,gruCell:()=>gruCell,input:()=>input,inputLayer:()=>inputLayer,layerNormalization:()=>layerNormalization,leakyReLU:()=>leakyReLU,lstm:()=>lstm,lstmCell:()=>lstmCell,masking:()=>masking,maxPool1d:()=>maxPool1d,maxPool2d:()=>maxPool2d,maxPooling1d:()=>maxPooling1d,maxPooling2d:()=>maxPooling2d,maxPooling3d:()=>maxPooling3d,maximum:()=>maximum4,minimum:()=>minimum4,multiply:()=>multiply3,permute:()=>permute,prelu:()=>prelu5,reLU:()=>reLU,repeatVector:()=>repeatVector,reshape:()=>reshape5,rnn:()=>rnn2,separableConv2d:()=>separableConv2d2,simpleRNN:()=>simpleRNN,simpleRNNCell:()=>simpleRNNCell,softmax:()=>softmax5,spatialDropout1d:()=>spatialDropout1d,stackedRNNCells:()=>stackedRNNCells,thresholdedReLU:()=>thresholdedReLU,timeDistributed:()=>timeDistributed,upSampling2d:()=>upSampling2d,zeroPadding2d:()=>zeroPadding2d});var _nextUniqueTensorId=0;function getNextUniqueTensorId(){return _nextUniqueTensorId++}var _uidPrefixes={};function getUid(prefix=""){return prefix in _uidPrefixes||(_uidPrefixes[prefix]=0),_uidPrefixes[prefix]+=1,prefix+_uidPrefixes[prefix].toString()}function isArrayOfShapes(x){return Array.isArray(x)&&Array.isArray(x[0])}function normalizeShapeList(x){return x.length===0?[]:Array.isArray(x[0])?x:[x]}function getExactlyOneTensor(xs){let x;if(Array.isArray(xs)){if(xs.length!==1)throw new ValueError(`Expected Tensor length to be 1; got ${xs.length}`);x=xs[0]}else x=xs;return x}function getExactlyOneShape(shapes){if(Array.isArray(shapes)&&Array.isArray(shapes[0])){if(shapes.length===1)return shapes=shapes,shapes[0];throw new ValueError(`Expected exactly 1 Shape; got ${shapes.length}`)}else return shapes}function countParamsInWeights(weights){let count2=0;for(let weight of weights)weight.shape.length===0?count2+=1:count2+=weight.shape.reduce((a,b)=>a*b);return count2}var DEFAULT_VARIABLE_NAME_PREFIX="Variable",LayerVariable=class{constructor(val,dtype="float32",name=DEFAULT_VARIABLE_NAME_PREFIX,trainable=!0,constraint=null){this.dtype=dtype==null?"float32":dtype,this.shape=val.shape,this.id=getNextUniqueTensorId(),name=name==null?DEFAULT_VARIABLE_NAME_PREFIX:name,this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName),this.trainable_=trainable,this.constraint=constraint,this.val=variable(val,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(newVal){return this.assertNotDisposed(),checkShapesMatch(this.val,newVal),this.val.id!==newVal.id&&(this.val.assign(newVal),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(trainable){this.trainable_=trainable,this.val.trainable=trainable}};function checkShapesMatch(x,y){if(x.shape.toString()!==y.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(x.shape)+" vs. "+JSON.stringify(y.shape))}function batchGetValue(xs){return xs.map(x=>x.read())}function batchSetValue(variablesAndValues){variablesAndValues.forEach(variableAndValue=>{variableAndValue[0].write(variableAndValue[1])})}var InputSpec=class{constructor(args){this.dtype=args.dtype,this.shape=args.shape,args.shape!=null?this.ndim=args.shape.length:this.ndim=args.ndim,this.maxNDim=args.maxNDim,this.minNDim=args.minNDim,this.axes=args.axes||{}}},SymbolicTensor=class{constructor(dtype,shape,sourceLayer,inputs,callArgs,name,outputTensorIndex){this.dtype=dtype,this.shape=shape,this.sourceLayer=sourceLayer,this.inputs=inputs,this.callArgs=callArgs,this.outputTensorIndex=outputTensorIndex,this.id=getNextUniqueTensorId(),name!=null&&(this.originalName=getScopedTensorName(name),this.name=getUniqueTensorName(this.originalName)),this.rank=shape.length}},_nextNodeID=0,Node=class{constructor(args,callArgs){this.callArgs=callArgs,this.id=_nextNodeID++,this.outboundLayer=args.outboundLayer,this.inboundLayers=args.inboundLayers,this.nodeIndices=args.nodeIndices,this.tensorIndices=args.tensorIndices,this.inputTensors=args.inputTensors,this.outputTensors=args.outputTensors,this.inputMasks=args.inputMasks,this.outputMasks=args.outputMasks,this.inputShapes=args.inputShapes,this.outputShapes=args.outputShapes;for(let layer of args.inboundLayers)layer!=null&&layer.outboundNodes.push(this);args.outboundLayer.inboundNodes.push(this)}getConfig(){let inboundNames=[];for(let layer of this.inboundLayers)layer!=null?inboundNames.push(layer.name):inboundNames.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:inboundNames,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},_nextLayerID=0,Layer=class extends serialization_exports.Serializable{constructor(args={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=_nextLayerID++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let name=args.name;if(!name){let prefix=this.getClassName();name=toSnakeCase(prefix)+"_"+getUid(prefix)}if(this.name=name,this.trainable_=args.trainable==null?!0:args.trainable,args.inputShape!=null||args.batchInputShape!=null){let batchInputShape;if(args.batchInputShape!=null)batchInputShape=args.batchInputShape;else if(args.inputShape!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),batchInputShape=[batchSize].concat(args.inputShape)}this.batchInputShape=batchInputShape;let dtype=args.dtype;dtype==null&&(dtype=args.inputDType),dtype==null&&(dtype="float32"),this.dtype=dtype}args.weights!=null?this.initialWeights=args.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(layer,nodeIndex){return layer.name+"_ib-"+nodeIndex.toString()}getNodeAtIndex(nodeIndex,attrName){if(this.inboundNodes.length===0)throw new RuntimeError(`The layer has never been called and thus has no defined ${attrName}.`);if(this.inboundNodes.length<=nodeIndex)throw new ValueError(`Asked to get ${attrName} at node ${nodeIndex}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[nodeIndex]}getInputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"input").inputTensors)}getOutputAt(nodeIndex){return singletonOrArray(this.getNodeAtIndex(nodeIndex,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} is not connected, no input to return.`);return singletonOrArray(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new AttributeError(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new AttributeError(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return singletonOrArray(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(lossFn=>lossFn())}get updates(){return this._updates}get built(){return this._built}set built(built){this._built=built}get trainable(){return this.trainable_}set trainable(trainable){this._trainableWeights.forEach(w=>w.trainable=trainable),this.trainable_=trainable}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(w=>w.trainable):[]}set trainableWeights(weights){this._trainableWeights=weights}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(w=>!w.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(weights){this._nonTrainableWeights=weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(inputs){if(inputs=toList(inputs),this.inputSpec==null||this.inputSpec.length===0)return;let inputSpec=toList(this.inputSpec);if(inputs.length!==inputSpec.length)throw new ValueError(`Layer ${this.name} expects ${inputSpec.length} inputs, but it received ${inputs.length} input tensors. Input received: ${inputs}`);for(let inputIndex=0;inputIndexspec.maxNDim)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected max_ndim=${spec.maxNDim}, found ndim=${ndim}`);if(spec.minNDim!=null&&ndim=0?xShape[axis]:xShape[xShape.length+axis];if(value!=null&&[value,null].indexOf(xShapeAtAxis)===-1)throw new ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: expected axis ${axis} of input shape to have value ${value} but got shape ${xShape}.`)}}if(spec.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(inputs);let inputShapes=[];for(let xElem of toList(inputs))inputShapes.push(xElem.shape);this.build(singletonOrArray(inputShapes)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&noneAreSymbolic&&(this._refCount=1)}if(this.assertInputCompatibility(inputs),noneAreSymbolic){let output=this.call(inputs,kwargs),outputList=toList(output),outputListCopy=[];for(let x of outputList)inputsList.indexOf(x)!==-1&&(x=x.clone()),outputListCopy.push(x);if(output=singletonOrArray(outputListCopy),this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}else{let inputShape=collectInputShape(inputs),outputShape=this.computeOutputShape(inputShape),output,outputDType=guessOutputDType(inputs);if(this.warnOnIncompatibleInputShape(Array.isArray(inputs)?inputShape[0]:inputShape),outputShape!=null&&outputShape.length>0&&Array.isArray(outputShape[0])?output=outputShape.map((shape,index)=>new SymbolicTensor(outputDType,shape,this,toList(inputs),kwargs,this.name,index)):output=new SymbolicTensor(outputDType,outputShape,this,toList(inputs),kwargs,this.name),this.addInboundNode(inputs,output,null,null,inputShape,outputShape,kwargs),this._refCount++,this.activityRegularizer!=null)throw new NotImplementedError("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return output}})}warnOnIncompatibleInputShape(inputShape){if(this.batchInputShape!=null)if(inputShape.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(inputShape)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let dimMismatch=!1;this.batchInputShape.forEach((dimension,i)=>{dimension!=null&&inputShape[i]!=null&&inputShape[i]!==dimension&&(dimMismatch=!0)}),dimMismatch&&console.warn(`The shape of the input tensor (${JSON.stringify(inputShape)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new AttributeError(`The layer ${this.name} has never been called and thus has no defined output shape.`);let allOutputShapes=[];for(let node of this.inboundNodes){let shapeString=JSON.stringify(node.outputShapes);allOutputShapes.indexOf(shapeString)===-1&&allOutputShapes.push(shapeString)}if(allOutputShapes.length===1){let outputShapes=this.inboundNodes[0].outputShapes;return Array.isArray(outputShapes)&&Array.isArray(outputShapes[0])&&outputShapes.length===1?outputShapes[0]:outputShapes}else throw new AttributeError(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new RuntimeError(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return countParamsInWeights(this.weights)}build(inputShape){this.built=!0}getWeights(trainableOnly=!1){return batchGetValue(trainableOnly?this.trainableWeights:this.weights)}setWeights(weights){tidy(()=>{let params=this.weights;if(params.length!==weights.length)throw new ValueError(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${weights.length}, but the layer was expecting ${params.length} weights. Provided weights: ${weights}...`);if(params.length===0)return;let weightValueTuples=[],paramValues=batchGetValue(params);for(let i=0;iregularizer.apply(weight.read())),trainable==null&&(trainable=!0),trainable?this._trainableWeights.push(weight):this._nonTrainableWeights.push(weight),weight}setFastWeightInitDuringBuild(value){this.fastWeightInitDuringBuild=value}addLoss(losses4){losses4==null||Array.isArray(losses4)&&losses4.length===0||(losses4=toList(losses4),this._losses!==void 0&&this._losses!==null&&this.losses.push(...losses4))}computeOutputShape(inputShape){return inputShape}computeMask(inputs,mask){if(!this.supportsMasking){if(mask!=null)if(Array.isArray(mask))mask.forEach(maskElement=>{if(maskElement!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return mask}addInboundNode(inputTensors,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes,kwargs=null){let inputTensorList=toList(inputTensors);outputTensors=toList(outputTensors),inputMasks=toList(inputMasks),outputMasks=toList(outputMasks),inputShapes=normalizeShapeList(inputShapes),outputShapes=normalizeShapeList(outputShapes);let inboundLayers=[],nodeIndices=[],tensorIndices=[];for(let x of inputTensorList)inboundLayers.push(x.sourceLayer),nodeIndices.push(x.nodeIndex),tensorIndices.push(x.tensorIndex);new Node({outboundLayer:this,inboundLayers,nodeIndices,tensorIndices,inputTensors:inputTensorList,outputTensors,inputMasks,outputMasks,inputShapes,outputShapes},kwargs);for(let i=0;iweight.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let numDisposedVariables=0;return--this._refCount==0&&(numDisposedVariables=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables}}};function collectInputShape(inputTensors){inputTensors=toList(inputTensors);let shapes=[];for(let x of inputTensors)shapes.push(x.shape);return singletonOrArray(shapes)}function guessOutputDType(inputTensors){return"float32"}function getSourceInputs(tensor2,layer,nodeIndex){if((layer==null||nodeIndex!=null&&nodeIndex>0)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex),layer.inboundNodes.length===0)return[tensor2];{let node=layer.inboundNodes[nodeIndex];if(node.inboundLayers.length===0)return node.inputTensors;{let sourceTensors=[];for(let i=0;i0){let values=await Promise.all(promises);for(let i=0;iadd2(this.totals[key],mul(value,batchSize)));this.totals[key]=total,oldTotalsToDispose!=null&&oldTotalsToDispose.dispose()}}}async onEpochEnd(epoch,logs){if(logs!=null)for(let key of this.params.metrics)this.totals[key]!=null&&(typeof this.totals[key]=="number"?logs[key]=this.totals[key]/this.seen:tidy(()=>{let log5=mul(div(1,this.seen),this.totals[key]);logs[key]=log5,this.totals[key].dispose(),keep(logs[key])}))}},History=class extends BaseCallback{async onTrainBegin(logs){this.epoch=[],this.history={}}async onEpochEnd(epoch,logs){logs==null&&(logs={}),this.epoch.push(epoch);for(let key in logs)this.history[key]==null&&(this.history[key]=[]),this.history[key].push(logs[key])}async syncData(){let promises=[],keys=[],indices=[];for(let key in this.history){let valueArray=this.history[key];for(let i=0;inew CustomCallback(callbackConfig,yieldEvery))}var CallbackConstructorRegistry=class{constructor(){}static registerCallbackConstructor(verbosityLevel,callbackConstructor){util_exports.assert(verbosityLevel>=0&&Number.isInteger(verbosityLevel),()=>`Verbosity level is expected to be an integer >= 0, but got ${verbosityLevel}`),CallbackConstructorRegistry.checkForDuplicate(callbackConstructor),CallbackConstructorRegistry.constructors[verbosityLevel]==null&&(CallbackConstructorRegistry.constructors[verbosityLevel]=[]),CallbackConstructorRegistry.constructors[verbosityLevel].push(callbackConstructor)}static checkForDuplicate(callbackConstructor){for(let levelName in CallbackConstructorRegistry.constructors)CallbackConstructorRegistry.constructors[+levelName].forEach(ctor=>{if(ctor===callbackConstructor)throw new ValueError("Duplicate callback constructor.")})}static clear(){CallbackConstructorRegistry.constructors={}}static createCallbacks(verbosityLevel){let constructors=[];for(let levelName in CallbackConstructorRegistry.constructors){let level=+levelName;verbosityLevel>=level&&constructors.push(...CallbackConstructorRegistry.constructors[level])}return constructors.map(ctor=>new ctor)}};CallbackConstructorRegistry.constructors={};function configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics){let history=new History,actualCallbacks=[new BaseLogger,...CallbackConstructorRegistry.createCallbacks(verbose)];callbacks2!=null&&actualCallbacks.push(...callbacks2),actualCallbacks.push(history);let callbackList=new CallbackList(actualCallbacks);return callbackList.setParams({epochs,initialEpoch,samples:numTrainSamples,steps:stepsPerEpoch,batchSize,verbose,doValidation,metrics:callbackMetrics}),{callbackList,history}}function deserialize(config2,customObjects={},fastWeightInit=!1){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"layer",fastWeightInit)}function l2Normalize(x,axis){return tidy(()=>{x.dtype!=="float32"&&(x=x.asType("float32"));let squareSum=sum2(square3(x),axis,!0),epsilonTensor=fill(squareSum.shape,epsilon2()),norm2=sqrt(maximum(squareSum,epsilonTensor));return div(x,norm2)})}function meanSquaredError2(yTrue,yPred){return tidy(()=>mean(square3(sub(yPred,yTrue)),-1))}function meanAbsoluteError(yTrue,yPred){return tidy(()=>mean(abs(sub(yPred,yTrue)),-1))}function meanAbsolutePercentageError(yTrue,yPred){return tidy(()=>{let diff=sub(yTrue,yPred),clippedTrue=clipByValue(abs(yTrue),epsilon2(),Number.MAX_VALUE),absResult=abs(div(diff,clippedTrue));return mul(100,mean(absResult,-1))})}function meanSquaredLogarithmicError(yTrue,yPred){return tidy(()=>{let clippedPred=clipByValue(yPred,epsilon2(),Number.MAX_VALUE),firstLog=log2(add2(1,clippedPred)),clippedTrue=clipByValue(yTrue,epsilon2(),Number.MAX_VALUE),secondLog=log2(add2(1,clippedTrue));return mean(square3(sub(firstLog,secondLog)),-1)})}function squaredHinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(square3(maxResult),-1)})}function hinge(yTrue,yPred){return tidy(()=>{let maxResult=maximum(0,sub(1,mul(yTrue,yPred)));return mean(maxResult,-1)})}function categoricalHinge(yTrue,yPred){return tidy(()=>{let pos=sum2(mul(yTrue,yPred),-1),neg4=max(mul(sub(1,yTrue),yPred),-1);return maximum(0,add2(1,sub(neg4,pos)))})}function logcosh(yTrue,yPred){return tidy(()=>{let log222=Math.log(2),predictionDiff=sub(yPred,yTrue),logcoshResult=sub(add2(predictionDiff,softplus(mul(-2,predictionDiff))),log222);return mean(logcoshResult,-1)})}function categoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{if(fromLogits)output=softmax(output);else{let outputSum=sum2(output,output.shape.length-1,!0);output=div(output,outputSum)}return output=clipByValue(output,epsilon2(),1-epsilon2()),neg(sum2(mul(target.toFloat(),log2(output)),output.shape.length-1))})}function sparseCategoricalCrossentropy(target,output,fromLogits=!1){return tidy(()=>{let flatTarget=floor(flatten2(target)).toInt();output=clipByValue(output,epsilon2(),1-epsilon2());let outputShape=output.shape,oneHotTarget=oneHot(flatTarget,outputShape[outputShape.length-1]).reshape(outputShape);return categoricalCrossentropy(oneHotTarget,output,fromLogits)})}function sigmoidCrossEntropyWithLogits(labels,logits){if(!util_exports.arraysEqual(labels.shape,logits.shape))throw new ValueError(`logits and labels must have the same shape, but got shapes ${JSON.stringify(labels.shape)} and ${JSON.stringify(logits.shape)}`);return tidy(()=>{let reluLogits=logits.relu(),negAbsLogits=logits.abs().neg();return reluLogits.sub(logits.mul(labels)).add(negAbsLogits.exp().log1p())})}function binaryCrossentropy(yTrue,yPred){return tidy(()=>{let y;return y=clipByValue(yPred,epsilon2(),1-epsilon2()),y=log2(div(y,sub(1,y))),mean(sigmoidCrossEntropyWithLogits(yTrue,y),-1)})}function kullbackLeiblerDivergence(yTrue,yPred){return tidy(()=>{let clippedTrue=clipByValue(yTrue,epsilon2(),1),clippedPred=clipByValue(yPred,epsilon2(),1);return sum2(mul(yTrue,log2(div(clippedTrue,clippedPred))),-1)})}function poisson(yTrue,yPred){return tidy(()=>{let logPred=log2(add2(epsilon2(),yPred));return mean(sub(yPred,mul(yTrue,logPred)),-1)})}function cosineProximity(yTrue,yPred){return tidy(()=>{let trueNormalized=l2Normalize(yTrue,-1),predNormalized=l2Normalize(yPred,-1),trueXPred=mul(trueNormalized,predNormalized);return neg(sum2(trueXPred,-1))})}var lossesMap={meanSquaredError:meanSquaredError2,meanAbsoluteError,meanAbsolutePercentageError,meanSquaredLogarithmicError,squaredHinge,hinge,categoricalHinge,logcosh,categoricalCrossentropy,sparseCategoricalCrossentropy,binaryCrossentropy,kullbackLeiblerDivergence,poisson,cosineProximity};function get(identifierOrFn){if(typeof identifierOrFn=="string"){if(identifierOrFn in lossesMap)return lossesMap[identifierOrFn];let errMsg=`Unknown loss ${identifierOrFn}`;throw identifierOrFn.toLowerCase().includes("softmaxcrossentropy")&&(errMsg=`Unknown loss ${identifierOrFn}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new ValueError(errMsg)}else return identifierOrFn}function binaryAccuracy(yTrue,yPred){return tidy(()=>{let threshold2=mul(.5,onesLike(yPred)),yPredThresholded=cast5(greater(yPred,threshold2),yTrue.dtype);return mean(equal(yTrue,yPredThresholded),-1)})}function categoricalAccuracy(yTrue,yPred){return tidy(()=>cast5(equal(argMax(yTrue,-1),argMax(yPred,-1)),"float32"))}function truePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(1)).sum().cast("float32"))}function falseNegatives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(1),yPred.equal(0)).sum().cast("float32"))}function falsePositives(yTrue,yPred){return tidy(()=>logicalAnd(yTrue.equal(0),yPred.equal(1)).sum().cast("float32"))}function precision(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fp=falsePositives(yTrue,yPred),denominator=tp.add(fp);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function recall(yTrue,yPred){return tidy(()=>{let tp=truePositives(yTrue,yPred),fn=falseNegatives(yTrue,yPred),denominator=tp.add(fn);return where(greater(denominator,0),tp.div(denominator),0).cast("float32")})}function binaryCrossentropy2(yTrue,yPred){return binaryCrossentropy(yTrue,yPred)}function sparseCategoricalAccuracy(yTrue,yPred){return yTrue.rank===yPred.rank&&(yTrue=yTrue.squeeze([yTrue.rank-1])),yPred=yPred.argMax(-1),yPred.dtype!==yTrue.dtype&&(yPred=yPred.asType(yTrue.dtype)),equal(yTrue,yPred).asType("float32")}var mse=meanSquaredError2,MSE=meanSquaredError2,mae=meanAbsoluteError,MAE=meanAbsoluteError,mape=meanAbsolutePercentageError,MAPE=meanAbsolutePercentageError,categoricalCrossentropy2=categoricalCrossentropy,cosine=cosineProximity,sparseCategoricalCrossentropy2=sparseCategoricalCrossentropy,metricsMap={binaryAccuracy,categoricalAccuracy,precision,categoricalCrossentropy:categoricalCrossentropy2,sparseCategoricalCrossentropy:sparseCategoricalCrossentropy2,mse,MSE,mae,MAE,mape,MAPE,cosine};function get2(identifier){if(typeof identifier=="string"&&identifier in metricsMap)return metricsMap[identifier];if(typeof identifier!="string"&&identifier!=null)return identifier;throw new ValueError(`Unknown metric ${identifier}`)}function getLossOrMetricName(fn){if(assert2(fn!==null,`Unknown LossOrMetricFn ${fn}`),typeof fn=="string")return fn;{let fnName;for(let key of Object.keys(lossesMap))if(lossesMap[key]===fn){fnName=key;break}if(fnName!==void 0)return fnName;for(let key of Object.keys(metricsMap))if(metricsMap[key]===fn){fnName=key;break}return fnName!==void 0?fnName:fn.name}}function getOptimizer(identifier){let optimizerMap={Adagrad:()=>train.adagrad(.01),Adadelta:()=>train.adadelta(1,.95,epsilon2()),Adam:()=>train.adam(.001,.9,.999,epsilon2()),Adamax:()=>train.adamax(.002,.9,.999,epsilon2(),0),RMSProp:()=>train.rmsprop(.001,.9,0,epsilon2()),SGD:()=>train.sgd(.01)};if(optimizerMap.adagrad=optimizerMap.Adagrad,optimizerMap.adadelta=optimizerMap.Adadelta,optimizerMap.adam=optimizerMap.Adam,optimizerMap.adamax=optimizerMap.Adamax,optimizerMap.rmsprop=optimizerMap.RMSProp,optimizerMap.sgd=optimizerMap.SGD,identifier in optimizerMap)return optimizerMap[identifier]();throw new ValueError(`Unknown Optimizer ${identifier}`)}var MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH=1*1024*1024;function checkUserDefinedMetadata(userDefinedMetadata,modelName,checkSize=!1){if(userDefinedMetadata==null||typeof userDefinedMetadata!="object"||Object.getPrototypeOf(userDefinedMetadata)!==Object.prototype||!plainObjectCheck(userDefinedMetadata))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(checkSize){let out=JSON.stringify(userDefinedMetadata);out.length>MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH&&console.warn(`User-defined metadata of model "${modelName}" is too large in size (length=${out.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH}.`)}}function plainObjectCheck(x){if(x===null)return!0;if(typeof x=="object")if(Object.getPrototypeOf(x)===Object.prototype){let keys=Object.keys(x);for(let key of keys)if(typeof key!="string"||!plainObjectCheck(x[key]))return!1;return!0}else if(Array.isArray(x)){for(let item of x)if(!plainObjectCheck(item))return!1;return!0}else return!1;else{let xType=typeof x;return xType==="string"||xType==="number"||xType==="boolean"}}function printSummary(model2,lineLength,positions,printFn=console.log){let sequentialLike=isModelSequentialLike(model2),toDisplay=["Layer (type)","Output shape","Param #"];sequentialLike?(lineLength=lineLength||65,positions=positions||[.45,.85,1]):(lineLength=lineLength||98,positions=positions||[.33,.55,.67,1]),positions[positions.length-1]<=1&&(positions=positions.map(p2=>Math.floor(lineLength*p2)));let relevantNodes;if(!sequentialLike){toDisplay.push("Receives inputs"),relevantNodes=[];for(let depth in model2.nodesByDepth)relevantNodes.push(...model2.nodesByDepth[depth])}printFn("_".repeat(lineLength)),printRow(toDisplay,positions,printFn),printFn("=".repeat(lineLength));let layers=model2.layers;for(let i=0;i1||depthNodes.length===1&&depthNodes[0].inboundLayers.length>1){sequentialLike=!1;break}nodes.push(...depthNodes)}if(sequentialLike)for(let layer of model2.layers){let flag=!1;for(let node of layer.inboundNodes)if(nodes.indexOf(node)!==-1)if(flag){sequentialLike=!1;break}else flag=!0;if(!sequentialLike)break}return sequentialLike}function printRow(fields,positions,printFn=console.log){let line="";for(let i=0;i0&&(line=line.slice(0,line.length-1)+" "),line+=fields[i],line=line.slice(0,positions[i]),line+=" ".repeat(positions[i]-line.length);printFn(line)}function printLayerSummary(layer,positions,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let name=layer.name,className=layer.getClassName(),fields=[`${name} (${className})`,outputShape,layer.countParams().toString()];printRow(fields,positions,printFn)}function printLayerSummaryWithConnections(layer,positions,relevantNodes,printFn){let outputShape;try{outputShape=JSON.stringify(layer.outputShape)}catch(err){outputShape="multiple"}let connections=[];for(let node of layer.inboundNodes)if(!(relevantNodes!=null&&relevantNodes.length>0&&relevantNodes.indexOf(node)===-1))for(let i=0;it.name),finalOutputs=[],feedNames=feedDict.names();for(let outputName of outputNames)feedNames.indexOf(outputName)!==-1?finalOutputs.push(feedDict.getValue(outputName)):finalOutputs.push(null);probe!=null&&(probe.maxNumTensors=-Infinity,probe.minNumTensors=Infinity);let fetchAndFeedKey=outputNames.join(",")+"|"+feedDict.names().join(","),sorted,recipientCounts;if(cachedSorted[fetchAndFeedKey]==null){let out=getTopologicalSortAndRecipientCounts(fetchArray,feedDict);sorted=out.sorted,recipientCounts=out.recipientCounts,cachedSorted[fetchAndFeedKey]=sorted,cachedRecipientCounts[fetchAndFeedKey]=recipientCounts}sorted=cachedSorted[fetchAndFeedKey],recipientCounts={},training||Object.assign(recipientCounts,cachedRecipientCounts[fetchAndFeedKey]);let internalFeedDict=new FeedDict(feedDict);for(let i=0;iprobe.maxNumTensors&&(probe.maxNumTensors=numTensors),numTensors0,()=>"Expected at least one fetch, got none");let finalSorted=[],finalRecipientMap={};if(fetches.length===1){let out=getTopologicalSortAndRecipientCountsForOneFetch(fetches[0],feedDict);finalSorted=out.sorted,finalRecipientMap=out.recipientMap}else{let visited=new Set;for(let fetch3 of fetches){let{sorted,recipientMap}=getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict);for(let symbolicTensor of sorted)visited.has(symbolicTensor.name)||(finalSorted.push(symbolicTensor),visited.add(symbolicTensor.name));for(let name in recipientMap)finalRecipientMap[name]==null&&(finalRecipientMap[name]=new Set),recipientMap[name].forEach(recipient=>finalRecipientMap[name].add(recipient))}}return{sorted:finalSorted,recipientCounts:recipientMap2Counts(finalRecipientMap)}}function recipientMap2Counts(recipientMap){let recipientCounts={};for(let name in recipientMap)recipientCounts[name]=recipientMap[name].size;return recipientCounts}function getTopologicalSortAndRecipientCountsForOneFetch(fetch3,feedDict){let visited=new Set,sorted=[],recipientMap={};for(let key of feedDict.names())visited.add(key);let stack2=[],marks=[];for(stack2.push(fetch3);stack2.length>0;){let top=stack2[stack2.length-1];if(visited.has(top.name)){stack2.pop();continue}let topIsMarked=marks[marks.length-1]===stack2.length-1;if(top.inputs.length===0||topIsMarked)stack2.pop(),sorted.push(top),visited.add(top.name),topIsMarked&&marks.pop();else{marks.push(stack2.length-1);for(let input2 of top.inputs)recipientMap[input2.name]==null&&(recipientMap[input2.name]=new Set),recipientMap[input2.name].add(top.name),!visited.has(input2.name)&&stack2.push(input2)}}return{sorted,recipientMap}}function getNodeOutputs(fetch3){let layerOutputs;if(fetch3.sourceLayer.inboundNodes.length===1)layerOutputs=fetch3.sourceLayer.output;else{let nodeIndex=null;for(let i=0;ix.name)}`);unique4(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(x=>x.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let x of this.outputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;this.outputLayers.push(layer),this.outputLayersNodeIndices.push(nodeIndex),this.outputLayersTensorIndices.push(tensorIndex)}for(let x of this.inputs){let layer=x.sourceLayer,nodeIndex=x.nodeIndex,tensorIndex=x.tensorIndex;assert2(nodeIndex===0,"input layer has >1 nodes"),assert2(tensorIndex===0,"input layer has >1 tensors"),this.inputLayers.push(layer),this.inputLayersNodeIndices.push(nodeIndex),this.inputLayersTensorIndices.push(tensorIndex)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let i=0;ix.shape),this.internalOutputShapes=this.outputs.map(x=>x.shape);let nodesDepths={},nodeIDToNode={},layersDepths={},layerIDToLayer={},layerIndices={},nodesInDecreasingDepth=[],buildMapOfGraph=(tensor2,finishedNodes2,nodesInProgress2,layer,nodeIndex,tensorIndex)=>{(layer==null||nodeIndex==null||tensorIndex==null)&&(layer=tensor2.sourceLayer,nodeIndex=tensor2.nodeIndex,tensorIndex=tensor2.tensorIndex);let node=layer.inboundNodes[nodeIndex];if(nodesInProgress2.indexOf(node)!==-1)throw new RuntimeError(`The tensor ${tensor2.name} at layer "${layer.name}" is part of a cycle.`);if(finishedNodes2.indexOf(node)!==-1)return;this.containerNodes.add(Container.nodeKey(layer,nodeIndex)),layer.id in layerIndices||(layerIndices[layer.id]=Object.keys(layerIndices).length),nodesInProgress2.indexOf(node)===-1&&nodesInProgress2.push(node);let numInboundLayers=node.inboundLayers.length;for(let i=0;i=0;)nodesInProgress2.splice(nodesInProgress2.indexOf(node),1);nodesInDecreasingDepth.push(node)},finishedNodes=[],nodesInProgress=[];for(let x of this.outputs)buildMapOfGraph(x,finishedNodes,nodesInProgress);let reversedNodesInDecreasingDepth=nodesInDecreasingDepth.slice().reverse();for(let node of reversedNodesInDecreasingDepth){nodeIDToNode[node.id]=node,node.id in nodesDepths||(nodesDepths[node.id]=0);let depth=nodesDepths[node.id],previousDepth=layersDepths[node.outboundLayer.id]==null?0:layersDepths[node.outboundLayer.id];depth=Math.max(depth,previousDepth),layersDepths[node.outboundLayer.id]=depth,layerIDToLayer[node.outboundLayer.id]=node.outboundLayer,nodesDepths[node.id]=depth;for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);this.layers=[];for(let depth of depthKeys){let layersForDepth=layersByDepth[depth];layersForDepth.sort((a,b)=>{let aIndex=layerIndices[a.id],bIndex=layerIndices[b.id];return aIndexbIndex?1:0});for(let layer of layersForDepth)layer instanceof Container&&this.internalContainerRefs.push(layer),this.layers.push(layer)}this.layersByDepth=layersByDepth,depthKeys=Object.keys(nodesByDepth).map(x=>parseInt(x,10)).sort(reverseNumberCompare);let computableTensors=this.inputs.slice(),layersWithCompleteInput=[];for(let depth of depthKeys)for(let node of nodesByDepth[depth]){let layer=node.outboundLayer;if(layer!=null){for(let x of node.inputTensors)if(computableTensors.indexOf(x)===-1)throw new RuntimeError(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${layer.name}". The following previous layers were accessed without issue: ${layersWithCompleteInput}`);for(let x of node.outputTensors)computableTensors.push(x);layersWithCompleteInput.push(layer.name)}}this.nodesByDepth=nodesByDepth;let allNames=this.layers.map(x=>x.name);for(let name of allNames){let numOccurrences=allNames.filter(x=>x===name).length;if(numOccurrences!==1)throw new RuntimeError(`The name "${name}" is used ${numOccurrences} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(allNames))}this.outboundNodes=[],this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(x=>null),outputMasks:this.outputs.map(x=>null),inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs.map(x=>x.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let result={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let layer of this.layers)result.numDisposedVariables+=layer.dispose().numDisposedVariables;for(let container of this.internalContainerRefs)result.numDisposedVariables+=container.dispose().numDisposedVariables}return result.refCountAfterDispose=this._refCount,result}get trainable(){return this.trainable_}set trainable(trainable){this.layers.forEach(layer=>{layer._trainableWeights.forEach(w=>w.trainable=trainable)}),this.trainable_=trainable}get trainableWeights(){if(this._trainableWeights.length>0)throw new ValueError("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let weights=[];for(let layer of this.layers)weights=weights.concat(layer.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let layer of this.layers)weights.push(...layer.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let layer of this.layers)trainableWeights.push(...layer.trainableWeights);return trainableWeights.concat(weights)}return weights}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(weights,strict=!0){let nameToWeight={},totalWeightsCount=0;for(let layer of this.layers)for(let weight of layer.weights){if(nameToWeight[weight.originalName]!=null)throw new ValueError(`Duplicate weight name: ${weight.originalName}`);nameToWeight[weight.originalName]=weight,totalWeightsCount++}let weightValueTuples=[];for(let name in weights){let validatedName=name;if(nameToWeight[name]==null){let tokens=name.split("/");validatedName=tokens.slice(0,-2).concat([tokens[tokens.length-1]]).join("/")}if(nameToWeight[validatedName]!=null)weightValueTuples.push([nameToWeight[validatedName],weights[name]]);else if(strict)throw new ValueError(`Provided weight data has no target variable: ${name}`);delete nameToWeight[validatedName]}if(strict){let unsetNames=[];for(let name in nameToWeight)unsetNames.push(name);if(unsetNames.length>0)throw new ValueError(`${unsetNames.length} of ${totalWeightsCount} weights are not set: ${unsetNames}`)}batchSetValue(weightValueTuples)}updatedConfig(){let theConfig=this.getConfig(),modelConfig={};return modelConfig.className=this.getClassName(),modelConfig.config=theConfig,modelConfig.kerasVersion=`tfjs-layers ${version10}`,modelConfig.backend="TensorFlow.js",modelConfig}toJSON(unused,returnString=!0){let modelConfig=convertTsToPythonic(this.updatedConfig());return returnString?JSON.stringify(modelConfig):modelConfig}call(inputs,kwargs){return tidy(()=>{inputs=toList(inputs);let feedDict=new FeedDict;for(let i=0;i{inputs=toList(inputs);let masks;return mask==null?masks=pyListRepeat(null,inputs.length):masks=toList(mask),this.runInternalGraph(inputs,masks)[1]})}computeOutputShape(inputShape){let inputShapes=normalizeShapeList(inputShape);if(inputShapes.length!==this.inputLayers.length)throw new ValueError(`Invalid inputShape argument ${inputShape}: model has ${this.inputLayers.length} tensor inputs.`);let layersToOutputShapes={};for(let i=0;iparseInt(x,10)).sort(reverseNumberCompare);if(depthKeys.length>1)for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer;if(this.inputLayers.map(x=>x.id).indexOf(layer.id)!==-1)continue;let inputShapes2=[];for(let j=0;jparseInt(x,10)).sort(reverseNumberCompare);for(let depth of depthKeys){let nodes=this.nodesByDepth[depth];for(let node of nodes){let layer=node.outboundLayer,referenceInputTensors=node.inputTensors,referenceOutputTensors=node.outputTensors,computedData=new Array;for(let x of referenceInputTensors)x.id in tensorMap&&computedData.push(tensorMap[x.id]);if(computedData.length===referenceInputTensors.length){let kwargs={},computedTensors,computedMasks,outputTensors2,outputMasks2;if(node.callArgs!=null&&(kwargs=node.callArgs),computedData.length===1){let[computedTensor,computedMask]=computedData[0];kwargs.mask==null&&(kwargs.mask=computedMask),outputTensors2=toList(layer.call(computedTensor,kwargs)),outputMasks2=toList(layer.computeMask(computedTensor,computedMask)),computedTensors=[computedTensor],computedMasks=[computedMask]}else computedTensors=computedData.map(x=>x[0]),computedMasks=computedData.map(x=>x[1]),kwargs.mask==null&&(kwargs.mask=computedMasks),outputTensors2=toList(layer.call(computedTensors,kwargs)),outputMasks2=toList(layer.computeMask(computedTensors,computedMasks));if(layer.activityRegularizer)throw new NotImplementedError("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let i=0;i{let losses4=[];for(let layer of this.layers)for(let nodeIndex=0;nodeIndex0){let nodeData=[];for(let i=0;i0&&layer.apply(singletonOrArray(inputTensors2),kwargs)}function processLayer(layerData){let layerName=layerData.name,layer=deserialize(layerData,config2.customObjects!=null?config2.customObjects:{});layer.setFastWeightInitDuringBuild(fastWeightInit),createdLayers[layerName]=layer,layerData.inboundNodes.forEach(nodeData=>{if(!(nodeData instanceof Array))throw new ValueError(`Corrupted configuration, expected array for nodeData: ${nodeData}`);addUnprocessedNode(layer,nodeData)})}let name=config2.name,layersFromConfig=config2.layers;for(let layerData of layersFromConfig)processLayer(layerData);for(;!isObjectEmpty(unprocessedNodes);)for(let layerData of layersFromConfig){let layer=createdLayers[layerData.name];if(layer.name in unprocessedNodes){let currentUnprocessedNodesForLayer=unprocessedNodes[layer.name];delete unprocessedNodes[layer.name];for(let nodeData of currentUnprocessedNodesForLayer)processNode(layer,nodeData)}}let inputTensors=[],outputTensors=[],inputLayersFromConfig=config2.inputLayers;for(let layerData of inputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;inputTensors.push(layerOutputTensors[tensorIndex])}let outputLayersFromConfig=config2.outputLayers;for(let layerData of outputLayersFromConfig){let layerName=layerData[0],nodeIndex=layerData[1],tensorIndex=layerData[2];assert2(layerName in createdLayers);let layerOutputTensors=createdLayers[layerName].inboundNodes[nodeIndex].outputTensors;outputTensors.push(layerOutputTensors[tensorIndex])}return new cls({inputs:inputTensors,outputs:outputTensors,name})}get stateful(){if(this._stateful)throw new ValueError("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let layer of this.layers)if(layer.stateful)return!0;return!1}resetStates(){tidy(()=>{this.layers.forEach(layer=>{layer.stateful&&layer.resetStates()})})}};function standardizeSampleOrClassWeights(xWeight,outputNames,weightType){let numOutputs=outputNames.length;if(xWeight==null||Array.isArray(xWeight)&&xWeight.length===0)return outputNames.map(name=>null);if(numOutputs===1)return Array.isArray(xWeight)&&xWeight.length===1?xWeight:typeof xWeight=="object"&&outputNames[0]in xWeight?[xWeight[outputNames[0]]]:[xWeight];if(Array.isArray(xWeight)){if(xWeight.length!==numOutputs)throw new Error(`Provided ${weightType} is an array of ${xWeight.length} element(s), but the model has ${numOutputs} outputs. Make sure a set of weights is provided for each model output.`);return xWeight}else if(typeof xWeight=="object"&&Object.keys(xWeight).length>0&&typeof xWeight[Object.keys(xWeight)[0]]=="object"){let output=[];return outputNames.forEach(outputName=>{outputName in xWeight?output.push(xWeight[outputName]):output.push(null)}),output}else throw new Error(`The model has multiple (${numOutputs}) outputs, so ${weightType} must be either an array with ${numOutputs} elements or an object with ${outputNames} keys. Provided ${weightType} not understood: ${JSON.stringify(xWeight)}`)}function standardizeClassWeights(classWeight,outputNames){return standardizeSampleOrClassWeights(classWeight,outputNames,"classWeight")}async function standardizeWeights(y,sampleWeight,classWeight,sampleWeightMode){if(sampleWeight!=null||sampleWeightMode!=null)throw new Error("Support sampleWeight is not implemented yet");if(classWeight!=null){let yClasses=tidy(()=>{if(y.shape.length===1)return y.clone();if(y.shape.length===2)if(y.shape[1]>1){let axis=1;return y.argMax(axis)}else{if(y.shape[1]===1)return y.reshape([y.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${y.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${y.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),yClassIndices=Array.from(await yClasses.data());dispose(yClasses);let classSampleWeight=[];return yClassIndices.forEach(classIndex=>{if(classWeight[classIndex]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${classIndex} exists in the data but not in classWeight`);classSampleWeight.push(classWeight[classIndex])}),tensor1d(classSampleWeight,"float32")}else return null}function computeWeightedLoss2(losses4,sampleWeights){return mul(losses4,sampleWeights)}var DEFAULT_VALIDATION_BATCH_SIZE=32;function standardizeDataIteratorOutput(model2,iteratorOut){let xs,ys,iteratorOutObj=iteratorOut;xs=iteratorOutObj.xs,ys=iteratorOutObj.ys,util_exports.assert(xs!=null&&ys!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${iteratorOut}`);let flattenedXs=flattenTensorOrArrayOrMap("input",model2.inputNames,xs),flattenedYs=flattenTensorOrArrayOrMap("output",model2.outputNames,ys),batchSize=flattenedXs[0].shape[0];util_exports.assert(flattenedXs.length===model2.inputs.length,()=>`LayersModel has ${model2.inputs.length} inputs, but the dataset provides ${flattenedXs.length} inputs. (Expected input keys: ${JSON.stringify(model2.inputNames)})`),util_exports.assert(flattenedYs.length===model2.outputs.length,()=>`LayersModel has ${model2.outputs.length} outputs, but the dataset provides ${flattenedYs.length} outputs. (Expected output keys: ${JSON.stringify(model2.outputNames)})`);for(let xIndex=0;xIndex`Batch size mismatch: input ${model2.inputNames[xIndex]} has ${flattenedXs[xIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);for(let yIndex=0;yIndex`Batch size mismatch: output ${model2.outputNames[yIndex]} has ${flattenedYs[yIndex].shape[0]}; expected ${batchSize} based on input ${model2.inputNames[0]}.`);return{xs:flattenedXs,ys:flattenedYs}}function flattenTensorOrArrayOrMap(inputOrOutput,names,values){if(values instanceof Tensor)return[values];if(Array.isArray(values))return util_exports.assert(values.length===names.length,()=>`Received an array of ${values.length} Tensors, but expected ${names.length} to match the ${inputOrOutput} keys ${names}.`),values;{let result=[];for(let name of names){if(values[name]==null)throw new ValueError(`The feature data generated by the dataset lacks the required ${inputOrOutput} key '${name}'.`);result.push(values[name])}return result}}function standardizeTensorValidationData(data2){if(data2.length===3)throw new NotImplementedError("Validation with sample weights is not implemented yet.");return{xs:data2[0],ys:data2[1]}}async function fitDataset(model2,dataset,args){let hasBatchesPerEpoch=args.batchesPerEpoch!=null;if(util_exports.assert(model2.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),util_exports.assert(args!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),util_exports.assert(args.epochs!=null&&args.epochs>0&&Number.isInteger(args.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${args.epochs}`),util_exports.assert(!hasBatchesPerEpoch||args.batchesPerEpoch>0&&Number.isInteger(args.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${args.batchesPerEpoch}`),util_exports.assert(args.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),model2.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");model2.isTraining=!0;try{let doValidation=args.validationData!=null,valXs,valYs;if(doValidation)if(isDatasetObject(args.validationData))util_exports.assert(args.validationBatches==null||args.validationBatches>0&&Number.isInteger(args.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${args.validationBatches}`);else{let validationData=standardizeTensorValidationData(args.validationData);valXs=validationData.xs,valYs=validationData.ys}let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),callbackMetrics;doValidation?callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n)):callbackMetrics=outLabels.slice();let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery),verbose=args.verbose==null?1:args.verbose,{callbackList,history}=configureCallbacks(callbacks2,verbose,args.epochs,null,null,getStepsPerEpoch(dataset,args),null,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;let epoch=args.initialEpoch==null?0:args.initialEpoch,dataIterator=await dataset.iterator();for(;epoch=args.batchesPerEpoch:iteratorOut.done){if(doValidation){let valOuts;isDatasetObject(args.validationData)?valOuts=toList(await model2.evaluateDataset(args.validationData,{batches:args.validationBatches})):valOuts=toList(model2.evaluate(valXs,valYs,{batchSize:args.validationBatchSize==null?DEFAULT_VALIDATION_BATCH_SIZE:args.validationBatchSize,verbose:0}));for(let i=0;i0)throw new NotImplementedError("Verbose mode is not implemented yet.");util_exports.assert(!hasBatches||args.batches>0&&Number.isInteger(args.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(args.batches)}`);let dataIterator=isLazyIteratorObject(dataset)?dataset:await dataset.iterator(),numExamples=0,batch=0;for(;hasBatches?batch{if(iteratorOut.value){let{xs,ys}=standardizeDataIteratorOutput(model2,iteratorOut.value),xsAndYs=xs.concat(ys),batchOuts=tidy(()=>f(xsAndYs));if(dispose(xsAndYs),batch===0)for(let i=0;iadd2(outs[i],mul(batchSize,batchOut))),batch>0&&dispose(oldScalar)}dispose(batchOuts),numExamples+=batchSize,++batch}return outs}),iteratorOut.done){hasBatches&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${args.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let i=0;i0&&Number.isInteger(batchSize),()=>`batchSize is required to be a positive integer, but got ${batchSize}`)}function sliceArrays(arrays,start,stop){return arrays==null?[null]:Array.isArray(arrays)?arrays.map(array2=>sliceAlongFirstAxis(array2,start,stop-start)):sliceAlongFirstAxis(arrays,start,stop-start)}function sliceArraysByIndices(arrays,indices){return tidy(()=>arrays==null?null:Array.isArray(arrays)?arrays.map(array2=>sliceArraysByIndices(array2,indices)):gather2(arrays,indices.dtype==="int32"?indices:indices.toInt()))}function makeBatches(size,batchSize){let output=[],batchStart=0,batchEnd=null;for(;batchStart=size&&(batchEnd=size),output.push([batchStart,batchEnd]),batchStart=batchEnd;return output}async function fitLoop(model2,f,ins,outLabels,batchSize,epochs,verbose,callbacks2,valF,valIns,shuffle2,callbackMetrics,initialEpoch,stepsPerEpoch,validationSteps){batchSize==null&&(batchSize=32),epochs==null&&(epochs=1),shuffle2==null&&(shuffle2=!0),initialEpoch==null&&(initialEpoch=0);let doValidation=!1;if(valF!=null&&valIns!=null&&(doValidation=!0),validationSteps!=null&&(doValidation=!0,stepsPerEpoch==null))throw new ValueError("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let numTrainSamples=model2.checkNumSamples(ins,batchSize,stepsPerEpoch,"steps_per_epoch"),indexArray;numTrainSamples!=null&&(indexArray=range5(0,numTrainSamples)),verbose==null&&(verbose=1);let{callbackList,history}=configureCallbacks(callbacks2,verbose,epochs,initialEpoch,numTrainSamples,stepsPerEpoch,batchSize,doValidation,callbackMetrics);callbackList.setModel(model2),model2.history=history,await callbackList.onTrainBegin(),model2.stopTraining_=!1;for(let epoch=initialEpoch;epoch{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],batchIds=sliceAlongFirstAxis(epochIndexArray1D,batchStart,batchEnd-batchStart);batchLogs.batch=batchIndex,batchLogs.size=batchEnd-batchStart;let insBatch=sliceArraysByIndices(ins,batchIds),outs=f(insBatch);for(let i=0;i0){if(doValidation=!0,args.validationData.length===2)inputValX=args.validationData[0],inputValY=args.validationData[1];else throw args.validationData.length===3?new NotImplementedError("validationData including sample weights is not supported yet."):new ValueError(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${args.validationData} is invalid.`);let checkBatchAxis2=!0,valStandardized=await model2.standardizeUserData(inputValX,inputValY,null,null,checkBatchAxis2,batchSize);valX=valStandardized[0],valY=valStandardized[1],valIns=valX.concat(valY)}else if(args.validationSplit!=null&&args.validationSplit>0&&args.validationSplit<1){doValidation=!0;let splitAt=Math.floor(inputs[0].shape[0]*(1-args.validationSplit)),originalBatchSize=inputs[0].shape[0];valX=sliceArrays(inputs,splitAt,originalBatchSize),inputs=sliceArrays(inputs,0,splitAt),valY=sliceArrays(targets,splitAt,originalBatchSize),targets=sliceArrays(targets,0,splitAt),valIns=valX.concat(valY)}else args.validationSteps!=null&&(doValidation=!0);let ins=inputs.concat(targets).concat(sampleWeights);model2.checkTrainableWeightsConsistency();let trainFunction=model2.makeTrainFunction(),outLabels=model2.getDedupedMetricsNames(),valFunction,callbackMetrics;doValidation?(model2.makeTestFunction(),valFunction=model2.testFunction,callbackMetrics=outLabels.slice().concat(outLabels.map(n=>"val_"+n))):(valFunction=null,valIns=[],callbackMetrics=outLabels.slice());let callbacks2=standardizeCallbacks(args.callbacks,args.yieldEvery);return await fitLoop(model2,trainFunction,ins,outLabels,batchSize,args.epochs,args.verbose,callbacks2,valFunction,valIns,args.shuffle,callbackMetrics,args.initialEpoch,null,null)}finally{model2.isTraining=!1,disposeNewTensors(inputs,x),disposeNewTensors(targets,y),disposeNewTensors(valX,inputValX),disposeNewTensors(valY,inputValY),sampleWeights!=null&&dispose(sampleWeights)}}function ensureTensorsRank2OrHigher(tensors){let outs=[];tensors instanceof Tensor&&(tensors=[tensors]);for(let i=0;ioldTensorIds.push(t.id));else if(refTensors!=null)for(let name in refTensors){let oldTensor=refTensors[name];oldTensorIds.push(oldTensor.id)}let tensorsToDispose=[];if(tensors instanceof Tensor)oldTensorIds.indexOf(tensors.id)===-1&&tensorsToDispose.push(tensors);else if(Array.isArray(tensors))tensors.forEach(t=>{oldTensorIds.indexOf(t.id)===-1&&tensorsToDispose.push(t)});else if(tensors!=null)for(let name in tensors){let tensor2=tensors[name];oldTensorIds.indexOf(tensor2.id)===-1&&tensorsToDispose.push(tensor2)}tensorsToDispose.forEach(t=>{t.isDisposed||t.dispose()})}function isDataTensor(x){return x instanceof Tensor}function isDataArray(x){return Array.isArray(x)}function isDataDict(x){return!isDataTensor(x)&&!isDataArray(x)}function standardizeInputData(data2,names,shapes,checkBatchAxis=!0,exceptionPrefix=""){if(names==null||names.length===0){if(data2!=null){let gotUnexpectedData=!1;if(isDataArray(data2)&&data2.length>0)gotUnexpectedData=!0;else if(isDataDict(data2)){for(let key in data2)if(data2.hasOwnProperty(key)){gotUnexpectedData=!0;break}}else gotUnexpectedData=!0;if(gotUnexpectedData)throw new ValueError(`Error when checking model ${exceptionPrefix} expected no data, but got ${data2}`)}return[]}if(data2==null)return names.map(name=>null);let arrays;if(isDataDict(data2)){data2=data2,arrays=[];for(let name of names){if(data2[name]==null)throw new ValueError(`No data provided for "${name}". Need data for each key in: ${names}`);arrays.push(data2[name])}}else if(isDataArray(data2)){if(data2=data2,data2.length!==names.length)throw new ValueError(`Error when checking model ${exceptionPrefix}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${names.length} Tensor(s), but instead got the following list of Tensor(s): ${data2}`);arrays=data2}else{if(data2=data2,names.length>1)throw new ValueError(`The model ${exceptionPrefix} expects ${names.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${data2.shape}`);arrays=[data2]}if(arrays=ensureTensorsRank2OrHigher(arrays),shapes!=null)for(let i=0;i=0&&dim!==refDim)throw new ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} to have shape [${shapes[i]}], but got array with shape [${array2.shape}].`)}}return arrays}function checkArrayLengths(inputs,targets,weights){let setX=unique4(inputs.map(input2=>input2.shape[0]));setX.sort();let setY=unique4(targets.map(target=>target.shape[0]));if(setY.sort(),setX.length>1)throw new ValueError(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(inputs.map(input2=>input2.shape))}`);if(setY.length>1)throw new ValueError(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(targets.map(target=>target.shape))}`);if(setX.length>0&&setY.length>0&&!util_exports.arraysEqual(setX,setY))throw new ValueError(`Input Tensors should have the same number of samples as target Tensors. Found ${setX[0]} input sample(s) and ${setY[0]} target sample(s).`)}function checkLossAndTargetCompatibility(targets,lossFns,outputShapes){let keyLosses=[meanSquaredError2,binaryCrossentropy,categoricalCrossentropy];for(let i=0;i1)throw new ValueError(`The model expects ${names.length} ${exceptionPrefix} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(data2.shape)}.`);arrays=[data2]}if(shapes!=null)for(let i=0;i[]);let wrappedMetrics;if(typeof metrics2=="string"||typeof metrics2=="function")wrappedMetrics=[metrics2];else if(Array.isArray(metrics2)||typeof metrics2=="object")wrappedMetrics=metrics2;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${metrics2}`);if(Array.isArray(wrappedMetrics))return outputNames.map(name=>wrappedMetrics);{let nestedMetrics=[];for(let name of outputNames){let outputMetrics=wrappedMetrics.hasOwnProperty(name)?wrappedMetrics[name]:[];Array.isArray(outputMetrics)||(outputMetrics=[outputMetrics]),nestedMetrics.push(outputMetrics)}return nestedMetrics}}var LAYERS_MODEL_FORMAT_NAME="layers-model",LayersModel=class extends Container{constructor(args){super(args);this.isTraining=!1}summary(lineLength,positions,printFn=console.log){if(!this.built)throw new ValueError("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");printSummary(this,lineLength,positions,printFn)}compile(args){if(args.loss==null&&(args.loss=[]),this.loss=args.loss,typeof args.optimizer=="string")this.optimizer_=getOptimizer(args.optimizer),this.isOptimizerOwned=!0;else{if(!(args.optimizer instanceof Optimizer))throw new ValueError("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=args.optimizer,this.isOptimizerOwned=!1}let lossFunctions=[];if(!Array.isArray(args.loss)&&typeof args.loss!="string"&&typeof args.loss!="function"){args.loss=args.loss;for(let name in args.loss)if(this.outputNames.indexOf(name)===-1)throw new ValueError(`Unknown entry in loss dictionary: "${name}". Only expected the following keys: ${this.outputNames}`);for(let name of this.outputNames)args.loss[name]==null&&console.warn(`Output "${name}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${name} during training`),lossFunctions.push(get(args.loss[name]))}else if(Array.isArray(args.loss)){if(args.loss.length!==this.outputs.length)throw new ValueError(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${args.loss}.`);lossFunctions=args.loss.map(l=>get(l))}else{let lossFunction=get(args.loss);this.outputs.forEach(_=>{lossFunctions.push(lossFunction)})}this.lossFunctions=lossFunctions,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([weightedLoss,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let nestedMetrics=collectMetrics(args.metrics,this.outputNames),appendMetric=(outputIndex,metricName,metricTensor)=>{this.outputNames.length>1&&(metricName=this.outputNames[outputIndex]+"_"+metricName),this.metricsNames.push(metricName),this.metricsTensors.push([metricTensor,outputIndex])};nameScope("metric",()=>{for(let i=0;i{let metricNamePrefix="",metricName,accFn,weightedMetricFn;for(let metric of metrics2){if(typeof metric=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(metric)!==-1){let outputShape=this.internalOutputShapes[i];outputShape[outputShape.length-1]===1||this.lossFunctions[i]===binaryCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=binaryAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=binaryCrossentropy2):this.lossFunctions[i]===sparseCategoricalCrossentropy?["accuracy","acc"].indexOf(metric)!==-1?accFn=sparseCategoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=sparseCategoricalCrossentropy2):["accuracy","acc"].indexOf(metric)!==-1?accFn=categoricalAccuracy:["crossentropy","ce"].indexOf(metric)!==-1&&(accFn=categoricalCrossentropy2);let suffix;["accuracy","acc"].indexOf(metric)!==-1?suffix="acc":["crossentropy","ce"].indexOf(metric)!==-1&&(suffix="ce"),weightedMetricFn=accFn,metricName=metricNamePrefix+suffix}else weightedMetricFn=get2(metric),metricName=metricNamePrefix+getLossOrMetricName(metric);let metricResult;nameScope(metricName,()=>{metricResult=weightedMetricFn}),appendMetric(i,metricName,metricResult)}})(outputMetrics)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(x,y,args={}){let batchSize=args.batchSize==null?32:args.batchSize;checkBatchSize(batchSize);let checkBatchAxis=!0,standardizedOuts=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);try{let ins=standardizedOuts[0].concat(standardizedOuts[1]);this.makeTestFunction();let f=this.testFunction,testOuts=this.testLoop(f,ins,batchSize,args.verbose,args.steps);return singletonOrArray(testOuts)}finally{disposeNewTensors(standardizedOuts[0],x),disposeNewTensors(standardizedOuts[1],y)}}async evaluateDataset(dataset,args){return this.makeTestFunction(),evaluateDataset(this,dataset,args)}checkNumSamples(ins,batchSize,steps,stepsName="steps"){let numSamples;if(steps!=null){if(numSamples=null,batchSize!=null)throw new ValueError(`If ${stepsName} is set, batchSize must be null or undefined.Got batchSize = ${batchSize}`)}else if(ins!=null)Array.isArray(ins)?numSamples=ins[0].shape[0]:numSamples=ins.shape[0];else throw new ValueError(`Either the input data should have a defined shape, or ${stepsName} shoud be specified.`);return numSamples}execute(inputs,outputs){if(Array.isArray(outputs)&&outputs.length===0)throw new ValueError("`outputs` is an empty Array, which is not allowed.");let outputsIsArray=Array.isArray(outputs),outputNames=outputsIsArray?outputs:[outputs],outputSymbolicTensors=this.retrieveSymbolicTensors(outputNames),feedDict=new FeedDict;if(inputs instanceof Tensor&&(inputs=[inputs]),Array.isArray(inputs)){if(inputs.length!==this.inputs.length)throw new ValueError(`The number of inputs provided (${inputs.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let i=0;ioutput.name);for(let i=0;i0){let remainingNames=[];throw outputSymbolicTensors.forEach((tensor2,i)=>{tensor2==null&&remainingNames.push(symbolicTensorNames[i])}),new ValueError(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(remainingNames)}`)}return outputSymbolicTensors}predictLoop(ins,batchSize=32,verbose=!1){return tidy(()=>{let numSamples=this.checkNumSamples(ins);if(verbose)throw new NotImplementedError("Verbose predictLoop() is not implemented yet.");let batches=makeBatches(numSamples,batchSize),outsBatches=this.outputs.map(output=>[]);for(let batchIndex=0;batchIndex{let batchStart=batches[batchIndex][0],batchEnd=batches[batchIndex][1],insBatch=sliceArrays(ins,batchStart,batchEnd),feeds=[];if(Array.isArray(insBatch))for(let i=0;ioutsBatches[i].push(batchOut));return singletonOrArray(outsBatches.map(batches2=>concat(batches2,0)))})}predict(x,args={}){let xsRank2OrHigher=ensureTensorsRank2OrHigher(x);checkInputData(xsRank2OrHigher,this.inputNames,this.feedInputShapes,!1);try{let batchSize=args.batchSize==null?32:args.batchSize;return checkBatchSize(batchSize),this.predictLoop(xsRank2OrHigher,batchSize)}finally{disposeNewTensors(xsRank2OrHigher,x)}}predictOnBatch(x){checkInputData(x,this.inputNames,this.feedInputShapes,!0);let batchSize=(Array.isArray(x)?x[0]:x).shape[0];return this.predictLoop(x,batchSize)}standardizeUserDataXY(x,y,checkBatchAxis=!0,batchSize){if(this.optimizer_==null)throw new RuntimeError("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let outputShapes=[];for(let i=0;i0&&x[0].shape[0]%batchSize!=0)throw new ValueError(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${batchSize}. Found: ${x[0].shape[0]} sample(s).`);return[x,y]}async standardizeUserData(x,y,sampleWeight,classWeight,checkBatchAxis=!0,batchSize){let[standardXs,standardYs]=this.standardizeUserDataXY(x,y,checkBatchAxis,batchSize);if(sampleWeight!=null)throw new Error("sample weight is not supported yet.");let standardSampleWeights=null;if(classWeight!=null){let classWeights=standardizeClassWeights(classWeight,this.outputNames);standardSampleWeights=[];for(let i=0;i{let numSamples=this.checkNumSamples(ins,batchSize,steps,"steps"),outs=[];if(verbose>0)throw new NotImplementedError("Verbose mode is not implemented yet.");if(steps!=null)throw new NotImplementedError("steps mode in testLoop() is not implemented yet");{let batches=makeBatches(numSamples,batchSize),indexArray=tensor1d(range5(0,numSamples));for(let batchIndex=0;batchIndex1&&(newLabel+=`_${count(outLabels.slice(0,i),label)}`),dedupedOutLabels.push(newLabel)}return dedupedOutLabels}makeTrainFunction(){return data2=>{let lossValues=[],inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),sampleWeights=data2.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),metricsValues=[],totalLossFunction=()=>{let feeds=[];for(let i=0;i1&&i{totalLoss=add2(totalLoss,regularizerLoss)}),totalLoss},variables=this.collectedTrainableWeights.map(param=>param.read()),returnCost=!0;return[this.optimizer_.minimize(totalLossFunction,returnCost,variables)].concat(metricsValues)}}makeTestFunction(){this.testFunction=data2=>tidy(()=>{let valOutputs=[],totalLoss,inputs=data2.slice(0,this.inputs.length),targets=data2.slice(this.inputs.length,this.inputs.length+this.outputs.length),feeds=[];for(let i=0;itoSnakeCase(name))}else{let outputNames=Object.keys(this.loss);lossNames={};let losses4=this.loss;for(let outputName of outputNames)if(typeof losses4[outputName]=="string")lossNames[outputName]=toSnakeCase(losses4[outputName]);else throw new Error("Serialization of non-string loss is not supported.")}return lossNames}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[toSnakeCase(getLossOrMetricName(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(metric=>toSnakeCase(getLossOrMetricName(metric)));{let metricsIdentifiers={};for(let key in this.metrics)metricsIdentifiers[key]=toSnakeCase(getLossOrMetricName(this.metrics[key]));return metricsIdentifiers}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(trainingConfig){if(trainingConfig.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(trainingConfig.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(trainingConfig.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let tsConfig=convertPythonicToTs(trainingConfig.optimizer_config),optimizer=deserialize(tsConfig),loss;if(typeof trainingConfig.loss=="string")loss=toCamelCase(trainingConfig.loss);else if(Array.isArray(trainingConfig.loss))loss=trainingConfig.loss.map(lossEntry=>toCamelCase(lossEntry));else if(trainingConfig.loss!=null){loss={};for(let key in trainingConfig.loss)loss[key]=toCamelCase(trainingConfig.loss[key])}let metrics2;if(Array.isArray(trainingConfig.metrics))metrics2=trainingConfig.metrics.map(metric=>toCamelCase(metric));else if(trainingConfig.metrics!=null){metrics2={};for(let key in trainingConfig.metrics)metrics2[key]=toCamelCase(trainingConfig.metrics[key])}this.compile({loss,metrics:metrics2,optimizer})}async save(handlerOrURL,config2){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new ValueError(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new ValueError("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let weightDataAndSpecs=await io_exports.encodeWeights(this.getNamedWeights(config2)),returnString=!1,unusedArg=null,modelArtifacts={modelTopology:this.toJSON(unusedArg,returnString),format:LAYERS_MODEL_FORMAT_NAME,generatedBy:`TensorFlow.js tfjs-layers v${version10}`,convertedBy:null};if((config2==null?!1:config2.includeOptimizer)&&this.optimizer!=null){modelArtifacts.trainingConfig=this.getTrainingConfig();let weightType="optimizer",{data:optimizerWeightData,specs:optimizerWeightSpecs}=await io_exports.encodeWeights(await this.optimizer.getWeights(),weightType);weightDataAndSpecs.specs.push(...optimizerWeightSpecs),weightDataAndSpecs.data=io_exports.concatenateArrayBuffers([weightDataAndSpecs.data,optimizerWeightData])}if(this.userDefinedMetadata!=null){let checkSize=!0;checkUserDefinedMetadata(this.userDefinedMetadata,this.name,checkSize),modelArtifacts.userDefinedMetadata=this.userDefinedMetadata}return modelArtifacts.weightData=weightDataAndSpecs.data,modelArtifacts.weightSpecs=weightDataAndSpecs.specs,handlerOrURL.save(modelArtifacts)}setUserDefinedMetadata(userDefinedMetadata){checkUserDefinedMetadata(userDefinedMetadata,this.name),this.userDefinedMetadata=userDefinedMetadata}getUserDefinedMetadata(){return this.userDefinedMetadata}};LayersModel.className="Model";serialization_exports.registerClass(LayersModel);var Functional=class extends LayersModel{};Functional.className="Functional";serialization_exports.registerClass(Functional);async function modelFromJSON(modelAndWeightsConfig,customObjects){"modelTopology"in modelAndWeightsConfig||(modelAndWeightsConfig={modelTopology:modelAndWeightsConfig}),modelAndWeightsConfig=modelAndWeightsConfig;let modelTopology=modelAndWeightsConfig.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let tsConfig=convertPythonicToTs(modelTopology),model2=deserialize(tsConfig,customObjects);if(modelAndWeightsConfig.weightsManifest!=null){let weightValues=await io_exports.loadWeights(modelAndWeightsConfig.weightsManifest,modelAndWeightsConfig.pathPrefix,model2.weights.map(weight=>weight.originalName)),uniqueWeightValues={};for(let weight of model2.weights)uniqueWeightValues[weight.originalName]=weightValues[weight.originalName];model2.loadWeights(uniqueWeightValues),dispose(weightValues)}return model2}async function loadLayersModelInternal(pathOrIOHandler,options){if(options==null&&(options={}),typeof pathOrIOHandler=="string"){let handlers=io_exports.getLoadHandlers(pathOrIOHandler,options);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(pathOrIOHandler,options));else if(handlers.length>1)throw new ValueError(`Found more than one (${handlers.length}) load handlers for URL '${pathOrIOHandler}'`);pathOrIOHandler=handlers[0]}return loadLayersModelFromIOHandler(pathOrIOHandler,void 0,options)}async function loadLayersModelFromIOHandler(handler,customObjects,options){if(options==null&&(options={}),handler.load==null)throw new ValueError("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await handler.load(),modelTopology=artifacts.modelTopology;modelTopology.model_config!=null&&(modelTopology=modelTopology.model_config);let strict=options.strict==null?!0:options.strict,fastWeightInit=artifacts.weightData!=null&&artifacts.weightSpecs!=null&&strict,model2=deserialize(convertPythonicToTs(modelTopology),customObjects,fastWeightInit),trainingConfig=artifacts.trainingConfig;if(trainingConfig!=null&&model2.loadTrainingConfig(trainingConfig),artifacts.userDefinedMetadata!=null&&model2.setUserDefinedMetadata(artifacts.userDefinedMetadata),artifacts.weightData!=null){if(artifacts.weightSpecs==null)throw new ValueError("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights,optimizerWeights}=decodeModelAndOptimizerWeights(artifacts.weightData,artifacts.weightSpecs);model2.loadWeights(modelWeights,strict),model2.optimizer!=null&&optimizerWeights.length>0&&await model2.optimizer.setWeights(optimizerWeights),dispose(modelWeights),dispose(optimizerWeights.map(w=>w.tensor))}return model2}function decodeModelAndOptimizerWeights(buffer2,specs){let name2Tensor=io_exports.decodeWeights(buffer2,specs),modelWeights={},optimizerWeights=[];return specs.forEach(spec=>{spec.group==="optimizer"?optimizerWeights.push({name:spec.name,tensor:name2Tensor[spec.name]}):modelWeights[spec.name]=name2Tensor[spec.name]}),{modelWeights,optimizerWeights}}var Sequential=class extends LayersModel{constructor(args){super({inputs:[],outputs:[]});if(args=args||{},this.trainable=!0,this.built=!1,this.name=args.name!=null?args.name:getUid("sequential_"),args.layers!=null)for(let layer of args.layers)this.add(layer)}checkShape(layer){if(layer.inboundNodes[0].outputTensors[0].shape.some(x=>x<0))throw new ValueError(`Negative dimension size caused by adding layer ${layer.name} with input shape [${layer.inboundNodes[0].inputTensors[0].shape}]`)}add(layer){let isLayerModelInstance=layer instanceof Sequential||layer instanceof LayersModel,modelLayer;if(isLayerModelInstance){if(modelLayer=layer,modelLayer.outputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(modelLayer.inputs.length!==1)throw new ValueError("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(layer.inboundNodes.length===0){if(layer.batchInputShape==null)throw new ValueError("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let x=Input({batchShape:layer.batchInputShape,dtype:layer.dtype,name:layer.name+"_input"});layer.apply(x)}if(isLayerModelInstance)this.outputs=modelLayer.outputs,this.inputs=modelLayer.inputs;else{if(layer.inboundNodes.length!==1)throw new ValueError(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${layer.name} which has ${layer.inboundNodes.length} pre-existing inbound connections.`);if(layer.inboundNodes[0].outputTensors.length!==1)throw new ValueError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[layer.inboundNodes[0].outputTensors[0]],this.inputs=getSourceInputs(this.outputs[0])}this.inboundNodes=[],new Node({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:pyListRepeat(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(x=>x.shape),outputShapes:this.outputs[0].shape})}else{let outputTensor=layer.apply(this.outputs[0]);if(Array.isArray(outputTensor))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(layer),this.outputs=[outputTensor],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(layer),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let lastLayerIndex=this.layers.length-1;this.layers[lastLayerIndex].outboundNodes=[],this.outputs=[this.layers[lastLayerIndex].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(inputs,kwargs){return this.model==null&&this.build(),this.model.call(inputs,kwargs)}build(inputShape){if(getExactlyOneShape(inputShape),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new LayersModel({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(lineLength,positions,printFn=console.log){this.built||this.build(),super.summary(lineLength,positions,printFn)}setWeights(weights){this.model==null&&this.build(),this.model.setWeights(weights)}evaluate(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluate(x,y,args)}async evaluateDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.evaluateDataset(dataset,args)}predict(x,args={}){return this.model==null&&this.build(),this.model.predict(x,args)}predictOnBatch(x){return this.model==null&&this.build(),this.model.predictOnBatch(x)}compile(args){this.build(),this.model.compile(args),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(optimizer){this.model.optimizer=optimizer}async fit(x,y,args={}){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fit(x,y,args)}async fitDataset(dataset,args){if(!this.built)throw new RuntimeError("The model needs to be compiled before being used.");return this.model.fitDataset(dataset,args)}async trainOnBatch(x,y){return this.model.trainOnBatch(x,y)}static fromConfig(cls,config2,customObjects={},fastWeightInit=!1){let configArray,extraModelConfig={};if(config2 instanceof Array){if(config2[0].className==null||config2[0].className==="Merge")throw new ValueError("Legacy serialization format not supported yet.");configArray=config2}else util_exports.assert(config2.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),configArray=config2.layers,delete config2.layers,extraModelConfig=config2;let model2=new cls(extraModelConfig);if(!(model2 instanceof Sequential))throw new NotImplementedError(`Sequential.fromConfig called on non-Sequential input: ${model2}`);for(let conf of configArray){let layer=deserialize(conf,void 0,fastWeightInit);fastWeightInit&&layer.setFastWeightInitDuringBuild(!0),model2.add(layer)}return model2}set stopTraining(stop){if(this.model==null)throw new ValueError("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=stop}get stopTraining(){if(this.model==null)throw new ValueError("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let layers=[];for(let layer of this.layers){let dict={};dict.className=layer.getClassName(),dict.config=layer.getConfig(),layers.push(dict)}return{name:this.name,layers}}};Sequential.className="Sequential";serialization_exports.registerClass(Sequential);function model(args){return new LayersModel(args)}function sequential(config2){return new Sequential(config2)}function loadLayersModel(pathOrIOHandler,options){return options==null&&(options={}),loadLayersModelInternal(pathOrIOHandler,options)}function input(config2){return Input(config2)}function registerCallbackConstructor(verbosityLevel,callbackConstructor){CallbackConstructorRegistry.registerCallbackConstructor(verbosityLevel,callbackConstructor)}var Activation=class extends serialization_exports.Serializable{getConfig(){return{}}},Elu2=class extends Activation{apply(x,alpha=1){return elu4(x,alpha)}};Elu2.className="elu";serialization_exports.registerClass(Elu2);var Selu2=class extends Activation{apply(x){return selu(x)}};Selu2.className="selu";serialization_exports.registerClass(Selu2);var Relu2=class extends Activation{apply(x){return relu(x)}};Relu2.className="relu";serialization_exports.registerClass(Relu2);var Relu62=class extends Activation{apply(x){return tidy(()=>minimum(6,relu(x)))}};Relu62.className="relu6";serialization_exports.registerClass(Relu62);var Linear=class extends Activation{apply(x){return x}};Linear.className="linear";serialization_exports.registerClass(Linear);var Sigmoid2=class extends Activation{apply(x){return sigmoid(x)}};Sigmoid2.className="sigmoid";serialization_exports.registerClass(Sigmoid2);var HardSigmoid=class extends Activation{apply(x){return hardSigmoid(x)}};HardSigmoid.className="hardSigmoid";serialization_exports.registerClass(HardSigmoid);var Softplus2=class extends Activation{apply(x){return softplus(x)}};Softplus2.className="softplus";serialization_exports.registerClass(Softplus2);var Softsign=class extends Activation{apply(x){return softsign(x)}};Softsign.className="softsign";serialization_exports.registerClass(Softsign);var Tanh2=class extends Activation{apply(x){return tanh2(x)}};Tanh2.className="tanh";serialization_exports.registerClass(Tanh2);var Softmax2=class extends Activation{apply(x,axis=-1){return softmax(x,axis)}};Softmax2.className="softmax";serialization_exports.registerClass(Softmax2);var LogSoftmax2=class extends Activation{apply(x,axis=-1){return logSoftmax(x,axis)}};LogSoftmax2.className="logSoftmax";serialization_exports.registerClass(LogSoftmax2);var Swish=class extends Activation{apply(x,alpha=1){return tidy(()=>sigmoid(x.mul(alpha)).mul(x))}};Swish.className="swish";serialization_exports.registerClass(Swish);function serializeActivation(activation2){return activation2.getClassName()}function deserializeActivation(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"activation")}function getActivation(identifier){if(identifier==null){let config2={};return config2.className="linear",config2.config={},deserializeActivation(config2)}if(typeof identifier=="string"){let config2={};return config2.className=identifier,config2.config={},deserializeActivation(config2)}else return identifier instanceof Activation?identifier:deserializeActivation(identifier)}function assertObjectArgs(args){if(args!=null&&typeof args!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${args}`)}var Regularizer=class extends serialization_exports.Serializable{},L1L2=class extends Regularizer{constructor(args){super();assertObjectArgs(args),this.l1=args==null||args.l1==null?.01:args.l1,this.l2=args==null||args.l2==null?.01:args.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(x){return tidy(()=>{let regularization=zeros([1]);return this.hasL1&&(regularization=add2(regularization,sum2(mul(this.l1,abs(x))))),this.hasL2&&(regularization=add2(regularization,sum2(mul(this.l2,square3(x))))),regularization.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(cls,config2){return new cls({l1:config2.l1,l2:config2.l2})}};L1L2.className="L1L2";serialization_exports.registerClass(L1L2);function l1(args){return assertObjectArgs(args),new L1L2({l1:args!=null?args.l1:null,l2:0})}function l2(args){return assertObjectArgs(args),new L1L2({l2:args!=null?args.l2:null,l1:0})}var REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP={l1l2:"L1L2"};function serializeRegularizer(constraint){return serializeKerasObject(constraint)}function deserializeRegularizer(config2,customObjects={}){return deserializeKerasObject(config2,serialization_exports.SerializationMap.getMap().classNameMap,customObjects,"regularizer")}function getRegularizer(identifier){if(identifier==null)return null;if(typeof identifier=="string"){let config2={className:identifier in REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP?REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier]:identifier,config:{}};return deserializeRegularizer(config2)}else return identifier instanceof Regularizer?identifier:deserializeRegularizer(identifier)}var ReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null&&(this.maxValue=args.maxValue)}call(inputs,kwargs){inputs=getExactlyOneTensor(inputs);let output=relu(inputs);return this.maxValue!=null&&(output=clipByValue(output,0,this.maxValue)),output}computeOutputShape(inputShape){return inputShape}getConfig(){let config2={maxValue:this.maxValue},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};ReLU.className="ReLU";serialization_exports.registerClass(ReLU);var LeakyReLU=class extends Layer{constructor(args){super(args==null?{}:args);this.DEFAULT_ALPHA=.3,args==null&&(args={}),this.alpha=args.alpha==null?this.DEFAULT_ALPHA:args.alpha}call(inputs,kwargs){let x=getExactlyOneTensor(inputs);return leakyRelu(x,this.alpha)}computeOutputShape(inputShape){return inputShape}getConfig(){let config2={alpha:this.alpha},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};LeakyReLU.className="LeakyReLU";serialization_exports.registerClass(LeakyReLU);var PReLU=class extends Layer{constructor(args){super(args==null?{}:args);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",args==null&&(args={}),this.supportsMasking=!0,this.alphaInitializer=getInitializer(args.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=getRegularizer(args.alphaRegularizer),this.alphaConstraint=getConstraint(args.alphaConstraint),args.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(args.sharedAxes))this.sharedAxes=args.sharedAxes;else if(typeof args.sharedAxes=="number")this.sharedAxes=[args.sharedAxes];else throw new ValueError(`Expected sharedAxes to be a number or an array of numbers, but got ${args.sharedAxes}`)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let paramShape=inputShape.slice(1);if(this.sharedAxes!=null)for(let i of this.sharedAxes)paramShape[i-1]=1;this.alpha=this.addWeight("alpha",paramShape,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let axes={};if(this.sharedAxes!=null)for(let i=1;i(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,1]):x))}function preprocessConv3DInput(x,dataFormat){return tidy(()=>(checkDataFormat(dataFormat),dataFormat==="channelsFirst"?transpose(x,[0,2,3,4,1]):x))}function conv1dWithBias(x,kernel,bias,strides=1,padding="valid",dataFormat,dilationRate=1){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.shape.length!==3)throw new ValueError(`The input of a conv1dWithBias operation should be 3, but is ${x.shape.length} instead.`);if(kernel.shape.length!==3)throw new ValueError(`The kernel for a conv1dWithBias operation should be 3, but is ${kernel.shape.length} instead`);if(bias!=null&&bias.shape.length!==1)throw new ValueError(`The bias for a conv1dWithBias operation should be 1, but is ${kernel.shape.length} instead`);if(dataFormat==="channelsFirst"&&(x=transpose(x,[0,2,1])),padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let y=conv1d(x,kernel,strides,padding==="same"?"same":"valid","NWC",dilationRate);return bias!=null&&(y=biasAdd(y,bias)),y})}function conv2dWithBiasActivation(x,kernel,bias,strides=[1,1],padding="valid",dataFormat,dilationRate,activation2=null){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==3&&x.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${x.rank}.`);if(kernel.rank!==3&&kernel.rank!==4)throw new ValueError(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${x.rank}.`);let y=preprocessConv2DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return y=fused_ops_exports.conv2d({x:y,filter:kernel,strides,pad:padding==="same"?"same":"valid",dilations:dilationRate,dataFormat:"NHWC",bias,activation:activation2}),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function conv3dWithBias(x,kernel,bias,strides=[1,1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{if(dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat),x.rank!==4&&x.rank!==5)throw new ValueError(`conv3dWithBias expects input to be of rank 4 or 5, but received ${x.rank}.`);if(kernel.rank!==4&&kernel.rank!==5)throw new ValueError(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${x.rank}.`);let y=preprocessConv3DInput(x,dataFormat);if(padding==="causal")throw new NotImplementedError("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return y=conv3d(y,kernel,strides,padding==="same"?"same":"valid","NDHWC",dilationRate),bias!=null&&(y=biasAdd(y,bias)),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var BaseConv=class extends Layer{constructor(rank,args){super(args);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",BaseConv.verifyArgs(args),this.rank=rank,assertPositiveInteger(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new NotImplementedError(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=normalizeArray(args.kernelSize,rank,"kernelSize"),this.strides=normalizeArray(args.strides==null?1:args.strides,rank,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.activation=getActivation(args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=getConstraint(args.biasConstraint),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.dilationRate=normalizeArray(args.dilationRate==null?1:args.dilationRate,rank,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new ValueError(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new ValueError(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new ValueError(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(args){if(assert2("kernelSize"in args,"required key 'kernelSize' not in config"),typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,3))throw new ValueError(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(args.kernelSize)}.`)}getConfig(){let config2={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:serializeActivation(this.activation),useBias:this.useBias,biasInitializer:serializeInitializer(this.biasInitializer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},Conv=class extends BaseConv{constructor(rank,args){super(rank,args);this.kernel=null,Conv.verifyArgs(args),this.filters=args.filters,assertPositiveInteger(this.filters,"filters"),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([inputDim,this.filters]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[channelAxis]:inputDim}}],this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs,biasValue=this.bias==null?null:this.bias.read(),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName());if(fusedActivationName!=null&&this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate,fusedActivationName);else{if(this.rank===1)outputs=conv1dWithBias(inputs,this.kernel.read(),biasValue,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)outputs=conv2dWithBiasActivation(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)outputs=conv3dWithBias(inputs,this.kernel.read(),biasValue,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new NotImplementedError("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(outputs=this.activation.apply(outputs))}return outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let newSpace=[],space=this.dataFormat==="channelsLast"?inputShape.slice(1,inputShape.length-1):inputShape.slice(2);for(let i=0;i 0 but got ${JSON.stringify(args.filters)}`)}},Conv2D2=class extends Conv{constructor(args){super(2,args);Conv2D2.verifyArgs(args)}getConfig(){let config2=super.getConfig();return delete config2.rank,config2}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,2))throw new ValueError(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv2D2.className="Conv2D";serialization_exports.registerClass(Conv2D2);var Conv3D2=class extends Conv{constructor(args){super(3,args);Conv3D2.verifyArgs(args)}getConfig(){let config2=super.getConfig();return delete config2.rank,config2}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!(Array.isArray(args.kernelSize)&&(args.kernelSize.length===1||args.kernelSize.length===3)))throw new ValueError(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(args.kernelSize)}.`)}};Conv3D2.className="Conv3D";serialization_exports.registerClass(Conv3D2);var Conv2DTranspose=class extends Conv2D2{constructor(args){super(args);if(this.inputSpec=[new InputSpec({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new ValueError(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length!==4)throw new ValueError("Input should have rank 4; Received input shape: "+JSON.stringify(inputShape));let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError("The channel dimension of the inputs should be defined. Found `None`.");let inputDim=inputShape[channelAxis],kernelShape=this.kernelSize.concat([this.filters,inputDim]);this.kernel=this.addWeight("kernel",kernelShape,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new InputSpec({ndim:4,axes:{[channelAxis]:inputDim}})],this.built=!0}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);if(input2.shape.length!==4)throw new ValueError(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${input2.shape.length}`);let inputShape=input2.shape,batchSize=inputShape[0],hAxis,wAxis;this.dataFormat==="channelsFirst"?(hAxis=2,wAxis=3):(hAxis=1,wAxis=2);let height=inputShape[hAxis],width=inputShape[wAxis],kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1],outHeight=deconvLength(height,strideH,kernelH,this.padding),outWidth=deconvLength(width,strideW,kernelW,this.padding),outputShape=[batchSize,outHeight,outWidth,this.filters];this.dataFormat!=="channelsLast"&&(input2=transpose(input2,[0,2,3,1]));let outputs=conv2dTranspose(input2,this.kernel.read(),outputShape,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(outputs=transpose(outputs,[0,3,1,2])),this.bias!=null&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice(),channelAxis,heightAxis,widthAxis;this.dataFormat==="channelsFirst"?(channelAxis=1,heightAxis=2,widthAxis=3):(channelAxis=3,heightAxis=1,widthAxis=2);let kernelH=this.kernelSize[0],kernelW=this.kernelSize[1],strideH=this.strides[0],strideW=this.strides[1];return outputShape[channelAxis]=this.filters,outputShape[heightAxis]=deconvLength(outputShape[heightAxis],strideH,kernelH,this.padding),outputShape[widthAxis]=deconvLength(outputShape[widthAxis],strideW,kernelW,this.padding),outputShape}getConfig(){let config2=super.getConfig();return delete config2.dilationRate,config2}};Conv2DTranspose.className="Conv2DTranspose";serialization_exports.registerClass(Conv2DTranspose);var SeparableConv=class extends Conv{constructor(rank,config2){super(rank,config2);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,config2.filters==null)throw new ValueError("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(config2.kernelInitializer!=null||config2.kernelRegularizer!=null||config2.kernelConstraint!=null)throw new ValueError("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(config2.padding!=null&&config2.padding!=="same"&&config2.padding!=="valid")throw new ValueError(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(config2.padding)}`);this.depthMultiplier=config2.depthMultiplier==null?1:config2.depthMultiplier,this.depthwiseInitializer=getInitializer(config2.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=getRegularizer(config2.depthwiseRegularizer),this.depthwiseConstraint=getConstraint(config2.depthwiseConstraint),this.pointwiseInitializer=getInitializer(config2.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=getRegularizer(config2.pointwiseRegularizer),this.pointwiseConstraint=getConstraint(config2.pointwiseConstraint)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length{inputs=getExactlyOneTensor(inputs);let output;if(this.rank===1)throw new NotImplementedError("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(inputs=transpose(inputs,[0,2,3,1])),output=separableConv2d(inputs,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(output=biasAdd(output,this.bias.read(),this.dataFormat)),this.activation!=null&&(output=this.activation.apply(output)),this.dataFormat==="channelsFirst"&&(output=transpose(output,[0,3,1,2])),output})}getConfig(){let config2=super.getConfig();return delete config2.rank,delete config2.kernelInitializer,delete config2.kernelRegularizer,delete config2.kernelConstraint,config2.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config2.pointwiseInitializer=serializeInitializer(this.pointwiseInitializer),config2.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config2.pointwiseRegularizer=serializeRegularizer(this.pointwiseRegularizer),config2.depthwiseConstraint=serializeConstraint(this.depthwiseConstraint),config2.pointwiseConstraint=serializeConstraint(this.pointwiseConstraint),config2}};SeparableConv.className="SeparableConv";var SeparableConv2D=class extends SeparableConv{constructor(args){super(2,args)}};SeparableConv2D.className="SeparableConv2D";serialization_exports.registerClass(SeparableConv2D);var Conv1D=class extends Conv{constructor(args){super(1,args);Conv1D.verifyArgs(args),this.inputSpec=[{ndim:3}]}getConfig(){let config2=super.getConfig();return delete config2.rank,delete config2.dataFormat,config2}static verifyArgs(args){if(typeof args.kernelSize!="number"&&!checkArrayTypeAndLength(args.kernelSize,"number",1,1))throw new ValueError(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(args.kernelSize)}.`)}};Conv1D.className="Conv1D";serialization_exports.registerClass(Conv1D);var Cropping2D=class extends Layer{constructor(args){super(args);typeof args.cropping=="number"?this.cropping=[[args.cropping,args.cropping],[args.cropping,args.cropping]]:typeof args.cropping[0]=="number"?this.cropping=[[args.cropping[0],args.cropping[0]],[args.cropping[1],args.cropping[1]]]:this.cropping=args.cropping,this.dataFormat=args.dataFormat===void 0?"channelsLast":args.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(inputShape){return this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],inputShape[2]-this.cropping[0][0]-this.cropping[0][1],inputShape[3]-this.cropping[1][0]-this.cropping[1][1]]:[inputShape[0],inputShape[1]-this.cropping[0][0]-this.cropping[0][1],inputShape[2]-this.cropping[1][0]-this.cropping[1][1],inputShape[3]]}call(inputs,kwargs){return tidy(()=>{if(inputs=getExactlyOneTensor(inputs),this.dataFormat==="channelsLast"){let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let hSliced=sliceAlongAxis(inputs,this.cropping[0][0],inputs.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return sliceAlongAxis(hSliced,this.cropping[1][0],inputs.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let config2={cropping:this.cropping,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Cropping2D.className="Cropping2D";serialization_exports.registerClass(Cropping2D);var UpSampling2D=class extends Layer{constructor(args){super(args);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=args.size==null?this.DEFAULT_SIZE:args.size,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.interpolation=args.interpolation==null?"nearest":args.interpolation,checkInterpolationFormat(this.interpolation)}computeOutputShape(inputShape){if(this.dataFormat==="channelsFirst"){let height=inputShape[2]==null?null:this.size[0]*inputShape[2],width=inputShape[3]==null?null:this.size[1]*inputShape[3];return[inputShape[0],inputShape[1],height,width]}else{let height=inputShape[1]==null?null:this.size[0]*inputShape[1],width=inputShape[2]==null?null:this.size[1]*inputShape[2];return[inputShape[0],height,width,inputShape[3]]}}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs),inputShape=input2.shape;if(this.dataFormat==="channelsFirst"){input2=transpose(input2,[0,2,3,1]);let height=this.size[0]*inputShape[2],width=this.size[1]*inputShape[3],resized=this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width]);return transpose(resized,[0,3,1,2])}else{let height=this.size[0]*inputShape[1],width=this.size[1]*inputShape[2];return this.interpolation==="nearest"?input2.resizeNearestNeighbor([height,width]):input2.resizeBilinear([height,width])}})}getConfig(){let config2={size:this.size,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};UpSampling2D.className="UpSampling2D";serialization_exports.registerClass(UpSampling2D);function depthwiseConv2d4(x,depthwiseKernel,strides=[1,1],padding="valid",dataFormat,dilationRate){return tidy(()=>{dataFormat==null&&(dataFormat=imageDataFormat()),checkDataFormat(dataFormat);let y=preprocessConv2DInput(x,dataFormat);if(x.rank!==4)throw new ValueError(`Input for depthwiseConv2d is required to be 4-D, but is instead ${x.rank}-D`);if(depthwiseKernel.rank!==4)throw new ValueError(`depthwiseKernel is required to be 4-D, but is instead ${depthwiseKernel.rank}-D`);return y=depthwiseConv2d(y,depthwiseKernel,strides,padding==="same"?"same":"valid","NHWC",dilationRate),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}var DepthwiseConv2D=class extends BaseConv{constructor(args){super(2,args);this.depthwiseKernel=null,this.depthMultiplier=args.depthMultiplier==null?1:args.depthMultiplier,this.depthwiseInitializer=getInitializer(args.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=getConstraint(args.depthwiseConstraint),this.depthwiseRegularizer=getRegularizer(args.depthwiseRegularizer)}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<4)throw new ValueError(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(inputShape)}.`);let channelAxis=this.dataFormat==="channelsFirst"?1:3;if(inputShape[channelAxis]==null||inputShape[channelAxis]<0)throw new ValueError(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${inputShape[channelAxis]}).`);let inputDim=inputShape[channelAxis],depthwiseKernelShape=[this.kernelSize[0],this.kernelSize[1],inputDim,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",depthwiseKernelShape,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[inputDim*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{inputs=getExactlyOneTensor(inputs);let outputs=depthwiseConv2d4(inputs,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(outputs=biasAdd(outputs,this.bias.read(),this.dataFormat)),this.activation!=null&&(outputs=this.activation.apply(outputs)),outputs})}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],outFilters=this.dataFormat==="channelsFirst"?inputShape[1]*this.depthMultiplier:inputShape[3]*this.depthMultiplier,outRows=convOutputLength(rows,this.kernelSize[0],this.padding,this.strides[0]),outCols=convOutputLength(cols,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[inputShape[0],outFilters,outRows,outCols]:[inputShape[0],outRows,outCols,outFilters]}getConfig(){let config2=super.getConfig();return config2.depthMultiplier=this.depthMultiplier,config2.depthwiseInitializer=serializeInitializer(this.depthwiseInitializer),config2.depthwiseRegularizer=serializeRegularizer(this.depthwiseRegularizer),config2.depthwiseConstraint=serializeConstraint(this.depthwiseRegularizer),config2}};DepthwiseConv2D.className="DepthwiseConv2D";serialization_exports.registerClass(DepthwiseConv2D);function standardizeArgs(inputs,initialState,constants,numConstants){if(Array.isArray(inputs)){if(initialState!=null||constants!=null)throw new ValueError("When inputs is an array, neither initialState or constants should be provided");numConstants!=null&&(constants=inputs.slice(inputs.length-numConstants,inputs.length),inputs=inputs.slice(0,inputs.length-numConstants)),inputs.length>1&&(initialState=inputs.slice(1,inputs.length)),inputs=inputs[0]}function toListOrNull(x){return x==null||Array.isArray(x)?x:[x]}return initialState=toListOrNull(initialState),constants=toListOrNull(constants),{inputs,initialState,constants}}function rnn(stepFunction,inputs,initialStates,goBackwards=!1,mask,constants,unroll=!1,needPerStepOutputs=!1){return tidy(()=>{let ndim=inputs.shape.length;if(ndim<3)throw new ValueError(`Input should be at least 3D, but is ${ndim}D.`);let axes=[1,0].concat(range5(2,ndim));if(inputs=transpose(inputs,axes),constants!=null)throw new NotImplementedError("The rnn() functoin of the deeplearn.js backend does not support constants yet.");unroll&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),mask!=null&&(mask=mask.asType("bool").asType("float32"),mask.rank===ndim-1&&(mask=expandDims(mask,-1)),mask=transpose(mask,axes)),goBackwards&&(inputs=reverse(inputs,0),mask!=null&&(mask=reverse(mask,0)));let perStepOutputs=[],lastOutput,states=initialStates,timeSteps=inputs.shape[0],perStepInputs=unstack(inputs),perStepMasks;mask!=null&&(perStepMasks=unstack(mask));for(let t=0;tstepFunction(currentInput,states));if(mask==null)lastOutput=stepOutputs[0],states=stepOutputs[1];else{let maskedOutputs=tidy(()=>{let stepMask=perStepMasks[t],negStepMask=onesLike(stepMask).sub(stepMask),output=stepOutputs[0].mul(stepMask).add(states[0].mul(negStepMask)),newStates=states.map((state,i)=>stepOutputs[1][i].mul(stepMask).add(state.mul(negStepMask)));return{output,newStates}});lastOutput=maskedOutputs.output,states=maskedOutputs.newStates}needPerStepOutputs&&perStepOutputs.push(lastOutput)}let outputs;return needPerStepOutputs&&(outputs=stack(perStepOutputs,1)),[lastOutput,outputs,states]})}var RNN=class extends Layer{constructor(args){super(args);let cell;if(args.cell==null)throw new ValueError("cell property is missing for the constructor of RNN.");if(Array.isArray(args.cell)?cell=new StackedRNNCells({cells:args.cell}):cell=args.cell,cell.stateSize==null)throw new ValueError("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=cell,this.returnSequences=args.returnSequences==null?!1:args.returnSequences,this.returnState=args.returnState==null?!1:args.returnState,this.goBackwards=args.goBackwards==null?!1:args.goBackwards,this._stateful=args.stateful==null?!1:args.stateful,this.unroll=args.unroll==null?!1:args.unroll,this.supportsMasking=!0,this.inputSpec=[new InputSpec({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return range5(0,numStates).map(x=>null)}else return this.states_}setStates(states){this.states_=states}computeOutputShape(inputShape){isArrayOfShapes(inputShape)&&(inputShape=inputShape[0]),inputShape=inputShape;let stateSize=this.cell.stateSize;Array.isArray(stateSize)||(stateSize=[stateSize]);let outputDim=stateSize[0],outputShape;if(this.returnSequences?outputShape=[inputShape[0],inputShape[1],outputDim]:outputShape=[inputShape[0],outputDim],this.returnState){let stateShape=[];for(let dim of stateSize)stateShape.push([inputShape[0],dim]);return[outputShape].concat(stateShape)}else return outputShape}computeMask(inputs,mask){return tidy(()=>{Array.isArray(mask)&&(mask=mask[0]);let outputMask=this.returnSequences?mask:null;if(this.returnState){let stateMask=this.states.map(s=>null);return[outputMask].concat(stateMask)}else return outputMask})}get states(){if(this.states_==null){let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,output=[];for(let i=0;ispec.shape[spec.shape.length-1]),stateSize))throw new ValueError(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=stateSize.map(dim=>new InputSpec({shape:[null,dim]}));this.stateful&&this.resetStates()}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let batchSize=this.inputSpec[0].shape[0];if(batchSize==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_=[zeros([batchSize,this.cell.stateSize])];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(dim=>zeros([batchSize,dim])):this.states_[0]=zeros([batchSize,this.cell.stateSize]);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training===!0?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants;let additionalInputs=[],additionalSpecs=[];if(initialState!=null){kwargs.initialState=initialState,additionalInputs=additionalInputs.concat(initialState),this.stateSpec=[];for(let state of initialState)this.stateSpec.push(new InputSpec({shape:state.shape}));additionalSpecs=additionalSpecs.concat(this.stateSpec)}if(constants!=null&&(kwargs.constants=constants,additionalInputs=additionalInputs.concat(constants),this.numConstants=constants.length),additionalInputs[0]instanceof SymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;inputs=getExactlyOneTensor(inputs),initialState==null&&(this.stateful?initialState=this.states_:initialState=this.getInitialState(inputs));let numStates=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(initialState.length!==numStates)throw new ValueError(`RNN Layer has ${numStates} state(s) but was passed ${initialState.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let cellCallKwargs={training},rnnOutputs=rnn((inputs2,states2)=>{let outputs2=this.cell.call([inputs2].concat(states2),cellCallKwargs);return[outputs2[0],outputs2.slice(1)]},inputs,initialState,this.goBackwards,mask,null,this.unroll,this.returnSequences),lastOutput=rnnOutputs[0],outputs=rnnOutputs[1],states=rnnOutputs[2];this.stateful&&this.resetStates(states,training);let output=this.returnSequences?outputs:lastOutput;return this.returnState?[output].concat(states):output})}getInitialState(inputs){return tidy(()=>{let initialState=zeros(inputs.shape);return initialState=sum2(initialState,[1,2]),initialState=expandDims5(initialState),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(dim=>dim>1?tile5(initialState,[1,dim]):initialState):this.cell.stateSize>1?[tile5(initialState,[1,this.cell.stateSize])]:[initialState]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(value)}getConfig(){let baseConfig=super.getConfig(),config2={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(config2.numConstants=this.numConstants);let cellConfig=this.cell.getConfig();return this.getClassName()===RNN.className&&(config2.cell={className:this.cell.getClassName(),config:cellConfig}),Object.assign({},cellConfig,baseConfig,config2)}static fromConfig(cls,config2,customObjects={}){let cellConfig=config2.cell,cell=deserialize(cellConfig,customObjects);return new cls(Object.assign(config2,{cell}))}};RNN.className="RNN";serialization_exports.registerClass(RNN);var RNNCell=class extends Layer{},SimpleRNNCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation==null?this.DEFAULT_ACTIVATION:args.activation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape),this.kernel=this.addWeight("kernel",[inputShape[inputShape.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`SimpleRNNCell expects 2 input Tensors, got ${inputs.length}.`);let prevOutput=inputs[1];inputs=inputs[0];let training=kwargs.training==null?!1:kwargs.training;0onesLike(inputs),rate:this.dropout,training})),0onesLike(prevOutput),rate:this.recurrentDropout,training}));let h,dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask;dpMask!=null?h=dot2(mul(inputs,dpMask),this.kernel.read()):h=dot2(inputs,this.kernel.read()),this.bias!=null&&(h=biasAdd(h,this.bias.read())),recDpMask!=null&&(prevOutput=mul(prevOutput,recDpMask));let output=add2(h,dot2(prevOutput,this.recurrentKernel.read()));return this.activation!=null&&(output=this.activation.apply(output)),[output,output]})}getConfig(){let baseConfig=super.getConfig(),config2={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),recurrentInitializer:serializeInitializer(this.recurrentInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),recurrentRegularizer:serializeRegularizer(this.recurrentRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),recurrentConstraint:serializeConstraint(this.recurrentConstraint),biasConstraint:serializeConstraint(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},baseConfig,config2)}};SimpleRNNCell.className="SimpleRNNCell";serialization_exports.registerClass(SimpleRNNCell);var SimpleRNN=class extends RNN{constructor(args){args.cell=new SimpleRNNCell(args),super(args)}call(inputs,kwargs){return tidy(()=>{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config2){return new cls(config2)}};SimpleRNN.className="SimpleRNN";serialization_exports.registerClass(SimpleRNN);var GRUCell=class extends RNNCell{constructor(args){super(args);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.resetAfter)throw new ValueError("GRUCell does not support reset_after parameter set to true.");this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,inputs.length!==2)throw new ValueError(`GRUCell expects 2 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training==null?!1:kwargs.training,hTMinus1=inputs[1];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:3})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:3}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,z,r,hh;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config2){return config2.implmentation===0&&(config2.implementation=1),new cls(config2)}};GRU.className="GRU";serialization_exports.registerClass(GRU);var LSTMCell=class extends RNNCell{constructor(args){super(args);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation===void 0?this.DEFAULT_ACTIVATION:args.activation),this.recurrentActivation=getActivation(args.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:args.recurrentActivation),this.useBias=args.useBias==null?!0:args.useBias,this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=getInitializer(args.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=args.unitForgetBias,this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.recurrentRegularizer=getRegularizer(args.recurrentRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.kernelConstraint=getConstraint(args.kernelConstraint),this.recurrentConstraint=getConstraint(args.recurrentConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.dropout=min5([1,max5([0,args.dropout==null?0:args.dropout])]),this.recurrentDropout=min5([1,max5([0,args.recurrentDropout==null?0:args.recurrentDropout])]),this.implementation=args.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let inputDim=inputShape[inputShape.length-1];this.kernel=this.addWeight("kernel",[inputDim,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let biasInitializer;if(this.useBias){if(this.unitForgetBias){let capturedBiasInit=this.biasInitializer,capturedUnits=this.units;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let bI=capturedBiasInit.apply([capturedUnits]),bF=new Ones().apply([capturedUnits]),bCAndH=capturedBiasInit.apply([capturedUnits*2]);return concatAlongFirstAxis(concatAlongFirstAxis(bI,bF),bCAndH)}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training;if(inputs=inputs,inputs.length!==3)throw new ValueError(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let hTMinus1=inputs[1],cTMinus1=inputs[2];inputs=inputs[0],0onesLike(inputs),rate:this.dropout,training,count:4})),0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:4}));let dpMask=this.dropoutMask,recDpMask=this.recurrentDropoutMask,i,f,c,o;0{this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}static fromConfig(cls,config2){return config2.implmentation===0&&(config2.implementation=1),new cls(config2)}};LSTM.className="LSTM";serialization_exports.registerClass(LSTM);var StackedRNNCells=class extends RNNCell{constructor(args){super(args);this.cells=args.cells}get stateSize(){let stateSize=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?stateSize.push(...cell.stateSize):stateSize.push(cell.stateSize);return stateSize}call(inputs,kwargs){return tidy(()=>{inputs=inputs;let states=inputs.slice(1),nestedStates=[];for(let cell of this.cells.slice().reverse())Array.isArray(cell.stateSize)?nestedStates.push(states.splice(0,cell.stateSize.length)):nestedStates.push(states.splice(0,1));nestedStates.reverse();let newNestedStates=[],callInputs;for(let i=0;i{nameScope(`RNNCell_${i}`,()=>{cell.build(inputShape),Array.isArray(cell.stateSize)?outputDim=cell.stateSize[0]:outputDim=cell.stateSize,inputShape=[inputShape[0],outputDim]})}),this.built=!0}getConfig(){let baseConfig=super.getConfig(),getCellConfig=cell=>({className:cell.getClassName(),config:cell.getConfig()}),config2={cells:this.cells.map(getCellConfig)};return Object.assign({},baseConfig,config2)}static fromConfig(cls,config2,customObjects={}){let cells=[];for(let cellConfig of config2.cells)cells.push(deserialize(cellConfig,customObjects));return new cls({cells})}get trainableWeights(){if(!this.trainable)return[];let weights=[];for(let cell of this.cells)weights.push(...cell.trainableWeights);return weights}get nonTrainableWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.nonTrainableWeights);if(!this.trainable){let trainableWeights=[];for(let cell of this.cells)trainableWeights.push(...cell.trainableWeights);return trainableWeights.concat(weights)}return weights}getWeights(){let weights=[];for(let cell of this.cells)weights.push(...cell.weights);return batchGetValue(weights)}setWeights(weights){let tuples=[];for(let cell of this.cells){let numParams=cell.weights.length,inputWeights=weights.splice(numParams);for(let i=0;idropout2(ones4(),rate),createMask=()=>inTrainPhase(droppedInputs,ones4,training);return!count2||count2<=1?keep(createMask().clone()):Array(count2).fill(void 0).map(createMask).map(m=>keep(m.clone()))}var __rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i{if(this.cell.dropoutMask!=null&&(dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),kwargs&&kwargs.constants)throw new ValueError("ConvRNN2D cell does not support constants");let mask=kwargs==null?null:kwargs.mask,training=kwargs==null?null:kwargs.training,initialState=kwargs==null?null:kwargs.initialState;return super.call(inputs,{mask,training,initialState})})}computeOutputShape(inputShape){let outShape=this.computeSingleOutputShape(inputShape);return this.returnSequences||(outShape=[outShape[0],...outShape.slice(2)]),this.returnState&&(outShape=[outShape,...Array(2).fill([inputShape[0],...outShape.slice(-3)])]),outShape}getInitialState(inputs){return tidy(()=>{let{stateSize}=this.cell,inputShape=inputs.shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)],initialState=zeros(stateShape);return Array.isArray(stateSize)?Array(stateSize.length).fill(initialState):[initialState]})}resetStates(states,training=!1){tidy(()=>{if(!this.stateful)throw new AttributeError("Cannot call resetStates() on an RNN Layer that is not stateful.");let inputShape=this.inputSpec[0].shape,outputShape=this.computeSingleOutputShape(inputShape),stateShape=[outputShape[0],...outputShape.slice(2)];if(inputShape[0]==null)throw new ValueError("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_=[zeros(stateShape)];else if(states==null)dispose(this.states_),this.keptStates!=null&&(dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>zeros(stateShape)):this.states_[0]=zeros(stateShape);else{if(Array.isArray(states)||(states=[states]),states.length!==this.states_.length)throw new ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${states.length} state value(s). Input received: ${states}`);training?this.keptStates.push(this.states_.slice()):dispose(this.states_);for(let index=0;indexkeep(state.clone()))})}computeSingleOutputShape(inputShape){let{dataFormat,filters,kernelSize,padding,strides,dilationRate}=this.cell,isChannelsFirst=dataFormat==="channelsFirst",h=inputShape[isChannelsFirst?3:2],w=inputShape[isChannelsFirst?4:3],hOut=convOutputLength(h,kernelSize[0],padding,strides[0],dilationRate[0]),wOut=convOutputLength(w,kernelSize[1],padding,strides[1],dilationRate[1]);return[...inputShape.slice(0,2),...isChannelsFirst?[filters,hOut,wOut]:[hOut,wOut,filters]]}};ConvRNN2D.className="ConvRNN2D";var ConvLSTM2DCell=class extends LSTMCell{constructor(args){let{filters,kernelSize,strides,padding,dataFormat,dilationRate}=args;super(Object.assign({},args,{units:filters}));this.filters=filters,assertPositiveInteger(this.filters,"filters"),this.kernelSize=normalizeArray(kernelSize,2,"kernelSize"),this.kernelSize.forEach(size=>assertPositiveInteger(size,"kernelSize")),this.strides=normalizeArray(strides||1,2,"strides"),this.strides.forEach(stride=>assertPositiveInteger(stride,"strides")),this.padding=padding||"valid",checkPaddingMode(this.padding),this.dataFormat=dataFormat||"channelsLast",checkDataFormat(this.dataFormat),this.dilationRate=normalizeArray(dilationRate||1,2,"dilationRate"),this.dilationRate.forEach(rate=>assertPositiveInteger(rate,"dilationRate"))}build(inputShape){var _a;inputShape=getExactlyOneShape(inputShape);let channelAxis=this.dataFormat==="channelsFirst"?1:inputShape.length-1;if(inputShape[channelAxis]==null)throw new ValueError(`The channel dimension of the input should be defined. Found ${inputShape[channelAxis]}`);let inputDim=inputShape[channelAxis],numOfKernels=4,kernelShape=this.kernelSize.concat([inputDim,this.filters*numOfKernels]);this.kernel=this.addWeight("kernel",kernelShape,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let recurrentKernelShape=this.kernelSize.concat([this.filters,this.filters*numOfKernels]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",recurrentKernelShape,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let biasInitializer;if(this.unitForgetBias){let init2=this.biasInitializer,filters=this.filters;biasInitializer=new(_a=class extends Initializer{apply(shape,dtype){let biasI=init2.apply([filters]),biasF=ones2([filters]),biasCAndO=init2.apply([filters*2]);return concatenate([biasI,biasF,biasCAndO])}},_a.className="CustomInit",_a)}else biasInitializer=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*numOfKernels],null,biasInitializer,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(inputs,kwargs){return tidy(()=>{if(inputs.length!==3)throw new ValueError(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${inputs.length}.`);let training=kwargs.training||!1,x=inputs[0],hTMinus1=inputs[1],cTMinus1=inputs[2],numOfKernels=4;0onesLike(x),rate:this.dropout,training,count:numOfKernels}));let dropoutMask=this.dropoutMask,applyDropout=(x2,mask,index)=>!mask||!mask[index]?x2:mul(mask[index],x2),xI=applyDropout(x,dropoutMask,0),xF=applyDropout(x,dropoutMask,1),xC=applyDropout(x,dropoutMask,2),xO=applyDropout(x,dropoutMask,3);0onesLike(hTMinus1),rate:this.recurrentDropout,training,count:numOfKernels}));let recDropoutMask=this.recurrentDropoutMask,hI=applyDropout(hTMinus1,recDropoutMask,0),hF=applyDropout(hTMinus1,recDropoutMask,1),hC=applyDropout(hTMinus1,recDropoutMask,2),hO=applyDropout(hTMinus1,recDropoutMask,3),kernelChannelAxis=3,[kernelI,kernelF,kernelC,kernelO]=split(this.kernel.read(),numOfKernels,kernelChannelAxis),[biasI,biasF,biasC,biasO]=this.useBias?split(this.bias.read(),numOfKernels):[null,null,null,null];xI=this.inputConv(xI,kernelI,biasI,this.padding),xF=this.inputConv(xF,kernelF,biasF,this.padding),xC=this.inputConv(xC,kernelC,biasC,this.padding),xO=this.inputConv(xO,kernelO,biasO,this.padding);let[recKernelI,recKernelF,recKernelC,recKernelO]=split(this.recurrentKernel.read(),numOfKernels,kernelChannelAxis);hI=this.recurrentConv(hI,recKernelI),hF=this.recurrentConv(hF,recKernelF),hC=this.recurrentConv(hC,recKernelC),hO=this.recurrentConv(hO,recKernelO);let i=this.recurrentActivation.apply(add2(xI,hI)),f=this.recurrentActivation.apply(add2(xF,hF)),c=add2(mul(f,cTMinus1),mul(i,this.activation.apply(add2(xC,hC)))),h=mul(this.recurrentActivation.apply(add2(xO,hO)),this.activation.apply(c));return[h,h,c]})}getConfig(){let _a=super.getConfig(),{units:_}=_a,baseConfig=__rest(_a,["units"]),config2={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},baseConfig,config2)}inputConv(x,w,b,padding){let out=conv2d(x,w,this.strides,padding||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return b?biasAdd(out,b,this.dataFormat):out}recurrentConv(x,w){return conv2d(x,w,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};ConvLSTM2DCell.className="ConvLSTM2DCell";serialization_exports.registerClass(ConvLSTM2DCell);var ConvLSTM2D=class extends ConvRNN2D{constructor(args){let cell=new ConvLSTM2DCell(args);super(Object.assign({},args,{cell}))}static fromConfig(cls,config2){return new cls(config2)}};ConvLSTM2D.className="ConvLSTM2D";serialization_exports.registerClass(ConvLSTM2D);var Dropout=class extends Layer{constructor(args){super(args);this.rate=Math.max(Math.min(args.rate,1),0),this.noiseShape=args.noiseShape,this.seed=args.seed,this.supportsMasking=!0}getNoiseShape(input2){if(this.noiseShape==null)return this.noiseShape;let inputShape=input2.shape,noiseShape=[];for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(0dropout2(input2,this.rate,noiseShape,this.seed),()=>input2,training)}return inputs})}getConfig(){let config2={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}dispose(){return super.dispose()}};Dropout.className="Dropout";serialization_exports.registerClass(Dropout);var SpatialDropout1D=class extends Dropout{constructor(args){super(args);this.inputSpec=[{ndim:3}]}getNoiseShape(input2){let inputShape=input2.shape;return[inputShape[0],1,inputShape[2]]}};SpatialDropout1D.className="SpatialDropout1D";serialization_exports.registerClass(SpatialDropout1D);var Dense=class extends Layer{constructor(args){super(args);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",args.batchInputShape==null&&args.inputShape==null&&args.inputDim!=null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),this.batchInputShape=[batchSize,args.inputDim]}this.units=args.units,assertPositiveInteger(this.units,"units"),this.activation=getActivation(args.activation),args.useBias!=null&&(this.useBias=args.useBias),this.kernelInitializer=getInitializer(args.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=getInitializer(args.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=getConstraint(args.kernelConstraint),this.biasConstraint=getConstraint(args.biasConstraint),this.kernelRegularizer=getRegularizer(args.kernelRegularizer),this.biasRegularizer=getRegularizer(args.biasRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(inputShape){inputShape=getExactlyOneShape(inputShape);let inputLastDim=inputShape[inputShape.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[inputLastDim,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:inputLastDim}}],this.built=!0}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return outputShape[outputShape.length-1]=this.units,outputShape}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),fusedActivationName=mapActivationToFusedKernel(this.activation.getClassName()),output;return fusedActivationName!=null?output=dot2(input2,this.kernel.read(),fusedActivationName,this.bias?this.bias.read():null):(output=dot2(input2,this.kernel.read()),this.bias!=null&&(output=biasAdd(output,this.bias.read())),this.activation!=null&&(output=this.activation.apply(output))),output})}getConfig(){let config2={units:this.units,activation:serializeActivation(this.activation),useBias:this.useBias,kernelInitializer:serializeInitializer(this.kernelInitializer),biasInitializer:serializeInitializer(this.biasInitializer),kernelRegularizer:serializeRegularizer(this.kernelRegularizer),biasRegularizer:serializeRegularizer(this.biasRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),kernelConstraint:serializeConstraint(this.kernelConstraint),biasConstraint:serializeConstraint(this.biasConstraint)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Dense.className="Dense";serialization_exports.registerClass(Dense);var Flatten=class extends Layer{constructor(args){args=args||{},super(args),this.inputSpec=[{minNDim:3}],this.dataFormat=args.dataFormat}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);for(let dim of inputShape.slice(1))if(dim==null)throw new ValueError(`The shape of the input to "Flatten" is not fully defined (got ${inputShape.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[inputShape[0],arrayProd(inputShape,1)]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);if(this.dataFormat==="channelsFirst"&&input2.rank>1){let permutation=[0];for(let i=2;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.activation.apply(input2)})}getConfig(){let config2={activation:serializeActivation(this.activation)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Activation2.className="Activation";serialization_exports.registerClass(Activation2);var RepeatVector=class extends Layer{constructor(args){super(args);this.n=args.n,this.inputSpec=[{ndim:2}]}computeOutputShape(inputShape){return[inputShape[0],this.n,inputShape[1]]}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),repeat(inputs,this.n)))}getConfig(){let config2={n:this.n},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};RepeatVector.className="RepeatVector";serialization_exports.registerClass(RepeatVector);var Reshape2=class extends Layer{constructor(args){super(args);this.targetShape=args.targetShape;for(let i=0;i{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,outputShape=inputShape.slice(0,1).concat(this.fixUnknownDimension(inputShape.slice(1),this.targetShape));return input2.reshape(outputShape)})}getConfig(){let config2={targetShape:this.targetShape},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Reshape2.className="Reshape";serialization_exports.registerClass(Reshape2);var Permute=class extends Layer{constructor(args){super(args);if(args.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(args.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${args.dims} instead.`);let expectedSortedIndices=range5(1,args.dims.length+1);if(!util_exports.arraysEqual(args.dims.slice().sort(),expectedSortedIndices))throw new Error("Invalid permutation `dims`: "+JSON.stringify(args.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=args.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new InputSpec({ndim:this.dims.length+1})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let outputShape=inputShape.slice();return this.dims.forEach((dim,i)=>{outputShape[i+1]=inputShape[dim]}),outputShape}call(inputs,kwargs){return transpose(getExactlyOneTensor(inputs),this.dimsIncludingBatch)}getConfig(){let config2={dims:this.dims},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Permute.className="Permute";serialization_exports.registerClass(Permute);var Masking=class extends Layer{constructor(args){super(args==null?{}:args);this.supportsMasking=!0,args!=null?this.maskValue=args.maskValue==null?0:args.maskValue:this.maskValue=0}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={maskValue:this.maskValue};return Object.assign(config2,baseConfig),config2}computeMask(inputs,mask){let input2=getExactlyOneTensor(inputs),axis=-1;return any(notEqual(input2,this.maskValue),axis)}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs),axis=-1,keepDims=!0,booleanMask=any(notEqual(input2,this.maskValue),axis,keepDims);return input2.mul(booleanMask.asType(input2.dtype))})}};Masking.className="Masking";serialization_exports.registerClass(Masking);var Embedding=class extends Layer{constructor(args){super(args);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",args.batchInputShape==null&&args.inputShape==null){let batchSize=null;args.batchSize!=null&&(batchSize=args.batchSize),args.inputLength==null?this.batchInputShape=[batchSize,null]:this.batchInputShape=[batchSize].concat(toList(args.inputLength))}this.inputDim=args.inputDim,assertPositiveInteger(this.inputDim,"inputDim"),this.outputDim=args.outputDim,assertPositiveInteger(this.outputDim,"outputDim"),this.embeddingsInitializer=getInitializer(args.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=getRegularizer(args.embeddingsRegularizer),this.activityRegularizer=getRegularizer(args.activityRegularizer),this.embeddingsConstraint=getConstraint(args.embeddingsConstraint),this.maskZero=args.maskZero,this.supportsMasking=args.maskZero,this.inputLength=args.inputLength}build(inputShape){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(inputShape){}computeMask(inputs,mask){return tidy(()=>this.maskZero?(inputs=getExactlyOneTensor(inputs),notEqual(inputs,zerosLike(inputs))):null)}computeOutputShape(inputShape){if(inputShape=getExactlyOneShape(inputShape),this.inputLength==null)return[...inputShape,this.outputDim];let inLens=toList(this.inputLength);if(inLens.length!==inputShape.length-1)throw new ValueError(`"inputLength" is ${this.inputLength}, but received input shape has shape ${inputShape}`);{let i=0;for(let k=0;k{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return input2.dtype!=="int32"&&(input2=cast5(input2,"int32")),gather2(this.embeddings.read(),input2.as1D()).reshape(getExactlyOneShape(this.computeOutputShape(input2.shape)))})}getConfig(){let config2={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:serializeInitializer(this.embeddingsInitializer),embeddingsRegularizer:serializeRegularizer(this.embeddingsRegularizer),activityRegularizer:serializeRegularizer(this.activityRegularizer),embeddingsConstraint:serializeConstraint(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Embedding.className="Embedding";serialization_exports.registerClass(Embedding);var Merge=class extends Layer{constructor(args){super(args||{});this.supportsMasking=!0}mergeFunction(inputs){throw new NotImplementedError}computeElementwiseOpOutputShape(shape1,shape2){if(shape1==null||shape2==null)return null;if(shape1.length1)throw new ValueError(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(inputShape)}.`);let outputShape=inputShape[0]==null?null:inputShape[0].slice(1);for(let i=1;ishape.length);inputShape.indexOf(null)===-1&&unique4(allRanks).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(inputs,kwargs){return tidy(()=>{if(inputs=inputs,this.reshapeRequired){let reshapedInputs=[],inputDims=inputs.map(input2=>input2.rank);if(inputDims.indexOf(null)===-1){let maxNDim=max5(inputDims);for(let x of inputs){let xNDim=x.rank;for(let k=0;k1){let dims=range5(1,xNDim).concat([0]);reshapedInputs.push(transpose(x,dims)),transposed=!0}else reshapedInputs.push(x)}let y=this.mergeFunction(reshapedInputs),yNDim=y.rank;if(transposed){if(yNDim==null){let yShape=y.shape,yNDim2=yShape.length,batchSize=yShape[yNDim2-1],newShape=[batchSize].concat(yShape.slice(0,yShape.length-1));y=transpose(y.reshape([-1,batchSize]),[1,0]).reshape(newShape)}else if(yNDim>1){let dims=[yNDim-1].concat(range5(0,yNDim-1));y=transpose(y,dims)}}return y}}else return this.mergeFunction(inputs)})}computeOutputShape(inputShape){inputShape=inputShape;let outputShape;inputShape[0]==null?outputShape=null:outputShape=inputShape[0].slice(1);for(let i=1;i{if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an Array");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an Array");if(mask.length!==inputs.length)throw new ValueError(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${inputs.length} vs ${mask.length})`);if(mask.every(m=>m==null))return null;mask=mask.map(m=>m==null?m:expandDims(m,0));let output=mask[0];for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0].clone();for(let i=1;i{let output=inputs[0];for(let i=1;i{let output=inputs[0];for(let i=1;i1)throw new ValueError("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(inputShape))}mergeFunction(inputs){return tidy(()=>concatenate(inputs,this.axis))}computeOutputShape(inputShape){if(!(Array.isArray(inputShape)&&Array.isArray(inputShape[0])))throw new ValueError("A `Concatenate` layer should be called on a list of inputs.");let inputShapes=inputShape,outputShape=inputShapes[0].slice(),axis=this.axis<0?outputShape.length+this.axis:this.axis;for(let shape of inputShapes.slice(1)){if(outputShape[axis]==null||shape[axis]==null){outputShape[axis]=null;break}outputShape[axis]+=shape[axis]}return outputShape}computeMask(inputs,mask){if(mask==null)return null;if(!Array.isArray(mask))throw new ValueError("`mask` should be an array for Concatenate");if(!Array.isArray(inputs))throw new ValueError("`inputs` should be an array for Concatenate");if(mask.length!==inputs.length)throw new ValueError(`Mismatch in the length of mask (${mask.length}) and the legnth of inputs (${inputs.length})`);return tidy(()=>{let allNullMasks=!0;if(mask.forEach(m=>{if(m!=null){allNullMasks=!1;return}}),allNullMasks)return null;let outputMasks=[];for(let i=0;i3||y.shape.length>3)throw new NotImplementedError("batchDot is not implemented for tensors of 4D or higher rank yet");if(util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${x.shape.length}`),util_exports.assert(x.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${y.shape.length}`),typeof axes=="number"&&(axes=[axes,axes]),x.dtype==="complex64"||y.dtype==="complex64")throw new NotImplementedError("batchDot is not implemented for complex64-type Tensors yet.");let xNDim=x.shape.length,yNDim=y.shape.length;axes==null&&(axes=[xNDim-1,yNDim-2]);let axesArray=axes;return tidy(()=>{let diff;if(xNDim>yNDim){diff=xNDim-yNDim;let diffShape=[];for(let i=0;ixNDim){diff=yNDim-xNDim;let diffShape=[];for(let i=0;i0){let idx;xNDim>yNDim?idx=xNDim+yNDim-3:idx=xNDim-1;let squeezeAxes=[];for(let i=idx;i"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0],shape2=inputShape[1];if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);if(shape1[axes[0]]!==shape2[axes[1]])throw new ValueError(`Dimension incompatibility: ${shape1[axes[0]]} !== ${shape2[axes[1]]}`)}mergeFunction(inputs){if(inputs.length!==2)throw new ValueError(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${inputs.length} input(s).`);let x1=inputs[0],x2=inputs[1],axes;return Array.isArray(this.axes)?axes=this.axes.map((axis,i)=>interpretAxis(axis,inputs[i].shape.length)):axes=[interpretAxis(this.axes,x1.shape.length),interpretAxis(this.axes,x2.shape.length)],this.normalize&&(x1=l2Normalize(x1,axes[0]),x2=l2Normalize(x2,axes[1])),batchDot(x1,x2,axes)}interpretAxes(shape1,shape2){let axes;return Array.isArray(this.axes)?axes=this.axes:axes=[interpretAxis(this.axes,shape1.length),interpretAxis(this.axes,shape2.length)],axes}computeOutputShape(inputShape){util_exports.assert(Array.isArray(inputShape)&&inputShape.length===2&&Array.isArray(inputShape[0])&&Array.isArray(inputShape[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let shape1=inputShape[0].slice(),shape2=inputShape[1].slice();if(shape1.length>3||shape2.length>3)throw new NotImplementedError("Dot layer does not support tensors of 4D or higher rank yet.");let axes=this.interpretAxes(shape1,shape2);shape1.splice(axes[0],1),shape2.splice(axes[1],1),shape2.splice(0,1);let outputShape=shape1.concat(shape2);return outputShape.length===1&&outputShape.push(1),outputShape}computeMask(inputs,mask){return null}getConfig(){let config2={axes:this.axes,normalize:this.normalize},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};Dot.className="Dot";serialization_exports.registerClass(Dot);var GaussianNoise=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.stddev=args.stddev}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={stddev:this.stddev};return Object.assign(config2,baseConfig),config2}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return inTrainPhase(()=>randomNormal2(input2.shape,0,this.stddev).add(input2),()=>input2,kwargs.training||!1)})}};GaussianNoise.className="GaussianNoise";serialization_exports.registerClass(GaussianNoise);var GaussianDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={rate:this.rate};return Object.assign(config2,baseConfig),config2}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs);let input2=getExactlyOneTensor(inputs);return this.rate>0&&this.rate<1?inTrainPhase(()=>{let stddev=Math.sqrt(this.rate/(1-this.rate));return input2.mul(randomNormal2(input2.shape,1,stddev))},()=>input2,kwargs.training||!1):input2})}};GaussianDropout.className="GaussianDropout";serialization_exports.registerClass(GaussianDropout);var AlphaDropout=class extends Layer{constructor(args){super(args);this.supportsMasking=!0,this.rate=args.rate,this.noiseShape=args.noiseShape}_getNoiseShape(inputs){return this.noiseShape||getExactlyOneTensor(inputs).shape}computeOutputShape(inputShape){return inputShape}getConfig(){let baseConfig=super.getConfig(),config2={rate:this.rate};return Object.assign(config2,baseConfig),config2}call(inputs,kwargs){return tidy(()=>{if(this.rate<1&&this.rate>0){let noiseShape=this._getNoiseShape(inputs);return inTrainPhase(()=>{let input2=getExactlyOneTensor(inputs),alpha=1.6732632423543772,scale2=1.0507009873554805,alphaP=-alpha*scale2,keptIdx=greaterEqual(randomUniform(noiseShape),this.rate);keptIdx=cast5(keptIdx,"float32");let a=((1-this.rate)*(1+this.rate*alphaP**2))**-.5,b=-a*alphaP*this.rate;return input2.mul(keptIdx).add(keptIdx.add(-1).mul(alphaP)).mul(a).add(b)},()=>getExactlyOneTensor(inputs),kwargs.training||!1)}return inputs})}};AlphaDropout.className="AlphaDropout";serialization_exports.registerClass(AlphaDropout);function batchNormalization(x,mean4,variance,beta,gamma,epsilon3=.001){let out;if(x.rank===2)out=batchNorm2d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===3)out=batchNorm3d(x,mean4,variance,beta,gamma,epsilon3);else if(x.rank===4)out=batchNorm4d(x,mean4,variance,beta,gamma,epsilon3);else throw new NotImplementedError(`batchNormalization is not implemented for array of rank ${x.rank} yet`);return out}function regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance;return[batchNormalization(x,mean4,variance,beta,gamma,epsilon3),mean4,variance]})}function broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return tidy(()=>{let meanAndVariance=moments(x,reductionAxes),mean4=meanAndVariance.mean,variance=meanAndVariance.variance,targetShape=[];for(let axis of range5(0,x.rank))reductionAxes.indexOf(axis)!==-1?targetShape.push(1):targetShape.push(x.shape[axis]);let broadcastMean=mean4.reshape(targetShape),broadcastVariance=variance.reshape(targetShape),broadcastGamma=gamma==null?null:gamma.reshape(targetShape),broadcastBeta=beta==null?null:beta.reshape(targetShape);return[batchNormalization(x,broadcastMean,broadcastVariance,broadcastBeta,broadcastGamma,epsilon3),mean4,variance]})}function normalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3=.001){return util_exports.arraysEqual(reductionAxes.slice().sort(),range5(0,x.rank-1))?regularNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3):broadcastNormalizeBatchInTraining(x,gamma,beta,reductionAxes,epsilon3)}var BatchNormalization=class extends Layer{constructor(args){args==null&&(args={}),super(args),this.supportsMasking=!0,this.axis=args.axis==null?-1:args.axis,this.momentum=args.momentum==null?.99:args.momentum,this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.movingMeanInitializer=getInitializer(args.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=getInitializer(args.movingVarianceInitializer||"ones"),this.betaConstraint=getConstraint(args.betaConstraint),this.gammaConstraint=getConstraint(args.gammaConstraint),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer)}build(inputShape){inputShape=getExactlyOneShape(inputShape);let axis=this.axis>=0?this.axis:this.axis+inputShape.length,dim=inputShape[axis];if(dim==null)throw new ValueError(`Axis ${axis} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(inputShape)}.`);this.inputSpec=[new InputSpec({ndim:inputShape.length,axes:{[axis]:dim}})];let shape=[dim];this.scale&&(this.gamma=this.addWeight("gamma",shape,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",shape,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",shape,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",shape,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(inputs,kwargs){return tidy(()=>{let training=kwargs.training==null?!1:kwargs.training,input2=getExactlyOneTensor(inputs),inputShape=input2.shape,ndim=inputShape.length,reductionAxes=range5(0,ndim),axis=this.axis>=0?this.axis:this.axis+ndim;reductionAxes.splice(axis,1);let broadcastShape=pyListRepeat(1,ndim);broadcastShape[axis]=inputShape[axis];let sortedReductionAxes=reductionAxes.slice();sortedReductionAxes.sort();let needsBroadcasting=!util_exports.arraysEqual(sortedReductionAxes,range5(0,ndim).slice(0,ndim-1)),normalizeInference=()=>{if(needsBroadcasting){let broadcastMovingMean=this.movingMean.read().reshape(broadcastShape),broadcastMovingVariance=this.movingVariance.read().reshape(broadcastShape),broadcastBeta=this.center?this.beta.read().reshape(broadcastShape):null,broadcastGamma=this.scale?this.gamma.read().reshape(broadcastShape):null;return batchNormalization(input2,broadcastMovingMean,broadcastMovingVariance,broadcastBeta,broadcastGamma,this.epsilon)}else return batchNormalization(input2,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!training)return normalizeInference();let[normedTraining,mean4,variance]=normalizeBatchInTraining(input2,this.gamma.read(),this.beta.read(),reductionAxes,this.epsilon),doMovingAverage=(variable2,value,momentum)=>{tidy(()=>{let decay=1-momentum,origValue=variable2.read(),updateDelta=origValue.sub(value).mul(decay);variable2.write(origValue.sub(updateDelta))})};return(()=>{doMovingAverage(this.movingMean,mean4,this.momentum),doMovingAverage(this.movingVariance,variance,this.momentum)})(),normedTraining})}getConfig(){let config2={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:serializeInitializer(this.betaInitializer),gammaInitializer:serializeInitializer(this.gammaInitializer),movingMeanInitializer:serializeInitializer(this.movingMeanInitializer),movingVarianceInitializer:serializeInitializer(this.movingVarianceInitializer),betaRegularizer:serializeRegularizer(this.betaRegularizer),gammaRegularizer:serializeRegularizer(this.gammaRegularizer),betaConstraint:serializeConstraint(this.betaConstraint),gammaConstraint:serializeConstraint(this.gammaConstraint)},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};BatchNormalization.className="BatchNormalization";serialization_exports.registerClass(BatchNormalization);var LayerNormalization=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.axis=args.axis==null?-1:args.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let axis of this.axis)if(!Number.isInteger(axis))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=args.epsilon==null?.001:args.epsilon,this.center=args.center==null?!0:args.center,this.scale=args.scale==null?!0:args.scale,this.betaInitializer=getInitializer(args.betaInitializer||"zeros"),this.gammaInitializer=getInitializer(args.gammaInitializer||"ones"),this.betaRegularizer=getRegularizer(args.betaRegularizer),this.gammaRegularizer=getRegularizer(args.gammaRegularizer),this.supportsMasking=!0}build(inputShape){inputShape=getExactlyOneShape(inputShape);let nDims=inputShape.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=nDims)throw new Error(`Invalid axis: ${axis}`);if(this.axis.length!==unique4(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let paramShape=this.axis.map(axis=>inputShape[axis]),trainable=!0;this.scale?this.gamma=this.addWeight("gamma",paramShape,"float32",this.gammaInitializer,this.gammaRegularizer,trainable):this.gamma=null,this.center?this.beta=this.addWeight("beta",paramShape,"float32",this.betaInitializer,this.betaRegularizer,trainable):this.beta=null,this.built=!0}call(inputs,kwargs){let input2=getExactlyOneTensor(inputs),inputShape=input2.shape,nDims=inputShape.length;return tidy(()=>{let keepDims=!0,{mean:mean4,variance}=moments(input2,this.axis,keepDims),broadcastShape=pyListRepeat(1,nDims);for(let dim of this.axis)broadcastShape[dim]=inputShape[dim];let broadcast=v=>v!=null&&v.shape.length!==nDims&&this.axis!==[nDims-1]?v.reshape(broadcastShape):v,scale2=broadcast(this.gamma.read()),offset=broadcast(this.beta.read()),momentsTiling=[],scaleOffsetTiling=[];for(let i=0;i{if(x.rank!==4)throw new ValueError(`temporalPadding expects input tensor to be 4-D, but received a ${x.rank}-D tensor.`);if(padding==null&&(padding=[[1,1],[1,1]]),padding.length!==2||padding[0].length!==2||padding[1].length!==2)throw new ValueError("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(dataFormat==null&&(dataFormat=imageDataFormat()),dataFormat!=="channelsLast"&&dataFormat!=="channelsFirst")throw new ValueError(`Unknown data format: ${dataFormat}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let pattern;return dataFormat==="channelsFirst"?pattern=[[0,0],[0,0],padding[0],padding[1]]:pattern=[[0,0],padding[0],padding[1],[0,0]],pad(x,pattern)})}var ZeroPadding2D=class extends Layer{constructor(args){if(args==null&&(args={}),super(args),this.dataFormat=args.dataFormat==null?imageDataFormat():args.dataFormat,args.padding==null)this.padding=[[1,1],[1,1]];else if(typeof args.padding=="number")this.padding=[[args.padding,args.padding],[args.padding,args.padding]];else{if(args.padding=args.padding,args.padding.length!==2)throw new ValueError(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${args.padding.length} array.`);let heightPadding,widthPadding;if(typeof args.padding[0]=="number")heightPadding=[args.padding[0],args.padding[0]],widthPadding=[args.padding[1],args.padding[1]];else{if(args.padding=args.padding,args.padding[0].length!==2)throw new ValueError(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${args.padding[0].length} array.`);if(heightPadding=args.padding[0],args.padding[1].length!==2)throw new ValueError(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${args.padding[1].length} array.`);widthPadding=args.padding[1]}this.padding=[heightPadding,widthPadding]}this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows,cols;return this.dataFormat==="channelsFirst"?(inputShape[2]!=null&&inputShape[2]>=0?rows=inputShape[2]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[3]!=null&&inputShape[3]>=0?cols=inputShape[3]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],inputShape[1],rows,cols]):(inputShape[1]!=null&&inputShape[1]>=0?rows=inputShape[1]+this.padding[0][0]+this.padding[0][1]:rows=null,inputShape[2]!=null&&inputShape[2]>=0?cols=inputShape[2]+this.padding[1][0]+this.padding[1][1]:cols=null,[inputShape[0],rows,cols,inputShape[3]])}call(inputs,kwargs){return tidy(()=>spatial2dPadding(getExactlyOneTensor(inputs),this.padding,this.dataFormat))}getConfig(){let config2={padding:this.padding,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}};ZeroPadding2D.className="ZeroPadding2D";serialization_exports.registerClass(ZeroPadding2D);function pool2d(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv2DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool(x,poolSize,strides,paddingString):y=avgPool(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,3,1,2])),y})}function pool3d2(x,poolSize,strides,padding,dataFormat,poolMode){return tidy(()=>{checkDataFormat(dataFormat),checkPoolMode(poolMode),checkPaddingMode(padding),strides==null&&(strides=[1,1,1]),padding==null&&(padding="valid"),dataFormat==null&&(dataFormat=imageDataFormat()),poolMode==null&&(poolMode="max"),x=preprocessConv3DInput(x,dataFormat);let y,paddingString=padding==="same"?"same":"valid";return poolMode==="max"?y=maxPool3d(x,poolSize,strides,paddingString):y=avgPool3d(x,poolSize,strides,paddingString),dataFormat==="channelsFirst"&&(y=transpose(y,[0,4,1,2,3])),y})}var Pooling1D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=2),super(args),typeof args.poolSize=="number")this.poolSize=[args.poolSize];else if(Array.isArray(args.poolSize)&&args.poolSize.length===1&&typeof args.poolSize[0]=="number")this.poolSize=args.poolSize;else throw new ValueError(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.poolSize)}`);if(assertPositiveInteger(this.poolSize,"poolSize"),args.strides==null)this.strides=this.poolSize;else if(typeof args.strides=="number")this.strides=[args.strides];else if(Array.isArray(args.strides)&&args.strides.length===1&&typeof args.strides[0]=="number")this.strides=args.strides;else throw new ValueError(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(args.strides)}`);assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let length=convOutputLength(inputShape[1],this.poolSize[0],this.padding,this.strides[0]);return[inputShape[0],length,inputShape[2]]}call(inputs,kwargs){return tidy(()=>{this.invokeCallHook(inputs,kwargs),inputs=expandDims5(getExactlyOneTensor(inputs),2);let output=this.poolingFunction(getExactlyOneTensor(inputs),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return squeeze(output,[2])})}getConfig(){let config2={poolSize:this.poolSize,padding:this.padding,strides:this.strides},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},MaxPooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling1D.className="MaxPooling1D";serialization_exports.registerClass(MaxPooling1D);var AveragePooling1D=class extends Pooling1D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling1D.className="AveragePooling1D";serialization_exports.registerClass(AveragePooling1D);var Pooling2D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==2)throw new ValueError(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let rows=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],cols=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2];return rows=convOutputLength(rows,this.poolSize[0],this.padding,this.strides[0]),cols=convOutputLength(cols,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],rows,cols]:[inputShape[0],rows,cols,inputShape[3]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config2={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},MaxPooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling2D.className="MaxPooling2D";serialization_exports.registerClass(MaxPooling2D);var AveragePooling2D=class extends Pooling2D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool2d(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling2D.className="AveragePooling2D";serialization_exports.registerClass(AveragePooling2D);var Pooling3D=class extends Layer{constructor(args){if(args.poolSize==null&&(args.poolSize=[2,2,2]),super(args),this.poolSize=Array.isArray(args.poolSize)?args.poolSize:[args.poolSize,args.poolSize,args.poolSize],args.strides==null)this.strides=this.poolSize;else if(Array.isArray(args.strides)){if(args.strides.length!==3)throw new ValueError(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${args.strides.length}.`);this.strides=args.strides}else this.strides=[args.strides,args.strides,args.strides];assertPositiveInteger(this.poolSize,"poolSize"),assertPositiveInteger(this.strides,"strides"),this.padding=args.padding==null?"valid":args.padding,this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),checkPaddingMode(this.padding),this.inputSpec=[new InputSpec({ndim:5})]}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let depths=this.dataFormat==="channelsFirst"?inputShape[2]:inputShape[1],rows=this.dataFormat==="channelsFirst"?inputShape[3]:inputShape[2],cols=this.dataFormat==="channelsFirst"?inputShape[4]:inputShape[3];return depths=convOutputLength(depths,this.poolSize[0],this.padding,this.strides[0]),rows=convOutputLength(rows,this.poolSize[1],this.padding,this.strides[1]),cols=convOutputLength(cols,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[inputShape[0],inputShape[1],depths,rows,cols]:[inputShape[0],depths,rows,cols,inputShape[4]]}call(inputs,kwargs){return tidy(()=>(this.invokeCallHook(inputs,kwargs),this.poolingFunction(getExactlyOneTensor(inputs),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let config2={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},MaxPooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"max")}};MaxPooling3D.className="MaxPooling3D";serialization_exports.registerClass(MaxPooling3D);var AveragePooling3D=class extends Pooling3D{constructor(args){super(args)}poolingFunction(inputs,poolSize,strides,padding,dataFormat){return checkDataFormat(dataFormat),checkPaddingMode(padding),pool3d2(inputs,poolSize,strides,padding,dataFormat,"avg")}};AveragePooling3D.className="AveragePooling3D";serialization_exports.registerClass(AveragePooling3D);var GlobalPooling1D=class extends Layer{constructor(args){super(args);this.inputSpec=[new InputSpec({ndim:3})]}computeOutputShape(inputShape){return[inputShape[0],inputShape[2]]}call(inputs,kwargs){throw new NotImplementedError}},GlobalAveragePooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return mean(input2,1)})}};GlobalAveragePooling1D.className="GlobalAveragePooling1D";serialization_exports.registerClass(GlobalAveragePooling1D);var GlobalMaxPooling1D=class extends GlobalPooling1D{constructor(args){super(args||{})}call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return max(input2,1)})}};GlobalMaxPooling1D.className="GlobalMaxPooling1D";serialization_exports.registerClass(GlobalMaxPooling1D);var GlobalPooling2D=class extends Layer{constructor(args){super(args);this.dataFormat=args.dataFormat==null?"channelsLast":args.dataFormat,checkDataFormat(this.dataFormat),this.inputSpec=[new InputSpec({ndim:4})]}computeOutputShape(inputShape){return inputShape=inputShape,this.dataFormat==="channelsLast"?[inputShape[0],inputShape[3]]:[inputShape[0],inputShape[1]]}call(inputs,kwargs){throw new NotImplementedError}getConfig(){let config2={dataFormat:this.dataFormat},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}},GlobalAveragePooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?mean(input2,[1,2]):mean(input2,[2,3])})}};GlobalAveragePooling2D.className="GlobalAveragePooling2D";serialization_exports.registerClass(GlobalAveragePooling2D);var GlobalMaxPooling2D=class extends GlobalPooling2D{call(inputs,kwargs){return tidy(()=>{let input2=getExactlyOneTensor(inputs);return this.dataFormat==="channelsLast"?max(input2,[1,2]):max(input2,[2,3])})}};GlobalMaxPooling2D.className="GlobalMaxPooling2D";serialization_exports.registerClass(GlobalMaxPooling2D);var Wrapper=class extends Layer{constructor(args){super(args);this.layer=args.layer}build(inputShape){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(value){this.layer!=null&&(this.layer.trainable=value)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(weights){this.layer.setWeights(weights)}getConfig(){let config2={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(value)}static fromConfig(cls,config2,customObjects={}){let layerConfig=config2.layer,layer=deserialize(layerConfig,customObjects);delete config2.layer;let newConfig={layer};return Object.assign(newConfig,config2),new cls(newConfig)}},TimeDistributed=class extends Wrapper{constructor(args){super(args);this.supportsMasking=!0}build(inputShape){if(inputShape=getExactlyOneShape(inputShape),inputShape.length<3)throw new ValueError(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(inputShape)}`);this.inputSpec=[{shape:inputShape}];let childInputShape=[inputShape[0]].concat(inputShape.slice(2));this.layer.built||(this.layer.build(childInputShape),this.layer.built=!0),super.build(inputShape)}computeOutputShape(inputShape){inputShape=getExactlyOneShape(inputShape);let childInputShape=[inputShape[0]].concat(inputShape.slice(2)),childOutputShape=this.layer.computeOutputShape(childInputShape),timesteps=inputShape[1];return[childOutputShape[0],timesteps].concat(childOutputShape.slice(1))}call(inputs,kwargs){return tidy(()=>(inputs=getExactlyOneTensor(inputs),rnn((inputs2,states)=>[getExactlyOneTensor(this.layer.call(inputs2,kwargs)),[]],inputs,[],!1,null,null,!1,!0)[1]))}};TimeDistributed.className="TimeDistributed";serialization_exports.registerClass(TimeDistributed);function checkBidirectionalMergeMode(value){checkStringTypeUnionValue(VALID_BIDIRECTIONAL_MERGE_MODES,"BidirectionalMergeMode",value)}var DEFAULT_BIDIRECTIONAL_MERGE_MODE="concat",Bidirectional=class extends Wrapper{constructor(args){super(args);let layerConfig=args.layer.getConfig(),forwDict={};forwDict.className=args.layer.getClassName(),forwDict.config=layerConfig,this.forwardLayer=deserialize(forwDict),layerConfig.goBackwards=layerConfig.goBackwards!==!0;let backDict={};if(backDict.className=args.layer.getClassName(),backDict.config=layerConfig,this.backwardLayer=deserialize(backDict),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=args.mergeMode===void 0?DEFAULT_BIDIRECTIONAL_MERGE_MODE:args.mergeMode,checkBidirectionalMergeMode(this.mergeMode),args.weights)throw new NotImplementedError("weights support is not implemented for Bidirectional layer yet.");this._stateful=args.layer.stateful,this.returnSequences=args.layer.returnSequences,this.returnState=args.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=args.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(value){this._trainable=value,this.forwardLayer!=null&&(this.forwardLayer.trainable=value),this.backwardLayer!=null&&(this.backwardLayer.trainable=value)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(weights){let numWeights=weights.length,numeightsOver2=Math.floor(numWeights/2);this.forwardLayer.setWeights(weights.slice(0,numeightsOver2)),this.backwardLayer.setWeights(weights.slice(numeightsOver2))}computeOutputShape(inputShape){let layerShapes=this.forwardLayer.computeOutputShape(inputShape);Array.isArray(layerShapes)&&Array.isArray(layerShapes[0])||(layerShapes=[layerShapes]),layerShapes=layerShapes;let outputShape,outputShapes,stateShape;return this.returnState&&(stateShape=layerShapes.slice(1)),outputShape=layerShapes[0],outputShape=outputShape,this.mergeMode==="concat"?(outputShape[outputShape.length-1]*=2,outputShapes=[outputShape]):this.mergeMode==null?outputShapes=[outputShape,outputShape.slice()]:outputShapes=[outputShape],this.returnState?this.mergeMode==null?outputShapes.concat(stateShape).concat(stateShape.slice()):[outputShape].concat(stateShape).concat(stateShape.slice()):singletonOrArray(outputShapes)}apply(inputs,kwargs){let initialState=kwargs==null?null:kwargs.initialState,constants=kwargs==null?null:kwargs.constants;kwargs==null&&(kwargs={});let standardized=standardizeArgs(inputs,initialState,constants,this.numConstants);if(inputs=standardized.inputs,initialState=standardized.initialState,constants=standardized.constants,Array.isArray(inputs)&&(initialState=inputs.slice(1),inputs=inputs[0]),(initialState==null||initialState.length===0)&&constants==null)return super.apply(inputs,kwargs);let additionalInputs=[],additionalSpecs=[];if(initialState!=null){let numStates=initialState.length;if(numStates%2>0)throw new ValueError("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");kwargs.initialState=initialState,additionalInputs.push(...initialState);let stateSpecs=initialState.map(state=>new InputSpec({shape:state.shape}));this.forwardLayer.stateSpec=stateSpecs.slice(0,numStates/2),this.backwardLayer.stateSpec=stateSpecs.slice(numStates/2),additionalSpecs.push(...stateSpecs)}if(constants!=null)throw new NotImplementedError("Support for constants in Bidirectional layers is not implemented yet.");let isSymbolicTensor=additionalInputs[0]instanceof SymbolicTensor;for(let tensor2 of additionalInputs)if(tensor2 instanceof SymbolicTensor!==isSymbolicTensor)throw new ValueError("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(isSymbolicTensor){let fullInput=[inputs].concat(additionalInputs),fullInputSpec=this.inputSpec.concat(additionalSpecs),originalInputSpec=this.inputSpec;this.inputSpec=fullInputSpec;let output=super.apply(fullInput,kwargs);return this.inputSpec=originalInputSpec,output}else return super.apply(inputs,kwargs)}call(inputs,kwargs){return tidy(()=>{let initialState=kwargs.initialState,y,yRev;if(initialState==null)y=this.forwardLayer.call(inputs,kwargs),yRev=this.backwardLayer.call(inputs,kwargs);else{let forwardState=initialState.slice(0,initialState.length/2),backwardState=initialState.slice(initialState.length/2);y=this.forwardLayer.call(inputs,Object.assign(kwargs,{initialState:forwardState})),yRev=this.backwardLayer.call(inputs,Object.assign(kwargs,{initialState:backwardState}))}let states;this.returnState&&(Array.isArray(y)&&(states=y.slice(1).concat(yRev.slice(1))),y=y[0],yRev=yRev[0]),this.returnSequences&&(yRev=reverse(yRev,1));let output;return this.mergeMode==="concat"?output=concatenate([y,yRev]):this.mergeMode==="sum"?output=add2(y,yRev):this.mergeMode==="ave"?output=mul(.5,add2(y,yRev)):this.mergeMode==="mul"?output=mul(y,yRev):this.mergeMode==null&&(output=[y,yRev]),this.returnState?this.mergeMode==null?output.concat(states):[output].concat(states):output})}resetStates(states){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(inputShape){nameScope(this.forwardLayer.name,()=>{this.forwardLayer.build(inputShape)}),nameScope(this.backwardLayer.name,()=>{this.backwardLayer.build(inputShape)}),this.built=!0}computeMask(inputs,mask){Array.isArray(mask)&&(mask=mask[0]);let outputMask;if(this.returnSequences?this.mergeMode==null?outputMask=[mask,mask]:outputMask=mask:this.mergeMode==null?outputMask=[null,null]:outputMask=null,this.returnState){let stateMask=this.forwardLayer.states.map(state=>null);return Array.isArray(outputMask)?outputMask.concat(stateMask).concat(stateMask):[outputMask].concat(stateMask).concat(stateMask)}else return outputMask}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(value){super.setFastWeightInitDuringBuild(value),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(value),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(value)}getConfig(){let config2={mergeMode:this.mergeMode},baseConfig=super.getConfig();return Object.assign(config2,baseConfig),config2}static fromConfig(cls,config2){let rnnLayer=deserialize(config2.layer);if(delete config2.layer,config2.numConstants!=null)throw new NotImplementedError("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let newConfig=config2;return newConfig.layer=rnnLayer,new cls(newConfig)}};Bidirectional.className="Bidirectional";serialization_exports.registerClass(Bidirectional);function inputLayer(args){return new InputLayer(args)}function elu5(args){return new ELU4(args)}function reLU(args){return new ReLU(args)}function leakyReLU(args){return new LeakyReLU(args)}function prelu5(args){return new PReLU(args)}function softmax5(args){return new Softmax3(args)}function thresholdedReLU(args){return new ThresholdedReLU(args)}function conv1d2(args){return new Conv1D(args)}function conv2d5(args){return new Conv2D2(args)}function conv2dTranspose2(args){return new Conv2DTranspose(args)}function conv3d2(args){return new Conv3D2(args)}function separableConv2d2(args){return new SeparableConv2D(args)}function cropping2D(args){return new Cropping2D(args)}function upSampling2d(args){return new UpSampling2D(args)}function depthwiseConv2d5(args){return new DepthwiseConv2D(args)}function activation(args){return new Activation2(args)}function dense(args){return new Dense(args)}function dropout3(args){return new Dropout(args)}function spatialDropout1d(args){return new SpatialDropout1D(args)}function flatten3(args){return new Flatten(args)}function repeatVector(args){return new RepeatVector(args)}function reshape5(args){return new Reshape2(args)}function permute(args){return new Permute(args)}function embedding(args){return new Embedding(args)}function add4(args){return new Add2(args)}function average(args){return new Average(args)}function concatenate2(args){return new Concatenate(args)}function maximum4(args){return new Maximum2(args)}function minimum4(args){return new Minimum2(args)}function multiply3(args){return new Multiply2(args)}function dot3(args){return new Dot(args)}function batchNormalization2(args){return new BatchNormalization(args)}function layerNormalization(args){return new LayerNormalization(args)}function zeroPadding2d(args){return new ZeroPadding2D(args)}function averagePooling1d(args){return new AveragePooling1D(args)}function avgPool1d(args){return averagePooling1d(args)}function avgPooling1d(args){return averagePooling1d(args)}function averagePooling2d(args){return new AveragePooling2D(args)}function avgPool2d(args){return averagePooling2d(args)}function avgPooling2d(args){return averagePooling2d(args)}function averagePooling3d(args){return new AveragePooling3D(args)}function avgPool3d2(args){return averagePooling3d(args)}function avgPooling3d(args){return averagePooling3d(args)}function globalAveragePooling1d(args){return new GlobalAveragePooling1D(args)}function globalAveragePooling2d(args){return new GlobalAveragePooling2D(args)}function globalMaxPooling1d(args){return new GlobalMaxPooling1D(args)}function globalMaxPooling2d(args){return new GlobalMaxPooling2D(args)}function maxPooling1d(args){return new MaxPooling1D(args)}function maxPooling2d(args){return new MaxPooling2D(args)}function maxPooling3d(args){return new MaxPooling3D(args)}function gru(args){return new GRU(args)}function gruCell(args){return new GRUCell(args)}function lstm(args){return new LSTM(args)}function lstmCell(args){return new LSTMCell(args)}function simpleRNN(args){return new SimpleRNN(args)}function simpleRNNCell(args){return new SimpleRNNCell(args)}function convLstm2d(args){return new ConvLSTM2D(args)}function convLstm2dCell(args){return new ConvLSTM2DCell(args)}function rnn2(args){return new RNN(args)}function stackedRNNCells(args){return new StackedRNNCells(args)}function bidirectional(args){return new Bidirectional(args)}function timeDistributed(args){return new TimeDistributed(args)}var globalMaxPool1d=globalMaxPooling1d,globalMaxPool2d=globalMaxPooling2d,maxPool1d=maxPooling1d,maxPool2d=maxPooling2d;function gaussianNoise(args){return new GaussianNoise(args)}function gaussianDropout(args){return new GaussianDropout(args)}function alphaDropout(args){return new AlphaDropout(args)}function masking(args){return new Masking(args)}var exports_metrics_exports={};__export2(exports_metrics_exports,{MAPE:()=>MAPE2,MSE:()=>MSE2,binaryAccuracy:()=>binaryAccuracy2,binaryCrossentropy:()=>binaryCrossentropy3,categoricalAccuracy:()=>categoricalAccuracy2,categoricalCrossentropy:()=>categoricalCrossentropy3,cosineProximity:()=>cosineProximity2,mape:()=>mape2,meanAbsoluteError:()=>meanAbsoluteError2,meanAbsolutePercentageError:()=>meanAbsolutePercentageError2,meanSquaredError:()=>meanSquaredError3,mse:()=>mse2,precision:()=>precision2,recall:()=>recall2,sparseCategoricalAccuracy:()=>sparseCategoricalAccuracy2});function binaryAccuracy2(yTrue,yPred){return binaryAccuracy(yTrue,yPred)}function binaryCrossentropy3(yTrue,yPred){return binaryCrossentropy2(yTrue,yPred)}function sparseCategoricalAccuracy2(yTrue,yPred){return sparseCategoricalAccuracy(yTrue,yPred)}function categoricalAccuracy2(yTrue,yPred){return categoricalAccuracy(yTrue,yPred)}function categoricalCrossentropy3(yTrue,yPred){return categoricalCrossentropy2(yTrue,yPred)}function precision2(yTrue,yPred){return precision(yTrue,yPred)}function recall2(yTrue,yPred){return recall(yTrue,yPred)}function cosineProximity2(yTrue,yPred){return cosineProximity(yTrue,yPred)}function meanAbsoluteError2(yTrue,yPred){return meanAbsoluteError(yTrue,yPred)}function meanAbsolutePercentageError2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function MAPE2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function mape2(yTrue,yPred){return meanAbsolutePercentageError(yTrue,yPred)}function meanSquaredError3(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function MSE2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}function mse2(yTrue,yPred){return meanSquaredError2(yTrue,yPred)}var exports_models_exports={};__export2(exports_models_exports,{modelFromJSON:()=>modelFromJSON});var exports_regularizers_exports={};__export2(exports_regularizers_exports,{l1:()=>l12,l1l2:()=>l1l2,l2:()=>l22});function l1l2(config2){return new L1L2(config2)}function l12(config2){return l1(config2)}function l22(config2){return l2(config2)}var Callback=class extends BaseCallback{constructor(){super(...arguments);this.model=null}setModel(model2){if(!(model2 instanceof LayersModel))throw new Error("model must be a LayersModel, not some other Container");this.model=model2}};function less4(currVal,prevVal){return currValprevVal}var EarlyStopping=class extends Callback{constructor(args){super();if(args==null&&(args={}),args.restoreBestWeights)throw new NotImplementedError("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=args.monitor||"val_loss",this.minDelta=Math.abs(args.minDelta||0),this.patience=args.patience||0,this.verbose=args.verbose||0,this.mode=args.mode||"auto",this.baseline=args.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=less4:this.mode==="max"?this.monitorFunc=greater4:this.monitor.indexOf("acc")!==-1?this.monitorFunc=greater4:this.monitorFunc=less4,this.monitorFunc===less4&&(this.minDelta*=-1)}async onTrainBegin(logs){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===less4?Infinity:-Infinity}async onEpochEnd(epoch,logs){await resolveScalarsInLogs(logs);let current=this.getMonitorValue(logs);current!=null&&(this.monitorFunc(current-this.minDelta,this.best)?(this.best=current,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=epoch,this.model.stopTraining=!0)))}async onTrainEnd(logs){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(logs){logs==null&&(logs={});let monitorValue=logs[this.monitor];return monitorValue==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(logs)}`),monitorValue}};function earlyStopping(args){return new EarlyStopping(args)}var callbacks={earlyStopping},DataType;(function(DataType2){DataType2[DataType2.DT_INVALID=0]="DT_INVALID",DataType2[DataType2.DT_FLOAT=1]="DT_FLOAT",DataType2[DataType2.DT_DOUBLE=2]="DT_DOUBLE",DataType2[DataType2.DT_INT32=3]="DT_INT32",DataType2[DataType2.DT_UINT8=4]="DT_UINT8",DataType2[DataType2.DT_INT16=5]="DT_INT16",DataType2[DataType2.DT_INT8=6]="DT_INT8",DataType2[DataType2.DT_STRING=7]="DT_STRING",DataType2[DataType2.DT_COMPLEX64=8]="DT_COMPLEX64",DataType2[DataType2.DT_INT64=9]="DT_INT64",DataType2[DataType2.DT_BOOL=10]="DT_BOOL",DataType2[DataType2.DT_QINT8=11]="DT_QINT8",DataType2[DataType2.DT_QUINT8=12]="DT_QUINT8",DataType2[DataType2.DT_QINT32=13]="DT_QINT32",DataType2[DataType2.DT_BFLOAT16=14]="DT_BFLOAT16",DataType2[DataType2.DT_FLOAT_REF=101]="DT_FLOAT_REF",DataType2[DataType2.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",DataType2[DataType2.DT_INT32_REF=103]="DT_INT32_REF",DataType2[DataType2.DT_UINT8_REF=104]="DT_UINT8_REF",DataType2[DataType2.DT_INT16_REF=105]="DT_INT16_REF",DataType2[DataType2.DT_INT8_REF=106]="DT_INT8_REF",DataType2[DataType2.DT_STRING_REF=107]="DT_STRING_REF",DataType2[DataType2.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",DataType2[DataType2.DT_INT64_REF=109]="DT_INT64_REF",DataType2[DataType2.DT_BOOL_REF=110]="DT_BOOL_REF",DataType2[DataType2.DT_QINT8_REF=111]="DT_QINT8_REF",DataType2[DataType2.DT_QUINT8_REF=112]="DT_QUINT8_REF",DataType2[DataType2.DT_QINT32_REF=113]="DT_QINT32_REF",DataType2[DataType2.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(DataType||(DataType={}));var SaverDef;(function(SaverDef2){let CheckpointFormatVersion;(function(CheckpointFormatVersion2){CheckpointFormatVersion2[CheckpointFormatVersion2.LEGACY=0]="LEGACY",CheckpointFormatVersion2[CheckpointFormatVersion2.V1=1]="V1",CheckpointFormatVersion2[CheckpointFormatVersion2.V2=2]="V2"})(CheckpointFormatVersion=SaverDef2.CheckpointFormatVersion||(SaverDef2.CheckpointFormatVersion={}))})(SaverDef||(SaverDef={}));var CUSTOM_OPS={};function registerOp(name,opFunc){let opMapper={tfOpName:name,category:"custom",inputs:[],attrs:[],customExecutor:opFunc};CUSTOM_OPS[name]=opMapper}function getRegisteredOp(name){return CUSTOM_OPS[name]}function deregisterOp(name){delete CUSTOM_OPS[name]}function getParamValue(paramName,node,tensorMap,context,resourceManager){let inputParam=node.inputParams[paramName];if(inputParam&&inputParam.inputIndexStart!==void 0){let start=inputParam.inputIndexStart,end=inputParam.inputIndexEnd===0?void 0:inputParam.inputIndexEnd===void 0?start+1:inputParam.inputIndexEnd;if(inputParam.type==="tensor")return getTensor(node.inputNames[inputParam.inputIndexStart],tensorMap,context,resourceManager);if(inputParam.type==="tensors")return node.inputNames.slice(start,end).map(name=>getTensor(name,tensorMap,context,resourceManager));let tensor2=getTensor(node.inputNames.slice(start)[0],tensorMap,context,resourceManager),data2=tensor2.dataSync();return inputParam.type==="number"?data2[0]:util_exports.toNestedArray(tensor2.shape,data2)}let attrParam=node.attrParams[paramName];return attrParam&&attrParam.value}function getTensor(name,tensorsMap,context,resourceManager){let[nodeName,index]=parseNodeName(name);if(resourceManager!=null){let tensor2=resourceManager.getHashTableHandleByName(nodeName);if(tensor2!=null)return tensor2}let contextId=context.currentContextIds.find(contextId2=>!!tensorsMap[getNodeNameWithContextId(nodeName,contextId2)]);return contextId!==void 0?tensorsMap[getNodeNameWithContextId(nodeName,contextId)][index]:void 0}function getTensorsForCurrentContenxt(name,tensorsMap,context){return tensorsMap[getNodeNameWithContextId(name,context.currentContextId)]}function getNodeNameAndIndex(inputName,context){let[nodeName,index]=parseNodeName(inputName);return[getNodeNameWithContextId(nodeName,context&&context.currentContextId),index]}function getNodeNameWithContextId(name,contextId){return contextId?`${name}-${contextId}`:name}function parseNodeName(name){let parts=name.split(":");return parts.length===1?[name,0]:[parts[0],Number(parts[parts.length-1])]}function getPadding(node,tensorMap,context){let pad3=getParamValue("pad",node,tensorMap,context);if(pad3==="explicit"){pad3=getParamValue("explicitPaddings",node,tensorMap,context);let explicitPadding=[[0,0],[0,0],[0,0],[0,0]];for(let i=0;i<4;i++)explicitPadding[i][0]=pad3[i*2],explicitPadding[i][1]=pad3[i*2+1];return explicitPadding}return pad3}function cloneTensor(tensor2){return tensor2.kept?tensor2:clone(tensor2)}var arithmetic_exports={};__export2(arithmetic_exports,{json:()=>json});var json=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],basic_math_exports={};__export2(basic_math_exports,{json:()=>json2});var json2=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],control_exports={};__export2(control_exports,{json:()=>json3});var json3=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],convolution_exports={};__export2(convolution_exports,{json:()=>json4});var json4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],creation_exports={};__export2(creation_exports,{json:()=>json5});var json5=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],dynamic_exports={};__export2(dynamic_exports,{json:()=>json6});var json6=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],evaluation_exports={};__export2(evaluation_exports,{json:()=>json7});var json7=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],graph_exports={};__export2(graph_exports,{json:()=>json8});var json8=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],hash_table_exports={};__export2(hash_table_exports,{json:()=>json9});var json9=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],image_exports={};__export2(image_exports,{json:()=>json10});var json10=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],logical_exports={};__export2(logical_exports,{json:()=>json11});var json11=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],matrices_exports={};__export2(matrices_exports,{json:()=>json12});var json12=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],normalization_exports={};__export2(normalization_exports,{json:()=>json13});var json13=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],reduction_exports={};__export2(reduction_exports,{json:()=>json14});var json14=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],slice_join_exports={};__export2(slice_join_exports,{json:()=>json15});var json15=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],spectral_exports={};__export2(spectral_exports,{json:()=>json16});var json16=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],transformation_exports={};__export2(transformation_exports,{json:()=>json17});var json17=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],OperationMapper=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let ops=[arithmetic_exports,basic_math_exports,control_exports,convolution_exports,creation_exports,dynamic_exports,evaluation_exports,logical_exports,image_exports,graph_exports,matrices_exports,normalization_exports,reduction_exports,slice_join_exports,spectral_exports,transformation_exports,hash_table_exports],mappersJson=[].concat(...ops.map(op2=>op2.json));this.opMappers=mappersJson.reduce((map,mapper)=>(map[mapper.tfOpName]=mapper,map),{})}transformGraph(graph2,signature={}){let tfNodes=graph2.node,placeholders=[],weights=[],initNodes=[],nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op.startsWith("Placeholder")?placeholders.push(map[node.name]):node.op==="Const"?weights.push(map[node.name]):(node.input==null||node.input.length===0)&&initNodes.push(map[node.name]),map),{}),inputs=[],outputs=[],inputNodeNameToKey={},outputNodeNameToKey={};signature!=null&&(inputNodeNameToKey=this.mapSignatureEntries(signature.inputs),outputNodeNameToKey=this.mapSignatureEntries(signature.outputs));let allNodes=Object.keys(nodes);allNodes.forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})}),Object.keys(outputNodeNameToKey).length===0?allNodes.forEach(key=>{let node=nodes[key];node.children.length===0&&outputs.push(node)}):Object.keys(outputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node!=null&&(node.signatureKey=outputNodeNameToKey[name],outputs.push(node))}),Object.keys(inputNodeNameToKey).length>0?Object.keys(inputNodeNameToKey).forEach(name=>{let[nodeName]=getNodeNameAndIndex(name),node=nodes[nodeName];node&&(node.signatureKey=inputNodeNameToKey[name],inputs.push(node))}):inputs=placeholders;let functions={};graph2.library!=null&&graph2.library.function!=null&&(functions=graph2.library.function.reduce((functions2,func2)=>(functions2[func2.signature.name]=this.mapFunction(func2),functions2),{}));let result={nodes,inputs,outputs,weights,placeholders,signature,functions};return initNodes.length>0&&(result.initNodes=initNodes),result}mapSignatureEntries(entries){return Object.keys(entries||{}).reduce((prev,curr)=>(prev[entries[curr].name]=curr,prev),{})}mapNode(node){let mapper=getRegisteredOp(node.op)||this.opMappers[node.op]||{};node.attr==null&&(node.attr={});let newNode={name:node.name,op:node.op,category:mapper.category,inputNames:(node.input||[]).map(input2=>input2.startsWith("^")?input2.substr(1):input2),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:node.attr};return mapper.inputs!=null&&(newNode.inputParams=mapper.inputs.reduce((map,param)=>(map[param.name]={type:param.type,inputIndexStart:param.start,inputIndexEnd:param.end},map),{})),mapper.attrs!=null&&(newNode.attrParams=mapper.attrs.reduce((map,param)=>{let type=param.type,value;switch(param.type){case"string":value=getStringParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"string[]":value=getStringArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getStringArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number":value=getNumberParam(node.attr,param.tfName,param.defaultValue||0),value===void 0&&!!param.tfDeprecatedName&&(value=getNumberParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"number[]":value=getNumericArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getNumericArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool":value=getBoolParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"bool[]":value=getBoolArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getBoolArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape":value=getTensorShapeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"shape[]":value=getTensorShapeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getTensorShapeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype":value=getDtypeParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"dtype[]":value=getDtypeArrayParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getDtypeArrayParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"func":value=getFuncParam(node.attr,param.tfName,param.defaultValue),value===void 0&&!!param.tfDeprecatedName&&(value=getFuncParam(node.attr,param.tfDeprecatedName,param.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${param.type} for op: ${node.op}`)}return map[param.name]={value,type},map},{})),newNode}mapFunction(functionDef){let tfNodes=functionDef.nodeDef,placeholders=[],weights=[],nodes={};tfNodes!=null&&(nodes=tfNodes.reduce((map,node)=>(map[node.name]=this.mapNode(node),node.op==="Const"&&weights.push(map[node.name]),map),{}));let inputs=[],outputs=[];functionDef.signature.inputArg.forEach(arg=>{let[nodeName]=getNodeNameAndIndex(arg.name),node={name:nodeName,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:parseDtypeParam(arg.type),type:"dtype"}},children:[]};node.signatureKey=arg.name,inputs.push(node),nodes[nodeName]=node}),Object.keys(nodes).forEach(key=>{let node=nodes[key];node.inputNames.forEach(name=>{let[nodeName]=getNodeNameAndIndex(name);node.inputs.push(nodes[nodeName]),nodes[nodeName].children.push(node)})});let returnNodeMap=functionDef.ret;functionDef.signature.outputArg.forEach(output=>{let[nodeName,index]=getNodeNameAndIndex(returnNodeMap[output.name]),node=nodes[nodeName];node!=null&&(node.defaultOutput=index,outputs.push(node))});let signature=this.mapArgsToSignature(functionDef);return{nodes,inputs,outputs,weights,placeholders,signature}}mapArgsToSignature(functionDef){return{methodName:functionDef.signature.name,inputs:functionDef.signature.inputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg),map),{}),outputs:functionDef.signature.outputArg.reduce((map,arg)=>(map[arg.name]=this.mapArgToTensorInfo(arg,functionDef.ret),map),{})}}mapArgToTensorInfo(arg,nameMap2){let name=arg.name;return nameMap2!=null&&(name=nameMap2[name]),{name,dtype:arg.type}}};function decodeBase64(text){let global2=env().global;if(typeof global2.atob!="undefined")return global2.atob(text);if(typeof Buffer!="undefined")return new Buffer(text,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function parseStringParam(s,keepCase){let value=Array.isArray(s)?String.fromCharCode.apply(null,s):decodeBase64(s);return keepCase?value:value.toLowerCase()}function getStringParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param!=null?parseStringParam(param.s,keepCase):def}function getBoolParam(attrs,name,def){let param=attrs[name];return param?param.b:def}function getNumberParam(attrs,name,def){let param=attrs[name]||{},value=param.i!=null?param.i:param.f!=null?param.f:def;return typeof value=="number"?value:parseInt(value,10)}function parseDtypeParam(value){switch(typeof value=="string"&&(value=DataType[value]),value){case DataType.DT_FLOAT:return"float32";case DataType.DT_INT32:case DataType.DT_INT64:case DataType.DT_INT8:case DataType.DT_UINT8:return"int32";case DataType.DT_BOOL:return"bool";case DataType.DT_DOUBLE:return"float32";case DataType.DT_STRING:return"string";default:return null}}function getFuncParam(attrs,name,def){let param=attrs[name];return param&¶m.func?param.func.name:def}function getDtypeParam(attrs,name,def){let param=attrs[name];return param&¶m.type?parseDtypeParam(param.type):def}function getDtypeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.type?param.list.type.map(v=>parseDtypeParam(v)):def}function parseTensorShapeParam(shape){if(!shape.unknownRank)return shape.dim!=null?shape.dim.map(dim=>typeof dim.size=="number"?dim.size:parseInt(dim.size,10)):[]}function getTensorShapeParam(attrs,name,def){let param=attrs[name];return param&¶m.shape?parseTensorShapeParam(param.shape):def}function getNumericArrayParam(attrs,name,def){let param=attrs[name];return param?((param.list.f&¶m.list.f.length?param.list.f:param.list.i)||[]).map(v=>typeof v=="number"?v:parseInt(v,10)):def}function getStringArrayParam(attrs,name,def,keepCase=!1){let param=attrs[name];return param&¶m.list&¶m.list.s?param.list.s.map(v=>parseStringParam(v,keepCase)):def}function getTensorShapeArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.shape?param.list.shape.map(v=>parseTensorShapeParam(v)):def}function getBoolArrayParam(attrs,name,def){let param=attrs[name];return param&¶m.list&¶m.list.b?param.list.b:def}var NodeValueImpl=class{constructor(node,tensorMap,context){this.node=node,this.tensorMap=tensorMap,this.context=context,this.inputs=[],this.attrs={},this.inputs=node.inputNames.map(name=>this.getInput(name)),node.rawAttrs!=null&&(this.attrs=Object.keys(node.rawAttrs).reduce((attrs,key)=>(attrs[key]=this.getAttr(key),attrs),{}))}getInput(name){return getTensor(name,this.tensorMap,this.context)}getAttr(name,defaultValue){let value=this.node.rawAttrs[name];if(value.tensor!=null)return getTensor(name,this.tensorMap,this.context);if(value.i!=null||value.f!=null)return getNumberParam(this.node.rawAttrs,name,defaultValue);if(value.s!=null)return getStringParam(this.node.rawAttrs,name,defaultValue);if(value.b!=null)return getBoolParam(this.node.rawAttrs,name,defaultValue);if(value.shape!=null)return getTensorShapeParam(this.node.rawAttrs,name,defaultValue);if(value.type!=null)return getDtypeParam(this.node.rawAttrs,name,defaultValue);if(value.list!=null){if(value.list.i!=null||value.list.f!=null)return getNumericArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.s!=null)return getStringArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.shape!=null)return getTensorShapeArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.b!=null)return getBoolArrayParam(this.node.rawAttrs,name,defaultValue);if(value.list.type!=null)return getDtypeArrayParam(this.node.rawAttrs,name,defaultValue)}return defaultValue}},executeOp=(node,tensorMap,context)=>{switch(node.op){case"BiasAdd":case"AddV2":case"Add":return[add2(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"AddN":return[addN(getParamValue("tensors",node,tensorMap,context))];case"FloorMod":case"Mod":return[mod(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Mul":return[mul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"RealDiv":case"Div":return[div(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"DivNoNan":return[divNoNan(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"FloorDiv":return[floorDiv(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Sub":return[sub(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Minimum":return[minimum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Maximum":return[maximum(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Pow":return[pow(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"SquaredDifference":return[squaredDifference(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp2=(node,tensorMap,context)=>{switch(node.op){case"Abs":case"ComplexAbs":return[abs(getParamValue("x",node,tensorMap,context))];case"Acos":return[acos(getParamValue("x",node,tensorMap,context))];case"Acosh":return[acosh(getParamValue("x",node,tensorMap,context))];case"Asin":return[asin(getParamValue("x",node,tensorMap,context))];case"Asinh":return[asinh(getParamValue("x",node,tensorMap,context))];case"Atan":return[atan(getParamValue("x",node,tensorMap,context))];case"Atan2":return[atan2(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context))];case"Atanh":return[atanh(getParamValue("x",node,tensorMap,context))];case"Ceil":return[ceil(getParamValue("x",node,tensorMap,context))];case"Complex":return[complex(getParamValue("real",node,tensorMap,context),getParamValue("imag",node,tensorMap,context))];case"Cos":return[cos(getParamValue("x",node,tensorMap,context))];case"Cosh":return[cosh(getParamValue("x",node,tensorMap,context))];case"Elu":return[elu(getParamValue("x",node,tensorMap,context))];case"Erf":return[erf(getParamValue("x",node,tensorMap,context))];case"Exp":return[exp(getParamValue("x",node,tensorMap,context))];case"Expm1":return[expm1(getParamValue("x",node,tensorMap,context))];case"Floor":return[floor(getParamValue("x",node,tensorMap,context))];case"Log":return[log2(getParamValue("x",node,tensorMap,context))];case"Log1p":return[log1p(getParamValue("x",node,tensorMap,context))];case"Imag":return[imag(getParamValue("x",node,tensorMap,context))];case"Neg":return[neg(getParamValue("x",node,tensorMap,context))];case"Reciprocal":return[reciprocal(getParamValue("x",node,tensorMap,context))];case"Real":return[real(getParamValue("x",node,tensorMap,context))];case"Relu":return[relu(getParamValue("x",node,tensorMap,context))];case"Round":return[round2(getParamValue("x",node,tensorMap,context))];case"Selu":return[selu(getParamValue("x",node,tensorMap,context))];case"Sigmoid":return[sigmoid(getParamValue("x",node,tensorMap,context))];case"Sin":return[sin(getParamValue("x",node,tensorMap,context))];case"Sign":return[sign(getParamValue("x",node,tensorMap,context))];case"Sinh":return[sinh(getParamValue("x",node,tensorMap,context))];case"Softplus":return[softplus(getParamValue("x",node,tensorMap,context))];case"Sqrt":return[sqrt(getParamValue("x",node,tensorMap,context))];case"Square":return[square(getParamValue("x",node,tensorMap,context))];case"Tanh":return[tanh2(getParamValue("x",node,tensorMap,context))];case"Tan":return[tan(getParamValue("x",node,tensorMap,context))];case"ClipByValue":return[clipByValue(getParamValue("x",node,tensorMap,context),getParamValue("clipValueMin",node,tensorMap,context),getParamValue("clipValueMax",node,tensorMap,context))];case"Relu6":return[relu6(getParamValue("x",node,tensorMap,context))];case"Rsqrt":return[rsqrt(getTensor(node.inputNames[0],tensorMap,context))];case"Prod":return[prod(getParamValue("x",node,tensorMap,context),getParamValue("axes",node,tensorMap,context))];case"LeakyRelu":return[leakyRelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];case"Prelu":return[prelu(getParamValue("x",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function assertShapesMatchAllowUndefinedSize(shapeA,shapeB,errorMessagePrefix=""){util_exports.assert(shapesEqualAllowUndefinedSize(shapeA,shapeB),()=>errorMessagePrefix+` Shapes ${shapeA} and ${shapeB} must match`)}function shapesEqualAllowUndefinedSize(n1,n2){if(n1.length!==n2.length)return!1;for(let i=0;i{(keepIds==null||!keepIds.has(tensor2.tensor.id))&&tensor2.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(index){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||index>=this.size())throw new Error(`Tried to read from index ${index}, but array size is: ${this.size()}`);let tensorWithState=this.tensors[index];if(tensorWithState.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${index} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(tensorWithState.cleared=!0),tensorWithState.read=!0,tensorWithState.tensor}readMany(indices){return indices.map(index=>this.read(index))}write(index,tensor2){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(index<0||!this.dynamicSize&&index>=this.maxSize)throw new Error(`Tried to write to index ${index}, but array is not resizeable and size is: ${this.maxSize}`);let t=this.tensors[index]||{};if(tensor2.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because the value dtype is ${tensor2.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=tensor2.shape),assertShapesMatchAllowUndefinedSize(this.elementShape,tensor2.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${index}.`),t.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been read.`);if(t.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been written.`);t.tensor=tensor2,keep(tensor2),t.written=!0,this.tensors[index]=t}writeMany(indices,tensors){if(indices.length!==tensors.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${indices.length} is not the same as tensors size: ${tensors.length}.`);indices.forEach((i,index)=>this.write(i,tensors[index]))}gather(indices,dtype){if(!!dtype&&dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${dtype}`);if(indices)indices=indices.slice(0,this.size());else{indices=[];for(let i=0;i=this.maxSize)throw new Error(`Max index must be < array size (${maxIndex} vs. ${this.maxSize})`);this.writeMany(indices,unstack(tensor2,0))}split(length,tensor2){if(tensor2.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${tensor2.dtype}`);let totalLength=0,cumulativeLengths=length.map(len=>(totalLength+=len,totalLength));if(totalLength!==tensor2.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is ${totalLength}, and tensor's shape is: ${tensor2.shape}`);if(!this.dynamicSize&&length.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${length.length}), and the TensorArray is not marked as dynamically resizeable`);let elementPerRow=totalLength===0?0:tensor2.size/totalLength,tensors=[];tidy(()=>{tensor2=reshape(tensor2,[1,totalLength,elementPerRow]);for(let i=0;i{if(elementDtype!==tensor2.dtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${tensor2.dtype}`);assertShapesMatchAllowUndefinedSize(elementShape,tensor2.shape,"TensorList shape mismatch: "),keep(tensor2)}),this.idTensor=scalar(0),this.maxNumElements=maxNumElements,keep(this.idTensor)}get id(){return this.idTensor.id}copy(){return new TensorList([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(keepIds){this.tensors.forEach(tensor2=>{(keepIds==null||!keepIds.has(tensor2.id))&&tensor2.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(elementShape,elementDtype,numElements=-1){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);if(numElements!==-1&&this.tensors.length!==numElements)throw new Error(`Operation expected a list with ${numElements} elements but got a list with ${this.tensors.length} elements.`);return assertShapesMatchAllowUndefinedSize(elementShape,this.elementShape,"TensorList shape mismatch: "),tidy(()=>{let reshapedTensors=this.tensors.map(tensor2=>reshape(tensor2,elementShape));return stack(reshapedTensors,0)})}popBack(elementShape,elementDtype){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let tensor2=this.tensors.pop();return assertShapesMatchAllowUndefinedSize(tensor2.shape,elementShape,"TensorList shape mismatch: "),reshape(tensor2,elementShape)}pushBack(tensor2){if(tensor2.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${tensor2.dtype}, but list elements ${this.elementDtype}`);if(assertShapesMatchAllowUndefinedSize(tensor2.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");keep(tensor2),this.tensors.push(tensor2)}resize(size){if(size<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${size}`);if(this.maxNumElements!==-1&&size>this.maxNumElements)throw new Error(`TensorListResize input size ${size} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=size}getItem(elementIndex,elementShape,elementDtype){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);if(elementIndex<0||elementIndex>this.tensors.length)throw new Error(`Trying to access element ${elementIndex} in a list with ${this.tensors.length} elements.`);if(this.tensors[elementIndex]==null)throw new Error(`element at index ${elementIndex} is null.`);return assertShapesMatchAllowUndefinedSize(this.tensors[elementIndex].shape,elementShape,"TensorList shape mismatch: "),this.tensors[elementIndex]}setItem(elementIndex,tensor2){if(tensor2.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${tensor2.dtype}, but list elements ${this.elementDtype}`);if(elementIndex<0||this.maxNumElements!==-1&&elementIndex>=this.maxNumElements)throw new Error(`Trying to set element ${elementIndex} in a list with max ${this.maxNumElements} elements.`);assertShapesMatchAllowUndefinedSize(this.elementShape,tensor2.shape,"TensorList shape mismatch: "),keep(tensor2),this.tensors[elementIndex]=tensor2}gather(indices,elementDtype,elementShape){if(elementDtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);return assertShapesMatchAllowUndefinedSize(this.elementShape,elementShape,"TensorList shape mismatch: "),indices=indices.slice(0,this.size()),indices.length===0?tensor([],[0].concat(this.elementShape)):tidy(()=>{let tensors=indices.map(i=>reshape(this.tensors[i],elementShape));return stack(tensors,0)})}concat(elementDtype,elementShape){if(!!elementDtype&&elementDtype!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${elementDtype}`);return assertShapesMatchAllowUndefinedSize(this.elementShape,elementShape,"TensorList shape mismatch: "),this.size()===0?tensor([],[0].concat(this.elementShape)):tidy(()=>{let tensors=this.tensors.map(t=>reshape(t,elementShape));return concat(tensors,0)})}};function fromTensor(tensor2,elementShape,elementDtype){let dtype=tensor2.dtype;if(tensor2.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${tensor2.shape}`);if(tensor2.dtype!==elementDtype)throw new Error(`Invalid data types; op elements ${tensor2.dtype}, but list elements ${elementDtype}`);let outputShape=tensor2.shape.slice(1);assertShapesMatchAllowUndefinedSize(outputShape,elementShape,"TensorList shape mismatch: ");let tensorList=unstack(tensor2);return new TensorList(tensorList,elementShape,dtype)}function reserve(elementShape,elementDtype,numElements){return new TensorList([],elementShape,elementDtype,numElements)}function scatter(tensor2,indices,elementShape,numElements){if(indices.length!==tensor2.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${indices.length} vs. ${tensor2.shape[0]}`);let maxIndex=Math.max(...indices);if(numElements!=null&&numElements!==-1&&maxIndex>=numElements)throw new Error(`Max index must be < array size (${maxIndex} vs. ${numElements})`);let list=new TensorList([],elementShape,tensor2.dtype,numElements),tensors=unstack(tensor2,0);return indices.forEach((value,index)=>{list.setItem(value,tensors[index])}),list}function split2(tensor2,length,elementShape){let totalLength=0,cumulativeLengths=length.map(len=>(totalLength+=len,totalLength));if(totalLength!==tensor2.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${totalLength}, and tensor's shape is: ${tensor2.shape}`);let elementPerRow=totalLength===0?0:tensor2.size/totalLength,tensors=tidy(()=>{let tensors2=[];tensor2=reshape(tensor2,[1,totalLength,elementPerRow]);for(let i=0;i{switch(node.op){case"If":case"StatelessIf":{let thenFunc=getParamValue("thenBranch",node,tensorMap,context),elseFunc=getParamValue("elseBranch",node,tensorMap,context),cond=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context);return(await cond.data())[0]?context.functionMap[thenFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap):context.functionMap[elseFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap)}case"While":case"StatelessWhile":{let bodyFunc=getParamValue("body",node,tensorMap,context),condFunc=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context),condResult=await context.functionMap[condFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap),argIds=args.map(tensor2=>tensor2.id),condValue=await condResult[0].data();condResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let result=args;for(;condValue[0];){let origResult=result;result=await context.functionMap[bodyFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);let resultIds=result.map(tensor2=>tensor2.id);origResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let condResult2=await context.functionMap[condFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);condValue=await condResult2[0].data(),condResult2.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()})}return result}case"LoopCond":{let pred=getParamValue("pred",node,tensorMap,context);return[cloneTensor(pred)]}case"Switch":{let pred=getParamValue("pred",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context);return data2.kept||(data2=cloneTensor(data2)),(await pred.data())[0]?[void 0,data2]:[data2,void 0]}case"Merge":{let inputName=node.inputNames.find(name=>getTensor(name,tensorMap,context)!==void 0);if(inputName){let data2=getTensor(inputName,tensorMap,context);return[cloneTensor(data2)]}return}case"Enter":{let frameId=getParamValue("frameName",node,tensorMap,context),data2=getParamValue("tensor",node,tensorMap,context);return context.enterFrame(frameId),[cloneTensor(data2)]}case"Exit":{let data2=getParamValue("tensor",node,tensorMap,context);return context.exitFrame(),[cloneTensor(data2)]}case"NextIteration":{let data2=getParamValue("tensor",node,tensorMap,context);return context.nextIteration(),[cloneTensor(data2)]}case"TensorArrayV3":{let size=getParamValue("size",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),dynamicSize=getParamValue("dynamicSize",node,tensorMap,context),clearAfterRead=getParamValue("clearAfterRead",node,tensorMap,context),identicalElementShapes=getParamValue("identicalElementShapes",node,tensorMap,context),name=getParamValue("name",node,tensorMap,context),tensorArray=new TensorArray(name,dtype,size,elementShape,identicalElementShapes,dynamicSize,clearAfterRead);return context.addTensorArray(tensorArray),[tensorArray.idTensor,scalar(1)]}case"TensorArrayWriteV3":{let id=getParamValue("tensorArrayId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),writeTensorArray=context.getTensorArray(id.id);return writeTensorArray.write(index,writeTensor),[writeTensorArray.idTensor]}case"TensorArrayReadV3":{let readId=getParamValue("tensorArrayId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context);return[context.getTensorArray(readId.id).read(readIndex)]}case"TensorArrayGatherV3":{let gatherId=getParamValue("tensorArrayId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),gatherDtype=getParamValue("dtype",node,tensorMap,context);return[context.getTensorArray(gatherId.id).gather(gatherIndices,gatherDtype)]}case"TensorArrayScatterV3":{let scatterId=getParamValue("tensorArrayId",node,tensorMap,context),scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),scatterTensorArray=context.getTensorArray(scatterId.id);return scatterTensorArray.scatter(scatterIndices,scatterTensor),[scatterTensorArray.idTensor]}case"TensorArrayConcatV3":{let concatId=getParamValue("tensorArrayId",node,tensorMap,context),concatTensorArray=context.getTensorArray(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context);return[concatTensorArray.concat(concatDtype)]}case"TensorArraySplitV3":{let splitId=getParamValue("tensorArrayId",node,tensorMap,context),splitTensor=getParamValue("tensor",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),splitTensorArray=context.getTensorArray(splitId.id);return splitTensorArray.split(lengths,splitTensor),[splitTensorArray.idTensor]}case"TensorArraySizeV3":{let sizeId=getParamValue("tensorArrayId",node,tensorMap,context),sizeTensorArray=context.getTensorArray(sizeId.id);return[scalar(sizeTensorArray.size(),"int32")]}case"TensorArrayCloseV3":{let closeId=getParamValue("tensorArrayId",node,tensorMap,context),closeTensorArray=context.getTensorArray(closeId.id);return closeTensorArray.clearAndClose(),[closeTensorArray.idTensor]}case"TensorListSetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.setItem(index,writeTensor),[tensorList.idTensor]}case"TensorListGetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).getItem(readIndex,elementShape,elementDType)]}case"TensorListScatterV2":case"TensorListScatter":{let scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context),tensorList=scatter(scatterTensor,scatterIndices,elementShape,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElementsParam;node.op==="TensorListReserve"?numElementsParam="numElements":numElementsParam="maxNumElements";let numElements=getParamValue(numElementsParam,node,tensorMap,context),tensorList=reserve(elementShape,elementDtype,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListGather":{let gatherId=getParamValue("tensorListId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(gatherId.id).gather(gatherIndices,elementDtype,elementShape)]}case"TensorListStack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context);return[context.getTensorList(idTensor.id).stack(elementShape,elementDtype,numElements)]}case"TensorListFromTensor":{let tensor2=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),tensorList=fromTensor(tensor2,elementShape,elementDtype);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListConcat":{let concatId=getParamValue("tensorListId",node,tensorMap,context),tensorList=context.getTensorList(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context);return[tensorList.concat(concatDtype,elementShape)]}case"TensorListPushBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.pushBack(writeTensor),[tensorList.idTensor]}case"TensorListPopBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).popBack(elementShape,elementDType)]}case"TensorListSplit":{let splitTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),tensorList=split2(splitTensor,lengths,elementShape);return context.addTensorList(tensorList),[tensorList.idTensor]}default:throw TypeError(`Node type ${node.op} is not implemented`)}};function fusedConvAndDepthWiseParams(node,tensorMap,context){let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",isBatchNorm=extraOp==="fusedbatchnorm",numArgs=getParamValue("numArgs",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(isBatchNorm)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context),[biasArg,preluArg]=getParamValue("args",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);return{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}}var executeOp4=(node,tensorMap,context)=>{switch(node.op){case"Conv1D":{let stride=getParamValue("stride",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilation=getParamValue("dilation",node,tensorMap,context);return[conv1d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),stride,pad3,dataFormat,dilation)]}case"Conv2D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"_FusedConv2D":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.conv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"FusedDepthwiseConv2dNative":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.depthwiseConv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let shape=getParamValue("outputShape",node,tensorMap,context),stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context);return[conv2dTranspose(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),shape,[stride[1],stride[2]],pad3)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthwiseConv2d(getParamValue("input",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"Conv3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv3d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2],stride[3]],pad3,dataFormat,[dilations[1],dilations[2],dilations[3]])]}case"AvgPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPoolWithArgmax":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context),includeBatchInIndex=getParamValue("includeBatchInIndex",node,tensorMap,context),{result,indexes}=maxPoolWithArgmax(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3,includeBatchInIndex);return[result,indexes]}case"AvgPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"MaxPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"Dilation2D":{let strides=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),strideHeight=strides[1],strideWidth=strides[2],dilationHeight=dilations[1],dilationWidth=dilations[2];return[dilation2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[strideHeight,strideWidth],pad3,[dilationHeight,dilationWidth],"NHWC")]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp5=(node,tensorMap,context)=>{switch(node.op){case"Fill":{let shape=getParamValue("shape",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),value=getParamValue("value",node,tensorMap,context);return[fill(shape,value,dtype)]}case"LinSpace":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),num=getParamValue("num",node,tensorMap,context);return[linspace(start,stop,num)]}case"Multinomial":{let logits=getParamValue("logits",node,tensorMap,context),numSamples=getParamValue("numSamples",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[multinomial(logits,numSamples,seed)]}case"OneHot":{let indices=getParamValue("indices",node,tensorMap,context),depth=getParamValue("depth",node,tensorMap,context),onValue=getParamValue("onValue",node,tensorMap,context),offValue=getParamValue("offValue",node,tensorMap,context);return[oneHot(indices,depth,onValue,offValue)]}case"Ones":return[ones2(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"OnesLike":return[onesLike(getParamValue("x",node,tensorMap,context))];case"RandomUniform":return[randomUniform(getParamValue("shape",node,tensorMap,context),getParamValue("minval",node,tensorMap,context),getParamValue("maxval",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"Range":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),step4=getParamValue("step",node,tensorMap,context);return[range(start,stop,step4,getParamValue("dtype",node,tensorMap,context))]}case"TruncatedNormal":{let shape=getParamValue("shape",node,tensorMap,context),mean4=getParamValue("mean",node,tensorMap,context),stdDev=getParamValue("stdDev",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[truncatedNormal(shape,mean4,stdDev,getParamValue("dtype",node,tensorMap,context),seed)]}case"Zeros":return[zeros(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ZerosLike":return[zerosLike(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function nmsParams(node,tensorMap,context){let boxes=getParamValue("boxes",node,tensorMap,context),scores=getParamValue("scores",node,tensorMap,context),maxOutputSize=getParamValue("maxOutputSize",node,tensorMap,context),iouThreshold=getParamValue("iouThreshold",node,tensorMap,context),scoreThreshold=getParamValue("scoreThreshold",node,tensorMap,context),softNmsSigma=getParamValue("softNmsSigma",node,tensorMap,context);return{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}var executeOp6=async(node,tensorMap,context)=>{switch(node.op){case"NonMaxSuppressionV5":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}=nmsParams(node,tensorMap,context),result=await image.nonMaxSuppressionWithScoreAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return[result.selectedIndices,result.selectedScores]}case"NonMaxSuppressionV4":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context),padToMaxOutputSize=getParamValue("padToMaxOutputSize",node,tensorMap,context),result=await image.nonMaxSuppressionPaddedAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize);return[result.selectedIndices,result.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context);return[await image.nonMaxSuppressionAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold)]}case"Where":{let condition=cast(getParamValue("condition",node,tensorMap,context),"bool"),result=[await whereAsync(condition)];return condition.dispose(),result}case"ListDiff":return setdiff1dAsync(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context));default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp7=(node,tensorMap,context)=>{switch(node.op){case"TopKV2":{let x=getParamValue("x",node,tensorMap,context),k=getParamValue("k",node,tensorMap,context),sorted=getParamValue("sorted",node,tensorMap,context),result=topk(x,k,sorted);return[result.values,result.indices]}case"Unique":{let x=getParamValue("x",node,tensorMap,context),result=unique(x);return[result.values,result.indices]}case"UniqueV2":{let x=getParamValue("x",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),result=unique(x,axis);return[result.values,result.indices]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp8=(node,tensorMap,context)=>{switch(node.op){case"Const":return tensorMap[node.name];case"PlaceholderWithDefault":let def=getParamValue("default",node,tensorMap,context);return[getTensor(node.name,tensorMap,context)||def];case"Placeholder":return[getTensor(node.name,tensorMap,context)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let data22=getParamValue("x",node,tensorMap,context);return[cloneTensor(data22)]}case"IdentityN":return getParamValue("x",node,tensorMap,context).map(t=>cloneTensor(t));case"Snapshot":let snapshot=getParamValue("x",node,tensorMap,context);return[cloneTensor(snapshot)];case"Shape":return[tensor1d(getParamValue("x",node,tensorMap,context).shape,"int32")];case"ShapeN":return getParamValue("x",node,tensorMap,context).map(t=>tensor1d(t.shape));case"Size":return[scalar(getParamValue("x",node,tensorMap,context).size,"int32")];case"Rank":return[scalar(getParamValue("x",node,tensorMap,context).rank,"int32")];case"NoOp":return[scalar(1)];case"Print":let input2=getParamValue("x",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context),message=getParamValue("message",node,tensorMap,context),summarize=getParamValue("summarize",node,tensorMap,context);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(message);for(let i=0;ivalue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(keys,values){this.checkKeyAndValueTensor(keys,values);let $keys=await keys.data();return this.tensorMap.forEach(value=>value.dispose()),this.tensorMap.clear(),tidy(()=>{let $values=unstack(values),keysLength=$keys.length,valuesLength=$values.length;util_exports.assert(keysLength===valuesLength,()=>`The number of elements doesn't match, keys has ${keysLength} elements, the values has ${valuesLength} elements.`);for(let i=0;i{let result=[];for(let i=0;i<$keys.length;i++){let key=$keys[i],value=this.findWithDefault(key,defaultValue);result.push(value)}return stack(result)})}findWithDefault(key,defaultValue){let result=this.tensorMap.get(key);return result!=null?result:defaultValue}checkKeyAndValueTensor(key,value){if(key.dtype!==this.keyDType)throw new Error(`Expect key dtype ${this.keyDType}, but got ${key.dtype}`);if(value.dtype!==this.valueDType)throw new Error(`Expect value dtype ${this.valueDType}, but got ${value.dtype}`)}},executeOp9=async(node,tensorMap,context,resourceManager)=>{switch(node.op){case"HashTable":case"HashTableV2":{let keyDType=getParamValue("keyDType",node,tensorMap,context),valueDType=getParamValue("valueDType",node,tensorMap,context),hashTable2=new HashTable(keyDType,valueDType);return resourceManager.addHashTable(node.name,hashTable2),[hashTable2.handle]}case"LookupTableImport":case"LookupTableImportV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).import(keys,values)]}case"LookupTableFind":case"LookupTableFindV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).find(keys,defaultValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp10=(node,tensorMap,context)=>{switch(node.op){case"ResizeBilinear":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeBilinear(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"ResizeNearestNeighbor":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeNearestNeighbor(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"CropAndResize":{let image3=getParamValue("image",node,tensorMap,context),boxes=getParamValue("boxes",node,tensorMap,context),boxInd=getParamValue("boxInd",node,tensorMap,context),cropSize=getParamValue("cropSize",node,tensorMap,context),method=getParamValue("method",node,tensorMap,context),extrapolationValue=getParamValue("extrapolationValue",node,tensorMap,context);return[image.cropAndResize(image3,boxes,boxInd,cropSize,method,extrapolationValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp11=(node,tensorMap,context)=>{switch(node.op){case"Equal":return[equal(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"NotEqual":return[notEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Greater":return[greater(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"GreaterEqual":return[greaterEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Less":return[less(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LessEqual":return[lessEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalAnd":return[logicalAnd(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalNot":return[logicalNot(getParamValue("a",node,tensorMap,context))];case"LogicalOr":return[logicalOr(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Select":case"SelectV2":return[where(getParamValue("condition",node,tensorMap,context),getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp12=(node,tensorMap,context)=>{switch(node.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[matMul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context),getParamValue("transposeA",node,tensorMap,context),getParamValue("transposeB",node,tensorMap,context))];case"Transpose":return[transpose(getParamValue("x",node,tensorMap,context),getParamValue("perm",node,tensorMap,context))];case"_FusedMatMul":let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",numArgs=getParamValue("numArgs",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[biasArg,preluArg]=getParamValue("args",node,tensorMap,context);return[fused_ops_exports.matMul({a:getParamValue("a",node,tensorMap,context),b:getParamValue("b",node,tensorMap,context),transposeA:getParamValue("transposeA",node,tensorMap,context),transposeB:getParamValue("transposeB",node,tensorMap,context),bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp13=(node,tensorMap,context)=>{switch(node.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"FusedBatchNormV3":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"LRN":return[localResponseNormalization(getParamValue("x",node,tensorMap,context),getParamValue("radius",node,tensorMap,context),getParamValue("bias",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context),getParamValue("beta",node,tensorMap,context))];case"Softmax":return[softmax(getParamValue("x",node,tensorMap,context))];case"LogSoftmax":return[logSoftmax(getParamValue("x",node,tensorMap,context))];case"SparseToDense":return[sparseToDense(getParamValue("sparseIndices",node,tensorMap,context),getParamValue("outputShape",node,tensorMap,context),getParamValue("sparseValues",node,tensorMap,context),getParamValue("defaultValue",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp14=(node,tensorMap,context)=>{switch(node.op){case"Max":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[max(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Mean":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[mean(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Min":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[min(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Sum":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[sum2(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"All":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[all(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Any":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[any(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"ArgMax":{let axis=getParamValue("axis",node,tensorMap,context);return[argMax(getParamValue("x",node,tensorMap,context),axis)]}case"ArgMin":{let axis=getParamValue("axis",node,tensorMap,context);return[argMin(getParamValue("x",node,tensorMap,context),axis)]}case"Prod":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[prod(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Cumsum":{let axis=getParamValue("axis",node,tensorMap,context),exclusive=getParamValue("exclusive",node,tensorMap,context),reverse5=getParamValue("reverse",node,tensorMap,context);return[cumsum(getParamValue("x",node,tensorMap,context),axis,exclusive,reverse5)]}case"Bincount":let x=getParamValue("x",node,tensorMap,context),weights=getParamValue("weights",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context);return[bincount(x,weights,size)];case"DenseBincount":{let x2=getParamValue("x",node,tensorMap,context),weights2=getParamValue("weights",node,tensorMap,context),size2=getParamValue("size",node,tensorMap,context),binaryOutput=getParamValue("binaryOutput",node,tensorMap,context);return[denseBincount(x2,weights2,size2,binaryOutput)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp15=(node,tensorMap,context)=>{switch(node.op){case"ConcatV2":case"Concat":{let n=getParamValue("n",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),inputs=getParamValue("tensors",node,tensorMap,context);return inputs=inputs.slice(0,n),[concat(inputs,axis)]}case"Gather":{let input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),0)]}case"GatherV2":{let axis=getParamValue("axis",node,tensorMap,context),batchDims=getParamValue("batchDims",node,tensorMap,context),input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),axis,batchDims)]}case"Reverse":{let dims=getParamValue("dims",node,tensorMap,context),axis=[];for(let i=0;i{let axis=getParamValue("axis",node,tensorMap,context),tensors=getParamValue("tensors",node,tensorMap,context),shape=tensors[0].shape,squeezedShape=squeeze(tensors[0]).shape,mapped=tensors.map(tensor2=>{let sameShape=util_exports.arraysEqual(tensor2.shape,shape);if(!sameShape&&!util_exports.arraysEqual(squeeze(tensor2).shape,squeezedShape))throw new Error("the input tensors shape does not match");return sameShape?tensor2:reshape(tensor2,shape)});return[stack(mapped,axis)]});case"Unpack":{let axis=getParamValue("axis",node,tensorMap,context),tensor2=getParamValue("tensor",node,tensorMap,context);return unstack(tensor2,axis)}case"Tile":{let reps=getParamValue("reps",node,tensorMap,context);return[tile(getParamValue("x",node,tensorMap,context),reps)]}case"Split":case"SplitV":{let axis=getParamValue("axis",node,tensorMap,context),numOrSizeSplits=getParamValue("numOrSizeSplits",node,tensorMap,context),tensor2=getParamValue("x",node,tensorMap,context);return split(tensor2,numOrSizeSplits,axis)}case"ScatterNd":{let indices=getParamValue("indices",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context),shape=getParamValue("shape",node,tensorMap,context);return[scatterND(indices,values,shape)]}case"GatherNd":{let x=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gatherND(x,indices)]}case"SparseToDense":{let indices=getParamValue("sparseIndices",node,tensorMap,context),shape=getParamValue("outputShape",node,tensorMap,context),sparseValues=getParamValue("sparseValues",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[sparseToDense(indices,sparseValues,shape,sparseValues.dtype===defaultValue.dtype?defaultValue:cast(defaultValue,sparseValues.dtype))]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp16=(node,tensorMap,context)=>{switch(node.op){case"FFT":return[fft(getParamValue("x",node,tensorMap,context))];case"IFFT":return[ifft(getParamValue("x",node,tensorMap,context))];case"RFFT":return[rfft(getParamValue("x",node,tensorMap,context))];case"IRFFT":return[irfft(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp17=(node,tensorMap,context)=>{switch(node.op){case"Cast":return[cast(getParamValue("x",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ExpandDims":{let axis=getParamValue("axis",node,tensorMap,context);return[expandDims(getParamValue("x",node,tensorMap,context),axis)]}case"Squeeze":{let axis=getParamValue("axis",node,tensorMap,context);return[squeeze(getParamValue("x",node,tensorMap,context),axis)]}case"Reshape":return[reshape(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];case"MirrorPad":return[mirrorPad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("mode",node,tensorMap,context))];case"PadV2":case"Pad":return[pad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("constantValue",node,tensorMap,context))];case"SpaceToBatchND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),paddings=getParamValue("paddings",node,tensorMap,context);return[spaceToBatchND(getParamValue("x",node,tensorMap,context),blockShape,paddings)]}case"BatchToSpaceND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),crops=getParamValue("crops",node,tensorMap,context);return[batchToSpaceND(getParamValue("x",node,tensorMap,context),blockShape,crops)]}case"DepthToSpace":{let blockSize=getParamValue("blockSize",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthToSpace(getParamValue("x",node,tensorMap,context),blockSize,dataFormat)]}case"BroadcastTo":return[broadcastTo(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function executeOp18(node,tensorMap,context,resourceManager){let value=((node2,tensorMap2,context2)=>{switch(node2.category){case"arithmetic":return tidy(()=>executeOp(node2,tensorMap2,context2));case"basic_math":return tidy(()=>executeOp2(node2,tensorMap2,context2));case"control":return executeOp3(node2,tensorMap2,context2);case"convolution":return tidy(()=>executeOp4(node2,tensorMap2,context2));case"creation":return tidy(()=>executeOp5(node2,tensorMap2,context2));case"dynamic":return executeOp6(node2,tensorMap2,context2);case"evaluation":return tidy(()=>executeOp7(node2,tensorMap2,context2));case"image":return tidy(()=>executeOp10(node2,tensorMap2,context2));case"graph":return tidy(()=>executeOp8(node2,tensorMap2,context2));case"logical":return tidy(()=>executeOp11(node2,tensorMap2,context2));case"matrices":return tidy(()=>executeOp12(node2,tensorMap2,context2));case"normalization":return tidy(()=>executeOp13(node2,tensorMap2,context2));case"reduction":return tidy(()=>executeOp14(node2,tensorMap2,context2));case"slice_join":return tidy(()=>executeOp15(node2,tensorMap2,context2));case"spectral":return tidy(()=>executeOp16(node2,tensorMap2,context2));case"transformation":return tidy(()=>executeOp17(node2,tensorMap2,context2));case"hash_table":return executeOp9(node2,tensorMap2,context2,resourceManager);case"custom":let opMapper=getRegisteredOp(node2.op);if(opMapper&&opMapper.customExecutor)return opMapper.customExecutor(new NodeValueImpl(node2,tensorMap2,context2));throw TypeError(`Custom op ${node2.op} is not registered.`);default:throw TypeError(`Unknown op '${node2.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(node,tensorMap,context);return util_exports.isPromise(value)?value.then(data2=>[].concat(data2)):[].concat(value)}var ExecutionContext=class{constructor(weightMap={},tensorArrayMap={},tensorListMap={},functionMap={}){this.weightMap=weightMap,this.tensorArrayMap=tensorArrayMap,this.tensorListMap=tensorListMap,this.functionMap=functionMap,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(id,frameName){return{id,frameName,iterationId:0}}set currentContext(contexts2){this.contexts!==contexts2&&(this.contexts=contexts2,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let names=[];for(let i=0;icontext.id===0&&context.iterationId===0?"":`${context.frameName}-${context.iterationId}`).join("/"):""}enterFrame(frameId){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,frameId)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let context=Object.assign({},this.contexts[this.contexts.length-1]);context.iterationId+=1,context.id=this.lastId,this.contexts.splice(-1,1,context),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(name){return this.weightMap[name]}addTensorArray(tensorArray){this.tensorArrayMap[tensorArray.id]=tensorArray}getTensorArray(id){return this.tensorArrayMap[id]}addTensorList(tensorList){this.tensorListMap[tensorList.id]=tensorList}getTensorList(id){return this.tensorListMap[id]}dispose(keepIds){for(let key in this.tensorArrayMap)this.tensorArrayMap[key].clearAndClose(keepIds);for(let key in this.tensorListMap)this.tensorListMap[key].clearAndClose(keepIds)}};function getExecutionSubgraph(inputs,outputs,weightMap,initNodes){let usedNodes=new Set,missingInputs=[],dynamicNode=null,syncInputs=null,seen=new Set,inputNodeNames=Object.keys(inputs).map(name=>parseNodeName(name)[0]),initNodeNames=[];initNodes!=null&&(initNodeNames=initNodes.map(node=>parseNodeName(node.name)[0]));let frontier=[...outputs];for(;frontier.length>0;){let node=frontier.pop();if((isControlFlow(node)||isDynamicShape(node)||isHashTable(node))&&dynamicNode==null&&(dynamicNode=node,syncInputs=dynamicNode.children.map(child=>child.name).filter(name=>usedNodes.has(name))),usedNodes.add(node.name),weightMap[node.name]==null&&inputNodeNames.indexOf(node.name)===-1&&initNodeNames.indexOf(node.name)===-1){if(node.inputs.length===0){missingInputs.push(node.name);continue}node.inputs.forEach(input2=>{seen.has(input2.name)||(seen.add(input2.name),frontier.push(input2))})}}return{inputs,outputs,usedNodes,missingInputs,dynamicNode,syncInputs}}function getNodesInTopologicalOrder(graph2,weightMap,executionInfo){let{usedNodes,inputs}=executionInfo,frontier=[],inputNodes=Object.keys(inputs).map(name=>parseNodeName(name)[0]).map(name=>graph2.nodes[name]),initNodes=graph2.initNodes;inputNodes.forEach(input2=>{usedNodes.has(input2.name)&&frontier.push(input2)}),graph2.weights.forEach(weight=>{usedNodes.has(weight.name)&&frontier.push(weight)}),initNodes!=null&&initNodes.forEach(node=>{usedNodes.has(node.name)&&frontier.push(node)});let seen=new Set,orderedNodes=[];for(;frontier.length>0;){let node=frontier.pop();seen.add(node.name),weightMap[node.name]||orderedNodes.push(node),node.children.forEach(child=>{!seen.has(child.name)&&usedNodes.has(child.name)&&child.inputs.every(input2=>seen.has(input2.name))&&frontier.push(child)})}return orderedNodes}var CONTROL_FLOW_OPS=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],DYNAMIC_SHAPE_OPS=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],HASH_TABLE_OPS=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function isControlFlow(node){return CONTROL_FLOW_OPS.indexOf(node.op)>=0}function isDynamicShape(node){return DYNAMIC_SHAPE_OPS.indexOf(node.op)>=0}function isHashTable(node){return HASH_TABLE_OPS.indexOf(node.op)>=0}var GraphExecutor=class{constructor(graph2,parent){this.graph=graph2,this.parent=parent,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=graph2.outputs,this._inputs=graph2.inputs,this._initNodes=graph2.initNodes,this._signature=graph2.signature,this._functions=graph2.functions,graph2.functions!=null&&Object.keys(graph2.functions).forEach(name=>{this._functionExecutorMap[name]=new GraphExecutor(graph2.functions[name],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(weightMap){let weightIds=Object.keys(weightMap).map(key=>weightMap[key].map(tensor2=>tensor2.id));this._weightIds=[].concat(...weightIds),this._weightMap=weightMap}set resourceManager(resourceManager){this._resourceManager=resourceManager}get inputs(){return this._inputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(node=>node.signatureKey||node.name)}get outputNodes(){return this._outputs.map(node=>{let name=node.signatureKey||node.name;return node.defaultOutput?`${name}:${node.defaultOutput}`:name})}get functions(){return Object.keys(this._functions).reduce((map,key)=>(map[key]=this._functions[key].signature,map),{})}getCompilationKey(inputs,outputs){let sortedInputs=inputs.map(node=>node.name).sort(),sortedOutputs=outputs.map(node=>node.name).sort();return sortedInputs.join(this.SEPERATOR)+"--"+sortedOutputs.join(this.SEPERATOR)}compile(inputs,outputs){let executionInfo=getExecutionSubgraph(inputs,outputs,this.weightMap,this._initNodes),{missingInputs,dynamicNode,syncInputs}=executionInfo;if(dynamicNode!=null)throw new Error(`This execution contains the node '${dynamicNode.name}', which has the dynamic op '${dynamicNode.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${syncInputs}]`);if(missingInputs.length>0){let outNames=outputs.map(n=>n.name),inNames=Object.keys(inputs);throw new Error(`Cannot compute the outputs [${outNames}] from the provided inputs [${inNames}]. Missing the following inputs: [${missingInputs}]`)}return getNodesInTopologicalOrder(this.graph,this.weightMap,executionInfo)}execute(inputs,outputs){inputs=this.mapInputs(inputs);let names=Object.keys(inputs).sort();this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs);let inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputs.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let compilationKey=this.getCompilationKey(inputNodes,outputNodes),orderedNodes=this.compiledMap.get(compilationKey);orderedNodes==null&&(orderedNodes=this.compile(inputs,outputNodes),this.compiledMap.set(compilationKey,orderedNodes));let tensorArrayMap={},tensorListMap={};return tidy(()=>{let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let tensorsToKeep=this.getFrozenTensorIds(tensorsMap),intermediateTensorConsumerCount={};for(let i=0;igetTensor(name,tensorsMap,context))})}getFrozenTensorIds(tensorMap){let ids=[].concat.apply([],Object.keys(tensorMap).map(key=>tensorMap[key]).map(tensors=>tensors.map(tensor2=>tensor2.id)));return new Set(ids)}checkTensorForDisposal(nodeName,node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount){node.category==="control"||outputNames.indexOf(nodeName)!==-1||(tensorMap[nodeName].forEach(tensor2=>{tensor2!=null&&(intermediateTensorConsumerCount[tensor2.id]=(intermediateTensorConsumerCount[tensor2.id]||0)+node.children.length)}),node.inputs.forEach(input2=>{if(input2.category!=="control"){let tensors=getTensorsForCurrentContenxt(input2.name,tensorMap,context);tensors!=null&&tensors.forEach(tensor2=>{if(tensor2&&!tensorsToKeep.has(tensor2.id)){let count2=intermediateTensorConsumerCount[tensor2.id];count2===1?(tensor2.dispose(),delete intermediateTensorConsumerCount[tensor2.id]):count2!=null&&intermediateTensorConsumerCount[tensor2.id]--}})}}))}async executeAsync(inputs,outputs){return this._executeAsync(inputs,outputs)}async _executeAsync(inputs,outputs,isFunctionExecution=!1,tensorArrayMap={},tensorListMap={}){isFunctionExecution||(inputs=this.mapInputs(inputs),this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs));let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorMap=await this.executeWithControlFlow(inputs,context,outputs,isFunctionExecution),results=outputs.map(name=>getTensor(name,tensorMap,context)),outputIds=results.map(t=>t.id),inputIds=Object.keys(inputs).map(name=>inputs[name].id),keepIds=new Set([...outputIds,...inputIds,...this.weightIds]);return Object.keys(tensorMap).forEach(key=>{tensorMap[key].forEach(tensor2=>{tensor2&&!tensor2.isDisposed&&!keepIds.has(tensor2.id)&&tensor2.dispose()})}),this.parent==null&&context.dispose(keepIds),results}async executeFunctionAsync(inputs,tensorArrayMap,tensorListMap){let mappedInputs=inputs.reduce((map,tensor2,index)=>(map[this.inputs[index].name]=tensor2,map),{});return this._executeAsync(mappedInputs,this.outputNodes,!0,tensorArrayMap,tensorListMap)}async executeWithControlFlow(inputs,context,outputNames,isFunctionExecution){let names=Object.keys(inputs),inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputNames.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let{usedNodes,missingInputs,dynamicNode,syncInputs}=getExecutionSubgraph(inputs,outputNodes,this.weightMap,this._initNodes),stack2=[...inputNodes,...this.graph.weights,...this._initNodes||[]].map(node=>({node,contexts:context.currentContext})),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let intermediateTensorConsumerCount={},tensorsToKeep=this.getFrozenTensorIds(tensorsMap),added={};for(;stack2.length>0;){let promises=this.processStack(inputNodes,stack2,context,tensorsMap,added,tensorsToKeep,outputNodeNames,intermediateTensorConsumerCount,usedNodes);await Promise.all(promises)}dynamicNode==null&&!isFunctionExecution&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let missingOutputs=outputNodes.filter(node=>!isControlFlow(node)&&!getTensor(node.name,tensorsMap,context)).map(node=>node.name);if(missingOutputs.length>0){let alternativeMsg="";throw dynamicNode!=null&&(alternativeMsg=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${syncInputs}]`),new Error(`Cannot compute the outputs [${missingOutputs}] from the provided inputs [${names}]. Consider providing the following inputs: [${missingInputs}]. ${alternativeMsg}`)}return tensorsMap}processStack(inputNodes,stack2,context,tensorMap,added,tensorsToKeep,outputNames,intermediateTensorConsumerCount,usedNodes){let promises=[];for(;stack2.length>0;){let item=stack2.pop();context.currentContext=item.contexts;let nodeName="";if(item.node.op==="Enter"&&getParamValue("isConstant",item.node,tensorMap,context)&&([nodeName]=getNodeNameAndIndex(item.node.name,context)),tensorMap[item.node.name]==null){let tensors=executeOp18(item.node,tensorMap,context,this._resourceManager);nodeName||([nodeName]=getNodeNameAndIndex(item.node.name,context));let currentContext=context.currentContext;util_exports.isPromise(tensors)?promises.push(tensors.then(t=>(tensorMap[nodeName]=t,context.currentContext=currentContext,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes),t))):(tensorMap[nodeName]=tensors,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes))}else this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes)}return promises}processChildNodes(node,stack2,context,tensorMap,added,usedNodes){node.children.forEach(childNode=>{let[nodeName]=getNodeNameAndIndex(childNode.name,context);added[nodeName]||!usedNodes.has(childNode.name)||(childNode.op==="Merge"?childNode.inputNames.some(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})):childNode.inputNames.every(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})))})}dispose(){Object.keys(this.weightMap).forEach(key=>this.weightMap[key].forEach(tensor2=>tensor2.dispose()))}checkInputShapeAndType(inputs){Object.keys(inputs).forEach(name=>{let input2=inputs[name],[nodeName]=parseNodeName(name),node=this.graph.nodes[nodeName];if(node.attrParams.shape&&node.attrParams.shape.value){let shape=node.attrParams.shape.value,match=shape.length===input2.shape.length&&input2.shape.every((dim,index)=>shape[index]===-1||shape[index]===dim);util_exports.assert(match,()=>`The shape of dict['${node.name}'] provided in model.execute(dict) must be [${shape}], but was [${input2.shape}]`)}node.attrParams.dtype&&node.attrParams.dtype.value&&util_exports.assert(input2.dtype===node.attrParams.dtype.value,()=>`The dtype of dict['${node.name}'] provided in model.execute(dict) must be ${node.attrParams.dtype.value}, but was ${input2.dtype}`)})}mapInputs(inputs){let result={};for(let inputName in inputs)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[inputName]!=null){let tensor2=this._signature.inputs[inputName];result[tensor2.name]=inputs[inputName]}else result[inputName]=inputs[inputName];return result}checkInputs(inputs){let notInGraph=Object.keys(inputs).filter(name=>{let[nodeName]=parseNodeName(name);return this.graph.nodes[nodeName]==null});if(notInGraph.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${notInGraph}] that are not part of graph`)}mapOutputs(outputs){return outputs.map(name=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[name]!=null?this._signature.outputs[name].name:name,{})}checkOutputs(outputs){outputs.forEach(name=>{let[normalizedName]=parseNodeName(name);if(!this.graph.nodes[normalizedName])throw new Error(`The output '${name}' is not found in the graph`)})}},ResourceManager=class{constructor(hashTableNameToHandle={},hashTableMap={}){this.hashTableNameToHandle=hashTableNameToHandle,this.hashTableMap=hashTableMap}addHashTable(name,hashTable2){this.hashTableNameToHandle[name]=hashTable2.handle,this.hashTableMap[hashTable2.id]=hashTable2}getHashTableHandleByName(name){return this.hashTableNameToHandle[name]}getHashTableById(id){return this.hashTableMap[id]}dispose(){for(let key in this.hashTableMap)this.hashTableMap[key].clearAndClose(),delete this.hashTableMap[key];for(let name in this.hashTableNameToHandle)this.hashTableNameToHandle[name].dispose(),delete this.hashTableNameToHandle[name]}},TFHUB_SEARCH_PARAM="?tfjs-format=file",DEFAULT_MODEL_NAME="model.json",GraphModel=class{constructor(modelUrl,loadOptions={}){this.modelUrl=modelUrl,this.loadOptions=loadOptions,this.version="n/a",loadOptions==null&&(this.loadOptions={}),this.resourceManager=new ResourceManager}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let path=this.modelUrl;if(path.load!=null)this.handler=path;else if(this.loadOptions.requestInit!=null)this.handler=io_exports.browserHTTPRequest(path,this.loadOptions);else{let handlers=io_exports.getLoadHandlers(path,this.loadOptions);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(path,this.loadOptions));else if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) load handlers for URL '${[path]}'`);this.handler=handlers[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await this.handler.load();return this.loadSync(artifacts)}loadSync(artifacts){this.artifacts=artifacts;let graph2=this.artifacts.modelTopology,signature;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?signature=this.artifacts.userDefinedMetadata.signature:signature=this.artifacts.signature,this.signature=signature,this.version=`${graph2.versions.producer}.${graph2.versions.minConsumer}`;let weightMap=io_exports.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new GraphExecutor(OperationMapper.Instance.transformGraph(graph2,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(weightMap),this.executor.resourceManager=this.resourceManager,artifacts.modelInitializer!=null&&artifacts.modelInitializer.node!=null){let initializer=OperationMapper.Instance.transformGraph(artifacts.modelInitializer);this.initializer=new GraphExecutor(initializer),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(handlerOrURL,config3){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new Error(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return handlerOrURL.save(this.artifacts)}predict(inputs,config3){return this.execute(inputs,this.outputNodes)}normalizeInputs(inputs){if(!(inputs instanceof Tensor)&&!Array.isArray(inputs))return inputs;if(inputs=Array.isArray(inputs)?inputs:[inputs],inputs.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${inputs.length} input tensors.`);return this.inputNodes.reduce((map,inputName,i)=>(map[inputName]=inputs[i],map),{})}normalizeOutputs(outputs){return outputs=outputs||this.outputNodes,Array.isArray(outputs)?outputs:[outputs]}execute(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=this.executor.execute(inputs,outputs);return result.length>1?result:result[0]}async executeAsync(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=await this.executor.executeAsync(inputs,outputs);return result.length>1?result:result[0]}convertTensorMapToTensorsMap(map){return Object.keys(map).reduce((newMap,key)=>(newMap[key]=[map[key]],newMap),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function loadGraphModel(modelUrl,options={}){if(modelUrl==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");options==null&&(options={}),options.fromTFHub&&modelUrl.load==null&&(modelUrl.endsWith("/")||(modelUrl=modelUrl+"/"),modelUrl=`${modelUrl}${DEFAULT_MODEL_NAME}${TFHUB_SEARCH_PARAM}`);let model2=new GraphModel(modelUrl,options);return await model2.load(),model2}var version11="2.8.3",dist_exports={};__export2(dist_exports,{CSVDataset:()=>CSVDataset,Dataset:()=>Dataset,FileDataSource:()=>FileDataSource,TextLineDataset:()=>TextLineDataset,URLDataSource:()=>URLDataSource,array:()=>array,csv:()=>csv,func:()=>func,generator:()=>generator,microphone:()=>microphone,version_data:()=>version12,webcam:()=>webcam,zip:()=>zip});var seedrandom4=__toModule2(require_seedrandom6()),seedrandom3=__toModule2(require_seedrandom6());function deepMap(input2,mapFn){return deepMapInternal(input2,mapFn)}function deepMapInternal(input2,mapFn,seen=new Map,containedIn=new Set){if(input2==null)return null;if(containedIn.has(input2))throw new Error("Circular references are not supported.");if(seen.has(input2))return seen.get(input2);let result=mapFn(input2);if(result.recurse&&result.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let child=input2[k],childResult=deepMapInternal(child,mapFn,seen,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return seen.set(input2,result.value),result.value}function deepZip(inputs,zipFn=zipToList){return deepZipInternal(inputs,zipFn)}function deepZipInternal(inputs,zipFn,containedIn=new Set){let input2=inputs[0];if(containedIn.has(input2))throw new Error("Circular references are not supported.");let result=zipFn(inputs);if(result.recurse&&result.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let children=inputs.map(x=>x[k]),childResult=deepZipInternal(children,zipFn,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return result.value}function zipToList(x){return x===null?null:isIterable2(x[0])?{value:null,recurse:!0}:{value:x,recurse:!1}}async function deepMapAndAwaitAll(input2,mapFn){let seen=new Map;deepMapInternal(input2,mapFn,seen);for(let key of Array.from(seen.keys())){let value=seen.get(key);if(util_exports.isPromise(value)){let mappedValue=await value;seen.set(key,mappedValue)}}return deepMapInternal(input2,mapFn,seen)}function isIterable2(obj){return obj!=null&&!ArrayBuffer.isView(obj)&&(Array.isArray(obj)||typeof obj=="object"&&!(obj instanceof Tensor))}function canTensorify(obj){return obj==null||isPrimitive(obj)||Array.isArray(obj)||typeof obj=="object"&&obj instanceof Tensor||util_exports.isTypedArray(obj)}function isPrimitive(value){return value===null||typeof value!="object"&&typeof value!="function"}function deepClone(container){return deepMap(container,cloneIfTensor)}function cloneIfTensor(item){return item instanceof Tensor?{value:item.clone(),recurse:!1}:isIterable2(item)?{value:null,recurse:!0}:{value:item,recurse:!1}}var RingBuffer=class{constructor(capacity){if(this.capacity=capacity,this.begin=0,this.end=0,capacity==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(capacity<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(capacity),this.doubledCapacity=2*capacity}wrap(index){for(;index<0;)index+=this.doubledCapacity;return index%this.doubledCapacity}get(index){if(index<0)throw new RangeError("Can't get item at a negative index.");return this.data[index%this.capacity]}set(index,value){if(index<0)throw new RangeError("Can't set item at a negative index.");this.data[index%this.capacity]=value}length(){let length=this.end-this.begin;return length<0&&(length=this.doubledCapacity+length),length}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,value),this.end=this.wrap(this.end+1)}pushAll(values){for(let value of values)this.push(value)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let result=this.get(this.end);return this.set(this.end,void 0),result}unshift(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,value)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let result=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),result}shuffleExcise(relativeIndex){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let index=this.wrap(this.begin+relativeIndex),result=this.get(index);return this.set(index,this.pop()),result}},GrowingRingBuffer=class extends RingBuffer{constructor(){super(GrowingRingBuffer.INITIAL_CAPACITY)}isFull(){return!1}push(value){super.isFull()&&this.expand(),super.push(value)}unshift(value){super.isFull()&&this.expand(),super.unshift(value)}expand(){let newCapacity=this.capacity*2,newData=new Array(newCapacity),len=this.length();for(let i=0;ix===!0)}rowMajorBatch(batchSize,smallLastBatch=!0){return new RowMajorBatchIterator(this,batchSize,smallLastBatch)}columnMajorBatch(batchSize,smallLastBatch=!0,zipFn=zipToList){return this.rowMajorBatch(batchSize,smallLastBatch).map(x=>deepZip(x,zipFn))}concatenate(iterator,baseErrorHandler){return new ChainedIterator(iteratorFromItems([this,iterator]),baseErrorHandler)}take(count2){return count2<0||count2==null?this:new TakeIterator(this,count2)}skip(count2){return count2<0||count2==null?this:new SkipIterator(this,count2)}prefetch(bufferSize){return new PrefetchIterator(this,bufferSize)}shuffle(windowSize,seed){return new ShuffleIterator(this,windowSize,seed)}serial(){return new SerialIterator(this)}},ArrayIterator=class extends LazyIterator{constructor(items){super();this.items=items,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let item=this.items[this.trav];return this.trav++,{value:deepClone(item),done:!1}}},FunctionCallIterator=class extends LazyIterator{constructor(nextFn){super();this.nextFn=nextFn}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},SerialIterator=class extends LazyIterator{constructor(upstream){super();this.upstream=upstream,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},SkipIterator=class extends LazyIterator{constructor(upstream,maxCount){super();this.upstream=upstream,this.maxCount=maxCount,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},RowMajorBatchIterator=class extends LazyIterator{constructor(upstream,batchSize,enableSmallLastBatch=!0){super();this.upstream=upstream,this.batchSize=batchSize,this.enableSmallLastBatch=enableSmallLastBatch,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let batch=[];for(;batch.length0?{value:batch,done:!1}:{value:null,done:!0};batch.push(item.value)}return{value:batch,done:!1}}},FilterIterator=class extends LazyIterator{constructor(upstream,predicate){super();this.upstream=upstream,this.predicate=predicate,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let item=await this.upstream.next();if(item.done||this.predicate(item.value))return item;dispose(item.value)}}},MapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Map`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},ErrorHandlingLazyIterator=class extends LazyIterator{constructor(upstream,handler){super();this.upstream=upstream,this.handler=handler,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},AsyncMapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=await this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},OneToManyIterator=class extends LazyIterator{constructor(){super();this.outputQueue=new GrowingRingBuffer,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},FlatmapIterator=class extends OneToManyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let item=await this.upstream.next();if(item.done)return!1;let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mappedArray=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mappedArray);this.outputQueue.pushAll(mappedArray);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return!0}},ChainedIterator=class extends LazyIterator{constructor(iterators,baseErrorHandler){super();this.baseErrorHandler=baseErrorHandler,this.lastRead=null,this.iterator=null,this.moreIterators=iterators}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(lastRead){if(await lastRead,this.iterator==null){let iteratorResult=await this.moreIterators.next();if(iteratorResult.done)return{value:null,done:!0};this.iterator=iteratorResult.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let itemResult=await this.iterator.next();return itemResult.done?(this.iterator=null,this.readFromChain(lastRead)):itemResult}},ZipMismatchMode;(function(ZipMismatchMode2){ZipMismatchMode2[ZipMismatchMode2.FAIL=0]="FAIL",ZipMismatchMode2[ZipMismatchMode2.SHORTEST=1]="SHORTEST",ZipMismatchMode2[ZipMismatchMode2.LONGEST=2]="LONGEST"})(ZipMismatchMode||(ZipMismatchMode={}));var ZipIterator=class extends LazyIterator{constructor(iterators,mismatchMode=ZipMismatchMode.FAIL){super();this.iterators=iterators,this.mismatchMode=mismatchMode,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(afterState){await afterState;let numIterators=0,iteratorsDone=0;function getNext(container){return container instanceof LazyIterator?{value:container.next().then(x=>(numIterators++,x.done&&iteratorsDone++,x.value)),recurse:!1}:{value:null,recurse:!0}}let mapped=await deepMapAndAwaitAll(this.iterators,getNext);if(numIterators===iteratorsDone)return{value:null,done:!0};if(iteratorsDone>0)switch(this.mismatchMode){case ZipMismatchMode.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ZipMismatchMode.SHORTEST:return{value:null,done:!0};case ZipMismatchMode.LONGEST:default:}return this.count++,{value:mapped,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},PrefetchIterator=class extends LazyIterator{constructor(upstream,bufferSize){super();this.upstream=upstream,this.bufferSize=bufferSize,this.buffer=new RingBuffer(bufferSize)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let v=this.upstream.next();this.buffer.push(v)}}next(){return this.refill(),this.buffer.shift()}},ShuffleIterator=class extends PrefetchIterator{constructor(upstream,windowSize,seed){super(upstream,windowSize);this.upstream=upstream,this.windowSize=windowSize,this.upstreamExhausted=!1,this.random=seedrandom3.alea(seed||util_exports.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(max6){return Math.floor(this.random()*max6)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let chosenIndex=this.chooseIndex(),result=await this.buffer.shuffleExcise(chosenIndex);if(result.done)this.upstreamExhausted=!0;else return this.refill(),result}return{value:null,done:!0}}},Dataset=class{constructor(){this.size=null}batch(batchSize,smallLastBatch=!0){let base2=this;util_exports.assert(batchSize>0,()=>`batchSize needs to be positive, but it is + ${totalLength}, and tensor's shape is: ${tensor2.shape}`);let elementPerRow=totalLength===0?0:tensor2.size/totalLength,tensors=tidy(()=>{let tensors2=[];tensor2=reshape(tensor2,[1,totalLength,elementPerRow]);for(let i=0;i{switch(node.op){case"If":case"StatelessIf":{let thenFunc=getParamValue("thenBranch",node,tensorMap,context),elseFunc=getParamValue("elseBranch",node,tensorMap,context),cond=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context);return(await cond.data())[0]?context.functionMap[thenFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap):context.functionMap[elseFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap)}case"While":case"StatelessWhile":{let bodyFunc=getParamValue("body",node,tensorMap,context),condFunc=getParamValue("cond",node,tensorMap,context),args=getParamValue("args",node,tensorMap,context),condResult=await context.functionMap[condFunc].executeFunctionAsync(args,context.tensorArrayMap,context.tensorListMap),argIds=args.map(tensor2=>tensor2.id),condValue=await condResult[0].data();condResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let result=args;for(;condValue[0];){let origResult=result;result=await context.functionMap[bodyFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);let resultIds=result.map(tensor2=>tensor2.id);origResult.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()});let condResult2=await context.functionMap[condFunc].executeFunctionAsync(result,context.tensorArrayMap,context.tensorListMap);condValue=await condResult2[0].data(),condResult2.forEach(tensor2=>{!tensor2.kept&&argIds.indexOf(tensor2.id)===-1&&resultIds.indexOf(tensor2.id)===-1&&tensor2.dispose()})}return result}case"LoopCond":{let pred=getParamValue("pred",node,tensorMap,context);return[cloneTensor(pred)]}case"Switch":{let pred=getParamValue("pred",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context);return data2.kept||(data2=cloneTensor(data2)),(await pred.data())[0]?[void 0,data2]:[data2,void 0]}case"Merge":{let inputName=node.inputNames.find(name=>getTensor(name,tensorMap,context)!==void 0);if(inputName){let data2=getTensor(inputName,tensorMap,context);return[cloneTensor(data2)]}return}case"Enter":{let frameId=getParamValue("frameName",node,tensorMap,context),data2=getParamValue("tensor",node,tensorMap,context);return context.enterFrame(frameId),[cloneTensor(data2)]}case"Exit":{let data2=getParamValue("tensor",node,tensorMap,context);return context.exitFrame(),[cloneTensor(data2)]}case"NextIteration":{let data2=getParamValue("tensor",node,tensorMap,context);return context.nextIteration(),[cloneTensor(data2)]}case"TensorArrayV3":{let size=getParamValue("size",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),dynamicSize=getParamValue("dynamicSize",node,tensorMap,context),clearAfterRead=getParamValue("clearAfterRead",node,tensorMap,context),identicalElementShapes=getParamValue("identicalElementShapes",node,tensorMap,context),name=getParamValue("name",node,tensorMap,context),tensorArray=new TensorArray(name,dtype,size,elementShape,identicalElementShapes,dynamicSize,clearAfterRead);return context.addTensorArray(tensorArray),[tensorArray.idTensor,scalar(1)]}case"TensorArrayWriteV3":{let id=getParamValue("tensorArrayId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),writeTensorArray=context.getTensorArray(id.id);return writeTensorArray.write(index,writeTensor),[writeTensorArray.idTensor]}case"TensorArrayReadV3":{let readId=getParamValue("tensorArrayId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context);return[context.getTensorArray(readId.id).read(readIndex)]}case"TensorArrayGatherV3":{let gatherId=getParamValue("tensorArrayId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),gatherDtype=getParamValue("dtype",node,tensorMap,context);return[context.getTensorArray(gatherId.id).gather(gatherIndices,gatherDtype)]}case"TensorArrayScatterV3":{let scatterId=getParamValue("tensorArrayId",node,tensorMap,context),scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),scatterTensorArray=context.getTensorArray(scatterId.id);return scatterTensorArray.scatter(scatterIndices,scatterTensor),[scatterTensorArray.idTensor]}case"TensorArrayConcatV3":{let concatId=getParamValue("tensorArrayId",node,tensorMap,context),concatTensorArray=context.getTensorArray(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context);return[concatTensorArray.concat(concatDtype)]}case"TensorArraySplitV3":{let splitId=getParamValue("tensorArrayId",node,tensorMap,context),splitTensor=getParamValue("tensor",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),splitTensorArray=context.getTensorArray(splitId.id);return splitTensorArray.split(lengths,splitTensor),[splitTensorArray.idTensor]}case"TensorArraySizeV3":{let sizeId=getParamValue("tensorArrayId",node,tensorMap,context),sizeTensorArray=context.getTensorArray(sizeId.id);return[scalar(sizeTensorArray.size(),"int32")]}case"TensorArrayCloseV3":{let closeId=getParamValue("tensorArrayId",node,tensorMap,context),closeTensorArray=context.getTensorArray(closeId.id);return closeTensorArray.clearAndClose(),[closeTensorArray.idTensor]}case"TensorListSetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),index=getParamValue("index",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.setItem(index,writeTensor),[tensorList.idTensor]}case"TensorListGetItem":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),readIndex=getParamValue("index",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).getItem(readIndex,elementShape,elementDType)]}case"TensorListScatterV2":case"TensorListScatter":{let scatterIndices=getParamValue("indices",node,tensorMap,context),scatterTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context),tensorList=scatter(scatterTensor,scatterIndices,elementShape,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElementsParam;node.op==="TensorListReserve"?numElementsParam="numElements":numElementsParam="maxNumElements";let numElements=getParamValue(numElementsParam,node,tensorMap,context),tensorList=reserve(elementShape,elementDtype,numElements);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListGather":{let gatherId=getParamValue("tensorListId",node,tensorMap,context),gatherIndices=getParamValue("indices",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(gatherId.id).gather(gatherIndices,elementDtype,elementShape)]}case"TensorListStack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),numElements=getParamValue("numElements",node,tensorMap,context);return[context.getTensorList(idTensor.id).stack(elementShape,elementDtype,numElements)]}case"TensorListFromTensor":{let tensor2=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDtype=getParamValue("elementDType",node,tensorMap,context),tensorList=fromTensor(tensor2,elementShape,elementDtype);return context.addTensorList(tensorList),[tensorList.idTensor]}case"TensorListConcat":{let concatId=getParamValue("tensorListId",node,tensorMap,context),tensorList=context.getTensorList(concatId.id),concatDtype=getParamValue("dtype",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context);return[tensorList.concat(concatDtype,elementShape)]}case"TensorListPushBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),writeTensor=getParamValue("tensor",node,tensorMap,context),tensorList=context.getTensorList(idTensor.id);return tensorList.pushBack(writeTensor),[tensorList.idTensor]}case"TensorListPopBack":{let idTensor=getParamValue("tensorListId",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),elementDType=getParamValue("elementDType",node,tensorMap,context);return[context.getTensorList(idTensor.id).popBack(elementShape,elementDType)]}case"TensorListSplit":{let splitTensor=getParamValue("tensor",node,tensorMap,context),elementShape=getParamValue("elementShape",node,tensorMap,context),lengths=getParamValue("lengths",node,tensorMap,context),tensorList=split2(splitTensor,lengths,elementShape);return context.addTensorList(tensorList),[tensorList.idTensor]}default:throw TypeError(`Node type ${node.op} is not implemented`)}};function fusedConvAndDepthWiseParams(node,tensorMap,context){let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",isBatchNorm=extraOp==="fusedbatchnorm",numArgs=getParamValue("numArgs",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(isBatchNorm)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context),[biasArg,preluArg]=getParamValue("args",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);return{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}}var executeOp4=(node,tensorMap,context)=>{switch(node.op){case"Conv1D":{let stride=getParamValue("stride",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilation=getParamValue("dilation",node,tensorMap,context);return[conv1d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),stride,pad3,dataFormat,dilation)]}case"Conv2D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"_FusedConv2D":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.conv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"FusedDepthwiseConv2dNative":{let{stride,pad:pad3,dataFormat,dilations,biasArg,preluArg,activationFunc,leakyreluAlpha}=fusedConvAndDepthWiseParams(node,tensorMap,context);return[fused_ops_exports.depthwiseConv2d({x:getParamValue("x",node,tensorMap,context),filter:getParamValue("filter",node,tensorMap,context),strides:[stride[1],stride[2]],pad:pad3,dataFormat,dilations:[dilations[1],dilations[2]],bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let shape=getParamValue("outputShape",node,tensorMap,context),stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context);return[conv2dTranspose(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),shape,[stride[1],stride[2]],pad3)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getPadding(node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthwiseConv2d(getParamValue("input",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2]],pad3,dataFormat,[dilations[1],dilations[2]])]}case"Conv3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase(),dilations=getParamValue("dilations",node,tensorMap,context);return[conv3d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[stride[1],stride[2],stride[3]],pad3,dataFormat,[dilations[1],dilations[2],dilations[3]])]}case"AvgPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPool":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3)]}case"MaxPoolWithArgmax":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context),includeBatchInIndex=getParamValue("includeBatchInIndex",node,tensorMap,context),{result,indexes}=maxPoolWithArgmax(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2]],[stride[1],stride[2]],pad3,includeBatchInIndex);return[result,indexes]}case"AvgPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[avgPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"MaxPool3D":{let stride=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),kernelSize=getParamValue("kernelSize",node,tensorMap,context);return[maxPool3d(getParamValue("x",node,tensorMap,context),[kernelSize[1],kernelSize[2],kernelSize[3]],[stride[1],stride[2],stride[3]],pad3)]}case"Dilation2D":{let strides=getParamValue("strides",node,tensorMap,context),pad3=getParamValue("pad",node,tensorMap,context),dilations=getParamValue("dilations",node,tensorMap,context),strideHeight=strides[1],strideWidth=strides[2],dilationHeight=dilations[1],dilationWidth=dilations[2];return[dilation2d(getParamValue("x",node,tensorMap,context),getParamValue("filter",node,tensorMap,context),[strideHeight,strideWidth],pad3,[dilationHeight,dilationWidth],"NHWC")]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp5=(node,tensorMap,context)=>{switch(node.op){case"Fill":{let shape=getParamValue("shape",node,tensorMap,context),dtype=getParamValue("dtype",node,tensorMap,context),value=getParamValue("value",node,tensorMap,context);return[fill(shape,value,dtype)]}case"LinSpace":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),num=getParamValue("num",node,tensorMap,context);return[linspace(start,stop,num)]}case"Multinomial":{let logits=getParamValue("logits",node,tensorMap,context),numSamples=getParamValue("numSamples",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[multinomial(logits,numSamples,seed)]}case"OneHot":{let indices=getParamValue("indices",node,tensorMap,context),depth=getParamValue("depth",node,tensorMap,context),onValue=getParamValue("onValue",node,tensorMap,context),offValue=getParamValue("offValue",node,tensorMap,context);return[oneHot(indices,depth,onValue,offValue)]}case"Ones":return[ones2(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"OnesLike":return[onesLike(getParamValue("x",node,tensorMap,context))];case"RandomUniform":return[randomUniform(getParamValue("shape",node,tensorMap,context),getParamValue("minval",node,tensorMap,context),getParamValue("maxval",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"Range":{let start=getParamValue("start",node,tensorMap,context),stop=getParamValue("stop",node,tensorMap,context),step4=getParamValue("step",node,tensorMap,context);return[range(start,stop,step4,getParamValue("dtype",node,tensorMap,context))]}case"TruncatedNormal":{let shape=getParamValue("shape",node,tensorMap,context),mean4=getParamValue("mean",node,tensorMap,context),stdDev=getParamValue("stdDev",node,tensorMap,context),seed=getParamValue("seed",node,tensorMap,context);return[truncatedNormal(shape,mean4,stdDev,getParamValue("dtype",node,tensorMap,context),seed)]}case"Zeros":return[zeros(getParamValue("shape",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ZerosLike":return[zerosLike(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function nmsParams(node,tensorMap,context){let boxes=getParamValue("boxes",node,tensorMap,context),scores=getParamValue("scores",node,tensorMap,context),maxOutputSize=getParamValue("maxOutputSize",node,tensorMap,context),iouThreshold=getParamValue("iouThreshold",node,tensorMap,context),scoreThreshold=getParamValue("scoreThreshold",node,tensorMap,context),softNmsSigma=getParamValue("softNmsSigma",node,tensorMap,context);return{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}}var executeOp6=async(node,tensorMap,context)=>{switch(node.op){case"NonMaxSuppressionV5":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma}=nmsParams(node,tensorMap,context),result=await image.nonMaxSuppressionWithScoreAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma);return[result.selectedIndices,result.selectedScores]}case"NonMaxSuppressionV4":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context),padToMaxOutputSize=getParamValue("padToMaxOutputSize",node,tensorMap,context),result=await image.nonMaxSuppressionPaddedAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize);return[result.selectedIndices,result.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes,scores,maxOutputSize,iouThreshold,scoreThreshold}=nmsParams(node,tensorMap,context);return[await image.nonMaxSuppressionAsync(boxes,scores,maxOutputSize,iouThreshold,scoreThreshold)]}case"Where":{let condition=cast(getParamValue("condition",node,tensorMap,context),"bool"),result=[await whereAsync(condition)];return condition.dispose(),result}case"ListDiff":return setdiff1dAsync(getParamValue("x",node,tensorMap,context),getParamValue("y",node,tensorMap,context));default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp7=(node,tensorMap,context)=>{switch(node.op){case"TopKV2":{let x=getParamValue("x",node,tensorMap,context),k=getParamValue("k",node,tensorMap,context),sorted=getParamValue("sorted",node,tensorMap,context),result=topk(x,k,sorted);return[result.values,result.indices]}case"Unique":{let x=getParamValue("x",node,tensorMap,context),result=unique(x);return[result.values,result.indices]}case"UniqueV2":{let x=getParamValue("x",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),result=unique(x,axis);return[result.values,result.indices]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp8=(node,tensorMap,context)=>{switch(node.op){case"Const":return tensorMap[node.name];case"PlaceholderWithDefault":let def=getParamValue("default",node,tensorMap,context);return[getTensor(node.name,tensorMap,context)||def];case"Placeholder":return[getTensor(node.name,tensorMap,context)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let data22=getParamValue("x",node,tensorMap,context);return[cloneTensor(data22)]}case"IdentityN":return getParamValue("x",node,tensorMap,context).map(t=>cloneTensor(t));case"Snapshot":let snapshot=getParamValue("x",node,tensorMap,context);return[cloneTensor(snapshot)];case"Shape":return[tensor1d(getParamValue("x",node,tensorMap,context).shape,"int32")];case"ShapeN":return getParamValue("x",node,tensorMap,context).map(t=>tensor1d(t.shape));case"Size":return[scalar(getParamValue("x",node,tensorMap,context).size,"int32")];case"Rank":return[scalar(getParamValue("x",node,tensorMap,context).rank,"int32")];case"NoOp":return[scalar(1)];case"Print":let input2=getParamValue("x",node,tensorMap,context),data2=getParamValue("data",node,tensorMap,context),message=getParamValue("message",node,tensorMap,context),summarize=getParamValue("summarize",node,tensorMap,context);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(message);for(let i=0;ivalue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(keys,values){this.checkKeyAndValueTensor(keys,values);let $keys=await keys.data();return this.tensorMap.forEach(value=>value.dispose()),this.tensorMap.clear(),tidy(()=>{let $values=unstack(values),keysLength=$keys.length,valuesLength=$values.length;util_exports.assert(keysLength===valuesLength,()=>`The number of elements doesn't match, keys has ${keysLength} elements, the values has ${valuesLength} elements.`);for(let i=0;i{let result=[];for(let i=0;i<$keys.length;i++){let key=$keys[i],value=this.findWithDefault(key,defaultValue);result.push(value)}return stack(result)})}findWithDefault(key,defaultValue){let result=this.tensorMap.get(key);return result!=null?result:defaultValue}checkKeyAndValueTensor(key,value){if(key.dtype!==this.keyDType)throw new Error(`Expect key dtype ${this.keyDType}, but got ${key.dtype}`);if(value.dtype!==this.valueDType)throw new Error(`Expect value dtype ${this.valueDType}, but got ${value.dtype}`)}},executeOp9=async(node,tensorMap,context,resourceManager)=>{switch(node.op){case"HashTable":case"HashTableV2":{let keyDType=getParamValue("keyDType",node,tensorMap,context),valueDType=getParamValue("valueDType",node,tensorMap,context),hashTable2=new HashTable(keyDType,valueDType);return resourceManager.addHashTable(node.name,hashTable2),[hashTable2.handle]}case"LookupTableImport":case"LookupTableImportV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).import(keys,values)]}case"LookupTableFind":case"LookupTableFindV2":{let handle=getParamValue("tableHandle",node,tensorMap,context,resourceManager),keys=getParamValue("keys",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[await resourceManager.getHashTableById(handle.id).find(keys,defaultValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp10=(node,tensorMap,context)=>{switch(node.op){case"ResizeBilinear":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeBilinear(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"ResizeNearestNeighbor":{let images=getParamValue("images",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context),alignCorners=getParamValue("alignCorners",node,tensorMap,context),halfPixelCenters=getParamValue("halfPixelCenters",node,tensorMap,context);return[image.resizeNearestNeighbor(images,[size[0],size[1]],alignCorners,halfPixelCenters)]}case"CropAndResize":{let image3=getParamValue("image",node,tensorMap,context),boxes=getParamValue("boxes",node,tensorMap,context),boxInd=getParamValue("boxInd",node,tensorMap,context),cropSize=getParamValue("cropSize",node,tensorMap,context),method=getParamValue("method",node,tensorMap,context),extrapolationValue=getParamValue("extrapolationValue",node,tensorMap,context);return[image.cropAndResize(image3,boxes,boxInd,cropSize,method,extrapolationValue)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp11=(node,tensorMap,context)=>{switch(node.op){case"Equal":return[equal(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"NotEqual":return[notEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Greater":return[greater(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"GreaterEqual":return[greaterEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Less":return[less(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LessEqual":return[lessEqual(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalAnd":return[logicalAnd(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"LogicalNot":return[logicalNot(getParamValue("a",node,tensorMap,context))];case"LogicalOr":return[logicalOr(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];case"Select":case"SelectV2":return[where(getParamValue("condition",node,tensorMap,context),getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp12=(node,tensorMap,context)=>{switch(node.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[matMul(getParamValue("a",node,tensorMap,context),getParamValue("b",node,tensorMap,context),getParamValue("transposeA",node,tensorMap,context),getParamValue("transposeB",node,tensorMap,context))];case"Transpose":return[transpose(getParamValue("x",node,tensorMap,context),getParamValue("perm",node,tensorMap,context))];case"_FusedMatMul":let[extraOp,activationFunc]=getParamValue("fusedOps",node,tensorMap,context),isBiasAdd=extraOp==="biasadd",isPrelu=activationFunc==="prelu",numArgs=getParamValue("numArgs",node,tensorMap,context),leakyreluAlpha=getParamValue("leakyreluAlpha",node,tensorMap,context);if(isBiasAdd){if(isPrelu&&numArgs!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!isPrelu&&numArgs!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[biasArg,preluArg]=getParamValue("args",node,tensorMap,context);return[fused_ops_exports.matMul({a:getParamValue("a",node,tensorMap,context),b:getParamValue("b",node,tensorMap,context),transposeA:getParamValue("transposeA",node,tensorMap,context),transposeB:getParamValue("transposeB",node,tensorMap,context),bias:biasArg,activation:activationFunc,preluActivationWeights:preluArg,leakyreluAlpha})];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp13=(node,tensorMap,context)=>{switch(node.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"FusedBatchNormV3":return[batchNorm(getParamValue("x",node,tensorMap,context),getParamValue("mean",node,tensorMap,context),getParamValue("variance",node,tensorMap,context),getParamValue("offset",node,tensorMap,context),getParamValue("scale",node,tensorMap,context),getParamValue("epsilon",node,tensorMap,context))];case"LRN":return[localResponseNormalization(getParamValue("x",node,tensorMap,context),getParamValue("radius",node,tensorMap,context),getParamValue("bias",node,tensorMap,context),getParamValue("alpha",node,tensorMap,context),getParamValue("beta",node,tensorMap,context))];case"Softmax":return[softmax(getParamValue("x",node,tensorMap,context))];case"LogSoftmax":return[logSoftmax(getParamValue("x",node,tensorMap,context))];case"SparseToDense":return[sparseToDense(getParamValue("sparseIndices",node,tensorMap,context),getParamValue("outputShape",node,tensorMap,context),getParamValue("sparseValues",node,tensorMap,context),getParamValue("defaultValue",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp14=(node,tensorMap,context)=>{switch(node.op){case"Max":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[max(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Mean":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[mean(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Min":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[min(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Sum":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[sum2(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"All":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[all(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Any":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[any(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"ArgMax":{let axis=getParamValue("axis",node,tensorMap,context);return[argMax(getParamValue("x",node,tensorMap,context),axis)]}case"ArgMin":{let axis=getParamValue("axis",node,tensorMap,context);return[argMin(getParamValue("x",node,tensorMap,context),axis)]}case"Prod":{let axis=getParamValue("axis",node,tensorMap,context),keepDims=getParamValue("keepDims",node,tensorMap,context);return[prod(getParamValue("x",node,tensorMap,context),axis,keepDims)]}case"Cumsum":{let axis=getParamValue("axis",node,tensorMap,context),exclusive=getParamValue("exclusive",node,tensorMap,context),reverse5=getParamValue("reverse",node,tensorMap,context);return[cumsum(getParamValue("x",node,tensorMap,context),axis,exclusive,reverse5)]}case"Bincount":let x=getParamValue("x",node,tensorMap,context),weights=getParamValue("weights",node,tensorMap,context),size=getParamValue("size",node,tensorMap,context);return[bincount(x,weights,size)];case"DenseBincount":{let x2=getParamValue("x",node,tensorMap,context),weights2=getParamValue("weights",node,tensorMap,context),size2=getParamValue("size",node,tensorMap,context),binaryOutput=getParamValue("binaryOutput",node,tensorMap,context);return[denseBincount(x2,weights2,size2,binaryOutput)]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp15=(node,tensorMap,context)=>{switch(node.op){case"ConcatV2":case"Concat":{let n=getParamValue("n",node,tensorMap,context),axis=getParamValue("axis",node,tensorMap,context),inputs=getParamValue("tensors",node,tensorMap,context);return inputs=inputs.slice(0,n),[concat(inputs,axis)]}case"Gather":{let input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),0)]}case"GatherV2":{let axis=getParamValue("axis",node,tensorMap,context),batchDims=getParamValue("batchDims",node,tensorMap,context),input2=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gather(input2,cast(indices,"int32"),axis,batchDims)]}case"Reverse":{let dims=getParamValue("dims",node,tensorMap,context),axis=[];for(let i=0;i{let axis=getParamValue("axis",node,tensorMap,context),tensors=getParamValue("tensors",node,tensorMap,context),shape=tensors[0].shape,squeezedShape=squeeze(tensors[0]).shape,mapped=tensors.map(tensor2=>{let sameShape=util_exports.arraysEqual(tensor2.shape,shape);if(!sameShape&&!util_exports.arraysEqual(squeeze(tensor2).shape,squeezedShape))throw new Error("the input tensors shape does not match");return sameShape?tensor2:reshape(tensor2,shape)});return[stack(mapped,axis)]});case"Unpack":{let axis=getParamValue("axis",node,tensorMap,context),tensor2=getParamValue("tensor",node,tensorMap,context);return unstack(tensor2,axis)}case"Tile":{let reps=getParamValue("reps",node,tensorMap,context);return[tile(getParamValue("x",node,tensorMap,context),reps)]}case"Split":case"SplitV":{let axis=getParamValue("axis",node,tensorMap,context),numOrSizeSplits=getParamValue("numOrSizeSplits",node,tensorMap,context),tensor2=getParamValue("x",node,tensorMap,context);return split(tensor2,numOrSizeSplits,axis)}case"ScatterNd":{let indices=getParamValue("indices",node,tensorMap,context),values=getParamValue("values",node,tensorMap,context),shape=getParamValue("shape",node,tensorMap,context);return[scatterND(indices,values,shape)]}case"GatherNd":{let x=getParamValue("x",node,tensorMap,context),indices=getParamValue("indices",node,tensorMap,context);return[gatherND(x,indices)]}case"SparseToDense":{let indices=getParamValue("sparseIndices",node,tensorMap,context),shape=getParamValue("outputShape",node,tensorMap,context),sparseValues=getParamValue("sparseValues",node,tensorMap,context),defaultValue=getParamValue("defaultValue",node,tensorMap,context);return[sparseToDense(indices,sparseValues,shape,sparseValues.dtype===defaultValue.dtype?defaultValue:cast(defaultValue,sparseValues.dtype))]}default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp16=(node,tensorMap,context)=>{switch(node.op){case"FFT":return[fft(getParamValue("x",node,tensorMap,context))];case"IFFT":return[ifft(getParamValue("x",node,tensorMap,context))];case"RFFT":return[rfft(getParamValue("x",node,tensorMap,context))];case"IRFFT":return[irfft(getParamValue("x",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}},executeOp17=(node,tensorMap,context)=>{switch(node.op){case"Cast":return[cast(getParamValue("x",node,tensorMap,context),getParamValue("dtype",node,tensorMap,context))];case"ExpandDims":{let axis=getParamValue("axis",node,tensorMap,context);return[expandDims(getParamValue("x",node,tensorMap,context),axis)]}case"Squeeze":{let axis=getParamValue("axis",node,tensorMap,context);return[squeeze(getParamValue("x",node,tensorMap,context),axis)]}case"Reshape":return[reshape(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];case"MirrorPad":return[mirrorPad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("mode",node,tensorMap,context))];case"PadV2":case"Pad":return[pad(getParamValue("x",node,tensorMap,context),getParamValue("padding",node,tensorMap,context),getParamValue("constantValue",node,tensorMap,context))];case"SpaceToBatchND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),paddings=getParamValue("paddings",node,tensorMap,context);return[spaceToBatchND(getParamValue("x",node,tensorMap,context),blockShape,paddings)]}case"BatchToSpaceND":{let blockShape=getParamValue("blockShape",node,tensorMap,context),crops=getParamValue("crops",node,tensorMap,context);return[batchToSpaceND(getParamValue("x",node,tensorMap,context),blockShape,crops)]}case"DepthToSpace":{let blockSize=getParamValue("blockSize",node,tensorMap,context),dataFormat=getParamValue("dataFormat",node,tensorMap,context).toUpperCase();return[depthToSpace(getParamValue("x",node,tensorMap,context),blockSize,dataFormat)]}case"BroadcastTo":return[broadcastTo(getParamValue("x",node,tensorMap,context),getParamValue("shape",node,tensorMap,context))];default:throw TypeError(`Node type ${node.op} is not implemented`)}};function executeOp18(node,tensorMap,context,resourceManager){let value=((node2,tensorMap2,context2)=>{switch(node2.category){case"arithmetic":return tidy(()=>executeOp(node2,tensorMap2,context2));case"basic_math":return tidy(()=>executeOp2(node2,tensorMap2,context2));case"control":return executeOp3(node2,tensorMap2,context2);case"convolution":return tidy(()=>executeOp4(node2,tensorMap2,context2));case"creation":return tidy(()=>executeOp5(node2,tensorMap2,context2));case"dynamic":return executeOp6(node2,tensorMap2,context2);case"evaluation":return tidy(()=>executeOp7(node2,tensorMap2,context2));case"image":return tidy(()=>executeOp10(node2,tensorMap2,context2));case"graph":return tidy(()=>executeOp8(node2,tensorMap2,context2));case"logical":return tidy(()=>executeOp11(node2,tensorMap2,context2));case"matrices":return tidy(()=>executeOp12(node2,tensorMap2,context2));case"normalization":return tidy(()=>executeOp13(node2,tensorMap2,context2));case"reduction":return tidy(()=>executeOp14(node2,tensorMap2,context2));case"slice_join":return tidy(()=>executeOp15(node2,tensorMap2,context2));case"spectral":return tidy(()=>executeOp16(node2,tensorMap2,context2));case"transformation":return tidy(()=>executeOp17(node2,tensorMap2,context2));case"hash_table":return executeOp9(node2,tensorMap2,context2,resourceManager);case"custom":let opMapper=getRegisteredOp(node2.op);if(opMapper&&opMapper.customExecutor)return opMapper.customExecutor(new NodeValueImpl(node2,tensorMap2,context2));throw TypeError(`Custom op ${node2.op} is not registered.`);default:throw TypeError(`Unknown op '${node2.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(node,tensorMap,context);return util_exports.isPromise(value)?value.then(data2=>[].concat(data2)):[].concat(value)}var ExecutionContext=class{constructor(weightMap={},tensorArrayMap={},tensorListMap={},functionMap={}){this.weightMap=weightMap,this.tensorArrayMap=tensorArrayMap,this.tensorListMap=tensorListMap,this.functionMap=functionMap,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(id,frameName){return{id,frameName,iterationId:0}}set currentContext(contexts2){this.contexts!==contexts2&&(this.contexts=contexts2,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let names=[];for(let i=0;icontext.id===0&&context.iterationId===0?"":`${context.frameName}-${context.iterationId}`).join("/"):""}enterFrame(frameId){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,frameId)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let context=Object.assign({},this.contexts[this.contexts.length-1]);context.iterationId+=1,context.id=this.lastId,this.contexts.splice(-1,1,context),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(name){return this.weightMap[name]}addTensorArray(tensorArray){this.tensorArrayMap[tensorArray.id]=tensorArray}getTensorArray(id){return this.tensorArrayMap[id]}addTensorList(tensorList){this.tensorListMap[tensorList.id]=tensorList}getTensorList(id){return this.tensorListMap[id]}dispose(keepIds){for(let key in this.tensorArrayMap)this.tensorArrayMap[key].clearAndClose(keepIds);for(let key in this.tensorListMap)this.tensorListMap[key].clearAndClose(keepIds)}};function getExecutionSubgraph(inputs,outputs,weightMap,initNodes){let usedNodes=new Set,missingInputs=[],dynamicNode=null,syncInputs=null,seen=new Set,inputNodeNames=Object.keys(inputs).map(name=>parseNodeName(name)[0]),initNodeNames=[];initNodes!=null&&(initNodeNames=initNodes.map(node=>parseNodeName(node.name)[0]));let frontier=[...outputs];for(;frontier.length>0;){let node=frontier.pop();if((isControlFlow(node)||isDynamicShape(node)||isHashTable(node))&&dynamicNode==null&&(dynamicNode=node,syncInputs=dynamicNode.children.map(child=>child.name).filter(name=>usedNodes.has(name))),usedNodes.add(node.name),weightMap[node.name]==null&&inputNodeNames.indexOf(node.name)===-1&&initNodeNames.indexOf(node.name)===-1){if(node.inputs.length===0){missingInputs.push(node.name);continue}node.inputs.forEach(input2=>{seen.has(input2.name)||(seen.add(input2.name),frontier.push(input2))})}}return{inputs,outputs,usedNodes,missingInputs,dynamicNode,syncInputs}}function getNodesInTopologicalOrder(graph2,weightMap,executionInfo){let{usedNodes,inputs}=executionInfo,frontier=[],inputNodes=Object.keys(inputs).map(name=>parseNodeName(name)[0]).map(name=>graph2.nodes[name]),initNodes=graph2.initNodes;inputNodes.forEach(input2=>{usedNodes.has(input2.name)&&frontier.push(input2)}),graph2.weights.forEach(weight=>{usedNodes.has(weight.name)&&frontier.push(weight)}),initNodes!=null&&initNodes.forEach(node=>{usedNodes.has(node.name)&&frontier.push(node)});let seen=new Set,orderedNodes=[];for(;frontier.length>0;){let node=frontier.pop();seen.add(node.name),weightMap[node.name]||orderedNodes.push(node),node.children.forEach(child=>{!seen.has(child.name)&&usedNodes.has(child.name)&&child.inputs.every(input2=>seen.has(input2.name))&&frontier.push(child)})}return orderedNodes}var CONTROL_FLOW_OPS=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],DYNAMIC_SHAPE_OPS=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],HASH_TABLE_OPS=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function isControlFlow(node){return CONTROL_FLOW_OPS.indexOf(node.op)>=0}function isDynamicShape(node){return DYNAMIC_SHAPE_OPS.indexOf(node.op)>=0}function isHashTable(node){return HASH_TABLE_OPS.indexOf(node.op)>=0}var GraphExecutor=class{constructor(graph2,parent){this.graph=graph2,this.parent=parent,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=graph2.outputs,this._inputs=graph2.inputs,this._initNodes=graph2.initNodes,this._signature=graph2.signature,this._functions=graph2.functions,graph2.functions!=null&&Object.keys(graph2.functions).forEach(name=>{this._functionExecutorMap[name]=new GraphExecutor(graph2.functions[name],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(weightMap){let weightIds=Object.keys(weightMap).map(key=>weightMap[key].map(tensor2=>tensor2.id));this._weightIds=[].concat(...weightIds),this._weightMap=weightMap}set resourceManager(resourceManager){this._resourceManager=resourceManager}get inputs(){return this._inputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(node=>({name:node.name,shape:node.attrParams.shape?node.attrParams.shape.value:void 0,dtype:node.attrParams.dtype?node.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(node=>node.signatureKey||node.name)}get outputNodes(){return this._outputs.map(node=>{let name=node.signatureKey||node.name;return node.defaultOutput?`${name}:${node.defaultOutput}`:name})}get functions(){return Object.keys(this._functions).reduce((map,key)=>(map[key]=this._functions[key].signature,map),{})}getCompilationKey(inputs,outputs){let sortedInputs=inputs.map(node=>node.name).sort(),sortedOutputs=outputs.map(node=>node.name).sort();return sortedInputs.join(this.SEPERATOR)+"--"+sortedOutputs.join(this.SEPERATOR)}compile(inputs,outputs){let executionInfo=getExecutionSubgraph(inputs,outputs,this.weightMap,this._initNodes),{missingInputs,dynamicNode,syncInputs}=executionInfo;if(dynamicNode!=null)throw new Error(`This execution contains the node '${dynamicNode.name}', which has the dynamic op '${dynamicNode.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${syncInputs}]`);if(missingInputs.length>0){let outNames=outputs.map(n=>n.name),inNames=Object.keys(inputs);throw new Error(`Cannot compute the outputs [${outNames}] from the provided inputs [${inNames}]. Missing the following inputs: [${missingInputs}]`)}return getNodesInTopologicalOrder(this.graph,this.weightMap,executionInfo)}execute(inputs,outputs){inputs=this.mapInputs(inputs);let names=Object.keys(inputs).sort();this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs);let inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputs.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let compilationKey=this.getCompilationKey(inputNodes,outputNodes),orderedNodes=this.compiledMap.get(compilationKey);orderedNodes==null&&(orderedNodes=this.compile(inputs,outputNodes),this.compiledMap.set(compilationKey,orderedNodes));let tensorArrayMap={},tensorListMap={};return tidy(()=>{let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let tensorsToKeep=this.getFrozenTensorIds(tensorsMap),intermediateTensorConsumerCount={};for(let i=0;igetTensor(name,tensorsMap,context))})}getFrozenTensorIds(tensorMap){let ids=[].concat.apply([],Object.keys(tensorMap).map(key=>tensorMap[key]).map(tensors=>tensors.map(tensor2=>tensor2.id)));return new Set(ids)}checkTensorForDisposal(nodeName,node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount){node.category==="control"||outputNames.indexOf(nodeName)!==-1||(tensorMap[nodeName].forEach(tensor2=>{tensor2!=null&&(intermediateTensorConsumerCount[tensor2.id]=(intermediateTensorConsumerCount[tensor2.id]||0)+node.children.length)}),node.inputs.forEach(input2=>{if(input2.category!=="control"){let tensors=getTensorsForCurrentContenxt(input2.name,tensorMap,context);tensors!=null&&tensors.forEach(tensor2=>{if(tensor2&&!tensorsToKeep.has(tensor2.id)){let count2=intermediateTensorConsumerCount[tensor2.id];count2===1?(tensor2.dispose(),delete intermediateTensorConsumerCount[tensor2.id]):count2!=null&&intermediateTensorConsumerCount[tensor2.id]--}})}}))}async executeAsync(inputs,outputs){return this._executeAsync(inputs,outputs)}async _executeAsync(inputs,outputs,isFunctionExecution=!1,tensorArrayMap={},tensorListMap={}){isFunctionExecution||(inputs=this.mapInputs(inputs),this.checkInputs(inputs),this.checkInputShapeAndType(inputs),outputs=this.mapOutputs(outputs),this.checkOutputs(outputs));let context=new ExecutionContext(this.weightMap,tensorArrayMap,tensorListMap,this.functionExecutorMap),tensorMap=await this.executeWithControlFlow(inputs,context,outputs,isFunctionExecution),results=outputs.map(name=>getTensor(name,tensorMap,context)),outputIds=results.map(t=>t.id),inputIds=Object.keys(inputs).map(name=>inputs[name].id),keepIds=new Set([...outputIds,...inputIds,...this.weightIds]);return Object.keys(tensorMap).forEach(key=>{tensorMap[key].forEach(tensor2=>{tensor2&&!tensor2.isDisposed&&!keepIds.has(tensor2.id)&&tensor2.dispose()})}),this.parent==null&&context.dispose(keepIds),results}async executeFunctionAsync(inputs,tensorArrayMap,tensorListMap){let mappedInputs=inputs.reduce((map,tensor2,index)=>(map[this.inputs[index].name]=tensor2,map),{});return this._executeAsync(mappedInputs,this.outputNodes,!0,tensorArrayMap,tensorListMap)}async executeWithControlFlow(inputs,context,outputNames,isFunctionExecution){let names=Object.keys(inputs),inputNodes=names.map(name=>this.graph.nodes[parseNodeName(name)[0]]),outputNodeNames=outputNames.map(name=>parseNodeName(name)[0]),outputNodes=outputNodeNames.map(name=>this.graph.nodes[name]);outputNodes.length===0&&(outputNodes=this._outputs);let{usedNodes,missingInputs,dynamicNode,syncInputs}=getExecutionSubgraph(inputs,outputNodes,this.weightMap,this._initNodes),stack2=[...inputNodes,...this.graph.weights,...this._initNodes||[]].map(node=>({node,contexts:context.currentContext})),tensorsMap=Object.assign({},this.weightMap);Object.keys(inputs).forEach(name=>{let[nodeName,index]=parseNodeName(name),tensors=[];tensors[index]=inputs[name],tensorsMap[nodeName]=tensors});let intermediateTensorConsumerCount={},tensorsToKeep=this.getFrozenTensorIds(tensorsMap),added={};for(;stack2.length>0;){let promises=this.processStack(inputNodes,stack2,context,tensorsMap,added,tensorsToKeep,outputNodeNames,intermediateTensorConsumerCount,usedNodes);await Promise.all(promises)}dynamicNode==null&&!isFunctionExecution&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let missingOutputs=outputNodes.filter(node=>!isControlFlow(node)&&!getTensor(node.name,tensorsMap,context)).map(node=>node.name);if(missingOutputs.length>0){let alternativeMsg="";throw dynamicNode!=null&&(alternativeMsg=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${syncInputs}]`),new Error(`Cannot compute the outputs [${missingOutputs}] from the provided inputs [${names}]. Consider providing the following inputs: [${missingInputs}]. ${alternativeMsg}`)}return tensorsMap}processStack(inputNodes,stack2,context,tensorMap,added,tensorsToKeep,outputNames,intermediateTensorConsumerCount,usedNodes){let promises=[];for(;stack2.length>0;){let item=stack2.pop();context.currentContext=item.contexts;let nodeName="";if(item.node.op==="Enter"&&getParamValue("isConstant",item.node,tensorMap,context)&&([nodeName]=getNodeNameAndIndex(item.node.name,context)),tensorMap[item.node.name]==null){let tensors=executeOp18(item.node,tensorMap,context,this._resourceManager);nodeName||([nodeName]=getNodeNameAndIndex(item.node.name,context));let currentContext=context.currentContext;util_exports.isPromise(tensors)?promises.push(tensors.then(t=>(tensorMap[nodeName]=t,context.currentContext=currentContext,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes),t))):(tensorMap[nodeName]=tensors,this.checkTensorForDisposal(nodeName,item.node,tensorMap,context,tensorsToKeep,outputNames,intermediateTensorConsumerCount),this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes))}else this.processChildNodes(item.node,stack2,context,tensorMap,added,usedNodes)}return promises}processChildNodes(node,stack2,context,tensorMap,added,usedNodes){node.children.forEach(childNode=>{let[nodeName]=getNodeNameAndIndex(childNode.name,context);added[nodeName]||!usedNodes.has(childNode.name)||(childNode.op==="Merge"?childNode.inputNames.some(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})):childNode.inputNames.every(name=>!!getTensor(name,tensorMap,context))&&(added[nodeName]=!0,stack2.push({contexts:context.currentContext,node:childNode})))})}dispose(){Object.keys(this.weightMap).forEach(key=>this.weightMap[key].forEach(tensor2=>tensor2.dispose()))}checkInputShapeAndType(inputs){Object.keys(inputs).forEach(name=>{let input2=inputs[name],[nodeName]=parseNodeName(name),node=this.graph.nodes[nodeName];if(node.attrParams.shape&&node.attrParams.shape.value){let shape=node.attrParams.shape.value,match=shape.length===input2.shape.length&&input2.shape.every((dim,index)=>shape[index]===-1||shape[index]===dim);util_exports.assert(match,()=>`The shape of dict['${node.name}'] provided in model.execute(dict) must be [${shape}], but was [${input2.shape}]`)}node.attrParams.dtype&&node.attrParams.dtype.value&&util_exports.assert(input2.dtype===node.attrParams.dtype.value,()=>`The dtype of dict['${node.name}'] provided in model.execute(dict) must be ${node.attrParams.dtype.value}, but was ${input2.dtype}`)})}mapInputs(inputs){let result={};for(let inputName in inputs)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[inputName]!=null){let tensor2=this._signature.inputs[inputName];result[tensor2.name]=inputs[inputName]}else result[inputName]=inputs[inputName];return result}checkInputs(inputs){let notInGraph=Object.keys(inputs).filter(name=>{let[nodeName]=parseNodeName(name);return this.graph.nodes[nodeName]==null});if(notInGraph.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${notInGraph}] that are not part of graph`)}mapOutputs(outputs){return outputs.map(name=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[name]!=null?this._signature.outputs[name].name:name,{})}checkOutputs(outputs){outputs.forEach(name=>{let[normalizedName]=parseNodeName(name);if(!this.graph.nodes[normalizedName])throw new Error(`The output '${name}' is not found in the graph`)})}},ResourceManager=class{constructor(hashTableNameToHandle={},hashTableMap={}){this.hashTableNameToHandle=hashTableNameToHandle,this.hashTableMap=hashTableMap}addHashTable(name,hashTable2){this.hashTableNameToHandle[name]=hashTable2.handle,this.hashTableMap[hashTable2.id]=hashTable2}getHashTableHandleByName(name){return this.hashTableNameToHandle[name]}getHashTableById(id){return this.hashTableMap[id]}dispose(){for(let key in this.hashTableMap)this.hashTableMap[key].clearAndClose(),delete this.hashTableMap[key];for(let name in this.hashTableNameToHandle)this.hashTableNameToHandle[name].dispose(),delete this.hashTableNameToHandle[name]}},TFHUB_SEARCH_PARAM="?tfjs-format=file",DEFAULT_MODEL_NAME="model.json",GraphModel=class{constructor(modelUrl,loadOptions={}){this.modelUrl=modelUrl,this.loadOptions=loadOptions,this.version="n/a",loadOptions==null&&(this.loadOptions={}),this.resourceManager=new ResourceManager}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let path=this.modelUrl;if(path.load!=null)this.handler=path;else if(this.loadOptions.requestInit!=null)this.handler=io_exports.browserHTTPRequest(path,this.loadOptions);else{let handlers=io_exports.getLoadHandlers(path,this.loadOptions);if(handlers.length===0)handlers.push(io_exports.browserHTTPRequest(path,this.loadOptions));else if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) load handlers for URL '${[path]}'`);this.handler=handlers[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let artifacts=await this.handler.load();return this.loadSync(artifacts)}loadSync(artifacts){this.artifacts=artifacts;let graph2=this.artifacts.modelTopology,signature;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?signature=this.artifacts.userDefinedMetadata.signature:signature=this.artifacts.signature,this.signature=signature,this.version=`${graph2.versions.producer}.${graph2.versions.minConsumer}`;let weightMap=io_exports.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new GraphExecutor(OperationMapper.Instance.transformGraph(graph2,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(weightMap),this.executor.resourceManager=this.resourceManager,artifacts.modelInitializer!=null&&artifacts.modelInitializer.node!=null){let initializer=OperationMapper.Instance.transformGraph(artifacts.modelInitializer);this.initializer=new GraphExecutor(initializer),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(handlerOrURL,config2){if(typeof handlerOrURL=="string"){let handlers=io_exports.getSaveHandlers(handlerOrURL);if(handlers.length===0)throw new Error(`Cannot find any save handlers for URL '${handlerOrURL}'`);if(handlers.length>1)throw new Error(`Found more than one (${handlers.length}) save handlers for URL '${handlerOrURL}'`);handlerOrURL=handlers[0]}if(handlerOrURL.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return handlerOrURL.save(this.artifacts)}predict(inputs,config2){return this.execute(inputs,this.outputNodes)}normalizeInputs(inputs){if(!(inputs instanceof Tensor)&&!Array.isArray(inputs))return inputs;if(inputs=Array.isArray(inputs)?inputs:[inputs],inputs.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${inputs.length} input tensors.`);return this.inputNodes.reduce((map,inputName,i)=>(map[inputName]=inputs[i],map),{})}normalizeOutputs(outputs){return outputs=outputs||this.outputNodes,Array.isArray(outputs)?outputs:[outputs]}execute(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=this.executor.execute(inputs,outputs);return result.length>1?result:result[0]}async executeAsync(inputs,outputs){inputs=this.normalizeInputs(inputs),outputs=this.normalizeOutputs(outputs);let result=await this.executor.executeAsync(inputs,outputs);return result.length>1?result:result[0]}convertTensorMapToTensorsMap(map){return Object.keys(map).reduce((newMap,key)=>(newMap[key]=[map[key]],newMap),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function loadGraphModel(modelUrl,options={}){if(modelUrl==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");options==null&&(options={}),options.fromTFHub&&modelUrl.load==null&&(modelUrl.endsWith("/")||(modelUrl=modelUrl+"/"),modelUrl=`${modelUrl}${DEFAULT_MODEL_NAME}${TFHUB_SEARCH_PARAM}`);let model2=new GraphModel(modelUrl,options);return await model2.load(),model2}var version11="2.8.3",dist_exports={};__export2(dist_exports,{CSVDataset:()=>CSVDataset,Dataset:()=>Dataset,FileDataSource:()=>FileDataSource,TextLineDataset:()=>TextLineDataset,URLDataSource:()=>URLDataSource,array:()=>array,csv:()=>csv,func:()=>func,generator:()=>generator,microphone:()=>microphone,version_data:()=>version12,webcam:()=>webcam,zip:()=>zip});var seedrandom4=__toModule2(require_seedrandom6()),seedrandom3=__toModule2(require_seedrandom6());function deepMap(input2,mapFn){return deepMapInternal(input2,mapFn)}function deepMapInternal(input2,mapFn,seen=new Map,containedIn=new Set){if(input2==null)return null;if(containedIn.has(input2))throw new Error("Circular references are not supported.");if(seen.has(input2))return seen.get(input2);let result=mapFn(input2);if(result.recurse&&result.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let child=input2[k],childResult=deepMapInternal(child,mapFn,seen,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return seen.set(input2,result.value),result.value}function deepZip(inputs,zipFn=zipToList){return deepZipInternal(inputs,zipFn)}function deepZipInternal(inputs,zipFn,containedIn=new Set){let input2=inputs[0];if(containedIn.has(input2))throw new Error("Circular references are not supported.");let result=zipFn(inputs);if(result.recurse&&result.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(result.recurse)if(isIterable2(input2)){let mappedIterable=Array.isArray(input2)?[]:{};containedIn.add(input2);for(let k in input2){let children=inputs.map(x=>x[k]),childResult=deepZipInternal(children,zipFn,containedIn);mappedIterable[k]=childResult}return containedIn.delete(input2),mappedIterable}else throw new Error(`Can't recurse into non-iterable type: ${input2}`);else return result.value}function zipToList(x){return x===null?null:isIterable2(x[0])?{value:null,recurse:!0}:{value:x,recurse:!1}}async function deepMapAndAwaitAll(input2,mapFn){let seen=new Map;deepMapInternal(input2,mapFn,seen);for(let key of Array.from(seen.keys())){let value=seen.get(key);if(util_exports.isPromise(value)){let mappedValue=await value;seen.set(key,mappedValue)}}return deepMapInternal(input2,mapFn,seen)}function isIterable2(obj){return obj!=null&&!ArrayBuffer.isView(obj)&&(Array.isArray(obj)||typeof obj=="object"&&!(obj instanceof Tensor))}function canTensorify(obj){return obj==null||isPrimitive(obj)||Array.isArray(obj)||typeof obj=="object"&&obj instanceof Tensor||util_exports.isTypedArray(obj)}function isPrimitive(value){return value===null||typeof value!="object"&&typeof value!="function"}function deepClone(container){return deepMap(container,cloneIfTensor)}function cloneIfTensor(item){return item instanceof Tensor?{value:item.clone(),recurse:!1}:isIterable2(item)?{value:null,recurse:!0}:{value:item,recurse:!1}}var RingBuffer=class{constructor(capacity){if(this.capacity=capacity,this.begin=0,this.end=0,capacity==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(capacity<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(capacity),this.doubledCapacity=2*capacity}wrap(index){for(;index<0;)index+=this.doubledCapacity;return index%this.doubledCapacity}get(index){if(index<0)throw new RangeError("Can't get item at a negative index.");return this.data[index%this.capacity]}set(index,value){if(index<0)throw new RangeError("Can't set item at a negative index.");this.data[index%this.capacity]=value}length(){let length=this.end-this.begin;return length<0&&(length=this.doubledCapacity+length),length}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,value),this.end=this.wrap(this.end+1)}pushAll(values){for(let value of values)this.push(value)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let result=this.get(this.end);return this.set(this.end,void 0),result}unshift(value){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,value)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let result=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),result}shuffleExcise(relativeIndex){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let index=this.wrap(this.begin+relativeIndex),result=this.get(index);return this.set(index,this.pop()),result}},GrowingRingBuffer=class extends RingBuffer{constructor(){super(GrowingRingBuffer.INITIAL_CAPACITY)}isFull(){return!1}push(value){super.isFull()&&this.expand(),super.push(value)}unshift(value){super.isFull()&&this.expand(),super.unshift(value)}expand(){let newCapacity=this.capacity*2,newData=new Array(newCapacity),len=this.length();for(let i=0;ix===!0)}rowMajorBatch(batchSize,smallLastBatch=!0){return new RowMajorBatchIterator(this,batchSize,smallLastBatch)}columnMajorBatch(batchSize,smallLastBatch=!0,zipFn=zipToList){return this.rowMajorBatch(batchSize,smallLastBatch).map(x=>deepZip(x,zipFn))}concatenate(iterator,baseErrorHandler){return new ChainedIterator(iteratorFromItems([this,iterator]),baseErrorHandler)}take(count2){return count2<0||count2==null?this:new TakeIterator(this,count2)}skip(count2){return count2<0||count2==null?this:new SkipIterator(this,count2)}prefetch(bufferSize){return new PrefetchIterator(this,bufferSize)}shuffle(windowSize,seed){return new ShuffleIterator(this,windowSize,seed)}serial(){return new SerialIterator(this)}},ArrayIterator=class extends LazyIterator{constructor(items){super();this.items=items,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let item=this.items[this.trav];return this.trav++,{value:deepClone(item),done:!1}}},FunctionCallIterator=class extends LazyIterator{constructor(nextFn){super();this.nextFn=nextFn}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},SerialIterator=class extends LazyIterator{constructor(upstream){super();this.upstream=upstream,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},SkipIterator=class extends LazyIterator{constructor(upstream,maxCount){super();this.upstream=upstream,this.maxCount=maxCount,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},RowMajorBatchIterator=class extends LazyIterator{constructor(upstream,batchSize,enableSmallLastBatch=!0){super();this.upstream=upstream,this.batchSize=batchSize,this.enableSmallLastBatch=enableSmallLastBatch,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let batch=[];for(;batch.length0?{value:batch,done:!1}:{value:null,done:!0};batch.push(item.value)}return{value:batch,done:!1}}},FilterIterator=class extends LazyIterator{constructor(upstream,predicate){super();this.upstream=upstream,this.predicate=predicate,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let item=await this.upstream.next();if(item.done||this.predicate(item.value))return item;dispose(item.value)}}},MapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Map`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},ErrorHandlingLazyIterator=class extends LazyIterator{constructor(upstream,handler){super();this.upstream=upstream,this.handler=handler,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},AsyncMapIterator=class extends LazyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let item=await this.upstream.next();if(item.done)return{value:null,done:!0};let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mapped=await this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mapped);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return{value:mapped,done:!1}}},OneToManyIterator=class extends LazyIterator{constructor(){super();this.outputQueue=new GrowingRingBuffer,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},FlatmapIterator=class extends OneToManyIterator{constructor(upstream,transform){super();this.upstream=upstream,this.transform=transform}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let item=await this.upstream.next();if(item.done)return!1;let inputTensors=tensor_util_exports.getTensorsInContainer(item.value),mappedArray=this.transform(item.value),outputTensors=tensor_util_exports.getTensorsInContainer(mappedArray);this.outputQueue.pushAll(mappedArray);for(let t of inputTensors)tensor_util_exports.isTensorInList(t,outputTensors)||t.dispose();return!0}},ChainedIterator=class extends LazyIterator{constructor(iterators,baseErrorHandler){super();this.baseErrorHandler=baseErrorHandler,this.lastRead=null,this.iterator=null,this.moreIterators=iterators}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(lastRead){if(await lastRead,this.iterator==null){let iteratorResult=await this.moreIterators.next();if(iteratorResult.done)return{value:null,done:!0};this.iterator=iteratorResult.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let itemResult=await this.iterator.next();return itemResult.done?(this.iterator=null,this.readFromChain(lastRead)):itemResult}},ZipMismatchMode;(function(ZipMismatchMode2){ZipMismatchMode2[ZipMismatchMode2.FAIL=0]="FAIL",ZipMismatchMode2[ZipMismatchMode2.SHORTEST=1]="SHORTEST",ZipMismatchMode2[ZipMismatchMode2.LONGEST=2]="LONGEST"})(ZipMismatchMode||(ZipMismatchMode={}));var ZipIterator=class extends LazyIterator{constructor(iterators,mismatchMode=ZipMismatchMode.FAIL){super();this.iterators=iterators,this.mismatchMode=mismatchMode,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(afterState){await afterState;let numIterators=0,iteratorsDone=0;function getNext(container){return container instanceof LazyIterator?{value:container.next().then(x=>(numIterators++,x.done&&iteratorsDone++,x.value)),recurse:!1}:{value:null,recurse:!0}}let mapped=await deepMapAndAwaitAll(this.iterators,getNext);if(numIterators===iteratorsDone)return{value:null,done:!0};if(iteratorsDone>0)switch(this.mismatchMode){case ZipMismatchMode.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ZipMismatchMode.SHORTEST:return{value:null,done:!0};case ZipMismatchMode.LONGEST:default:}return this.count++,{value:mapped,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},PrefetchIterator=class extends LazyIterator{constructor(upstream,bufferSize){super();this.upstream=upstream,this.bufferSize=bufferSize,this.buffer=new RingBuffer(bufferSize)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let v=this.upstream.next();this.buffer.push(v)}}next(){return this.refill(),this.buffer.shift()}},ShuffleIterator=class extends PrefetchIterator{constructor(upstream,windowSize,seed){super(upstream,windowSize);this.upstream=upstream,this.windowSize=windowSize,this.upstreamExhausted=!1,this.random=seedrandom3.alea(seed||util_exports.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(max6){return Math.floor(this.random()*max6)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let chosenIndex=this.chooseIndex(),result=await this.buffer.shuffleExcise(chosenIndex);if(result.done)this.upstreamExhausted=!0;else return this.refill(),result}return{value:null,done:!0}}},Dataset=class{constructor(){this.size=null}batch(batchSize,smallLastBatch=!0){let base2=this;util_exports.assert(batchSize>0,()=>`batchSize needs to be positive, but it is ${batchSize}`);let size;return this.size===Infinity||this.size==null?size=this.size:smallLastBatch?size=Math.ceil(this.size/batchSize):size=Math.floor(this.size/batchSize),datasetFromIteratorFn(async()=>(await base2.iterator()).columnMajorBatch(batchSize,smallLastBatch,deepBatchConcat),size)}concatenate(dataset){let base2=this,size;return this.size===Infinity||dataset.size===Infinity?size=Infinity:this.size!=null&&dataset.size!=null?size=this.size+dataset.size:size=null,datasetFromIteratorFn(async()=>(await base2.iterator()).concatenate(await dataset.iterator()),size)}filter(predicate){let base2=this,size;return this.size===Infinity?size=Infinity:size=null,datasetFromIteratorFn(async()=>(await base2.iterator()).filter(x=>tidy(()=>predicate(x))),size)}async forEachAsync(f){return(await this.iterator()).forEachAsync(f)}map(transform){let base2=this;return datasetFromIteratorFn(async()=>(await base2.iterator()).map(x=>tidy(()=>transform(x))),this.size)}mapAsync(transform){let base2=this;return datasetFromIteratorFn(async()=>(await base2.iterator()).mapAsync(transform),this.size)}prefetch(bufferSize){if(bufferSize==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let base2=this;return datasetFromIteratorFn(async()=>(await base2.iterator()).prefetch(bufferSize),this.size)}repeat(count2){let base2=this,size;return this.size!=null&&count2>0?size=this.size*count2:count2===0?size=0:this.size!=null&&(count2===void 0||count2<0)?size=Infinity:size=null,datasetFromIteratorFn(async()=>{let iteratorIterator=iteratorFromFunction(async()=>({value:await base2.iterator(),done:!1}));return iteratorFromConcatenated(iteratorIterator.take(count2))},size)}skip(count2){let base2=this,size;return this.size!=null&&count2>=0&&this.size>=count2?size=this.size-count2:this.size!=null&&(this.size(await base2.iterator()).skip(count2),size)}shuffle(bufferSize,seed,reshuffleEachIteration=!0){if(bufferSize==null||bufferSize<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let base2=this,random=seedrandom4.alea(seed||util_exports.now().toString());return datasetFromIteratorFn(async()=>{let seed2=random.int32();return reshuffleEachIteration&&(seed2+=random.int32()),(await base2.iterator()).shuffle(bufferSize,seed2.toString())},this.size)}take(count2){let base2=this,size;return this.size!=null&&this.size>count2?size=count2:this.size!=null&&this.size<=count2?size=this.size:size=null,datasetFromIteratorFn(async()=>(await base2.iterator()).take(count2),size)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Dataset.MAX_BUFFER_SIZE=1e4;function datasetFromIteratorFn(iteratorFn,size=null){return new class extends Dataset{constructor(){super(...arguments);this.size=size}async iterator(){return iteratorFn()}}}function array(items){return datasetFromIteratorFn(async()=>iteratorFromItems(items),items.length)}function zip(datasets){if(!isIterable2(datasets))throw new Error("The argument to zip() must be an object or array.");let size;if(Array.isArray(datasets))for(let i=0;i{let streams=await deepMapAndAwaitAll(datasets,d=>{if(d instanceof Dataset)return{value:d.iterator(),recurse:!1};if(isIterable2(d))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return iteratorFromZipped(streams,ZipMismatchMode.SHORTEST)},size)}function deepBatchConcat(rows){if(rows===null)return null;let exampleRow=rows[0];return canTensorify(exampleRow)?{value:batchConcat(rows),recurse:!1}:{value:null,recurse:!0}}function batchConcat(arrays){if(arrays.length===0)throw new Error("Can't make a batch of zero elements.");return arrays[0]instanceof Tensor?stack(arrays):tensor(arrays)}var TextLineDataset=class extends Dataset{constructor(input2){super();this.input=input2}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(line=>(line.endsWith("\r")&&(line=line.slice(0,-1)),line))}},CODE_QUOTE='"',STATE_OUT=Symbol("out"),STATE_FIELD=Symbol("field"),STATE_QUOTE=Symbol("quote"),STATE_QUOTE_AFTER_QUOTE=Symbol("quoteafterquote"),STATE_WITHIN_QUOTE_IN_QUOTE=Symbol("quoteinquote"),CSVDataset=class extends Dataset{constructor(input2,csvConfig){super();this.input=input2,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new TextLineDataset(input2),csvConfig||(csvConfig={}),this.hasHeader=csvConfig.hasHeader!==!1,this.fullColumnNames=csvConfig.columnNames,this.columnConfigs=csvConfig.columnConfigs,this.configuredColumnsOnly=csvConfig.configuredColumnsOnly,csvConfig.delimWhitespace?(util_exports.assert(csvConfig.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=csvConfig.delimiter?csvConfig.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let columnNamesFromFile=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!columnNamesFromFile)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&columnNamesFromFile&&util_exports.assert(columnNamesFromFile.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+columnNamesFromFile.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=columnNamesFromFile);let counts=this.fullColumnNames.reduce((countAcc,name)=>(countAcc[name]=countAcc[name]+1||1,countAcc),{}),duplicateNames=Object.keys(counts).filter(name=>counts[name]>1);if(util_exports.assert(duplicateNames.length===0,()=>"Duplicate column names found: "+duplicateNames.toString()),this.columnConfigs){for(let key of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(key)===-1)throw new Error('The key "'+key+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let firstElement=await(await this.base.iterator()).next();if(firstElement.done)throw new Error("No data was found for CSV parsing.");let firstLine=firstElement.value;return this.parseRow(firstLine,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let lines=await this.base.iterator();return this.hasHeader&&(lines=lines.skip(1)),lines.map(x=>this.makeDataElement(x))}makeDataElement(line){let values=this.parseRow(line),features={},labels={};for(let i=0;i14||!Number.isInteger(fftSizeLog2))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=microphoneConfig.numFramesPerSpectrogram||43,this.sampleRateHz=microphoneConfig.sampleRateHz,this.columnTruncateLength=microphoneConfig.columnTruncateLength||this.fftSize,this.audioTrackConstraints=microphoneConfig.audioTrackConstraints,this.smoothingTimeConstant=microphoneConfig.smoothingTimeConstant||0,this.includeSpectrogram=microphoneConfig.includeSpectrogram!==!1,this.includeWaveform=microphoneConfig.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(microphoneConfig={}){if(env().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let microphoneIterator=new MicrophoneIterator(microphoneConfig);return await microphoneIterator.start(),microphoneIterator}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let ctxConstructor=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new ctxConstructor,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let streamSource=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,streamSource.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let spectrogramTensor,waveformTensor,audioDataQueue=await this.getAudioData();if(this.includeSpectrogram){let freqData=this.flattenQueue(audioDataQueue.freqDataQueue);spectrogramTensor=this.getTensorFromAudioDataArray(freqData,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let timeData=this.flattenQueue(audioDataQueue.timeDataQueue);waveformTensor=this.getTensorFromAudioDataArray(timeData,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:spectrogramTensor,waveform:waveformTensor},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let freqDataQueue=[],timeDataQueue=[],currentFrames=0;return new Promise(resolve=>{let intervalID=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&resolve({freqDataQueue,timeDataQueue}),freqDataQueue.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),timeDataQueue.push(this.timeData.slice())),++currentFrames===this.numFrames&&(clearInterval(intervalID),resolve({freqDataQueue,timeDataQueue}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(queue){let frameSize=queue[0].length,freqData=new Float32Array(queue.length*frameSize);return queue.forEach((data2,i)=>freqData.set(data2,i*frameSize)),freqData}getTensorFromAudioDataArray(freqData,shape){let vals=new Float32Array(util_exports.sizeFromShape(shape));return vals.set(freqData,vals.length-freqData.length),tensor(vals,shape)}},WebcamIterator=class extends LazyIterator{constructor(webcamVideoElement,webcamConfig){super();if(this.webcamVideoElement=webcamVideoElement,this.webcamConfig=webcamConfig,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=tensor1d([0],"int32"),this.webcamConfig.centerCrop){let widthCroppingRatio=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,heightCroppingRatio=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,widthCropStart=(1-widthCroppingRatio)/2,heightCropStart=(1-heightCroppingRatio)/2,widthCropEnd=widthCropStart+widthCroppingRatio,heightCropEnd=heightCroppingRatio+heightCropStart;this.cropBox=tensor2d([heightCropStart,widthCropStart,heightCropEnd,widthCropEnd],[1,4])}else this.cropBox=tensor2d([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(webcamVideoElement,webcamConfig={}){if(env().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!webcamVideoElement){if(webcamVideoElement=document.createElement("video"),!webcamConfig.resizeWidth||!webcamConfig.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");webcamVideoElement.width=webcamConfig.resizeWidth,webcamVideoElement.height=webcamConfig.resizeHeight}let webcamIterator=new WebcamIterator(webcamVideoElement,webcamConfig);return await webcamIterator.start(),webcamIterator}async start(){this.webcamConfig.facingMode&&util_exports.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(error){console.log(error),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(resolve=>{this.webcamVideoElement.onloadedmetadata=()=>{resolve()}})}async next(){if(this.isClosed)return{value:null,done:!0};let img;try{img=browser_exports.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(img),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{img.dispose()}else return{value:img,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(img){return tidy(()=>{let expandedImage=img.toFloat().expandDims(0),resizedImage;resizedImage=image.cropAndResize(expandedImage,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let shape=resizedImage.shape;return resizedImage.reshape(shape.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(track=>track.stop());try{this.webcamVideoElement.srcObject=null}catch(error){console.log(error),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},DataSource=class{},StringIterator=class extends LazyIterator{split(separator){return new SplitIterator(this,separator)}},SplitIterator=class extends StringIterator{constructor(upstream,separator){super();this.upstream=upstream,this.impl=new SplitIteratorImpl(upstream,separator)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},SplitIteratorImpl=class extends OneToManyIterator{constructor(upstream,separator){super();this.upstream=upstream,this.separator=separator,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let chunkResult=await this.upstream.next();if(chunkResult.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let lines=chunkResult.value.split(this.separator);lines[0]=this.carryover+lines[0];for(let line of lines.slice(0,-1))this.outputQueue.push(line);return this.carryover=lines[lines.length-1],!0}},ByteChunkIterator=class extends LazyIterator{decodeUTF8(){return new Utf8Iterator(this)}},Utf8Iterator=class extends StringIterator{constructor(upstream){super();this.upstream=upstream,this.impl=new Utf8IteratorImpl(upstream)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Utf8IteratorImpl=class extends OneToManyIterator{constructor(upstream){super();if(this.upstream=upstream,env().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder}=require_string_decoder();this.decoder=new StringDecoder("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let chunkResult=await this.upstream.next(),chunk;if(chunkResult.done)return!1;chunk=chunkResult.value;let text;return env().get("IS_BROWSER")?text=this.decoder.decode(chunk,{stream:!0}):text=this.decoder.write(Buffer.from(chunk.buffer)),this.outputQueue.push(text),!0}},FileChunkIterator=class extends ByteChunkIterator{constructor(file,options={}){super();this.file=file,this.options=options,util_exports.assert(file instanceof Uint8Array||(env().get("IS_BROWSER")?file instanceof File||file instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=options.offset||0,this.chunkSize=options.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((resolve,reject)=>{let end=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)resolve(new Uint8Array(this.file.slice(this.offset,end)));else{let fileReader=new FileReader;fileReader.onload=event=>{let data2=fileReader.result;if(data2 instanceof ArrayBuffer&&(data2=new Uint8Array(data2)),!(data2 instanceof Uint8Array))return reject(new TypeError("FileReader returned unknown type."));resolve(data2)},fileReader.onabort=event=>reject(new Error("Aborted")),fileReader.onerror=event=>reject(new Error(event.type));let slice5=this.file.slice(this.offset,end);fileReader.readAsArrayBuffer(slice5)}this.offset=end}),done:!1}}};async function urlChunkIterator(url,options={}){let urlString,requestInit;typeof url=="string"?urlString=url:(urlString=url.url,requestInit=getRequestInitFromRequest(url));let response=await util_exports.fetch(urlString,requestInit);if(response.ok){let uint8Array=new Uint8Array(await response.arrayBuffer());return new FileChunkIterator(uint8Array,options)}else throw new Error(response.statusText)}var getRequestInitFromRequest=request=>({method:request.method,headers:request.headers,body:request.body,mode:request.mode,credentials:request.credentials,cache:request.cache,redirect:request.redirect,referrer:request.referrer,integrity:request.integrity});function isLocalPath(source){return typeof source=="string"&&source.substr(0,7)==="file://"}var FileDataSource=class extends DataSource{constructor(input2,options={}){super();this.input=input2,this.options=options}async iterator(){if(isLocalPath(this.input)&&env().get("IS_NODE")){let fs=require("fs");this.input=fs.readFileSync(this.input.substr(7))}return new FileChunkIterator(this.input,this.options)}},URLDataSource=class extends DataSource{constructor(url,fileOptions={}){super();this.url=url,this.fileOptions=fileOptions}async iterator(){return isLocalPath(this.url)?new FileDataSource(this.url,this.fileOptions).iterator():urlChunkIterator(this.url,this.fileOptions)}};function csv(source,csvConfig={}){return new CSVDataset(new URLDataSource(source),csvConfig)}function func(f){let iter=iteratorFromFunction(f);return datasetFromIteratorFn(async()=>iter)}function generator(generator2){return datasetFromIteratorFn(async()=>{let gen=await generator2();return iteratorFromFunction(()=>gen.next())})}async function webcam(webcamVideoElement,webcamConfig){return WebcamIterator.create(webcamVideoElement,webcamConfig)}async function microphone(microphoneConfig){return MicrophoneIterator.create(microphoneConfig)}var version12="2.8.3",version13={tfjs:version,"tfjs-core":version2,"tfjs-data":version3,"tfjs-layers":version4,"tfjs-converter":version5,"tfjs-backend-cpu":version7,"tfjs-backend-webgl":version8,"tfjs-backend-wasm":version9};var config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);setWebGLContext(2,gl);let ctx=new GPGPUContext(gl);registerBackend(config.name,()=>new MathBackendWebGL(ctx),config.priority),getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};registerKernel(newKernelConfig)}),ENV.set("WEBGL_VERSION",2),ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet());var models={},config2={},anchors=[],kMidHipCenter=0,kPoseDetectKeyNum=2,kFullBodySizeRot=1;function calculateScale(min_scale,max_scale,stride_index,num_strides){return num_strides===1?(min_scale+max_scale)*.5:min_scale+(max_scale-min_scale)*1*stride_index/(num_strides-1)}function generateAnchors(){let options={};options.strides=[],options.aspect_ratios=[],options.feature_map_height=[],options.num_layers=4,options.min_scale=.1484375,options.max_scale=.75,options.input_size_height=128,options.input_size_width=128,options.anchor_offset_x=.5,options.anchor_offset_y=.5,options.strides.push(8),options.strides.push(16),options.strides.push(16),options.strides.push(16),options.aspect_ratios.push(1),options.reduce_boxes_in_lowest_layer=!1,options.interpolated_scale_aspect_ratio=1,options.fixed_anchor_size=!0;let layer_id=0;for(;layer_id0){let scale_next=last_same_stride_layer===options.strides.length-1?1:calculateScale(options.min_scale,options.max_scale,last_same_stride_layer+1,options.strides.length);scales.push(Math.sqrt(scale2*scale_next)),aspect_ratios.push(options.interpolated_scale_aspect_ratio)}}last_same_stride_layer++}for(let i=0;iconfig2.pose.scoreThreshold){let idx=(4+2*kPoseDetectKeyNum)*i,sx=boxes[idx+0],sy=boxes[idx+1],w=boxes[idx+2]/config2.pose.inputSize,h=boxes[idx+3]/config2.pose.inputSize,cx=(sx+anchors[i].x_center*config2.pose.inputSize)/config2.pose.inputSize,cy=(sy+anchors[i].y_center*config2.pose.inputSize)/config2.pose.inputSize;region.score=Math.round(1e3*score)/1e3,region.box=[cx-w*.5,cy-h*.5,w*.5,h*.5];let keys=new Array(kPoseDetectKeyNum);for(let j=0;j{config2=cfg;let resize=image.resizeBilinear(image3,[config2.pose.inputSize,config2.pose.inputSize],!1),enhance=div(resize,127.5).sub(1);dispose(resize);let logits=await models.blazepose.predict(enhance);dispose(enhance);let regions=await decode(logits);logits[0].dispose(),logits[1].dispose(),log("poses",regions),resolve(regions)}):null}function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot4(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},pose:{enabled:!1,scoreThreshold:.6,iouThreshold:.3,modelPath:"../models/blazepose.json",inputSize:128},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` +`).map(line=>(line.endsWith("\r")&&(line=line.slice(0,-1)),line))}},CODE_QUOTE='"',STATE_OUT=Symbol("out"),STATE_FIELD=Symbol("field"),STATE_QUOTE=Symbol("quote"),STATE_QUOTE_AFTER_QUOTE=Symbol("quoteafterquote"),STATE_WITHIN_QUOTE_IN_QUOTE=Symbol("quoteinquote"),CSVDataset=class extends Dataset{constructor(input2,csvConfig){super();this.input=input2,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new TextLineDataset(input2),csvConfig||(csvConfig={}),this.hasHeader=csvConfig.hasHeader!==!1,this.fullColumnNames=csvConfig.columnNames,this.columnConfigs=csvConfig.columnConfigs,this.configuredColumnsOnly=csvConfig.configuredColumnsOnly,csvConfig.delimWhitespace?(util_exports.assert(csvConfig.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=csvConfig.delimiter?csvConfig.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let columnNamesFromFile=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!columnNamesFromFile)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&columnNamesFromFile&&util_exports.assert(columnNamesFromFile.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+columnNamesFromFile.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=columnNamesFromFile);let counts=this.fullColumnNames.reduce((countAcc,name)=>(countAcc[name]=countAcc[name]+1||1,countAcc),{}),duplicateNames=Object.keys(counts).filter(name=>counts[name]>1);if(util_exports.assert(duplicateNames.length===0,()=>"Duplicate column names found: "+duplicateNames.toString()),this.columnConfigs){for(let key of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(key)===-1)throw new Error('The key "'+key+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let firstElement=await(await this.base.iterator()).next();if(firstElement.done)throw new Error("No data was found for CSV parsing.");let firstLine=firstElement.value;return this.parseRow(firstLine,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let lines=await this.base.iterator();return this.hasHeader&&(lines=lines.skip(1)),lines.map(x=>this.makeDataElement(x))}makeDataElement(line){let values=this.parseRow(line),features={},labels={};for(let i=0;i14||!Number.isInteger(fftSizeLog2))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=microphoneConfig.numFramesPerSpectrogram||43,this.sampleRateHz=microphoneConfig.sampleRateHz,this.columnTruncateLength=microphoneConfig.columnTruncateLength||this.fftSize,this.audioTrackConstraints=microphoneConfig.audioTrackConstraints,this.smoothingTimeConstant=microphoneConfig.smoothingTimeConstant||0,this.includeSpectrogram=microphoneConfig.includeSpectrogram!==!1,this.includeWaveform=microphoneConfig.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(microphoneConfig={}){if(env().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let microphoneIterator=new MicrophoneIterator(microphoneConfig);return await microphoneIterator.start(),microphoneIterator}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let ctxConstructor=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new ctxConstructor,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let streamSource=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,streamSource.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let spectrogramTensor,waveformTensor,audioDataQueue=await this.getAudioData();if(this.includeSpectrogram){let freqData=this.flattenQueue(audioDataQueue.freqDataQueue);spectrogramTensor=this.getTensorFromAudioDataArray(freqData,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let timeData=this.flattenQueue(audioDataQueue.timeDataQueue);waveformTensor=this.getTensorFromAudioDataArray(timeData,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:spectrogramTensor,waveform:waveformTensor},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let freqDataQueue=[],timeDataQueue=[],currentFrames=0;return new Promise(resolve=>{let intervalID=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&resolve({freqDataQueue,timeDataQueue}),freqDataQueue.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),timeDataQueue.push(this.timeData.slice())),++currentFrames===this.numFrames&&(clearInterval(intervalID),resolve({freqDataQueue,timeDataQueue}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(queue){let frameSize=queue[0].length,freqData=new Float32Array(queue.length*frameSize);return queue.forEach((data2,i)=>freqData.set(data2,i*frameSize)),freqData}getTensorFromAudioDataArray(freqData,shape){let vals=new Float32Array(util_exports.sizeFromShape(shape));return vals.set(freqData,vals.length-freqData.length),tensor(vals,shape)}},WebcamIterator=class extends LazyIterator{constructor(webcamVideoElement,webcamConfig){super();if(this.webcamVideoElement=webcamVideoElement,this.webcamConfig=webcamConfig,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=tensor1d([0],"int32"),this.webcamConfig.centerCrop){let widthCroppingRatio=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,heightCroppingRatio=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,widthCropStart=(1-widthCroppingRatio)/2,heightCropStart=(1-heightCroppingRatio)/2,widthCropEnd=widthCropStart+widthCroppingRatio,heightCropEnd=heightCroppingRatio+heightCropStart;this.cropBox=tensor2d([heightCropStart,widthCropStart,heightCropEnd,widthCropEnd],[1,4])}else this.cropBox=tensor2d([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(webcamVideoElement,webcamConfig={}){if(env().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!webcamVideoElement){if(webcamVideoElement=document.createElement("video"),!webcamConfig.resizeWidth||!webcamConfig.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");webcamVideoElement.width=webcamConfig.resizeWidth,webcamVideoElement.height=webcamConfig.resizeHeight}let webcamIterator=new WebcamIterator(webcamVideoElement,webcamConfig);return await webcamIterator.start(),webcamIterator}async start(){this.webcamConfig.facingMode&&util_exports.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(error){console.log(error),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(resolve=>{this.webcamVideoElement.onloadedmetadata=()=>{resolve()}})}async next(){if(this.isClosed)return{value:null,done:!0};let img;try{img=browser_exports.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(img),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{img.dispose()}else return{value:img,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(img){return tidy(()=>{let expandedImage=img.toFloat().expandDims(0),resizedImage;resizedImage=image.cropAndResize(expandedImage,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let shape=resizedImage.shape;return resizedImage.reshape(shape.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(track=>track.stop());try{this.webcamVideoElement.srcObject=null}catch(error){console.log(error),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},DataSource=class{},StringIterator=class extends LazyIterator{split(separator){return new SplitIterator(this,separator)}},SplitIterator=class extends StringIterator{constructor(upstream,separator){super();this.upstream=upstream,this.impl=new SplitIteratorImpl(upstream,separator)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},SplitIteratorImpl=class extends OneToManyIterator{constructor(upstream,separator){super();this.upstream=upstream,this.separator=separator,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let chunkResult=await this.upstream.next();if(chunkResult.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let lines=chunkResult.value.split(this.separator);lines[0]=this.carryover+lines[0];for(let line of lines.slice(0,-1))this.outputQueue.push(line);return this.carryover=lines[lines.length-1],!0}},ByteChunkIterator=class extends LazyIterator{decodeUTF8(){return new Utf8Iterator(this)}},Utf8Iterator=class extends StringIterator{constructor(upstream){super();this.upstream=upstream,this.impl=new Utf8IteratorImpl(upstream)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},Utf8IteratorImpl=class extends OneToManyIterator{constructor(upstream){super();if(this.upstream=upstream,env().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder}=require_string_decoder();this.decoder=new StringDecoder("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let chunkResult=await this.upstream.next(),chunk;if(chunkResult.done)return!1;chunk=chunkResult.value;let text;return env().get("IS_BROWSER")?text=this.decoder.decode(chunk,{stream:!0}):text=this.decoder.write(Buffer.from(chunk.buffer)),this.outputQueue.push(text),!0}},FileChunkIterator=class extends ByteChunkIterator{constructor(file,options={}){super();this.file=file,this.options=options,util_exports.assert(file instanceof Uint8Array||(env().get("IS_BROWSER")?file instanceof File||file instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=options.offset||0,this.chunkSize=options.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((resolve,reject)=>{let end=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)resolve(new Uint8Array(this.file.slice(this.offset,end)));else{let fileReader=new FileReader;fileReader.onload=event=>{let data2=fileReader.result;if(data2 instanceof ArrayBuffer&&(data2=new Uint8Array(data2)),!(data2 instanceof Uint8Array))return reject(new TypeError("FileReader returned unknown type."));resolve(data2)},fileReader.onabort=event=>reject(new Error("Aborted")),fileReader.onerror=event=>reject(new Error(event.type));let slice5=this.file.slice(this.offset,end);fileReader.readAsArrayBuffer(slice5)}this.offset=end}),done:!1}}};async function urlChunkIterator(url,options={}){let urlString,requestInit;typeof url=="string"?urlString=url:(urlString=url.url,requestInit=getRequestInitFromRequest(url));let response=await util_exports.fetch(urlString,requestInit);if(response.ok){let uint8Array=new Uint8Array(await response.arrayBuffer());return new FileChunkIterator(uint8Array,options)}else throw new Error(response.statusText)}var getRequestInitFromRequest=request=>({method:request.method,headers:request.headers,body:request.body,mode:request.mode,credentials:request.credentials,cache:request.cache,redirect:request.redirect,referrer:request.referrer,integrity:request.integrity});function isLocalPath(source){return typeof source=="string"&&source.substr(0,7)==="file://"}var FileDataSource=class extends DataSource{constructor(input2,options={}){super();this.input=input2,this.options=options}async iterator(){if(isLocalPath(this.input)&&env().get("IS_NODE")){let fs=require("fs");this.input=fs.readFileSync(this.input.substr(7))}return new FileChunkIterator(this.input,this.options)}},URLDataSource=class extends DataSource{constructor(url,fileOptions={}){super();this.url=url,this.fileOptions=fileOptions}async iterator(){return isLocalPath(this.url)?new FileDataSource(this.url,this.fileOptions).iterator():urlChunkIterator(this.url,this.fileOptions)}};function csv(source,csvConfig={}){return new CSVDataset(new URLDataSource(source),csvConfig)}function func(f){let iter=iteratorFromFunction(f);return datasetFromIteratorFn(async()=>iter)}function generator(generator2){return datasetFromIteratorFn(async()=>{let gen=await generator2();return iteratorFromFunction(()=>gen.next())})}async function webcam(webcamVideoElement,webcamConfig){return WebcamIterator.create(webcamVideoElement,webcamConfig)}async function microphone(microphoneConfig){return MicrophoneIterator.create(microphoneConfig)}var version12="2.8.3",version13={tfjs:version,"tfjs-core":version2,"tfjs-data":version3,"tfjs-layers":version4,"tfjs-converter":version5,"tfjs-backend-cpu":version7,"tfjs-backend-webgl":version8,"tfjs-backend-wasm":version9};var config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);setWebGLContext(2,gl);let ctx=new GPGPUContext(gl);registerBackend(config.name,()=>new MathBackendWebGL(ctx),config.priority),getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};registerKernel(newKernelConfig)}),ENV.set("WEBGL_VERSION",2),ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet());var models={};async function load(config2){return models.blazepose||(models.blazepose=await loadGraphModel(config2.pose.modelPath),log(`load model: ${config2.pose.modelPath.match(/\/(.*)\./)[1]}`)),models.blazepose}async function predict(image3,config2){return models.blazepose?new Promise(async resolve=>{let resize=image.resizeBilinear(image3,[config2.pose.inputSize,config2.pose.inputSize],!1),enhance=div(resize,127.5).sub(1);dispose(resize);let logits=await models.blazepose.predict(enhance);dispose(enhance),logits.map(logit=>logit.dispose()),resolve(logits)}):null}function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot4(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},pose:{enabled:!1,scoreThreshold:.6,iouThreshold:.3,modelPath:"../models/blazepose.json",inputSize:256},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` /9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu bmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob @@ -4771,7 +4771,7 @@ AAAAAAJAAAAAAAAAAAAAABAJEAAAAAAAAAAAAAAAIEoBKAAAAAAAAAAAAAAABAlAAAAAAAIAAAAA BAkBAkBAkBAlACEgMZjdjbFW8bWrEx8YWANb6Fp+bfwab+vLDKMFK9qxH5L0bAr8OPRPKz2AY7J2 SbAjYZAI2E7AIEgIEgIEgMdkSy2NgY7MdlmyNoBXsxmFuyNgVTVjNV3KjlBRNTlXTVHKCrlIqt5T lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/ -2Q==`;var version14="0.9.23";var now2=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tfjs_esm_exports,this.version=version14,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig){this.state="load";let timeStamp=now2();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${version6}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose,this.models.blazepose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null),this.models.blazepose||(this.config.pose.enabled?load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)),this.config.pose.enabled&&!this.models.blazepose&&(this.models.blazepose=await load(this.config)));let current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){let timeStamp=now2();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath),await env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now2();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input2,this.config));this.perf.face=Math.trunc(now2()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input2);error&&(log(error,input2),resolve({error}));let poseRes,blazeposeRes,handRes,faceRes,timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine().startScope(),this.analyze("Start Scope:"),timeStamp=now2();let process3=image2.process(input2,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Pose:"),this.config.async?(blazeposeRes=this.config.pose.enabled?predict(process3.tensor,this.config):[],this.perf.pose&&delete this.perf.pose):(this.state="run:pose",timeStamp=now2(),blazeposeRes=this.config.pose.enabled?await predict(process3.tensor,this.config):[],this.perf.pose=Math.trunc(now2()-timeStamp)),this.analyze("End Pose:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.analyze("End Hand:"),this.config.async&&([faceRes,poseRes,blazeposeRes,handRes]=await Promise.all([faceRes,poseRes,blazeposeRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,pose:blazeposeRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res=>res.blob());userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let blob;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(!blob)return null;let bitmap=await createImageBitmap(blob),t0=now2(),warmup=await this.detect(bitmap,config_exports),t1=now2();return bitmap.close(),log("Warmup",this.config.warmup,t1-t0,warmup),this.config.videoOptimized=video,warmup}};return human_exports;})(); +2Q==`;var version14="0.9.24";var now2=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tfjs_esm_exports,this.version=version14,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig){this.state="load";let timeStamp=now2();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${version6}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose,this.models.blazepose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null),this.models.blazepose||(this.config.pose.enabled?load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)),this.config.pose.enabled&&!this.models.blazepose&&(this.models.blazepose=await load(this.config)));let current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){let timeStamp=now2();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath),await env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now2();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input2,this.config));this.perf.face=Math.trunc(now2()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input2);error&&(log(error,input2),resolve({error}));let poseRes,blazeposeRes,handRes,faceRes,timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine().startScope(),this.analyze("Start Scope:"),timeStamp=now2();let process3=image2.process(input2,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Pose:"),this.config.async?(blazeposeRes=this.config.pose.enabled?predict(process3.tensor,this.config):[],this.perf.pose&&delete this.perf.pose):(this.state="run:pose",timeStamp=now2(),blazeposeRes=this.config.pose.enabled?await predict(process3.tensor,this.config):[],this.perf.pose=Math.trunc(now2()-timeStamp)),this.analyze("End Pose:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.analyze("End Hand:"),this.config.async&&([faceRes,poseRes,blazeposeRes,handRes]=await Promise.all([faceRes,poseRes,blazeposeRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,pose:blazeposeRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmupBitmap(){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res2=>res2.blob()),blob,res;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(blob){let bitmap=await createImageBitmap(blob);res=await this.detect(bitmap,config_exports),bitmap.close()}return res}async warmupCanvas(){return new Promise(resolve=>{let src,size=0;switch(this.config.warmup){case"face":size=256,src="data:image/jpeg;base64,"+face;break;case"full":size=1200,src="data:image/jpeg;base64,"+body;break;default:src=null}let img=new Image(size,size);img.onload=()=>{let canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(size,size):document.createElement("canvas");canvas.width=size,canvas.height=size;let ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);let data2=ctx.getImageData(0,0,size,size);this.detect(data2,config_exports).then(res=>resolve(res))},src?img.src=src:resolve(null)})}async warmup(userConfig){let t0=now2();userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let res;typeof createImageBitmap=="function"?res=await this.warmupBitmap():res=await this.warmupCanvas(),this.config.videoOptimized=video;let t1=now2();return log("Warmup",this.config.warmup,t1-t0,res),res}};return human_exports;})(); /** * @license * Copyright 2017 Google LLC. All Rights Reserved. diff --git a/dist/human.js.map b/dist/human.js.map index 08f071dc..cad38ef4 100644 --- a/dist/human.js.map +++ b/dist/human.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../src/blazeface/blazeface.js", "../src/blazeface/box.js", "../src/blazeface/util.js", "../src/blazeface/coords.js", "../src/blazeface/facepipeline.js", "../src/blazeface/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/posenet/modelBase.js", "../src/posenet/heapSort.js", "../src/posenet/buildParts.js", "../src/posenet/keypoints.js", "../src/posenet/vectors.js", "../src/posenet/decoders.js", "../src/posenet/decodePose.js", "../src/posenet/decodeMultiple.js", "../src/posenet/util.js", "../src/posenet/modelPoseNet.js", "../src/posenet/posenet.js", "../src/handpose/handdetector.js", "../src/handpose/handpipeline.js", "../src/handpose/anchors.js", "../src/handpose/handpose.js", "../src/gesture/gesture.js", "../src/imagefx.js", "../src/image.js", "../src/human.js", "../src/log.js", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../src/tfjs/tf-browser.js", "../src/tfjs/backend.js", "../src/blazepose/blazepose.js", "../src/handpose/box.js", "../src/handpose/util.js", "../config.js", "../src/sample.js"], - "sourcesContent": ["import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './blazeface/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './posenet/posenet.js';\nimport * as blazepose from './blazepose/blazepose.js';\nimport * as handpose from './handpose/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.blazepose || (this.config.pose.enabled ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.pose.enabled && !this.models.blazepose) this.models.blazepose = await blazepose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let blazeposeRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run posenet\n this.analyze('Start Pose:');\n if (this.config.async) {\n blazeposeRes = this.config.pose.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.perf.pose) delete this.perf.pose;\n } else {\n this.state = 'run:pose';\n timeStamp = now();\n blazeposeRes = this.config.pose.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.perf.pose = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Pose:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, blazeposeRes, handRes] = await Promise.all([faceRes, poseRes, blazeposeRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, pose: blazeposeRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig) {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let blob;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (!blob) return null;\n const bitmap = await createImageBitmap(blob);\n const t0 = now();\n const warmup = await this.detect(bitmap, config);\n const t1 = now();\n bitmap.close();\n log('Warmup', this.config.warmup, (t1 - t0), warmup);\n this.config.videoOptimized = video;\n return warmup;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var _scriptDir=undefined;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":169,\"maximum\":169+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13056;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":151,\"maximum\":151+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport { version as tfjs } from '@tensorflow/tfjs/package.json';\nimport { version as versionCore } from '@tensorflow/tfjs-core/package.json';\nimport { version as versionData } from '@tensorflow/tfjs-data/package.json';\nimport { version as versionLayers } from '@tensorflow/tfjs-layers/package.json';\nimport { version as versionConverter } from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs,\n 'tfjs-core': versionCore,\n 'tfjs-data': versionData,\n 'tfjs-layers': versionLayers,\n 'tfjs-converter': versionConverter,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n// import * as helpers from './helpers.js';\n// import * as profile from '../profile.js';\n\nconst models = {};\nlet config = {};\nconst anchors = [];\nconst kMidHipCenter = 0;\nconst kPoseDetectKeyNum = 2;\nconst kFullBodySizeRot = 1;\n\nfunction calculateScale(min_scale, max_scale, stride_index, num_strides) {\n if (num_strides === 1) return (min_scale + max_scale) * 0.5;\n return min_scale + (max_scale - min_scale) * 1.0 * stride_index / (num_strides - 1.0);\n}\n\nexport function generateAnchors() {\n const options = {};\n options.strides = [];\n options.aspect_ratios = [];\n options.feature_map_height = [];\n options.num_layers = 4;\n options.min_scale = 0.1484375;\n options.max_scale = 0.75;\n options.input_size_height = 128;\n options.input_size_width = 128;\n options.anchor_offset_x = 0.5;\n options.anchor_offset_y = 0.5;\n options.strides.push(8);\n options.strides.push(16);\n options.strides.push(16);\n options.strides.push(16);\n options.aspect_ratios.push(1.0);\n options.reduce_boxes_in_lowest_layer = false;\n options.interpolated_scale_aspect_ratio = 1.0;\n options.fixed_anchor_size = true;\n let layer_id = 0;\n while (layer_id < options.strides.length) {\n const anchor_height = [];\n const anchor_width = [];\n const aspect_ratios = [];\n const scales = [];\n // For same strides, we merge the anchors in the same order.\n let last_same_stride_layer = layer_id;\n while (last_same_stride_layer < options.strides.length && options.strides[last_same_stride_layer] === options.strides[layer_id]) {\n const scale = calculateScale(options.min_scale, options.max_scale, last_same_stride_layer, options.strides.length);\n if (last_same_stride_layer === 0 && options.reduce_boxes_in_lowest_layer) {\n // For first layer, it can be specified to use predefined anchors.\n aspect_ratios.push(1.0);\n aspect_ratios.push(2.0);\n aspect_ratios.push(0.5);\n scales.push(0.1);\n scales.push(scale);\n scales.push(scale);\n } else {\n for (let aspect_ratio_id = 0; aspect_ratio_id < options.aspect_ratios.length; ++aspect_ratio_id) {\n aspect_ratios.push(options.aspect_ratios[aspect_ratio_id]);\n scales.push(scale);\n }\n if (options.interpolated_scale_aspect_ratio > 0.0) {\n const scale_next = last_same_stride_layer === options.strides.length - 1 ? 1.0 : calculateScale(options.min_scale, options.max_scale, last_same_stride_layer + 1, options.strides.length);\n scales.push(Math.sqrt(scale * scale_next));\n aspect_ratios.push(options.interpolated_scale_aspect_ratio);\n }\n }\n last_same_stride_layer++;\n }\n for (let i = 0; i < aspect_ratios.length; ++i) {\n const ratio_sqrts = Math.sqrt(aspect_ratios[i]);\n anchor_height.push(scales[i] / ratio_sqrts);\n anchor_width.push(scales[i] * ratio_sqrts);\n }\n let feature_map_height = 0;\n let feature_map_width = 0;\n if (options.feature_map_height.length) {\n feature_map_height = options.feature_map_height[layer_id];\n feature_map_width = options.feature_map_width[layer_id];\n } else {\n const stride = options.strides[layer_id];\n feature_map_height = Math.ceil(1.0 * options.input_size_height / stride);\n feature_map_width = Math.ceil(1.0 * options.input_size_width / stride);\n }\n for (let y = 0; y < feature_map_height; ++y) {\n for (let x = 0; x < feature_map_width; ++x) {\n for (let anchor_id = 0; anchor_id < anchor_height.length; ++anchor_id) {\n const x_center = (x + options.anchor_offset_x) * 1.0 / feature_map_width;\n const y_center = (y + options.anchor_offset_y) * 1.0 / feature_map_height;\n const new_anchor = {};\n new_anchor.x_center = x_center;\n new_anchor.y_center = y_center;\n if (options.fixed_anchor_size) {\n new_anchor.w = 1.0;\n new_anchor.h = 1.0;\n } else {\n new_anchor.w = anchor_width[anchor_id];\n new_anchor.h = anchor_height[anchor_id];\n }\n anchors.push(new_anchor);\n }\n }\n }\n layer_id = last_same_stride_layer;\n }\n}\n\nexport async function load(cfg) {\n config = cfg;\n if (!models.blazepose) {\n models.blazepose = await tf.loadGraphModel(config.pose.modelPath);\n log(`load model: ${config.pose.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n generateAnchors();\n return models.blazepose;\n}\n\nfunction rotateRegion(region) {\n const x0 = region.keys[kMidHipCenter].x;\n const y0 = region.keys[kMidHipCenter].y;\n const x1 = (region.box[0] + region.box[2]) * 0.5;\n const y1 = (region.box[1] + region.box[3]) * 0.5;\n const target_angle = Math.PI * 0.5;\n const angle = target_angle - Math.atan2(-(y1 - y0), x1 - x0);\n return Math.round(1000 * (angle - 2 * Math.PI * Math.floor((angle - (-Math.PI)) / (2 * Math.PI)))) / 1000;\n}\n\nfunction rotateVecor(vec, rotation) {\n const sx = vec.x;\n const sy = vec.y;\n vec.x = sx * Math.cos(rotation) - sy * Math.sin(rotation);\n vec.y = sx * Math.sin(rotation) + sy * Math.cos(rotation);\n}\n\nasync function decode(logits) {\n const scores = await logits[0].data();\n const boxes = await logits[1].data();\n // todo: add nms\n // todo scale output with image.shape\n const regions = [];\n for (let i = 0; i < anchors.length; i++) {\n const region = {};\n const score = 1.0 / (1.0 + Math.exp(-scores[i]));\n if (score > config.pose.scoreThreshold) {\n const idx = (4 + 2 * kPoseDetectKeyNum) * i;\n /* boundary box */\n const sx = boxes[idx + 0];\n const sy = boxes[idx + 1];\n const w = boxes[idx + 2] / config.pose.inputSize;\n const h = boxes[idx + 3] / config.pose.inputSize;\n const cx = (sx + anchors[i].x_center * config.pose.inputSize) / config.pose.inputSize;\n const cy = (sy + anchors[i].y_center * config.pose.inputSize) / config.pose.inputSize;\n region.score = Math.round(1000 * score) / 1000;\n region.box = [cx - w * 0.5, cy - h * 0.5, w * 0.5, h * 0.5];\n /* landmark positions (6 keys) */\n const keys = new Array(kPoseDetectKeyNum);\n for (let j = 0; j < kPoseDetectKeyNum; j++) {\n const lx = (boxes[idx + 4 + (2 * j) + 0] + anchors[i].x_center * config.pose.inputSize) / config.pose.inputSize;\n const ly = (boxes[idx + 4 + (2 * j) + 1] + anchors[i].y_center * config.pose.inputSize) / config.pose.inputSize;\n keys[j] = { x: lx, y: ly };\n }\n region.keys = keys;\n region.angle = rotateRegion(region);\n // add points\n const x_center = region.keys[kMidHipCenter].x * config.pose.inputSize;\n const y_center = region.keys[kMidHipCenter].y * config.pose.inputSize;\n const x_scale = region.keys[kFullBodySizeRot].x * config.pose.inputSize;\n const y_scale = region.keys[kFullBodySizeRot].y * config.pose.inputSize;\n // Bounding box size as double distance from center to scale point.\n const box_size = Math.sqrt((x_scale - x_center) * (x_scale - x_center) + (y_scale - y_center) * (y_scale - y_center)) * 2.0;\n /* RectTransformationCalculator::TransformNormalizedRect() */\n const roi_cx = region.angle === 0.0 ? x_center + box_size : x_center + box_size * Math.cos(region.angle) - box_size * Math.sin(region.angle);\n const roi_cy = region.angle === 0.0 ? y_center + box_size : y_center + box_size * Math.sin(region.angle) + box_size * Math.cos(region.angle);\n const long_side = Math.max(box_size, box_size);\n const roi_w = long_side * 1.5;\n const roi_h = long_side * 1.5;\n region.center = { x: roi_cx / config.pose.inputSize, y: roi_cy / config.pose.inputSize };\n region.size = { x: roi_w / config.pose.inputSize, y: roi_h / config.pose.inputSize };\n /* calculate ROI coordinates */\n const dx = roi_w * 0.5;\n const dy = roi_h * 0.5;\n region.coords = [];\n region.coords[0] = { x: -dx, y: -dy };\n region.coords[1] = { x: +dx, y: -dy };\n region.coords[2] = { x: +dx, y: +dy };\n region.coords[3] = { x: -dx, y: +dy };\n for (let j = 0; j < 4; j++) {\n rotateVecor(region.coords[i], region.angle);\n region.coords[j].x = (region.coords[j].x + roi_cx) / config.pose.inputSize;\n region.coords[j].y = (region.coords[j].y + roi_cy) / config.pose.inputSize;\n }\n\n regions.push(region);\n }\n }\n return regions;\n}\n\nexport async function predict(image, cfg) {\n if (!models.blazepose) return null;\n return new Promise(async (resolve) => {\n config = cfg;\n const resize = tf.image.resizeBilinear(image, [config.pose.inputSize, config.pose.inputSize], false);\n const enhance = tf.div(resize, 127.5).sub(1);\n tf.dispose(resize);\n const logits = await models.blazepose.predict(enhance);\n // todo: add landmarks model\n tf.dispose(enhance);\n const regions = await decode(logits);\n logits[0].dispose();\n logits[1].dispose();\n log('poses', regions);\n resolve(regions);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n pose: {\n enabled: false,\n scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n modelPath: '../models/blazepose.json',\n inputSize: 128, // fixed value\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n"], - "mappings": ";;;;;;;wiCAAA,2CAGA,GAAM,eAAgB,EAEtB,0BAAyB,WACvB,GAAM,MAAO,CAAE,QAAS,CAAC,UAAY,GAAI,UAAY,GAAI,QAAS,CAAC,EAAG,IAChE,SAAU,GAChB,OAAS,GAAI,EAAG,EAAI,KAAK,QAAQ,OAAQ,KACvC,GAAM,QAAS,KAAK,QAAQ,GACtB,SAAW,KAAK,MAAO,WAAY,OAAS,GAAK,QACjD,SAAW,KAAK,MAAO,WAAY,OAAS,GAAK,QACjD,WAAa,KAAK,QAAQ,GAChC,OAAS,OAAQ,EAAG,MAAQ,SAAU,SACpC,GAAM,SAAU,OAAU,OAAQ,IAClC,OAAS,OAAQ,EAAG,MAAQ,SAAU,SACpC,GAAM,SAAU,OAAU,OAAQ,IAClC,OAAS,GAAI,EAAG,EAAI,WAAY,IAC9B,SAAQ,KAAK,CAAC,QAAS,YAK/B,MAAO,UAGT,GAAM,YAAa,AAAC,MAClB,IAAI,eAAe,UACnB,IAAI,WAAW,UACf,IAAI,SAAS,WAGT,UAAY,AAAC,gBAAoB,EACrC,eACA,WAAY,AAAG,MAAM,eAAgB,CAAC,EAAG,GAAI,CAAC,GAAI,IAClD,SAAU,AAAG,MAAM,eAAgB,CAAC,EAAG,GAAI,CAAC,GAAI,MAG5C,SAAW,CAAC,IAAK,WACrB,GAAM,QAAS,AAAG,IAAI,IAAI,WAAY,SAChC,KAAO,AAAG,IAAI,IAAI,SAAU,SAC5B,eAAiB,AAAG,SAAS,CAAC,OAAQ,MAAO,GACnD,MAAO,WAAU,iBAGnB,sBAAsB,WAAY,SAAS,WACzC,GAAM,WAAY,AAAG,MAAM,WAAY,CAAC,EAAG,GAAI,CAAC,GAAI,IAC9C,QAAU,AAAG,KAAI,UAAW,UAC5B,SAAW,AAAG,MAAM,WAAY,CAAC,EAAG,GAAI,CAAC,GAAI,IAC7C,mBAAqB,AAAG,IAAI,SAAU,WACtC,kBAAoB,AAAG,IAAI,QAAS,WACpC,YAAc,AAAG,IAAI,mBAAoB,GACzC,OAAS,AAAG,IAAI,kBAAmB,aACnC,KAAO,AAAG,KAAI,kBAAmB,aACjC,gBAAkB,AAAG,IAAI,OAAQ,WACjC,cAAgB,AAAG,IAAI,KAAM,WAEnC,MAAO,AAAG,UAAS,CAAC,gBAAiB,eADlB,GAIrB,gCAAgC,MAAM,aACpC,MAAO,AAAG,MAAK,KACb,GAAM,KAAM,MAAK,IAAS,MAAK,IAAS,MACxC,MAAO,UAAS,IAAK,aAAa,eAAe,YA/DrD,yBAoEE,YAAY,OAAO,SACjB,KAAK,eAAiB,OACtB,KAAK,MAAQ,QAAO,KAAK,SAAS,UAClC,KAAK,OAAS,QAAO,KAAK,SAAS,UACnC,KAAK,YAAc,iBAAgB,QAAO,KAAK,SAAS,WACxD,KAAK,QAAU,AAAG,SAAS,KAAK,aAChC,KAAK,UAAY,AAAG,SAAS,CAAC,KAAK,MAAO,KAAK,SAC/C,KAAK,OAAS,QACd,KAAK,WAAa,QAGd,kBAAiB,YAErB,GAAK,CAAC,YAAgB,WAAW,oBAAwB,WAAW,MAAM,SAAW,GAAO,WAAW,MAAM,GAAK,GAAO,WAAW,MAAM,GAAK,EAAI,MAAO,MAC1J,GAAM,CAAC,gBAAiB,MAAO,QAAU,AAAG,KAAK,KAC/C,GAAM,cAAe,WAAW,eAAe,CAAC,KAAK,MAAO,KAAK,SAE3D,gBAAkB,AAAG,IAAI,aAAa,IAAI,OAAQ,GAClD,kBAAoB,KAAK,eAAe,QAAQ,iBAClD,WAEJ,GAAI,MAAM,QAAQ,oBAChB,GAAM,QAAS,kBAAkB,KAAK,CAAC,EAAG,IAAM,EAAE,KAAO,EAAE,MACrD,UAAY,AAAG,OAAO,CAAC,OAAO,GAAI,OAAO,IAAK,GAC9C,UAAY,AAAG,OAAO,CAAC,OAAO,GAAI,OAAO,IAAK,GAEpD,WAAa,AADE,AAAG,OAAO,CAAC,UAAW,WAAY,GAC7B,QAAQ,OAE5B,YAAa,kBAAkB,UAEjC,GAAM,eAAgB,aAAa,WAAY,KAAK,QAAS,KAAK,WAC5D,OAAS,AAAG,MAAM,WAAY,CAAC,EAAG,GAAI,CAAC,GAAI,IAC3C,UAAY,AAAG,QAAQ,QAAQ,UACrC,MAAO,CAAC,WAAY,cAAe,aAE/B,iBAAmB,KAAM,AAAG,OAAM,uBAAuB,MAAO,OAAQ,KAAK,OAAO,KAAK,SAAS,SAAU,KAAK,OAAO,KAAK,SAAS,aAAc,KAAK,OAAO,KAAK,SAAS,gBAC9K,WAAa,iBAAiB,YACpC,iBAAiB,UAEjB,GAAM,eAAgB,AADG,WAAW,IAAI,AAAC,UAAa,AAAG,MAAM,MAAO,CAAC,SAAU,GAAI,CAAC,EAAG,MAClD,IAAI,AAAC,cAC1C,GAAM,MAAO,YAAY,YACzB,mBAAY,UACL,OAGH,UAAY,OAAO,WACnB,eAAiB,GACvB,OAAS,GAAI,EAAG,EAAI,cAAc,OAAQ,KACxC,GAAM,UAAW,WAAW,GACtB,WAAa,UAAU,UAC7B,GAAI,WAAa,KAAK,OAAO,KAAK,SAAS,eACzC,GAAM,KAAM,UAAU,cAAc,IAC9B,OAAS,KAAK,YAAY,UAC1B,UAAY,AAAG,KAAK,IAAM,AAAG,MAAM,gBAAiB,CAAC,SAAU,cAAgB,GAAI,CAAC,EAAG,KAAK,UAAU,QAAQ,CAAC,cAAe,MACpI,eAAe,KAAK,CAAE,IAAK,UAAW,OAAQ,cAGlD,uBAAgB,UAChB,MAAM,UACN,OAAO,UACP,gBAAgB,UACT,CACL,MAAO,eACP,YAAa,CAAC,WAAW,MAAM,GAAK,KAAK,MAAO,WAAW,MAAM,GAAK,KAAK,cAIzE,eAAc,QAElB,GAAM,CAAE,MAAO,aAAgB,KAAM,MAAK,iBAAiB,QACrD,MAAQ,GACd,OAAW,SAAQ,QACjB,GAAM,cAAe,MAAK,UAAU,YAC9B,UAAY,uBAAuB,MAAM,aAEzC,QAAU,SAAS,YACnB,gBAAkB,MAAK,YAAY,YACnC,OAAS,MAAK,OACd,CAAC,aAAc,cAAgB,YAC/B,gBAAkB,aACrB,IAAI,AAAC,UAAc,CACjB,UAAS,GAAK,OAAO,IAAM,aAC3B,UAAS,GAAK,OAAO,IAAM,eAE1B,eAAiB,CACrB,QAAS,QAAQ,MAAM,EAAG,GAC1B,YAAa,QAAQ,MAAM,GAC3B,UAAW,gBACX,YAAa,iBAEf,WAAW,MAAK,KAChB,MAAK,UAAU,UACf,MAAK,YAAY,UACjB,UAAU,UACV,MAAM,KAAK,gBAEb,MAAO,SAIX,qBAAoB,SAClB,GAAM,WAAY,KAAM,AAAG,gBAAe,QAAO,KAAK,SAAS,UAAW,CAAE,UAAW,QAAO,KAAK,SAAS,UAAU,SAAS,eACzH,OAAQ,GAAI,gBAAe,UAAW,SAC5C,WAAI,eAAe,QAAO,KAAK,SAAS,UAAU,MAAM,YAAY,MAC7D,OAGT,QAAQ,KAAO,MACf,QAAQ,eAAiB,eACzB,QAAQ,WAAa,aCjLrB,qCAEA,8BAA6B,IAAK,QAChC,GAAM,YAAa,CAAC,IAAI,WAAW,GAAK,OAAO,GAAI,IAAI,WAAW,GAAK,OAAO,IACxE,SAAW,CAAC,IAAI,SAAS,GAAK,OAAO,GAAI,IAAI,SAAS,GAAK,OAAO,IACxE,MAAO,CAAE,WAAY,UAEvB,QAAQ,oBAAsB,qBAE9B,qBAAoB,KAClB,MAAO,CACL,KAAK,IAAI,IAAI,SAAS,GAAK,IAAI,WAAW,IAC1C,KAAK,IAAI,IAAI,SAAS,GAAK,IAAI,WAAW,KAG9C,QAAQ,WAAa,YAErB,uBAAsB,KACpB,MAAO,CACL,IAAI,WAAW,GAAM,KAAI,SAAS,GAAK,IAAI,WAAW,IAAM,EAC5D,IAAI,WAAW,GAAM,KAAI,SAAS,GAAK,IAAI,WAAW,IAAM,GAGhE,QAAQ,aAAe,cAEvB,mCAAkC,IAAK,OAAO,UAC5C,GAAM,GAAI,OAAM,MAAM,GAChB,EAAI,OAAM,MAAM,GAChB,MAAQ,CAAC,CACb,IAAI,WAAW,GAAK,EAAG,IAAI,WAAW,GAAK,EAAG,IAAI,SAAS,GAAK,EAChE,IAAI,SAAS,GAAK,IAEpB,MAAO,AAAG,OAAM,cAAc,OAAO,MAAO,CAAC,GAAI,UAEnD,QAAQ,yBAA2B,0BAEnC,qBAAoB,IAAK,OAAS,KAChC,GAAM,QAAS,cAAa,KACtB,KAAO,YAAW,KAClB,YAAc,CAAC,OAAS,KAAK,GAAK,EAAG,OAAS,KAAK,GAAK,GACxD,WAAa,CAAC,OAAO,GAAK,YAAY,GAAI,OAAO,GAAK,YAAY,IAClE,SAAW,CAAC,OAAO,GAAK,YAAY,GAAI,OAAO,GAAK,YAAY,IACtE,MAAO,CAAE,WAAY,SAAU,UAAW,IAAI,WAEhD,QAAQ,WAAa,YAErB,sBAAqB,KACnB,GAAM,SAAU,cAAa,KACvB,KAAO,YAAW,KAElB,SAAW,AADD,KAAK,IAAI,GAAG,MACD,EACrB,WAAa,CAAC,QAAQ,GAAK,SAAU,QAAQ,GAAK,UAClD,SAAW,CAAC,QAAQ,GAAK,SAAU,QAAQ,GAAK,UACtD,MAAO,CAAE,WAAY,SAAU,UAAW,IAAI,WAEhD,QAAQ,YAAc,eCvDtB,8CAAQ,gBAAkB,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IAKxD,2BAA0B,OACxB,MAAO,OAAQ,EAAI,KAAK,GAAK,KAAK,MAAO,OAAQ,KAAK,IAAO,GAAI,KAAK,KAExE,QAAQ,iBAAmB,kBAO3B,0BAAyB,OAAQ,QAC/B,GAAM,SAAU,KAAK,GAAK,EAAI,KAAK,MAAM,CAAE,QAAO,GAAK,OAAO,IAAK,OAAO,GAAK,OAAO,IACtF,MAAO,mBAAiB,SAE1B,QAAQ,gBAAkB,iBAE1B,sBAAsB,KACpB,MAAO,KAAM,IAAM,KAAK,GAE1B,QAAQ,aAAe,aAEvB,iCAAgC,EAAG,GACjC,MAAO,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IAGvC,cAAa,GAAI,IACf,GAAI,SAAU,EACd,OAAS,GAAI,EAAG,EAAI,GAAG,OAAQ,IAC7B,SAAW,GAAG,GAAK,GAAG,GAExB,MAAO,SAET,QAAQ,IAAM,KAEd,6BAA4B,IAAK,aAC/B,GAAM,QAAS,GACf,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,IAC9B,OAAO,KAAK,IAAI,GAAG,cAErB,MAAO,QAET,QAAQ,mBAAqB,oBAE7B,oCAAmC,KAAM,MACvC,GAAM,SAAU,GACV,KAAO,KAAK,OAClB,OAAS,KAAM,EAAG,IAAM,KAAM,OAC5B,QAAQ,KAAK,IACb,OAAS,KAAM,EAAG,IAAM,KAAM,MAC5B,QAAQ,KAAK,KAAK,KAAI,KAAK,KAAM,oBAAmB,KAAM,OAG9D,MAAO,SAET,8BAA6B,SAAU,QACrC,GAAM,MAAO,KAAK,IAAI,UAChB,KAAO,KAAK,IAAI,UAChB,eAAiB,CAAC,CAAC,KAAM,CAAC,KAAM,GAAI,CAAC,KAAM,KAAM,GAAI,CAAC,EAAG,EAAG,IAC5D,kBAAoB,wBAAuB,OAAO,GAAI,OAAO,IAC7D,yBAA2B,2BAA0B,kBAAmB,gBACxE,0BAA4B,wBAAuB,CAAC,OAAO,GAAI,CAAC,OAAO,IAC7E,MAAO,4BAA0B,yBAA0B,2BAE7D,QAAQ,oBAAsB,qBAE9B,gCAA+B,QAC7B,GAAM,mBAAoB,CAAC,CAAC,OAAO,GAAG,GAAI,OAAO,GAAG,IAAK,CAAC,OAAO,GAAG,GAAI,OAAO,GAAG,KAC5E,qBAAuB,CAAC,OAAO,GAAG,GAAI,OAAO,GAAG,IAChD,oBAAsB,CAC1B,CAAC,KAAI,kBAAkB,GAAI,sBAC3B,CAAC,KAAI,kBAAkB,GAAI,uBAE7B,MAAO,CACL,kBAAkB,GAAG,OAAO,oBAAoB,IAChD,kBAAkB,GAAG,OAAO,oBAAoB,IAChD,CAAC,EAAG,EAAG,IAGX,QAAQ,sBAAwB,uBAEhC,sBAAqB,sBAAuB,gBAC1C,MAAO,CACL,KAAI,sBAAuB,eAAe,IAC1C,KAAI,sBAAuB,eAAe,KAG9C,QAAQ,YAAc,aAEtB,iCAAiC,EAAG,GAClC,MAAO,MAAK,KAAO,GAAE,GAAK,EAAE,KAAO,EAAO,GAAE,GAAK,EAAE,KAAO,GAE5D,QAAQ,wBAA0B,0BChGlC,2CAAM,kBAAmB,CACvB,WAAY,CACV,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACvD,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,KAEpD,eAAgB,CAAC,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,KAC7D,eAAgB,CAAC,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAC3D,eAAgB,CAAC,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAC9D,eAAgB,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAC9D,eAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/C,eAAgB,CAAC,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACtD,eAAgB,CAAC,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,KAC1C,eAAgB,CAAC,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,KACpD,eAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/C,eAAgB,CAAC,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,eAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzD,kBAAmB,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,KACnD,kBAAmB,CAAC,GAAI,IAAK,GAAI,GAAI,GAAI,IACzC,aAAc,CAAC,IAAK,IAAK,IAAK,IAAK,KACnC,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9C,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,cAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,iBAAkB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACtD,iBAAkB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAC5C,YAAa,CAAC,IAAK,IAAK,IAAK,IAAK,KAClC,kBAAmB,CAAC,KACpB,QAAS,CAAC,GACV,WAAY,CAAC,GACb,gBAAiB,CAAC,IAClB,eAAgB,CAAC,KACjB,WAAY,CAAC,KACb,UAAW,CAAC,MAGR,yBAA2B,CAC/B,CAAE,IAAK,YAAa,QAAS,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,KACrD,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KACtD,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KACtD,CAAE,IAAK,YAAa,QAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACtD,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAC9D,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAC9D,CAAE,IAAK,YAAa,QAAS,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,MAK1D,MAAQ,CACZ,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,I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AAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,CACC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EA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CH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OA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AC,QAAS,eAG1B,MAAA,WAAU,KAAK,WACf,UAAU,KAAK,UAGX,aAAa,OAAQ,UAAW,SAAU,MAAO,eAIrD,YAAc,aAChB,IAAK,qBAAsB,WAAY,YAAa,aAElD,SACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,aAAc,QAAA,UAAS,MAAO,CAAC,MAAO,YAE3D,OAAS,SACb,GAAI,aAAe,MACjB,UAAU,KAAK,UACf,GAAM,MAAO,qBAAa,uBAAuB,aACjD,OAAS,WAAU,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,QAG5D,MAAA,WAAU,QAAQ,GAAK,UAAQ,8BAA8B,IACtD,OAGF,GAAM,2BAAyC,CACpD,WAAY,mBACZ,YAAa,QACb,WAAY,qBC4DR,eAAgC,CACpC,UACA,cACA,oBACA,WACA,YACA,aACA,WACA,YACA,WACA,WACA,cACA,cACA,YACA,aACA,aACA,YACA,aACA,iBACA,eACA,oBACA,mBACA,mBACA,iBACA,sBACA,gBACA,YACA,YACA,kBACA,kBACA,eACA,cACA,4BACA,2BACA,cACA,8BACA,0BACA,cACA,WACA,YACA,qBACA,cACA,qBACA,oBACA,2CACA,0CACA,6BACA,YACA,iBACA,WACA,eACA,aACA,WACA,WACA,kBACA,aACA,WACA,YACA,qBACA,aACA,gBACA,iBACA,mBACA,4BACA,gBACA,gBACA,eACA,oBACA,gBACA,YACA,YACA,gBACA,aACA,aACA,iBACA,YACA,iBACA,gBACA,aACA,WACA,kBACA,kBACA,iBACA,WACA,iBACA,eACA,oBACA,mBACA,yBACA,eACA,YACA,WACA,eACA,iBACA,WACA,mBACA,gBACA,WACA,2BACA,2BACA,2BACA,gBACA,cACA,gBACA,YACA,aACA,WACA,aACA,YACA,aACA,YACA,eACA,kBACA,aACA,YACA,eACA,sBACA,0BACA,6BACA,iCACA,eACA,wBACA,aACA,aACA,iBACA,cACA,YACA,eACA,YACA,WACA,YACA,aACA,eACA,gBACA,sBACA,qBACA,cACA,YACA,cACA,yBACA,YACA,oBACA,WACA,WACA,W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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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", + "sourcesContent": ["import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './blazeface/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './posenet/posenet.js';\nimport * as blazepose from './blazepose/blazepose.js';\nimport * as handpose from './handpose/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.blazepose || (this.config.pose.enabled ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.pose.enabled && !this.models.blazepose) this.models.blazepose = await blazepose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let blazeposeRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run posenet\n this.analyze('Start Pose:');\n if (this.config.async) {\n blazeposeRes = this.config.pose.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.perf.pose) delete this.perf.pose;\n } else {\n this.state = 'run:pose';\n timeStamp = now();\n blazeposeRes = this.config.pose.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.perf.pose = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Pose:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, blazeposeRes, handRes] = await Promise.all([faceRes, poseRes, blazeposeRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, pose: blazeposeRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmupBitmap() {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, config);\n bitmap.close();\n }\n return res;\n }\n\n async warmupCanvas() {\n return new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n const img = new Image(size, size);\n img.onload = () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = size;\n canvas.height = size;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const data = ctx.getImageData(0, 0, size, size);\n this.detect(data, config).then((res) => resolve(res));\n };\n if (src) img.src = src;\n else resolve(null);\n });\n }\n\n async warmup(userConfig) {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.warmupBitmap();\n else res = await this.warmupCanvas();\n this.config.videoOptimized = video;\n const t1 = now();\n log('Warmup', this.config.warmup, (t1 - t0), res);\n return res;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var _scriptDir=undefined;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":169,\"maximum\":169+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13056;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":151,\"maximum\":151+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "// wrapper to load tfjs in a single place so version can be changed quickly\n\n// simplified\n// { modules: 1061, moduleBytes: 3772720, outputBytes: 1531035 }\n\n// export * from '@tensorflow/tfjs/dist/index.js';\n// export * from '@tensorflow/tfjs-backend-wasm';\n\n// modular\n// { modules: 1064, moduleBytes: 3793219, outputBytes: 1535600 }\n\n// get versions of all packages.\nimport { version as tfjs } from '@tensorflow/tfjs/package.json';\nimport { version as versionCore } from '@tensorflow/tfjs-core/package.json';\nimport { version as versionData } from '@tensorflow/tfjs-data/package.json';\nimport { version as versionLayers } from '@tensorflow/tfjs-layers/package.json';\nimport { version as versionConverter } from '@tensorflow/tfjs-converter/package.json';\n// for backends, get version from source so it can register backend during import\nimport { version_cpu } from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nimport { version_webgl } from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nimport { version_wasm } from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export all\nexport * from '@tensorflow/tfjs-core/dist/index.js';\nexport * from '@tensorflow/tfjs-layers/dist/index.js';\nexport * from '@tensorflow/tfjs-converter/dist/index.js';\nexport * as data from '@tensorflow/tfjs-data/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-cpu/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-webgl/dist/index.js';\nexport * from '@tensorflow/tfjs-backend-wasm/dist/index.js';\n\n// export versions\nexport const version = {\n tfjs,\n 'tfjs-core': versionCore,\n 'tfjs-data': versionData,\n 'tfjs-layers': versionLayers,\n 'tfjs-converter': versionConverter,\n 'tfjs-backend-cpu': version_cpu,\n 'tfjs-backend-webgl': version_webgl,\n 'tfjs-backend-wasm': version_wasm,\n};\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n// import * as profile from '../profile.js';\n\nconst models = {};\n\nexport async function load(config) {\n if (!models.blazepose) {\n models.blazepose = await tf.loadGraphModel(config.pose.modelPath);\n log(`load model: ${config.pose.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.blazepose;\n}\n\nexport async function predict(image, config) {\n if (!models.blazepose) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.pose.inputSize, config.pose.inputSize], false);\n const enhance = tf.div(resize, 127.5).sub(1);\n tf.dispose(resize);\n const logits = await models.blazepose.predict(enhance);\n //\n tf.dispose(enhance);\n logits.map((logit) => logit.dispose());\n resolve(logits);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n pose: { // TBD: not currently in use\n enabled: false,\n scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n modelPath: '../models/blazepose.json',\n inputSize: 256, // fixed value\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\nb9a7LfBTfS1vWI2jf12VfQPSW8KX2mas+NC2iv6xMNfJpMnLtEbuuxtMRCtzF55NR5rPps1N/ctP\ny6uHreE6nXZ4pak48X3rT06fB7fNeI33cbX6mI32R/MWu7XF116aDSRhxbRERs8f499bkyZeeKae\nkzE2mdon81/tfxDLGOunwbzlzbx08oaHBvZHJlx48mrvaa94pu04y617576rNGLRRM0397JEd/lu\n9Dw/S3x4qxffo6mm4NjwUiKY4iI9Ib1dHFY6QIaNabbrYrLfrpJtaK1rMzPZb/s+05IpP59OyLeJ\nk7eNfRaOc1ue32I7fGXYpi5Y77M8OGMeOKxHSFsU3Y29deZMzirl6dlVvhLatCjJHeYQv1rXnps1\n8k9/VsW6qLVmZIi1rzitlvFKRvaZ2h6TSaenC9FFY+3brM+sqeG8Prp4+kZ+lvuxPkr1mqm95nfp\nDXM459676a2q1dsV7XietvNno78+CJn1cjX6mOeIm0bR33dfRU5NJjidt9t5afjG/V6JZ7I2QMNh\nnyo2BhsMuVG3wAhMSbbQRAMolnE+iuGUSCyJZRKuGUSCyJZK4llEgyZMYTuCUsYSCQASISAAAlCQ\nAAAAAAEoASCASAAAAAAAAAAAAlACRACQAAAAAAAAAEgCEoASCAAAAAAAAAAAAAAAAAAAAAAABAAA\nAAAAAAAISAIAAAAAAQAAACASgAAAQJAQAAhIDHZhln3do7z0WS18mWsajHjmes7pg3dNi5aRMNqO\nyvDHTpPRaigHZhN4hHRlaVN59JY3zRENLUavaO+yq0iNVlitJ6vNcR1MVi0zO0era1/Ea0rPvbz5\nPM5MWp45qvo2GZrhmfrsnpHpHzTCseEcM/2vrr8Q1Eb4qzy44nziPN63HpYiIiI7LNHoqabBTFii\nIpSNohuVxrKtWMEejPwY9G1FFmHB4mWJn7MdfnIM9JpIx15to5pbUaas/a6rqViI7MxPxqX0UT1r\nO3wVzpbR2hviP5i03Y5s6a879FNtHljydhExCv8AMTPJXBnRZbz0iG5ptFjwe/l96zctMVamTJtE\nyTMibu1VrdTzRMR0j0ed4lr64MVpm0RERvMz5NvX62uOJ69XhOKX1HH9bHDtFvNYnfJeOy0Z2ojX\n6jjnEq6fRUmccTvN/J9H0eKcOnx45neaxEbubwHgOHg+milI3vP2resu3Wu0JQmITsmISDHZHKz2\nJgFc1RMLJhGwK9iIZ7MZgEdgmAEwyiWCdwWRLKJVxKYsC2JTuriWUSDNlEsIlMAySx3SCRCQSIAS\nAAACRACQAAAAAAASIASAAAAAAAAAAAAAAACRACRACQASIAAAAAAAAAAAAAAAAAAAAAAAAQCUAAAA\nAAAAAAIAAAAAAAAQAAAAAACBICBICAAEJAQJQCJcLjuS2ny6fPG/LWdpd1o8T0X07SXx/e7wCdJx\nWa0jmneHQpxPDMdZmJfNtZm49weZrh0/j4o7VtSZ2+Uw0/8A7o49k92vBLc/ntFohFW9PqGXimOI\n6Tu1L8T3eCx6r2t1O3JwvHjifO99v7t/Bwf2l1PXU6rS6eJ8qUm8x+so5TsekzcSjbvs4mt4rzW5\nK2mbT0itesy2cHsvbvqtbmyz5xERWP2jd1tJwrTaONsOKtZ8585+cnDrzmn4Rq+IZObUROHD32n7\nVv8A0ej0uhxaXFGPFSK1j0bkY4jyZRVZVXFGUVWbGwKsk8mObekNrSW3pWf1a2aYjHbm7bNnQ1id\nPW0TvuDdhJEbQABMsLW2R0ZTMQrvfbz2YWzVhpanUxEd0dWkW5c8R5uXxDX1w4pnfr5Q19XxKuOJ\n2neXltVqtVxbV/RdJ715+1bypANfiOu1HENV9C0MTfNeesx2rD1PAeBYuE6aKx72W3W9/WVnBuB4\neF4dqRzZbdb5J72l160WVK02ZxCYhOwI23TsnY2BGxsnYBjsiYZsZBjMMZZSgGEolMsQDdG6NwZ7\npiVe6YkFsSziVMWZRILolMSriWUSCyJTuwhMSDMRCQSI3SAlACRCQAAEoAEoASAAAAAAAAACUACR\nACQAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAABAAAAAAAAAAAAACBKAAAAAAAQ\nJQAAAhICEbJAYTWJ7wx8KvpC0BV4ceieWGewDHlNmWwCNjZICNhIDmcZredBecdpiY69FXCOLW+i\nUiZidukulmxxlx2paN4mNng+K4+I8Hy2yaTfl37TXetoCPfRxfp1qi3F48ofKMvtvxak8s6LDv61\nrZji9rPaLUf5PC+bfttS0q8q3p9W/wBrRMdpUZuKdN99nzvFqPbTVz7nD8OKs+do2/mW3h4D7Xaq\nZnPrtNpqz35aRaYOHY9Zk4pNt9rR+rl6zi+OnS+WN57Rv1lXp/YrNaYtruL6zNPnGO3hxP6O5w/2\nf0HDuun09Yv55Le9afznqcOvO4tBreMTHu30unnva0bWt8on+70nDuE4OHYYx4Kbesz3tPrMuhGO\nIjpDOKrK9YVpsyiGUQnYGOyUgI2SlAIEmwMWMs9kTAMJYzDOYRMArmGErZhhMArlHmzmGMwDE3Ts\nbAbs4swj5pgFkSziVcM4BZEsolXDKAZwyhjCYBkACQhIAAAAAAAJAAAAAAAAAAAAAAAAAAAShIAA\nAAAAAAJAAAAAAAAAAAAAABAJEAAAAAAAAAAAAAAAIEoBKAAAAAAAAAAAAAAABAlAAAAAAAIAAAAA\nBAkBAkBAkBAlACEgMZjdjbFW8bWrEx8YWANb6Fp+bfwab+vLDKMFK9qxH5L0bAr8OPRPKz2AY7J2\nSbAjYZAI2E7AIEgIEgIEgMdkSy2NgY7MdlmyNoBXsxmFuyNgVTVjNV3KjlBRNTlXTVHKCrlIqt5T\nlBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/\n2Q==`;\n"], + "mappings": "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B,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAClJ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAChJ,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IACpJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GACrJ,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GACpJ,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EACpJ,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAC9I,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,CACC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EA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CH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OA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AC,QAAS,eAG1B,MAAA,WAAU,KAAK,WACf,UAAU,KAAK,UAGX,aAAa,OAAQ,UAAW,SAAU,MAAO,eAIrD,YAAc,aAChB,IAAK,qBAAsB,WAAY,YAAa,aAElD,SACF,SAAQ,CAAC,OAAQ,CAAC,EAAG,aAAc,QAAA,UAAS,MAAO,CAAC,MAAO,YAE3D,OAAS,SACb,GAAI,aAAe,MACjB,UAAU,KAAK,UACf,GAAM,MAAO,qBAAa,uBAAuB,aACjD,OAAS,WAAU,CAAC,OAAQ,CAAC,EAAG,QAAS,QAAA,UAAS,MAAO,CAAC,QAG5D,MAAA,WAAU,QAAQ,GAAK,UAAQ,8BAA8B,IACtD,OAGF,GAAM,2BAAyC,CACpD,WAAY,mBACZ,YAAa,QACb,WAAY,qBC4DR,eAAgC,CACpC,UACA,cACA,oBACA,WACA,YACA,aACA,WACA,YACA,WACA,WACA,cACA,cACA,YACA,aACA,aACA,YACA,aACA,iBACA,eACA,oBACA,mBACA,mBACA,iBACA,sBACA,gBACA,YACA,YACA,kBACA,kBACA,eACA,cACA,4BACA,2BACA,cACA,8BACA,0BACA,cACA,WACA,YACA,qBACA,cACA,qBACA,oBACA,2CACA,0CACA,6BACA,YACA,iBACA,WACA,eACA,aACA,WACA,WACA,kBACA,aACA,WACA,YACA,qBACA,aACA,gBACA,iBACA,mBACA,4BACA,gBACA,gBACA,eACA,oBACA,gBACA,YACA,YACA,gBACA,aACA,aACA,iBACA,YACA,iBACA,gBACA,aACA,WACA,kBACA,kBACA,iBACA,WACA,iBACA,eACA,oBACA,mBACA,yBACA,eACA,YACA,WACA,eACA,iBACA,WACA,mBACA,gBACA,WACA,2BACA,2BACA,2BACA,gBACA,cACA,gBACA,YACA,aACA,WACA,aACA,YACA,aACA,YACA,eACA,kBACA,aACA,YACA,eACA,sBACA,0BACA,6BACA,iCACA,eACA,wBACA,aACA,aACA,iBACA,cACA,YACA,eACA,YACA,WACA,YACA,aACA,eACA,gBACA,sBACA,qBACA,cACA,YACA,cACA,yBACA,YACA,oBACA,WACA,WACA,W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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kEA0JP,KAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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", "names": [] } diff --git a/dist/human.json b/dist/human.json index 63520762..2ed854d6 100644 --- a/dist/human.json +++ b/dist/human.json @@ -264,7 +264,7 @@ ] }, "src/blazepose/blazepose.js": { - "bytes": 8999, + "bytes": 856, "imports": [ { "path": "src/log.js" @@ -361,7 +361,7 @@ ] }, "config.js": { - "bytes": 10062, + "bytes": 10110, "imports": [] }, "src/sample.js": { @@ -373,7 +373,7 @@ "imports": [] }, "src/human.js": { - "bytes": 17787, + "bytes": 18921, "imports": [ { "path": "src/log.js" @@ -433,14 +433,14 @@ "dist/human.js.map": { "imports": [], "inputs": {}, - "bytes": 1945575 + "bytes": 1934780 }, "dist/human.js": { "imports": [], "exports": [], "inputs": { "src/blazeface/blazeface.js": { - "bytesInOutput": 5046 + "bytesInOutput": 5039 }, "src/blazeface/box.js": { "bytesInOutput": 1567 @@ -515,7 +515,7 @@ "bytesInOutput": 127037 }, "src/handpose/handpose.js": { - "bytesInOutput": 2025 + "bytesInOutput": 2023 }, "src/gesture/gesture.js": { "bytesInOutput": 3162 @@ -527,7 +527,7 @@ "bytesInOutput": 3652 }, "src/human.js": { - "bytesInOutput": 11986 + "bytesInOutput": 12725 }, "src/log.js": { "bytesInOutput": 266 @@ -539,7 +539,7 @@ "bytesInOutput": 918 }, "src/blazepose/blazepose.js": { - "bytesInOutput": 6201 + "bytesInOutput": 572 }, "src/handpose/box.js": { "bytesInOutput": 1420 @@ -557,7 +557,7 @@ "bytesInOutput": 23 } }, - "bytes": 1912658 + "bytes": 1907759 } } } diff --git a/dist/human.node-gpu.js b/dist/human.node-gpu.js index 57af33af..cff59892 100644 --- a/dist/human.node-gpu.js +++ b/dist/human.node-gpu.js @@ -5,14 +5,14 @@ author: ' */ -var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module2)=>()=>(module2||(module2={exports:{}},callback(module2.exports,module2)),module2.exports),__export=(target,all)=>{__markAsModule(target);for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__exportStar=(target,module2,desc)=>{if(__markAsModule(target),module2&&typeof module2=="object"||typeof module2=="function")for(let key of __getOwnPropNames(module2))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module2[key],enumerable:!(desc=__getOwnPropDesc(module2,key))||desc.enumerable});return target},__toModule=module2=>module2&&module2.__esModule?module2:__exportStar(__defProp(module2!=null?__create(__getProtoOf(module2)):{},"default",{value:module2,enumerable:!0}),module2);var require_tfjs_esm=__commonJS(exports2=>{var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__exportStar2=(target,module22,desc)=>{if(__markAsModule2(target),module22&&typeof module22=="object"||typeof module22=="function")for(let key of __getOwnPropNames2(module22))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module22[key],enumerable:!(desc=__getOwnPropDesc2(module22,key))||desc.enumerable});return target},__toModule2=module22=>module22&&module22.__esModule?module22:__exportStar2(__defProp2(module22!=null?__create2(__getProtoOf2(module22)):{},"default",{value:module22,enumerable:!0}),module22);__exportStar2(exports2,__toModule2(require("@tensorflow/tfjs-node-gpu")))});var require_blazeface=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),NUM_LANDMARKS=6;function generateAnchors(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:tf4.slice(startEndTensor,[0,0],[-1,2]),endPoint:tf4.slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=tf4.mul(box.startPoint,factors),ends=tf4.mul(box.endPoint,factors),newCoordinates=tf4.concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors,inputSize){let boxStarts=tf4.slice(boxOutputs,[0,1],[-1,2]),centers=tf4.add(boxStarts,anchors),boxSizes=tf4.slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=tf4.div(boxSizes,inputSize),centersNormalized=tf4.div(centers,inputSize),halfBoxSize=tf4.div(boxSizesNormalized,2),starts=tf4.sub(centersNormalized,halfBoxSize),ends=tf4.add(centersNormalized,halfBoxSize),startNormalized=tf4.mul(starts,inputSize),endNormalized=tf4.mul(ends,inputSize);return tf4.concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tf4.tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model,config2){this.blazeFaceModel=model,this.width=config2.face.detector.inputSize,this.height=config2.face.detector.inputSize,this.anchorsData=generateAnchors(config2.face.detector.inputSize),this.anchors=tf4.tensor2d(this.anchorsData),this.inputSize=tf4.tensor1d([this.width,this.height]),this.config=config2,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tf4.tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=tf4.sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=tf4.concat([sorted[0],sorted[2]],2),concat512=tf4.concat([sorted[1],sorted[3]],2);prediction=tf4.concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=tf4.slice(prediction,[0,0],[-1,1]),scoresOut=tf4.sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await tf4.image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>tf4.slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tf4.tidy(()=>tf4.slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input){let{boxes,scaleFactor}=await this.getBoundingBoxes(input),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load2(config2){let blazeface=await tf4.loadGraphModel(config2.face.detector.modelPath,{fromTFHub:config2.face.detector.modelPath.includes("tfhub.dev")}),model=new BlazeFaceModel(blazeface,config2);return log(`load model: ${config2.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model}exports2.load=load2;exports2.BlazeFaceModel=BlazeFaceModel;exports2.disposeBox=disposeBox});var require_box=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm());function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports2.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports2.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports2.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image4,cropSize){let h=image4.shape[1],w=image4.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf4.image.cropAndResize(image4,boxes,[0],cropSize)}exports2.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports2.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports2.squarifyBox=squarifyBox2});var require_util=__commonJS(exports2=>{exports2.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports2.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports2.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports2.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot2(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports2.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports2.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports2.TRI468=TRI468;exports2.TRI68=TRI68;exports2.TRI33=TRI33;exports2.TRI7=TRI7;exports2.UV468=UV468;exports2.UV68=VTX68.map(x=>UV468[x]);exports2.UV33=VTX33.map(x=>UV468[x]);exports2.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),bounding=__toModule(require_box()),util=__toModule(require_util()),coords=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=tf4.image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=tf4.image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input,config2){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config2.face.detector.skipFrames||!config2.face.mesh.enabled||!config2.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input),this.skipped=0),config2.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config2.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config2.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tf4.tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config2.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input.shape[2],faceCenter[1]/input.shape[1]],rotatedImage=tf4.image.rotateWithOffset(input,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config2.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports2.Pipeline=Pipeline});var require_facemesh=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config2){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config2),this.config=config2}async estimateFaces(input,config2){let predictions=await this.facePipeline.predict(input,config2),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords.MESH_ANNOTATIONS))annotations[key]=coords.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config2.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?tf4.clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load2(config2){faceModels=await Promise.all([!faceModels[0]&&config2.face.enabled?blazeface.load(config2):null,!faceModels[1]&&config2.face.mesh.enabled?tf4.loadGraphModel(config2.face.mesh.modelPath,{fromTFHub:config2.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config2.face.iris.enabled?tf4.loadGraphModel(config2.face.iris.modelPath,{fromTFHub:config2.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config2);return config2.face.mesh.enabled&&log(`load model: ${config2.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config2.face.iris.enabled&&log(`load model: ${config2.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports2.load=load2;exports2.MediaPipeFaceMesh=MediaPipeFaceMesh;exports2.triangulation=coords.TRI468});var require_profile=__commonJS(exports2=>{var profileData={};function profile2(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports2.run=profile2});var require_age=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load2(config2){return models.age||(models.age=await tf4.loadGraphModel(config2.face.age.modelPath),log(`load model: ${config2.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models.age}async function predict2(image4,config2){return models.age?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf4.image.resizeBilinear(image4,[config2.face.age.inputSize,config2.face.age.inputSize],!1),enhance=tf4.mul(resize,[255]);tf4.dispose(resize);let ageT,obj={};if(!config2.profile)config2.face.age.enabled&&(ageT=await models.age.predict(enhance));else{let profileAge=config2.face.age.enabled?await tf4.profile(()=>models.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile2.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict2;exports2.load=load2});var require_gender=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load2(config2){return models.gender||(models.gender=await tf4.loadGraphModel(config2.face.gender.modelPath),alternative=models.gender.inputs[0].shape[3]===1,log(`load model: ${config2.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models.gender}async function predict2(image4,config2){return models.gender?skipped{let resize=tf4.image.resizeBilinear(image4,[config2.face.gender.inputSize,config2.face.gender.inputSize],!1),enhance;alternative?enhance=tf4.tidy(()=>{let[red,green,blue]=tf4.split(resize,3,3),redNorm=tf4.mul(red,rgb[0]),greenNorm=tf4.mul(green,rgb[1]),blueNorm=tf4.mul(blue,rgb[2]);return tf4.addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=tf4.mul(resize,[255]),tf4.dispose(resize);let genderT,obj={};if(!config2.profile)config2.face.gender.enabled&&(genderT=await models.gender.predict(enhance));else{let profileGender=config2.face.gender.enabled?await tf4.profile(()=>models.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile2.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict2;exports2.load=load2});var require_emotion=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale=1;async function load2(config2){return models.emotion||(models.emotion=await tf4.loadGraphModel(config2.face.emotion.modelPath),log(`load model: ${config2.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models.emotion}async function predict2(image4,config2){return models.emotion?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf4.image.resizeBilinear(image4,[config2.face.emotion.inputSize,config2.face.emotion.inputSize],!1),[red,green,blue]=tf4.split(resize,3,3);resize.dispose();let redNorm=tf4.mul(red,rgb[0]),greenNorm=tf4.mul(green,rgb[1]),blueNorm=tf4.mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=tf4.addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tf4.tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config2.face.emotion.enabled){let data2;if(config2.profile){let profileData=await tf4.profile(()=>models.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile2.run("emotion",profileData)}else{let emotionT=await models.emotion.predict(normalize);data2=emotionT.dataSync(),tf4.dispose(emotionT)}for(let i=0;iconfig2.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict2;exports2.load=load2});var require_embedding=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models={};async function load2(config2){return models.embedding||(models.embedding=await tf4.loadGraphModel(config2.face.embedding.modelPath),log(`load model: ${config2.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models.embedding}function simmilarity2(embedding1,embedding2){if((embedding1==null?void 0:embedding1.length)!==(embedding2==null?void 0:embedding2.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding2[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict2(image4,config2){return models.embedding?new Promise(async resolve=>{let resize=tf4.image.resizeBilinear(image4,[config2.face.embedding.inputSize,config2.face.embedding.inputSize],!1),data2=[];if(config2.face.embedding.enabled)if(config2.profile){let profileData=await tf4.profile(()=>models.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile2.run("emotion",profileData)}else{let embeddingT=await models.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],tf4.dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports2.predict=predict2;exports2.simmilarity=simmilarity2;exports2.load=load2});var require_modelBase=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model){this.model=model}predict(input,config2){return tf4.tidy(()=>{let asBatch=(config2.body.modelType==="ResNet"?input.toFloat().add(imageNetMean):input.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config2.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports2.BaseModel=BaseModel});var require_heapSort=__commonJS(exports2=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports2.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports2.NUM_KEYPOINTS=exports2.partNames.length;exports2.partIds=exports2.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports2.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports2.partIds[jointNameA],exports2.partIds[jointNameB]]);exports2.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports2.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports2=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports2.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports2.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax?max:a}exports2.clamp=clamp;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports2.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports2.addVectors=addVectors;function clampVector(a,min,max){return{y:clamp(a.y,min,max),x:clamp(a.x,min,max)}}exports2.clampVector=clampVector});var require_decoders=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(tf4.scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports2.getOffsetPoints=getOffsetPoints;function mod(a,b){return tf4.tidy(()=>{let floored=a.div(tf4.scalar(b,"int32"));return a.sub(floored.mul(tf4.scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tf4.tidy(()=>{let coords=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords.div(tf4.scalar(width,"int32")).expandDims(1),xCoords=mod(coords,width).expandDims(1);return tf4.concat([yCoords,xCoords],1)})}exports2.argmax2d=argmax2d});var require_decodePose=__commonJS(exports2=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config2.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports2.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports2=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2){let poses=[],queue=buildParts.buildPartWithScoreQueue(config2.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config2.body.nmsRadius^2;for(;poses.lengthconfig2.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports2.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports2=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports2.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports2.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports2.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor=>tensor.buffer()))}exports2.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports2.scalePose=scalePose;function resizeTo(image3,[targetH,targetW]){let input=image3.squeeze(0),resized=input.resizeBilinear([targetH,targetW]);return input.dispose(),resized}exports2.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports2.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2),scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}async function estimateSingle(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config2)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model){this.baseModel=model}async estimatePoses(input,config2){let resized=util.resizeTo(input,[config2.body.inputSize,config2.body.inputSize]),res=this.baseModel.predict(resized,config2),poses=config2.body.maxDetections<2?await estimateSingle(input,res,config2):await estimateMultiple(input,res,config2);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports2.PoseNet=PoseNet;async function load2(config2){let model=await tf4.loadGraphModel(config2.body.modelPath),mobilenet=new modelBase.BaseModel(model);return log(`load model: ${config2.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports2.load=load2});var require_posenet=__commonJS(exports2=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports2.load=modelPoseNet.load;exports2.PoseNet=modelPoseNet.PoseNet;exports2.partChannels=keypoints.partChannels;exports2.partIds=keypoints.partIds;exports2.partNames=keypoints.partNames;exports2.poseChain=keypoints.poseChain;exports2.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports2.getBoundingBox=util.getBoundingBox;exports2.getBoundingBoxPoints=util.getBoundingBoxPoints;exports2.scaleAndFlipPoses=util.scaleAndFlipPoses;exports2.scalePose=util.scalePose});var require_handdetector=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),HandDetector=class{constructor(model,inputSize,anchorsAnnotated){this.model=model,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tf4.tensor2d(this.anchors),this.inputSizeTensor=tf4.tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tf4.tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tf4.tidy(()=>{let boxOffsets=tf4.slice(boxes,[0,0],[-1,2]),boxSizes=tf4.slice(boxes,[0,2],[-1,2]),boxCenterPoints=tf4.add(tf4.div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=tf4.div(boxSizes,this.doubleInputSizeTensor),startPoints=tf4.mul(tf4.sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=tf4.mul(tf4.add(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return tf4.concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tf4.tidy(()=>{let landmarks=tf4.add(tf4.div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return tf4.mul(landmarks,this.inputSizeTensor)})}async getBoxes(input,config2){let batched=this.model.predict(input),predictions=batched.squeeze();batched.dispose();let scoresT=tf4.tidy(()=>tf4.sigmoid(tf4.slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=tf4.slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await tf4.image.nonMaxSuppressionAsync(boxes,scores,config2.hand.maxHands,config2.hand.iouThreshold,config2.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config2.hand.minConfidence){let matchingBox=tf4.slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=tf4.slice(predictions,[index,5],[1,14]),palmLandmarks=tf4.tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input,config2){let inputHeight=input.shape[1],inputWidth=input.shape[2],image4=tf4.tidy(()=>input.resizeBilinear([config2.hand.inputSize,config2.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image4,config2);image4.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config2.hand.inputSize,inputHeight/config2.hand.inputSize]))}return hands}};exports2.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot(boxCenter,inverseRotationMatrix[0]),dot(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image4,config2){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config2.hand.skipFrames||!config2.hand.landmarks||!config2.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image4,config2),this.skipped=0),config2.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config2.hand.maxHands||!config2.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config2.hand.minConfidence){let keypointsReshaped=tf4.reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports2.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports2=>{exports2.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input,config2){let predictions=await this.handPipeline.estimateHands(input,config2);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports2.HandPose=HandPose;async function load2(config2){let[handDetectorModel,handPoseModel]=await Promise.all([config2.hand.enabled?tf4.loadGraphModel(config2.hand.detector.modelPath,{fromTFHub:config2.hand.detector.modelPath.includes("tfhub.dev")}):null,config2.hand.landmarks?tf4.loadGraphModel(config2.hand.skeleton.modelPath,{fromTFHub:config2.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config2.hand.inputSize,anchors.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config2.hand.inputSize),handPose=new HandPose(handPipeline);return config2.hand.enabled&&log(`load model: ${config2.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config2.hand.landmarks&&log(`load model: ${config2.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports2.load=load2});var require_gesture=__commonJS(exports2=>{exports2.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports2.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports2.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image3){if(_resize(image3.width,image3.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image3),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` +var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module2)=>()=>(module2||(module2={exports:{}},callback(module2.exports,module2)),module2.exports),__export=(target,all)=>{__markAsModule(target);for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__exportStar=(target,module2,desc)=>{if(__markAsModule(target),module2&&typeof module2=="object"||typeof module2=="function")for(let key of __getOwnPropNames(module2))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module2[key],enumerable:!(desc=__getOwnPropDesc(module2,key))||desc.enumerable});return target},__toModule=module2=>module2&&module2.__esModule?module2:__exportStar(__defProp(module2!=null?__create(__getProtoOf(module2)):{},"default",{value:module2,enumerable:!0}),module2);var require_tfjs_esm=__commonJS(exports2=>{var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__exportStar2=(target,module22,desc)=>{if(__markAsModule2(target),module22&&typeof module22=="object"||typeof module22=="function")for(let key of __getOwnPropNames2(module22))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module22[key],enumerable:!(desc=__getOwnPropDesc2(module22,key))||desc.enumerable});return target},__toModule2=module22=>module22&&module22.__esModule?module22:__exportStar2(__defProp2(module22!=null?__create2(__getProtoOf2(module22)):{},"default",{value:module22,enumerable:!0}),module22);__exportStar2(exports2,__toModule2(require("@tensorflow/tfjs-node-gpu")))});var require_blazeface=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),NUM_LANDMARKS=6;function generateAnchors(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:tf5.slice(startEndTensor,[0,0],[-1,2]),endPoint:tf5.slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=tf5.mul(box.startPoint,factors),ends=tf5.mul(box.endPoint,factors),newCoordinates=tf5.concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors,inputSize){let boxStarts=tf5.slice(boxOutputs,[0,1],[-1,2]),centers=tf5.add(boxStarts,anchors),boxSizes=tf5.slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=tf5.div(boxSizes,inputSize),centersNormalized=tf5.div(centers,inputSize),halfBoxSize=tf5.div(boxSizesNormalized,2),starts=tf5.sub(centersNormalized,halfBoxSize),ends=tf5.add(centersNormalized,halfBoxSize),startNormalized=tf5.mul(starts,inputSize),endNormalized=tf5.mul(ends,inputSize);return tf5.concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tf5.tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model,config2){this.blazeFaceModel=model,this.width=config2.face.detector.inputSize,this.height=config2.face.detector.inputSize,this.anchorsData=generateAnchors(config2.face.detector.inputSize),this.anchors=tf5.tensor2d(this.anchorsData),this.inputSize=tf5.tensor1d([this.width,this.height]),this.config=config2,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tf5.tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=tf5.sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=tf5.concat([sorted[0],sorted[2]],2),concat512=tf5.concat([sorted[1],sorted[3]],2);prediction=tf5.concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=tf5.slice(prediction,[0,0],[-1,1]),scoresOut=tf5.sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await tf5.image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>tf5.slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tf5.tidy(()=>tf5.slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input){let{boxes,scaleFactor}=await this.getBoundingBoxes(input),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load3(config2){let blazeface=await tf5.loadGraphModel(config2.face.detector.modelPath,{fromTFHub:config2.face.detector.modelPath.includes("tfhub.dev")}),model=new BlazeFaceModel(blazeface,config2);return log(`load model: ${config2.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model}exports2.load=load3;exports2.BlazeFaceModel=BlazeFaceModel;exports2.disposeBox=disposeBox});var require_box=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm());function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports2.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports2.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports2.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image5,cropSize){let h=image5.shape[1],w=image5.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf5.image.cropAndResize(image5,boxes,[0],cropSize)}exports2.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports2.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports2.squarifyBox=squarifyBox2});var require_util=__commonJS(exports2=>{exports2.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports2.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports2.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports2.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot2(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports2.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports2.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports2.TRI468=TRI468;exports2.TRI68=TRI68;exports2.TRI33=TRI33;exports2.TRI7=TRI7;exports2.UV468=UV468;exports2.UV68=VTX68.map(x=>UV468[x]);exports2.UV33=VTX33.map(x=>UV468[x]);exports2.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),bounding=__toModule(require_box()),util=__toModule(require_util()),coords=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=tf5.image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=tf5.image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input,config2){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config2.face.detector.skipFrames||!config2.face.mesh.enabled||!config2.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input),this.skipped=0),config2.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config2.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config2.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tf5.tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config2.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input.shape[2],faceCenter[1]/input.shape[1]],rotatedImage=tf5.image.rotateWithOffset(input,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config2.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports2.Pipeline=Pipeline});var require_facemesh=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config2){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config2),this.config=config2}async estimateFaces(input,config2){let predictions=await this.facePipeline.predict(input,config2),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords.MESH_ANNOTATIONS))annotations[key]=coords.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config2.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?tf5.clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load3(config2){faceModels=await Promise.all([!faceModels[0]&&config2.face.enabled?blazeface.load(config2):null,!faceModels[1]&&config2.face.mesh.enabled?tf5.loadGraphModel(config2.face.mesh.modelPath,{fromTFHub:config2.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config2.face.iris.enabled?tf5.loadGraphModel(config2.face.iris.modelPath,{fromTFHub:config2.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config2);return config2.face.mesh.enabled&&log(`load model: ${config2.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config2.face.iris.enabled&&log(`load model: ${config2.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports2.load=load3;exports2.MediaPipeFaceMesh=MediaPipeFaceMesh;exports2.triangulation=coords.TRI468});var require_profile=__commonJS(exports2=>{var profileData={};function profile2(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports2.run=profile2});var require_age=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models2={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load3(config2){return models2.age||(models2.age=await tf5.loadGraphModel(config2.face.age.modelPath),log(`load model: ${config2.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models2.age}async function predict3(image5,config2){return models2.age?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf5.image.resizeBilinear(image5,[config2.face.age.inputSize,config2.face.age.inputSize],!1),enhance=tf5.mul(resize,[255]);tf5.dispose(resize);let ageT,obj={};if(!config2.profile)config2.face.age.enabled&&(ageT=await models2.age.predict(enhance));else{let profileAge=config2.face.age.enabled?await tf5.profile(()=>models2.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile2.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict3;exports2.load=load3});var require_gender=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models2={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load3(config2){return models2.gender||(models2.gender=await tf5.loadGraphModel(config2.face.gender.modelPath),alternative=models2.gender.inputs[0].shape[3]===1,log(`load model: ${config2.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models2.gender}async function predict3(image5,config2){return models2.gender?skipped{let resize=tf5.image.resizeBilinear(image5,[config2.face.gender.inputSize,config2.face.gender.inputSize],!1),enhance;alternative?enhance=tf5.tidy(()=>{let[red,green,blue]=tf5.split(resize,3,3),redNorm=tf5.mul(red,rgb[0]),greenNorm=tf5.mul(green,rgb[1]),blueNorm=tf5.mul(blue,rgb[2]);return tf5.addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=tf5.mul(resize,[255]),tf5.dispose(resize);let genderT,obj={};if(!config2.profile)config2.face.gender.enabled&&(genderT=await models2.gender.predict(enhance));else{let profileGender=config2.face.gender.enabled?await tf5.profile(()=>models2.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile2.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict3;exports2.load=load3});var require_emotion=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models2={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale=1;async function load3(config2){return models2.emotion||(models2.emotion=await tf5.loadGraphModel(config2.face.emotion.modelPath),log(`load model: ${config2.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models2.emotion}async function predict3(image5,config2){return models2.emotion?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf5.image.resizeBilinear(image5,[config2.face.emotion.inputSize,config2.face.emotion.inputSize],!1),[red,green,blue]=tf5.split(resize,3,3);resize.dispose();let redNorm=tf5.mul(red,rgb[0]),greenNorm=tf5.mul(green,rgb[1]),blueNorm=tf5.mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=tf5.addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tf5.tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config2.face.emotion.enabled){let data2;if(config2.profile){let profileData=await tf5.profile(()=>models2.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile2.run("emotion",profileData)}else{let emotionT=await models2.emotion.predict(normalize);data2=emotionT.dataSync(),tf5.dispose(emotionT)}for(let i=0;iconfig2.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict3;exports2.load=load3});var require_embedding=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models2={};async function load3(config2){return models2.embedding||(models2.embedding=await tf5.loadGraphModel(config2.face.embedding.modelPath),log(`load model: ${config2.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models2.embedding}function simmilarity2(embedding1,embedding2){if((embedding1==null?void 0:embedding1.length)!==(embedding2==null?void 0:embedding2.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding2[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict3(image5,config2){return models2.embedding?new Promise(async resolve=>{let resize=tf5.image.resizeBilinear(image5,[config2.face.embedding.inputSize,config2.face.embedding.inputSize],!1),data2=[];if(config2.face.embedding.enabled)if(config2.profile){let profileData=await tf5.profile(()=>models2.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile2.run("emotion",profileData)}else{let embeddingT=await models2.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],tf5.dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports2.predict=predict3;exports2.simmilarity=simmilarity2;exports2.load=load3});var require_modelBase=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model){this.model=model}predict(input,config2){return tf5.tidy(()=>{let asBatch=(config2.body.modelType==="ResNet"?input.toFloat().add(imageNetMean):input.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config2.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports2.BaseModel=BaseModel});var require_heapSort=__commonJS(exports2=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports2.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports2.NUM_KEYPOINTS=exports2.partNames.length;exports2.partIds=exports2.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports2.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports2.partIds[jointNameA],exports2.partIds[jointNameB]]);exports2.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports2.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports2=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports2.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports2.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax?max:a}exports2.clamp=clamp;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports2.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports2.addVectors=addVectors;function clampVector(a,min,max){return{y:clamp(a.y,min,max),x:clamp(a.x,min,max)}}exports2.clampVector=clampVector});var require_decoders=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(tf5.scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports2.getOffsetPoints=getOffsetPoints;function mod(a,b){return tf5.tidy(()=>{let floored=a.div(tf5.scalar(b,"int32"));return a.sub(floored.mul(tf5.scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tf5.tidy(()=>{let coords=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords.div(tf5.scalar(width,"int32")).expandDims(1),xCoords=mod(coords,width).expandDims(1);return tf5.concat([yCoords,xCoords],1)})}exports2.argmax2d=argmax2d});var require_decodePose=__commonJS(exports2=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config2.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports2.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports2=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2){let poses=[],queue=buildParts.buildPartWithScoreQueue(config2.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config2.body.nmsRadius^2;for(;poses.lengthconfig2.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports2.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports2=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports2.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports2.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports2.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor=>tensor.buffer()))}exports2.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports2.scalePose=scalePose;function resizeTo(image4,[targetH,targetW]){let input=image4.squeeze(0),resized=input.resizeBilinear([targetH,targetW]);return input.dispose(),resized}exports2.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports2.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2),scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}async function estimateSingle(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config2)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model){this.baseModel=model}async estimatePoses(input,config2){let resized=util.resizeTo(input,[config2.body.inputSize,config2.body.inputSize]),res=this.baseModel.predict(resized,config2),poses=config2.body.maxDetections<2?await estimateSingle(input,res,config2):await estimateMultiple(input,res,config2);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports2.PoseNet=PoseNet;async function load3(config2){let model=await tf5.loadGraphModel(config2.body.modelPath),mobilenet=new modelBase.BaseModel(model);return log(`load model: ${config2.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports2.load=load3});var require_posenet=__commonJS(exports2=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports2.load=modelPoseNet.load;exports2.PoseNet=modelPoseNet.PoseNet;exports2.partChannels=keypoints.partChannels;exports2.partIds=keypoints.partIds;exports2.partNames=keypoints.partNames;exports2.poseChain=keypoints.poseChain;exports2.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports2.getBoundingBox=util.getBoundingBox;exports2.getBoundingBoxPoints=util.getBoundingBoxPoints;exports2.scaleAndFlipPoses=util.scaleAndFlipPoses;exports2.scalePose=util.scalePose});var require_handdetector=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),HandDetector=class{constructor(model,inputSize,anchorsAnnotated){this.model=model,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tf5.tensor2d(this.anchors),this.inputSizeTensor=tf5.tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tf5.tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tf5.tidy(()=>{let boxOffsets=tf5.slice(boxes,[0,0],[-1,2]),boxSizes=tf5.slice(boxes,[0,2],[-1,2]),boxCenterPoints=tf5.add(tf5.div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=tf5.div(boxSizes,this.doubleInputSizeTensor),startPoints=tf5.mul(tf5.sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=tf5.mul(tf5.add(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return tf5.concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tf5.tidy(()=>{let landmarks=tf5.add(tf5.div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return tf5.mul(landmarks,this.inputSizeTensor)})}async getBoxes(input,config2){let batched=this.model.predict(input),predictions=batched.squeeze();batched.dispose();let scoresT=tf5.tidy(()=>tf5.sigmoid(tf5.slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=tf5.slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await tf5.image.nonMaxSuppressionAsync(boxes,scores,config2.hand.maxHands,config2.hand.iouThreshold,config2.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config2.hand.minConfidence){let matchingBox=tf5.slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=tf5.slice(predictions,[index,5],[1,14]),palmLandmarks=tf5.tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input,config2){let inputHeight=input.shape[1],inputWidth=input.shape[2],image5=tf5.tidy(()=>input.resizeBilinear([config2.hand.inputSize,config2.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image5,config2);image5.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config2.hand.inputSize,inputHeight/config2.hand.inputSize]))}return hands}};exports2.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot(boxCenter,inverseRotationMatrix[0]),dot(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image5,config2){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config2.hand.skipFrames||!config2.hand.landmarks||!config2.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image5,config2),this.skipped=0),config2.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config2.hand.maxHands||!config2.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config2.hand.minConfidence){let keypointsReshaped=tf5.reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports2.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports2=>{exports2.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input,config2){let predictions=await this.handPipeline.estimateHands(input,config2);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports2.HandPose=HandPose;async function load3(config2){let[handDetectorModel,handPoseModel]=await Promise.all([config2.hand.enabled?tf5.loadGraphModel(config2.hand.detector.modelPath,{fromTFHub:config2.hand.detector.modelPath.includes("tfhub.dev")}):null,config2.hand.landmarks?tf5.loadGraphModel(config2.hand.skeleton.modelPath,{fromTFHub:config2.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config2.hand.inputSize,anchors.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config2.hand.inputSize),handPose=new HandPose(handPipeline);return config2.hand.enabled&&log(`load model: ${config2.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config2.hand.landmarks&&log(`load model: ${config2.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports2.load=load3});var require_gesture=__commonJS(exports2=>{exports2.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports2.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports2.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image4){if(_resize(image4.width,image4.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image4),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` `),SHADER.FRAGMENT_IDENTITY=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","void main(void) {","gl_FragColor = texture2D(texture, vUv);","}"].join(` `);let _filter={};_filter.colorMatrix=function(matrix){let m=new Float32Array(matrix);m[4]/=255,m[9]/=255,m[14]/=255,m[19]/=255;let shader=m[18]===1&&m[3]===0&&m[8]===0&&m[13]===0&&m[15]===0&&m[16]===0&&m[17]===0&&m[19]===0?_filter.colorMatrix.SHADER.WITHOUT_ALPHA:_filter.colorMatrix.SHADER.WITH_ALPHA,program=_compileShader(shader);gl.uniform1fv(program.uniform.m,m),_draw()},_filter.colorMatrix.SHADER={},_filter.colorMatrix.SHADER.WITH_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];","gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];","}"].join(` `),_filter.colorMatrix.SHADER.WITHOUT_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];","gl_FragColor.a = c.a;","}"].join(` `),_filter.brightness=function(brightness){let b=(brightness||0)+1;_filter.colorMatrix([b,0,0,0,0,0,b,0,0,0,0,0,b,0,0,0,0,0,1,0])},_filter.saturation=function(amount){let x=(amount||0)*2/3+1,y=(x-1)*-.5;_filter.colorMatrix([x,y,y,0,0,y,x,y,0,0,y,y,x,0,0,0,0,0,1,0])},_filter.desaturate=function(){_filter.saturation(-1)},_filter.contrast=function(amount){let v=(amount||0)+1,o=-128*(v-1);_filter.colorMatrix([v,0,0,0,o,0,v,0,0,o,0,0,v,0,o,0,0,0,1,0])},_filter.negative=function(){_filter.contrast(-2)},_filter.hue=function(rotation){rotation=(rotation||0)/180*Math.PI;let cos=Math.cos(rotation),sin=Math.sin(rotation),lumR=.213,lumG=.715,lumB=.072;_filter.colorMatrix([lumR+cos*(1-lumR)+sin*-lumR,lumG+cos*-lumG+sin*-lumG,lumB+cos*-lumB+sin*(1-lumB),0,0,lumR+cos*-lumR+sin*.143,lumG+cos*(1-lumG)+sin*.14,lumB+cos*-lumB+sin*-.283,0,0,lumR+cos*-lumR+sin*-(1-lumR),lumG+cos*-lumG+sin*lumG,lumB+cos*(1-lumB)+sin*lumB,0,0,0,0,0,1,0])},_filter.desaturateLuminance=function(){_filter.colorMatrix([.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,0,0,0,1,0])},_filter.sepia=function(){_filter.colorMatrix([.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0])},_filter.brownie=function(){_filter.colorMatrix([.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0])},_filter.vintagePinhole=function(){_filter.colorMatrix([.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0])},_filter.kodachrome=function(){_filter.colorMatrix([1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0])},_filter.technicolor=function(){_filter.colorMatrix([1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0])},_filter.polaroid=function(){_filter.colorMatrix([1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0])},_filter.shiftToBGR=function(){_filter.colorMatrix([0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0])},_filter.convolution=function(matrix){let m=new Float32Array(matrix),pixelSizeX=1/_width,pixelSizeY=1/_height,program=_compileShader(_filter.convolution.SHADER);gl.uniform1fv(program.uniform.m,m),gl.uniform2f(program.uniform.px,pixelSizeX,pixelSizeY),_draw()},_filter.convolution.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","uniform float m[9];","void main(void) {","vec4 c11 = texture2D(texture, vUv - px);","vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));","vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));","vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );","vec4 c22 = texture2D(texture, vUv);","vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );","vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );","vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );","vec4 c33 = texture2D(texture, vUv + px );","gl_FragColor = ","c11 * m[0] + c12 * m[1] + c22 * m[2] +","c21 * m[3] + c22 * m[4] + c23 * m[5] +","c31 * m[6] + c32 * m[7] + c33 * m[8];","gl_FragColor.a = c22.a;","}"].join(` `),_filter.detectEdges=function(){_filter.convolution.call(this,[0,1,0,1,-4,1,0,1,0])},_filter.sobelX=function(){_filter.convolution.call(this,[-1,0,1,-2,0,2,-1,0,1])},_filter.sobelY=function(){_filter.convolution.call(this,[-1,-2,-1,0,0,0,1,2,1])},_filter.sharpen=function(amount){let a=amount||1;_filter.convolution.call(this,[0,-1*a,0,-1*a,1+4*a,-1*a,0,-1*a,0])},_filter.emboss=function(size){let s=size||1;_filter.convolution.call(this,[-2*s,-1*s,0,-1*s,1,1*s,0,1*s,2*s])},_filter.blur=function(size){let blurSizeX=size/7/_width,blurSizeY=size/7/_height,program=_compileShader(_filter.blur.SHADER);gl.uniform2f(program.uniform.px,0,blurSizeY),_draw(DRAW.INTERMEDIATE),gl.uniform2f(program.uniform.px,blurSizeX,0),_draw()},_filter.blur.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","void main(void) {","gl_FragColor = vec4(0.0);","gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;","gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv )*0.159576912161;","gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;","}"].join(` `),_filter.pixelate=function(size){let blurSizeX=size/_width,blurSizeY=size/_height,program=_compileShader(_filter.pixelate.SHADER);gl.uniform2f(program.uniform.size,blurSizeX,blurSizeY),_draw()},_filter.pixelate.SHADER=["precision highp float;","varying vec2 vUv;","uniform vec2 size;","uniform sampler2D texture;","vec2 pixelate(vec2 coord, vec2 size) {","return floor( coord / size ) * size;","}","void main(void) {","gl_FragColor = vec4(0.0);","vec2 coord = pixelate(vUv, size);","gl_FragColor += texture2D(texture, coord);","}"].join(` -`)};exports2.Canvas=WebGLImageFilter});var require_image=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input,config2){let tensor;if(input instanceof tf4.Tensor)tensor=tf4.clone(input);else{let originalWidth=input.naturalWidth||input.videoWidth||input.width||input.shape&&input.shape[1]>0,originalHeight=input.naturalHeight||input.videoHeight||input.height||input.shape&&input.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config2.filter.width>0?targetWidth=config2.filter.width:config2.filter.height>0&&(targetWidth=originalWidth*(config2.filter.height/originalHeight)),config2.filter.height>0?targetHeight=config2.filter.height:config2.filter.width>0&&(targetHeight=originalHeight*(config2.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input instanceof ImageData?ctx.putImageData(input,0,0):ctx.drawImage(input,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config2.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=tf4.ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config2.filter.brightness),config2.filter.contrast!==0&&this.fx.addFilter("contrast",config2.filter.contrast),config2.filter.sharpness!==0&&this.fx.addFilter("sharpen",config2.filter.sharpness),config2.filter.blur!==0&&this.fx.addFilter("blur",config2.filter.blur),config2.filter.saturation!==0&&this.fx.addFilter("saturation",config2.filter.saturation),config2.filter.hue!==0&&this.fx.addFilter("hue",config2.filter.hue),config2.filter.negative&&this.fx.addFilter("negative"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.vintage&&this.fx.addFilter("brownie"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.kodachrome&&this.fx.addFilter("kodachrome"),config2.filter.technicolor&&this.fx.addFilter("technicolor"),config2.filter.polaroid&&this.fx.addFilter("polaroid"),config2.filter.pixelate!==0&&this.fx.addFilter("pixelate",config2.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tf4.tensor3d(outCanvas.data,shape,"int32")}else if(config2.backend==="webgl"||outCanvas instanceof ImageData)pixels=tf4.browser.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=tf4.browser.fromPixels(data2)}let casted=pixels.toFloat();tensor=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor,canvas:config2.filter.return?outCanvas:null}}exports2.process=process3});__export(exports,{default:()=>Human});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tf3=__toModule(require_tfjs_esm());var tf=__toModule(require_tfjs_esm()),config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!tf.findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);tf.setWebGLContext(2,gl);let ctx=new tf.GPGPUContext(gl);tf.registerBackend(config.name,()=>new tf.MathBackendWebGL(ctx),config.priority),tf.getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};tf.registerKernel(newKernelConfig)}),tf.ENV.set("WEBGL_VERSION",2),tf.ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),tf.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding=__toModule(require_embedding()),posenet=__toModule(require_posenet());var tf2=__toModule(require_tfjs_esm());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf2.image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` +`)};exports2.Canvas=WebGLImageFilter});var require_image=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input,config2){let tensor;if(input instanceof tf5.Tensor)tensor=tf5.clone(input);else{let originalWidth=input.naturalWidth||input.videoWidth||input.width||input.shape&&input.shape[1]>0,originalHeight=input.naturalHeight||input.videoHeight||input.height||input.shape&&input.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config2.filter.width>0?targetWidth=config2.filter.width:config2.filter.height>0&&(targetWidth=originalWidth*(config2.filter.height/originalHeight)),config2.filter.height>0?targetHeight=config2.filter.height:config2.filter.width>0&&(targetHeight=originalHeight*(config2.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input instanceof ImageData?ctx.putImageData(input,0,0):ctx.drawImage(input,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config2.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=tf5.ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config2.filter.brightness),config2.filter.contrast!==0&&this.fx.addFilter("contrast",config2.filter.contrast),config2.filter.sharpness!==0&&this.fx.addFilter("sharpen",config2.filter.sharpness),config2.filter.blur!==0&&this.fx.addFilter("blur",config2.filter.blur),config2.filter.saturation!==0&&this.fx.addFilter("saturation",config2.filter.saturation),config2.filter.hue!==0&&this.fx.addFilter("hue",config2.filter.hue),config2.filter.negative&&this.fx.addFilter("negative"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.vintage&&this.fx.addFilter("brownie"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.kodachrome&&this.fx.addFilter("kodachrome"),config2.filter.technicolor&&this.fx.addFilter("technicolor"),config2.filter.polaroid&&this.fx.addFilter("polaroid"),config2.filter.pixelate!==0&&this.fx.addFilter("pixelate",config2.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tf5.tensor3d(outCanvas.data,shape,"int32")}else if(config2.backend==="webgl"||outCanvas instanceof ImageData)pixels=tf5.browser.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=tf5.browser.fromPixels(data2)}let casted=pixels.toFloat();tensor=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor,canvas:config2.filter.return?outCanvas:null}}exports2.process=process3});__export(exports,{default:()=>Human});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tf4=__toModule(require_tfjs_esm());var tf=__toModule(require_tfjs_esm()),config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!tf.findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);tf.setWebGLContext(2,gl);let ctx=new tf.GPGPUContext(gl);tf.registerBackend(config.name,()=>new tf.MathBackendWebGL(ctx),config.priority),tf.getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};tf.registerKernel(newKernelConfig)}),tf.ENV.set("WEBGL_VERSION",2),tf.ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),tf.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding=__toModule(require_embedding()),posenet=__toModule(require_posenet());var tf2=__toModule(require_tfjs_esm()),models={};async function load(config2){return models.blazepose||(models.blazepose=await tf2.loadGraphModel(config2.pose.modelPath),log(`load model: ${config2.pose.modelPath.match(/\/(.*)\./)[1]}`)),models.blazepose}async function predict(image4,config2){return models.blazepose?new Promise(async resolve=>{let resize=tf2.image.resizeBilinear(image4,[config2.pose.inputSize,config2.pose.inputSize],!1),enhance=tf2.div(resize,127.5).sub(1);tf2.dispose(resize);let logits=await models.blazepose.predict(enhance);tf2.dispose(enhance),logits.map(logit=>logit.dispose()),resolve(logits)}):null}var tf3=__toModule(require_tfjs_esm());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image4,cropSize){let h=image4.shape[1],w=image4.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf3.image.cropAndResize(image4,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},pose:{enabled:!1,scoreThreshold:.6,iouThreshold:.3,modelPath:"../models/blazepose.json",inputSize:256},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` /9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu bmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob @@ -731,5 +731,5 @@ AAAAAAJAAAAAAAAAAAAAABAJEAAAAAAAAAAAAAAAIEoBKAAAAAAAAAAAAAAABAlAAAAAAAIAAAAA BAkBAkBAkBAlACEgMZjdjbFW8bWrEx8YWANb6Fp+bfwab+vLDKMFK9qxH5L0bAr8OPRPKz2AY7J2 SbAjYZAI2E7AIEgIEgIEgMdkSy2NgY7MdlmyNoBXsxmFuyNgVTVjNV3KjlBRNTlXTVHKCrlIqt5T lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/ -2Q==`;var version="0.9.23";var now=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tf3,this.version=version,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=tf3.engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input){if(!this.checkSanity)return null;if(!input)return"input is not defined";if(tf3.ENV.flags.IS_NODE&&!(input instanceof tf3.Tensor))return"input must be a tensor";try{tf3.getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding2){return this.config.face.embedding.enabled?embedding.simmilarity(embedding1,embedding2):0}async load(userConfig){this.state="load";let timeStamp=now();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${tf3.version_core}`),await this.checkBackend(!0),tf3.ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",tf3.ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)));let current=Math.trunc(now()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||tf3.getBackend()!==this.config.backend){let timeStamp=now();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),tf3.setWasmPaths(this.config.wasmPath),await tf3.env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await tf3.setBackend(this.config.backend),tf3.enableProdMode(),tf3.getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),tf3.ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),tf3.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf3.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await tf3.backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await tf3.ready(),this.perf.backend=Math.trunc(now()-timeStamp)}}async detectFace(input){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input,this.config));this.perf.face=Math.trunc(now()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now(),embeddingRes=this.config.face.embedding.enabled?await embedding.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image2.process(input,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input);error&&(log(error,input),resolve({error}));let poseRes,handRes,faceRes,timeStart=now();await this.checkBackend(),await this.load(),this.config.scoped&&tf3.engine().startScope(),this.analyze("Start Scope:"),timeStamp=now();let process3=image2.process(input,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now()-timeStamp)),this.config.async&&([faceRes,poseRes,handRes]=await Promise.all([faceRes,poseRes,handRes])),process3.tensor.dispose(),this.config.scoped&&tf3.engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now()-timeStamp)),this.perf.total=Math.trunc(now()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res=>res.blob());userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let blob;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(!blob)return null;let bitmap=await createImageBitmap(blob),t0=now(),warmup=await this.detect(bitmap,config_exports),t1=now();return bitmap.close(),log("Warmup",this.config.warmup,t1-t0,warmup),this.config.videoOptimized=video,warmup}}; +2Q==`;var version="0.9.24";var now=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tf4,this.version=version,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=tf4.engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input){if(!this.checkSanity)return null;if(!input)return"input is not defined";if(tf4.ENV.flags.IS_NODE&&!(input instanceof tf4.Tensor))return"input must be a tensor";try{tf4.getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding2){return this.config.face.embedding.enabled?embedding.simmilarity(embedding1,embedding2):0}async load(userConfig){this.state="load";let timeStamp=now();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${tf4.version_core}`),await this.checkBackend(!0),tf4.ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",tf4.ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose,this.models.blazepose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null),this.models.blazepose||(this.config.pose.enabled?load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)),this.config.pose.enabled&&!this.models.blazepose&&(this.models.blazepose=await load(this.config)));let current=Math.trunc(now()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||tf4.getBackend()!==this.config.backend){let timeStamp=now();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),tf4.setWasmPaths(this.config.wasmPath),await tf4.env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await tf4.setBackend(this.config.backend),tf4.enableProdMode(),tf4.getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),tf4.ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),tf4.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf4.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await tf4.backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await tf4.ready(),this.perf.backend=Math.trunc(now()-timeStamp)}}async detectFace(input){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input,this.config));this.perf.face=Math.trunc(now()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now(),embeddingRes=this.config.face.embedding.enabled?await embedding.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image3.process(input,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input);error&&(log(error,input),resolve({error}));let poseRes,blazeposeRes,handRes,faceRes,timeStart=now();await this.checkBackend(),await this.load(),this.config.scoped&&tf4.engine().startScope(),this.analyze("Start Scope:"),timeStamp=now();let process3=image3.process(input,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Pose:"),this.config.async?(blazeposeRes=this.config.pose.enabled?predict(process3.tensor,this.config):[],this.perf.pose&&delete this.perf.pose):(this.state="run:pose",timeStamp=now(),blazeposeRes=this.config.pose.enabled?await predict(process3.tensor,this.config):[],this.perf.pose=Math.trunc(now()-timeStamp)),this.analyze("End Pose:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now()-timeStamp)),this.analyze("End Hand:"),this.config.async&&([faceRes,poseRes,blazeposeRes,handRes]=await Promise.all([faceRes,poseRes,blazeposeRes,handRes])),process3.tensor.dispose(),this.config.scoped&&tf4.engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now()-timeStamp)),this.perf.total=Math.trunc(now()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,pose:blazeposeRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmupBitmap(){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res2=>res2.blob()),blob,res;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(blob){let bitmap=await createImageBitmap(blob);res=await this.detect(bitmap,config_exports),bitmap.close()}return res}async warmupCanvas(){return new Promise(resolve=>{let src,size=0;switch(this.config.warmup){case"face":size=256,src="data:image/jpeg;base64,"+face;break;case"full":size=1200,src="data:image/jpeg;base64,"+body;break;default:src=null}let img=new Image(size,size);img.onload=()=>{let canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(size,size):document.createElement("canvas");canvas.width=size,canvas.height=size;let ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);let data2=ctx.getImageData(0,0,size,size);this.detect(data2,config_exports).then(res=>resolve(res))},src?img.src=src:resolve(null)})}async warmup(userConfig){let t0=now();userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let res;typeof createImageBitmap=="function"?res=await this.warmupBitmap():res=await this.warmupCanvas(),this.config.videoOptimized=video;let t1=now();return log("Warmup",this.config.warmup,t1-t0,res),res}}; //# sourceMappingURL=human.node-gpu.js.map diff --git a/dist/human.node-gpu.js.map b/dist/human.node-gpu.js.map index bf86702e..dfca1bd7 100644 --- a/dist/human.node-gpu.js.map +++ b/dist/human.node-gpu.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../src/tfjs/tf-node-gpu.js", "../src/face/blazeface.js", "../src/face/box.js", "../src/face/util.js", "../src/face/coords.js", "../src/face/facepipeline.js", "../src/face/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/body/modelBase.js", "../src/body/heapSort.js", "../src/body/buildParts.js", "../src/body/keypoints.js", "../src/body/vectors.js", "../src/body/decoders.js", "../src/body/decodePose.js", "../src/body/decodeMultiple.js", "../src/body/util.js", "../src/body/modelPoseNet.js", "../src/body/posenet.js", "../src/hand/handdetector.js", "../src/hand/handpipeline.js", "../src/hand/anchors.js", "../src/hand/handpose.js", "../src/gesture/gesture.js", "../src/imagefx.js", "../src/image.js", "../src/human.js", "../src/log.js", "../src/tfjs/backend.js", "../src/hand/box.js", "../src/hand/util.js", "../config.js", "../src/sample.js"], - "sourcesContent": ["export * from '@tensorflow/tfjs-node-gpu';\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './face/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './body/posenet.js';\nimport * as handpose from './hand/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n // @ts-ignore\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n // @ts-ignore\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n // @ts-ignore\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n ] = await Promise.all([\n // @ts-ignore\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n // @ts-ignore\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n // @ts-ignore\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n // @ts-ignore\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n // @ts-ignore\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n // @ts-ignore\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n // @ts-ignore\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n ]);\n } else {\n // @ts-ignore\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n // @ts-ignore\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n // @ts-ignore\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n // @ts-ignore\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n // @ts-ignore\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n // @ts-ignore\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n // @ts-ignore\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n // @ts-ignore\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n // @ts-ignore\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n // @ts-ignore\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n // @ts-ignore\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n // @ts-ignore\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n // @ts-ignore\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n // @ts-ignore\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n // @ts-ignore\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n // @ts-ignore\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n // @ts-ignore\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n // @ts-ignore\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n // this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, handRes] = await Promise.all([faceRes, poseRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig) {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let blob;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (!blob) return null;\n const bitmap = await createImageBitmap(blob);\n const t0 = now();\n const warmup = await this.detect(bitmap, config);\n const t1 = now();\n bitmap.close();\n log('Warmup', this.config.warmup, (t1 - t0), warmup);\n this.config.videoOptimized = video;\n return warmup;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA\nAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu\nbmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob\nIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgo\nKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgBAAEAAwEhAAIRAQMRAf/E\nAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE\nEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZH\nSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1\ntre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEB\nAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET\nIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla\nY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG\nx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+qaKACigApGOKAML\nXp8xlF5A7V4X8RtYs7PzfNImnx8sa8Kp9z3q2tEgp6angWs62ZZ5CTGoJ6DArGNz5p+UrID6EUrF\nPUlW1EuN0XNW7PQ2L5j3JnoKXN0KijqNP0eYoqXBdgPuuo+ZPeupisWn2Jd4+0r924XgsQOCff3/\nAJ1FzRKxDqGii6m3siiQ8F1XGfXI6YNWLfRbiRQMkcZI9fpTDluT2/h6Qy8gDPbtmtG38JeY480Z\n5zSLUTZg8M28YwYxjAArXtdPt402qgHbpSaLWhma3o0Uqk7Nx9DWLaaVblgPs6qRyds2M/gRSQp9\nzZOni2iWS2hlQ+kjYz9OMGrdjq89vIPPVhj+8M/lQyDq9P1WOYBlMZz1AOD+VdDaTiReOKulK0jO\ntHmi0WDTlr0TyxRVhT8tJjIX+9SUxHXUV553BRQAVBcPhSBTSuxPY86+IGti0s5I7dsORy9fM3i6\n8e8mfDO5P90ZrWWiJicNPpZZtxV/xrW0jQt4DOv6Vk2dEEdTY6BHuB25rpbPSo0QARjP0qTRI17W\nwA/hFaMWmoQMgflQXYsDS142rU9tpqqenfNA7GgtihxkdKuRW6qMY/GkDZY8sY4Ap4hXbyB+VArk\nEtuH4wPyrk/EGkOm+a3jw3suRQLc5i38SX9hJ9nnY+XnBUdPyNdFY6pa3KkkAE9l6f8AfJ/pSJT6\nGhDmI+Zb4ZRycdv6ium0nUhKFydrelTsNnS2829RnrVgV6NKXNG55lWPLIM81Op+WrZkRMfmNNzT\nA7GivPO4KKAEY4XNYWt3vkwPg4OK0giJdjw/xrqhm87Zs8tc7pX5A+leSajf6aHYJ50kn4AZpTep\nrBWRm2Vobm4BXfyehPFdnpmnBFUY5rI2SN63tlToK0YI+KZpFF+3QdavwoKTLtoW0Toaswpk5pCb\nLCxipAhoIuP2dKevHXoaYDylRyxhlwRQI4nxVoCXWZI1GfpXGtbSWjYPGP73+NIGupt6TqMsLruZ\nih4xnP5V09mQ+JLd8gn0xSYJnVaVdkook69K34zuUGunDS3Rx4qOzHVIp4rrOMY3NJQI7GivPO8K\nKAILt9kZrz3xlebYiu8KCCWb0XvW0NFch6ysfO3jLVjfXLIn+pQkKorl7WxNxIPl71g2dUUdpo+l\npBGvHPet23iC8ihFosrxirkHQUFo0IF4FXI1O726CpKLacCrMJoJLYHAPpTwucHpSRJJ5e4AZI9x\nUqpxzVpCuOC8cUpQUMRnXttuB4rjNdsYyeVwfXpmpGmcvcQyafMCFJjPY10eg34BUg4DcZP8jUO4\nHaRq3lLNF+IHet7R7jz7c56rwa2wz9+xhiVeFy/T1PFegeaNPWigDsc0ZrzzvDNIaAM7VpNqdegr\nxL4l6kywyRhseZ19lrdfAZL4jxYg3Fw20d63tJsdrDI5rm3Z3R0R0Mce1eKnQYAplIkWrMJ45oZS\nNO3PHbNXIyfpSGWowSOasxLUiZdjFSqtNEMkUemKlAGKsRJjAppFAiORMjmsTVrNZEO4cfSoZSOD\n1eJ7WXBUzQZ+7nkfSo7e2Ei+ZaMzxntjBX2NSU1Y6/wxqojiEFzkA8KTXYaUoWRyv3W5rSjpNHPX\n+BmpSg8V6J5gUUAdhRXnneFFAGHrTfu5PpXzj8S70/aZtxzztXFbv4DKHxHI+H4GZiz9zxXXW8G3\nGBXMjvLRXAx0oPGPSmMVeOnWrMTYpFI0bcg1fh54xmgovRcD3qxETSIZcRvzp+/BpEkqsBUqsM9K\nq4Em4Gkxk0yRGXrVW6i8yFhkg+tJjRxGsWrxllkUMh9eK5uMz6bcebbnfG33kPcVkay2OntPKuo0\nnhXI67c8qa7Lw3c+adjcEDGK1paSRhVV4s6A0or0jyRRQ1AHX0V553hRQBz+vNtt5z3xXzX8Qbdm\nuic5YnOMdK3l8JnTXvlbwpYl+WySOgrp5YfLOOB9O1c62O7qQkc+9RsKChFPWp4DluOlSykaNruH\nArUgHShFNF2NT1qxGO3NBmyxGcE1N2560CFzjrUysO9JAPDDjFOVuKoQuSRTWouBkazbCa3cd8cV\nwF7IISQccHBzUSWpV9C3o1x5b5GAjdQD1rs9DjC3kckbEhqKfxIzn8LOupRXqnkPccBSkUAzraK8\n87wooA5rxMSI3HqK8B8bQl9Q8sffY5b/AAraXwkUviNrw9pH2W1ViMMRTdRjw4HpWNtDti9TPc4P\nFQs2M5qdyyMHLcfjV63HTAoBGtap0wK0YxigpsuRDtVhVYd6GQydVwwIqdRnqKCR23I5pCMUW6gD\nYNKuetAEise9KTxQBWuFyhrznxNZkXjFeN3I+tTIZg2OqmzmxNF0PO3vXp/g2+hukVl4zyPanTXv\nJmVR+60dpThXpnlPceopWFAbnV0V553hSGgRynjC5FujOey14Ssp1HxNmTnc+a3kvcIpv37HoEYQ\nQmMdVHSsnVbYJF5jVk0dsNzlruVIsl2wKxbjWrVHILjg1CRbZJb+ILHPzyhfStODWLQgFJFYd+el\nUJM27HUIXxhga1Y5lLVLKLkMnoauxnPPrSEx7ShF+Y/n2qrc6xBbhizDAqkK1zJuvG9nbg8ZA681\nly/Ei052RO3uKAsZlx8QGd8xxvt9Aa1NH8dK7AXMcip64zigdkdrZX8F7EJLdwwNXMkrz1qRMRly\nCK4TxmpidWI49felPYSOMmi80NIoOV6qRzXYeA5SskYPfirpfEjGr8LPWVHyD6U4CvQPL3ZItOYc\nUDOoNFeed4Uhpks4H4iE/Z5MeleMeGULeLgjds10S+BGdL+Jc9OSBU2Huc5Nc74yvUtrcDBrJnZF\n63PJdXvLy/lKWw46bvQVz82jXhkLO5Y+9ZlsYthcRnbIjY9R3q3awTRkEM3WmJI6C0ea3dGRsr1x\nXY6TqW9FLHnjrUs0izpLK5DDjofSta3ckH09KRUkZuuTvFGdvPauE1Y3U6Mqbssf/rUxHPTaJPK2\nZmJPbBqzY6DCZh5xJC9s9aBJHU6dpemJjfEmfetJtI0+VPkUr/unFOxdiextHs33W07YHQHk11mk\nXb3KbZ1xIvcd6LEyWho4Nct41sTPYb16ipexCPPZN+wYGCvH1rrPAEJmvkPoc1VL4kZVvgZ6yFwK\ncBXoHkkqinFaVyzo80GuE7WJRQSziPiGdthK5HQV4x4J/wBI8WPIewNdEvgRNL42emO/yj1UHNef\neNpRczbC+I17DvWT2OqJxc0sMK4TCisy41q0hfEkqj8aixdwTXNOlwvmqD9anS9tXH7uVG+hosO4\n/wC0oOhrR0+6G4YNIEzsNEuCxAPNdjZruA4xxUmjINSjURksOlcbqFykbnjFA1sYGoassaknCqO5\nrl7rxhGm7yBnBxuJq0rkSlYpw+NLlsfd5P8AerVsvHEqSBHwPVgcgVpyMyVXU3rXxcHYETAk+hru\n/DWti6ZSTyOKzZqndHaxvvUGq2rQ+dYyqR24qWI8dvbr7LqDxyDAzXpvw6FvIxePGSM06Xxoyr/A\nzviKFHNegeX1J41zUhXioGbuaSuM6wpCaBHG/EcA6HN/exxXjXw2jL67cv8A3Qa6H8CFR+NnoWpO\nI4XI44rxLxrqjQzSEsQM1gdSPM9U1uR1YbmWIdXHf2rmpIb67YS28UrRlsLI3c/jW0VZGUpO5pW1\njfLNOjahawzwReYI5cjzMkDavHJ5/SrVv9uhtPtVxCPLBwzxnlT9KGghLU3tKvvPjHzbl7EGuisJ\nGRxWLOg7nRXJEbDjmvSNK+aFSfSoZr0KutRkphc4NcRrdkVjL9aVio7Hk3iqS8ubhrWzUlsZY9kG\ncZNc5D4aee5MclzJIFTzHAO0MfatqSOWu7bFS1srDUZEis0vIZoUxPvfcC+4/dx2xjr712XiTwXb\nWmlQ6hol3cRhoFd4rlg3zY5wR0GelavQwjq7GD4etdVvSnk2wAB+9v8A8mvcfA2kXiRo0/UdcDis\nZnTTulqeoWqbUAJqWUb42X1FZlnjfjSwlGrr5S/eNdD4RkvLAAQ4yRyaUZcruVKl7TQ9I0G+mnzH\nckFwM8VuIK7ac3KF2eXiKapz5UWYxipNtMyNejNch0jSar3cjR27uoyQCRVRWom9DxTx54gu5fMi\nlbKdMVjfCZPNlv5v9rFbVHpYqjGzbOn8SzFI9o715L4u0r7arYzk+lYdTqSujy7U/C0u4vHk+WwO\nxuh9q3J9dgvbdVukMV1EwbDDgn04rZMwlHoZ+orZ6hfQ3RWVnQYCgZAq+8U0ln5NtBsV2yxYcfgK\nJtW0CnB31LlroVwJ1nQLGDjeP7w+lb0dsFxjrWB0tHS6NuWPJ6A16ToUm63T3Gallr4S7cxiTjrX\nPaxaF7dlVeSMUhxZ5jd+H7qCa4eF3DSE5x3zXN3Wk6jbyeaiFWUY6ZyPStYS5SalPmVipFbX0E4c\nW0alvmPHJrag0rVvEE6LdljGpG2NRtQD+tW5XMI0uU9M8NeFo9PiQhecDIIrtrOMIoG3H4VlJm9t\nC6CB06VPGM1IHLeItGS6uw+ORT7e3jsbQvj7gzUNam0JaWE+HN7NqOqX80n3FO1RXo8YzXdS+BHk\n4z+KyzGPapcU2YIv7qQtiuaxvcaWqG4O6FwfSrS1JbPnrxoxkv7qIfejcitj4V2f2exumI+8+aKn\nxHTT+G5d8Txlm4rjLxMsQwzWT3OiK0Mm6sEkVsAcjFc1d+FEmlGwEDPQVopaEuOpr6f4ZWNAu3tW\nvHpAj5ZQcUFIWaDjGMVUMQ3cVDBmvbhY7QAV2nh+T/R1yeKhlrY31+b61FcQK6nIoJMi401WblRi\nqr6PCw5UYq9y+YgOgWzNkRrx3xWjp+nx2v3FQcelAbmko9anQ4GBUNisPHWr1qMrQhS2K11HvmYV\nhamcxSRZ5xRIqluS/DKAQQXZxyXrvo2FdlL4EeZjH+/ZbjNSZpswLNBrE1Gt7VE4ODVIlnh/j61F\nj4lmeTGyUbq6LwdEqWbeX0YbhSqfEddP4Bddj4JIrhL5d8h7VjI6oLQqKNzelWre3yc4/ClFjaL6\nwqBxxUUxwCKu5BmXRA6c+9ZjP83FSBoQuPs4BrsNBlUW659KmRrDY6G1lyQtW3Hy0lqQ1qVJnAbm\noy3b9KYJCqRj3o4zRctIlhjLHmpSuOBRbQOpLGpPFaES7UqkZzKN1KsEc87/AHUUmvPLTVGv72aQ\nk7WJwKmRrQ3ud74Ltilgz4++2a6iNDXdS0gjyMU71my7GpqTbxSbMki3SViajTTHqkSeR/GeyZmg\nnQHkEE1S+F+oPPavBL96I4/Cia1udVF+4dVrkW+Fq8+v4tjMDWUkdVJ6WM0cNV+F+MVmjUcZgqnP\n1qpNNnkcVRLiZtxIS1UzzIF7mghlxUZpVQdq6nTVdAoAOKzkbQWhvwM6gMM1twOJYx3NOJE11Kt1\nH1/pVVlwBkk+9NocXoOQ45FPj+fkUJFF2NSB700v/hTEty5ZpkjvVyUgcCq6GM9zC14/8Se6GcZQ\n1574Xs5WkI2HBPHFQ1dm1KSSZ7Rotn9l0+KPHIHNacae1dy0Vjxaj5ptlhVp+2s2CJ9ppCKzuWNx\nzSFc1SYrHNeNdIGpaYw25ZeRXmvheyk0jVpEdcLJ0q3ZxNKTa0O3vQHg/DNcHrsJDmsmjspnNzNt\nfFIJ24GazOhC+azDmgZIOOKBsp3J2qSaZodubq58yQ4QAnmhGT3NO18pb7BORmu205LfYpyKVkWp\nOxr5gKYWoIZWgfGfloFq1qTPLubnGO1RPtxg4P0oBAkY/hBz6VNDDkZ6AU0W2WSdqkdKr9ZOaGSj\nVtcLHmnOcgmmYvcz7mBLy3MbdD1q9ouiRK6bUAVeelOC1InPlidSsWMDFOCEdq3uefykqrinYqGy\nrFvApMVka2DAowKAsMkRXQqwyDXn/iWyitNQ3qPl6itIvRoF8RXinW4tQ6HI6GuW8SIVBPalc6qe\n5x9x97r3qruwTjrWZ0ksZ9TUmcDNAmZ9/wAoao63rR0+w22MLPtAzt6mghmfofiB76LdJBJBIp5D\nd/oa7bSdWLIPnpDi9TM8TeKdas51XTbIyxd3J/pXS+E/EFxqNoFu7do5OmD60maHWrnZyDRkn/69\nMlEyOR0xntVoNx+FUgYjPxg4FLCuWDZyKQr2RoRnP0qO+nEFpJITgAUzLqZnhu6+0rknOTXpOmwJ\nFbrt5yMmnHYyr6Oxb2ijaKLnPYMClwKQWK3n0hn+lachHOJ9pNNN0apQFzsY10a4v4hXQh0xpieQ\nMA1XLZNjhK80cT8OdV+3Wl3A7ZZJCw+hrR1qLcjZ/CsbnfHRnFXseHJArOYYbrUs1uPhYbuatqFP\nByfSkMq3UIINYkto+87Tx6GkSxfsDbflGD7CtTw/pk4nzITtPIFMFudsukh4Rxz71paTpKwP5jcn\n0qTRy0NORMDgVCqewoJTJgAoxjntTiTu7fWmFxAcnn1q3EPl+X8KZMi4gKqB1Peob/Tv7Us5bfeU\nyOoq4R5nYxqT5I8xieH9J1DTbvyJELRg8ODwa9Ms5mSFV9BWiptbnNVrKdmif7Q1KLg96XIZc5Is\npNL5pqeUrmMtZs0jzV08phchaY00zH1p2ZNxjS1g+LdJOt6U9ssmxjyGp2urDjLlaZzng/wUPDqz\nTSTmWeTrjpVjVk3Rvjr2rnqQ5dDvo1XUd2cTqSNk9OKxXGCeKxZ1DAxHTr2q5C/y8GokUhsz54qu\nuCxzSQjQ0+FZblR2ro4bZYiMVQ0dBb7Qi5x0qzuG5QOh71LYErDufpSeWrHnimIXbjkUjLkH1Hem\ngGxryc+tXI19KYmWegq9YLiLJ7mtqS945cS7QsWehqxA9dEjz4krPSxyZqbFFhGxUm6smjRM55Lk\nHvSvNxXTY57kLT+9MNwKdhXGm5FIbkU7Bca1wMEVhaiuQcVhXWiZ14R6tHGanGBI2OtYkqEHjgVy\ns9ErEeo6UBsHipKEZs5qpPdRxcbhx70NCSuybTNWihc5brW9Fq6vjMnFSdEIdDRi8RRKygZbHFbu\nm6nb3RA3gMegNJhOm0jbXGOoxTuCc1Rz3FyoGKawz9KaAVcZqeMgCmIkB4FaUTbYwB6V00Fuzixb\n0SFMuDU8Mlbs4UPeXHeiOXkUrDuXYnyKk3cVk0ap6HMxxketSMhrcwRC0dMMZFMQ3yzSeVQAeUaz\n9Vj8uPd271nVV4m+GdpnHX67pCeKyLtBtNcR6xlk9RVeWTb3qRnO6trgttyIfm71z7ai8j7/AJmN\nDNqUVa5Yi1AnjynHuBV+11YJhWWXcP8AZNSzqgmaEerSsf3NtIQP4mGKtRavdRgMIpVI9KjU0a7n\nR6T43uYQI7qN2Tpkqciu503VVuQGAYZHQjFVc4alPlZrpKGAznpTwxOc9+lWjIlUACnM4XApiLNk\nnmvnsK0NvpXZRVonmYqV52GsmanhXitTmFkSiJTSAvwrxUxXIrJ7miOfjf1pzNWxkRlqYWpgJupu\n6gQbuahvIxPA6eo4pNXVioS5WmefakGhndH4INZs5DJXA10PaTurmLO21uKpSZqGMoXGnRzBiyjd\n9Kx5rcQS428fSkjanLoaOliHGZFB56VswW+mtPufcBsGOAfmxz+tFkd8HpoaUx09FAtFY8DO71qb\nSms/Nb7RbecG6AEjFLS5c78t+p0djpVs9wsyQiJAdyr1rW+zqjErzSe559Sbk9S3C+MA1bjbgE1S\nMSXzMVG0vNUI2tPKrAuCMnrVzNd0PhR49W/O2xrHmp4TxVMzQshpIzzQBehqesnuaI5VGzT2bitz\nFEbNTC1ADS1JupgG6l3UAc14s04yR/aYRll+8BXCtLncDXFWjys9TCz5oW7GddH5qqNzWDOgQnC8\nVSuo1kHzAGkPYopEY2+RWxV23Vzj5G/Kg3jWaNazhZuqNXS6TaKhB2c0jR1nJWOlhOxRxU4YkCgx\nY0OQatQyDbyaaFYe8uF4NY3iC9ltbVGj43NTIL3h7WzMihjzXVQXYYDdW9Cf2WcOJpfaRZ3g9KsQ\nmupnCLIabGeaAL0LcVY3cVmzRHIxtUhetzEjZqjLUAIWpN1ArhupwagAfDKQ3Q1594v0c2bm6tx+\n5Y8j+6ayrR5onThp8s7dzkZjuqAAmuBnqC7c0iwgtzSA0rWzjfGRW3ZadDu4AoNYo2rfS4v7orSh\n05UA2r0pDbsTm29KRottBNyJ0wpJ9KhD7f6U0ikNWffIFBz60zVUW52ow4UcUN6EPcx44WsbgOmd\nua7TT5Bd24KHnFKnLlZFSN4koluLdueRWvp14swweG9DXoxldHlTjYtzGoo25qzEvwtUxas2jRPQ\n5CNqkLVsYoYzUzdQA3dSFqBBmnqaBhuqhriCXTpVIzxUz+Fl03aSPI9QTypW2/dz0qKNw3SvOPZR\nMqin8VLKRcs3O4Cuk0w/MDjt1NBtHY6O2IIHY1pxgFaETIRwMkjtVSUEk4570MlFW5bap6dKzWm8\n1tqH8aY+hp2FvGoGayNevVt7/ap4xzUvYjqTLtvLPcvJxSaVcyWsxTnFZlnT2t15xHmCtOBYwQy4\nB9q7cPO+jPPxFO2qLEj5HWo42+aus4HpoX4W4FTF+KlotbHII9SFuK0MUNZqiLUDE3UbqBBupwag\nBc1DefPbyD/ZND2KjujyPWlKzuPesRZjHJXms9lMuw3StjnmphKDSLTJ7OfE3JrpbO4GQc9qlnRA\n3LO82k5NbFvdADkjBoCSHyXIIIzgVQvdRigT7wzjgUzO1jHknlvG7qnp61etYFQDIpCZoqVijzXn\n3iC8EmsOuaCGb/heR/s0ijkVv6fbxy3QMg5xmsnuX0Ldzut3+UYTPWk+2GJSe+M1pFtamcldalmx\n1eO4XaThhWnC+TXqR2PHqL3maUJ4qRjxSEjj42qXdxVmaGs1MJoATfSbqBAG5p6mgAzTJTmNvpQU\ntzzHXY83D/U1zF5FhjgV5r3Pa6FMsV5HWnLe7RhqBRdmTwagN2d2K2rPU1C5LAnPrUs6Iysbdrq6\nf3gK0BrUKj/WClY05iM6xLOcQAj3NT29uznfKSzHuadzNu7NSBFjHNSm5VO9IRnajqoWMhTzXFtA\nbvUfMduSeg702Qz0rS7FbTToQFwzjJqaGTFyfK5PQViyzUuFmuIdgGABya5u/vTaN5cnUHFUmLoZ\nzyskwlgJweSK6zQdUEwVJeGr0aUrxPLxEfe0OrhPAqVjxWhznGRtUwatDK4jNxURbmkAm6jNABup\n6tQAFqhupNtu59qUnZFwV5JHnWsHdIx96w5lz15rzT2uhRmt85xWbcxMnUGmZlB0bdxmrNvFIcfM\n350mWjbs7YkDJY/jW5ZWW4jikWkdNp9mqYJFaJdEHHakUULu/VB1rLn1Ld/FgetMGYd/qWSQmSa0\n/AemS32pfa7piLeLkg9z6UmQtz0W7uQ2cZx0A9BVzR7cAea6j2rPqX0L99KRat5A6Dk1wOoKZ52a\nYfMORTYRLujiGWEq6/NWza2yKQVHNdOHerRy4laJo6TTnbbtb8KuM3Fdh5z3OJjbmpt3FaMxAtUZ\nagBN1GaQBzTwaAAms3VbjERUGsa07RsdeFpuUuY4jUjljWTKK4j02RE4IpJYFk6imQkVl0xWarsO\nmAEcUi0bNnZBR0rWtoguMCkUi21wI161mXuocEKaYXMS4u+pY/hVCSWSY4HT0pEmlouiSahdpEBl\nmOceleiwWcNjClvHgJH97Hc1EmVFFi3Czy7mwIl/WtJbjP7uLgd/apQ2VNVvtsBhiPzdK5S4nAuR\nnqOCaTGi9pcytPlU+XpmumtWII44rah8ZjiNIXRuWeNvvViQ/LXpJWPJbu7nCRvVkNxVsxBmqJmo\nEPiXca0YLMuOlJsuKuPlsSi5IrNuG8s4HWs5VEkbwoOTKsk+FJY4rC1K53k1xTk5O7PSpwVNWRzt\n4cms+WpKICtSLTETQj5q0YeBSGiys23pUguGxQMq3E59ayrm4x3yaAKiRtO2WPHcmhruKFxFajzZ\nScA44qRHoXhuMaLpxaUg6hcDLMf4F9KlhuDeXGASIl+8azZslYma68y48m1+7nFW5rtbRNhb5z1p\niMKbUg0zuW4A4rPgb7VdKXOMmpA7HRbMS7nUYiUda0lkQOBngVrS+JGdbWLRt2bAx5BqeQ/LXpnj\nPQ4GJ+ashuK0MhWaoWcA0AaOmASMK7jRNPWYBmHyiuepO2x10qfcv6vYxCzYqoGK4HVYVTJrmb5l\nc6oaM5TUJ8EgGsG4kLNUHT0M64OaqMMikSRsuKbnFMRLG3zVehOaGNE445NNlnVFpDMu6uie9Vo1\n8z5mOAOST2pDK91cNN+5tsrH3PrW54a06KxT7fdrlh/q1Pc+tJ6IUdZGvHPLezMcnBOWbsPap5r3\nylFtbdT1xUWNWzU0/Zbwlgfmx8zGsHWtRHmMqE59aAMyNifvHPc1f0gtPdqkY5JosJHeNci2tktY\neuPnNY+oXWZEVJNrZ9aun8SIq/CzodHuriIokhDIR1ronbKZr0o6o8ipoz//2Q==`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n"], - "mappings": "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CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,C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U,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EAC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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kEA0JP,KAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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", + "sources": ["../src/tfjs/tf-node-gpu.js", "../src/blazeface/blazeface.js", "../src/blazeface/box.js", "../src/blazeface/util.js", "../src/blazeface/coords.js", "../src/blazeface/facepipeline.js", "../src/blazeface/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/posenet/modelBase.js", "../src/posenet/heapSort.js", "../src/posenet/buildParts.js", "../src/posenet/keypoints.js", "../src/posenet/vectors.js", "../src/posenet/decoders.js", "../src/posenet/decodePose.js", "../src/posenet/decodeMultiple.js", "../src/posenet/util.js", "../src/posenet/modelPoseNet.js", "../src/posenet/posenet.js", "../src/handpose/handdetector.js", "../src/handpose/handpipeline.js", "../src/handpose/anchors.js", "../src/handpose/handpose.js", "../src/gesture/gesture.js", "../src/imagefx.js", "../src/image.js", "../src/human.js", "../src/log.js", "../src/tfjs/backend.js", "../src/blazepose/blazepose.js", "../src/handpose/box.js", "../src/handpose/util.js", "../config.js", "../src/sample.js"], + "sourcesContent": ["export * from '@tensorflow/tfjs-node-gpu';\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './blazeface/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './posenet/posenet.js';\nimport * as blazepose from './blazepose/blazepose.js';\nimport * as handpose from './handpose/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.blazepose || (this.config.pose.enabled ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.pose.enabled && !this.models.blazepose) this.models.blazepose = await blazepose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let blazeposeRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run posenet\n this.analyze('Start Pose:');\n if (this.config.async) {\n blazeposeRes = this.config.pose.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.perf.pose) delete this.perf.pose;\n } else {\n this.state = 'run:pose';\n timeStamp = now();\n blazeposeRes = this.config.pose.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.perf.pose = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Pose:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, blazeposeRes, handRes] = await Promise.all([faceRes, poseRes, blazeposeRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, pose: blazeposeRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmupBitmap() {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, config);\n bitmap.close();\n }\n return res;\n }\n\n async warmupCanvas() {\n return new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n const img = new Image(size, size);\n img.onload = () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = size;\n canvas.height = size;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const data = ctx.getImageData(0, 0, size, size);\n this.detect(data, config).then((res) => resolve(res));\n };\n if (src) img.src = src;\n else resolve(null);\n });\n }\n\n async warmup(userConfig) {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.warmupBitmap();\n else res = await this.warmupCanvas();\n this.config.videoOptimized = video;\n const t1 = now();\n log('Warmup', this.config.warmup, (t1 - t0), res);\n return res;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n// import * as profile from '../profile.js';\n\nconst models = {};\n\nexport async function load(config) {\n if (!models.blazepose) {\n models.blazepose = await tf.loadGraphModel(config.pose.modelPath);\n log(`load model: ${config.pose.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.blazepose;\n}\n\nexport async function predict(image, config) {\n if (!models.blazepose) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.pose.inputSize, config.pose.inputSize], false);\n const enhance = tf.div(resize, 127.5).sub(1);\n tf.dispose(resize);\n const logits = await models.blazepose.predict(enhance);\n //\n tf.dispose(enhance);\n logits.map((logit) => logit.dispose());\n resolve(logits);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n pose: { // TBD: not currently in use\n enabled: false,\n scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n modelPath: '../models/blazepose.json',\n inputSize: 256, // fixed value\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAB5n2q03LfDqqx39y39npmlxbS/TOG5se29tuavzgWzeV4mtui2\nO3RRSY2hdVhqO2MvI36iu9lUsrSrvDHn6spnmSiq5jooyV6tq1VV69RC32byTh43h8otMx+r6I+Z\naK/g8TwX7bXh9Mid4iW+fjl8n1ICWb57xLBOm4zqse20Tbmj8+qKdnS9q8PhcTw5tumSm0/OHMxz\n0Za+uzx3sX1t0Zxurr1ZxvspWiZYWZbsbT0QK7KLrZVZJFaqt5vbezNOTg9J/FaZeJns93wCvLwb\nT/GJn92uGHldIBowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuAPA67F9H4l\nqMW20VvO3yRWW97T4fC4rXJHSMtI/WGhVlue3b473K2KzMML4+62tujG9pnozXaOSOVFMnVbmq1t\ntrJRW5E7wwvUxTvCyY6CHOt7moxz6Wh9PxTzYaT61h8x1MbZK/OH0zTf+Fxf6I/htj45vL9WgLMn\nmvbPFvocGWO9L7fq85p5maw9d7VYvE4JkmPu2if3eW0+PasdFNOnxfF1Y2hlykRsmY+LJ0MZjZXa\neq2eyi8oQTO0KLdZWzPRjWu6VaqtHR73g0bcI0sf0Q8Nkq93wqNuFaWP+XDTDDytwBowAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAef9q8HNpcGaI60vtPyl56k9Iew49j8ThGe\nPwxFv0l4zH2U26fDfTYiyJljvsjf4sm6vJ1hrXjq2MkqLdZEVbgbMx0auGdmzNt6iHN1Ub5af6of\nTdPG2nxx6Vj+HzaaTm1+nx/iyVj930ysbViPRrj45vL9SAuyc7j1efguqj+jd4/T33rD3HEcPj8O\n1GP8WOY/Z4TTT7sKadHhbcsZnaCJ3TPZk6VdrKbTutmP0U2nqgrGOsr8deiuI2X09EqKM1dt3uuG\nf/jdN/06/wAPE546S9rwud+Gaaf+XH8NMMPK2wGjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAABrcRp4nDtRWPPHP8PCYusPoWSvNjtX1iYfPuWaXtX8MzCuvjfw32siu8ptXoxi\n0wy5t4YulReqmazu2skbquURWFInddM7VYRGyL291KFnCcfj8e0le/Lbmn8n0N4b2Ur4nHLWmPsY\n5e5a5+OXyXugBZmiY3iY9Xz7NjnTa3Ph/BeYj5PoTxftFg8Hjk2iOmWkW/Psrr418V5WrWd2faFc\nV2jdnEMXWxntupmN7NiYU27iWML6dVMVnddjgVqMsdHr+CW5uE6f4Rt+7yuSsTDv+zWXn0WTHP3L\n/tK+GHl+O0A1c4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8Dn93W56/wDM\nt/L3z59qp24jn+OS38lnpr4r7ZxHQ2TEstt3PXUrt27K57rr1VT0BjKnJPRbMqMs7QlV2fYvHvrd\nVknyrEfu9m8f7FZI8fVU85iJewbT45NfQBKo817W4eulzxHaZrL0rje09ItwqbfhtBVs3leai8RD\nKLw1sduesL606dWFdsZT1jdhNeq6K9DlhCVUU6s4jZnt1YzAhnM71dH2bycmszY/K1d/0c6OzY4R\nfwuK4p8rTstn6z8k7HrwGzkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHz3\nVxvr80/8y38voTwGpj/F5/8AqT/JfjTx/WVeyY6FPspc9dZPVXaOq2WEwIUTVRmjo2rNfLHRI3vZ\nDJycXtX8dZh7t879nsnhcbwz23tt+r6I2nxyb+gCVBzuPY/E4PqI9K7ui19fTxNBnp60n+Aj5/pJ\n3jZu1aOnnltMNussdfXbm+l3ZM9URHREdZVXTuT1Nk7boQiOkJw28PU47/htEp5eivJPLMTCZ9Vv\nx7mJ3iJ9UqNHk8XR4b+tIXuhxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\nweqjbWZ4/wCZP8vePCaz/wDIaiP+Zb+UX408f0r9lOxWOifJhXWjfyYWllPRXYQxnrCrJHRd3YZI\n6A1NJecHEsN/S0T+76bE7xE+r5dk93LW3pL6ZpMni6PDf8VIn9m2fjm8s9rgFmQxvHNS0esbMiew\nPnHLyai9fS0w2aNfUTtrs3+uf5bGPqy068fF227KtSsdFlKqNGMV6myyY6sbdIQI8tlOWOi6Jhhk\nj3RD0vA8nicMx9etZmHRcT2Zyb6XNT8N9/2dt0T449T2AJVAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAHhdfG3E9TH9cvdPEcXjk4zqI/q3L8aeP6xr2TsxpLOekMK6mFo6qpXSrm\nOqBixvHSVmzC4OfqK7S9/wAByeLwbTW9K7fo8Fqo6Paeyl+fglI/Da0NcMPK7QC7AAB8313TiOf/\nAKk/y2MHWrX4jG3E9R/1Lfyv0/aFNOrHxuU7LI7MMayGTVlHWUXhNe6Z6wIUsb9d1m20q7dkDpez\nN9tRqKT5xEvRvKez9+Xis1/FSYerb5+OTyf6AFlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAB43j9eXjN/jWJ/Z7J5L2mry8Upb8VIF8f6aGOey2eynHvOy7bowrrYSxZSwQJ2YXZ\n92N4BoanrEvVexmTm4blr+HJ/aHltRHSXofYm/1Wrp5RaJaYY+X49WA0c4AD51xONuKan/qW/lbp\n+0MOLRtxbU/9SU4J7KadWPjep2WQrr2WRPRk1TvsndXMpiRCb9FNu0rbTuqvKBscCjfi9PhWZeue\nV9n434rafTHL1TfPxy+T/QAszAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmv\navHtfTZfnV6VxPajHzcNrf8ABeJFs/XnMcr4no18c+6vr2YadkY2YM57sEDLyY37Mo7MMnYGlqO0\nvQ+xNfqNVb1tEfs87qZ2rL0/sVX/AHdnt65P7Q0wx8vx6UBo5wAHz/jUbcX1PT78qtO2vaCnJxjP\n8Zif2amnnspp04+OjWejKJ6MKdmcMmyJn4m5ZHzEVPMwtJv0VZLbQDqezcb8RzT6Y/7vUPM+ytZt\nn1OTyiIh6Ztn45N/6AFlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABocbxeLw\nnUR5xXm/Rvq8+OMuDJjntaswEeBxT0bNZ6NatZpNqz3rO0rqsdO3PxlaWEMpY+aqWXkryT0ZT2V3\n7A0dVPuy9f7G124NM/iyT/Z4zWT7sw957MYfB4Fp4/FE2/WWmGHldcBowAAeM9qKcvFeb8VIly9P\n0nq7ntbTbVYL+tJj93CwT76unR4/jo0nozhhTsy3Y1sWljM9Ce7HyQIm3RRlttVbaWrnt0Sh6n2U\nx8vD8mSfv3/h3XN4Bi8Lg2nj8Uc36y6TeOPXugCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAPD8RxeBxXUU26Tbmj8+quro+02Lw+I4ssdslNvzhzazvDPbq8d7GW7Dfqz2VzG\n0s2qd+iu/Zn5Ksk9BVztX1mI8930zh2LwOHabH+HHWP2fNYp4+vwYvxXiP3fUqxtWIjyjZtj45/L\nfaQFmQADzftfj3w6fJ6WmHmsP23rvaqnNwqLfhvEvIYZ+sV038bo0noy36MK9oZQxrdMyrlnMbMZ\nQKrS1M07zEestq/RRjr4utwY/wAV4j91p9V18fQdJj8LR4ccfdpEfsuREbREJbuMAAAAAAAAAAAA\nBAJAAAAEAJEAJQAJQAJEAJQAJQAJEACUJAQlAJEAJQAJQJAAAEAJEAJBAAAJAABAJEJAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwvanDzaPFmjvjv8A\ntLztJ3h7HjGHx+FainnFeaPnHV4vFbeIU038VbHeGF+kso7Mb9mTdhKnLK3dRm7SIrHhGPxeP6Sv\n9cT/AHfSnz72Zx+J7Q45/BWZ/Z9BbZ+OXyfQBZQABzeP4/E4NqI9Ii36S8Ng/wAx9C4jTxOH6ivr\njn+Hz3B/mQi/GvjdCnWNlsdI2V07LIlg6USrt2ZzZXMoFV+zPhGLxeOaavpbm/RVltEN72Yx+Jxm\nb7dKUmf7L5+s9/HtRA2cqRACRACRACRACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQCQQCRACRACRCQBCQBCQB\nACRACRACRACRACL1i9LVntMbPATTwdRkxT3pea/u+gPE8Xx+DxrPHlaYt+qNfGvjvtXXsi0dOrKk\ndEXjZg6VMtbP2bMtXUdpEV0/Y2nNxbNf8OP+727xvsXH+N1U/wBEfy9k3nxyb+gCVQAGOWvNivX1\nrMPnGGOXNNfOJ2fSZ6w+dZKeHxDPX8N7R+6L8a+L63KdoZ7q6zvEMpnowdKJ6ywmWUyqvIKM0vQ+\nx+D6rU55+9aKx+TzWa36vbezmDwODYenW+95/Nphj5L6dQBo5wAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAEiAAAEoA\nAAAAAAAAAAAAAEAkEAkRuAkQbgkQAkQAkQAkQAl5T2nx8nEMOT8dNv0l6pwfarHvpcGWPu32/WCr\nYvK4mOem6b9mGKd4Z3idmFdka0y1c892zfpMtLPaNpEV6D2Kj/Eauf6YeweQ9ieuTVz8K/3evbT4\n5NfQBKoAA8FxCvJxrUx/XMvevD8Zry8fz/Haf2RfjTx/6RSOnRMyypHu9kXjowrqVSrvPRnZVl6V\nkK0775MsUjvadn0nT4ow6bFijtSsVfPuFYvpPGtNTy54mfy6vorXDm8l9pEC7JIgBIgBIgBIgBIg\nBIgBIhIAgBIhIAgBIgBIIBIAAhIAhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAA\nAAAAAAAAABAJQkAEAAAAAAAAAAjc3BIjdG4Mkbo5kcwMjdhzHMDPc3V8xzAs3N1fMjmBZubq+Y5g\nWbm6vmOYFm5ur5jmBZubq+Y5gWbm6vmOYFm5ur5jmBZubq+Y5gWbm6vmTzAz3N2HMnmBlu5ftFTx\nOEZJ/DMW/d0t2rxKni8N1FPWkiZ9eS08e7Cy8dGGn6UhZaJljXZGnmc3UT3dPP2cnUT78xCIV6j2\nH/8A9c/6f7vXPI+w8bU1U+vL/d63du5NfUiDcVSIAS8b7RV5eOb/AIqRL2TyXtNX/e2KfXH/AHlF\n+NPH/pr4+2xcxx0hFpY11K7R16KM32ZWz3UaidqSgrc9kcPicWyZJjfw6T+727y3sXh2xarN+K0V\nh6lvPjj3e0ASqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAAkQAkQAkAAAAAAAAAAAAAAA\nEgAAAAAAAAAAAAAAAAAAAAAgAAABKDcAN0bgkY8xzAyRux5kcwM9zdXNkTcFm6OZXzMeYFvMibKu\nZHMC2bo51U2RuC2bom6rc3BZzom6sBZzI52ADPnOdggFnMc6skFnMc6rc3BbznOp3RzAv50c6nml\nHMC/nOf4qOY5wX85zqOc5wbHOc7X5znBsc6edr85zg2ec52vzpi4NjmY5bROG+/bllVzsNTk5dLl\nn0pP8BHmMHWNmzt0aum8obm08vVjfrtnxztR0mXHzTvaZdjVRMTLkZo6yiFen9iZ2pqY/wBP93rN\n3kPY+/LfPX1rE/u9XzN3HfqzdO6vmTuIZ7m7Hc3Bnu8t7TR/vHBP9E/y9Pu837SV31umn+if5Rfi\n/j/01MMb1hjkrtKzBG0bMsmOZY11tOYamr6Und0LUc7XT7u3rJPqL8er9lcPhcFpbzyWm39v7O00\n+FYvA4Zpsc94xxu227jv1IAgAAAAAAAAABKAAAASgASgBIgBIgBIgBIhIAAAAAAAAAAAAAAAAAAC\nUACUJAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAg3AEbomQZbo3YzLGbAz3RNlc3YzcFs2YzdVN2\nM2Bdzom6nmNwW86JurTAMuY3REJ2BB1ZRVMVBhsbSsiqeUFXLucq3lTygp5TlXcpygp5TlXcpygp\n5TlXcqOUFXKjlXcrGYBXysdlswiYBVMdUTCyY6sZBWxlnMMZgGLGZZSwkDdHMiWO4MuY5mEyjcFn\nN1OdVzHMC3nTzqeY5gX85zqOZPMC+Lqdbk20eb/RKOZr8QybaK/XvtH7iZ9aGlp2luzT3fg19NHS\nOjbmPcYX67XH1XSZ9XIzRvMuzrK7zLkZYmYnciunb9lZ5dTk+OP+71cXeP8AZnJ/ip2nf3J/l6iL\n/Fu5L9bMWZczXi6YuIbEWTzKIuyiwLt3nuO25uI4a/hx7/rLuczg8TicvFLbfdpEK6+NPH/phhjo\nstLGkctUWnoxrrU3j1cnWTzZq1jzl1clo5Zcu8c+txR63iP3Tn6pv4+g4o5cVI9IiGe7CJ2iE7t3\nGyN2O6dwSINwSISAlAAlACRAAlAAlACRACRCQAAAAAAAAAASgASISAAAAAAAAAAAAACQAAAAAAAA\nAAAAAASAAAAAAAAAAAAAAAAIAAAQCAJljuljsCJlhMs9mOwMJYys5TkBVsjZdyHICrZPKt5E8oK4\nqmKrOVOwMIqyirPY2Bjyp2ZbAI2NmSARsbMgEbI2ZAMdjZICNkbMkSCNmOzJEgx2YyzljMAwlhKy\nWEwCuWErJhhMArlhLOWEgxljMpljIImWMyTKJA3N0IBO5vux3NwZbnMx3NwZczT4jf3MdPW27a3a\nfJOq1XNP2KdIRfi+J2trSYfcjeF+Wm1OicVeWIiN9kai8xjY12ORqultnI1Ecsujq79XP1FovWYI\nrTgeq+j8QrWZ+3Mx+r2UXeC0WG2Ti2kiN5mL807eUREvbzbaejefHJv62Iv8WUXa0WTFhVtRdlF2\nrz9WUXBtc7jR9dqc2T1ttHyhvZMvJitb0jdq6XHNcNenWVN3028U99WRj6Kb02be3Tq18/SN2Lpc\n3UdN9nOmZrqKX/DaJ/d0svvTLRzV3jomK6+Pd1vvWJj0ZczT0mXxNJht60hfFnQ4qu3N1cWTEgs3\nTur5k7gz3N2O5uDM3Y7m4MtxBuCQASIASIASAAAAAAACRCQAAAAAAAAEoSAAAAAAAAAAAlAAlCQA\nAAAAAAAAAAASAAAAAAAAAAAAIASgAAAEJAQJQCNkbMgGOyOVnsAw5TlZ7GwMOVPKy2NgY7GzIBGx\nskA2AAAAAAAAAAQkBAEghEskAxYzDPZGwK5hjMLJhjMAqmGEwumrCagomFcw2JqqtUFEsLLrV82F\no7gqljKyYYTGwMZRKUSCAQAboJnaN5Bjkneu0d5W4ccViIiOzHFWbTzNumP1Zarr8eeRMbxDW1Mx\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n"], + "mappings": "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CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,C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U,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EAC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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kEA0JP,KAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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", "names": [] } diff --git a/dist/human.node.js b/dist/human.node.js index 37739bad..2b050be1 100644 --- a/dist/human.node.js +++ b/dist/human.node.js @@ -5,14 +5,14 @@ author: ' */ -var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module2)=>()=>(module2||(module2={exports:{}},callback(module2.exports,module2)),module2.exports),__export=(target,all)=>{__markAsModule(target);for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__exportStar=(target,module2,desc)=>{if(__markAsModule(target),module2&&typeof module2=="object"||typeof module2=="function")for(let key of __getOwnPropNames(module2))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module2[key],enumerable:!(desc=__getOwnPropDesc(module2,key))||desc.enumerable});return target},__toModule=module2=>module2&&module2.__esModule?module2:__exportStar(__defProp(module2!=null?__create(__getProtoOf(module2)):{},"default",{value:module2,enumerable:!0}),module2);var require_tfjs_esm=__commonJS(exports2=>{var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__exportStar2=(target,module22,desc)=>{if(__markAsModule2(target),module22&&typeof module22=="object"||typeof module22=="function")for(let key of __getOwnPropNames2(module22))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module22[key],enumerable:!(desc=__getOwnPropDesc2(module22,key))||desc.enumerable});return target},__toModule2=module22=>module22&&module22.__esModule?module22:__exportStar2(__defProp2(module22!=null?__create2(__getProtoOf2(module22)):{},"default",{value:module22,enumerable:!0}),module22);__exportStar2(exports2,__toModule2(require("@tensorflow/tfjs-node")))});var require_blazeface=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),NUM_LANDMARKS=6;function generateAnchors(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:tf4.slice(startEndTensor,[0,0],[-1,2]),endPoint:tf4.slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=tf4.mul(box.startPoint,factors),ends=tf4.mul(box.endPoint,factors),newCoordinates=tf4.concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors,inputSize){let boxStarts=tf4.slice(boxOutputs,[0,1],[-1,2]),centers=tf4.add(boxStarts,anchors),boxSizes=tf4.slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=tf4.div(boxSizes,inputSize),centersNormalized=tf4.div(centers,inputSize),halfBoxSize=tf4.div(boxSizesNormalized,2),starts=tf4.sub(centersNormalized,halfBoxSize),ends=tf4.add(centersNormalized,halfBoxSize),startNormalized=tf4.mul(starts,inputSize),endNormalized=tf4.mul(ends,inputSize);return tf4.concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tf4.tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model,config2){this.blazeFaceModel=model,this.width=config2.face.detector.inputSize,this.height=config2.face.detector.inputSize,this.anchorsData=generateAnchors(config2.face.detector.inputSize),this.anchors=tf4.tensor2d(this.anchorsData),this.inputSize=tf4.tensor1d([this.width,this.height]),this.config=config2,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tf4.tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=tf4.sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=tf4.concat([sorted[0],sorted[2]],2),concat512=tf4.concat([sorted[1],sorted[3]],2);prediction=tf4.concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=tf4.slice(prediction,[0,0],[-1,1]),scoresOut=tf4.sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await tf4.image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>tf4.slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tf4.tidy(()=>tf4.slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input){let{boxes,scaleFactor}=await this.getBoundingBoxes(input),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load2(config2){let blazeface=await tf4.loadGraphModel(config2.face.detector.modelPath,{fromTFHub:config2.face.detector.modelPath.includes("tfhub.dev")}),model=new BlazeFaceModel(blazeface,config2);return log(`load model: ${config2.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model}exports2.load=load2;exports2.BlazeFaceModel=BlazeFaceModel;exports2.disposeBox=disposeBox});var require_box=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm());function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports2.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports2.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports2.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image4,cropSize){let h=image4.shape[1],w=image4.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf4.image.cropAndResize(image4,boxes,[0],cropSize)}exports2.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports2.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports2.squarifyBox=squarifyBox2});var require_util=__commonJS(exports2=>{exports2.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports2.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports2.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports2.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot2(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports2.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports2.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports2.TRI468=TRI468;exports2.TRI68=TRI68;exports2.TRI33=TRI33;exports2.TRI7=TRI7;exports2.UV468=UV468;exports2.UV68=VTX68.map(x=>UV468[x]);exports2.UV33=VTX33.map(x=>UV468[x]);exports2.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),bounding=__toModule(require_box()),util=__toModule(require_util()),coords=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=tf4.image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=tf4.image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input,config2){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config2.face.detector.skipFrames||!config2.face.mesh.enabled||!config2.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input),this.skipped=0),config2.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config2.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config2.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tf4.tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config2.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input.shape[2],faceCenter[1]/input.shape[1]],rotatedImage=tf4.image.rotateWithOffset(input,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config2.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports2.Pipeline=Pipeline});var require_facemesh=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config2){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config2),this.config=config2}async estimateFaces(input,config2){let predictions=await this.facePipeline.predict(input,config2),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords.MESH_ANNOTATIONS))annotations[key]=coords.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config2.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?tf4.clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load2(config2){faceModels=await Promise.all([!faceModels[0]&&config2.face.enabled?blazeface.load(config2):null,!faceModels[1]&&config2.face.mesh.enabled?tf4.loadGraphModel(config2.face.mesh.modelPath,{fromTFHub:config2.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config2.face.iris.enabled?tf4.loadGraphModel(config2.face.iris.modelPath,{fromTFHub:config2.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config2);return config2.face.mesh.enabled&&log(`load model: ${config2.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config2.face.iris.enabled&&log(`load model: ${config2.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports2.load=load2;exports2.MediaPipeFaceMesh=MediaPipeFaceMesh;exports2.triangulation=coords.TRI468});var require_profile=__commonJS(exports2=>{var profileData={};function profile2(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports2.run=profile2});var require_age=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load2(config2){return models.age||(models.age=await tf4.loadGraphModel(config2.face.age.modelPath),log(`load model: ${config2.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models.age}async function predict2(image4,config2){return models.age?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf4.image.resizeBilinear(image4,[config2.face.age.inputSize,config2.face.age.inputSize],!1),enhance=tf4.mul(resize,[255]);tf4.dispose(resize);let ageT,obj={};if(!config2.profile)config2.face.age.enabled&&(ageT=await models.age.predict(enhance));else{let profileAge=config2.face.age.enabled?await tf4.profile(()=>models.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile2.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict2;exports2.load=load2});var require_gender=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load2(config2){return models.gender||(models.gender=await tf4.loadGraphModel(config2.face.gender.modelPath),alternative=models.gender.inputs[0].shape[3]===1,log(`load model: ${config2.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models.gender}async function predict2(image4,config2){return models.gender?skipped{let resize=tf4.image.resizeBilinear(image4,[config2.face.gender.inputSize,config2.face.gender.inputSize],!1),enhance;alternative?enhance=tf4.tidy(()=>{let[red,green,blue]=tf4.split(resize,3,3),redNorm=tf4.mul(red,rgb[0]),greenNorm=tf4.mul(green,rgb[1]),blueNorm=tf4.mul(blue,rgb[2]);return tf4.addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=tf4.mul(resize,[255]),tf4.dispose(resize);let genderT,obj={};if(!config2.profile)config2.face.gender.enabled&&(genderT=await models.gender.predict(enhance));else{let profileGender=config2.face.gender.enabled?await tf4.profile(()=>models.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile2.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict2;exports2.load=load2});var require_emotion=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale=1;async function load2(config2){return models.emotion||(models.emotion=await tf4.loadGraphModel(config2.face.emotion.modelPath),log(`load model: ${config2.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models.emotion}async function predict2(image4,config2){return models.emotion?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf4.image.resizeBilinear(image4,[config2.face.emotion.inputSize,config2.face.emotion.inputSize],!1),[red,green,blue]=tf4.split(resize,3,3);resize.dispose();let redNorm=tf4.mul(red,rgb[0]),greenNorm=tf4.mul(green,rgb[1]),blueNorm=tf4.mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=tf4.addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tf4.tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config2.face.emotion.enabled){let data2;if(config2.profile){let profileData=await tf4.profile(()=>models.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile2.run("emotion",profileData)}else{let emotionT=await models.emotion.predict(normalize);data2=emotionT.dataSync(),tf4.dispose(emotionT)}for(let i=0;iconfig2.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict2;exports2.load=load2});var require_embedding=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models={};async function load2(config2){return models.embedding||(models.embedding=await tf4.loadGraphModel(config2.face.embedding.modelPath),log(`load model: ${config2.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models.embedding}function simmilarity2(embedding1,embedding2){if((embedding1==null?void 0:embedding1.length)!==(embedding2==null?void 0:embedding2.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding2[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict2(image4,config2){return models.embedding?new Promise(async resolve=>{let resize=tf4.image.resizeBilinear(image4,[config2.face.embedding.inputSize,config2.face.embedding.inputSize],!1),data2=[];if(config2.face.embedding.enabled)if(config2.profile){let profileData=await tf4.profile(()=>models.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile2.run("emotion",profileData)}else{let embeddingT=await models.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],tf4.dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports2.predict=predict2;exports2.simmilarity=simmilarity2;exports2.load=load2});var require_modelBase=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model){this.model=model}predict(input,config2){return tf4.tidy(()=>{let asBatch=(config2.body.modelType==="ResNet"?input.toFloat().add(imageNetMean):input.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config2.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports2.BaseModel=BaseModel});var require_heapSort=__commonJS(exports2=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports2.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports2.NUM_KEYPOINTS=exports2.partNames.length;exports2.partIds=exports2.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports2.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports2.partIds[jointNameA],exports2.partIds[jointNameB]]);exports2.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports2.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports2=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports2.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports2.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax?max:a}exports2.clamp=clamp;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports2.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports2.addVectors=addVectors;function clampVector(a,min,max){return{y:clamp(a.y,min,max),x:clamp(a.x,min,max)}}exports2.clampVector=clampVector});var require_decoders=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(tf4.scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports2.getOffsetPoints=getOffsetPoints;function mod(a,b){return tf4.tidy(()=>{let floored=a.div(tf4.scalar(b,"int32"));return a.sub(floored.mul(tf4.scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tf4.tidy(()=>{let coords=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords.div(tf4.scalar(width,"int32")).expandDims(1),xCoords=mod(coords,width).expandDims(1);return tf4.concat([yCoords,xCoords],1)})}exports2.argmax2d=argmax2d});var require_decodePose=__commonJS(exports2=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config2.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports2.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports2=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2){let poses=[],queue=buildParts.buildPartWithScoreQueue(config2.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config2.body.nmsRadius^2;for(;poses.lengthconfig2.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports2.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports2=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports2.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports2.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports2.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor=>tensor.buffer()))}exports2.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports2.scalePose=scalePose;function resizeTo(image3,[targetH,targetW]){let input=image3.squeeze(0),resized=input.resizeBilinear([targetH,targetW]);return input.dispose(),resized}exports2.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports2.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2),scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}async function estimateSingle(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config2)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model){this.baseModel=model}async estimatePoses(input,config2){let resized=util.resizeTo(input,[config2.body.inputSize,config2.body.inputSize]),res=this.baseModel.predict(resized,config2),poses=config2.body.maxDetections<2?await estimateSingle(input,res,config2):await estimateMultiple(input,res,config2);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports2.PoseNet=PoseNet;async function load2(config2){let model=await tf4.loadGraphModel(config2.body.modelPath),mobilenet=new modelBase.BaseModel(model);return log(`load model: ${config2.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports2.load=load2});var require_posenet=__commonJS(exports2=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports2.load=modelPoseNet.load;exports2.PoseNet=modelPoseNet.PoseNet;exports2.partChannels=keypoints.partChannels;exports2.partIds=keypoints.partIds;exports2.partNames=keypoints.partNames;exports2.poseChain=keypoints.poseChain;exports2.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports2.getBoundingBox=util.getBoundingBox;exports2.getBoundingBoxPoints=util.getBoundingBoxPoints;exports2.scaleAndFlipPoses=util.scaleAndFlipPoses;exports2.scalePose=util.scalePose});var require_handdetector=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),HandDetector=class{constructor(model,inputSize,anchorsAnnotated){this.model=model,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tf4.tensor2d(this.anchors),this.inputSizeTensor=tf4.tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tf4.tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tf4.tidy(()=>{let boxOffsets=tf4.slice(boxes,[0,0],[-1,2]),boxSizes=tf4.slice(boxes,[0,2],[-1,2]),boxCenterPoints=tf4.add(tf4.div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=tf4.div(boxSizes,this.doubleInputSizeTensor),startPoints=tf4.mul(tf4.sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=tf4.mul(tf4.add(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return tf4.concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tf4.tidy(()=>{let landmarks=tf4.add(tf4.div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return tf4.mul(landmarks,this.inputSizeTensor)})}async getBoxes(input,config2){let batched=this.model.predict(input),predictions=batched.squeeze();batched.dispose();let scoresT=tf4.tidy(()=>tf4.sigmoid(tf4.slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=tf4.slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await tf4.image.nonMaxSuppressionAsync(boxes,scores,config2.hand.maxHands,config2.hand.iouThreshold,config2.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config2.hand.minConfidence){let matchingBox=tf4.slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=tf4.slice(predictions,[index,5],[1,14]),palmLandmarks=tf4.tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input,config2){let inputHeight=input.shape[1],inputWidth=input.shape[2],image4=tf4.tidy(()=>input.resizeBilinear([config2.hand.inputSize,config2.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image4,config2);image4.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config2.hand.inputSize,inputHeight/config2.hand.inputSize]))}return hands}};exports2.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot(boxCenter,inverseRotationMatrix[0]),dot(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image4,config2){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config2.hand.skipFrames||!config2.hand.landmarks||!config2.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image4,config2),this.skipped=0),config2.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config2.hand.maxHands||!config2.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config2.hand.minConfidence){let keypointsReshaped=tf4.reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports2.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports2=>{exports2.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input,config2){let predictions=await this.handPipeline.estimateHands(input,config2);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports2.HandPose=HandPose;async function load2(config2){let[handDetectorModel,handPoseModel]=await Promise.all([config2.hand.enabled?tf4.loadGraphModel(config2.hand.detector.modelPath,{fromTFHub:config2.hand.detector.modelPath.includes("tfhub.dev")}):null,config2.hand.landmarks?tf4.loadGraphModel(config2.hand.skeleton.modelPath,{fromTFHub:config2.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config2.hand.inputSize,anchors.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config2.hand.inputSize),handPose=new HandPose(handPipeline);return config2.hand.enabled&&log(`load model: ${config2.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config2.hand.landmarks&&log(`load model: ${config2.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports2.load=load2});var require_gesture=__commonJS(exports2=>{exports2.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports2.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports2.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image3){if(_resize(image3.width,image3.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image3),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` +var __create=Object.create,__defProp=Object.defineProperty,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__getOwnPropNames=Object.getOwnPropertyNames,__getOwnPropDesc=Object.getOwnPropertyDescriptor;var __markAsModule=target=>__defProp(target,"__esModule",{value:!0});var __commonJS=(callback,module2)=>()=>(module2||(module2={exports:{}},callback(module2.exports,module2)),module2.exports),__export=(target,all)=>{__markAsModule(target);for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__exportStar=(target,module2,desc)=>{if(__markAsModule(target),module2&&typeof module2=="object"||typeof module2=="function")for(let key of __getOwnPropNames(module2))!__hasOwnProp.call(target,key)&&key!=="default"&&__defProp(target,key,{get:()=>module2[key],enumerable:!(desc=__getOwnPropDesc(module2,key))||desc.enumerable});return target},__toModule=module2=>module2&&module2.__esModule?module2:__exportStar(__defProp(module2!=null?__create(__getProtoOf(module2)):{},"default",{value:module2,enumerable:!0}),module2);var require_tfjs_esm=__commonJS(exports2=>{var __create2=Object.create,__defProp2=Object.defineProperty,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__getOwnPropNames2=Object.getOwnPropertyNames,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__markAsModule2=target=>__defProp2(target,"__esModule",{value:!0}),__exportStar2=(target,module22,desc)=>{if(__markAsModule2(target),module22&&typeof module22=="object"||typeof module22=="function")for(let key of __getOwnPropNames2(module22))!__hasOwnProp2.call(target,key)&&key!=="default"&&__defProp2(target,key,{get:()=>module22[key],enumerable:!(desc=__getOwnPropDesc2(module22,key))||desc.enumerable});return target},__toModule2=module22=>module22&&module22.__esModule?module22:__exportStar2(__defProp2(module22!=null?__create2(__getProtoOf2(module22)):{},"default",{value:module22,enumerable:!0}),module22);__exportStar2(exports2,__toModule2(require("@tensorflow/tfjs-node")))});var require_blazeface=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),NUM_LANDMARKS=6;function generateAnchors(inputSize){let spec={strides:[inputSize/16,inputSize/8],anchors:[2,6]},anchors=[];for(let i=0;i{box.startEndTensor.dispose(),box.startPoint.dispose(),box.endPoint.dispose()},createBox=startEndTensor=>({startEndTensor,startPoint:tf5.slice(startEndTensor,[0,0],[-1,2]),endPoint:tf5.slice(startEndTensor,[0,2],[-1,2])}),scaleBox=(box,factors)=>{let starts=tf5.mul(box.startPoint,factors),ends=tf5.mul(box.endPoint,factors),newCoordinates=tf5.concat2d([starts,ends],1);return createBox(newCoordinates)};function decodeBounds(boxOutputs,anchors,inputSize){let boxStarts=tf5.slice(boxOutputs,[0,1],[-1,2]),centers=tf5.add(boxStarts,anchors),boxSizes=tf5.slice(boxOutputs,[0,3],[-1,2]),boxSizesNormalized=tf5.div(boxSizes,inputSize),centersNormalized=tf5.div(centers,inputSize),halfBoxSize=tf5.div(boxSizesNormalized,2),starts=tf5.sub(centersNormalized,halfBoxSize),ends=tf5.add(centersNormalized,halfBoxSize),startNormalized=tf5.mul(starts,inputSize),endNormalized=tf5.mul(ends,inputSize);return tf5.concat2d([startNormalized,endNormalized],1)}function scaleBoxFromPrediction(face3,scaleFactor){return tf5.tidy(()=>{let box=face3.box?face3.box:face3;return scaleBox(box,scaleFactor).startEndTensor.squeeze()})}var BlazeFaceModel=class{constructor(model,config2){this.blazeFaceModel=model,this.width=config2.face.detector.inputSize,this.height=config2.face.detector.inputSize,this.anchorsData=generateAnchors(config2.face.detector.inputSize),this.anchors=tf5.tensor2d(this.anchorsData),this.inputSize=tf5.tensor1d([this.width,this.height]),this.config=config2,this.scaleFaces=.8}async getBoundingBoxes(inputImage){if(!inputImage||inputImage.isDisposedInternal||inputImage.shape.length!==4||inputImage.shape[1]<1||inputImage.shape[2]<1)return null;let[detectedOutputs,boxes,scores]=tf5.tidy(()=>{let resizedImage=inputImage.resizeBilinear([this.width,this.height]),normalizedImage=tf5.sub(resizedImage.div(127.5),1),batchedPrediction=this.blazeFaceModel.predict(normalizedImage),prediction;if(Array.isArray(batchedPrediction)){let sorted=batchedPrediction.sort((a,b)=>a.size-b.size),concat384=tf5.concat([sorted[0],sorted[2]],2),concat512=tf5.concat([sorted[1],sorted[3]],2);prediction=tf5.concat([concat512,concat384],1).squeeze(0)}else prediction=batchedPrediction.squeeze();let decodedBounds=decodeBounds(prediction,this.anchors,this.inputSize),logits=tf5.slice(prediction,[0,0],[-1,1]),scoresOut=tf5.sigmoid(logits).squeeze();return[prediction,decodedBounds,scoresOut]}),boxIndicesTensor=await tf5.image.nonMaxSuppressionAsync(boxes,scores,this.config.face.detector.maxFaces,this.config.face.detector.iouThreshold,this.config.face.detector.scoreThreshold),boxIndices=boxIndicesTensor.arraySync();boxIndicesTensor.dispose();let boundingBoxes=boxIndices.map(boxIndex=>tf5.slice(boxes,[boxIndex,0],[1,-1])).map(boundingBox=>{let vals=boundingBox.arraySync();return boundingBox.dispose(),vals}),scoresVal=scores.dataSync(),annotatedBoxes=[];for(let i=0;ithis.config.face.detector.minConfidence){let box=createBox(boundingBoxes[i]),anchor=this.anchorsData[boxIndex],landmarks=tf5.tidy(()=>tf5.slice(detectedOutputs,[boxIndex,NUM_LANDMARKS-1],[1,-1]).squeeze().reshape([NUM_LANDMARKS,-1]));annotatedBoxes.push({box,landmarks,anchor,confidence})}}return detectedOutputs.dispose(),boxes.dispose(),scores.dispose(),detectedOutputs.dispose(),{boxes:annotatedBoxes,scaleFactor:[inputImage.shape[2]/this.width,inputImage.shape[1]/this.height]}}async estimateFaces(input){let{boxes,scaleFactor}=await this.getBoundingBoxes(input),faces=[];for(let face3 of boxes){let landmarkData=face3.landmarks.arraySync(),scaledBox=scaleBoxFromPrediction(face3,scaleFactor),boxData=scaleBox.arraySync(),probabilityData=face3.probability.arraySync(),anchor=face3.anchor,[scaleFactorX,scaleFactorY]=scaleFactor,scaledLandmarks=landmarkData.map(landmark=>[(landmark[0]+anchor[0])*scaleFactorX,(landmark[1]+anchor[1])*scaleFactorY]),normalizedFace={topLeft:boxData.slice(0,2),bottomRight:boxData.slice(2),landmarks:scaledLandmarks,probability:probabilityData};disposeBox(face3.box),face3.landmarks.dispose(),face3.probability.dispose(),scaledBox.dispose(),faces.push(normalizedFace)}return faces}};async function load3(config2){let blazeface=await tf5.loadGraphModel(config2.face.detector.modelPath,{fromTFHub:config2.face.detector.modelPath.includes("tfhub.dev")}),model=new BlazeFaceModel(blazeface,config2);return log(`load model: ${config2.face.detector.modelPath.match(/\/(.*)\./)[1]}`),model}exports2.load=load3;exports2.BlazeFaceModel=BlazeFaceModel;exports2.disposeBox=disposeBox});var require_box=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm());function scaleBoxCoordinates2(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]];return{startPoint,endPoint}}exports2.scaleBoxCoordinates=scaleBoxCoordinates2;function getBoxSize2(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}exports2.getBoxSize=getBoxSize2;function getBoxCenter2(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}exports2.getBoxCenter=getBoxCenter2;function cutBoxFromImageAndResize2(box,image5,cropSize){let h=image5.shape[1],w=image5.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf5.image.cropAndResize(image5,boxes,[0],cropSize)}exports2.cutBoxFromImageAndResize=cutBoxFromImageAndResize2;function enlargeBox2(box,factor=1.5){let center=getBoxCenter2(box),size=getBoxSize2(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,landmarks:box.landmarks}}exports2.enlargeBox=enlargeBox2;function squarifyBox2(box){let centers=getBoxCenter2(box),size=getBoxSize2(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,landmarks:box.landmarks}}exports2.squarifyBox=squarifyBox2});var require_util=__commonJS(exports2=>{exports2.IDENTITY_MATRIX=[[1,0,0],[0,1,0],[0,0,1]];function normalizeRadians2(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}exports2.normalizeRadians=normalizeRadians2;function computeRotation2(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians2(radians)}exports2.computeRotation=computeRotation2;function radToDegrees(rad){return rad*180/Math.PI}exports2.radToDegrees=radToDegrees;function buildTranslationMatrix2(x,y){return[[1,0,x],[0,1,y],[0,0,1]]}function dot2(v1,v2){let product=0;for(let i=0;i{var MESH_ANNOTATIONS={silhouette:[10,338,297,332,284,251,389,356,454,323,361,288,397,365,379,378,400,377,152,148,176,149,150,136,172,58,132,93,234,127,162,21,54,103,67,109],lipsUpperOuter:[61,185,40,39,37,0,267,269,270,409,291],lipsLowerOuter:[146,91,181,84,17,314,405,321,375,291],lipsUpperInner:[78,191,80,81,82,13,312,311,310,415,308],lipsLowerInner:[78,95,88,178,87,14,317,402,318,324,308],rightEyeUpper0:[246,161,160,159,158,157,173],rightEyeLower0:[33,7,163,144,145,153,154,155,133],rightEyeUpper1:[247,30,29,27,28,56,190],rightEyeLower1:[130,25,110,24,23,22,26,112,243],rightEyeUpper2:[113,225,224,223,222,221,189],rightEyeLower2:[226,31,228,229,230,231,232,233,244],rightEyeLower3:[143,111,117,118,119,120,121,128,245],rightEyebrowUpper:[156,70,63,105,66,107,55,193],rightEyebrowLower:[35,124,46,53,52,65],rightEyeIris:[473,474,475,476,477],leftEyeUpper0:[466,388,387,386,385,384,398],leftEyeLower0:[263,249,390,373,374,380,381,382,362],leftEyeUpper1:[467,260,259,257,258,286,414],leftEyeLower1:[359,255,339,254,253,252,256,341,463],leftEyeUpper2:[342,445,444,443,442,441,413],leftEyeLower2:[446,261,448,449,450,451,452,453,464],leftEyeLower3:[372,340,346,347,348,349,350,357,465],leftEyebrowUpper:[383,300,293,334,296,336,285,417],leftEyebrowLower:[265,353,276,283,282,295],leftEyeIris:[468,469,470,471,472],midwayBetweenEyes:[168],noseTip:[1],noseBottom:[2],noseRightCorner:[98],noseLeftCorner:[327],rightCheek:[205],leftCheek:[425]},MESH_TO_IRIS_INDICES_MAP=[{key:"EyeUpper0",indices:[9,10,11,12,13,14,15]},{key:"EyeUpper1",indices:[25,26,27,28,29,30,31]},{key:"EyeUpper2",indices:[41,42,43,44,45,46,47]},{key:"EyeLower0",indices:[0,1,2,3,4,5,6,7,8]},{key:"EyeLower1",indices:[16,17,18,19,20,21,22,23,24]},{key:"EyeLower2",indices:[32,33,34,35,36,37,38,39,40]},{key:"EyeLower3",indices:[54,55,56,57,58,59,60,61,62]}],UV468=[[.499976992607117,.652534008026123],[.500025987625122,.547487020492554],[.499974012374878,.602371990680695],[.482113003730774,.471979022026062],[.500150978565216,.527155995368958],[.499909996986389,.498252987861633],[.499523013830185,.40106201171875],[.289712011814117,.380764007568359],[.499954998493195,.312398016452789],[.499987006187439,.269918978214264],[.500023007392883,.107050001621246],[.500023007392883,.666234016418457],[.5000159740448,.679224014282227],[.500023007392883,.692348003387451],[.499976992607117,.695277988910675],[.499976992607117,.70593398809433],[.499976992607117,.719385027885437],[.499976992607117,.737019002437592],[.499967992305756,.781370997428894],[.499816000461578,.562981009483337],[.473773002624512,.573909997940063],[.104906998574734,.254140973091125],[.365929991006851,.409575998783112],[.338757991790771,.41302502155304],[.311120003461838,.409460008144379],[.274657994508743,.389131009578705],[.393361985683441,.403706014156342],[.345234006643295,.344011008739471],[.370094001293182,.346076011657715],[.319321990013123,.347265005111694],[.297903001308441,.353591024875641],[.24779200553894,.410809993743896],[.396889001131058,.842755019664764],[.280097991228104,.375599980354309],[.106310002505779,.399955987930298],[.2099249958992,.391353011131287],[.355807989835739,.534406006336212],[.471751004457474,.65040397644043],[.474155008792877,.680191993713379],[.439785003662109,.657229006290436],[.414617002010345,.66654098033905],[.450374007225037,.680860996246338],[.428770989179611,.682690978050232],[.374971002340317,.727805018424988],[.486716985702515,.547628998756409],[.485300987958908,.527395009994507],[.257764995098114,.314490020275116],[.401223003864288,.455172002315521],[.429818987846375,.548614978790283],[.421351999044418,.533740997314453],[.276895999908447,.532056987285614],[.483370006084442,.499586999416351],[.33721199631691,.282882988452911],[.296391993761063,.293242990970612],[.169294998049736,.193813979625702],[.447580009698868,.302609980106354],[.392390012741089,.353887975215912],[.354490011930466,.696784019470215],[.067304998636246,.730105042457581],[.442739009857178,.572826027870178],[.457098007202148,.584792017936707],[.381974011659622,.694710969924927],[.392388999462128,.694203019142151],[.277076005935669,.271932005882263],[.422551989555359,.563233017921448],[.385919004678726,.281364023685455],[.383103013038635,.255840003490448],[.331431001424789,.119714021682739],[.229923993349075,.232002973556519],[.364500999450684,.189113974571228],[.229622006416321,.299540996551514],[.173287004232407,.278747975826263],[.472878992557526,.666198015213013],[.446828007698059,.668527007102966],[.422762006521225,.673889994621277],[.445307999849319,.580065965652466],[.388103008270264,.693961024284363],[.403039008378983,.706539988517761],[.403629004955292,.693953037261963],[.460041999816895,.557139039039612],[.431158006191254,.692366003990173],[.452181994915009,.692366003990173],[.475387006998062,.692366003990173],[.465828001499176,.779190003871918],[.472328990697861,.736225962638855],[.473087012767792,.717857003211975],[.473122000694275,.704625964164734],[.473033010959625,.695277988910675],[.427942007780075,.695277988910675],[.426479011774063,.703539967536926],[.423162013292313,.711845993995667],[.4183090031147,.720062971115112],[.390094995498657,.639572978019714],[.013953999616206,.560034036636353],[.499913990497589,.58014702796936],[.413199990987778,.69539999961853],[.409626007080078,.701822996139526],[.468080013990402,.601534962654114],[.422728985548019,.585985004901886],[.463079988956451,.593783974647522],[.37211999297142,.47341400384903],[.334562003612518,.496073007583618],[.411671012639999,.546965003013611],[.242175996303558,.14767599105835],[.290776997804642,.201445996761322],[.327338010072708,.256527006626129],[.399509996175766,.748921036720276],[.441727995872498,.261676013469696],[.429764986038208,.187834024429321],[.412198007106781,.108901023864746],[.288955003023148,.398952007293701],[.218936994671822,.435410976409912],[.41278201341629,.398970007896423],[.257135003805161,.355440020561218],[.427684992551804,.437960982322693],[.448339998722076,.536936044692993],[.178560003638268,.45755398273468],[.247308000922203,.457193970680237],[.286267012357712,.467674970626831],[.332827985286713,.460712015628815],[.368755996227264,.447206974029541],[.398963987827301,.432654976844788],[.476410001516342,.405806005001068],[.189241006970406,.523923993110657],[.228962004184723,.348950982093811],[.490725994110107,.562400996685028],[.404670000076294,.485132992267609],[.019469000399113,.401564002037048],[.426243007183075,.420431017875671],[.396993011236191,.548797011375427],[.266469985246658,.376977026462555],[.439121007919312,.51895797252655],[.032313998788595,.644356966018677],[.419054001569748,.387154996395111],[.462783008813858,.505746960639954],[.238978996872902,.779744982719421],[.198220998048782,.831938028335571],[.107550002634525,.540755033493042],[.183610007166862,.740257024765015],[.134409993886948,.333683013916016],[.385764002799988,.883153975009918],[.490967005491257,.579378008842468],[.382384985685349,.508572995662689],[.174399003386497,.397670984268188],[.318785011768341,.39623498916626],[.343364000320435,.400596976280212],[.396100014448166,.710216999053955],[.187885001301765,.588537991046906],[.430987000465393,.944064974784851],[.318993002176285,.898285031318665],[.266247987747192,.869701027870178],[.500023007392883,.190576016902924],[.499976992607117,.954452991485596],[.366169989109039,.398822009563446],[.393207013607025,.39553701877594],[.410373002290726,.391080021858215],[.194993004202843,.342101991176605],[.388664990663528,.362284004688263],[.365961998701096,.355970978736877],[.343364000320435,.355356991291046],[.318785011768341,.35834002494812],[.301414996385574,.363156020641327],[.058132998645306,.319076001644135],[.301414996385574,.387449026107788],[.499987989664078,.618434011936188],[.415838003158569,.624195992946625],[.445681989192963,.566076993942261],[.465844005346298,.620640993118286],[.49992299079895,.351523995399475],[.288718998432159,.819945991039276],[.335278987884521,.852819979190826],[.440512001514435,.902418971061707],[.128294005990028,.791940987110138],[.408771991729736,.373893976211548],[.455606997013092,.451801002025604],[.499877005815506,.908990025520325],[.375436991453171,.924192011356354],[.11421000212431,.615022003650665],[.448662012815475,.695277988910675],[.4480200111866,.704632043838501],[.447111994028091,.715808033943176],[.444831997156143,.730794012546539],[.430011987686157,.766808986663818],[.406787008047104,.685672998428345],[.400738000869751,.681069016456604],[.392399996519089,.677703022956848],[.367855995893478,.663918972015381],[.247923001646996,.601333022117615],[.452769994735718,.420849978923798],[.43639200925827,.359887003898621],[.416164010763168,.368713974952698],[.413385987281799,.692366003990173],[.228018000721931,.683571994304657],[.468268007040024,.352671027183533],[.411361992359161,.804327011108398],[.499989002943039,.469825029373169],[.479153990745544,.442654013633728],[.499974012374878,.439637005329132],[.432112008333206,.493588984012604],[.499886006116867,.866917014122009],[.49991300702095,.821729004383087],[.456548988819122,.819200992584229],[.344549000263214,.745438992977142],[.37890899181366,.574010014533997],[.374292999505997,.780184984207153],[.319687992334366,.570737957954407],[.357154995203018,.604269981384277],[.295284003019333,.621580958366394],[.447750002145767,.862477004528046],[.410986006259918,.508723020553589],[.31395098567009,.775308012962341],[.354128003120422,.812552988529205],[.324548006057739,.703992962837219],[.189096003770828,.646299958229065],[.279776990413666,.71465802192688],[.1338230073452,.682700991630554],[.336768001317978,.644733011722565],[.429883986711502,.466521978378296],[.455527991056442,.548622965812683],[.437114000320435,.558896005153656],[.467287987470627,.529924988746643],[.414712011814117,.335219979286194],[.37704598903656,.322777986526489],[.344107985496521,.320150971412659],[.312875986099243,.32233202457428],[.283526003360748,.333190023899078],[.241245999932289,.382785975933075],[.102986000478268,.468762993812561],[.267612010240555,.424560010433197],[.297879010438919,.433175981044769],[.333433985710144,.433878004550934],[.366427004337311,.426115989685059],[.396012008190155,.416696012020111],[.420121014118195,.41022801399231],[.007561000064015,.480777025222778],[.432949006557465,.569517970085144],[.458638995885849,.479089021682739],[.473466008901596,.545744001865387],[.476087987422943,.563830018043518],[.468472003936768,.555056989192963],[.433990985155106,.582361996173859],[.483518004417419,.562983989715576],[.482482999563217,.57784903049469],[.42645001411438,.389798998832703],[.438998997211456,.39649498462677],[.450067013502121,.400434017181396],[.289712011814117,.368252992630005],[.276670008897781,.363372981548309],[.517862021923065,.471948027610779],[.710287988185883,.380764007568359],[.526226997375488,.573909997940063],[.895093023777008,.254140973091125],[.634069979190826,.409575998783112],[.661242008209229,.41302502155304],[.688880026340485,.409460008144379],[.725341975688934,.389131009578705],[.606630027294159,.40370500087738],[.654766023159027,.344011008739471],[.629905998706818,.346076011657715],[.680678009986877,.347265005111694],[.702096998691559,.353591024875641],[.75221198797226,.410804986953735],[.602918028831482,.842862963676453],[.719901978969574,.375599980354309],[.893692970275879,.399959981441498],[.790081977844238,.391354024410248],[.643998026847839,.534487962722778],[.528249025344849,.65040397644043],[.525849997997284,.680191040039062],[.560214996337891,.657229006290436],[.585384011268616,.66654098033905],[.549625992774963,.680860996246338],[.57122802734375,.682691991329193],[.624852001667023,.72809898853302],[.513050019741058,.547281980514526],[.51509702205658,.527251958847046],[.742246985435486,.314507007598877],[.598631024360657,.454979002475739],[.570338010787964,.548575043678284],[.578631997108459,.533622980117798],[.723087012767792,.532054007053375],[.516445994377136,.499638974666595],[.662801027297974,.282917976379395],[.70362401008606,.293271005153656],[.830704987049103,.193813979625702],[.552385985851288,.302568018436432],[.607609987258911,.353887975215912],[.645429015159607,.696707010269165],[.932694971561432,.730105042457581],[.557260990142822,.572826027870178],[.542901992797852,.584792017936707],[.6180260181427,.694710969924927],[.607590973377228,.694203019142151],[.722943007946014,.271963000297546],[.577413976192474,.563166975975037],[.614082992076874,.281386971473694],[.616907000541687,.255886018276215],[.668509006500244,.119913995265961],[.770092010498047,.232020974159241],[.635536015033722,.189248979091644],[.77039098739624,.299556016921997],[.826722025871277,.278755009174347],[.527121007442474,.666198015213013],[.553171992301941,.668527007102966],[.577238023281097,.673889994621277],[.554691970348358,.580065965652466],[.611896991729736,.693961024284363],[.59696102142334,.706539988517761],[.596370995044708,.693953037261963],[.539958000183105,.557139039039612],[.568841993808746,.692366003990173],[.547818005084991,.692366003990173],[.52461302280426,.692366003990173],[.534089982509613,.779141008853912],[.527670979499817,.736225962638855],[.526912987232208,.717857003211975],[.526877999305725,.704625964164734],[.526966989040375,.695277988910675],[.572058022022247,.695277988910675],[.573521018028259,.703539967536926],[.57683801651001,.711845993995667],[.581691026687622,.720062971115112],[.609944999217987,.639909982681274],[.986046016216278,.560034036636353],[.5867999792099,.69539999961853],[.590372025966644,.701822996139526],[.531915009021759,.601536989212036],[.577268004417419,.585934996604919],[.536915004253387,.593786001205444],[.627542972564697,.473352015018463],[.665585994720459,.495950996875763],[.588353991508484,.546862006187439],[.757824003696442,.14767599105835],[.709249973297119,.201507985591888],[.672684013843536,.256581008434296],[.600408971309662,.74900496006012],[.55826598405838,.261672019958496],[.570303976535797,.187870979309082],[.588165998458862,.109044015407562],[.711045026779175,.398952007293701],[.781069993972778,.435405015945435],[.587247014045715,.398931980133057],[.742869973182678,.355445981025696],[.572156012058258,.437651991844177],[.55186802148819,.536570012569427],[.821442008018494,.457556009292603],[.752701997756958,.457181990146637],[.71375697851181,.467626988887787],[.66711300611496,.460672974586487],[.631101012229919,.447153985500336],[.6008620262146,.432473003864288],[.523481011390686,.405627012252808],[.810747981071472,.523926019668579],[.771045982837677,.348959028720856],[.509127020835876,.562718033790588],[.595292985439301,.485023975372314],[.980530977249146,.401564002037048],[.573499977588654,.420000016689301],[.602994978427887,.548687994480133],[.733529984951019,.376977026462555],[.560611009597778,.519016981124878],[.967685997486115,.644356966018677],[.580985009670258,.387160003185272],[.537728011608124,.505385041236877],[.760966002941132,.779752969741821],[.801778972148895,.831938028335571],[.892440974712372,.54076099395752],[.816350996494293,.740260004997253],[.865594983100891,.333687007427216],[.614073991775513,.883246004581451],[.508952975273132,.579437971115112],[.617941975593567,.508316040039062],[.825608015060425,.397674977779388],[.681214988231659,.39623498916626],[.656635999679565,.400596976280212],[.603900015354156,.710216999053955],[.81208598613739,.588539004325867],[.56801301240921,.944564998149872],[.681007981300354,.898285031318665],[.733752012252808,.869701027870178],[.633830010890961,.398822009563446],[.606792986392975,.39553701877594],[.589659988880157,.391062021255493],[.805015981197357,.342108011245728],[.611334979534149,.362284004688263],[.634037971496582,.355970978736877],[.656635999679565,.355356991291046],[.681214988231659,.35834002494812],[.698584973812103,.363156020641327],[.941866993904114,.319076001644135],[.698584973812103,.387449026107788],[.584177017211914,.624107003211975],[.554318010807037,.566076993942261],[.534153997898102,.62064003944397],[.711217999458313,.819975018501282],[.664629995822906,.852871000766754],[.559099972248077,.902631998062134],[.871706008911133,.791940987110138],[.591234028339386,.373893976211548],[.544341027736664,.451583981513977],[.624562978744507,.924192011356354],[.88577002286911,.615028977394104],[.551338016986847,.695277988910675],[.551980018615723,.704632043838501],[.552887976169586,.715808033943176],[.555167973041534,.730794012546539],[.569944024085999,.767035007476807],[.593203008174896,.685675978660583],[.599261999130249,.681069016456604],[.607599973678589,.677703022956848],[.631937980651855,.663500010967255],[.752032995223999,.601315021514893],[.547226011753082,.420395016670227],[.563543975353241,.359827995300293],[.583841025829315,.368713974952698],[.586614012718201,.692366003990173],[.771915018558502,.683578014373779],[.531597018241882,.352482974529266],[.588370978832245,.804440975189209],[.52079701423645,.442565023899078],[.567984998226166,.493479013442993],[.543282985687256,.819254994392395],[.655317008495331,.745514988899231],[.621008992195129,.574018001556396],[.625559985637665,.78031200170517],[.680198013782501,.570719003677368],[.64276397228241,.604337990283966],[.704662978649139,.621529996395111],[.552012026309967,.862591981887817],[.589071989059448,.508637011051178],[.685944974422455,.775357007980347],[.645735025405884,.812640011310577],[.675342977046967,.703978002071381],[.810858011245728,.646304965019226],[.72012197971344,.714666962623596],[.866151988506317,.682704985141754],[.663187026977539,.644596993923187],[.570082008838654,.466325998306274],[.544561982154846,.548375964164734],[.562758982181549,.558784961700439],[.531987011432648,.530140042304993],[.585271000862122,.335177004337311],[.622952997684479,.32277899980545],[.655896008014679,.320163011550903],[.687132000923157,.322345972061157],[.716481983661652,.333200991153717],[.758756995201111,.382786989212036],[.897013008594513,.468769013881683],[.732392013072968,.424547016620636],[.70211398601532,.433162987232208],[.66652500629425,.433866024017334],[.633504986763,.426087975502014],[.603875994682312,.416586995124817],[.579657971858978,.409945011138916],[.992439985275269,.480777025222778],[.567192018032074,.569419980049133],[.54136598110199,.478899002075195],[.526564002037048,.546118021011353],[.523913025856018,.563830018043518],[.531529009342194,.555056989192963],[.566035985946655,.582329034805298],[.51631098985672,.563053965568542],[.5174720287323,.577877044677734],[.573594987392426,.389806985855103],[.560697972774506,.395331978797913],[.549755990505219,.399751007556915],[.710287988185883,.368252992630005],[.723330020904541,.363372981548309]],TRI468=[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],TRI68=[0,1,36,0,36,17,1,2,41,1,41,36,2,3,31,2,31,41,3,4,48,3,48,31,4,5,48,5,6,48,6,7,59,6,59,48,7,8,58,7,58,59,8,9,56,8,56,57,8,57,58,9,10,55,9,55,56,10,11,54,10,54,55,11,12,54,12,13,54,13,14,35,13,35,54,14,15,46,14,46,35,15,16,45,15,45,46,16,26,45,17,36,18,18,37,19,18,36,37,19,38,20,19,37,38,20,39,21,20,38,39,21,39,27,22,42,23,22,27,42,23,43,24,23,42,43,24,44,25,24,43,44,25,45,26,25,44,45,27,39,28,27,28,42,28,39,29,28,29,42,29,31,30,29,30,35,29,40,31,29,35,47,29,39,40,29,47,42,30,31,32,30,32,33,30,33,34,30,34,35,31,50,32,31,40,41,31,48,49,31,49,50,32,51,33,32,50,51,33,51,34,34,52,35,34,51,52,35,46,47,35,52,53,35,53,54,36,41,37,37,40,38,37,41,40,38,40,39,42,47,43,43,47,44,44,46,45,44,47,46,48,60,49,48,59,60,49,61,50,49,60,61,50,62,51,50,61,62,51,62,52,52,63,53,52,62,63,53,64,54,53,63,64,54,64,55,55,65,56,55,64,65,56,66,57,56,65,66,57,66,58,58,67,59,58,66,67,59,67,60,60,67,61,61,66,62,61,67,66,62,66,63,63,65,64,63,66,65,21,27,22],TRI33=[0,8,7,7,8,1,2,10,9,9,10,3,17,0,18,18,0,7,18,7,19,19,7,1,19,1,11,19,11,20,21,3,22,21,9,3,20,9,21,20,2,9,20,11,2,23,17,18,25,21,22,24,19,20,24,18,19,24,20,21,24,23,18,24,21,25,11,12,4,11,4,13,1,12,11,11,13,2,12,14,4,4,14,13,14,5,15,14,15,6,12,5,14,14,6,13,8,12,1,2,13,10,8,26,12,10,13,27,26,5,12,13,6,27,0,26,8,10,27,3,5,32,16,16,32,6,5,30,32,6,32,31,26,30,5,27,6,31,0,28,26,3,27,29,17,28,0,3,29,22,23,28,17,22,29,25,28,30,26,27,31,29],TRI7=[0,4,1,2,4,3,4,5,6],VTX68=[127,234,132,58,172,150,149,148,152,377,378,379,397,288,361,454,356,70,63,105,66,107,336,296,334,293,300,168,6,195,4,98,97,2,326,327,33,160,158,133,153,144,362,385,387,263,373,380,57,40,37,0,267,270,287,321,314,17,84,91,78,81,13,311,308,402,14,178],VTX33=[33,133,362,263,1,62,308,159,145,386,374,6,102,331,2,13,14,70,105,107,336,334,300,54,10,284,50,280,234,454,58,288,152],VTX7=[33,133,362,263,1,78,308];exports2.MESH_ANNOTATIONS=MESH_ANNOTATIONS;exports2.MESH_TO_IRIS_INDICES_MAP=MESH_TO_IRIS_INDICES_MAP;exports2.TRI468=TRI468;exports2.TRI68=TRI68;exports2.TRI33=TRI33;exports2.TRI7=TRI7;exports2.UV468=UV468;exports2.UV68=VTX68.map(x=>UV468[x]);exports2.UV33=VTX33.map(x=>UV468[x]);exports2.UV7=VTX7.map(x=>UV468[x])});var require_facepipeline=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),bounding=__toModule(require_box()),util=__toModule(require_util()),coords=__toModule(require_coords()),LANDMARKS_COUNT=468,MESH_MOUTH_INDEX=13,MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[MESH_MOUTH_INDEX,coords.MESH_ANNOTATIONS.midwayBetweenEyes[0]],BLAZEFACE_MOUTH_INDEX=3,BLAZEFACE_NOSE_INDEX=2,BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES=[BLAZEFACE_MOUTH_INDEX,BLAZEFACE_NOSE_INDEX],LEFT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.leftEyeLower0,LEFT_EYE_BOUNDS=[LEFT_EYE_OUTLINE[0],LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length-1]],RIGHT_EYE_OUTLINE=coords.MESH_ANNOTATIONS.rightEyeLower0,RIGHT_EYE_BOUNDS=[RIGHT_EYE_OUTLINE[0],RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length-1]],IRIS_UPPER_CENTER_INDEX=3,IRIS_LOWER_CENTER_INDEX=4,IRIS_IRIS_INDEX=71,IRIS_NUM_COORDINATES=76;function replaceRawCoordinates(rawCoords,newCoords,prefix,keys){for(let i=0;i[scaleFactor[0]*(coord[0]-this.meshWidth/2),scaleFactor[1]*(coord[1]-this.meshHeight/2),coord[2]]),coordsRotationMatrix=angle!==0?util.buildRotationMatrix(angle,[0,0]):util.IDENTITY_MATRIX,coordsRotated=angle!==0?coordsScaled.map(coord=>[...util.rotatePoint(coord,coordsRotationMatrix),coord[2]]):coordsScaled,inverseRotationMatrix=angle!==0?util.invertTransformMatrix(rotationMatrix):util.IDENTITY_MATRIX,boxCenter=[...bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),1];return coordsRotated.map(coord=>[coord[0]+util.dot(boxCenter,inverseRotationMatrix[0]),coord[1]+util.dot(boxCenter,inverseRotationMatrix[1]),coord[2]])}getLeftToRightEyeDepthDifference(rawCoords){let leftEyeZ=rawCoords[LEFT_EYE_BOUNDS[0]][2],rightEyeZ=rawCoords[RIGHT_EYE_BOUNDS[0]][2];return leftEyeZ-rightEyeZ}getEyeBox(rawCoords,face3,eyeInnerCornerIndex,eyeOuterCornerIndex,flip=!1){let box=bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex],rawCoords[eyeOuterCornerIndex]]),this.irisEnlarge)),boxSize=bounding.getBoxSize(box),crop=tf5.image.cropAndResize(face3,[[box.startPoint[1]/this.meshHeight,box.startPoint[0]/this.meshWidth,box.endPoint[1]/this.meshHeight,box.endPoint[0]/this.meshWidth]],[0],[this.irisSize,this.irisSize]);return flip&&(crop=tf5.image.flipLeftRight(crop)),{box,boxSize,crop}}getEyeCoords(eyeData,eyeBox,eyeBoxSize,flip=!1){let eyeRawCoords=[];for(let i=0;i{let z=averageZ;return i===2?z=upperCenterZ:i===4&&(z=lowerCenterZ),[coord[0],coord[1],z]})}async predict(input,config2){let useFreshBox=!1,detector;if((this.skipped===0||this.skipped>config2.face.detector.skipFrames||!config2.face.mesh.enabled||!config2.videoOptimized)&&(detector=await this.boundingBoxDetector.getBoundingBoxes(input),this.skipped=0),config2.videoOptimized&&this.skipped++,detector&&detector.boxes&&detector.boxes.length>0&&(!config2.face.mesh.enabled||detector.boxes.length!==this.detectedFaces&&this.detectedFaces!==config2.face.detector.maxFaces)){this.storedBoxes=[],this.detectedFaces=0;for(let possible of detector.boxes)this.storedBoxes.push({startPoint:possible.box.startPoint.dataSync(),endPoint:possible.box.endPoint.dataSync(),landmarks:possible.landmarks,confidence:possible.confidence});this.storedBoxes.length>0&&(useFreshBox=!0)}if(useFreshBox){if(!detector||!detector.boxes||detector.boxes.length===0)return this.storedBoxes=[],this.detectedFaces=0,null;for(let i=0;i{prediction.box.startPoint.dispose(),prediction.box.endPoint.dispose(),prediction.landmarks.dispose()});let results=tf5.tidy(()=>this.storedBoxes.map((box,i)=>{let face3,angle=0,rotationMatrix;if(config2.face.detector.rotation){let[indexOfMouth,indexOfForehead]=box.landmarks.length>=LANDMARKS_COUNT?MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES:BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;angle=util.computeRotation(box.landmarks[indexOfMouth],box.landmarks[indexOfForehead]);let faceCenter=bounding.getBoxCenter({startPoint:box.startPoint,endPoint:box.endPoint}),faceCenterNormalized=[faceCenter[0]/input.shape[2],faceCenter[1]/input.shape[1]],rotatedImage=tf5.image.rotateWithOffset(input,angle,0,faceCenterNormalized);rotationMatrix=util.buildRotationMatrix(-angle,faceCenter),face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},rotatedImage,[this.meshHeight,this.meshWidth]).div(255)}else{rotationMatrix=util.IDENTITY_MATRIX;let cloned=input.clone();face3=bounding.cutBoxFromImageAndResize({startPoint:box.startPoint,endPoint:box.endPoint},cloned,[this.meshHeight,this.meshWidth]).div(255)}if(!config2.face.mesh.enabled)return{coords:null,box,faceConfidence:null,confidence:box.confidence,image:face3};let[,confidence,contourCoords]=this.meshDetector.predict(face3),confidenceVal=confidence.dataSync()[0];if(confidenceVala!==null),this.detectedFaces=results.length,results}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint,landmarks}}};exports2.Pipeline=Pipeline});var require_facemesh=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),blazeface=__toModule(require_blazeface()),facepipeline=__toModule(require_facepipeline()),coords=__toModule(require_coords()),MediaPipeFaceMesh=class{constructor(blazeFace,blazeMeshModel,irisModel,config2){this.facePipeline=new facepipeline.Pipeline(blazeFace,blazeMeshModel,irisModel,config2),this.config=config2}async estimateFaces(input,config2){let predictions=await this.facePipeline.predict(input,config2),results=[];for(let prediction of predictions||[]){if(prediction.isDisposedInternal)continue;let mesh=prediction.coords?prediction.coords.arraySync():null,meshRaw=prediction.rawCoords,annotations={};if(mesh&&mesh.length>0)for(let key of Object.keys(coords.MESH_ANNOTATIONS))annotations[key]=coords.MESH_ANNOTATIONS[key].map(index=>mesh[index]);let boxRaw=config2.face.mesh.returnRawData&&prediction.box?{topLeft:prediction.box.startPoint,bottomRight:prediction.box.endPoint}:null,box=prediction.box?[Math.max(0,prediction.box.startPoint[0]),Math.max(0,prediction.box.startPoint[1]),Math.min(input.shape[2],prediction.box.endPoint[0])-prediction.box.startPoint[0],Math.min(input.shape[1],prediction.box.endPoint[1])-prediction.box.startPoint[1]]:0;results.push({confidence:prediction.confidence||0,box,mesh,boxRaw,meshRaw,annotations,image:prediction.image?tf5.clone(prediction.image):null}),prediction.coords&&prediction.coords.dispose(),prediction.image&&prediction.image.dispose()}return results}},faceModels=[null,null,null];async function load3(config2){faceModels=await Promise.all([!faceModels[0]&&config2.face.enabled?blazeface.load(config2):null,!faceModels[1]&&config2.face.mesh.enabled?tf5.loadGraphModel(config2.face.mesh.modelPath,{fromTFHub:config2.face.mesh.modelPath.includes("tfhub.dev")}):null,!faceModels[2]&&config2.face.iris.enabled?tf5.loadGraphModel(config2.face.iris.modelPath,{fromTFHub:config2.face.iris.modelPath.includes("tfhub.dev")}):null]);let faceMesh=new MediaPipeFaceMesh(faceModels[0],faceModels[1],faceModels[2],config2);return config2.face.mesh.enabled&&log(`load model: ${config2.face.mesh.modelPath.match(/\/(.*)\./)[1]}`),config2.face.iris.enabled&&log(`load model: ${config2.face.iris.modelPath.match(/\/(.*)\./)[1]}`),faceMesh}exports2.load=load3;exports2.MediaPipeFaceMesh=MediaPipeFaceMesh;exports2.triangulation=coords.TRI468});var require_profile=__commonJS(exports2=>{var profileData={};function profile2(name,data2){if(!data2||!data2.kernels)return;let maxResults=5,time=data2.kernels.filter(a=>a.kernelTimeMs>0).reduce((a,b)=>a+=b.kernelTimeMs,0),slowest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.kernelTimeMs>0).sort((a,b)=>b.kernelTimeMs-a.kernelTimeMs),largest=data2.kernels.map((a,i)=>(a.id=i,a)).filter(a=>a.totalBytesSnapshot>0).sort((a,b)=>b.totalBytesSnapshot-a.totalBytesSnapshot);slowest.length>maxResults&&(slowest.length=maxResults),largest.length>maxResults&&(largest.length=maxResults);let res={newBytes:data2.newBytes,newTensors:data2.newTensors,peakBytes:data2.peakBytes,numKernelOps:data2.kernels.length,timeKernelOps:time,slowestKernelOps:slowest,largestKernelOps:largest};profileData[name]=res,log("Human profiler",name,res)}exports2.run=profile2});var require_age=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models2={},last={age:0},skipped=Number.MAX_SAFE_INTEGER;async function load3(config2){return models2.age||(models2.age=await tf5.loadGraphModel(config2.face.age.modelPath),log(`load model: ${config2.face.age.modelPath.match(/\/(.*)\./)[1]}`)),models2.age}async function predict3(image5,config2){return models2.age?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf5.image.resizeBilinear(image5,[config2.face.age.inputSize,config2.face.age.inputSize],!1),enhance=tf5.mul(resize,[255]);tf5.dispose(resize);let ageT,obj={};if(!config2.profile)config2.face.age.enabled&&(ageT=await models2.age.predict(enhance));else{let profileAge=config2.face.age.enabled?await tf5.profile(()=>models2.age.predict(enhance)):{};ageT=profileAge.result.clone(),profileAge.result.dispose(),profile2.run("age",profileAge)}if(enhance.dispose(),ageT){let data2=ageT.dataSync();obj.age=Math.trunc(10*data2[0])/10}ageT.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict3;exports2.load=load3});var require_gender=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models2={},last={gender:""},skipped=Number.MAX_SAFE_INTEGER,alternative=!1,rgb=[.2989,.587,.114];async function load3(config2){return models2.gender||(models2.gender=await tf5.loadGraphModel(config2.face.gender.modelPath),alternative=models2.gender.inputs[0].shape[3]===1,log(`load model: ${config2.face.gender.modelPath.match(/\/(.*)\./)[1]}`)),models2.gender}async function predict3(image5,config2){return models2.gender?skipped{let resize=tf5.image.resizeBilinear(image5,[config2.face.gender.inputSize,config2.face.gender.inputSize],!1),enhance;alternative?enhance=tf5.tidy(()=>{let[red,green,blue]=tf5.split(resize,3,3),redNorm=tf5.mul(red,rgb[0]),greenNorm=tf5.mul(green,rgb[1]),blueNorm=tf5.mul(blue,rgb[2]);return tf5.addN([redNorm,greenNorm,blueNorm]).sub(.5).mul(2)}):enhance=tf5.mul(resize,[255]),tf5.dispose(resize);let genderT,obj={};if(!config2.profile)config2.face.gender.enabled&&(genderT=await models2.gender.predict(enhance));else{let profileGender=config2.face.gender.enabled?await tf5.profile(()=>models2.gender.predict(enhance)):{};genderT=profileGender.result.clone(),profileGender.result.dispose(),profile2.run("gender",profileGender)}if(enhance.dispose(),genderT){let data2=genderT.dataSync();if(alternative){let confidence=Math.trunc(100*Math.abs(data2[0]-data2[1]))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]>data2[1]?"female":"male",obj.confidence=confidence)}else{let confidence=Math.trunc(200*Math.abs(data2[0]-.5))/100;confidence>config2.face.gender.minConfidence&&(obj.gender=data2[0]<=.5?"female":"male",obj.confidence=Math.min(.99,confidence))}}genderT.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict3;exports2.load=load3});var require_emotion=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),annotations=["angry","disgust","fear","happy","sad","surprise","neutral"],models2={},last=[],skipped=Number.MAX_SAFE_INTEGER,rgb=[.2989,.587,.114],scale=1;async function load3(config2){return models2.emotion||(models2.emotion=await tf5.loadGraphModel(config2.face.emotion.modelPath),log(`load model: ${config2.face.emotion.modelPath.match(/\/(.*)\./)[1]}`)),models2.emotion}async function predict3(image5,config2){return models2.emotion?skipped0?(skipped++,last):(config2.videoOptimized?skipped=0:skipped=Number.MAX_SAFE_INTEGER,new Promise(async resolve=>{let resize=tf5.image.resizeBilinear(image5,[config2.face.emotion.inputSize,config2.face.emotion.inputSize],!1),[red,green,blue]=tf5.split(resize,3,3);resize.dispose();let redNorm=tf5.mul(red,rgb[0]),greenNorm=tf5.mul(green,rgb[1]),blueNorm=tf5.mul(blue,rgb[2]);red.dispose(),green.dispose(),blue.dispose();let grayscale=tf5.addN([redNorm,greenNorm,blueNorm]);redNorm.dispose(),greenNorm.dispose(),blueNorm.dispose();let normalize=tf5.tidy(()=>grayscale.sub(.5).mul(2));grayscale.dispose();let obj=[];if(config2.face.emotion.enabled){let data2;if(config2.profile){let profileData=await tf5.profile(()=>models2.emotion.predict(normalize));data2=profileData.result.dataSync(),profileData.result.dispose(),profile2.run("emotion",profileData)}else{let emotionT=await models2.emotion.predict(normalize);data2=emotionT.dataSync(),tf5.dispose(emotionT)}for(let i=0;iconfig2.face.emotion.minConfidence&&obj.push({score:Math.min(.99,Math.trunc(100*scale*data2[i])/100),emotion:annotations[i]});obj.sort((a,b)=>b.score-a.score)}normalize.dispose(),last=obj,resolve(obj)})):null}exports2.predict=predict3;exports2.load=load3});var require_embedding=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),profile2=__toModule(require_profile()),models2={};async function load3(config2){return models2.embedding||(models2.embedding=await tf5.loadGraphModel(config2.face.embedding.modelPath),log(`load model: ${config2.face.embedding.modelPath.match(/\/(.*)\./)[1]}`)),models2.embedding}function simmilarity2(embedding1,embedding2){if((embedding1==null?void 0:embedding1.length)!==(embedding2==null?void 0:embedding2.length))return 0;let order=2,distance=10*embedding1.map((val,i)=>val-embedding2[i]).reduce((dist,diff)=>dist+diff**order,0)**(1/order);return Math.trunc(1e3*(1-distance))/1e3}async function predict3(image5,config2){return models2.embedding?new Promise(async resolve=>{let resize=tf5.image.resizeBilinear(image5,[config2.face.embedding.inputSize,config2.face.embedding.inputSize],!1),data2=[];if(config2.face.embedding.enabled)if(config2.profile){let profileData=await tf5.profile(()=>models2.embedding.predict({img_inputs:resize}));data2=[...profileData.result.dataSync()],profileData.result.dispose(),profile2.run("emotion",profileData)}else{let embeddingT=await models2.embedding.predict({img_inputs:resize});data2=[...embeddingT.dataSync()],tf5.dispose(embeddingT)}resize.dispose(),resolve(data2)}):null}exports2.predict=predict3;exports2.simmilarity=simmilarity2;exports2.load=load3});var require_modelBase=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),imageNetMean=[-123.15,-115.9,-103.06];function nameOutputResultsMobileNet(results){let[offsets,heatmap,displacementFwd,displacementBwd]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}function nameOutputResultsResNet(results){let[displacementFwd,displacementBwd,offsets,heatmap]=results;return{offsets,heatmap,displacementFwd,displacementBwd}}var BaseModel=class{constructor(model){this.model=model}predict(input,config2){return tf5.tidy(()=>{let asBatch=(config2.body.modelType==="ResNet"?input.toFloat().add(imageNetMean):input.toFloat().div(127.5).sub(1)).expandDims(0),results3d=this.model.predict(asBatch).map(y=>y.squeeze([0])),namedResults=config2.body.modelType==="ResNet"?nameOutputResultsResNet(results3d):nameOutputResultsMobileNet(results3d);return{heatmapScores:namedResults.heatmap.sigmoid(),offsets:namedResults.offsets,displacementFwd:namedResults.displacementFwd,displacementBwd:namedResults.displacementBwd}})}dispose(){this.model.dispose()}};exports2.BaseModel=BaseModel});var require_heapSort=__commonJS(exports2=>{function half(k){return Math.floor(k/2)}var MaxHeap=class{constructor(maxSize,getElementValue){this.priorityQueue=new Array(maxSize),this.numberOfElements=-1,this.getElementValue=getElementValue}enqueue(x){this.priorityQueue[++this.numberOfElements]=x,this.swim(this.numberOfElements)}dequeue(){let max=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,max}empty(){return this.numberOfElements===-1}size(){return this.numberOfElements+1}all(){return this.priorityQueue.slice(0,this.numberOfElements+1)}max(){return this.priorityQueue[0]}swim(k){for(;k>0&&this.less(half(k),k);)this.exchange(k,half(k)),k=half(k)}sink(k){for(;2*k<=this.numberOfElements;){let j=2*k;if(j{var heapSort=__toModule(require_heapSort());function scoreIsMaximumInLocalWindow(keypointId,score,heatmapY,heatmapX,localMaximumRadius,scores){let[height,width]=scores.shape,localMaximum=!0,yStart=Math.max(heatmapY-localMaximumRadius,0),yEnd=Math.min(heatmapY+localMaximumRadius+1,height);for(let yCurrent=yStart;yCurrentscore){localMaximum=!1;break}if(!localMaximum)break}return localMaximum}function buildPartWithScoreQueue(scoreThreshold,localMaximumRadius,scores){let[height,width,numKeypoints]=scores.shape,queue=new heapSort.MaxHeap(height*width*numKeypoints,({score})=>score);for(let heatmapY=0;heatmapY{exports2.partNames=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"];exports2.NUM_KEYPOINTS=exports2.partNames.length;exports2.partIds=exports2.partNames.reduce((result,jointName,i)=>(result[jointName]=i,result),{});var connectedPartNames=[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]];exports2.connectedPartIndices=connectedPartNames.map(([jointNameA,jointNameB])=>[exports2.partIds[jointNameA],exports2.partIds[jointNameB]]);exports2.poseChain=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]];exports2.partChannels=["left_face","right_face","right_upper_leg_front","right_lower_leg_back","right_upper_leg_back","left_lower_leg_front","left_upper_leg_front","left_upper_leg_back","left_lower_leg_back","right_feet","right_lower_leg_front","left_feet","torso_front","torso_back","right_upper_arm_front","right_upper_arm_back","right_lower_arm_back","left_lower_arm_front","left_upper_arm_front","left_upper_arm_back","left_lower_arm_back","right_hand","right_lower_arm_front","left_hand"]});var require_vectors=__commonJS(exports2=>{var kpt=__toModule(require_keypoints());function getOffsetPoint(y,x,keypoint,offsets){return{y:offsets.get(y,x,keypoint),x:offsets.get(y,x,keypoint+kpt.NUM_KEYPOINTS)}}exports2.getOffsetPoint=getOffsetPoint;function getImageCoords(part,outputStride,offsets){let{heatmapY,heatmapX,id:keypoint}=part,{y,x}=getOffsetPoint(heatmapY,heatmapX,keypoint,offsets);return{x:part.heatmapX*outputStride+x,y:part.heatmapY*outputStride+y}}exports2.getImageCoords=getImageCoords;function fillArray(element,size){let result=new Array(size);for(let i=0;imax?max:a}exports2.clamp=clamp;function squaredDistance(y1,x1,y2,x2){let dy=y2-y1,dx=x2-x1;return dy*dy+dx*dx}exports2.squaredDistance=squaredDistance;function addVectors(a,b){return{x:a.x+b.x,y:a.y+b.y}}exports2.addVectors=addVectors;function clampVector(a,min,max){return{y:clamp(a.y,min,max),x:clamp(a.x,min,max)}}exports2.clampVector=clampVector});var require_decoders=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),kpt=__toModule(require_keypoints());function getPointsConfidence(heatmapScores,heatMapCoords){let numKeypoints=heatMapCoords.shape[0],result=new Float32Array(numKeypoints);for(let keypoint=0;keypointheatMapCoordsBuffer.toTensor().mul(tf5.scalar(outputStride,"int32")).toFloat().add(getOffsetVectors(heatMapCoordsBuffer,offsetsBuffer)))}exports2.getOffsetPoints=getOffsetPoints;function mod(a,b){return tf5.tidy(()=>{let floored=a.div(tf5.scalar(b,"int32"));return a.sub(floored.mul(tf5.scalar(b,"int32")))})}function argmax2d(inputs){let[height,width,depth]=inputs.shape;return tf5.tidy(()=>{let coords=inputs.reshape([height*width,depth]).argMax(0),yCoords=coords.div(tf5.scalar(width,"int32")).expandDims(1),xCoords=mod(coords,width).expandDims(1);return tf5.concat([yCoords,xCoords],1)})}exports2.argmax2d=argmax2d});var require_decodePose=__commonJS(exports2=>{var keypoints=__toModule(require_keypoints()),vectors=__toModule(require_vectors()),decoders=__toModule(require_decoders()),parentChildrenTuples=keypoints.poseChain.map(([parentJoinName,childJoinName])=>[keypoints.partIds[parentJoinName],keypoints.partIds[childJoinName]]),parentToChildEdges=parentChildrenTuples.map(([,childJointId])=>childJointId),childToParentEdges=parentChildrenTuples.map(([parentJointId])=>parentJointId);function getDisplacement(edgeId,point,displacements){let numEdges=displacements.shape[2]/2;return{y:displacements.get(point.y,point.x,edgeId),x:displacements.get(point.y,point.x,numEdges+edgeId)}}function getStridedIndexNearPoint(point,outputStride,height,width){return{y:vectors.clamp(Math.round(point.y/outputStride),0,height-1),x:vectors.clamp(Math.round(point.x/outputStride),0,width-1)}}function traverseToTargetKeypoint(edgeId,sourceKeypoint,targetKeypointId,scoresBuffer,offsets,outputStride,displacements,offsetRefineStep=2){let[height,width]=scoresBuffer.shape,sourceKeypointIndices=getStridedIndexNearPoint(sourceKeypoint.position,outputStride,height,width),displacement=getDisplacement(edgeId,sourceKeypointIndices,displacements),targetKeypoint=vectors.addVectors(sourceKeypoint.position,displacement);for(let i=0;i=0;--edge){let sourceKeypointId=parentToChildEdges[edge],targetKeypointId=childToParentEdges[edge];instanceKeypoints[sourceKeypointId]&&!instanceKeypoints[targetKeypointId]&&(instanceKeypoints[targetKeypointId]=traverseToTargetKeypoint(edge,instanceKeypoints[sourceKeypointId],targetKeypointId,scores,offsets,outputStride,displacementsBwd))}for(let edge=0;edge(totalScore+=score,{position:{y:offsetPointsBuffer.get(i,0),x:offsetPointsBuffer.get(i,1)},part:keypoints.partNames[i],score})),filteredKeypoints=instanceKeypoints.filter(kpt=>kpt.score>config2.body.scoreThreshold);return heatmapValues.dispose(),offsetPoints.dispose(),{keypoints:filteredKeypoints,score:totalScore/instanceKeypoints.length}}exports2.decodeSinglePose=decodeSinglePose});var require_decodeMultiple=__commonJS(exports2=>{var buildParts=__toModule(require_buildParts()),decodePose=__toModule(require_decodePose()),vectors=__toModule(require_vectors()),kLocalMaximumRadius=1;function withinNmsRadiusOfCorrespondingPoint(poses,squaredNmsRadius,{x,y},keypointId){return poses.some(({keypoints})=>{let correspondingKeypoint=keypoints[keypointId].position;return vectors.squaredDistance(y,x,correspondingKeypoint.y,correspondingKeypoint.x)<=squaredNmsRadius})}function getInstanceScore(existingPoses,squaredNmsRadius,instanceKeypoints){return instanceKeypoints.reduce((result,{position,score},keypointId)=>(withinNmsRadiusOfCorrespondingPoint(existingPoses,squaredNmsRadius,position,keypointId)||(result+=score),result),0)/instanceKeypoints.length}function decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2){let poses=[],queue=buildParts.buildPartWithScoreQueue(config2.body.scoreThreshold,kLocalMaximumRadius,scoresBuffer),squaredNmsRadius=config2.body.nmsRadius^2;for(;poses.lengthconfig2.body.scoreThreshold&&poses.push({keypoints,score})}return poses}exports2.decodeMultiplePoses=decodeMultiplePoses});var require_util2=__commonJS(exports2=>{var kpt=__toModule(require_keypoints());function eitherPointDoesntMeetConfidence(a,b,minConfidence){return a(eitherPointDoesntMeetConfidence(keypoints[leftJoint].score,keypoints[rightJoint].score,minConfidence)||result.push([keypoints[leftJoint],keypoints[rightJoint]]),result),[])}exports2.getAdjacentKeyPoints=getAdjacentKeyPoints;var{NEGATIVE_INFINITY,POSITIVE_INFINITY}=Number;function getBoundingBox(keypoints){return keypoints.reduce(({maxX,maxY,minX,minY},{position:{x,y}})=>({maxX:Math.max(maxX,x),maxY:Math.max(maxY,y),minX:Math.min(minX,x),minY:Math.min(minY,y)}),{maxX:NEGATIVE_INFINITY,maxY:NEGATIVE_INFINITY,minX:POSITIVE_INFINITY,minY:POSITIVE_INFINITY})}exports2.getBoundingBox=getBoundingBox;function getBoundingBoxPoints(keypoints){let{minX,minY,maxX,maxY}=getBoundingBox(keypoints);return[{x:minX,y:minY},{x:maxX,y:minY},{x:maxX,y:maxY},{x:minX,y:maxY}]}exports2.getBoundingBoxPoints=getBoundingBoxPoints;async function toTensorBuffers3D(tensors){return Promise.all(tensors.map(tensor=>tensor.buffer()))}exports2.toTensorBuffers3D=toTensorBuffers3D;function scalePose(pose,scaleY,scaleX){return{score:pose.score,keypoints:pose.keypoints.map(({score,part,position})=>({score,part,position:{x:position.x*scaleX,y:position.y*scaleY}}))}}exports2.scalePose=scalePose;function resizeTo(image4,[targetH,targetW]){let input=image4.squeeze(0),resized=input.resizeBilinear([targetH,targetW]);return input.dispose(),resized}exports2.resizeTo=resizeTo;function scaleAndFlipPoses(poses,[height,width],[inputResolutionHeight,inputResolutionWidth]){return poses.map(pose=>scalePose(pose,height/inputResolutionHeight,width/inputResolutionWidth))}exports2.scaleAndFlipPoses=scaleAndFlipPoses});var require_modelPoseNet=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),modelBase=__toModule(require_modelBase()),decodeMultiple=__toModule(require_decodeMultiple()),decodePose=__toModule(require_decodePose()),util=__toModule(require_util2());async function estimateMultiple(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],allTensorBuffers=await util.toTensorBuffers3D([res.heatmapScores,res.offsets,res.displacementFwd,res.displacementBwd]),scoresBuffer=allTensorBuffers[0],offsetsBuffer=allTensorBuffers[1],displacementsFwdBuffer=allTensorBuffers[2],displacementsBwdBuffer=allTensorBuffers[3],poses=await decodeMultiple.decodeMultiplePoses(scoresBuffer,offsetsBuffer,displacementsFwdBuffer,displacementsBwdBuffer,config2),scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}async function estimateSingle(input,res,config2){return new Promise(async resolve=>{let height=input.shape[1],width=input.shape[2],poses=[await decodePose.decodeSinglePose(res.heatmapScores,res.offsets,config2)],scaled=util.scaleAndFlipPoses(poses,[height,width],[config2.body.inputSize,config2.body.inputSize]);resolve(scaled)})}var PoseNet=class{constructor(model){this.baseModel=model}async estimatePoses(input,config2){let resized=util.resizeTo(input,[config2.body.inputSize,config2.body.inputSize]),res=this.baseModel.predict(resized,config2),poses=config2.body.maxDetections<2?await estimateSingle(input,res,config2):await estimateMultiple(input,res,config2);return res.heatmapScores.dispose(),res.offsets.dispose(),res.displacementFwd.dispose(),res.displacementBwd.dispose(),resized.dispose(),poses}dispose(){this.baseModel.dispose()}};exports2.PoseNet=PoseNet;async function load3(config2){let model=await tf5.loadGraphModel(config2.body.modelPath),mobilenet=new modelBase.BaseModel(model);return log(`load model: ${config2.body.modelPath.match(/\/(.*)\./)[1]}`),new PoseNet(mobilenet)}exports2.load=load3});var require_posenet=__commonJS(exports2=>{var modelPoseNet=__toModule(require_modelPoseNet()),keypoints=__toModule(require_keypoints()),util=__toModule(require_util2());exports2.load=modelPoseNet.load;exports2.PoseNet=modelPoseNet.PoseNet;exports2.partChannels=keypoints.partChannels;exports2.partIds=keypoints.partIds;exports2.partNames=keypoints.partNames;exports2.poseChain=keypoints.poseChain;exports2.getAdjacentKeyPoints=util.getAdjacentKeyPoints;exports2.getBoundingBox=util.getBoundingBox;exports2.getBoundingBoxPoints=util.getBoundingBoxPoints;exports2.scaleAndFlipPoses=util.scaleAndFlipPoses;exports2.scalePose=util.scalePose});var require_handdetector=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),HandDetector=class{constructor(model,inputSize,anchorsAnnotated){this.model=model,this.anchors=anchorsAnnotated.map(anchor=>[anchor.x_center,anchor.y_center]),this.anchorsTensor=tf5.tensor2d(this.anchors),this.inputSizeTensor=tf5.tensor1d([inputSize,inputSize]),this.doubleInputSizeTensor=tf5.tensor1d([inputSize*2,inputSize*2])}normalizeBoxes(boxes){return tf5.tidy(()=>{let boxOffsets=tf5.slice(boxes,[0,0],[-1,2]),boxSizes=tf5.slice(boxes,[0,2],[-1,2]),boxCenterPoints=tf5.add(tf5.div(boxOffsets,this.inputSizeTensor),this.anchorsTensor),halfBoxSizes=tf5.div(boxSizes,this.doubleInputSizeTensor),startPoints=tf5.mul(tf5.sub(boxCenterPoints,halfBoxSizes),this.inputSizeTensor),endPoints=tf5.mul(tf5.add(boxCenterPoints,halfBoxSizes),this.inputSizeTensor);return tf5.concat2d([startPoints,endPoints],1)})}normalizeLandmarks(rawPalmLandmarks,index){return tf5.tidy(()=>{let landmarks=tf5.add(tf5.div(rawPalmLandmarks.reshape([-1,7,2]),this.inputSizeTensor),this.anchors[index]);return tf5.mul(landmarks,this.inputSizeTensor)})}async getBoxes(input,config2){let batched=this.model.predict(input),predictions=batched.squeeze();batched.dispose();let scoresT=tf5.tidy(()=>tf5.sigmoid(tf5.slice(predictions,[0,0],[-1,1])).squeeze()),scores=scoresT.dataSync(),rawBoxes=tf5.slice(predictions,[0,1],[-1,4]),boxes=this.normalizeBoxes(rawBoxes);rawBoxes.dispose();let filteredT=await tf5.image.nonMaxSuppressionAsync(boxes,scores,config2.hand.maxHands,config2.hand.iouThreshold,config2.hand.scoreThreshold),filtered=filteredT.arraySync();scoresT.dispose(),filteredT.dispose();let hands=[];for(let index of filtered)if(scores[index]>=config2.hand.minConfidence){let matchingBox=tf5.slice(boxes,[index,0],[1,-1]),rawPalmLandmarks=tf5.slice(predictions,[index,5],[1,14]),palmLandmarks=tf5.tidy(()=>this.normalizeLandmarks(rawPalmLandmarks,index).reshape([-1,2]));rawPalmLandmarks.dispose(),hands.push({box:matchingBox,palmLandmarks,confidence:scores[index]})}return predictions.dispose(),boxes.dispose(),hands}async estimateHandBounds(input,config2){let inputHeight=input.shape[1],inputWidth=input.shape[2],image5=tf5.tidy(()=>input.resizeBilinear([config2.hand.inputSize,config2.hand.inputSize]).div(127.5).sub(1)),predictions=await this.getBoxes(image5,config2);image5.dispose();let hands=[];if(!predictions||predictions.length===0)return hands;for(let prediction of predictions){let boxes=prediction.box.dataSync(),startPoint=boxes.slice(0,2),endPoint=boxes.slice(2,4),palmLandmarks=prediction.palmLandmarks.arraySync();prediction.box.dispose(),prediction.palmLandmarks.dispose(),hands.push(scaleBoxCoordinates({startPoint,endPoint,palmLandmarks,confidence:prediction.confidence},[inputWidth/config2.hand.inputSize,inputHeight/config2.hand.inputSize]))}return hands}};exports2.HandDetector=HandDetector});var require_handpipeline=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),PALM_BOX_ENLARGE_FACTOR=5,HAND_BOX_ENLARGE_FACTOR=1.65,PALM_LANDMARK_IDS=[0,5,9,13,17,1,2],PALM_LANDMARKS_INDEX_OF_PALM_BASE=0,PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE=2,HandPipeline=class{constructor(handDetector,landmarkDetector,inputSize){this.handDetector=handDetector,this.landmarkDetector=landmarkDetector,this.inputSize=inputSize,this.storedBoxes=[],this.skipped=0,this.detectedHands=0}getBoxForPalmLandmarks(palmLandmarks,rotationMatrix){let rotatedPalmLandmarks=palmLandmarks.map(coord=>rotatePoint([...coord,1],rotationMatrix)),boxAroundPalm=this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);return enlargeBox(squarifyBox(boxAroundPalm),PALM_BOX_ENLARGE_FACTOR)}getBoxForHandLandmarks(landmarks){let boundingBox=this.calculateLandmarksBoundingBox(landmarks),boxAroundHand=enlargeBox(squarifyBox(boundingBox),HAND_BOX_ENLARGE_FACTOR);boxAroundHand.palmLandmarks=[];for(let i=0;i[scaleFactor[0]*(coord[0]-this.inputSize/2),scaleFactor[1]*(coord[1]-this.inputSize/2),scaleFactor[2]*coord[2]]),coordsRotationMatrix=buildRotationMatrix(angle,[0,0]),coordsRotated=coordsScaled.map(coord=>[...rotatePoint(coord,coordsRotationMatrix),coord[2]]),inverseRotationMatrix=invertTransformMatrix(rotationMatrix),boxCenter=[...getBoxCenter(box2),1],originalBoxCenter=[dot(boxCenter,inverseRotationMatrix[0]),dot(boxCenter,inverseRotationMatrix[1])];return coordsRotated.map(coord=>[coord[0]+originalBoxCenter[0],coord[1]+originalBoxCenter[1],coord[2]])}async estimateHands(image5,config2){let useFreshBox=!1,boxes;(this.skipped===0||this.skipped>config2.hand.skipFrames||!config2.hand.landmarks||!config2.videoOptimized)&&(boxes=await this.handDetector.estimateHandBounds(image5,config2),this.skipped=0),config2.videoOptimized&&this.skipped++,boxes&&boxes.length>0&&(boxes.length!==this.detectedHands&&this.detectedHands!==config2.hand.maxHands||!config2.hand.landmarks)&&(this.detectedHands=0,this.storedBoxes=[...boxes],this.storedBoxes.length>0&&(useFreshBox=!0));let hands=[];for(let i=0;i=config2.hand.minConfidence){let keypointsReshaped=tf5.reshape(keypoints,[-1,3]),rawCoords=keypointsReshaped.arraySync();keypoints.dispose(),keypointsReshaped.dispose();let coords=this.transformRawCoords(rawCoords,newBox,angle,rotationMatrix),nextBoundingBox=this.getBoxForHandLandmarks(coords);this.storedBoxes[i]=nextBoundingBox;let result={landmarks:coords,confidence,box:{topLeft:nextBoundingBox.startPoint,bottomRight:nextBoundingBox.endPoint}};hands.push(result)}else this.storedBoxes[i]=null;keypoints.dispose()}else{let enlarged=enlargeBox(squarifyBox(currentBox),HAND_BOX_ENLARGE_FACTOR),result={confidence:currentBox.confidence,box:{topLeft:enlarged.startPoint,bottomRight:enlarged.endPoint}};hands.push(result)}}return this.storedBoxes=this.storedBoxes.filter(a=>a!==null),this.detectedHands=hands.length,hands}calculateLandmarksBoundingBox(landmarks){let xs=landmarks.map(d=>d[0]),ys=landmarks.map(d=>d[1]),startPoint=[Math.min(...xs),Math.min(...ys)],endPoint=[Math.max(...xs),Math.max(...ys)];return{startPoint,endPoint}}};exports2.HandPipeline=HandPipeline});var require_anchors=__commonJS(exports2=>{exports2.anchors=[{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.046875,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.078125,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.109375,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.140625,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.171875,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.203125,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.234375,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.265625,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.296875,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.328125,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.359375,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.390625,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.421875,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.453125,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.484375,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.515625,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.546875,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.578125,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.609375,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.640625,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.671875,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.703125,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.734375,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.765625,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.796875,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.828125,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.859375,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.890625,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.921875,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.953125,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.984375,y_center:.015625},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.046875,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.078125,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.109375,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.140625,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.171875,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.203125,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.234375,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.265625,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.296875,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.328125,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.359375,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.390625,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.421875,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.453125,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.484375,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.515625,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.546875,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.578125,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.609375,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.640625,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.671875,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.703125,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.734375,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.765625,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.796875,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.828125,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.859375,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.890625,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.921875,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.953125,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.984375,y_center:.046875},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.046875,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.078125,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.109375,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.140625,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.171875,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.203125,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.234375,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.265625,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.296875,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.328125,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.359375,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.390625,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.421875,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.453125,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.484375,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.515625,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.546875,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.578125,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.609375,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.640625,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.671875,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.703125,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.734375,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.765625,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.796875,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.828125,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.859375,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.890625,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.921875,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.953125,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.984375,y_center:.078125},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.046875,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.078125,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.109375,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.140625,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.171875,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.203125,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.234375,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.265625,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.296875,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.328125,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.359375,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.390625,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.421875,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.453125,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.484375,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.515625,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.546875,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.578125,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.609375,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.640625,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.671875,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.703125,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.734375,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.765625,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.796875,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.828125,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.859375,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.890625,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.921875,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.953125,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.984375,y_center:.109375},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.046875,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.078125,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.109375,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.140625,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.171875,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.203125,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.234375,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.265625,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.296875,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.328125,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.359375,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.390625,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.421875,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.453125,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.484375,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.515625,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.546875,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.578125,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.609375,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.640625,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.671875,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.703125,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.734375,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.765625,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.796875,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.828125,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.859375,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.890625,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.921875,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.953125,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.984375,y_center:.140625},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.046875,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.078125,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.109375,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.140625,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.171875,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.203125,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.234375,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.265625,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.296875,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.328125,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.359375,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.390625,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.421875,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.453125,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.484375,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.515625,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.546875,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.578125,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.609375,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.640625,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.671875,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.703125,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.734375,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.765625,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.796875,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.828125,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.859375,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.890625,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.921875,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.953125,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.984375,y_center:.171875},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.046875,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.078125,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.109375,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.140625,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.171875,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.203125,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.234375,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.265625,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.296875,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.328125,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.359375,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.390625,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.421875,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.453125,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.484375,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.515625,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.546875,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.578125,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.609375,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.640625,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.671875,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.703125,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.734375,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.765625,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.796875,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.828125,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.859375,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.890625,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.921875,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.953125,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.984375,y_center:.203125},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.046875,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.078125,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.109375,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.140625,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.171875,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.203125,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.234375,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.265625,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.296875,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.328125,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.359375,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.390625,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.421875,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.453125,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.484375,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.515625,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.546875,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.578125,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.609375,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.640625,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.671875,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.703125,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.734375,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.765625,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.796875,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.828125,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.859375,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.890625,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.921875,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.953125,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.984375,y_center:.234375},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.046875,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.078125,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.109375,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.140625,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.171875,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.203125,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.234375,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.265625,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.296875,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.328125,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.359375,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.390625,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.421875,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.453125,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.484375,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.515625,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.546875,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.578125,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.609375,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.640625,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.671875,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.703125,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.734375,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.765625,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.796875,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.828125,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.859375,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.890625,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.921875,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.953125,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.984375,y_center:.265625},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.046875,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.078125,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.109375,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.140625,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.171875,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.203125,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.234375,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.265625,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.296875,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.328125,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.359375,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.390625,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.421875,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.453125,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.484375,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.515625,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.546875,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.578125,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.609375,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.640625,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.671875,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.703125,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.734375,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.765625,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.796875,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.828125,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.859375,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.890625,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.921875,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.953125,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.984375,y_center:.296875},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.046875,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.078125,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.109375,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.140625,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.171875,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.203125,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.234375,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.265625,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.296875,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.328125,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.359375,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.390625,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.421875,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.453125,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.484375,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.515625,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.546875,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.578125,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.609375,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.640625,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.671875,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.703125,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.734375,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.765625,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.796875,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.828125,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.859375,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.890625,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.921875,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.953125,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.984375,y_center:.328125},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.046875,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.078125,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.109375,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.140625,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.171875,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.203125,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.234375,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.265625,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.296875,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.328125,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.359375,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.390625,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.421875,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.453125,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.484375,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.515625,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.546875,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.578125,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.609375,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.640625,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.671875,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.703125,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.734375,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.765625,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.796875,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.828125,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.859375,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.890625,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.921875,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.953125,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.984375,y_center:.359375},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.046875,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.078125,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.109375,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.140625,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.171875,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.203125,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.234375,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.265625,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.296875,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.328125,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.359375,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.390625,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.421875,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.453125,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.484375,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.515625,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.546875,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.578125,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.609375,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.640625,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.671875,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.703125,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.734375,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.765625,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.796875,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.828125,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.859375,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.890625,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.921875,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.953125,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.984375,y_center:.390625},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.046875,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.078125,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.109375,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.140625,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.171875,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.203125,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.234375,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.265625,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.296875,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.328125,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.359375,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.390625,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.421875,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.453125,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.484375,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.515625,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.546875,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.578125,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.609375,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.640625,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.671875,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.703125,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.734375,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.765625,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.796875,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.828125,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.859375,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.890625,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.921875,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.953125,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.984375,y_center:.421875},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.046875,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.078125,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.109375,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.140625,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.171875,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.203125,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.234375,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.265625,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.296875,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.328125,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.359375,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.390625,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.421875,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.453125,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.484375,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.515625,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.546875,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.578125,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.609375,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.640625,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.671875,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.703125,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.734375,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.765625,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.796875,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.828125,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.859375,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.890625,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.921875,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.953125,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.984375,y_center:.453125},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.046875,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.078125,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.109375,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.140625,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.171875,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.203125,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.234375,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.265625,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.296875,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.328125,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.359375,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.390625,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.421875,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.453125,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.484375,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.515625,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.546875,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.578125,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.609375,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.640625,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.671875,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.703125,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.734375,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.765625,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.796875,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.828125,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.859375,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.890625,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.921875,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.953125,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.984375,y_center:.484375},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.046875,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.078125,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.109375,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.140625,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.171875,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.203125,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.234375,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.265625,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.296875,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.328125,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.359375,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.390625,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.421875,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.453125,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.484375,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.515625,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.546875,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.578125,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.609375,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.640625,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.671875,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.703125,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.734375,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.765625,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.796875,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.828125,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.859375,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.890625,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.921875,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.953125,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.984375,y_center:.515625},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.046875,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.078125,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.109375,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.140625,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.171875,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.203125,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.234375,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.265625,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.296875,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.328125,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.359375,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.390625,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.421875,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.453125,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.484375,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.515625,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.546875,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.578125,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.609375,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.640625,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.671875,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.703125,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.734375,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.765625,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.796875,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.828125,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.859375,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.890625,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.921875,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.953125,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.984375,y_center:.546875},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.046875,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.078125,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.109375,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.140625,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.171875,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.203125,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.234375,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.265625,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.296875,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.328125,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.359375,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.390625,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.421875,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.453125,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.484375,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.515625,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.546875,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.578125,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.609375,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.640625,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.671875,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.703125,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.734375,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.765625,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.796875,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.828125,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.859375,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.890625,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.921875,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.953125,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.984375,y_center:.578125},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.046875,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.078125,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.109375,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.140625,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.171875,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.203125,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.234375,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.265625,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.296875,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.328125,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.359375,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.390625,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.421875,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.453125,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.484375,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.515625,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.546875,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.578125,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.609375,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.640625,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.671875,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.703125,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.734375,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.765625,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.796875,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.828125,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.859375,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.890625,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.921875,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.953125,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.984375,y_center:.609375},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.046875,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.078125,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.109375,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.140625,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.171875,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.203125,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.234375,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.265625,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.296875,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.328125,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.359375,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.390625,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.421875,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.453125,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.484375,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.515625,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.546875,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.578125,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.609375,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.640625,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.671875,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.703125,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.734375,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.765625,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.796875,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.828125,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.859375,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.890625,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.921875,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.953125,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.984375,y_center:.640625},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.046875,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.078125,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.109375,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.140625,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.171875,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.203125,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.234375,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.265625,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.296875,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.328125,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.359375,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.390625,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.421875,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.453125,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.484375,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.515625,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.546875,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.578125,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.609375,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.640625,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.671875,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.703125,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.734375,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.765625,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.796875,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.828125,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.859375,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.890625,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.921875,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.953125,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.984375,y_center:.671875},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.046875,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.078125,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.109375,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.140625,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.171875,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.203125,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.234375,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.265625,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.296875,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.328125,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.359375,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.390625,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.421875,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.453125,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.484375,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.515625,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.546875,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.578125,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.609375,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.640625,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.671875,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.703125,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.734375,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.765625,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.796875,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.828125,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.859375,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.890625,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.921875,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.953125,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.984375,y_center:.703125},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.046875,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.078125,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.109375,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.140625,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.171875,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.203125,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.234375,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.265625,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.296875,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.328125,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.359375,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.390625,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.421875,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.453125,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.484375,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.515625,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.546875,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.578125,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.609375,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.640625,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.671875,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.703125,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.734375,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.765625,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.796875,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.828125,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.859375,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.890625,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.921875,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.953125,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.984375,y_center:.734375},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.046875,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.078125,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.109375,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.140625,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.171875,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.203125,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.234375,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.265625,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.296875,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.328125,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.359375,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.390625,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.421875,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.453125,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.484375,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.515625,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.546875,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.578125,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.609375,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.640625,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.671875,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.703125,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.734375,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.765625,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.796875,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.828125,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.859375,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.890625,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.921875,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.953125,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.984375,y_center:.765625},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.046875,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.078125,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.109375,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.140625,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.171875,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.203125,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.234375,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.265625,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.296875,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.328125,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.359375,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.390625,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.421875,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.453125,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.484375,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.515625,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.546875,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.578125,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.609375,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.640625,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.671875,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.703125,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.734375,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.765625,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.796875,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.828125,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.859375,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.890625,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.921875,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.953125,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.984375,y_center:.796875},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.046875,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.078125,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.109375,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.140625,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.171875,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.203125,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.234375,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.265625,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.296875,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.328125,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.359375,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.390625,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.421875,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.453125,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.484375,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.515625,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.546875,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.578125,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.609375,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.640625,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.671875,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.703125,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.734375,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.765625,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.796875,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.828125,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.859375,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.890625,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.921875,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.953125,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.984375,y_center:.828125},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.046875,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.078125,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.109375,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.140625,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.171875,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.203125,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.234375,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.265625,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.296875,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.328125,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.359375,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.390625,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.421875,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.453125,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.484375,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.515625,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.546875,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.578125,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.609375,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.640625,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.671875,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.703125,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.734375,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.765625,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.796875,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.828125,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.859375,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.890625,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.921875,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.953125,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.984375,y_center:.859375},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.046875,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.078125,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.109375,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.140625,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.171875,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.203125,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.234375,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.265625,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.296875,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.328125,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.359375,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.390625,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.421875,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.453125,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.484375,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.515625,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.546875,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.578125,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.609375,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.640625,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.671875,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.703125,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.734375,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.765625,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.796875,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.828125,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.859375,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.890625,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.921875,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.953125,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.984375,y_center:.890625},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.046875,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.078125,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.109375,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.140625,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.171875,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.203125,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.234375,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.265625,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.296875,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.328125,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.359375,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.390625,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.421875,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.453125,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.484375,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.515625,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.546875,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.578125,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.609375,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.640625,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.671875,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.703125,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.734375,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.765625,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.796875,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.828125,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.859375,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.890625,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.921875,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.953125,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.984375,y_center:.921875},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.046875,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.078125,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.109375,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.140625,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.171875,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.203125,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.234375,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.265625,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.296875,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.328125,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.359375,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.390625,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.421875,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.453125,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.484375,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.515625,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.546875,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.578125,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.609375,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.640625,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.671875,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.703125,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.734375,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.765625,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.796875,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.828125,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.859375,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.890625,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.921875,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.953125,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.984375,y_center:.953125},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.015625,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.046875,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.078125,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.109375,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.140625,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.171875,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.203125,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.234375,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.265625,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.296875,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.328125,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.359375,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.390625,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.421875,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.453125,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.484375,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.515625,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.546875,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.578125,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.609375,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.640625,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.671875,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.703125,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.734375,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.765625,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.796875,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.828125,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.859375,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.890625,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.921875,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.953125,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.984375,y_center:.984375},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.09375,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.15625,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.21875,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.28125,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.34375,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.40625,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.46875,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.53125,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.59375,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.65625,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.71875,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.78125,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.84375,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.90625,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.96875,y_center:.03125},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.09375,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.15625,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.21875,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.28125,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.34375,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.40625,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.46875,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.53125,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.59375,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.65625,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.71875,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.78125,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.84375,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.90625,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.96875,y_center:.09375},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.09375,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.15625,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.21875,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.28125,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.34375,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.40625,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.46875,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.53125,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.59375,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.65625,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.71875,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.78125,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.84375,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.90625,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.96875,y_center:.15625},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.09375,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.15625,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.21875,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.28125,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.34375,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.40625,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.46875,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.53125,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.59375,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.65625,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.71875,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.78125,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.84375,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.90625,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.96875,y_center:.21875},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.09375,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.15625,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.21875,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.28125,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.34375,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.40625,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.46875,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.53125,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.59375,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.65625,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.71875,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.78125,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.84375,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.90625,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.96875,y_center:.28125},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.09375,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.15625,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.21875,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.28125,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.34375,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.40625,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.46875,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.53125,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.59375,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.65625,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.71875,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.78125,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.84375,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.90625,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.96875,y_center:.34375},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.09375,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.15625,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.21875,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.28125,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.34375,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.40625,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.46875,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.53125,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.59375,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.65625,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.71875,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.78125,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.84375,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.90625,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.96875,y_center:.40625},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.09375,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.15625,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.21875,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.28125,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.34375,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.40625,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.46875,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.53125,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.59375,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.65625,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.71875,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.78125,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.84375,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.90625,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.96875,y_center:.46875},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.09375,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.15625,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.21875,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.28125,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.34375,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.40625,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.46875,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.53125,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.59375,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.65625,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.71875,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.78125,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.84375,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.90625,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.96875,y_center:.53125},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.09375,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.15625,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.21875,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.28125,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.34375,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.40625,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.46875,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.53125,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.59375,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.65625,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.71875,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.78125,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.84375,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.90625,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.96875,y_center:.59375},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.09375,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.15625,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.21875,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.28125,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.34375,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.40625,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.46875,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.53125,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.59375,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.65625,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.71875,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.78125,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.84375,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.90625,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.96875,y_center:.65625},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.09375,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.15625,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.21875,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.28125,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.34375,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.40625,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.46875,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.53125,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.59375,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.65625,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.71875,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.78125,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.84375,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.90625,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.96875,y_center:.71875},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.09375,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.15625,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.21875,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.28125,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.34375,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.40625,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.46875,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.53125,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.59375,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.65625,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.71875,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.78125,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.84375,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.90625,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.96875,y_center:.78125},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.09375,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.15625,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.21875,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.28125,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.34375,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.40625,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.46875,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.53125,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.59375,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.65625,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.71875,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.78125,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.84375,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.90625,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.96875,y_center:.84375},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.09375,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.15625,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.21875,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.28125,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.34375,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.40625,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.46875,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.53125,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.59375,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.65625,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.71875,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.78125,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.84375,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.90625,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.96875,y_center:.90625},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.03125,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.09375,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.15625,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.21875,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.28125,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.34375,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.40625,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.46875,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.53125,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.59375,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.65625,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.71875,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.78125,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.84375,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.90625,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.96875,y_center:.96875},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.1875,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.3125,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.4375,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.5625,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.6875,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.8125,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.9375,y_center:.0625},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.1875,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.3125,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.4375,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.5625,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.6875,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.8125,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.9375,y_center:.1875},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.1875,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.3125,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.4375,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.5625,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.6875,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.8125,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.9375,y_center:.3125},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.1875,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.3125,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.4375,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.5625,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.6875,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.8125,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.9375,y_center:.4375},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.1875,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.3125,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.4375,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.5625,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.6875,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.8125,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.9375,y_center:.5625},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.1875,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.3125,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.4375,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.5625,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.6875,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.8125,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.9375,y_center:.6875},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.1875,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.3125,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.4375,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.5625,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.6875,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.8125,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.9375,y_center:.8125},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.0625,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.1875,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.3125,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.4375,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.5625,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.6875,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.8125,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375},{w:1,h:1,x_center:.9375,y_center:.9375}]});var require_handpose=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),handdetector=__toModule(require_handdetector()),handpipeline=__toModule(require_handpipeline()),anchors=__toModule(require_anchors()),MESH_ANNOTATIONS={thumb:[1,2,3,4],indexFinger:[5,6,7,8],middleFinger:[9,10,11,12],ringFinger:[13,14,15,16],pinky:[17,18,19,20],palmBase:[0]},HandPose=class{constructor(handPipeline){this.handPipeline=handPipeline}static getAnnotations(){return MESH_ANNOTATIONS}async estimateHands(input,config2){let predictions=await this.handPipeline.estimateHands(input,config2);if(!predictions)return[];let hands=[];for(let prediction of predictions){let annotations={};if(prediction.landmarks)for(let key of Object.keys(MESH_ANNOTATIONS))annotations[key]=MESH_ANNOTATIONS[key].map(index=>prediction.landmarks[index]);let box=prediction.box?[Math.max(0,prediction.box.topLeft[0]),Math.max(0,prediction.box.topLeft[1]),Math.min(input.shape[2],prediction.box.bottomRight[0])-prediction.box.topLeft[0],Math.min(input.shape[1],prediction.box.bottomRight[1])-prediction.box.topLeft[1]]:0;hands.push({confidence:prediction.confidence,box,landmarks:prediction.landmarks,annotations})}return hands}};exports2.HandPose=HandPose;async function load3(config2){let[handDetectorModel,handPoseModel]=await Promise.all([config2.hand.enabled?tf5.loadGraphModel(config2.hand.detector.modelPath,{fromTFHub:config2.hand.detector.modelPath.includes("tfhub.dev")}):null,config2.hand.landmarks?tf5.loadGraphModel(config2.hand.skeleton.modelPath,{fromTFHub:config2.hand.skeleton.modelPath.includes("tfhub.dev")}):null]),handDetector=new handdetector.HandDetector(handDetectorModel,config2.hand.inputSize,anchors.anchors),handPipeline=new handpipeline.HandPipeline(handDetector,handPoseModel,config2.hand.inputSize),handPose=new HandPose(handPipeline);return config2.hand.enabled&&log(`load model: ${config2.hand.detector.modelPath.match(/\/(.*)\./)[1]}`),config2.hand.landmarks&&log(`load model: ${config2.hand.skeleton.modelPath.match(/\/(.*)\./)[1]}`),handPose}exports2.load=load3});var require_gesture=__commonJS(exports2=>{exports2.body=res=>{if(!res)return[];let gestures=[];for(let i=0;ia.part==="leftWrist"),rightWrist=res[i].keypoints.find(a=>a.part==="rightWrist"),nose=res[i].keypoints.find(a=>a.part==="nose");nose&&leftWrist&&rightWrist&&leftWrist.position.ya.part==="leftShoulder"),rightShoulder=res[i].keypoints.find(a=>a.part==="rightShoulder");leftShoulder&&rightShoulder&&gestures.push({body:i,gesture:`leaning ${leftShoulder.position.y>rightShoulder.position.y?"left":"right"}`})}return gestures};exports2.face=res=>{if(!res)return[];let gestures=[];for(let i=0;i0){let eyeFacing=res[i].mesh[35][2]-res[i].mesh[263][2];Math.abs(eyeFacing)<10?gestures.push({face:i,gesture:"facing camera"}):gestures.push({face:i,gesture:`facing ${eyeFacing<0?"right":"left"}`}),Math.abs(res[i].mesh[374][1]-res[i].mesh[386][1])/Math.abs(res[i].mesh[443][1]-res[i].mesh[450][1])<.2&&gestures.push({face:i,gesture:"blink left eye"}),Math.abs(res[i].mesh[145][1]-res[i].mesh[159][1])/Math.abs(res[i].mesh[223][1]-res[i].mesh[230][1])<.2&&gestures.push({face:i,gesture:"blink right eye"});let mouthOpen=Math.min(100,500*Math.abs(res[i].mesh[13][1]-res[i].mesh[14][1])/Math.abs(res[i].mesh[10][1]-res[i].mesh[152][1]));mouthOpen>10&&gestures.push({face:i,gesture:`mouth ${Math.trunc(mouthOpen)}% open`});let chinDepth=res[i].mesh[152][2];Math.abs(chinDepth)>10&&gestures.push({face:i,gesture:`head ${chinDepth<0?"up":"down"}`})}return gestures};exports2.iris=res=>{if(!res)return[];let gestures=[];for(let i=0;i{if(!res)return[];let gestures=[];for(let i=0;i0){let closest=fingers.reduce((best,a)=>best.position[2]best.position[1]{var WebGLProgram=function(gl,vertexSource,fragmentSource){let _collect=function(source,prefix,collection){let r=new RegExp("\\b"+prefix+" \\w+ (\\w+)","ig");source.replace(r,(match,name)=>(collection[name]=0,match))},_compile=function(source,type){let shader=gl.createShader(type);if(gl.shaderSource(shader,source),gl.compileShader(shader),!gl.getShaderParameter(shader,gl.COMPILE_STATUS))throw new Error("Filter: GL compile failed",gl.getShaderInfoLog(shader));return shader};this.uniform={},this.attribute={};let _vsh=_compile(vertexSource,gl.VERTEX_SHADER),_fsh=_compile(fragmentSource,gl.FRAGMENT_SHADER);if(this.id=gl.createProgram(),gl.attachShader(this.id,_vsh),gl.attachShader(this.id,_fsh),gl.linkProgram(this.id),!gl.getProgramParameter(this.id,gl.LINK_STATUS))throw new Error("Filter: GL link failed",gl.getProgramInfoLog(this.id));gl.useProgram(this.id),_collect(vertexSource,"attribute",this.attribute);for(let a in this.attribute)this.attribute[a]=gl.getAttribLocation(this.id,a);_collect(vertexSource,"uniform",this.uniform),_collect(fragmentSource,"uniform",this.uniform);for(let u in this.uniform)this.uniform[u]=gl.getUniformLocation(this.id,u)},WebGLImageFilter=function(params){params||(params={});let _drawCount=0,_sourceTexture=null,_lastInChain=!1,_currentFramebufferIndex=-1,_tempFramebuffers=[null,null],_filterChain=[],_width=-1,_height=-1,_vertexBuffer=null,_currentProgram=null,_canvas=params.canvas||document.createElement("canvas"),_shaderProgramCache={},gl=_canvas.getContext("webgl");if(!gl)throw new Error("Filter: getContext() failed");this.addFilter=function(name){let args=Array.prototype.slice.call(arguments,1),filter=_filter[name];_filterChain.push({func:filter,args})},this.reset=function(){_filterChain=[]},this.apply=function(image4){if(_resize(image4.width,image4.height),_drawCount=0,_sourceTexture||(_sourceTexture=gl.createTexture()),gl.bindTexture(gl.TEXTURE_2D,_sourceTexture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,image4),_filterChain.length===0)return _draw(),_canvas;for(let i=0;i<_filterChain.length;i++){_lastInChain=i===_filterChain.length-1;let f=_filterChain[i];f.func.apply(this,f.args||[])}return _canvas};let _resize=function(width,height){if(!(width===_width&&height===_height)){if(_canvas.width=width,_width=width,_canvas.height=height,_height=height,!_vertexBuffer){let vertices=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,-1,1,0,0,1,-1,1,1,1,1,1,0]);_vertexBuffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,_vertexBuffer),gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW),gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0)}gl.viewport(0,0,_width,_height),_tempFramebuffers=[null,null]}},_getTempFramebuffer=function(index){return _tempFramebuffers[index]=_tempFramebuffers[index]||_createFramebufferTexture(_width,_height),_tempFramebuffers[index]},_createFramebufferTexture=function(width,height){let fbo=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fbo);let renderbuffer=gl.createRenderbuffer();gl.bindRenderbuffer(gl.RENDERBUFFER,renderbuffer);let texture=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,texture),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,width,height,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture,0),gl.bindTexture(gl.TEXTURE_2D,null),gl.bindFramebuffer(gl.FRAMEBUFFER,null),{fbo,texture}},_draw=function(flags){var _a,_b;let source=null,target=null,flipY=!1;_drawCount===0?source=_sourceTexture:source=(_a=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_a.texture,_drawCount++,_lastInChain&&!(flags&DRAW.INTERMEDIATE)?(target=null,flipY=_drawCount%2==0):(_currentFramebufferIndex=(_currentFramebufferIndex+1)%2,target=(_b=_getTempFramebuffer(_currentFramebufferIndex))==null?void 0:_b.fbo),gl.bindTexture(gl.TEXTURE_2D,source),gl.bindFramebuffer(gl.FRAMEBUFFER,target),gl.uniform1f(_currentProgram.uniform.flipY,flipY?-1:1),gl.drawArrays(gl.TRIANGLES,0,6)},_compileShader=function(fragmentSource){if(_shaderProgramCache[fragmentSource])return _currentProgram=_shaderProgramCache[fragmentSource],gl.useProgram(_currentProgram.id),_currentProgram;_currentProgram=new WebGLProgram(gl,SHADER.VERTEX_IDENTITY,fragmentSource);let floatSize=Float32Array.BYTES_PER_ELEMENT,vertSize=4*floatSize;return gl.enableVertexAttribArray(_currentProgram.attribute.pos),gl.vertexAttribPointer(_currentProgram.attribute.pos,2,gl.FLOAT,!1,vertSize,0*floatSize),gl.enableVertexAttribArray(_currentProgram.attribute.uv),gl.vertexAttribPointer(_currentProgram.attribute.uv,2,gl.FLOAT,!1,vertSize,2*floatSize),_shaderProgramCache[fragmentSource]=_currentProgram,_currentProgram},DRAW={INTERMEDIATE:1},SHADER={};SHADER.VERTEX_IDENTITY=["precision highp float;","attribute vec2 pos;","attribute vec2 uv;","varying vec2 vUv;","uniform float flipY;","void main(void) {","vUv = uv;","gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);","}"].join(` `),SHADER.FRAGMENT_IDENTITY=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","void main(void) {","gl_FragColor = texture2D(texture, vUv);","}"].join(` `);let _filter={};_filter.colorMatrix=function(matrix){let m=new Float32Array(matrix);m[4]/=255,m[9]/=255,m[14]/=255,m[19]/=255;let shader=m[18]===1&&m[3]===0&&m[8]===0&&m[13]===0&&m[15]===0&&m[16]===0&&m[17]===0&&m[19]===0?_filter.colorMatrix.SHADER.WITHOUT_ALPHA:_filter.colorMatrix.SHADER.WITH_ALPHA,program=_compileShader(shader);gl.uniform1fv(program.uniform.m,m),_draw()},_filter.colorMatrix.SHADER={},_filter.colorMatrix.SHADER.WITH_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];","gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];","}"].join(` `),_filter.colorMatrix.SHADER.WITHOUT_ALPHA=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform float m[20];","void main(void) {","vec4 c = texture2D(texture, vUv);","gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];","gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];","gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];","gl_FragColor.a = c.a;","}"].join(` `),_filter.brightness=function(brightness){let b=(brightness||0)+1;_filter.colorMatrix([b,0,0,0,0,0,b,0,0,0,0,0,b,0,0,0,0,0,1,0])},_filter.saturation=function(amount){let x=(amount||0)*2/3+1,y=(x-1)*-.5;_filter.colorMatrix([x,y,y,0,0,y,x,y,0,0,y,y,x,0,0,0,0,0,1,0])},_filter.desaturate=function(){_filter.saturation(-1)},_filter.contrast=function(amount){let v=(amount||0)+1,o=-128*(v-1);_filter.colorMatrix([v,0,0,0,o,0,v,0,0,o,0,0,v,0,o,0,0,0,1,0])},_filter.negative=function(){_filter.contrast(-2)},_filter.hue=function(rotation){rotation=(rotation||0)/180*Math.PI;let cos=Math.cos(rotation),sin=Math.sin(rotation),lumR=.213,lumG=.715,lumB=.072;_filter.colorMatrix([lumR+cos*(1-lumR)+sin*-lumR,lumG+cos*-lumG+sin*-lumG,lumB+cos*-lumB+sin*(1-lumB),0,0,lumR+cos*-lumR+sin*.143,lumG+cos*(1-lumG)+sin*.14,lumB+cos*-lumB+sin*-.283,0,0,lumR+cos*-lumR+sin*-(1-lumR),lumG+cos*-lumG+sin*lumG,lumB+cos*(1-lumB)+sin*lumB,0,0,0,0,0,1,0])},_filter.desaturateLuminance=function(){_filter.colorMatrix([.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,.2764723,.929708,.0938197,0,-37.1,0,0,0,1,0])},_filter.sepia=function(){_filter.colorMatrix([.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0])},_filter.brownie=function(){_filter.colorMatrix([.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0])},_filter.vintagePinhole=function(){_filter.colorMatrix([.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0])},_filter.kodachrome=function(){_filter.colorMatrix([1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0])},_filter.technicolor=function(){_filter.colorMatrix([1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0])},_filter.polaroid=function(){_filter.colorMatrix([1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0])},_filter.shiftToBGR=function(){_filter.colorMatrix([0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0])},_filter.convolution=function(matrix){let m=new Float32Array(matrix),pixelSizeX=1/_width,pixelSizeY=1/_height,program=_compileShader(_filter.convolution.SHADER);gl.uniform1fv(program.uniform.m,m),gl.uniform2f(program.uniform.px,pixelSizeX,pixelSizeY),_draw()},_filter.convolution.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","uniform float m[9];","void main(void) {","vec4 c11 = texture2D(texture, vUv - px);","vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));","vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));","vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );","vec4 c22 = texture2D(texture, vUv);","vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );","vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );","vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );","vec4 c33 = texture2D(texture, vUv + px );","gl_FragColor = ","c11 * m[0] + c12 * m[1] + c22 * m[2] +","c21 * m[3] + c22 * m[4] + c23 * m[5] +","c31 * m[6] + c32 * m[7] + c33 * m[8];","gl_FragColor.a = c22.a;","}"].join(` `),_filter.detectEdges=function(){_filter.convolution.call(this,[0,1,0,1,-4,1,0,1,0])},_filter.sobelX=function(){_filter.convolution.call(this,[-1,0,1,-2,0,2,-1,0,1])},_filter.sobelY=function(){_filter.convolution.call(this,[-1,-2,-1,0,0,0,1,2,1])},_filter.sharpen=function(amount){let a=amount||1;_filter.convolution.call(this,[0,-1*a,0,-1*a,1+4*a,-1*a,0,-1*a,0])},_filter.emboss=function(size){let s=size||1;_filter.convolution.call(this,[-2*s,-1*s,0,-1*s,1,1*s,0,1*s,2*s])},_filter.blur=function(size){let blurSizeX=size/7/_width,blurSizeY=size/7/_height,program=_compileShader(_filter.blur.SHADER);gl.uniform2f(program.uniform.px,0,blurSizeY),_draw(DRAW.INTERMEDIATE),gl.uniform2f(program.uniform.px,blurSizeX,0),_draw()},_filter.blur.SHADER=["precision highp float;","varying vec2 vUv;","uniform sampler2D texture;","uniform vec2 px;","void main(void) {","gl_FragColor = vec4(0.0);","gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;","gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv )*0.159576912161;","gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;","gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;","gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;","gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;","gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;","gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;","gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;","}"].join(` `),_filter.pixelate=function(size){let blurSizeX=size/_width,blurSizeY=size/_height,program=_compileShader(_filter.pixelate.SHADER);gl.uniform2f(program.uniform.size,blurSizeX,blurSizeY),_draw()},_filter.pixelate.SHADER=["precision highp float;","varying vec2 vUv;","uniform vec2 size;","uniform sampler2D texture;","vec2 pixelate(vec2 coord, vec2 size) {","return floor( coord / size ) * size;","}","void main(void) {","gl_FragColor = vec4(0.0);","vec2 coord = pixelate(vUv, size);","gl_FragColor += texture2D(texture, coord);","}"].join(` -`)};exports2.Canvas=WebGLImageFilter});var require_image=__commonJS(exports2=>{var tf4=__toModule(require_tfjs_esm()),fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input,config2){let tensor;if(input instanceof tf4.Tensor)tensor=tf4.clone(input);else{let originalWidth=input.naturalWidth||input.videoWidth||input.width||input.shape&&input.shape[1]>0,originalHeight=input.naturalHeight||input.videoHeight||input.height||input.shape&&input.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config2.filter.width>0?targetWidth=config2.filter.width:config2.filter.height>0&&(targetWidth=originalWidth*(config2.filter.height/originalHeight)),config2.filter.height>0?targetHeight=config2.filter.height:config2.filter.width>0&&(targetHeight=originalHeight*(config2.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input instanceof ImageData?ctx.putImageData(input,0,0):ctx.drawImage(input,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config2.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=tf4.ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config2.filter.brightness),config2.filter.contrast!==0&&this.fx.addFilter("contrast",config2.filter.contrast),config2.filter.sharpness!==0&&this.fx.addFilter("sharpen",config2.filter.sharpness),config2.filter.blur!==0&&this.fx.addFilter("blur",config2.filter.blur),config2.filter.saturation!==0&&this.fx.addFilter("saturation",config2.filter.saturation),config2.filter.hue!==0&&this.fx.addFilter("hue",config2.filter.hue),config2.filter.negative&&this.fx.addFilter("negative"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.vintage&&this.fx.addFilter("brownie"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.kodachrome&&this.fx.addFilter("kodachrome"),config2.filter.technicolor&&this.fx.addFilter("technicolor"),config2.filter.polaroid&&this.fx.addFilter("polaroid"),config2.filter.pixelate!==0&&this.fx.addFilter("pixelate",config2.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tf4.tensor3d(outCanvas.data,shape,"int32")}else if(config2.backend==="webgl"||outCanvas instanceof ImageData)pixels=tf4.browser.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=tf4.browser.fromPixels(data2)}let casted=pixels.toFloat();tensor=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor,canvas:config2.filter.return?outCanvas:null}}exports2.process=process3});__export(exports,{default:()=>Human});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tf3=__toModule(require_tfjs_esm());var tf=__toModule(require_tfjs_esm()),config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!tf.findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);tf.setWebGLContext(2,gl);let ctx=new tf.GPGPUContext(gl);tf.registerBackend(config.name,()=>new tf.MathBackendWebGL(ctx),config.priority),tf.getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};tf.registerKernel(newKernelConfig)}),tf.ENV.set("WEBGL_VERSION",2),tf.ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),tf.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding=__toModule(require_embedding()),posenet=__toModule(require_posenet());var tf2=__toModule(require_tfjs_esm());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){let h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf2.image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` +`)};exports2.Canvas=WebGLImageFilter});var require_image=__commonJS(exports2=>{var tf5=__toModule(require_tfjs_esm()),fxImage=__toModule(require_imagefx()),inCanvas=null,outCanvas=null;function process3(input,config2){let tensor;if(input instanceof tf5.Tensor)tensor=tf5.clone(input);else{let originalWidth=input.naturalWidth||input.videoWidth||input.width||input.shape&&input.shape[1]>0,originalHeight=input.naturalHeight||input.videoHeight||input.height||input.shape&&input.shape[2]>0,targetWidth=originalWidth,targetHeight=originalHeight;if(config2.filter.width>0?targetWidth=config2.filter.width:config2.filter.height>0&&(targetWidth=originalWidth*(config2.filter.height/originalHeight)),config2.filter.height>0?targetHeight=config2.filter.height:config2.filter.width>0&&(targetHeight=originalHeight*(config2.filter.width/originalWidth)),!targetWidth||!targetHeight)return log("Human: invalid input",input),null;(!inCanvas||inCanvas.width!==targetWidth||inCanvas.height!==targetHeight)&&(inCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas"),inCanvas.width!==targetWidth&&(inCanvas.width=targetWidth),inCanvas.height!==targetHeight&&(inCanvas.height=targetHeight));let ctx=inCanvas.getContext("2d");if(input instanceof ImageData?ctx.putImageData(input,0,0):ctx.drawImage(input,0,0,originalWidth,originalHeight,0,0,inCanvas.width,inCanvas.height),config2.filter.enabled){if((!this.fx||!outCanvas||inCanvas.width!==outCanvas.width||inCanvas.height!==outCanvas.height)&&(outCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(inCanvas.width,inCanvas.height):document.createElement("canvas"),outCanvas.width!==inCanvas.width&&(outCanvas.width=inCanvas.width),outCanvas.height!==inCanvas.height&&(outCanvas.height=inCanvas.height),this.fx=tf5.ENV.flags.IS_BROWSER?new fxImage.Canvas({canvas:outCanvas}):null),!this.fx)return inCanvas;this.fx.reset(),this.fx.addFilter("brightness",config2.filter.brightness),config2.filter.contrast!==0&&this.fx.addFilter("contrast",config2.filter.contrast),config2.filter.sharpness!==0&&this.fx.addFilter("sharpen",config2.filter.sharpness),config2.filter.blur!==0&&this.fx.addFilter("blur",config2.filter.blur),config2.filter.saturation!==0&&this.fx.addFilter("saturation",config2.filter.saturation),config2.filter.hue!==0&&this.fx.addFilter("hue",config2.filter.hue),config2.filter.negative&&this.fx.addFilter("negative"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.vintage&&this.fx.addFilter("brownie"),config2.filter.sepia&&this.fx.addFilter("sepia"),config2.filter.kodachrome&&this.fx.addFilter("kodachrome"),config2.filter.technicolor&&this.fx.addFilter("technicolor"),config2.filter.polaroid&&this.fx.addFilter("polaroid"),config2.filter.pixelate!==0&&this.fx.addFilter("pixelate",config2.filter.pixelate),this.fx.apply(inCanvas)}else outCanvas=inCanvas;let pixels;if(outCanvas.data){let shape=[outCanvas.height,outCanvas.width,3];pixels=tf5.tensor3d(outCanvas.data,shape,"int32")}else if(config2.backend==="webgl"||outCanvas instanceof ImageData)pixels=tf5.browser.fromPixels(outCanvas);else{let tempCanvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(targetWidth,targetHeight):document.createElement("canvas");tempCanvas.width=targetWidth,tempCanvas.height=targetHeight;let tempCtx=tempCanvas.getContext("2d");tempCtx==null||tempCtx.drawImage(outCanvas,0,0);let data2=tempCtx==null?void 0:tempCtx.getImageData(0,0,targetWidth,targetHeight);pixels=tf5.browser.fromPixels(data2)}let casted=pixels.toFloat();tensor=casted.expandDims(0),pixels.dispose(),casted.dispose()}return{tensor,canvas:config2.filter.return?outCanvas:null}}exports2.process=process3});__export(exports,{default:()=>Human});function log(...msg){let dt=new Date,ts=`${dt.getHours().toString().padStart(2,"0")}:${dt.getMinutes().toString().padStart(2,"0")}:${dt.getSeconds().toString().padStart(2,"0")}.${dt.getMilliseconds().toString().padStart(3,"0")}`;msg&&console.log(ts,"Human:",...msg)}var tf4=__toModule(require_tfjs_esm());var tf=__toModule(require_tfjs_esm()),config={name:"humangl",priority:99,canvas:null,width:1024,height:1024,webGLattr:{alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!1,desynchronized:!0}};function register(){if(!tf.findBackend(config.name)){config.canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(config.width,config.height):document.createElement("canvas");let gl=config.canvas.getContext("webgl2",config.webGLattr);tf.setWebGLContext(2,gl);let ctx=new tf.GPGPUContext(gl);tf.registerBackend(config.name,()=>new tf.MathBackendWebGL(ctx),config.priority),tf.getKernelsForBackend("webgl").forEach(kernelConfig=>{let newKernelConfig={...kernelConfig,backendName:config.name};tf.registerKernel(newKernelConfig)}),tf.ENV.set("WEBGL_VERSION",2),tf.ENV.set("WEBGL_MAX_TEXTURE_SIZE",gl.getParameter(gl.MAX_TEXTURE_SIZE)),tf.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0)}}var facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding=__toModule(require_embedding()),posenet=__toModule(require_posenet());var tf2=__toModule(require_tfjs_esm()),models={};async function load(config2){return models.blazepose||(models.blazepose=await tf2.loadGraphModel(config2.pose.modelPath),log(`load model: ${config2.pose.modelPath.match(/\/(.*)\./)[1]}`)),models.blazepose}async function predict(image4,config2){return models.blazepose?new Promise(async resolve=>{let resize=tf2.image.resizeBilinear(image4,[config2.pose.inputSize,config2.pose.inputSize],!1),enhance=tf2.div(resize,127.5).sub(1);tf2.dispose(resize);let logits=await models.blazepose.predict(enhance);tf2.dispose(enhance),logits.map(logit=>logit.dispose()),resolve(logits)}):null}var tf3=__toModule(require_tfjs_esm());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image4,cropSize){let h=image4.shape[1],w=image4.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return tf3.image.cropAndResize(image4,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){let startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>[coord[0]*factor[0],coord[1]*factor[1]]);return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){let center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){let centers=getBoxCenter(box),size=getBoxSize(box),halfSize=Math.max(...size)/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){let radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}var buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot(v1,v2){let product=0;for(let i=0;iconfig_default});var config_default={backend:"webgl",wasmPath:"../assets/",async:!0,profile:!1,deallocate:!1,scoped:!1,videoOptimized:!0,warmup:"face",filter:{enabled:!0,width:0,height:0,return:!0,brightness:0,contrast:0,sharpness:0,blur:0,saturation:0,hue:0,negative:!1,sepia:!1,vintage:!1,kodachrome:!1,technicolor:!1,polaroid:!1,pixelate:0},gesture:{enabled:!0},face:{enabled:!0,detector:{modelPath:"../models/blazeface-back.json",inputSize:256,rotation:!1,maxFaces:10,skipFrames:11,minConfidence:.5,iouThreshold:.2,scoreThreshold:.5},mesh:{enabled:!0,modelPath:"../models/facemesh.json",inputSize:192,returnRawData:!1},iris:{enabled:!0,modelPath:"../models/iris.json",inputSize:64},age:{enabled:!0,modelPath:"../models/age-ssrnet-imdb.json",inputSize:64,skipFrames:31},gender:{enabled:!0,minConfidence:.1,modelPath:"../models/gender-ssrnet-imdb.json",inputSize:64,skipFrames:41},emotion:{enabled:!0,inputSize:64,minConfidence:.2,skipFrames:21,modelPath:"../models/emotion-large.json"},embedding:{enabled:!1,inputSize:112,modelPath:"../models/mobilefacenet.json"}},body:{enabled:!0,modelPath:"../models/posenet.json",inputSize:257,maxDetections:10,scoreThreshold:.5,nmsRadius:20,outputStride:16,modelType:"MobileNet"},pose:{enabled:!1,scoreThreshold:.6,iouThreshold:.3,modelPath:"../models/blazepose.json",inputSize:256},hand:{enabled:!0,rotation:!1,inputSize:256,skipFrames:12,minConfidence:.1,iouThreshold:.1,scoreThreshold:.5,maxHands:1,landmarks:!0,detector:{modelPath:"../models/handdetect.json"},skeleton:{modelPath:"../models/handskeleton.json"}}};var face=` /9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu bmV0IDQuMi4xMwAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxob @@ -731,5 +731,5 @@ AAAAAAJAAAAAAAAAAAAAABAJEAAAAAAAAAAAAAAAIEoBKAAAAAAAAAAAAAAABAlAAAAAAAIAAAAA BAkBAkBAkBAlACEgMZjdjbFW8bWrEx8YWANb6Fp+bfwab+vLDKMFK9qxH5L0bAr8OPRPKz2AY7J2 SbAjYZAI2E7AIEgIEgIEgMdkSy2NgY7MdlmyNoBXsxmFuyNgVTVjNV3KjlBRNTlXTVHKCrlIqt5T lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/ -2Q==`;var version="0.9.23";var now=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tf3,this.version=version,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=tf3.engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input){if(!this.checkSanity)return null;if(!input)return"input is not defined";if(tf3.ENV.flags.IS_NODE&&!(input instanceof tf3.Tensor))return"input must be a tensor";try{tf3.getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding2){return this.config.face.embedding.enabled?embedding.simmilarity(embedding1,embedding2):0}async load(userConfig){this.state="load";let timeStamp=now();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${tf3.version_core}`),await this.checkBackend(!0),tf3.ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",tf3.ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)));let current=Math.trunc(now()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||tf3.getBackend()!==this.config.backend){let timeStamp=now();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),tf3.setWasmPaths(this.config.wasmPath),await tf3.env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await tf3.setBackend(this.config.backend),tf3.enableProdMode(),tf3.getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),tf3.ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),tf3.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf3.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await tf3.backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await tf3.ready(),this.perf.backend=Math.trunc(now()-timeStamp)}}async detectFace(input){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input,this.config));this.perf.face=Math.trunc(now()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now(),embeddingRes=this.config.face.embedding.enabled?await embedding.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image2.process(input,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input);error&&(log(error,input),resolve({error}));let poseRes,handRes,faceRes,timeStart=now();await this.checkBackend(),await this.load(),this.config.scoped&&tf3.engine().startScope(),this.analyze("Start Scope:"),timeStamp=now();let process3=image2.process(input,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now()-timeStamp)),this.config.async&&([faceRes,poseRes,handRes]=await Promise.all([faceRes,poseRes,handRes])),process3.tensor.dispose(),this.config.scoped&&tf3.engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now()-timeStamp)),this.perf.total=Math.trunc(now()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res=>res.blob());userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let blob;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(!blob)return null;let bitmap=await createImageBitmap(blob),t0=now(),warmup=await this.detect(bitmap,config_exports),t1=now();return bitmap.close(),log("Warmup",this.config.warmup,t1-t0,warmup),this.config.videoOptimized=video,warmup}}; +2Q==`;var version="0.9.24";var now=()=>typeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){let isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{let pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}var Human=class{constructor(userConfig={}){this.tf=tf4,this.version=version,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}profile(){return this.config.profile?profile.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;let current=tf4.engine().state.numTensors,previous=this.numTensors;this.numTensors=current;let leaked=current-previous;leaked!==0&&log(...msg,leaked)}sanity(input){if(!this.checkSanity)return null;if(!input)return"input is not defined";if(tf4.ENV.flags.IS_NODE&&!(input instanceof tf4.Tensor))return"input must be a tensor";try{tf4.getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding2){return this.config.face.embedding.enabled?embedding.simmilarity(embedding1,embedding2):0}async load(userConfig){this.state="load";let timeStamp=now();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(log(`version: ${this.version} TensorFlow/JS version: ${tf4.version_core}`),await this.checkBackend(!0),tf4.ENV.flags.IS_BROWSER&&(log("configuration:",this.config),log("tf flags:",tf4.ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose,this.models.blazepose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null),this.models.blazepose||(this.config.pose.enabled?load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)),this.config.pose.enabled&&!this.models.blazepose&&(this.models.blazepose=await load(this.config)));let current=Math.trunc(now()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||tf4.getBackend()!==this.config.backend){let timeStamp=now();if(this.state="backend",log("setting backend:",this.config.backend),this.config.backend==="wasm"&&(log("settings wasm path:",this.config.wasmPath),tf4.setWasmPaths(this.config.wasmPath),await tf4.env().getAsync("WASM_HAS_SIMD_SUPPORT")||log("warning: wasm simd support is not enabled")),this.config.backend==="humangl"&&(log("registering humangl backend"),register()),await tf4.setBackend(this.config.backend),tf4.enableProdMode(),tf4.getBackend()==="webgl"){this.config.deallocate&&(log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),tf4.ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),tf4.ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),tf4.ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);let gl=await tf4.backend().getGPGPUContext().gl;log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await tf4.ready(),this.perf.backend=Math.trunc(now()-timeStamp)}}async detectFace(input){var _a;let timeStamp,ageRes,genderRes,emotionRes,embeddingRes,faceRes=[];this.state="run:face",timeStamp=now();let faces=await((_a=this.models.facemesh)==null?void 0:_a.estimateFaces(input,this.config));this.perf.face=Math.trunc(now()-timeStamp);for(let face3 of faces){if(this.analyze("Get Face"),!face3.image||face3.image.isDisposedInternal){log("Face object is disposed:",face3.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face3.image,this.config):{}:(this.state="run:age",timeStamp=now(),ageRes=this.config.face.age.enabled?await age.predict(face3.image,this.config):{},this.perf.age=Math.trunc(now()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face3.image,this.config):{}:(this.state="run:gender",timeStamp=now(),genderRes=this.config.face.gender.enabled?await gender.predict(face3.image,this.config):{},this.perf.gender=Math.trunc(now()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face3.image,this.config):{}:(this.state="run:emotion",timeStamp=now(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face3.image,this.config):{},this.perf.emotion=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding.predict(face3.image,this.config):{}:(this.state="run:embedding",timeStamp=now(),embeddingRes=this.config.face.embedding.enabled?await embedding.predict(face3.image,this.config):{},this.perf.embedding=Math.trunc(now()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face3.image.dispose(),this.config.face.iris.enabled||(delete face3.annotations.leftEyeIris,delete face3.annotations.rightEyeIris);let irisSize=face3.annotations.leftEyeIris&&face3.annotations.rightEyeIris?11.7*Math.max(Math.abs(face3.annotations.leftEyeIris[3][0]-face3.annotations.leftEyeIris[1][0]),Math.abs(face3.annotations.rightEyeIris[4][1]-face3.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face3.confidence,box:face3.box,mesh:face3.mesh,boxRaw:face3.boxRaw,meshRaw:face3.meshRaw,annotations:face3.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);let process3=image3.process(input,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input,userConfig={}){return new Promise(async resolve=>{var _a,_b,_c,_d;this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";let error=this.sanity(input);error&&(log(error,input),resolve({error}));let poseRes,blazeposeRes,handRes,faceRes,timeStart=now();await this.checkBackend(),await this.load(),this.config.scoped&&tf4.engine().startScope(),this.analyze("Start Scope:"),timeStamp=now();let process3=image3.process(input,this.config);if(!process3||!process3.tensor){log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?(_a=this.models.posenet)==null?void 0:_a.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now(),poseRes=this.config.body.enabled?await((_b=this.models.posenet)==null?void 0:_b.estimatePoses(process3.tensor,this.config)):[],this.perf.body=Math.trunc(now()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Pose:"),this.config.async?(blazeposeRes=this.config.pose.enabled?predict(process3.tensor,this.config):[],this.perf.pose&&delete this.perf.pose):(this.state="run:pose",timeStamp=now(),blazeposeRes=this.config.pose.enabled?await predict(process3.tensor,this.config):[],this.perf.pose=Math.trunc(now()-timeStamp)),this.analyze("End Pose:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?(_c=this.models.handpose)==null?void 0:_c.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now(),handRes=this.config.hand.enabled?await((_d=this.models.handpose)==null?void 0:_d.estimateHands(process3.tensor,this.config)):[],this.perf.hand=Math.trunc(now()-timeStamp)),this.analyze("End Hand:"),this.config.async&&([faceRes,poseRes,blazeposeRes,handRes]=await Promise.all([faceRes,poseRes,blazeposeRes,handRes])),process3.tensor.dispose(),this.config.scoped&&tf4.engine().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now(),gestureRes=[...gesture.face(faceRes),...gesture.body(poseRes),...gesture.hand(handRes),...gesture.iris(faceRes)],this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now()-timeStamp)),this.perf.total=Math.trunc(now()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,pose:blazeposeRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmupBitmap(){let b64toBlob=(base64,type="application/octet-stream")=>fetch(`data:${type};base64,${base64}`).then(res2=>res2.blob()),blob,res;switch(this.config.warmup){case"face":blob=await b64toBlob(face);break;case"full":blob=await b64toBlob(body);break;default:blob=null}if(blob){let bitmap=await createImageBitmap(blob);res=await this.detect(bitmap,config_exports),bitmap.close()}return res}async warmupCanvas(){return new Promise(resolve=>{let src,size=0;switch(this.config.warmup){case"face":size=256,src="data:image/jpeg;base64,"+face;break;case"full":size=1200,src="data:image/jpeg;base64,"+body;break;default:src=null}let img=new Image(size,size);img.onload=()=>{let canvas=typeof OffscreenCanvas!="undefined"?new OffscreenCanvas(size,size):document.createElement("canvas");canvas.width=size,canvas.height=size;let ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);let data2=ctx.getImageData(0,0,size,size);this.detect(data2,config_exports).then(res=>resolve(res))},src?img.src=src:resolve(null)})}async warmup(userConfig){let t0=now();userConfig&&(this.config=mergeDeep(this.config,userConfig));let video=this.config.videoOptimized;this.config.videoOptimized=!1;let res;typeof createImageBitmap=="function"?res=await this.warmupBitmap():res=await this.warmupCanvas(),this.config.videoOptimized=video;let t1=now();return log("Warmup",this.config.warmup,t1-t0,res),res}}; //# sourceMappingURL=human.node.js.map diff --git a/dist/human.node.js.map b/dist/human.node.js.map index 0c77fe60..b6287c34 100644 --- a/dist/human.node.js.map +++ b/dist/human.node.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../src/tfjs/tf-node.js", "../src/face/blazeface.js", "../src/face/box.js", "../src/face/util.js", "../src/face/coords.js", "../src/face/facepipeline.js", "../src/face/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/body/modelBase.js", "../src/body/heapSort.js", "../src/body/buildParts.js", "../src/body/keypoints.js", "../src/body/vectors.js", "../src/body/decoders.js", "../src/body/decodePose.js", "../src/body/decodeMultiple.js", "../src/body/util.js", "../src/body/modelPoseNet.js", "../src/body/posenet.js", "../src/hand/handdetector.js", "../src/hand/handpipeline.js", "../src/hand/anchors.js", "../src/hand/handpose.js", "../src/gesture/gesture.js", "../src/imagefx.js", "../src/image.js", "../src/human.js", "../src/log.js", "../src/tfjs/backend.js", "../src/hand/box.js", "../src/hand/util.js", "../config.js", "../src/sample.js"], - "sourcesContent": ["export * from '@tensorflow/tfjs-node';\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './face/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './body/posenet.js';\nimport * as handpose from './hand/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n // @ts-ignore\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n // @ts-ignore\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n // @ts-ignore\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n ] = await Promise.all([\n // @ts-ignore\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n // @ts-ignore\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n // @ts-ignore\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n // @ts-ignore\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n // @ts-ignore\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n // @ts-ignore\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n // @ts-ignore\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n ]);\n } else {\n // @ts-ignore\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n // @ts-ignore\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n // @ts-ignore\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n // @ts-ignore\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n // @ts-ignore\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n // @ts-ignore\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n // @ts-ignore\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n // @ts-ignore\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n // @ts-ignore\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n // @ts-ignore\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n // @ts-ignore\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n // @ts-ignore\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n // @ts-ignore\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n // @ts-ignore\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n // @ts-ignore\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n // @ts-ignore\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n // @ts-ignore\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n // @ts-ignore\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n // @ts-ignore\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n // this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, handRes] = await Promise.all([faceRes, poseRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig) {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let blob;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (!blob) return null;\n const bitmap = await createImageBitmap(blob);\n const t0 = now();\n const warmup = await this.detect(bitmap, config);\n const t1 = now();\n bitmap.close();\n log('Warmup', this.config.warmup, (t1 - t0), warmup);\n this.config.videoOptimized = video;\n return warmup;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\nb9a7LfBTfS1vWI2jf12VfQPSW8KX2mas+NC2iv6xMNfJpMnLtEbuuxtMRCtzF55NR5rPps1N/ctP\ny6uHreE6nXZ4pak48X3rT06fB7fNeI33cbX6mI32R/MWu7XF116aDSRhxbRERs8f499bkyZeeKae\nkzE2mdon81/tfxDLGOunwbzlzbx08oaHBvZHJlx48mrvaa94pu04y617576rNGLRRM0397JEd/lu\n9Dw/S3x4qxffo6mm4NjwUiKY4iI9Ib1dHFY6QIaNabbrYrLfrpJtaK1rMzPZb/s+05IpP59OyLeJ\nk7eNfRaOc1ue32I7fGXYpi5Y77M8OGMeOKxHSFsU3Y29deZMzirl6dlVvhLatCjJHeYQv1rXnps1\n8k9/VsW6qLVmZIi1rzitlvFKRvaZ2h6TSaenC9FFY+3brM+sqeG8Prp4+kZ+lvuxPkr1mqm95nfp\nDXM459676a2q1dsV7XietvNno78+CJn1cjX6mOeIm0bR33dfRU5NJjidt9t5afjG/V6JZ7I2QMNh\nnyo2BhsMuVG3wAhMSbbQRAMolnE+iuGUSCyJZRKuGUSCyJZK4llEgyZMYTuCUsYSCQASISAAAlCQ\nAAAAAAEoASCASAAAAAAAAAAAAlACRACQAAAAAAAAAEgCEoASCAAAAAAAAAAAAAAAAAAAAAAABAAA\nAAAAAAAISAIAAAAAAQAAACASgAAAQJAQAAhIDHZhln3do7z0WS18mWsajHjmes7pg3dNi5aRMNqO\nyvDHTpPRaigHZhN4hHRlaVN59JY3zRENLUavaO+yq0iNVlitJ6vNcR1MVi0zO0era1/Ea0rPvbz5\nPM5MWp45qvo2GZrhmfrsnpHpHzTCseEcM/2vrr8Q1Eb4qzy44nziPN63HpYiIiI7LNHoqabBTFii\nIpSNohuVxrKtWMEejPwY9G1FFmHB4mWJn7MdfnIM9JpIx15to5pbUaas/a6rqViI7MxPxqX0UT1r\nO3wVzpbR2hviP5i03Y5s6a879FNtHljydhExCv8AMTPJXBnRZbz0iG5ptFjwe/l96zctMVamTJtE\nyTMibu1VrdTzRMR0j0ed4lr64MVpm0RERvMz5NvX62uOJ69XhOKX1HH9bHDtFvNYnfJeOy0Z2ojX\n6jjnEq6fRUmccTvN/J9H0eKcOnx45neaxEbubwHgOHg+milI3vP2resu3Wu0JQmITsmISDHZHKz2\nJgFc1RMLJhGwK9iIZ7MZgEdgmAEwyiWCdwWRLKJVxKYsC2JTuriWUSDNlEsIlMAySx3SCRCQSIAS\nAAACRACQAAAAAAASIASAAAAAAAAAAAAAAACRACRACQASIAAAAAAAAAAAAAAAAAAAAAAAAQCUAAAA\nAAAAAAIAAAAAAAAQAAAAAACBICBICAAEJAQJQCJcLjuS2ny6fPG/LWdpd1o8T0X07SXx/e7wCdJx\nWa0jmneHQpxPDMdZmJfNtZm49weZrh0/j4o7VtSZ2+Uw0/8A7o49k92vBLc/ntFohFW9PqGXimOI\n6Tu1L8T3eCx6r2t1O3JwvHjifO99v7t/Bwf2l1PXU6rS6eJ8qUm8x+so5TsekzcSjbvs4mt4rzW5\nK2mbT0itesy2cHsvbvqtbmyz5xERWP2jd1tJwrTaONsOKtZ8585+cnDrzmn4Rq+IZObUROHD32n7\nVv8A0ej0uhxaXFGPFSK1j0bkY4jyZRVZVXFGUVWbGwKsk8mObekNrSW3pWf1a2aYjHbm7bNnQ1id\nPW0TvuDdhJEbQABMsLW2R0ZTMQrvfbz2YWzVhpanUxEd0dWkW5c8R5uXxDX1w4pnfr5Q19XxKuOJ\n2neXltVqtVxbV/RdJ715+1bypANfiOu1HENV9C0MTfNeesx2rD1PAeBYuE6aKx72W3W9/WVnBuB4\neF4dqRzZbdb5J72l160WVK02ZxCYhOwI23TsnY2BGxsnYBjsiYZsZBjMMZZSgGEolMsQDdG6NwZ7\npiVe6YkFsSziVMWZRILolMSriWUSCyJTuwhMSDMRCQSI3SAlACRCQAAEoAEoASAAAAAAAAACUACR\nACQAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAABAAAAAAAAAAAAACBKAAAAAAAQ\nJQAAAhICEbJAYTWJ7wx8KvpC0BV4ceieWGewDHlNmWwCNjZICNhIDmcZredBecdpiY69FXCOLW+i\nUiZidukulmxxlx2paN4mNng+K4+I8Hy2yaTfl37TXetoCPfRxfp1qi3F48ofKMvtvxak8s6LDv61\nrZji9rPaLUf5PC+bfttS0q8q3p9W/wBrRMdpUZuKdN99nzvFqPbTVz7nD8OKs+do2/mW3h4D7Xaq\nZnPrtNpqz35aRaYOHY9Zk4pNt9rR+rl6zi+OnS+WN57Rv1lXp/YrNaYtruL6zNPnGO3hxP6O5w/2\nf0HDuun09Yv55Le9afznqcOvO4tBreMTHu30unnva0bWt8on+70nDuE4OHYYx4Kbesz3tPrMuhGO\nIjpDOKrK9YVpsyiGUQnYGOyUgI2SlAIEmwMWMs9kTAMJYzDOYRMArmGErZhhMArlHmzmGMwDE3Ts\nbAbs4swj5pgFkSziVcM4BZEsolXDKAZwyhjCYBkACQhIAAAAAAAJAAAAAAAAAAAAAAAAAAAShIAA\nAAAAAAJAAAAAAAAAAAAAABAJEAAAAAAAAAAAAAAAIEoBKAAAAAAAAAAAAAAABAlAAAAAAAIAAAAA\nBAkBAkBAkBAlACEgMZjdjbFW8bWrEx8YWANb6Fp+bfwab+vLDKMFK9qxH5L0bAr8OPRPKz2AY7J2\nSbAjYZAI2E7AIEgIEgIEgMdkSy2NgY7MdlmyNoBXsxmFuyNgVTVjNV3KjlBRNTlXTVHKCrlIqt5T\nlBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/\n2Q==`;\n"], - "mappings": "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CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,CACC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EACnC,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EACnH,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAChF,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAC9D,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GACxC,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EACpF,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GACxC,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvH,KAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhC,MAAQ,CACA,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/E,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC1C,IAAK,EAAG,IAAK,EAAG,GAAI,GAAI,EAAG,IAAK,IAChC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtD,GAAI,GAAI,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAChD,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,KAEvC,MAAQ,CAAC,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAC1J,KAAO,CAAC,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,KAExC,SAAQ,iBAAmB,iBAC3B,SAAQ,yBAA2B,yBAEnC,SAAQ,OAAS,OACjB,SAAQ,MAAQ,MAChB,SAAQ,MAAQ,MAChB,SAAQ,KAAO,KAEf,SAAQ,MAAQ,MAChB,SAAQ,KAAO,MAAM,IAAI,AAAC,GAAM,MAAM,IACtC,SAAQ,KAAO,MAAM,IAAI,AAAC,GAAM,MAAM,IACtC,SAAQ,IAAM,KAAK,IAAI,AAAC,GAAM,MAAM,MC1oBpC,+CACA,QAAoB,+BACpB,SAA0B,0BAC1B,KAAsB,2BACtB,OAAwB,6BAIlB,gBAAkB,IAClB,iBAAmB,GACnB,wCAA0C,CAAC,iBAAkB,AAAO,wBAAiB,kBAAqB,IAC1G,sBAAwB,EACxB,qBAAuB,EACvB,6CAA+C,CAAC,sBAAuB,sBACvE,iBAAmB,AAAO,wBAAiB,cAC3C,gBAAkB,CAAC,iBAAiB,GAAI,iBAAiB,iBAAiB,OAAS,IACnF,kBAAoB,AAAO,wBAAiB,eAC5C,iBAAmB,CAAC,kBAAkB,GAAI,kBAAkB,kBAAkB,OAAS,IACvF,wBAA0B,EAC1B,wBAA0B,EAC1B,gBAAkB,GAClB,qBAAuB,GAG7B,+BAA+B,UAAW,UAAW,OAAQ,MAC3D,OAAS,GAAI,EAAG,EAAI,AAAO,gCAAyB,OAAQ,KAC1D,GAAM,CAAE,IAAK,SAAY,AAAO,gCAAyB,GACnD,gBAAkB,AAAO,wBAAiB,GAAG,SAAS,OAE5D,GAAI,AADyB,MAAQ,MACT,KAAK,SAAS,KACxC,OAAS,GAAI,EAAG,EAAI,QAAQ,OAAQ,KAClC,GAAM,OAAQ,QAAQ,GACtB,UAAU,gBAAgB,IAAM,CAC9B,UAAU,OAAO,GAAI,UAAU,OAAO,GACrC,WAAU,OAAO,GAAK,UAAU,gBAAgB,IAAI,IAAM,KAlCrE,mBA0CE,YAAY,oBAAqB,aAAc,UAAW,SAExD,KAAK,YAAc,GACnB,KAAK,wBAA0B,EAC/B,KAAK,oBAAsB,oBAC3B,KAAK,aAAe,aACpB,KAAK,UAAY,UACjB,KAAK,UAAY,QAAO,KAAK,KAAK,UAClC,KAAK,WAAa,QAAO,KAAK,KAAK,UACnC,KAAK,SAAW,QAAO,KAAK,KAAK,UACjC,KAAK,YAAc,IACnB,KAAK,QAAU,EACf,KAAK,cAAgB,EAGvB,mBAAmB,UAAW,IAAK,MAAO,gBAExC,GAAM,SAAU,AAAS,oBAAW,CAAE,WAAY,IAAI,WAAY,SAAU,IAAI,WAC1E,YAAc,CAAC,QAAQ,GAAK,KAAK,UAAW,QAAQ,GAAK,KAAK,YAC9D,aAAe,UAAU,IAAI,AAAC,OAAW,CAC7C,YAAY,GAAM,OAAM,GAAK,KAAK,UAAY,GAC9C,YAAY,GAAM,OAAM,GAAK,KAAK,WAAa,GAAI,MAAM,KAErD,qBAAwB,QAAU,EAAK,AAAK,yBAAoB,MAAO,CAAC,EAAG,IAAW,qBACtF,cAAiB,QAAU,EAAK,aAAa,IAAI,AAAC,OAAW,CAAC,GAAG,AAAK,iBAAY,MAAO,sBAAuB,MAAM,KAAQ,aAC9H,sBAAyB,QAAU,EAAK,AAAK,2BAAsB,gBAAuB,qBAE1F,UAAY,CAAC,GAAG,AAAS,sBAAa,CAAE,WAAY,IAAI,WAAY,SAAU,IAAI,WAAa,GACrG,MAAO,eAAc,IAAI,AAAC,OAAW,CACnC,MAAM,GAAK,AAAK,SAAI,UAAW,sBAAsB,IACrD,MAAM,GAAK,AAAK,SAAI,UAAW,sBAAsB,IACrD,MAAM,KAIV,iCAAiC,WAC/B,GAAM,UAAW,UAAU,gBAAgB,IAAI,GACzC,UAAY,UAAU,iBAAiB,IAAI,GACjD,MAAO,UAAW,UAIpB,UAAU,UAAW,MAAM,oBAAqB,oBAAqB,KAAO,IAE1E,GAAM,KAAM,AAAS,qBAAY,AAAS,oBAAW,KAAK,8BAA8B,CAAC,UAAU,qBAAsB,UAAU,uBAAwB,KAAK,cAE1J,QAAU,AAAS,oBAAW,KAChC,KAAO,AAAG,UAAM,cAAc,MAAM,CAAC,CACvC,IAAI,WAAW,GAAK,KAAK,WACzB,IAAI,WAAW,GAAK,KAAK,UAAW,IAAI,SAAS,GAAK,KAAK,WAC3D,IAAI,SAAS,GAAK,KAAK,YACrB,CAAC,GAAI,CAAC,KAAK,SAAU,KAAK,WAC9B,MAAI,OACF,MAAO,AAAG,UAAM,cAAc,OAEzB,CAAE,IAAK,QAAS,MAIzB,aAAa,QAAS,OAAQ,WAAY,KAAO,IAC/C,GAAM,cAAe,GACrB,OAAS,GAAI,EAAG,EAAI,qBAAsB,KACxC,GAAM,GAAI,QAAQ,EAAI,GAChB,EAAI,QAAQ,EAAI,EAAI,GACpB,EAAI,QAAQ,EAAI,EAAI,GAC1B,aAAa,KAAK,CACf,MACI,EAAK,EAAI,KAAK,SACd,EAAI,KAAK,UAAa,WAAW,GAAK,OAAO,WAAW,GAC5D,EAAI,KAAK,SAAY,WAAW,GAAK,OAAO,WAAW,GAAI,IAGhE,MAAO,CAAE,UAAW,aAAc,KAAM,aAAa,MAAM,kBAI7D,sBAAsB,UAAW,WAAY,WAC3C,GAAM,cAAe,UAAU,AAAO,wBAAiB,GAAG,sBAAsB,0BAA0B,GACpG,aAAe,UAAU,AAAO,wBAAiB,GAAG,sBAAsB,0BAA0B,GACpG,SAAY,cAAe,cAAgB,EAEjD,MAAO,YAAW,IAAI,CAAC,MAAO,KAC5B,GAAI,GAAI,SACR,MAAI,KAAM,EACR,EAAI,aACK,IAAM,GACf,GAAI,cAEC,CAAC,MAAM,GAAI,MAAM,GAAI,UAI1B,SAAQ,MAAO,SACnB,GAAI,aAAc,GAEd,SAQJ,GAPK,MAAK,UAAY,GAAO,KAAK,QAAU,QAAO,KAAK,SAAS,YAAe,CAAC,QAAO,KAAK,KAAK,SAAW,CAAC,QAAO,iBACnH,UAAW,KAAM,MAAK,oBAAoB,iBAAiB,OAC3D,KAAK,QAAU,GAEb,QAAO,gBAAgB,KAAK,UAG5B,UAAY,SAAS,OAAU,SAAS,MAAM,OAAS,GAAO,EAAC,QAAO,KAAK,KAAK,SAAY,SAAS,MAAM,SAAW,KAAK,eAAmB,KAAK,gBAAkB,QAAO,KAAK,SAAS,WAC5L,KAAK,YAAc,GACnB,KAAK,cAAgB,EACrB,OAAW,YAAY,UAAS,MAC9B,KAAK,YAAY,KAAK,CAAE,WAAY,SAAS,IAAI,WAAW,WAAY,SAAU,SAAS,IAAI,SAAS,WAAY,UAAW,SAAS,UAAW,WAAY,SAAS,aAE1K,AAAI,KAAK,YAAY,OAAS,GAAG,aAAc,IAGjD,GAAI,aACF,GAAI,CAAC,UAAY,CAAC,SAAS,OAAU,SAAS,MAAM,SAAW,EAC7D,YAAK,YAAc,GACnB,KAAK,cAAgB,EACd,KAET,OAAS,GAAI,EAAG,EAAI,KAAK,YAAY,OAAQ,KAE3C,GAAM,WAAY,AAAS,6BAAoB,CAAE,WAAY,KAAK,YAAY,GAAG,WAAY,SAAU,KAAK,YAAY,GAAG,UAAY,SAAS,aAE1I,YAAc,AAAS,oBAAW,WAElC,cAAgB,AAAS,qBAAY,aACrC,UAAY,KAAK,YAAY,GAAG,UAAU,YAC1C,WAAa,KAAK,YAAY,GAAG,WACvC,KAAK,YAAY,GAAK,IAAK,cAAe,WAAY,WAExD,KAAK,wBAA0B,EAEjC,AAAI,UAAY,SAAS,OACvB,SAAS,MAAM,QAAQ,AAAC,aACtB,WAAW,IAAI,WAAW,UAC1B,WAAW,IAAI,SAAS,UACxB,WAAW,UAAU,YAKzB,GAAI,SAAU,AAAG,SAAK,IAAM,KAAK,YAAY,IAAI,CAAC,IAAK,KAErD,GAAI,OACA,MAAQ,EACR,eACJ,GAAI,QAAO,KAAK,SAAS,UACvB,GAAM,CAAC,aAAc,iBAAoB,IAAI,UAAU,QAAU,gBAAmB,wCAA0C,6CAC9H,MAAQ,AAAK,qBAAgB,IAAI,UAAU,cAAe,IAAI,UAAU,kBAExE,GAAM,YAAa,AAAS,sBAAa,CAAE,WAAY,IAAI,WAAY,SAAU,IAAI,WAC/E,qBAAuB,CAAC,WAAW,GAAK,MAAM,MAAM,GAAI,WAAW,GAAK,MAAM,MAAM,IACpF,aAAe,AAAG,UAAM,iBAAiB,MAAO,MAAO,EAAG,sBAChE,eAAiB,AAAK,yBAAoB,CAAC,MAAO,YAElD,MAAO,AAAS,kCAAyB,CAAE,WAAY,IAAI,WAAY,SAAU,IAAI,UAAY,aAAc,CAAC,KAAK,WAAY,KAAK,YAAY,IAAI,UAEtJ,eAAsB,qBACtB,GAAM,QAAS,MAAM,QAErB,MAAO,AAAS,kCAAyB,CAAE,WAAY,IAAI,WAAY,SAAU,IAAI,UAAY,OAAQ,CAAC,KAAK,WAAY,KAAK,YAAY,IAAI,KAIlJ,GAAI,CAAC,QAAO,KAAK,KAAK,QAQpB,MAPmB,CACjB,OAAQ,KACR,IACA,eAAgB,KAChB,WAAY,IAAI,WAChB,MAAO,OAKX,GAAM,CAAC,CAAE,WAAY,eAAiB,KAAK,aAAa,QAAQ,OAC1D,cAAgB,WAAW,WAAW,GAC5C,GAAI,cAAgB,QAAO,KAAK,SAAS,cAAe,MAAO,MAE/D,GAAI,WAAY,AADO,AAAG,YAAQ,cAAe,CAAC,GAAI,IACvB,YAE/B,GAAI,QAAO,KAAK,KAAK,SACnB,GAAM,CAAE,IAAK,WAAY,QAAS,eAAgB,KAAM,aAAgB,KAAK,UAAU,UAAW,MAAM,gBAAgB,GAAI,gBAAgB,GAAI,IAC1I,CAAE,IAAK,YAAa,QAAS,gBAAiB,KAAM,cAAiB,KAAK,UAAU,UAAW,MAAM,iBAAiB,GAAI,iBAAiB,IAE3I,mBAAqB,AADJ,KAAK,UAAU,QAAQ,AAAG,WAAO,CAAC,YAAa,gBAC5B,WACpC,YAAc,mBAAmB,MAAM,EAAG,qBAAuB,GACjE,CAAE,UAAW,iBAAkB,KAAM,mBAAsB,KAAK,aAAa,YAAa,WAAY,eAAgB,IACtH,aAAe,mBAAmB,MAAM,qBAAuB,GAC/D,CAAE,UAAW,kBAAmB,KAAM,oBAAuB,KAAK,aAAa,aAAc,YAAa,iBAC1G,8BAAgC,KAAK,iCAAiC,WAC5E,AAAI,KAAK,IAAI,+BAAiC,GAC5C,uBAAsB,UAAW,iBAAkB,QACnD,sBAAsB,UAAW,kBAAmB,UAE/C,AAAI,8BAAgC,EACzC,sBAAsB,UAAW,iBAAkB,OAAQ,CAAC,YAAa,cAEzE,sBAAsB,UAAW,kBAAmB,QAAS,CAAC,YAAa,cAE7E,GAAM,wBAAyB,KAAK,sBAAsB,UAAW,kBAAmB,QAClF,wBAA0B,KAAK,sBAAsB,UAAW,mBAAoB,SAC1F,UAAY,UAAU,OAAO,wBAAwB,OAAO,yBAG9D,GAAM,uBAAwB,KAAK,mBAAmB,UAAW,IAAK,MAAO,gBAEvE,aAAe,AAAS,oBAAW,KAAK,8BAA8B,wBAEtE,uBAAyB,AAAS,qBAAY,cAC9C,kBAAoB,AAAG,aAAS,uBAChC,WAAa,CACjB,OAAQ,kBACR,IAAK,aACL,eAAgB,cAChB,WAAY,IAAI,WAChB,MAAO,OAET,MAAI,SAAO,KAAK,KAAK,eAAe,YAAW,UAAY,WAC3D,KAAK,YAAY,GAAK,IAAK,uBAAwB,UAAW,kBAAkB,YAAa,WAAY,IAAI,WAAY,eAAgB,eAElI,cAET,eAAU,QAAQ,OAAO,AAAC,GAAM,IAAM,MACtC,KAAK,cAAgB,QAAQ,OACtB,QAGT,8BAA8B,WAC5B,GAAM,IAAK,UAAU,IAAI,AAAC,GAAM,EAAE,IAC5B,GAAK,UAAU,IAAI,AAAC,GAAM,EAAE,IAC5B,WAAa,CAAC,KAAK,IAAI,GAAG,IAAK,KAAK,IAAI,GAAG,KAC3C,SAAW,CAAC,KAAK,IAAI,GAAG,IAAK,KAAK,IAAI,GAAG,KAC/C,MAAO,CAAE,WAAY,SAAU,aAGnC,SAAQ,SAAW,WCrRnB,2CACA,QAAoB,+BACpB,UAA2B,gCAC3B,aAA8B,mCAC9B,OAAwB,6BAJxB,wBAOE,YAAY,UAAW,eAAgB,UAAW,SAEhD,KAAK,aAAe,GAAiB,uBAAS,UAAW,eAAgB,UAAW,SACpF,KAAK,OAAS,aAGV,eAAc,MAAO,SACzB,GAAM,aAAc,KAAM,MAAK,aAAa,QAAQ,MAAO,SACrD,QAAU,GAChB,OAAW,cAAe,cAAe,IACvC,GAAI,WAAW,mBAAoB,SACnC,GAAM,MAAO,WAAW,OAAS,WAAW,OAAO,YAAc,KAC3D,QAAU,WAAW,UACrB,YAAc,GACpB,GAAI,MAAQ,KAAK,OAAS,EACxB,OAAW,OAAO,QAAO,KAAY,yBACnC,YAAY,KAAO,AAAO,wBAAiB,KAAK,IAAI,AAAC,OAAU,KAAK,QAGxE,GAAM,QAAU,QAAO,KAAK,KAAK,eAAiB,WAAW,IAAO,CAAE,QAAS,WAAW,IAAI,WAAY,YAAa,WAAW,IAAI,UAAa,KAC7I,IAAM,WAAW,IAAM,CAC3B,KAAK,IAAI,EAAG,WAAW,IAAI,WAAW,IACtC,KAAK,IAAI,EAAG,WAAW,IAAI,WAAW,IACtC,KAAK,IAAI,MAAM,MAAM,GAAI,WAAW,IAAI,SAAS,IAAM,WAAW,IAAI,WAAW,GACjF,KAAK,IAAI,MAAM,MAAM,GAAI,WAAW,IAAI,SAAS,IAAM,WAAW,IAAI,WAAW,IAC/E,EACJ,QAAQ,KAAK,CACX,WAAY,WAAW,YAAc,EACrC,IACA,KACA,OACA,QACA,YACA,MAAO,WAAW,MAAQ,AAAG,UAAM,WAAW,OAAS,OAErD,WAAW,QAAQ,WAAW,OAAO,UACrC,WAAW,OAAO,WAAW,MAAM,UAEzC,MAAO,WAIP,WAAa,CAAC,KAAM,KAAM,MAC9B,qBAAoB,SAClB,WAAa,KAAM,SAAQ,IAAI,CAE5B,CAAC,WAAW,IAAM,QAAO,KAAK,QAAW,AAAU,eAAK,SAAU,KAClE,CAAC,WAAW,IAAM,QAAO,KAAK,KAAK,QAAW,AAAG,mBAAe,QAAO,KAAK,KAAK,UAAW,CAAE,UAAW,QAAO,KAAK,KAAK,UAAU,SAAS,eAAkB,KAC/J,CAAC,WAAW,IAAM,QAAO,KAAK,KAAK,QAAW,AAAG,mBAAe,QAAO,KAAK,KAAK,UAAW,CAAE,UAAW,QAAO,KAAK,KAAK,UAAU,SAAS,eAAkB,OAElK,GAAM,UAAW,GAAI,mBAAkB,WAAW,GAAI,WAAW,GAAI,WAAW,GAAI,SACpF,MAAI,SAAO,KAAK,KAAK,SAAS,IAAI,eAAe,QAAO,KAAK,KAAK,UAAU,MAAM,YAAY,MAC1F,QAAO,KAAK,KAAK,SAAS,IAAI,eAAe,QAAO,KAAK,KAAK,UAAU,MAAM,YAAY,MACvF,SAGT,SAAQ,KAAO,MACf,SAAQ,kBAAoB,kBAC5B,SAAQ,cAAuB,gBCjE/B,0CAEA,GAAM,aAAc,GAEpB,kBAAiB,KAAM,OACrB,GAAI,CAAC,OAAQ,CAAC,MAAK,QAAS,OAC5B,GAAM,YAAa,EACb,KAAO,MAAK,QACf,OAAO,AAAC,GAAM,EAAE,aAAe,GAC/B,OAAO,CAAC,EAAG,IAAM,GAAK,EAAE,aAAc,GACnC,QAAU,MAAK,QAClB,IAAI,CAAC,EAAG,IAAQ,GAAE,GAAK,EAAU,IACjC,OAAO,AAAC,GAAM,EAAE,aAAe,GAC/B,KAAK,CAAC,EAAG,IAAM,EAAE,aAAe,EAAE,cAC/B,QAAU,MAAK,QAClB,IAAI,CAAC,EAAG,IAAQ,GAAE,GAAK,EAAU,IACjC,OAAO,AAAC,GAAM,EAAE,mBAAqB,GACrC,KAAK,CAAC,EAAG,IAAM,EAAE,mBAAqB,EAAE,oBAC3C,AAAI,QAAQ,OAAS,YAAY,SAAQ,OAAS,YAC9C,QAAQ,OAAS,YAAY,SAAQ,OAAS,YAClD,GAAM,KAAM,CAAE,SAAU,MAAK,SAAU,WAAY,MAAK,WAAY,UAAW,MAAK,UAAW,aAAc,MAAK,QAAQ,OAAQ,cAAe,KAAM,iBAAkB,QAAS,iBAAkB,SACpM,YAAY,MAAQ,IACpB,IAAI,iBAAkB,KAAM,KAG9B,SAAQ,IAAM,WCzBd,sCACA,QAAoB,+BACpB,SAAyB,8BAEnB,OAAS,GACX,KAAO,CAAE,IAAK,GACd,QAAU,OAAO,iBAErB,qBAAoB,SAClB,MAAK,QAAO,KACV,QAAO,IAAM,KAAM,AAAG,oBAAe,QAAO,KAAK,IAAI,WACrD,IAAI,eAAe,QAAO,KAAK,IAAI,UAAU,MAAM,YAAY,OAE1D,OAAO,IAGhB,wBAAuB,OAAO,SAC5B,MAAK,QAAO,IACP,QAAU,QAAO,KAAK,IAAI,YAAe,QAAO,gBAAkB,KAAK,KAAQ,KAAK,IAAM,EAC7F,WACO,MAET,CAAI,QAAO,eAAgB,QAAU,EAChC,QAAU,OAAO,iBACf,GAAI,SAAQ,KAAO,WAWxB,GAAM,QAAS,AAAG,UAAM,eAAe,OAAO,CAAC,QAAO,KAAK,IAAI,UAAW,QAAO,KAAK,IAAI,WAAY,IAChG,QAAU,AAAG,QAAI,OAAQ,CAAC,MAChC,AAAG,YAAQ,QAEX,GAAI,MACE,IAAM,GAEZ,GAAI,CAAC,QAAO,QACV,AAAI,QAAO,KAAK,IAAI,SAAS,MAAO,KAAM,QAAO,IAAI,QAAQ,eAE7D,GAAM,YAAa,QAAO,KAAK,IAAI,QAAU,KAAM,AAAG,aAAQ,IAAM,OAAO,IAAI,QAAQ,UAAY,GACnG,KAAO,WAAW,OAAO,QACzB,WAAW,OAAO,UAElB,AAAQ,aAAI,MAAO,YAIrB,GAFA,QAAQ,UAEJ,MACF,GAAM,OAAO,KAAK,WAClB,IAAI,IAAM,KAAK,MAAM,GAAK,MAAK,IAAM,GAEvC,KAAK,UAEL,KAAO,IACP,QAAQ,QA3Cc,KA+C1B,SAAQ,QAAU,SAClB,SAAQ,KAAO,QCjEf,yCACA,QAAoB,+BACpB,SAAyB,8BAEnB,OAAS,GACX,KAAO,CAAE,OAAQ,IACjB,QAAU,OAAO,iBACjB,YAAc,GAGZ,IAAM,CAAC,MAAQ,KAAQ,MAE7B,qBAAoB,SAClB,MAAK,QAAO,QACV,QAAO,OAAS,KAAM,AAAG,oBAAe,QAAO,KAAK,OAAO,WAC3D,YAAc,OAAO,OAAO,OAAO,GAAG,MAAM,KAAO,EACnD,IAAI,eAAe,QAAO,KAAK,OAAO,UAAU,MAAM,YAAY,OAE7D,OAAO,OAGhB,wBAAuB,OAAO,SAC5B,MAAK,QAAO,OACP,QAAU,QAAO,KAAK,OAAO,YAAe,QAAO,gBAAkB,KAAK,SAAW,GACxF,WACO,MAET,CAAI,QAAO,eAAgB,QAAU,EAChC,QAAU,OAAO,iBACf,GAAI,SAAQ,KAAO,WACxB,GAAM,QAAS,AAAG,UAAM,eAAe,OAAO,CAAC,QAAO,KAAK,OAAO,UAAW,QAAO,KAAK,OAAO,WAAY,IACxG,QACJ,AAAI,YACF,QAAU,AAAG,SAAK,KAChB,GAAM,CAAC,IAAK,MAAO,MAAQ,AAAG,UAAM,OAAQ,EAAG,GACzC,QAAU,AAAG,QAAI,IAAK,IAAI,IAC1B,UAAY,AAAG,QAAI,MAAO,IAAI,IAC9B,SAAW,AAAG,QAAI,KAAM,IAAI,IAElC,MAAO,AADW,AAAG,UAAK,CAAC,QAAS,UAAW,WAC9B,IAAI,IAAK,IAAI,KAGhC,QAAU,AAAG,QAAI,OAAQ,CAAC,MAE5B,AAAG,YAAQ,QAEX,GAAI,SACE,IAAM,GAEZ,GAAI,CAAC,QAAO,QACV,AAAI,QAAO,KAAK,OAAO,SAAS,SAAU,KAAM,QAAO,OAAO,QAAQ,eAEtE,GAAM,eAAgB,QAAO,KAAK,OAAO,QAAU,KAAM,AAAG,aAAQ,IAAM,OAAO,OAAO,QAAQ,UAAY,GAC5G,QAAU,cAAc,OAAO,QAC/B,cAAc,OAAO,UAErB,AAAQ,aAAI,SAAU,eAIxB,GAFA,QAAQ,UAEJ,SACF,GAAM,OAAO,QAAQ,WACrB,GAAI,aAEF,GAAM,YAAa,KAAK,MAAM,IAAM,KAAK,IAAI,MAAK,GAAK,MAAK,KAAO,IACnE,AAAI,WAAa,QAAO,KAAK,OAAO,eAClC,KAAI,OAAS,MAAK,GAAK,MAAK,GAAK,SAAW,OAC5C,IAAI,WAAa,iBAInB,GAAM,YAAa,KAAK,MAAM,IAAM,KAAK,IAAK,MAAK,GAAK,KAAS,IACjE,AAAI,WAAa,QAAO,KAAK,OAAO,eAClC,KAAI,OAAS,MAAK,IAAM,GAAM,SAAW,OACzC,IAAI,WAAa,KAAK,IAAI,IAAM,cAItC,QAAQ,UAER,KAAO,IACP,QAAQ,QA3DiB,KA+D7B,SAAQ,QAAU,SAClB,SAAQ,KAAO,QCtFf,0CACA,QAAoB,+BACpB,SAAyB,8BAEnB,YAAc,CAAC,QAAS,UAAW,OAAQ,QAAS,MAAO,WAAY,WACvE,OAAS,GACX,KAAO,GACP,QAAU,OAAO,iBAGf,IAAM,CAAC,MAAQ,KAAQ,MACvB,MAAQ,EAEd,qBAAoB,SAClB,MAAK,QAAO,SACV,QAAO,QAAU,KAAM,AAAG,oBAAe,QAAO,KAAK,QAAQ,WAC7D,IAAI,eAAe,QAAO,KAAK,QAAQ,UAAU,MAAM,YAAY,OAE9D,OAAO,QAGhB,wBAAuB,OAAO,SAC5B,MAAK,QAAO,QACP,QAAU,QAAO,KAAK,QAAQ,YAAe,QAAO,gBAAmB,KAAK,OAAS,EACxF,WACO,MAET,CAAI,QAAO,eAAgB,QAAU,EAChC,QAAU,OAAO,iBACf,GAAI,SAAQ,KAAO,WAWxB,GAAM,QAAS,AAAG,UAAM,eAAe,OAAO,CAAC,QAAO,KAAK,QAAQ,UAAW,QAAO,KAAK,QAAQ,WAAY,IACxG,CAAC,IAAK,MAAO,MAAQ,AAAG,UAAM,OAAQ,EAAG,GAC/C,OAAO,UAEP,GAAM,SAAU,AAAG,QAAI,IAAK,IAAI,IAC1B,UAAY,AAAG,QAAI,MAAO,IAAI,IAC9B,SAAW,AAAG,QAAI,KAAM,IAAI,IAClC,IAAI,UACJ,MAAM,UACN,KAAK,UACL,GAAM,WAAY,AAAG,SAAK,CAAC,QAAS,UAAW,WAC/C,QAAQ,UACR,UAAU,UACV,SAAS,UACT,GAAM,WAAY,AAAG,SAAK,IAAM,UAAU,IAAI,IAAK,IAAI,IACvD,UAAU,UACV,GAAM,KAAM,GACZ,GAAI,QAAO,KAAK,QAAQ,SACtB,GAAI,OACJ,GAAK,QAAO,SAKV,GAAM,aAAc,KAAM,AAAG,aAAQ,IAAM,OAAO,QAAQ,QAAQ,YAClE,MAAO,YAAY,OAAO,WAC1B,YAAY,OAAO,UAEnB,AAAQ,aAAI,UAAW,kBARvB,GAAM,UAAW,KAAM,QAAO,QAAQ,QAAQ,WAC9C,MAAO,SAAS,WAChB,AAAG,YAAQ,UAQb,OAAS,GAAI,EAAG,EAAI,MAAK,OAAQ,IAC/B,AAAI,MAAQ,MAAK,GAAK,QAAO,KAAK,QAAQ,eAAe,IAAI,KAAK,CAAE,MAAO,KAAK,IAAI,IAAM,KAAK,MAAM,IAAM,MAAQ,MAAK,IAAM,KAAM,QAAS,YAAY,KAE3J,IAAI,KAAK,CAAC,EAAG,IAAM,EAAE,MAAQ,EAAE,OAEjC,UAAU,UACV,KAAO,IACP,QAAQ,QAvDkB,KA2D9B,SAAQ,QAAU,SAClB,SAAQ,KAAO,QClFf,4CACA,QAAoB,+BACpB,SAAyB,8BAKnB,OAAS,GAEf,qBAAoB,SAClB,MAAK,QAAO,WACV,QAAO,UAAY,KAAM,AAAG,oBAAe,QAAO,KAAK,UAAU,WACjE,IAAI,eAAe,QAAO,KAAK,UAAU,UAAU,MAAM,YAAY,OAEhE,OAAO,UAGhB,sBAAqB,WAAY,YAC/B,GAAI,oCAAY,UAAW,oCAAY,QAAQ,MAAO,GAGtD,GAAM,OAAQ,EACR,SAAW,GAAS,WAAW,IAAI,CAAC,IAAK,IAAO,IAAM,WAAW,IAAK,OAAO,CAAC,KAAM,OAAS,KAAQ,MAAQ,MAAQ,IAAO,GAAI,OACtI,MAAQ,MAAK,MAAM,IAAQ,GAAI,WAAa,IAG9C,wBAAuB,OAAO,SAC5B,MAAK,QAAO,UACL,GAAI,SAAQ,KAAO,WACxB,GAAM,QAAS,AAAG,UAAM,eAAe,OAAO,CAAC,QAAO,KAAK,UAAU,UAAW,QAAO,KAAK,UAAU,WAAY,IAE9G,MAAO,GACX,GAAI,QAAO,KAAK,UAAU,QACxB,GAAK,QAAO,SAKV,GAAM,aAAc,KAAM,AAAG,aAAQ,IAAM,OAAO,UAAU,QAAQ,CAAE,WAAY,UAClF,MAAO,CAAC,GAAG,YAAY,OAAO,YAC9B,YAAY,OAAO,UAEnB,AAAQ,aAAI,UAAW,kBARvB,GAAM,YAAa,KAAM,QAAO,UAAU,QAAQ,CAAE,WAAY,SAChE,MAAO,CAAC,GAAG,WAAW,YACtB,AAAG,YAAQ,YASf,OAAO,UAEP,QAAQ,SApBoB,KAwBhC,SAAQ,QAAU,SAClB,SAAQ,YAAc,aACtB,SAAQ,KAAO,QCrDf,oDAAoB,+BAEd,aAAe,CAAC,QAAS,OAAS,SAExC,oCAAoC,SAClC,GAAM,CAAC,QAAS,QAAS,gBAAiB,iBAAmB,QAC7D,MAAO,CAAE,QAAS,QAAS,gBAAiB,iBAG9C,iCAAiC,SAC/B,GAAM,CAAC,gBAAiB,gBAAiB,QAAS,SAAW,QAC7D,MAAO,CAAE,QAAS,QAAS,gBAAiB,iBAX9C,oBAeE,YAAY,OACV,KAAK,MAAQ,MAGf,QAAQ,MAAO,SACb,MAAO,AAAG,UAAK,KAEb,GAAM,SAAU,AADC,SAAO,KAAK,YAAc,SAAY,MAAM,UAAU,IAAI,cAAgB,MAAM,UAAU,IAAI,OAAO,IAAI,IAClG,WAAW,GAE7B,UAAY,AADF,KAAK,MAAM,QAAQ,SACT,IAAI,AAAC,GAAM,EAAE,QAAQ,CAAC,KAC1C,aAAgB,QAAO,KAAK,YAAc,SAAY,wBAAwB,WAAa,2BAA2B,WAC5H,MAAO,CACL,cAAe,aAAa,QAAQ,UACpC,QAAS,aAAa,QACtB,gBAAiB,aAAa,gBAC9B,gBAAiB,aAAa,mBAKpC,UACE,KAAK,MAAM,YAGf,SAAQ,UAAY,YCvCpB,2CACA,cAAc,GACZ,MAAO,MAAK,MAAM,EAAI,GAFxB,kBAKE,YAAY,QAAS,iBACnB,KAAK,cAAgB,GAAI,OAAM,SAC/B,KAAK,iBAAmB,GACxB,KAAK,gBAAkB,gBAGzB,QAAQ,GACN,KAAK,cAAc,EAAE,KAAK,kBAAoB,EAC9C,KAAK,KAAK,KAAK,kBAGjB,UACE,GAAM,KAAM,KAAK,cAAc,GAC/B,YAAK,SAAS,EAAG,KAAK,oBACtB,KAAK,KAAK,GACV,KAAK,cAAc,KAAK,iBAAmB,GAAK,KACzC,IAGT,QACE,MAAO,MAAK,mBAAqB,GAGnC,OACE,MAAO,MAAK,iBAAmB,EAGjC,MACE,MAAO,MAAK,cAAc,MAAM,EAAG,KAAK,iBAAmB,GAG7D,MACE,MAAO,MAAK,cAAc,GAG5B,KAAK,GACH,KAAO,EAAI,GAAK,KAAK,KAAK,KAAK,GAAI,IACjC,KAAK,SAAS,EAAG,KAAK,IACtB,EAAI,KAAK,GAIb,KAAK,GACH,KAAO,EAAI,GAAK,KAAK,mBACnB,GAAI,GAAI,EAAI,EAEZ,GADI,EAAI,KAAK,kBAAoB,KAAK,KAAK,EAAG,EAAI,IAAI,IAClD,CAAC,KAAK,KAAK,EAAG,GAAI,MACtB,KAAK,SAAS,EAAG,GACjB,EAAI,GAIR,WAAW,GACT,MAAO,MAAK,gBAAgB,KAAK,cAAc,IAGjD,KAAK,EAAG,GACN,MAAO,MAAK,WAAW,GAAK,KAAK,WAAW,GAG9C,SAAS,EAAG,GACV,GAAM,GAAI,KAAK,cAAc,GAC7B,KAAK,cAAc,GAAK,KAAK,cAAc,GAC3C,KAAK,cAAc,GAAK,IAG5B,SAAQ,QAAU,UCvElB,0DAA0B,+BAE1B,qCAAqC,WAAY,MAAO,SAAU,SAAU,mBAAoB,QAC9F,GAAM,CAAC,OAAQ,OAAS,OAAO,MAC3B,aAAe,GACb,OAAS,KAAK,IAAI,SAAW,mBAAoB,GACjD,KAAO,KAAK,IAAI,SAAW,mBAAqB,EAAG,QACzD,OAAS,UAAW,OAAQ,SAAW,KAAM,EAAE,UAC7C,GAAM,QAAS,KAAK,IAAI,SAAW,mBAAoB,GACjD,KAAO,KAAK,IAAI,SAAW,mBAAqB,EAAG,OACzD,OAAS,UAAW,OAAQ,SAAW,KAAM,EAAE,SAC7C,GAAI,OAAO,IAAI,SAAU,SAAU,YAAc,OAC/C,aAAe,GACf,MAGJ,GAAI,CAAC,aAAc,MAErB,MAAO,cAGT,iCAAiC,eAAgB,mBAAoB,QACnE,GAAM,CAAC,OAAQ,MAAO,cAAgB,OAAO,MACvC,MAAQ,GAAa,kBAAQ,OAAS,MAAQ,aAAc,CAAC,CAAE,SAAY,OACjF,OAAS,UAAW,EAAG,SAAW,OAAQ,EAAE,SAC1C,OAAS,UAAW,EAAG,SAAW,MAAO,EAAE,SACzC,OAAS,YAAa,EAAG,WAAa,aAAc,EAAE,YACpD,GAAM,OAAQ,OAAO,IAAI,SAAU,SAAU,YAE7C,AAAI,MAAQ,gBAER,4BAA4B,WAAY,MAAO,SAAU,SAAU,mBAAoB,SACzF,MAAM,QAAQ,CAAE,MAAO,KAAM,CAAE,SAAU,SAAU,GAAI,cAK/D,MAAO,OAET,SAAQ,wBAA0B,0BCvClC,qDAAQ,UAAY,CAClB,OAAQ,UAAW,WAAY,UAAW,WAAY,eACtD,gBAAiB,YAAa,aAAc,YAAa,aACzD,UAAW,WAAY,WAAY,YAAa,YAAa,cAG/D,SAAQ,cAAgB,SAAQ,UAAU,OAE1C,SAAQ,QAAU,SAAQ,UAAU,OAAO,CAAC,OAAQ,UAAW,IAC7D,QAAO,WAAa,EACb,QACN,IAEH,GAAM,oBAAqB,CACzB,CAAC,UAAW,gBAAiB,CAAC,YAAa,gBAC3C,CAAC,YAAa,aAAc,CAAC,UAAW,YACxC,CAAC,WAAY,aAAc,CAAC,WAAY,iBACxC,CAAC,aAAc,iBAAkB,CAAC,aAAc,cAChD,CAAC,WAAY,aAAc,CAAC,YAAa,cACzC,CAAC,eAAgB,iBAAkB,CAAC,UAAW,aAEjD,SAAQ,qBAAuB,mBAAmB,IAAI,CAAC,CAAC,WAAY,cAAiB,CAAC,SAAQ,QAAQ,YAAa,SAAQ,QAAQ,cAEnI,SAAQ,UAAY,CAClB,CAAC,OAAQ,WAAY,CAAC,UAAW,WAAY,CAAC,OAAQ,YACtD,CAAC,WAAY,YAAa,CAAC,OAAQ,gBACnC,CAAC,eAAgB,aAAc,CAAC,YAAa,aAC7C,CAAC,eAAgB,WAAY,CAAC,UAAW,YACzC,CAAC,WAAY,aAAc,CAAC,OAAQ,iBACpC,CAAC,gBAAiB,cAAe,CAAC,aAAc,cAChD,CAAC,gBAAiB,YAAa,CAAC,WAAY,aAC5C,CAAC,YAAa,eAGhB,SAAQ,aAAe,CACrB,YACA,aACA,wBACA,uBACA,uBACA,uBACA,uBACA,sBACA,sBACA,aACA,wBACA,YACA,cACA,aACA,wBACA,uBACA,uBACA,uBACA,uBACA,sBACA,sBACA,aACA,wBACA,eC1DF,kDAAqB,gCAErB,wBAAwB,EAAG,EAAG,SAAU,SACtC,MAAO,CACL,EAAG,QAAQ,IAAI,EAAG,EAAG,UACrB,EAAG,QAAQ,IAAI,EAAG,EAAG,SAAe,oBAGxC,SAAQ,eAAiB,eAEzB,wBAAwB,KAAM,aAAc,SAC1C,GAAM,CAAE,SAAU,SAAU,GAAI,UAAa,KACvC,CAAE,EAAG,GAAM,eAAe,SAAU,SAAU,SAAU,SAC9D,MAAO,CACL,EAAG,KAAK,SAAW,aAAe,EAClC,EAAG,KAAK,SAAW,aAAe,GAGtC,SAAQ,eAAiB,eAEzB,mBAAmB,QAAS,MAC1B,GAAM,QAAS,GAAI,OAAM,MACzB,OAAS,GAAI,EAAG,EAAI,KAAM,IACxB,OAAO,GAAK,QAEd,MAAO,QAET,SAAQ,UAAY,UAEpB,eAAe,EAAG,IAAK,KACrB,MAAI,GAAI,IAAY,IAChB,EAAI,IAAY,IACb,EAET,SAAQ,MAAQ,MAEhB,yBAAyB,GAAI,GAAI,GAAI,IACnC,GAAM,IAAK,GAAK,GACV,GAAK,GAAK,GAChB,MAAO,IAAK,GAAK,GAAK,GAExB,SAAQ,gBAAkB,gBAE1B,oBAAoB,EAAG,GACrB,MAAO,CAAE,EAAG,EAAE,EAAI,EAAE,EAAG,EAAG,EAAE,EAAI,EAAE,GAEpC,SAAQ,WAAa,WAErB,qBAAqB,EAAG,IAAK,KAC3B,MAAO,CAAE,EAAG,MAAM,EAAE,EAAG,IAAK,KAAM,EAAG,MAAM,EAAE,EAAG,IAAK,MAEvD,SAAQ,YAAc,cCnDtB,mDAAoB,+BACpB,IAAqB,gCAErB,6BAA6B,cAAe,eAC1C,GAAM,cAAe,cAAc,MAAM,GACnC,OAAS,GAAI,cAAa,cAChC,OAAS,UAAW,EAAG,SAAW,aAAc,YAC9C,GAAM,GAAI,cAAc,IAAI,SAAU,GAChC,EAAI,cAAc,IAAI,SAAU,GACtC,OAAO,UAAY,cAAc,IAAI,EAAG,EAAG,UAE7C,MAAO,QAET,SAAQ,oBAAsB,oBAE9B,wBAAwB,EAAG,EAAG,SAAU,eACtC,MAAO,CACL,EAAG,cAAc,IAAI,EAAG,EAAG,UAC3B,EAAG,cAAc,IAAI,EAAG,EAAG,SAAe,oBAI9C,0BAA0B,oBAAqB,eAC7C,GAAM,QAAS,GACf,OAAS,UAAW,EAAG,SAAe,kBAAe,YACnD,GAAM,UAAW,oBAAoB,IAAI,SAAU,GAAG,UAChD,SAAW,oBAAoB,IAAI,SAAU,GAAG,UAChD,CAAE,EAAG,GAAM,eAAe,SAAU,SAAU,SAAU,eAC9D,OAAO,KAAK,GACZ,OAAO,KAAK,GAEd,MAAO,AAAG,cAAS,OAAQ,CAAK,kBAAe,IAEjD,SAAQ,iBAAmB,iBAE3B,yBAAyB,oBAAqB,aAAc,eAC1D,MAAO,AAAG,UAAK,IAAM,oBAAoB,WAAW,IAAI,AAAG,WAAO,aAAc,UAAU,UAAU,IAAI,iBAAiB,oBAAqB,iBAEhJ,SAAQ,gBAAkB,gBAE1B,aAAa,EAAG,GACd,MAAO,AAAG,UAAK,KACb,GAAM,SAAU,EAAE,IAAI,AAAG,WAAO,EAAG,UACnC,MAAO,GAAE,IAAI,QAAQ,IAAI,AAAG,WAAO,EAAG,aAI1C,kBAAkB,QAChB,GAAM,CAAC,OAAQ,MAAO,OAAS,OAAO,MACtC,MAAO,AAAG,UAAK,KAEb,GAAM,QAAS,AADE,OAAO,QAAQ,CAAC,OAAS,MAAO,QACzB,OAAO,GACzB,QAAU,OAAO,IAAI,AAAG,WAAO,MAAO,UAAU,WAAW,GAC3D,QAAU,IAAI,OAAQ,OAAO,WAAW,GAC9C,MAAO,AAAG,YAAO,CAAC,QAAS,SAAU,KAGzC,SAAQ,SAAW,WCzDnB,2DAA2B,gCAC3B,QAAyB,8BACzB,SAA0B,+BAEpB,qBAAuB,AAAU,oBAAU,IAAI,CAAC,CAAC,eAAgB,iBAAoB,CAAC,AAAU,kBAAQ,gBAAiB,AAAU,kBAAQ,iBAC3I,mBAAqB,qBAAqB,IAAI,CAAC,CAAC,CAAE,gBAAkB,cACpE,mBAAqB,qBAAqB,IAAI,CAAC,CAAC,iBAAmB,eACzE,yBAAyB,OAAQ,MAAO,eACtC,GAAM,UAAW,cAAc,MAAM,GAAK,EAC1C,MAAO,CACL,EAAG,cAAc,IAAI,MAAM,EAAG,MAAM,EAAG,QACvC,EAAG,cAAc,IAAI,MAAM,EAAG,MAAM,EAAG,SAAW,SAGtD,kCAAkC,MAAO,aAAc,OAAQ,OAC7D,MAAO,CAEL,EAAG,AAAQ,cAAM,KAAK,MAAM,MAAM,EAAI,cAAe,EAAG,OAAS,GAEjE,EAAG,AAAQ,cAAM,KAAK,MAAM,MAAM,EAAI,cAAe,EAAG,MAAQ,IAIpE,kCAAkC,OAAQ,eAAgB,iBAAkB,aAAc,QAAS,aAAc,cAAe,iBAAmB,GACjJ,GAAM,CAAC,OAAQ,OAAS,aAAa,MAE/B,sBAAwB,yBAAyB,eAAe,SAAU,aAAc,OAAQ,OAChG,aAAe,gBAAgB,OAAQ,sBAAuB,eAGhE,eADmB,AAAQ,mBAAW,eAAe,SAAU,cAEnE,OAAS,GAAI,EAAG,EAAI,iBAAkB,KACpC,GAAM,uBAAwB,yBAAyB,eAAgB,aAAc,OAAQ,OAEvF,YAAc,AAAQ,uBAAe,sBAAsB,EAAG,sBAAsB,EAAG,iBAAkB,SAE/G,eAAiB,AAAQ,mBAAW,CAClC,EAAG,sBAAsB,EAAI,aAC7B,EAAG,sBAAsB,EAAI,cAC5B,CAAE,EAAG,YAAY,EAAG,EAAG,YAAY,IAExC,GAAM,uBAAwB,yBAAyB,eAAgB,aAAc,OAAQ,OACvF,MAAQ,aAAa,IAAI,sBAAsB,EAAG,sBAAsB,EAAG,kBACjF,MAAO,CAAE,SAAU,eAAgB,KAAM,AAAU,oBAAU,kBAAmB,OAGlF,oBAAoB,KAAM,OAAQ,QAAS,aAAc,iBAAkB,kBACzE,GAAM,UAAW,OAAO,MAAM,GACxB,SAAW,mBAAmB,OAC9B,kBAAoB,GAAI,OAAM,UAE9B,CAAE,KAAM,SAAU,MAAO,WAAc,KAEvC,UAAY,AAAQ,uBAAe,SAAU,aAAc,SACjE,kBAAkB,SAAS,IAAM,CAC/B,MAAO,UACP,KAAM,AAAU,oBAAU,SAAS,IACnC,SAAU,WAGZ,OAAS,MAAO,SAAW,EAAG,MAAQ,EAAG,EAAE,MACzC,GAAM,kBAAmB,mBAAmB,MACtC,iBAAmB,mBAAmB,MAC5C,AAAI,kBAAkB,mBAAqB,CAAC,kBAAkB,mBAC5D,mBAAkB,kBAAoB,yBAAyB,KAAM,kBAAkB,kBAAmB,iBAAkB,OAAQ,QAAS,aAAc,mBAI/J,OAAS,MAAO,EAAG,KAAO,SAAU,EAAE,MACpC,GAAM,kBAAmB,mBAAmB,MACtC,iBAAmB,mBAAmB,MAC5C,AAAI,kBAAkB,mBAAqB,CAAC,kBAAkB,mBAC5D,mBAAkB,kBAAoB,yBAAyB,KAAM,kBAAkB,kBAAmB,iBAAkB,OAAQ,QAAS,aAAc,mBAG/J,MAAO,mBAET,SAAQ,WAAa,WAErB,gCAAgC,cAAe,QAAS,SACtD,GAAI,YAAa,EAEX,cAAgB,AAAS,kBAAS,eAClC,iBAAmB,KAAM,SAAQ,IAAI,CAAC,cAAc,SAAU,QAAQ,SAAU,cAAc,WAC9F,aAAe,iBAAiB,GAChC,cAAgB,iBAAiB,GACjC,oBAAsB,iBAAiB,GAEvC,aAAe,AAAS,yBAAgB,oBAAqB,QAAO,KAAK,aAAc,eACvF,mBAAqB,KAAM,cAAa,SAGxC,kBAAoB,AADC,MAAM,KAAK,AAAS,6BAAoB,aAAc,sBACpC,IAAI,CAAC,MAAO,IACvD,aAAc,MACP,CACL,SAAU,CACR,EAAG,mBAAmB,IAAI,EAAG,GAC7B,EAAG,mBAAmB,IAAI,EAAG,IAE/B,KAAM,AAAU,oBAAU,GAC1B,SAGE,kBAAoB,kBAAkB,OAAO,AAAC,KAAQ,IAAI,MAAQ,QAAO,KAAK,gBACpF,qBAAc,UACd,aAAa,UACN,CAAE,UAAW,kBAAmB,MAAO,WAAa,kBAAkB,QAE/E,SAAQ,iBAAmB,mBC5G3B,gEAA4B,iCAC5B,WAA4B,iCAC5B,QAAyB,8BAEnB,oBAAsB,EAE5B,6CAA6C,MAAO,iBAAkB,CAAE,EAAG,GAAK,YAC9E,MAAO,OAAM,KAAK,CAAC,CAAE,cACnB,GAAM,uBAAwB,UAAU,YAAY,SAEpD,MAAO,AAAQ,yBAAgB,EAAG,EAAG,sBAAsB,EAAG,sBAAsB,IAAM,mBAI9F,0BAA0B,cAAe,iBAAkB,mBAKzD,MAAO,AAJ6B,mBAAkB,OAAO,CAAC,OAAQ,CAAE,SAAU,OAAS,aACpF,qCAAoC,cAAe,iBAAkB,SAAU,aAAa,SAAU,OACpG,QACN,GACkC,kBAAkB,OAGzD,6BAA6B,aAAc,cAAe,uBAAwB,uBAAwB,SACxG,GAAM,OAAQ,GAER,MAAQ,AAAW,mCAAwB,QAAO,KAAK,eAAgB,oBAAqB,cAC5F,iBAAmB,QAAO,KAAK,UAAY,EAEjD,KAAO,MAAM,OAAS,QAAO,KAAK,eAAiB,CAAC,MAAM,UAExD,GAAM,MAAO,MAAM,UAGb,gBAAkB,AAAQ,uBAAe,KAAK,KAAM,QAAO,KAAK,aAAc,eACpF,GAAI,oCAAoC,MAAO,iBAAkB,gBAAiB,KAAK,KAAK,IAAK,SAGjG,GAAM,WAAY,AAAW,sBAAW,KAAM,aAAc,cAAe,QAAO,KAAK,aAAc,uBAAwB,wBACvH,MAAQ,iBAAiB,MAAO,iBAAkB,WACxD,AAAI,MAAQ,QAAO,KAAK,gBAAgB,MAAM,KAAK,CAAE,UAAW,QAElE,MAAO,OAET,SAAQ,oBAAsB,sBC3C9B,gDAAqB,gCAErB,yCAAyC,EAAG,EAAG,eAC7C,MAAQ,GAAI,eAAiB,EAAI,cAGnC,8BAA8B,UAAW,eACvC,MAAO,AAAI,0BAAqB,OAAO,CAAC,OAAQ,CAAC,UAAW,cACtD,iCAAgC,UAAU,WAAW,MAAO,UAAU,YAAY,MAAO,gBAG7F,OAAO,KAAK,CAAC,UAAU,WAAY,UAAU,cACtC,QACN,IAEL,SAAQ,qBAAuB,qBAE/B,GAAM,CAAE,kBAAmB,mBAAsB,OACjD,wBAAwB,WACtB,MAAO,WAAU,OAAO,CAAC,CAAE,KAAM,KAAM,KAAM,MAAQ,CAAE,SAAU,CAAE,EAAG,MAAW,EAC/E,KAAM,KAAK,IAAI,KAAM,GACrB,KAAM,KAAK,IAAI,KAAM,GACrB,KAAM,KAAK,IAAI,KAAM,GACrB,KAAM,KAAK,IAAI,KAAM,KACnB,CACF,KAAM,kBACN,KAAM,kBACN,KAAM,kBACN,KAAM,oBAGV,SAAQ,eAAiB,eAEzB,8BAA8B,WAC5B,GAAM,CAAE,KAAM,KAAM,KAAM,MAAS,eAAe,WAClD,MAAO,CAAC,CAAE,EAAG,KAAM,EAAG,MAAQ,CAAE,EAAG,KAAM,EAAG,MAAQ,CAAE,EAAG,KAAM,EAAG,MAAQ,CAAE,EAAG,KAAM,EAAG,OAE1F,SAAQ,qBAAuB,qBAE/B,iCAAiC,SAC/B,MAAO,SAAQ,IAAI,QAAQ,IAAI,AAAC,QAAW,OAAO,WAEpD,SAAQ,kBAAoB,kBAE5B,mBAAmB,KAAM,OAAQ,QAC/B,MAAO,CACL,MAAO,KAAK,MACZ,UAAW,KAAK,UAAU,IAAI,CAAC,CAAE,MAAO,KAAM,YAAgB,EAC5D,MACA,KACA,SAAU,CAAE,EAAG,SAAS,EAAI,OAAQ,EAAG,SAAS,EAAI,YAI1D,SAAQ,UAAY,UAEpB,kBAAkB,OAAO,CAAC,QAAS,UACjC,GAAM,OAAQ,OAAM,QAAQ,GACtB,QAAU,MAAM,eAAe,CAAC,QAAS,UAC/C,aAAM,UACC,QAET,SAAQ,SAAW,SAEnB,2BAA2B,MAAO,CAAC,OAAQ,OAAQ,CAAC,sBAAuB,uBAEzE,MADoB,OAAM,IAAI,AAAC,MAAS,UAAU,KAAM,OAAS,sBAAuB,MAAQ,uBAGlG,SAAQ,kBAAoB,oBCpE5B,+CACA,QAAoB,+BACpB,UAA2B,gCAC3B,eAAgC,qCAChC,WAA4B,iCAC5B,KAAsB,4BAEtB,gCAAgC,MAAO,IAAK,SAC1C,MAAO,IAAI,SAAQ,KAAO,WACxB,GAAM,QAAS,MAAM,MAAM,GACrB,MAAQ,MAAM,MAAM,GAEpB,iBAAmB,KAAM,AAAK,wBAAkB,CAAC,IAAI,cAAe,IAAI,QAAS,IAAI,gBAAiB,IAAI,kBAC1G,aAAe,iBAAiB,GAChC,cAAgB,iBAAiB,GACjC,uBAAyB,iBAAiB,GAC1C,uBAAyB,iBAAiB,GAE1C,MAAQ,KAAM,AAAe,oCAAoB,aAAc,cAAe,uBAAwB,uBAAwB,SAE9H,OAAS,AAAK,uBAAkB,MAAO,CAAC,OAAQ,OAAQ,CAAC,QAAO,KAAK,UAAW,QAAO,KAAK,YAClG,QAAQ,UAIZ,8BAA8B,MAAO,IAAK,SACxC,MAAO,IAAI,SAAQ,KAAO,WACxB,GAAM,QAAS,MAAM,MAAM,GACrB,MAAQ,MAAM,MAAM,GAGpB,MAAQ,CADD,KAAM,AAAW,6BAAiB,IAAI,cAAe,IAAI,QAAS,UAGzE,OAAS,AAAK,uBAAkB,MAAO,CAAC,OAAQ,OAAQ,CAAC,QAAO,KAAK,UAAW,QAAO,KAAK,YAClG,QAAQ,UAlCZ,kBAuCE,YAAY,OACV,KAAK,UAAY,WAGb,eAAc,MAAO,SAEzB,GAAM,SAAU,AAAK,cAAS,MAAO,CAAC,QAAO,KAAK,UAAW,QAAO,KAAK,YACnE,IAAM,KAAK,UAAU,QAAQ,QAAS,SAEtC,MAAS,QAAO,KAAK,cAAgB,EAAK,KAAM,gBAAe,MAAO,IAAK,SAAU,KAAM,kBAAiB,MAAO,IAAK,SAE9H,WAAI,cAAc,UAClB,IAAI,QAAQ,UACZ,IAAI,gBAAgB,UACpB,IAAI,gBAAgB,UACpB,QAAQ,UAED,MAGT,UACE,KAAK,UAAU,YAGnB,SAAQ,QAAU,QAElB,qBAAoB,SAClB,GAAM,OAAQ,KAAM,AAAG,oBAAe,QAAO,KAAK,WAE5C,UAAY,GAAc,qBAAU,OAC1C,WAAI,eAAe,QAAO,KAAK,UAAU,MAAM,YAAY,MACpD,GAAI,SAAQ,WAErB,SAAQ,KAAO,QCxEf,2DAA8B,mCAC9B,UAA2B,gCAC3B,KAAsB,4BAGtB,SAAQ,KAAoB,kBAE5B,SAAQ,QAAuB,qBAE/B,SAAQ,aAAyB,uBACjC,SAAQ,QAAoB,kBAC5B,SAAQ,UAAsB,oBAC9B,SAAQ,UAAsB,oBAE9B,SAAQ,qBAA4B,0BAEpC,SAAQ,eAAsB,oBAE9B,SAAQ,qBAA4B,0BAEpC,SAAQ,kBAAyB,uBAEjC,SAAQ,UAAiB,iBCtBzB,uDAAoB,+BAApB,mBAIE,YAAY,MAAO,UAAW,kBAC5B,KAAK,MAAQ,MACb,KAAK,QAAU,iBAAiB,IAAI,AAAC,QAAW,CAAC,OAAO,SAAU,OAAO,WACzE,KAAK,cAAgB,AAAG,aAAS,KAAK,SACtC,KAAK,gBAAkB,AAAG,aAAS,CAAC,UAAW,YAC/C,KAAK,sBAAwB,AAAG,aAAS,CAAC,UAAY,EAAG,UAAY,IAGvE,eAAe,OACb,MAAO,AAAG,UAAK,KACb,GAAM,YAAa,AAAG,UAAM,MAAO,CAAC,EAAG,GAAI,CAAC,GAAI,IAC1C,SAAW,AAAG,UAAM,MAAO,CAAC,EAAG,GAAI,CAAC,GAAI,IACxC,gBAAkB,AAAG,QAAI,AAAG,QAAI,WAAY,KAAK,iBAAkB,KAAK,eACxE,aAAe,AAAG,QAAI,SAAU,KAAK,uBACrC,YAAc,AAAG,QAAI,AAAG,QAAI,gBAAiB,cAAe,KAAK,iBACjE,UAAY,AAAG,QAAI,AAAG,QAAI,gBAAiB,cAAe,KAAK,iBACrE,MAAO,AAAG,cAAS,CAAC,YAAa,WAAY,KAIjD,mBAAmB,iBAAkB,OACnC,MAAO,AAAG,UAAK,KACb,GAAM,WAAY,AAAG,QAAI,AAAG,QAAI,iBAAiB,QAAQ,CAAC,GAAI,EAAG,IAAK,KAAK,iBAAkB,KAAK,QAAQ,QAC1G,MAAO,AAAG,SAAI,UAAW,KAAK,wBAI5B,UAAS,MAAO,SACpB,GAAM,SAAU,KAAK,MAAM,QAAQ,OAC7B,YAAc,QAAQ,UAC5B,QAAQ,UACR,GAAM,SAAU,AAAG,SAAK,IAAM,AAAG,YAAQ,AAAG,UAAM,YAAa,CAAC,EAAG,GAAI,CAAC,GAAI,KAAK,WAC3E,OAAS,QAAQ,WACjB,SAAW,AAAG,UAAM,YAAa,CAAC,EAAG,GAAI,CAAC,GAAI,IAC9C,MAAQ,KAAK,eAAe,UAClC,SAAS,UACT,GAAM,WAAY,KAAM,AAAG,WAAM,uBAAuB,MAAO,OAAQ,QAAO,KAAK,SAAU,QAAO,KAAK,aAAc,QAAO,KAAK,gBAC7H,SAAW,UAAU,YAE3B,QAAQ,UACR,UAAU,UACV,GAAM,OAAQ,GACd,OAAW,SAAS,UAClB,GAAI,OAAO,QAAU,QAAO,KAAK,eAC/B,GAAM,aAAc,AAAG,UAAM,MAAO,CAAC,MAAO,GAAI,CAAC,EAAG,KAC9C,iBAAmB,AAAG,UAAM,YAAa,CAAC,MAAO,GAAI,CAAC,EAAG,KACzD,cAAgB,AAAG,SAAK,IAAM,KAAK,mBAAmB,iBAAkB,OAAO,QAAQ,CAAC,GAAI,KAClG,iBAAiB,UACjB,MAAM,KAAK,CAAE,IAAK,YAAa,cAAe,WAAY,OAAO,SAGrE,mBAAY,UACZ,MAAM,UACC,WAGH,oBAAmB,MAAO,SAC9B,GAAM,aAAc,MAAM,MAAM,GAC1B,WAAa,MAAM,MAAM,GACzB,OAAQ,AAAG,SAAK,IAAM,MAAM,eAAe,CAAC,QAAO,KAAK,UAAW,QAAO,KAAK,YAAY,IAAI,OAAO,IAAI,IAC1G,YAAc,KAAM,MAAK,SAAS,OAAO,SAC/C,OAAM,UACN,GAAM,OAAQ,GACd,GAAI,CAAC,aAAe,YAAY,SAAW,EAAG,MAAO,OACrD,OAAW,cAAc,cACvB,GAAM,OAAQ,WAAW,IAAI,WACvB,WAAa,MAAM,MAAM,EAAG,GAC5B,SAAW,MAAM,MAAM,EAAG,GAC1B,cAAgB,WAAW,cAAc,YAC/C,WAAW,IAAI,UACf,WAAW,cAAc,UACzB,MAAM,KAAK,AAAI,oBAAoB,CAAE,WAAY,SAAU,cAAe,WAAY,WAAW,YAAc,CAAC,WAAa,QAAO,KAAK,UAAW,YAAc,QAAO,KAAK,aAEhL,MAAO,SAGX,SAAQ,aAAe,eChFvB,uDAAoB,+BAOd,wBAA0B,EAE1B,wBAA0B,KAC1B,kBAAoB,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GACzC,kCAAoC,EACpC,2CAA6C,EAZnD,mBAeE,YAAY,aAAc,iBAAkB,WAC1C,KAAK,aAAe,aACpB,KAAK,iBAAmB,iBACxB,KAAK,UAAY,UACjB,KAAK,YAAc,GACnB,KAAK,QAAU,EACf,KAAK,cAAgB,EAGvB,uBAAuB,cAAe,gBACpC,GAAM,sBAAuB,cAAc,IAAI,AAAC,OAAU,AAAK,YAAY,CAAC,GAAG,MAAO,GAAI,iBACpF,cAAgB,KAAK,8BAA8B,sBAEzD,MAAO,AAAI,YAAW,AAAI,YAAY,eAAgB,yBAGxD,uBAAuB,WACrB,GAAM,aAAc,KAAK,8BAA8B,WAEjD,cAAgB,AAAI,WAAW,AAAI,YAAY,aAAc,yBACnE,cAAc,cAAgB,GAC9B,OAAS,GAAI,EAAG,EAAI,kBAAkB,OAAQ,IAC5C,cAAc,cAAc,KAAK,UAAU,kBAAkB,IAAI,MAAM,EAAG,IAE5E,MAAO,eAGT,mBAAmB,UAAW,KAAM,MAAO,gBACzC,GAAM,SAAU,AAAI,WAAW,MACzB,YAAc,CAAC,QAAQ,GAAK,KAAK,UAAW,QAAQ,GAAK,KAAK,UAAY,SAAQ,GAAK,QAAQ,IAAM,KAAK,UAAY,GACtH,aAAe,UAAU,IAAI,AAAC,OAAU,CAC5C,YAAY,GAAM,OAAM,GAAK,KAAK,UAAY,GAC9C,YAAY,GAAM,OAAM,GAAK,KAAK,UAAY,GAC9C,YAAY,GAAK,MAAM,KAEnB,qBAAuB,AAAK,oBAAoB,MAAO,CAAC,EAAG,IAC3D,cAAgB,aAAa,IAAI,AAAC,OAE/B,CAAC,GADQ,AAAK,YAAY,MAAO,sBACpB,MAAM,KAEtB,sBAAwB,AAAK,sBAAsB,gBACnD,UAAY,CAAC,GAAG,AAAI,aAAa,MAAO,GACxC,kBAAoB,CACxB,AAAK,IAAI,UAAW,sBAAsB,IAC1C,AAAK,IAAI,UAAW,sBAAsB,KAE5C,MAAO,eAAc,IAAI,AAAC,OAAU,CAClC,MAAM,GAAK,kBAAkB,GAC7B,MAAM,GAAK,kBAAkB,GAC7B,MAAM,UAIJ,eAAc,OAAO,SACzB,GAAI,aAAc,GAGd,MACJ,AAAK,MAAK,UAAY,GAAO,KAAK,QAAU,QAAO,KAAK,YAAe,CAAC,QAAO,KAAK,WAAa,CAAC,QAAO,iBACvG,OAAQ,KAAM,MAAK,aAAa,mBAAmB,OAAO,SAC1D,KAAK,QAAU,GAEb,QAAO,gBAAgB,KAAK,UAG5B,OAAU,MAAM,OAAS,GAAQ,OAAM,SAAW,KAAK,eAAmB,KAAK,gBAAkB,QAAO,KAAK,UAAa,CAAC,QAAO,KAAK,YACzI,MAAK,cAAgB,EACrB,KAAK,YAAc,CAAC,GAAG,OAEnB,KAAK,YAAY,OAAS,GAAG,aAAc,KAEjD,GAAM,OAAQ,GAId,OAAS,GAAI,EAAG,EAAI,KAAK,YAAY,OAAQ,KAC3C,GAAM,YAAa,KAAK,YAAY,GACpC,GAAI,EAAC,WACL,GAAI,QAAO,KAAK,WACd,GAAM,OAAQ,QAAO,KAAK,SAAW,AAAK,gBAAgB,WAAW,cAAc,mCAAoC,WAAW,cAAc,6CAA+C,EACzL,WAAa,AAAI,aAAa,YAC9B,qBAAuB,CAAC,WAAW,GAAK,OAAM,MAAM,GAAI,WAAW,GAAK,OAAM,MAAM,IACpF,aAAe,QAAO,KAAK,SAAW,AAAG,UAAM,iBAAiB,OAAO,MAAO,EAAG,sBAAwB,OAAM,QAC/G,eAAiB,AAAK,oBAAoB,CAAC,MAAO,YAClD,OAAS,YAAc,KAAK,uBAAuB,WAAW,cAAe,gBAAkB,WAC/F,aAAe,AAAI,yBAAyB,OAAQ,aAAc,CAAC,KAAK,UAAW,KAAK,YACxF,UAAY,aAAa,IAAI,KACnC,aAAa,UACb,aAAa,UACb,GAAM,CAAC,YAAa,WAAa,KAAM,MAAK,iBAAiB,QAAQ,WACrE,UAAU,UACV,GAAM,YAAa,YAAY,WAAW,GAE1C,GADA,YAAY,UACR,YAAc,QAAO,KAAK,eAC5B,GAAM,mBAAoB,AAAG,YAAQ,UAAW,CAAC,GAAI,IAC/C,UAAY,kBAAkB,YACpC,UAAU,UACV,kBAAkB,UAClB,GAAM,QAAS,KAAK,mBAAmB,UAAW,OAAQ,MAAO,gBAC3D,gBAAkB,KAAK,uBAAuB,QACpD,KAAK,YAAY,GAAK,gBACtB,GAAM,QAAS,CACb,UAAW,OACX,WACA,IAAK,CACH,QAAS,gBAAgB,WACzB,YAAa,gBAAgB,WAGjC,MAAM,KAAK,YAEX,MAAK,YAAY,GAAK,KAExB,UAAU,eAGV,GAAM,UAAW,AAAI,WAAW,AAAI,YAAY,YAAa,yBACvD,OAAS,CACb,WAAY,WAAW,WACvB,IAAK,CACH,QAAS,SAAS,WAClB,YAAa,SAAS,WAG1B,MAAM,KAAK,SAGf,YAAK,YAAc,KAAK,YAAY,OAAO,AAAC,GAAM,IAAM,MACxD,KAAK,cAAgB,MAAM,OACpB,MAIT,8BAA8B,WAC5B,GAAM,IAAK,UAAU,IAAI,AAAC,GAAM,EAAE,IAC5B,GAAK,UAAU,IAAI,AAAC,GAAM,EAAE,IAC5B,WAAa,CAAC,KAAK,IAAI,GAAG,IAAK,KAAK,IAAI,GAAG,KAC3C,SAAW,CAAC,KAAK,IAAI,GAAG,IAAK,KAAK,IAAI,GAAG,KAC/C,MAAO,CAAE,WAAY,YAIzB,SAAQ,aAAe,eC7JvB,mDAAQ,QAAU,CAChB,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EAC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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kEA0JP,KAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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", + "sources": ["../src/tfjs/tf-node.js", "../src/blazeface/blazeface.js", "../src/blazeface/box.js", "../src/blazeface/util.js", "../src/blazeface/coords.js", "../src/blazeface/facepipeline.js", "../src/blazeface/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/posenet/modelBase.js", "../src/posenet/heapSort.js", "../src/posenet/buildParts.js", "../src/posenet/keypoints.js", "../src/posenet/vectors.js", "../src/posenet/decoders.js", "../src/posenet/decodePose.js", "../src/posenet/decodeMultiple.js", "../src/posenet/util.js", "../src/posenet/modelPoseNet.js", "../src/posenet/posenet.js", "../src/handpose/handdetector.js", "../src/handpose/handpipeline.js", "../src/handpose/anchors.js", "../src/handpose/handpose.js", "../src/gesture/gesture.js", "../src/imagefx.js", "../src/image.js", "../src/human.js", "../src/log.js", "../src/tfjs/backend.js", "../src/blazepose/blazepose.js", "../src/handpose/box.js", "../src/handpose/util.js", "../config.js", "../src/sample.js"], + "sourcesContent": ["export * from '@tensorflow/tfjs-node';\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (let i = 0; i < boundingBoxes.length; i++) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n // @ts-ignore\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n // @ts-ignore\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n log(`load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\n\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\n\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\n\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\n\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\n\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\n\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\n\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\n\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n // { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n // { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 0;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n // @ts-ignore\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = (angle !== 0) ? util.buildRotationMatrix(angle, [0, 0]) : util.IDENTITY_MATRIX;\n const coordsRotated = (angle !== 0) ? coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]])) : coordsScaled;\n const inverseRotationMatrix = (angle !== 0) ? util.invertTransformMatrix(rotationMatrix) : util.IDENTITY_MATRIX;\n // @ts-ignore\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n return coordsRotated.map((coord) => ([\n coord[0] + util.dot(boxCenter, inverseRotationMatrix[0]),\n coord[1] + util.dot(boxCenter, inverseRotationMatrix[1]),\n coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n // @ts-ignore\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n // @ts-ignore\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped === 0) || (this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (let i = 0; i < this.storedBoxes.length; i++) {\n // @ts-ignore\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n // @ts-ignore\n const enlargedBox = bounding.enlargeBox(scaledBox);\n // @ts-ignore\n const squarifiedBox = bounding.squarifyBox(enlargedBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...squarifiedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // log('face', `skipped: ${this.skipped} max: ${config.face.detector.maxFaces} detected: ${this.detectedFaces} stored: ${this.storedBoxes.length} new: ${detector?.boxes?.length}`);\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n let face;\n let angle = 0;\n let rotationMatrix;\n if (config.face.detector.rotation) {\n const [indexOfMouth, indexOfForehead] = (box.landmarks.length >= LANDMARKS_COUNT) ? MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES : BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n // @ts-ignore\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n } else {\n rotationMatrix = util.IDENTITY_MATRIX;\n const cloned = input.clone();\n // @ts-ignore\n face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, cloned, [this.meshHeight, this.meshWidth]).div(255);\n }\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: face,\n };\n return prediction;\n }\n\n const [, confidence, contourCoords] = this.meshDetector.predict(face); // The first returned tensor represents facial contours, which are included in the coordinates.\n const confidenceVal = confidence.dataSync()[0];\n if (confidenceVal < config.face.detector.minConfidence) return null; // if below confidence just exit\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop]));\n const eyePredictionsData = eyePredictions.dataSync();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n // @ts-ignore\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n // @ts-ignore\n const squarifiedLandmarksBox = bounding.squarifyBox(landmarksBox);\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: face,\n };\n if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;\n this.storedBoxes[i] = { ...squarifiedLandmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as facepipeline from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n // @ts-ignore\n this.facePipeline = new facepipeline.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.facePipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n if (prediction.isDisposedInternal) continue; // guard against disposed tensors on long running operations such as pause in middle of processing\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const meshRaw = prediction.rawCoords;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key of Object.keys(coords.MESH_ANNOTATIONS)) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n const boxRaw = (config.face.mesh.returnRawData && prediction.box) ? { topLeft: prediction.box.startPoint, bottomRight: prediction.box.endPoint } : null;\n const box = prediction.box ? [\n Math.max(0, prediction.box.startPoint[0]),\n Math.max(0, prediction.box.startPoint[1]),\n Math.min(input.shape[2], prediction.box.endPoint[0]) - prediction.box.startPoint[0],\n Math.min(input.shape[1], prediction.box.endPoint[1]) - prediction.box.startPoint[1],\n ] : 0;\n results.push({\n confidence: prediction.confidence || 0,\n box,\n mesh,\n boxRaw,\n meshRaw,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nlet faceModels = [null, null, null];\nasync function load(config) {\n faceModels = await Promise.all([\n // @ts-ignore\n (!faceModels[0] && config.face.enabled) ? blazeface.load(config) : null,\n (!faceModels[1] && config.face.mesh.enabled) ? tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }) : null,\n (!faceModels[2] && config.face.iris.enabled) ? tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }) : null,\n ]);\n const faceMesh = new MediaPipeFaceMesh(faceModels[0], faceModels[1], faceModels[2], config);\n if (config.face.mesh.enabled) log(`load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.face.iris.enabled) log(`load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "import { log } from './log.js';\n\nconst profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet skipped = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n log(`load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((skipped < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n // @ts-ignore\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet skipped = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n log(`load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((skipped < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n // @ts-ignore\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surprise', 'neutral'];\nconst models = {};\nlet last = [];\nlet skipped = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n log(`load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((skipped < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n skipped++;\n return last;\n }\n if (config.videoOptimized) skipped = 0;\n else skipped = Number.MAX_SAFE_INTEGER;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n log(`load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // general minkowski distance\n // euclidean distance is limited case where order is 2\n const order = 2;\n const distance = 10.0 * ((embedding1.map((val, i) => (val - embedding2[i])).reduce((dist, diff) => dist + (diff ** order), 0) ** (1 / order)));\n return (Math.trunc(1000 * (1 - distance)) / 1000);\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n // @ts-ignore\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nconst imageNetMean = [-123.15, -115.90, -103.06];\n\nfunction nameOutputResultsMobileNet(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nfunction nameOutputResultsResNet(results) {\n const [displacementFwd, displacementBwd, offsets, heatmap] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n}\n\nclass BaseModel {\n constructor(model) {\n this.model = model;\n }\n\n predict(input, config) {\n return tf.tidy(() => {\n const asFloat = (config.body.modelType === 'ResNet') ? input.toFloat().add(imageNetMean) : input.toFloat().div(127.5).sub(1.0);\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = (config.body.modelType === 'ResNet') ? nameOutputResultsResNet(results3d) : nameOutputResultsMobileNet(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) break;\n }\n return localMaximum;\n}\n\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\n\nexports.NUM_KEYPOINTS = exports.partNames.length;\n\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\n\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\n\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\n\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as kpt from './keypoints';\n\nfunction getPointsConfidence(heatmapScores, heatMapCoords) {\n const numKeypoints = heatMapCoords.shape[0];\n const result = new Float32Array(numKeypoints);\n for (let keypoint = 0; keypoint < numKeypoints; keypoint++) {\n const y = heatMapCoords.get(keypoint, 0);\n const x = heatMapCoords.get(keypoint, 1);\n result[keypoint] = heatmapScores.get(y, x, keypoint);\n }\n return result;\n}\nexports.getPointsConfidence = getPointsConfidence;\n\nfunction getOffsetPoint(y, x, keypoint, offsetsBuffer) {\n return {\n y: offsetsBuffer.get(y, x, keypoint),\n x: offsetsBuffer.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\n\nfunction getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer) {\n const result = [];\n for (let keypoint = 0; keypoint < kpt.NUM_KEYPOINTS; keypoint++) {\n const heatmapY = heatMapCoordsBuffer.get(keypoint, 0).valueOf();\n const heatmapX = heatMapCoordsBuffer.get(keypoint, 1).valueOf();\n const { x, y } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsetsBuffer);\n result.push(y);\n result.push(x);\n }\n return tf.tensor2d(result, [kpt.NUM_KEYPOINTS, 2]);\n}\nexports.getOffsetVectors = getOffsetVectors;\n\nfunction getOffsetPoints(heatMapCoordsBuffer, outputStride, offsetsBuffer) {\n return tf.tidy(() => heatMapCoordsBuffer.toTensor().mul(tf.scalar(outputStride, 'int32')).toFloat().add(getOffsetVectors(heatMapCoordsBuffer, offsetsBuffer)));\n}\nexports.getOffsetPoints = getOffsetPoints;\n\nfunction mod(a, b) {\n return tf.tidy(() => {\n const floored = a.div(tf.scalar(b, 'int32'));\n return a.sub(floored.mul(tf.scalar(b, 'int32')));\n });\n}\n\nfunction argmax2d(inputs) {\n const [height, width, depth] = inputs.shape;\n return tf.tidy(() => {\n const reshaped = inputs.reshape([height * width, depth]);\n const coords = reshaped.argMax(0);\n const yCoords = coords.div(tf.scalar(width, 'int32')).expandDims(1);\n const xCoords = mod(coords, width).expandDims(1);\n return tf.concat([yCoords, xCoords], 1);\n });\n}\nexports.argmax2d = argmax2d;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\nimport * as decoders from './decoders';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n // @ts-ignore\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n // @ts-ignore\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n // @ts-ignore\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n // @ts-ignore\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n // @ts-ignore\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n // @ts-ignore\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n\nasync function decodeSinglePose(heatmapScores, offsets, config) {\n let totalScore = 0.0;\n // @ts-ignore\n const heatmapValues = decoders.argmax2d(heatmapScores);\n const allTensorBuffers = await Promise.all([heatmapScores.buffer(), offsets.buffer(), heatmapValues.buffer()]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const heatmapValuesBuffer = allTensorBuffers[2];\n // @ts-ignore\n const offsetPoints = decoders.getOffsetPoints(heatmapValuesBuffer, config.body.outputStride, offsetsBuffer);\n const offsetPointsBuffer = await offsetPoints.buffer();\n // @ts-ignore\n const keypointConfidence = Array.from(decoders.getPointsConfidence(scoresBuffer, heatmapValuesBuffer));\n const instanceKeypoints = keypointConfidence.map((score, i) => {\n totalScore += score;\n return {\n position: {\n y: offsetPointsBuffer.get(i, 0),\n x: offsetPointsBuffer.get(i, 1),\n },\n part: keypoints.partNames[i],\n score,\n };\n });\n const filteredKeypoints = instanceKeypoints.filter((kpt) => kpt.score > config.body.scoreThreshold);\n heatmapValues.dispose();\n offsetPoints.dispose();\n return { keypoints: filteredKeypoints, score: totalScore / instanceKeypoints.length };\n}\nexports.decodeSinglePose = decodeSinglePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nconst kLocalMaximumRadius = 1;\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n // @ts-ignore\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) result += score;\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config) {\n const poses = [];\n // @ts-ignore\n const queue = buildParts.buildPartWithScoreQueue(config.body.scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = config.body.nmsRadius ^ 2;\n // Generate at most maxDetections object instances per image in decreasing root part score order.\n while (poses.length < config.body.maxDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it is within a disk of `nmsRadius` pixels from the corresponding part of a previously detected instance.\n // @ts-ignore\n const rootImageCoords = vectors.getImageCoords(root.part, config.body.outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Else start a new detection instance at the position of the root.\n // @ts-ignore\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, config.body.outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n if (score > config.body.scoreThreshold) poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as decodePose from './decodePose';\nimport * as util from './util';\n\nasync function estimateMultiple(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n // @ts-ignore\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, config);\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nasync function estimateSingle(input, res, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n // @ts-ignore\n const pose = await decodePose.decodeSinglePose(res.heatmapScores, res.offsets, config);\n const poses = [pose];\n // @ts-ignore\n const scaled = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n resolve(scaled);\n });\n}\n\nclass PoseNet {\n constructor(model) {\n this.baseModel = model;\n }\n\n async estimatePoses(input, config) {\n // @ts-ignore\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized, config);\n\n const poses = (config.body.maxDetections < 2) ? await estimateSingle(input, res, config) : await estimateMultiple(input, res, config);\n\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n\n return poses;\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const model = await tf.loadGraphModel(config.body.modelPath);\n // @ts-ignore\n const mobilenet = new modelBase.BaseModel(model);\n log(`load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelPoseNet from './modelPoseNet';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\n// @ts-ignore\nexports.load = modelPoseNet.load;\n// @ts-ignore\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\n// @ts-ignore\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\n// @ts-ignore\nexports.getBoundingBox = util.getBoundingBox;\n// @ts-ignore\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\n// @ts-ignore\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\n// @ts-ignore\nexports.scalePose = util.scalePose;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scoresT = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scores = scoresT.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scoresT.dispose();\n filteredT.dispose();\n const hands = [];\n for (const index of filtered) {\n if (scores[index] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [index, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [index, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, index).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scores[index] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n const hands = [];\n if (!predictions || predictions.length === 0) return hands;\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n// eslint-disable-next-line no-unused-vars\nimport { log } from '../log.js';\n\n// const PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 5; // default 3\n// const HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // default 1.65\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(handDetector, landmarkDetector, inputSize) {\n this.handDetector = handDetector;\n this.landmarkDetector = landmarkDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 0;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => util.rotatePoint([...coord, 1], rotationMatrix));\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n // return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n return box.enlargeBox(box.squarifyBox(boxAroundPalm), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n // const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(boundingBox), HAND_BOX_ENLARGE_FACTOR);\n boxAroundHand.palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n boxAroundHand.palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize, (boxSize[0] + boxSize[1]) / this.inputSize / 2];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n scaleFactor[2] * coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped === 0) || (this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.handDetector.estimateHandBounds(image, config);\n this.skipped = 0;\n }\n if (config.videoOptimized) this.skipped++;\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.detectedHands = 0;\n this.storedBoxes = [...boxes];\n // for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // log('hand', `skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (let i = 0; i < this.storedBoxes.length; i++) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = config.hand.rotation ? util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]) : 0;\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = config.hand.rotation ? tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized) : image.clone();\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidenceT, keypoints] = await this.landmarkDetector.predict(handImage);\n handImage.dispose();\n const confidence = confidenceT.dataSync()[0];\n confidenceT.dispose();\n if (confidence >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n // const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const enlarged = box.enlargeBox(box.squarifyBox(currentBox), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as handpipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(handPipeline) {\n this.handPipeline = handPipeline;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.handPipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n const box = prediction.box ? [\n Math.max(0, prediction.box.topLeft[0]),\n Math.max(0, prediction.box.topLeft[1]),\n Math.min(input.shape[2], prediction.box.bottomRight[0]) - prediction.box.topLeft[0],\n Math.min(input.shape[1], prediction.box.bottomRight[1]) - prediction.box.topLeft[1],\n ] : 0;\n hands.push({\n confidence: prediction.confidence,\n box,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n config.hand.enabled ? tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }) : null,\n config.hand.landmarks ? tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }) : null,\n ]);\n // @ts-ignore\n const handDetector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n // @ts-ignore\n const handPipeline = new handpipeline.HandPipeline(handDetector, handPoseModel, config.hand.inputSize);\n const handPose = new HandPose(handPipeline);\n if (config.hand.enabled) log(`load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n if (config.hand.landmarks) log(`load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handPose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n // raising hands\n const leftWrist = res[i].keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = res[i].keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = res[i].keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'i give up' });\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise left hand' });\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push({ body: i, gesture: 'raise right hand' });\n\n // leaning\n const leftShoulder = res[i].keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = res[i].keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push({ body: i, gesture: `leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}` });\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (res[i].mesh && res[i].mesh.length > 0) {\n const eyeFacing = res[i].mesh[35][2] - res[i].mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push({ face: i, gesture: 'facing camera' });\n else gestures.push({ face: i, gesture: `facing ${eyeFacing < 0 ? 'right' : 'left'}` });\n const openLeft = Math.abs(res[i].mesh[374][1] - res[i].mesh[386][1]) / Math.abs(res[i].mesh[443][1] - res[i].mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push({ face: i, gesture: 'blink left eye' });\n const openRight = Math.abs(res[i].mesh[145][1] - res[i].mesh[159][1]) / Math.abs(res[i].mesh[223][1] - res[i].mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push({ face: i, gesture: 'blink right eye' });\n const mouthOpen = Math.min(100, 500 * Math.abs(res[i].mesh[13][1] - res[i].mesh[14][1]) / Math.abs(res[i].mesh[10][1] - res[i].mesh[152][1]));\n if (mouthOpen > 10) gestures.push({ face: i, gesture: `mouth ${Math.trunc(mouthOpen)}% open` });\n const chinDepth = res[i].mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push({ face: i, gesture: `head ${chinDepth < 0 ? 'up' : 'down'}` });\n }\n }\n return gestures;\n};\n\nexports.iris = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n if (!res[i].annotations || !res[i].annotations.leftEyeIris || !res[i].annotations.rightEyeIris) continue;\n const sizeXLeft = res[i].annotations.leftEyeIris[3][0] - res[i].annotations.leftEyeIris[1][0];\n const sizeYLeft = res[i].annotations.leftEyeIris[4][1] - res[i].annotations.leftEyeIris[2][1];\n const areaLeft = Math.abs(sizeXLeft * sizeYLeft);\n\n const sizeXRight = res[i].annotations.rightEyeIris[3][0] - res[i].annotations.rightEyeIris[1][0];\n const sizeYRight = res[i].annotations.rightEyeIris[4][1] - res[i].annotations.rightEyeIris[2][1];\n const areaRight = Math.abs(sizeXRight * sizeYRight);\n\n const difference = Math.abs(areaLeft - areaRight) / Math.max(areaLeft, areaRight);\n if (difference < 0.25) gestures.push({ iris: i, gesture: 'looking at camera' });\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (let i = 0; i < res.length; i++) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(res[i]['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push({ hand: i, gesture: `${closest.name} forward ${highest.name} up` });\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n // @ts-ignore\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n // @ts-ignore\n _tempFramebuffers[index] = _tempFramebuffers[index] || _createFramebufferTexture(_width, _height);\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n // @ts-ignore\n source = _getTempFramebuffer(_currentFramebufferIndex)?.texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n // @ts-ignore\n target = _getTempFramebuffer(_currentFramebufferIndex)?.fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n if (!this.fx) return inCanvas;\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n /*\n const gl = outCanvas.getContext('webgl');\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n */\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx?.drawImage(outCanvas, 0, 0);\n const data = tempCtx?.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "import { log } from './log.js';\nimport * as tf from '../dist/tfjs.esm.js';\nimport * as backend from './tfjs/backend.js';\nimport * as facemesh from './blazeface/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './posenet/posenet.js';\nimport * as blazepose from './blazepose/blazepose.js';\nimport * as handpose from './handpose/handpose.js';\nimport * as gesture from './gesture/gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as sample from './sample.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n log('configuration:', this.config);\n log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n this.models.blazepose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n this.models.blazepose || (this.config.pose.enabled ? blazepose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n if (this.config.pose.enabled && !this.models.blazepose) this.models.blazepose = await blazepose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n log('Backend not registred:', this.config.backend);\n }\n */\n\n log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) log('warning: wasm simd support is not enabled');\n }\n\n if (this.config.backend === 'humangl') {\n log('registering humangl backend');\n backend.register();\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh?.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n if (!this.config.face.iris.enabled) {\n delete face.annotations.leftEyeIris;\n delete face.annotations.rightEyeIris;\n }\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n boxRaw: face.boxRaw,\n meshRaw: face.meshRaw,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let blazeposeRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet?.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run posenet\n this.analyze('Start Pose:');\n if (this.config.async) {\n blazeposeRes = this.config.pose.enabled ? blazepose.predict(process.tensor, this.config) : [];\n if (this.perf.pose) delete this.perf.pose;\n } else {\n this.state = 'run:pose';\n timeStamp = now();\n blazeposeRes = this.config.pose.enabled ? await blazepose.predict(process.tensor, this.config) : [];\n this.perf.pose = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Pose:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose?.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, blazeposeRes, handRes] = await Promise.all([faceRes, poseRes, blazeposeRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = [...gesture.face(faceRes), ...gesture.body(poseRes), ...gesture.hand(handRes), ...gesture.iris(faceRes)];\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, pose: blazeposeRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmupBitmap() {\n const b64toBlob = (base64, type = 'application/octet-stream') => fetch(`data:${type};base64,${base64}`).then((res) => res.blob());\n let blob;\n let res;\n switch (this.config.warmup) {\n case 'face': blob = await b64toBlob(sample.face); break;\n case 'full': blob = await b64toBlob(sample.body); break;\n default: blob = null;\n }\n if (blob) {\n const bitmap = await createImageBitmap(blob);\n res = await this.detect(bitmap, config);\n bitmap.close();\n }\n return res;\n }\n\n async warmupCanvas() {\n return new Promise((resolve) => {\n let src;\n let size = 0;\n switch (this.config.warmup) {\n case 'face':\n size = 256;\n src = 'data:image/jpeg;base64,' + sample.face;\n break;\n case 'full':\n size = 1200;\n src = 'data:image/jpeg;base64,' + sample.body;\n break;\n default:\n src = null;\n }\n const img = new Image(size, size);\n img.onload = () => {\n const canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(size, size) : document.createElement('canvas');\n canvas.width = size;\n canvas.height = size;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const data = ctx.getImageData(0, 0, size, size);\n this.detect(data, config).then((res) => resolve(res));\n };\n if (src) img.src = src;\n else resolve(null);\n });\n }\n\n async warmup(userConfig) {\n const t0 = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n const video = this.config.videoOptimized;\n this.config.videoOptimized = false;\n let res;\n if (typeof createImageBitmap === 'function') res = await this.warmupBitmap();\n else res = await this.warmupCanvas();\n this.config.videoOptimized = video;\n const t1 = now();\n log('Warmup', this.config.warmup, (t1 - t0), res);\n return res;\n }\n}\n\nexport { Human as default };\n", "// helper function: wrapper around console output\nexport function log(...msg) {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (msg) console.log(ts, 'Human:', ...msg);\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nexport const config = {\n name: 'humangl',\n priority: 99,\n canvas: null,\n width: 1024,\n height: 1024,\n webGLattr: { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2\n alpha: false,\n antialias: false,\n premultipliedAlpha: false,\n preserveDrawingBuffer: false,\n depth: false,\n stencil: false,\n failIfMajorPerformanceCaveat: false,\n desynchronized: true,\n },\n};\n\nexport function register() {\n if (!tf.findBackend(config.name)) {\n // @ts-ignore\n config.canvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(config.width, config.height) : document.createElement('canvas');\n // @ts-ignore\n const gl = config.canvas.getContext('webgl2', config.webGLattr);\n tf.setWebGLContext(2, gl);\n const ctx = new tf.GPGPUContext(gl);\n tf.registerBackend(config.name, () => new tf.MathBackendWebGL(ctx), config.priority);\n const kernels = tf.getKernelsForBackend('webgl');\n kernels.forEach((kernelConfig) => {\n const newKernelConfig = { ...kernelConfig, backendName: config.name };\n tf.registerKernel(newKernelConfig);\n });\n tf.ENV.set('WEBGL_VERSION', 2);\n tf.ENV.set('WEBGL_MAX_TEXTURE_SIZE', gl.getParameter(gl.MAX_TEXTURE_SIZE));\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n }\n}\n", "import { log } from '../log.js';\nimport * as tf from '../../dist/tfjs.esm.js';\n// import * as profile from '../profile.js';\n\nconst models = {};\n\nexport async function load(config) {\n if (!models.blazepose) {\n models.blazepose = await tf.loadGraphModel(config.pose.modelPath);\n log(`load model: ${config.pose.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.blazepose;\n}\n\nexport async function predict(image, config) {\n if (!models.blazepose) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.pose.inputSize, config.pose.inputSize], false);\n const enhance = tf.div(resize, 127.5).sub(1);\n tf.dispose(resize);\n const logits = await models.blazepose.predict(enhance);\n //\n tf.dispose(enhance);\n logits.map((logit) => logit.dispose());\n resolve(logits);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "function normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n // @ts-ignore\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n warmup: 'face', // what to use for human.warmup(), can be 'none', 'face', 'full'\n // warmup pre-initializes all models for faster inference but can take\n // significant time on startup\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n // false means higher performance, but incorrect mesh mapping if face angle is above 20 degrees\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 11, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n returnRawData: false, // in addition to standard mesh and box values, return raw normalized values as well\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 31, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 41, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 21, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n outputStride: 16, // size of block in which to run point detectopn, smaller value means higher resolution\n // defined by model itself, can be 8, 16, or 32\n modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet\n },\n\n pose: { // TBD: not currently in use\n enabled: false,\n scoreThreshold: 0.6, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n iouThreshold: 0.3, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n modelPath: '../models/blazepose.json',\n inputSize: 256, // fixed value\n },\n\n hand: {\n enabled: true,\n rotation: false, // use best-guess rotated hand image or just box with rotation as-is\n // false means higher performance, but incorrect finger mapping if hand is inverted\n inputSize: 256, // fixed value\n skipFrames: 12, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.1, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "// data:image/jpeg;base64,\nexport const face = `\n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`;\n\n// data:image/jpeg;base64,\nexport const body = `\n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\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAa2p1UYo5adbz+xbxMlvqJ1OqjDHLXree0ejmzNrWm953tPmTPWbWneZ7yoy5YhjrXXTjH8s75N\nmtkyxt0VZM2/m175N1V03yTKubMLXVXybeYLLX2VXy7eam+b0bOg4VquJW+rry4/O9uyZOq3UjVm\n9r25axMzPaIdvhns1kzbZddM0p5Y47z8/R2+HcF03Doi1a8+Xzvbv+TotJnjDXkt+K8ODHp8cY8N\nIpSO0RCwF2YAAAAAAAAACvUZYw6fJkntWN3k8dfHz2vLucdz8mkjFE9bz1+UOZosX1UzPm0nqI/W\nMYo9FlcPNklfFGeH/NshLGun+Cz6PtHZtVZWlRLS+jxPkRpIn7rdoupHTdA5s6SI+7H6Mfo+32Y2\n+To3neSIiZ7A0IjPXpXLePlMotGW3272t85datKzHZjbTVnsDj+FG/2Y/RlGP4R+jo20u7H6N1Ql\no+H8I/REY957R+jpfReiK6eOYHLtj2tttH6KrY/6Y/R2c+kjeJiFVtLG24hxpw7/AHY/RRkw9O37\nO99Hrt1YX0tfOBLjcGp4XF8c+u8fs9c4dcVcGemSI61nd3IneN1orQAAAAAAAAAAAAABFqxes1tE\nTE9JiUgPKcX4RbRXnNgiZwWnrH4XPi28PdXpW9JraImsxtMS8pxXhF9DecuGJtgmf+1TWW2N/la1\nL7N7T5e3Vy6W3hsYcvLbqzbO9jvvCzvDR0+XeO7crO6FmGSvRThy/RtVXJ92elvk2rRvDUzU7pl4\nizsd2J3jeBpcNz+Lg5LT7+Pp+Xk3W7js5eAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs0NTrN96Yp6edkW8Wzm6+LNTq4pvTHO9vOfRoWtt\n1mes95YWvs1s2fZldddOczLPLn2ju0MmebT3YZc2/mpm3qqllN1drsbZIhr3yzvtHf4AsvlYYseb\nV5Yx4KTe0+UQ6nDvZ3UazbJqd8OKeu33peq0eh0+hxcmnxxWPOfOfm0mP+steT/ji8N9mKY9suum\nL37+HHaPm9DSlaVitKxWsdohI0Y22gAgAAAAAAAAAABXnyRhw3yT92Nwef4xm8bVzET0rPJH5d12\n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\nAOZE/OsPS29nuH27YrV+VpeV9pdPXhOtw49NG9Mld55+vXcTPd42I47qo7xSfyWV9oM8d8VJ/VxM\nd8l46xWF9cV7en6o/qLfxp2I9ob+eCv/AHMo9op89P8A/wBORGmyT5R+qfo2X8P7n9Q/jTsx7RR5\n6ef+4/8AuHftg/8A6cWcOSO9J/WEbWr3pY7Efzp2Lcfv5YK/9zWy8d1E/ZpSv5Oba1/+Hb9lc+LP\nbFt87I7E/wAabWbiurvEx4nL/pjZzc2bJkn372t85ZXx55/BX85lucC0vPxnTxlnnjm32mOiZqUu\nLJ2p4TwnVavNWaYbRTfre0bQ99pcH0bT0xb78vmtiIiNojaErMwAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAHnfarF7umzRHaZrLjYrdIen9ocPi8JyTt1xzF4eUw23rCm3R4r6bMy\nwt6kdTaWLdjswmNoZontsCm0K5XWjopnuDC0dGpqG5bs08/daKV672MjbSaif6oh6Z5f2LtvptRX\n0tEvUN3Jfo8f7cYve0eX4zV7B5z20xc/C8eSPuZIRficfXlcPaG7ino08HWIbePpLF2NuiyOyrHK\n3fZFSwuovHVfaVF4QK5YWTM9UT0EKry6Ps1Tn4zjn8NZn9nOtLseydObiWW34cf918fWfk+PYANn\nKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq1WKM+ly4p+/WYeBxTNd6zG0xO0\nvobw3FcP0bi2em20Tbmj5Srr418V9sa2Z7qKyzi07MXUylhaU7yjqhLCeiq3ddaFNxFYW7NLNG8t\nzya+WO6Va9J7FW66mvwidnrXiPY3Ny8RyUn71Jj9Ht3RPjk19HK9pMHj8D1ER3rHN+jqqtTjjNps\nuOe16zAifXzfTz7kNyndpYazS9qT0mszDdoxrsi6m8LazMq6zDOsq1ZEyrt1WWlXaUCqyq0rbKbi\nFdp6PReyFd8uqv8ACsfy83aXrPZHHto89/xX2/SP/dpj6y8vx6EBq5gAAAAAAAAAAAAAAAAAAAAA\n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\nNO67NbkhzNVnmInqzaOZrL93JyZeV0M1++7S02jvxDWxhxx033tPpC8Z6rrezWjmZyazJG2/u03h\n2vFibTHoqvamiwVwY+nLGzV0+SZ1Mx8G0/45tOhzJ5lXMc3UVXRdlF1HP+iYsDPLPPy49/tz1+Te\npSIr0ho6ak5Ms5J8o2q6NImOrHV7XX488ypzTtHXo0s9t6zG7c1G1qz6ubeZiZ3UatXJG3yauSO7\ncvMTEx5tPLb3prPRMVr0HB8vicNxf0+7+kt+LOJwTJyY/Bnz3tH93X36N58cWvq6LSyiyndMSlC7\nmZcymLJiwLosmJVRLKLAtiU7q4lMSCzc3YxJuDMRuAlKAEgAAAlAkAAAAAABKAEgAAAAAJAAAAAA\nAAAAAAAEgAAAAAAAAAAAAAkAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAhIAAACAAAASgAAAAAAEAAAA\nhGzJAImGMwzQDDZjNVuyNgUTVhNGxysZqDVmiu1G5NN2M4waM0+DCaN2cbGcQNGaMZq3JxMJxA1J\nqx2bU4kU09slorWNwa20z02RXHbJbl26QvtFovbHWkxEdJt5y2MOHlr2U1W3jx+1hiw8vSO63lmI\nXRTaEWmtY6snRHO1VpmJ+DjavpSZl2s8b7y4HFcnh0n0gha5ebJN55KRM2mdoiPN6fh+kpwXh0Wy\nRHj5Otp/s5Ps1p62y31+em9aTMYt/OfVfxTiPjZ52naI7fBrI5t66xz5+a1rW7yx0eSL6iZjtEOX\nqNbSletom3lENjh2fbHzbbWt3iVozruc+5ztWubf4M4ybpQ2Oboyrva0Vjza8WdDR4OkXt3n9ldX\nkaePP9VtYqctYhdvt5oivTeCZ2YOxXk6ubqMfV0b9mrljfqlFcq88k7z2U5axeItDa1OPessuC8P\nya7XRWYnwqdbT/ZMilvIu4dpslNdixXja8Y5tt85djZdbDWnGOesRtXFtuw6T27No5Kx2OrKYQlC\nExKJgBnEpiyvdlEgsizKLKollFgWxLKJVRLKJBbEp3VxLKJBnuMWQJEbpBIAAAJAAAABIAAAAAAA\nlAJAAAAAAAAAAAAAASAAAAAAAAAAAAAJAAAABAJABAlAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA\nAAABAJQAAAAgAABAAI2EoBGyJhkgGPKxmqxAKpownHC+YRMdN5BrTj67R3bOn01o7p01Iv71u89o\n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\n2Q==`;\n"], + "mappings": "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CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,mBAGhB,OAAS,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAExI,MAAQ,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAChJ,MAAQ,C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U,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,UC/viBd,2CAGA,QAAoB,+BACpB,aAA8B,mCAC9B,aAA8B,mCAC9B,QAAyB,8BAEnB,iBAAmB,CACvB,MAAO,CAAC,EAAG,EAAG,EAAG,GACjB,YAAa,CAAC,EAAG,EAAG,EAAG,GACvB,aAAc,CAAC,EAAG,GAAI,GAAI,IAC1B,WAAY,CAAC,GAAI,GAAI,GAAI,IACzB,MAAO,CAAC,GAAI,GAAI,GAAI,IACpB,SAAU,CAAC,IAdb,eAkBE,YAAY,cACV,KAAK,aAAe,mBAGf,kBACL,MAAO,uBAGH,eAAc,MAAO,SACzB,GAAM,aAAc,KAAM,MAAK,aAAa,cAAc,MAAO,SACjE,GAAI,CAAC,YAAa,MAAO,GACzB,GAAM,OAAQ,GACd,OAAW,cAAc,cACvB,GAAM,aAAc,GACpB,GAAI,WAAW,UACb,OAAW,OAAO,QAAO,KAAK,kBAC5B,YAAY,KAAO,iBAAiB,KAAK,IAAI,AAAC,OAAU,WAAW,UAAU,QAGjF,GAAM,KAAM,WAAW,IAAM,CAC3B,KAAK,IAAI,EAAG,WAAW,IAAI,QAAQ,IACnC,KAAK,IAAI,EAAG,WAAW,IAAI,QAAQ,IACnC,KAAK,IAAI,MAAM,MAAM,GAAI,WAAW,IAAI,YAAY,IAAM,WAAW,IAAI,QAAQ,GACjF,KAAK,IAAI,MAAM,MAAM,GAAI,WAAW,IAAI,YAAY,IAAM,WAAW,IAAI,QAAQ,IAC/E,EACJ,MAAM,KAAK,CACT,WAAY,WAAW,WACvB,IACA,UAAW,WAAW,UACtB,cAGJ,MAAO,SAGX,SAAQ,SAAW,SAEnB,qBAAoB,SAClB,GAAM,CAAC,kBAAmB,eAAiB,KAAM,SAAQ,IAAI,CAC3D,QAAO,KAAK,QAAU,AAAG,mBAAe,QAAO,KAAK,SAAS,UAAW,CAAE,UAAW,QAAO,KAAK,SAAS,UAAU,SAAS,eAAkB,KAC/I,QAAO,KAAK,UAAY,AAAG,mBAAe,QAAO,KAAK,SAAS,UAAW,CAAE,UAAW,QAAO,KAAK,SAAS,UAAU,SAAS,eAAkB,OAG7I,aAAe,GAAiB,2BAAa,kBAAmB,QAAO,KAAK,UAAmB,iBAE/F,aAAe,GAAiB,2BAAa,aAAc,cAAe,QAAO,KAAK,WACtF,SAAW,GAAI,UAAS,cAC9B,MAAI,SAAO,KAAK,SAAS,IAAI,eAAe,QAAO,KAAK,SAAS,UAAU,MAAM,YAAY,MACzF,QAAO,KAAK,WAAW,IAAI,eAAe,QAAO,KAAK,SAAS,UAAU,MAAM,YAAY,MACxF,SAET,SAAQ,KAAO,QCrEf,mDAAQ,KAAO,AAAC,MACd,GAAI,CAAC,IAAK,MAAO,GACjB,GAAM,UAAW,GACjB,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,KAE9B,GAAM,WAAY,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,aACrD,WAAa,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,cACtD,KAAO,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,QACtD,AAAI,MAAQ,WAAa,YAAe,UAAU,SAAS,EAAI,KAAK,SAAS,GAAO,WAAW,SAAS,EAAI,KAAK,SAAS,EAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,cAC3J,AAAI,MAAQ,WAAc,UAAU,SAAS,EAAI,KAAK,SAAS,EAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,oBACjG,MAAQ,YAAe,WAAW,SAAS,EAAI,KAAK,SAAS,GAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,qBAG5G,GAAM,cAAe,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,gBACxD,cAAgB,IAAI,GAAG,UAAU,KAAK,AAAC,GAAO,EAAE,OAAS,iBAC/D,AAAI,cAAgB,eAAe,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,WAAY,aAAa,SAAS,EAAI,cAAc,SAAS,EAAK,OAAS,YAElJ,MAAO,WAGT,SAAQ,KAAO,AAAC,MACd,GAAI,CAAC,IAAK,MAAO,GACjB,GAAM,UAAW,GACjB,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,IAC9B,GAAI,IAAI,GAAG,MAAQ,IAAI,GAAG,KAAK,OAAS,GACtC,GAAM,WAAY,IAAI,GAAG,KAAK,IAAI,GAAK,IAAI,GAAG,KAAK,KAAK,GACxD,AAAI,KAAK,IAAI,WAAa,GAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,kBAC3D,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,UAAU,UAAY,EAAI,QAAU,WAEvE,AADa,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,GAAK,IAAI,GAAG,KAAK,KAAK,IAAM,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,GAAK,IAAI,GAAG,KAAK,KAAK,IACxG,IAAK,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,mBAElD,AADc,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,GAAK,IAAI,GAAG,KAAK,KAAK,IAAM,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,GAAK,IAAI,GAAG,KAAK,KAAK,IACxG,IAAK,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,oBACvD,GAAM,WAAY,KAAK,IAAI,IAAK,IAAM,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,GAAK,IAAI,GAAG,KAAK,IAAI,IAAM,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,GAAK,IAAI,GAAG,KAAK,KAAK,KACzI,AAAI,UAAY,IAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,SAAS,KAAK,MAAM,qBAC1E,GAAM,WAAY,IAAI,GAAG,KAAK,KAAK,GACnC,AAAI,KAAK,IAAI,WAAa,IAAI,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,QAAQ,UAAY,EAAI,KAAO,WAGnG,MAAO,WAGT,SAAQ,KAAO,AAAC,MACd,GAAI,CAAC,IAAK,MAAO,GACjB,GAAM,UAAW,GACjB,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,KAC9B,GAAI,CAAC,IAAI,GAAG,aAAe,CAAC,IAAI,GAAG,YAAY,aAAe,CAAC,IAAI,GAAG,YAAY,aAAc,SAChG,GAAM,WAAY,IAAI,GAAG,YAAY,YAAY,GAAG,GAAK,IAAI,GAAG,YAAY,YAAY,GAAG,GACrF,UAAY,IAAI,GAAG,YAAY,YAAY,GAAG,GAAK,IAAI,GAAG,YAAY,YAAY,GAAG,GACrF,SAAW,KAAK,IAAI,UAAY,WAEhC,WAAa,IAAI,GAAG,YAAY,aAAa,GAAG,GAAK,IAAI,GAAG,YAAY,aAAa,GAAG,GACxF,WAAa,IAAI,GAAG,YAAY,aAAa,GAAG,GAAK,IAAI,GAAG,YAAY,aAAa,GAAG,GACxF,UAAY,KAAK,IAAI,WAAa,YAGxC,AAAI,AADe,KAAK,IAAI,SAAW,WAAa,KAAK,IAAI,SAAU,WACtD,KAAM,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,sBAE3D,MAAO,WAGT,SAAQ,KAAO,AAAC,MACd,GAAI,CAAC,IAAK,MAAO,GACjB,GAAM,UAAW,GACjB,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,KAC9B,GAAM,SAAU,GAChB,OAAW,CAAC,OAAQ,MAAQ,QAAO,QAAQ,IAAI,GAAG,aAChD,AAAI,SAAW,YAAY,QAAQ,KAAK,CAAE,KAAM,OAAO,cAAe,SAAU,IAAI,KAEtF,GAAI,SAAW,QAAQ,OAAS,GAC9B,GAAM,SAAU,QAAQ,OAAO,CAAC,KAAM,IAAO,KAAK,SAAS,GAAK,EAAE,SAAS,GAAK,KAAO,GACjF,QAAU,QAAQ,OAAO,CAAC,KAAM,IAAO,KAAK,SAAS,GAAK,EAAE,SAAS,GAAK,KAAO,GACvF,SAAS,KAAK,CAAE,KAAM,EAAG,QAAS,GAAG,QAAQ,gBAAgB,QAAQ,aAGzE,MAAO,aC1ET,0CAOA,GAAM,cAAe,SAAU,GAAI,aAAc,gBAC/C,GAAM,UAAW,SAAU,OAAQ,OAAQ,YACzC,GAAM,GAAI,GAAI,QAAO,MAAQ,OAAS,eAAgB,MACtD,OAAO,QAAQ,EAAG,CAAC,MAAO,OACxB,YAAW,MAAQ,EACZ,SAIL,SAAW,SAAU,OAAQ,MACjC,GAAM,QAAS,GAAG,aAAa,MAI/B,GAHA,GAAG,aAAa,OAAQ,QACxB,GAAG,cAAc,QAEb,CAAC,GAAG,mBAAmB,OAAQ,GAAG,gBAEpC,KAAM,IAAI,OAAM,4BAA6B,GAAG,iBAAiB,SAEnE,MAAO,SAGT,KAAK,QAAU,GACf,KAAK,UAAY,GAEjB,GAAM,MAAO,SAAS,aAAc,GAAG,eACjC,KAAO,SAAS,eAAgB,GAAG,iBAOzC,GALA,KAAK,GAAK,GAAG,gBACb,GAAG,aAAa,KAAK,GAAI,MACzB,GAAG,aAAa,KAAK,GAAI,MACzB,GAAG,YAAY,KAAK,IAEhB,CAAC,GAAG,oBAAoB,KAAK,GAAI,GAAG,aAEtC,KAAM,IAAI,OAAM,yBAA0B,GAAG,kBAAkB,KAAK,KAGtE,GAAG,WAAW,KAAK,IAGnB,SAAS,aAAc,YAAa,KAAK,WACzC,OAAW,KAAK,MAAK,UACnB,KAAK,UAAU,GAAK,GAAG,kBAAkB,KAAK,GAAI,GAIpD,SAAS,aAAc,UAAW,KAAK,SACvC,SAAS,eAAgB,UAAW,KAAK,SACzC,OAAW,KAAK,MAAK,QACnB,KAAK,QAAQ,GAAK,GAAG,mBAAmB,KAAK,GAAI,IAI/C,iBAAmB,SAAU,QACjC,AAAK,QAAQ,QAAS,IACtB,GAAI,YAAa,EACb,eAAiB,KACjB,aAAe,GACf,yBAA2B,GAC3B,kBAAoB,CAAC,KAAM,MAC3B,aAAe,GACf,OAAS,GACT,QAAU,GACV,cAAgB,KAChB,gBAAkB,KAChB,QAAU,OAAO,QAAU,SAAS,cAAc,UAGlD,oBAAsB,GAEtB,GAAK,QAAQ,WAAW,SAC9B,GAAI,CAAC,GAAI,KAAM,IAAI,OAAM,+BAEzB,KAAK,UAAY,SAAU,MAEzB,GAAM,MAAO,MAAM,UAAU,MAAM,KAAK,UAAW,GAC7C,OAAS,QAAQ,MAEvB,aAAa,KAAK,CAAE,KAAM,OAAQ,QAGpC,KAAK,MAAQ,WACX,aAAe,IAGjB,KAAK,MAAQ,SAAU,QAcrB,GAbA,QAAQ,OAAM,MAAO,OAAM,QAC3B,WAAa,EAGR,gBAAgB,gBAAiB,GAAG,iBACzC,GAAG,YAAY,GAAG,WAAY,gBAC9B,GAAG,cAAc,GAAG,WAAY,GAAG,eAAgB,GAAG,eACtD,GAAG,cAAc,GAAG,WAAY,GAAG,eAAgB,GAAG,eACtD,GAAG,cAAc,GAAG,WAAY,GAAG,mBAAoB,GAAG,SAC1D,GAAG,cAAc,GAAG,WAAY,GAAG,mBAAoB,GAAG,SAC1D,GAAG,WAAW,GAAG,WAAY,EAAG,GAAG,KAAM,GAAG,KAAM,GAAG,cAAe,QAGhE,aAAa,SAAW,EAE1B,eACO,QAGT,OAAS,GAAI,EAAG,EAAI,aAAa,OAAQ,KACvC,aAAgB,IAAM,aAAa,OAAS,EAC5C,GAAM,GAAI,aAAa,GACvB,EAAE,KAAK,MAAM,KAAM,EAAE,MAAQ,IAG/B,MAAO,UAGT,GAAM,SAAU,SAAU,MAAO,QAE/B,GAAI,UAAU,QAAU,SAAW,UAQnC,GANA,QAAQ,MAAQ,MAChB,OAAS,MACT,QAAQ,OAAS,OACjB,QAAU,OAGN,CAAC,eAEH,GAAM,UAAW,GAAI,cAAa,CAChC,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EACrC,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,IAGrC,AAAC,cAAgB,GAAG,eAAgB,GAAG,WAAW,GAAG,aAAc,eACnE,GAAG,WAAW,GAAG,aAAc,SAAU,GAAG,aAI5C,GAAG,YAAY,GAAG,+BAAgC,IAGpD,GAAG,SAAS,EAAG,EAAG,OAAQ,SAG1B,kBAAoB,CAAC,KAAM,QAGvB,oBAAsB,SAAU,OAEpC,yBAAkB,OAAS,kBAAkB,QAAU,0BAA0B,OAAQ,SAClF,kBAAkB,QAGrB,0BAA4B,SAAU,MAAO,QACjD,GAAM,KAAM,GAAG,oBACf,GAAG,gBAAgB,GAAG,YAAa,KAEnC,GAAM,cAAe,GAAG,qBACxB,GAAG,iBAAiB,GAAG,aAAc,cAErC,GAAM,SAAU,GAAG,gBACnB,UAAG,YAAY,GAAG,WAAY,SAC9B,GAAG,WAAW,GAAG,WAAY,EAAG,GAAG,KAAM,MAAO,OAAQ,EAAG,GAAG,KAAM,GAAG,cAAe,MAEtF,GAAG,cAAc,GAAG,WAAY,GAAG,mBAAoB,GAAG,QAC1D,GAAG,cAAc,GAAG,WAAY,GAAG,mBAAoB,GAAG,QAC1D,GAAG,cAAc,GAAG,WAAY,GAAG,eAAgB,GAAG,eACtD,GAAG,cAAc,GAAG,WAAY,GAAG,eAAgB,GAAG,eAEtD,GAAG,qBAAqB,GAAG,YAAa,GAAG,kBAAmB,GAAG,WAAY,QAAS,GAEtF,GAAG,YAAY,GAAG,WAAY,MAC9B,GAAG,gBAAgB,GAAG,YAAa,MAE5B,CAAE,IAAK,UAGV,MAAQ,SAAU,OAtL1B,UAuLI,GAAI,QAAS,KACT,OAAS,KACT,MAAQ,GAGZ,AAAI,aAAe,EAEjB,OAAS,eAIT,OAAS,wBAAoB,4BAApB,eAA+C,QAE1D,aAGA,AAAI,cAAgB,CAAE,OAAQ,KAAK,cAGjC,QAAS,KACT,MAAQ,WAAa,GAAM,GAG3B,0BAA4B,0BAA2B,GAAK,EAE5D,OAAS,wBAAoB,4BAApB,eAA+C,KAI1D,GAAG,YAAY,GAAG,WAAY,QAC9B,GAAG,gBAAgB,GAAG,YAAa,QAEnC,GAAG,UAAU,gBAAgB,QAAQ,MAAQ,MAAQ,GAAK,GAC1D,GAAG,WAAW,GAAG,UAAW,EAAG,IAG3B,eAAiB,SAAU,gBAC/B,GAAI,oBAAoB,gBACtB,uBAAkB,oBAAoB,gBACtC,GAAG,WAAW,gBAAgB,IACvB,gBAIT,gBAAkB,GAAI,cAAa,GAAI,OAAO,gBAAiB,gBAE/D,GAAM,WAAY,aAAa,kBACzB,SAAW,EAAI,UACrB,UAAG,wBAAwB,gBAAgB,UAAU,KACrD,GAAG,oBAAoB,gBAAgB,UAAU,IAAK,EAAG,GAAG,MAAO,GAAO,SAAU,EAAI,WACxF,GAAG,wBAAwB,gBAAgB,UAAU,IACrD,GAAG,oBAAoB,gBAAgB,UAAU,GAAI,EAAG,GAAG,MAAO,GAAO,SAAU,EAAI,WAEvF,oBAAoB,gBAAkB,gBAC/B,iBAGL,KAAO,CAAE,aAAc,GAEvB,OAAS,GACb,OAAO,gBAAkB,CACvB,yBACA,sBACA,qBACA,oBACA,uBAEA,oBACA,YACA,mDACA,KACA,KAAK;AAAA,GAEP,OAAO,kBAAoB,CACzB,yBACA,oBACA,6BAEA,oBACA,0CACA,KACA,KAAK;AAAA,GAEP,GAAI,SAAU,GAKd,QAAQ,YAAc,SAAU,QAE9B,GAAM,GAAI,GAAI,cAAa,QAC3B,EAAE,IAAM,IACR,EAAE,IAAM,IACR,EAAE,KAAO,IACT,EAAE,KAAO,IAGT,GAAM,QAAU,EAAE,MAAQ,GAAK,EAAE,KAAO,GAAK,EAAE,KAAO,GAAK,EAAE,MAAQ,GAAK,EAAE,MAAQ,GAAK,EAAE,MAAQ,GAAK,EAAE,MAAQ,GAAK,EAAE,MAAQ,EAC7H,QAAQ,YAAY,OAAO,cAC3B,QAAQ,YAAY,OAAO,WAEzB,QAAU,eAAe,QAC/B,GAAG,WAAW,QAAQ,QAAQ,EAAG,GACjC,SAGF,QAAQ,YAAY,OAAS,GAC7B,QAAQ,YAAY,OAAO,WAAa,CACtC,yBACA,oBACA,6BACA,uBAEA,oBACA,oCACA,6EACA,6EACA,kFACA,kFACA,KACA,KAAK;AAAA,GACP,QAAQ,YAAY,OAAO,cAAgB,CACzC,yBACA,oBACA,6BACA,uBAEA,oBACA,oCACA,gEACA,gEACA,oEACA,wBACA,KACA,KAAK;AAAA,GAEP,QAAQ,WAAa,SAAU,YAC7B,GAAM,GAAK,aAAc,GAAK,EAC9B,QAAQ,YAAY,CAClB,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,WAAa,SAAU,QAC7B,GAAM,GAAK,SAAU,GAAK,EAAI,EAAI,EAC5B,EAAM,GAAI,GAAK,IACrB,QAAQ,YAAY,CAClB,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,WAAa,WACnB,QAAQ,WAAW,KAGrB,QAAQ,SAAW,SAAU,QAC3B,GAAM,GAAK,SAAU,GAAK,EACpB,EAAI,KAAQ,GAAI,GAEtB,QAAQ,YAAY,CAClB,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,SAAW,WACjB,QAAQ,SAAS,KAGnB,QAAQ,IAAM,SAAU,UACtB,SAAY,WAAY,GAAK,IAAM,KAAK,GACxC,GAAM,KAAM,KAAK,IAAI,UACf,IAAM,KAAK,IAAI,UACf,KAAO,KACP,KAAO,KACP,KAAO,KAEb,QAAQ,YAAY,CAClB,KAAO,IAAO,GAAI,MAAQ,IAAO,CAAC,KAAO,KAAO,IAAO,CAAC,KAAQ,IAAO,CAAC,KAAO,KAAO,IAAO,CAAC,KAAQ,IAAO,GAAI,MAAO,EAAG,EAC3H,KAAO,IAAO,CAAC,KAAQ,IAAO,KAAQ,KAAO,IAAO,GAAI,MAAQ,IAAO,IAAQ,KAAO,IAAO,CAAC,KAAQ,IAAO,MAAS,EAAG,EACzH,KAAO,IAAO,CAAC,KAAQ,IAAO,CAAE,GAAI,MAAQ,KAAO,IAAO,CAAC,KAAQ,IAAO,KAAO,KAAO,IAAO,GAAI,MAAQ,IAAO,KAAO,EAAG,EAC5H,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,oBAAsB,WAC5B,QAAQ,YAAY,CAClB,SAAW,QAAW,SAAW,EAAG,MACpC,SAAW,QAAW,SAAW,EAAG,MACpC,SAAW,QAAW,SAAW,EAAG,MACpC,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,MAAQ,WACd,QAAQ,YAAY,CAClB,KAAO,SAAW,UAAY,EAAG,EACjC,KAAO,SAAW,UAAY,EAAG,EACjC,KAAO,SAAW,UAAY,EAAG,EACjC,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,QAAU,WAChB,QAAQ,YAAY,CAClB,kBAAoB,mBAAqB,mBAAqB,EAAG,kBACjE,qBAAuB,kBAAoB,mBAAqB,EAAG,mBACnE,mBAAqB,oBAAsB,mBAAqB,EAAG,mBACnE,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,eAAiB,WACvB,QAAQ,YAAY,CAClB,kBAAoB,kBAAoB,oBAAsB,EAAG,kBACjE,mBAAqB,kBAAoB,mBAAqB,EAAG,kBACjE,kBAAoB,mBAAqB,kBAAoB,EAAG,kBAChE,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,WAAa,WACnB,QAAQ,YAAY,CAClB,mBAAoB,mBAAqB,oBAAsB,EAAG,kBAClE,oBAAsB,mBAAoB,oBAAsB,EAAG,mBACnE,oBAAsB,mBAAqB,mBAAoB,EAAG,kBAClE,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,YAAc,WACpB,QAAQ,YAAY,CAClB,mBAAoB,mBAAqB,oBAAsB,EAAG,mBAClE,mBAAqB,mBAAoB,oBAAsB,EAAG,mBAClE,kBAAoB,mBAAqB,kBAAmB,EAAG,mBAC/D,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,SAAW,WACjB,QAAQ,YAAY,CAClB,MAAO,MAAQ,MAAQ,EAAG,EAC1B,MAAQ,MAAO,MAAQ,EAAG,EAC1B,MAAQ,MAAQ,MAAO,EAAG,EAC1B,EAAG,EAAG,EAAG,EAAG,KAIhB,QAAQ,WAAa,WACnB,QAAQ,YAAY,CAClB,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,KAOhB,QAAQ,YAAc,SAAU,QAC9B,GAAM,GAAI,GAAI,cAAa,QACrB,WAAa,EAAI,OACjB,WAAa,EAAI,QAEjB,QAAU,eAAe,QAAQ,YAAY,QACnD,GAAG,WAAW,QAAQ,QAAQ,EAAG,GACjC,GAAG,UAAU,QAAQ,QAAQ,GAAI,WAAY,YAC7C,SAGF,QAAQ,YAAY,OAAS,CAC3B,yBACA,oBACA,6BACA,mBACA,sBAEA,oBACA,2CACA,4DACA,mEAEA,6DACA,sCACA,6DAEA,oEACA,6DACA,4CAEA,kBACA,yCACA,yCACA,wCACA,0BACA,KACA,KAAK;AAAA,GAEP,QAAQ,YAAc,WACpB,QAAQ,YAAY,KAAK,KAAM,CAC7B,EAAG,EAAG,EACN,EAAG,GAAI,EACP,EAAG,EAAG,KAIV,QAAQ,OAAS,WACf,QAAQ,YAAY,KAAK,KAAM,CAC7B,GAAI,EAAG,EACP,GAAI,EAAG,EACP,GAAI,EAAG,KAIX,QAAQ,OAAS,WACf,QAAQ,YAAY,KAAK,KAAM,CAC7B,GAAI,GAAI,GACR,EAAG,EAAG,EACN,EAAG,EAAG,KAIV,QAAQ,QAAU,SAAU,QAC1B,GAAM,GAAI,QAAU,EACpB,QAAQ,YAAY,KAAK,KAAM,CAC7B,EAAG,GAAK,EAAG,EACX,GAAK,EAAG,EAAI,EAAI,EAAG,GAAK,EACxB,EAAG,GAAK,EAAG,KAIf,QAAQ,OAAS,SAAU,MACzB,GAAM,GAAI,MAAQ,EAClB,QAAQ,YAAY,KAAK,KAAM,CAC7B,GAAK,EAAG,GAAK,EAAG,EAChB,GAAK,EAAG,EAAG,EAAI,EACf,EAAG,EAAI,EAAG,EAAI,KAOlB,QAAQ,KAAO,SAAU,MACvB,GAAM,WAAa,KAAO,EAAK,OACzB,UAAa,KAAO,EAAK,QAEzB,QAAU,eAAe,QAAQ,KAAK,QAG5C,GAAG,UAAU,QAAQ,QAAQ,GAAI,EAAG,WACpC,MAAM,KAAK,cAGX,GAAG,UAAU,QAAQ,QAAQ,GAAI,UAAW,GAC5C,SAGF,QAAQ,KAAK,OAAS,CACpB,yBACA,oBACA,6BACA,mBAEA,oBACA,4BACA,8FACA,yFACA,wFACA,wFACA,wFACA,uFACA,uFACA,uFACA,uFACA,uFACA,wFACA,wFACA,wFACA,yFACA,8FACA,KACA,KAAK;AAAA,GAKP,QAAQ,SAAW,SAAU,MAC3B,GAAM,WAAa,KAAQ,OACrB,UAAa,KAAQ,QAErB,QAAU,eAAe,QAAQ,SAAS,QAGhD,GAAG,UAAU,QAAQ,QAAQ,KAAM,UAAW,WAC9C,SAGF,QAAQ,SAAS,OAAS,CACxB,yBACA,oBACA,qBACA,6BAEA,yCACA,uCACA,IAEA,oBACA,4BACA,oCACA,6CACA,KACA,KAAK;AAAA,IAGT,SAAQ,OAAS,mBChmBjB,wCACA,QAAoB,+BACpB,QAAyB,8BAGrB,SAAW,KACX,UAAY,KAKhB,kBAAiB,MAAO,SACtB,GAAI,QACJ,GAAI,gBAAoB,YACtB,OAAS,AAAG,UAAM,YAElB,GAAM,eAAgB,MAAM,cAAgB,MAAM,YAAc,MAAM,OAAU,MAAM,OAAU,MAAM,MAAM,GAAK,EAC3G,eAAiB,MAAM,eAAiB,MAAM,aAAe,MAAM,QAAW,MAAM,OAAU,MAAM,MAAM,GAAK,EACjH,YAAc,cACd,aAAe,eAKnB,GAJA,AAAI,QAAO,OAAO,MAAQ,EAAG,YAAc,QAAO,OAAO,MAChD,QAAO,OAAO,OAAS,GAAG,aAAc,cAAiB,SAAO,OAAO,OAAS,iBACzF,AAAI,QAAO,OAAO,OAAS,EAAG,aAAe,QAAO,OAAO,OAClD,QAAO,OAAO,MAAQ,GAAG,cAAe,eAAkB,SAAO,OAAO,MAAQ,gBACrF,CAAC,aAAe,CAAC,aACnB,WAAI,uBAAwB,OACrB,KAET,AAAI,EAAC,UAAa,SAAS,QAAU,aAAiB,SAAS,SAAW,eACxE,UAAY,MAAO,kBAAoB,YAAe,GAAI,iBAAgB,YAAa,cAAgB,SAAS,cAAc,UAC1H,SAAS,QAAU,aAAa,UAAS,MAAQ,aACjD,SAAS,SAAW,cAAc,UAAS,OAAS,eAE1D,GAAM,KAAM,SAAS,WAAW,MAGhC,GAFA,AAAI,gBAAiB,WAAW,IAAI,aAAa,MAAO,EAAG,GACtD,IAAI,UAAU,MAAO,EAAG,EAAG,cAAe,eAAgB,EAAG,EAAG,SAAS,MAAO,SAAS,QAC1F,QAAO,OAAO,SAOhB,GANI,EAAC,KAAK,IAAM,CAAC,WAAc,SAAS,QAAU,UAAU,OAAW,SAAS,SAAW,UAAU,SACnG,WAAa,MAAO,kBAAoB,YAAe,GAAI,iBAAgB,SAAS,MAAO,SAAS,QAAU,SAAS,cAAc,UACjI,UAAU,QAAU,SAAS,OAAO,WAAU,MAAQ,SAAS,OAC/D,UAAU,SAAW,SAAS,QAAQ,WAAU,OAAS,SAAS,QACtE,KAAK,GAAK,AAAG,QAAI,MAAM,WAAa,GAAY,gBAAO,CAAE,OAAQ,YAAe,MAE9E,CAAC,KAAK,GAAI,MAAO,UACrB,KAAK,GAAG,QACR,KAAK,GAAG,UAAU,aAAc,QAAO,OAAO,YAC1C,QAAO,OAAO,WAAa,GAAG,KAAK,GAAG,UAAU,WAAY,QAAO,OAAO,UAC1E,QAAO,OAAO,YAAc,GAAG,KAAK,GAAG,UAAU,UAAW,QAAO,OAAO,WAC1E,QAAO,OAAO,OAAS,GAAG,KAAK,GAAG,UAAU,OAAQ,QAAO,OAAO,MAClE,QAAO,OAAO,aAAe,GAAG,KAAK,GAAG,UAAU,aAAc,QAAO,OAAO,YAC9E,QAAO,OAAO,MAAQ,GAAG,KAAK,GAAG,UAAU,MAAO,QAAO,OAAO,KAChE,QAAO,OAAO,UAAU,KAAK,GAAG,UAAU,YAC1C,QAAO,OAAO,OAAO,KAAK,GAAG,UAAU,SACvC,QAAO,OAAO,SAAS,KAAK,GAAG,UAAU,WACzC,QAAO,OAAO,OAAO,KAAK,GAAG,UAAU,SACvC,QAAO,OAAO,YAAY,KAAK,GAAG,UAAU,cAC5C,QAAO,OAAO,aAAa,KAAK,GAAG,UAAU,eAC7C,QAAO,OAAO,UAAU,KAAK,GAAG,UAAU,YAC1C,QAAO,OAAO,WAAa,GAAG,KAAK,GAAG,UAAU,WAAY,QAAO,OAAO,UAC9E,KAAK,GAAG,MAAM,cAuBd,WAAY,SAEd,GAAI,QACJ,GAAI,UAAU,MACZ,GAAM,OAAQ,CAAC,UAAU,OAAQ,UAAU,MAAO,GAClD,OAAS,AAAG,aAAS,UAAU,KAAM,MAAO,iBAClC,QAAO,UAAY,SAAa,oBAAqB,WAE/D,OAAS,AAAG,YAAQ,WAAW,gBAG/B,GAAM,YAAc,MAAO,kBAAoB,YAAe,GAAI,iBAAgB,YAAa,cAAgB,SAAS,cAAc,UACtI,WAAW,MAAQ,YACnB,WAAW,OAAS,aACpB,GAAM,SAAU,WAAW,WAAW,MACtC,uBAAS,UAAU,UAAW,EAAG,GACjC,GAAM,OAAO,6BAAS,aAAa,EAAG,EAAG,YAAa,cACtD,OAAS,AAAG,YAAQ,WAAW,OAEjC,GAAM,QAAS,OAAO,UACtB,OAAS,OAAO,WAAW,GAC3B,OAAO,UACP,OAAO,UAET,MAAO,CAAE,OAAQ,OAAQ,QAAO,OAAO,OAAS,UAAY,MAG9D,SAAQ,QAAU,WC7GlB,sCCCO,gBAAgB,KACrB,GAAM,IAAK,GAAI,MACT,GAAK,GAAG,GAAG,WAAW,WAAW,SAAS,EAAG,QAAQ,GAAG,aAAa,WAAW,SAAS,EAAG,QAAQ,GAAG,aAAa,WAAW,SAAS,EAAG,QAAQ,GAAG,kBAAkB,WAAW,SAAS,EAAG,OAErM,AAAI,KAAK,QAAQ,IAAI,GAAI,SAAU,GAAG,KDJxC,QAAoB,+BEDpB,OAAoB,+BAEP,OAAS,CACpB,KAAM,UACN,SAAU,GACV,OAAQ,KACR,MAAO,KACP,OAAQ,KACR,UAAW,CACT,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,GAC9B,eAAgB,KAIb,oBACL,GAAI,CAAC,AAAG,eAAY,OAAO,OAEzB,OAAO,OAAU,MAAO,kBAAoB,YAAe,GAAI,iBAAgB,OAAO,MAAO,OAAO,QAAU,SAAS,cAAc,UAErI,GAAM,IAAK,OAAO,OAAO,WAAW,SAAU,OAAO,WACrD,AAAG,mBAAgB,EAAG,IACtB,GAAM,KAAM,GAAO,iBAAa,IAChC,AAAG,mBAAgB,OAAO,KAAM,IAAM,GAAO,qBAAiB,KAAM,OAAO,UAE3E,AADgB,AAAG,wBAAqB,SAChC,QAAQ,AAAC,eACf,GAAM,iBAAkB,IAAK,aAAc,YAAa,OAAO,MAC/D,AAAG,kBAAe,mBAEpB,AAAG,OAAI,IAAI,gBAAiB,GAC5B,AAAG,OAAI,IAAI,yBAA0B,GAAG,aAAa,GAAG,mBACxD,AAAG,OAAI,IAAI,2BAA4B,IACvC,AAAG,OAAI,IAAI,2BAA4B,KFlC3C,aAA0B,+BAC1B,IAAqB,0BACrB,OAAwB,6BACxB,QAAyB,8BACzB,UAA2B,gCAC3B,QAAyB,8BGPzB,QAAoB,+BAGd,OAAS,GAEf,oBAA2B,SACzB,MAAK,QAAO,WACV,QAAO,UAAY,KAAM,AAAG,oBAAe,QAAO,KAAK,WACvD,IAAI,eAAe,QAAO,KAAK,UAAU,MAAM,YAAY,OAEtD,OAAO,UAGhB,uBAA8B,OAAO,SACnC,MAAK,QAAO,UACL,GAAI,SAAQ,KAAO,WACxB,GAAM,QAAS,AAAG,UAAM,eAAe,OAAO,CAAC,QAAO,KAAK,UAAW,QAAO,KAAK,WAAY,IACxF,QAAU,AAAG,QAAI,OAAQ,OAAO,IAAI,GAC1C,AAAG,YAAQ,QACX,GAAM,QAAS,KAAM,QAAO,UAAU,QAAQ,SAE9C,AAAG,YAAQ,SACX,OAAO,IAAI,AAAC,OAAU,MAAM,WAC5B,QAAQ,UAToB,KCfhC,QAAoB,+BAEpB,oBAAoB,KAClB,MAAO,CACL,KAAK,IAAI,IAAI,SAAS,GAAK,IAAI,WAAW,IAC1C,KAAK,IAAI,IAAI,SAAS,GAAK,IAAI,WAAW,KAG9C,sBAAsB,KACpB,MAAO,CACL,IAAI,WAAW,GAAM,KAAI,SAAS,GAAK,IAAI,WAAW,IAAM,EAC5D,IAAI,WAAW,GAAM,KAAI,SAAS,GAAK,IAAI,WAAW,IAAM,GAGhE,kCAAkC,IAAK,OAAO,UAC5C,GAAM,GAAI,OAAM,MAAM,GAChB,EAAI,OAAM,MAAM,GAChB,MAAQ,CAAC,CACb,IAAI,WAAW,GAAK,EACpB,IAAI,WAAW,GAAK,EACpB,IAAI,SAAS,GAAK,EAClB,IAAI,SAAS,GAAK,IAEpB,MAAO,AAAG,WAAM,cAAc,OAAO,MAAO,CAAC,GAAI,UAEnD,6BAA6B,IAAK,QAChC,GAAM,YAAa,CAAC,IAAI,WAAW,GAAK,OAAO,GAAI,IAAI,WAAW,GAAK,OAAO,IACxE,SAAW,CAAC,IAAI,SAAS,GAAK,OAAO,GAAI,IAAI,SAAS,GAAK,OAAO,IAClE,cAAgB,IAAI,cAAc,IAAI,AAAC,OACvB,CAAC,MAAM,GAAK,OAAO,GAAI,MAAM,GAAK,OAAO,KAG/D,MAAO,CAAE,WAAY,SAAU,cAAe,WAAY,IAAI,YAEhE,oBAAoB,IAAK,OAAS,KAChC,GAAM,QAAS,aAAa,KACtB,KAAO,WAAW,KAClB,YAAc,CAAC,OAAS,KAAK,GAAK,EAAG,OAAS,KAAK,GAAK,GACxD,WAAa,CAAC,OAAO,GAAK,YAAY,GAAI,OAAO,GAAK,YAAY,IAClE,SAAW,CAAC,OAAO,GAAK,YAAY,GAAI,OAAO,GAAK,YAAY,IACtE,MAAO,CAAE,WAAY,SAAU,cAAe,IAAI,eAEpD,qBAAqB,KACnB,GAAM,SAAU,aAAa,KACvB,KAAO,WAAW,KAElB,SAAW,AADD,KAAK,IAAI,GAAG,MACD,EACrB,WAAa,CAAC,QAAQ,GAAK,SAAU,QAAQ,GAAK,UAClD,SAAW,CAAC,QAAQ,GAAK,SAAU,QAAQ,GAAK,UACtD,MAAO,CAAE,WAAY,SAAU,cAAe,IAAI,eCjDpD,0BAA0B,OACxB,MAAO,OAAQ,EAAI,KAAK,GAAK,KAAK,MAAO,OAAQ,KAAK,IAAO,GAAI,KAAK,KAExE,yBAAyB,OAAQ,QAC/B,GAAM,SAAU,KAAK,GAAK,EAAI,KAAK,MAAM,CAAE,QAAO,GAAK,OAAO,IAAK,OAAO,GAAK,OAAO,IACtF,MAAO,kBAAiB,SAE1B,GAAM,wBAAyB,CAAC,EAAG,IAAM,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IACvE,aAAa,GAAI,IACf,GAAI,SAAU,EACd,OAAS,GAAI,EAAG,EAAI,GAAG,OAAQ,IAC7B,SAAW,GAAG,GAAK,GAAG,GAExB,MAAO,SAET,4BAA4B,IAAK,aAC/B,GAAM,QAAS,GACf,OAAS,GAAI,EAAG,EAAI,IAAI,OAAQ,IAC9B,OAAO,KAAK,IAAI,GAAG,cAErB,MAAO,QAET,mCAAmC,KAAM,MACvC,GAAM,SAAU,GACV,KAAO,KAAK,OAClB,OAAS,KAAM,EAAG,IAAM,KAAM,OAC5B,QAAQ,KAAK,IACb,OAAS,KAAM,EAAG,IAAM,KAAM,MAE5B,QAAQ,KAAK,KAAK,IAAI,KAAK,KAAM,mBAAmB,KAAM,OAG9D,MAAO,SAET,6BAA6B,SAAU,QACrC,GAAM,MAAO,KAAK,IAAI,UAChB,KAAO,KAAK,IAAI,UAChB,eAAiB,CAAC,CAAC,KAAM,CAAC,KAAM,GAAI,CAAC,KAAM,KAAM,GAAI,CAAC,EAAG,EAAG,IAC5D,kBAAoB,uBAAuB,OAAO,GAAI,OAAO,IAC7D,yBAA2B,0BAA0B,kBAAmB,gBACxE,0BAA4B,uBAAuB,CAAC,OAAO,GAAI,CAAC,OAAO,IAC7E,MAAO,2BAA0B,yBAA0B,2BAE7D,+BAA+B,QAC7B,GAAM,mBAAoB,CAAC,CAAC,OAAO,GAAG,GAAI,OAAO,GAAG,IAAK,CAAC,OAAO,GAAG,GAAI,OAAO,GAAG,KAC5E,qBAAuB,CAAC,OAAO,GAAG,GAAI,OAAO,GAAG,IAChD,oBAAsB,CAC1B,CAAC,IAAI,kBAAkB,GAAI,sBAC3B,CAAC,IAAI,kBAAkB,GAAI,uBAE7B,MAAO,CACL,kBAAkB,GAAG,OAAO,oBAAoB,IAChD,kBAAkB,GAAG,OAAO,oBAAoB,IAChD,CAAC,EAAG,EAAG,IAGX,qBAAqB,sBAAuB,gBAC1C,MAAO,CACL,IAAI,sBAAuB,eAAe,IAC1C,IAAI,sBAAuB,eAAe,KLjD9C,aAA0B,+BAC1B,QAAyB,8BACzB,OAAuB,4BACvB,QAAyB,8BMbzB,4EAGA,GAAO,gBAAQ,CACb,QAAS,QACT,SAAU,aAEV,MAAO,GAIP,QAAS,GAIT,WAAY,GAKZ,OAAQ,GAIR,eAAgB,GAIhB,OAAQ,OAGR,OAAQ,CACN,QAAS,GACT,MAAO,EACP,OAAQ,EAIR,OAAQ,GACR,WAAY,EACZ,SAAU,EACV,UAAW,EACX,KAAM,EACN,WAAY,EACZ,IAAK,EACL,SAAU,GACV,MAAO,GACP,QAAS,GACT,WAAY,GACZ,YAAa,GACb,SAAU,GACV,SAAU,GAGZ,QAAS,CACP,QAAS,IAGX,KAAM,CACJ,QAAS,GAIT,SAAU,CACR,UAAW,gCAIX,UAAW,IACX,SAAU,GAEV,SAAU,GAEV,WAAY,GAKZ,cAAe,GACf,aAAc,GAEd,eAAgB,IAKlB,KAAM,CACJ,QAAS,GACT,UAAW,0BACX,UAAW,IACX,cAAe,IAGjB,KAAM,CACJ,QAAS,GACT,UAAW,sBACX,UAAW,IAGb,IAAK,CACH,QAAS,GACT,UAAW,iCAEX,UAAW,GACX,WAAY,IAId,OAAQ,CACN,QAAS,GACT,cAAe,GACf,UAAW,oCACX,UAAW,GACX,WAAY,IAId,QAAS,CACP,QAAS,GACT,UAAW,GACX,cAAe,GACf,WAAY,GACZ,UAAW,gCAGb,UAAW,CACT,QAAS,GACT,UAAW,IACX,UAAW,iCAIf,KAAM,CACJ,QAAS,GACT,UAAW,yBACX,UAAW,IACX,cAAe,GAEf,eAAgB,GAEhB,UAAW,GACX,aAAc,GAEd,UAAW,aAGb,KAAM,CACJ,QAAS,GACT,eAAgB,GAEhB,aAAc,GAEd,UAAW,2BACX,UAAW,KAGb,KAAM,CACJ,QAAS,GACT,SAAU,GAEV,UAAW,IACX,WAAY,GAKZ,cAAe,GACf,aAAc,GAEd,eAAgB,GAEhB,SAAU,EAEV,UAAW,GACX,SAAU,CACR,UAAW,6BAEb,SAAU,CACR,UAAW,iCCjLV,GAAM,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kEA0JP,KAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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", "names": [] } diff --git a/dist/human.node.json b/dist/human.node.json index ade06911..fdb25bc7 100644 --- a/dist/human.node.json +++ b/dist/human.node.json @@ -16,7 +16,7 @@ } ] }, - "src/face/blazeface.js": { + "src/blazeface/blazeface.js": { "bytes": 7024, "imports": [ { @@ -27,7 +27,7 @@ } ] }, - "src/face/box.js": { + "src/blazeface/box.js": { "bytes": 1935, "imports": [ { @@ -35,35 +35,35 @@ } ] }, - "src/face/util.js": { + "src/blazeface/util.js": { "bytes": 3087, "imports": [] }, - "src/face/coords.js": { + "src/blazeface/coords.js": { "bytes": 37915, "imports": [] }, - "src/face/facepipeline.js": { + "src/blazeface/facepipeline.js": { "bytes": 14306, "imports": [ { "path": "dist/tfjs.esm.js" }, { - "path": "src/face/box.js" + "path": "src/blazeface/box.js" }, { - "path": "src/face/util.js" + "path": "src/blazeface/util.js" }, { - "path": "src/face/coords.js" + "path": "src/blazeface/coords.js" }, { "path": "src/log.js" } ] }, - "src/face/facemesh.js": { + "src/blazeface/facemesh.js": { "bytes": 2991, "imports": [ { @@ -73,13 +73,13 @@ "path": "dist/tfjs.esm.js" }, { - "path": "src/face/blazeface.js" + "path": "src/blazeface/blazeface.js" }, { - "path": "src/face/facepipeline.js" + "path": "src/blazeface/facepipeline.js" }, { - "path": "src/face/coords.js" + "path": "src/blazeface/coords.js" } ] }, @@ -147,7 +147,7 @@ } ] }, - "src/body/modelBase.js": { + "src/posenet/modelBase.js": { "bytes": 1343, "imports": [ { @@ -155,78 +155,78 @@ } ] }, - "src/body/heapSort.js": { + "src/posenet/heapSort.js": { "bytes": 1590, "imports": [] }, - "src/body/buildParts.js": { + "src/posenet/buildParts.js": { "bytes": 1775, "imports": [ { - "path": "src/body/heapSort.js" + "path": "src/posenet/heapSort.js" } ] }, - "src/body/keypoints.js": { + "src/posenet/keypoints.js": { "bytes": 2011, "imports": [] }, - "src/body/vectors.js": { + "src/posenet/vectors.js": { "bytes": 1273, "imports": [ { - "path": "src/body/keypoints.js" + "path": "src/posenet/keypoints.js" } ] }, - "src/body/decoders.js": { + "src/posenet/decoders.js": { "bytes": 2083, "imports": [ { "path": "dist/tfjs.esm.js" }, { - "path": "src/body/keypoints.js" + "path": "src/posenet/keypoints.js" } ] }, - "src/body/decodePose.js": { + "src/posenet/decodePose.js": { "bytes": 5368, "imports": [ { - "path": "src/body/keypoints.js" + "path": "src/posenet/keypoints.js" }, { - "path": "src/body/vectors.js" + "path": "src/posenet/vectors.js" }, { - "path": "src/body/decoders.js" + "path": "src/posenet/decoders.js" } ] }, - "src/body/decodeMultiple.js": { + "src/posenet/decodeMultiple.js": { "bytes": 2373, "imports": [ { - "path": "src/body/buildParts.js" + "path": "src/posenet/buildParts.js" }, { - "path": "src/body/decodePose.js" + "path": "src/posenet/decodePose.js" }, { - "path": "src/body/vectors.js" + "path": "src/posenet/vectors.js" } ] }, - "src/body/util.js": { + "src/posenet/util.js": { "bytes": 2262, "imports": [ { - "path": "src/body/keypoints.js" + "path": "src/posenet/keypoints.js" } ] }, - "src/body/modelPoseNet.js": { + "src/posenet/modelPoseNet.js": { "bytes": 2519, "imports": [ { @@ -236,34 +236,45 @@ "path": "dist/tfjs.esm.js" }, { - "path": "src/body/modelBase.js" + "path": "src/posenet/modelBase.js" }, { - "path": "src/body/decodeMultiple.js" + "path": "src/posenet/decodeMultiple.js" }, { - "path": "src/body/decodePose.js" + "path": "src/posenet/decodePose.js" }, { - "path": "src/body/util.js" + "path": "src/posenet/util.js" } ] }, - "src/body/posenet.js": { + "src/posenet/posenet.js": { "bytes": 712, "imports": [ { - "path": "src/body/modelPoseNet.js" + "path": "src/posenet/modelPoseNet.js" }, { - "path": "src/body/keypoints.js" + "path": "src/posenet/keypoints.js" }, { - "path": "src/body/util.js" + "path": "src/posenet/util.js" } ] }, - "src/hand/box.js": { + "src/blazepose/blazepose.js": { + "bytes": 856, + "imports": [ + { + "path": "src/log.js" + }, + { + "path": "dist/tfjs.esm.js" + } + ] + }, + "src/handpose/box.js": { "bytes": 2522, "imports": [ { @@ -271,43 +282,43 @@ } ] }, - "src/hand/handdetector.js": { + "src/handpose/handdetector.js": { "bytes": 3548, "imports": [ { "path": "dist/tfjs.esm.js" }, { - "path": "src/hand/box.js" + "path": "src/handpose/box.js" } ] }, - "src/hand/util.js": { + "src/handpose/util.js": { "bytes": 2346, "imports": [] }, - "src/hand/handpipeline.js": { + "src/handpose/handpipeline.js": { "bytes": 7246, "imports": [ { "path": "dist/tfjs.esm.js" }, { - "path": "src/hand/box.js" + "path": "src/handpose/box.js" }, { - "path": "src/hand/util.js" + "path": "src/handpose/util.js" }, { "path": "src/log.js" } ] }, - "src/hand/anchors.js": { + "src/handpose/anchors.js": { "bytes": 224151, "imports": [] }, - "src/hand/handpose.js": { + "src/handpose/handpose.js": { "bytes": 2578, "imports": [ { @@ -317,13 +328,13 @@ "path": "dist/tfjs.esm.js" }, { - "path": "src/hand/handdetector.js" + "path": "src/handpose/handdetector.js" }, { - "path": "src/hand/handpipeline.js" + "path": "src/handpose/handpipeline.js" }, { - "path": "src/hand/anchors.js" + "path": "src/handpose/anchors.js" } ] }, @@ -350,7 +361,7 @@ ] }, "config.js": { - "bytes": 9644, + "bytes": 10110, "imports": [] }, "src/sample.js": { @@ -362,7 +373,7 @@ "imports": [] }, "src/human.js": { - "bytes": 17544, + "bytes": 18921, "imports": [ { "path": "src/log.js" @@ -374,7 +385,7 @@ "path": "src/tfjs/backend.js" }, { - "path": "src/face/facemesh.js" + "path": "src/blazeface/facemesh.js" }, { "path": "src/age/age.js" @@ -389,10 +400,13 @@ "path": "src/embedding/embedding.js" }, { - "path": "src/body/posenet.js" + "path": "src/posenet/posenet.js" }, { - "path": "src/hand/handpose.js" + "path": "src/blazepose/blazepose.js" + }, + { + "path": "src/handpose/handpose.js" }, { "path": "src/gesture/gesture.js" @@ -419,7 +433,7 @@ "dist/human.node-gpu.js.map": { "imports": [], "inputs": {}, - "bytes": 707547 + "bytes": 711946 }, "dist/human.node-gpu.js": { "imports": [], @@ -428,82 +442,82 @@ "dist/tfjs.esm.js": { "bytesInOutput": 971 }, - "src/face/blazeface.js": { + "src/blazeface/blazeface.js": { "bytesInOutput": 5194 }, - "src/face/box.js": { + "src/blazeface/box.js": { "bytesInOutput": 1617 }, - "src/face/util.js": { + "src/blazeface/util.js": { "bytesInOutput": 2429 }, - "src/face/coords.js": { + "src/blazeface/coords.js": { "bytesInOutput": 30729 }, - "src/face/facepipeline.js": { + "src/blazeface/facepipeline.js": { "bytesInOutput": 9436 }, - "src/face/facemesh.js": { + "src/blazeface/facemesh.js": { "bytesInOutput": 2365 }, "src/profile.js": { "bytesInOutput": 851 }, "src/age/age.js": { - "bytesInOutput": 1244 + "bytesInOutput": 1251 }, "src/gender/gender.js": { - "bytesInOutput": 1996 + "bytesInOutput": 2004 }, "src/emotion/emotion.js": { - "bytesInOutput": 1888 - }, - "src/embedding/embedding.js": { - "bytesInOutput": 1374 - }, - "src/body/modelBase.js": { - "bytesInOutput": 1091 - }, - "src/body/heapSort.js": { - "bytesInOutput": 1144 - }, - "src/body/buildParts.js": { - "bytesInOutput": 1289 - }, - "src/body/keypoints.js": { - "bytesInOutput": 1824 - }, - "src/body/vectors.js": { - "bytesInOutput": 1047 - }, - "src/body/decoders.js": { - "bytesInOutput": 1780 - }, - "src/body/decodePose.js": { - "bytesInOutput": 4101 - }, - "src/body/decodeMultiple.js": { - "bytesInOutput": 1645 - }, - "src/body/util.js": { "bytesInOutput": 1895 }, - "src/body/modelPoseNet.js": { + "src/embedding/embedding.js": { + "bytesInOutput": 1381 + }, + "src/posenet/modelBase.js": { + "bytesInOutput": 1091 + }, + "src/posenet/heapSort.js": { + "bytesInOutput": 1144 + }, + "src/posenet/buildParts.js": { + "bytesInOutput": 1289 + }, + "src/posenet/keypoints.js": { + "bytesInOutput": 1824 + }, + "src/posenet/vectors.js": { + "bytesInOutput": 1047 + }, + "src/posenet/decoders.js": { + "bytesInOutput": 1780 + }, + "src/posenet/decodePose.js": { + "bytesInOutput": 4101 + }, + "src/posenet/decodeMultiple.js": { + "bytesInOutput": 1645 + }, + "src/posenet/util.js": { + "bytesInOutput": 1895 + }, + "src/posenet/modelPoseNet.js": { "bytesInOutput": 2025 }, - "src/body/posenet.js": { + "src/posenet/posenet.js": { "bytesInOutput": 639 }, - "src/hand/handdetector.js": { + "src/handpose/handdetector.js": { "bytesInOutput": 2881 }, - "src/hand/handpipeline.js": { + "src/handpose/handpipeline.js": { "bytesInOutput": 4524 }, - "src/hand/anchors.js": { + "src/handpose/anchors.js": { "bytesInOutput": 127039 }, - "src/hand/handpose.js": { + "src/handpose/handpose.js": { "bytesInOutput": 2065 }, "src/gesture/gesture.js": { @@ -516,7 +530,7 @@ "bytesInOutput": 3669 }, "src/human.js": { - "bytesInOutput": 11382 + "bytesInOutput": 12754 }, "src/log.js": { "bytesInOutput": 266 @@ -524,14 +538,17 @@ "src/tfjs/backend.js": { "bytesInOutput": 985 }, - "src/hand/box.js": { + "src/blazepose/blazepose.js": { + "bytesInOutput": 627 + }, + "src/handpose/box.js": { "bytesInOutput": 1463 }, - "src/hand/util.js": { + "src/handpose/util.js": { "bytesInOutput": 1790 }, "config.js": { - "bytesInOutput": 1514 + "bytesInOutput": 1617 }, "src/sample.js": { "bytesInOutput": 55299 @@ -540,7 +557,7 @@ "bytesInOutput": 21 } }, - "bytes": 309482 + "bytes": 311613 } } } diff --git a/models/blazepose.bin b/models/blazepose.bin index 2b6587bb69bd8a45552a255562203ca450d765b0..378eae6af6c70ed73be641a01cd729429b73f02e 100644 GIT binary patch literal 6802836 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

c&S5xY!epsjh+)_RWb$Hsxr>6CY%!2>c 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�_1d2o5UrdCK}RBeqGr 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

h>yTK;%=b2x<^_`*%~{@T&V2fb8vpg65P3P z*tJOfiy9p;a&LI`DPz4Swf*c3s;=mdD7pj=dVa$|^t!UAHbe0RSp=+DXAlLU1GeSC z`O=%g>88%=X=>23%V-a7sb>TiD(Xa4)B<%o>*PgJde7MA~@yzpK*i+ZbDqg{peQ!P^oxg7YN?!NDW zda`9Ad!Q^CS#NvC`K<5EXNoo#wH2$8lio4$L;N4$A@BlYU!;jssk{i-OGfGETDQvI z$dBL`6`PA*`AWkrbfe*w)DBs^&Z;>$T*SF?fI=V(pu29J&1 zcUJQ7s{hGg-73vG@C!OHWf`$N(G%SS-$pguN$TA}o*)+w(%BJq6*uYgC@>VXXwZS)wCuRNdsLgo&4uUh67 zYSIk16<6v>i3L1;XgF|(x@cU*@7%i|BRH!*H6qp7Iv_OtcjK zs&i>wlmdf^vGR|qb+Qrk*I3sO6g{B32X4-PscNDtQ@&?T#@j31oZ+%&frjDcJ`Ob> zo0}R({!}OX`lXrBh0#j>e)Na9xfWCHj$>*KWV)(KAp@S6iUR)v2i!IMl`*n&JeZdu zR{bh3ku{;b;7iGGO3WJ%i})8Rx>2aD89JuC);lcp-OIEZ^f;h#PsXj(Th;kUAKgdU zc6W~UEty{N28^i+9ZuI4eN%gT>3O&XccDzHtB4ByiK2DHIQV3BJ^k?LA?9hSOQ=3s z8>1L=e3|erILVomIwBQM{p{6xG-{q|4#Co#k$|FMct3I&9LGJGlA!!8NY}Bf_Oc&j zTqHAPwz2?Q;A@L6j#1xV2wQ_+C2xHSEK&c~vmNQ-4|BUJzd5s%@~Yj6m+HUTGcvlU zW&Aarwel47F(t>xCvb6DxGA*`sbL%lxD*#lqlt;(IaQq^kGzm%CbqeBv1kJ5k|wD~ zCTctjm5q_##%x;(_b1j}pcAJ0>iYwJTYj=frumSOWS6F`Vsfc#!2vW3q=LoVr?^sc z)_hxjsNj3WCx2F8SkMF3Xpoctf7M-dZB-99gG zl#7d;L*jH7Gd?(qW zWWk;Qka|1xS%vbiP^X0k^|6}wF>htQc!bLm`3|gAGQcqbTTPenyp#&4n`~&Xw|ZJ! zhe(ewS3VDP!cpR1e7u;F1#D64P3o4SOXwmLs-EaO>}v`<0hd+}LsFH`L+2}}Np?$i zRjQ0RAv-awDo~uGc&D0=)tKglotkfcxjVfu^u z?1;BVTBo~wIg$^`<&wsslbUB~u7oN|MlOanlK0}Z6rnZ~M%7gRyhvB+sgOb49cwOs zSaS`3ml_kA0G*M4gU5^yCGFGSTHgC2f|YI!`VFtoKF`QkXN2QiSd8=d0&c6l06D7` z04w>k4X5P|$V~P=c%N>pd=VM66@-5WdW(lRs(8mD4bfVvUEq&uc(8k-fYK%uk|^Wf zz;yB?_P5fI`qlTB92T4{@2;p{zNDmqba5cdpX`3-867$0Opp}2+HmUg0er5^6x-48 zfa7UjAg7(@6dr>+j1Ie`M-)YT~PIt(vcy#h>Hj z5|r~U|6*V|?r{}X%?a*O>Q0<^JyOT>oFM7L4V@9!hqjxMA?U zWVYfuk<7P%=}K#4DA=0Y$DJKdMQaJaaaf=*MuW=Hq$>w(M2%m+db#i z>4L(Df%+IIpjtZW+3Q1}!wT3L|6V;hxX+iF<|Ld#L%1u+3^${;kvrArG%Eiy!GG1I zj#bE-b?~qn zete+5ejWV7mhH|4CDcj0mh1q#ku%zBN?vd>dAKTB`5)O26~z+1F@Xd2hx}3Mka=U( zJyE824^=-3XHMXfaOSIj|zq(fF~|o zrVb zH`#D1$q7&$qD+M2s6?#h_U;C*iLP4RZa6~7X|3V*krAOx+v4zTRzvs}aolzZm~B>@ zuDka8hRSw&vdj)sqw1!_AYHb5yiR}-?vXw(b9s!GJPs~PzDo8^TSs2Nw?MDeDAA1Q zE`!+~?WmBn>O$%$;W~jfwZh(wou3Z|21_M{biHObT&=z4{#3;TJvsq>q0i&R&!3GM1@9vbKC1?C!$K^c)t0VZt*a*-6) zPEZdHHaCrwH4i!C_JIc~>KK`1JUA9Mq)&=p4RH+I2x_*Y%SGpqO+_O8 zDUXmfl>&%LL09J>TLXL?B#6y6H&Q>rq+1~{(7wK+>|Kl{WK}Fua?!4`Dat+I38guF)xU=SRI)Jm zoYsO!t_rA{YFLI4x=`yRvy68{L`}D{g^~8=*=CvaEcKbOkl5+CL7cNRF(0vl8Uv~l zCn;|@)c&Djru!iO3ARgBj#rvFM6v1x83vETze>Ku=Z5}gO(c%UV~;}Z3d_Ml8*<3l zu<(nMS=7x`mUtI|RrOS}wLOrV@_*wWm)*kFC|W>!&~j=?AhBEmx4`#RY<7NUOW;4@ z$JFBRXqwF^4#30`TgZ0M*i|x;_rYSYe$>}94lyq9C`+RDVEJsIC=`VF*h6biq%IL7 z4vW{Agr>EQ<)V>pfqM>BPSL7!L#+U)bRY6nbb%XxL` zVc?D^O*x)oiCg#{pwpwD!+jL(6+ab~MZeSEi{0oN;r75`{XX?hvyfTv8so`lBzR>!{E^@Z`x z;?9OU5M32*SlPrW*>nM{Jrx`W=SG`qDtvX)88_CUrOyuY>|n2F>G4*B!&ezN<*LxS;OW%#^bM^t&g zgZqh~Z(^k{kq9T2ErC1v&6U4(e@(L#4+5JlH)t)jX_8Cyr^cL^Jz*+1ol=Xs%8ur5 z06uzZbvB~Vn5t=}+9!J?x?}4=Uz%9w8t5`B?}unqw|oa7&>hwm7%zk*EJX_pR0F&a~HahZwk#(zGad_$4X;=_pz+8$c$e*`H(5uf98sNi9j5X8&0|cOsBle6Q|U(EaB+@vwspQK*^?{31mB2X zi~UCkeD}Ntw+kH&{Xs&WW^M@+mHjMP2JNOA`A0gph?|+8i?!TB(TR$S{zB;pR~mB` z?Sp9?zZWv8U@k0iw-!x_xmrFLtnx7L8t~H89XsKEV;@Bv!v=b8dE#xaoqe4dzPIj% zRq^jvwoW)Gs$*O- zufsN3e1=@*GxWW04=WGNk0m7u&Qe+C}gq~k(z3YBPOfydN&rMioy(AuBKIjd>JuBu*I%DM}ZKN{Ws)E+wJ9lT` zA6a&MHTJS%WxUb0*3{P(iTmoT^$^m<*m`LjcnLnR)X8yj>lG?t!fxd{h(?T8{$ufc>@_P-vdBCQyNis2g1$!;HR5&b zw#jwG0{T>R55F+!6Iv<#3Us000H?(zdgfI&BhD7?w~Yj6+4AuoEQc)xo*+HzNp%;S z!%_=6&eNISv9hOdujoqL6V|>;BYKSe8PYh{;$!FsOP3dP5N0rR1*e>)j%`+b{PJRy zkxcMarPdj|l zv!*=jWhR(14`{3SUbdyYl%9qTN#1Y!kM+fRiT;{D+*kzu!hTDmqBOLfv(UE3dCr=a zxQTPt*-5h2z>a&6fSRX*9j)~^^OFjJqXoaknVi2RQ}}g7KNAQeo&F}t?HtaZEzC1b zuGE+c5*C{3rKC$1Sgq&-79)km#^(z;NS9f&nYJRSOKFO^t*)%Yv~6BU7ZaI&X1 z+8ell3@68_ZK-D!cf_^Toy@C)+e(IcCIV%Oo?w@HDsDq{zciuZ57ysZPp~N3y?PUI zy5=ACD*PYxf#2#m%Fh)a3zhhXyL|9ls2z@)x46$$50oc)_9n1cqJ(7K$hZ`uyKV!S zO(ii0_!<&+puQ?y&n4cZW<^HHPoh;CHW()t<9Evij5^+ops)nvPl}Y5(|z3p%_Lqz zLX9dWAQo~gbr^qllCfA~SRs1m8XqnGF5XhVzXsvpgoF`U< z*Z4n%-ytok#xeDgeabIpVa6O~LoyRzYWD;lXuBYdRm1RP+a#IOvzmNfumEToIuuL_ z^T}%Cc=sx#S9o27C7+;ZrK<>P!E;qTVlA~djHBLsBZr6=|COaiN<0Sz3fl^74UwY$ z&DrVT!130@qVFK$h;hx(=6DRo!?+zR6^EqlJs)Cr&-MPNNqux@l}t^FxQb|7j%a#Y ztJ$mAEcm?gGPQx5@9yW75JOyhl|QP6r*9=sMbiSKs)qYMbKiMJRWEi7^yB2!dUA$(@tJ@NK0&jFrB4Gfa~OJ)Jx%U?@AQzAql zj*=NE^}~~S4zCZNF33`x@u&GcUbU}|-(6qiy=-1#v{xtCo)c63Ier=PgKf~hN4nx{ z`c~~$Cyv`QKS=GN1H_Fefais|niXkB&swd-ft)S`>H=+9zij*Jz$>;X3o*wOUo;*O9y0+WygKH#Ld+gX^ga2 z{FeHhWHwMksO0-1wN`=fOIk<%8d+Xy6XtI5I^|^5i72g}R`FO+p}9k>Hm-|Aq5tW$ zz|dG5YfS7G=aqArYuG1)|ES#RwU!2s2zt5tk*^QFQq(Q7pZcQLhW|${SIt&#P^U)z zMpocA!3thpIK^$F#N1hd$-XwCZrB;=7WxfUm9_f`*qvM4QEIz$>lCQDX&#Ns2OK^nGu26;|B zE>vtY`09vZftB?Z`3BSCz!QP)f|D^mV-I*7K1V4PAA#%K#p+gSjM;_X2^uczt!w{=Z+43(0=*$;VPr)A9GssZ@2E$k{*rM?|G^#kpax$c@BEJw1 zgKLp7#udU0U0Adj91JP#D|8_TKcx)Zr8n$P-da{vQ%2mEur15zT2K3-XTs+9-*i93rLf&12Ee5D{$%Een+ ziz~(zt}FNv^X2Kp!@w2vuK8>1pB!IG1o`EtkeMs&D0E^^3*R&6NV1Es7X5Z6#$UHt z=$?WG;5&APbt-hign2mhmaZNNdGwW*3HIUE{N!d8H=TCOBwWO_alRIwwYLxwU~<7| zM@Q_YWgereX*K_w@t3^;-nEcm{}S{v6~!fcXQI91E=!oPgnKg^;Ehk-Ral9(5KWJ( zEIXF;CxtDUP>?PXIdsO-q7LO)*o`WSeO|%- z%9*12Jcz@HI~V_>yj3ZSb51h2Y&~O6enVT7H4Fb)RL37@X&e{jZ8T2+e&;I^IvHX) zw83hV}rmQmm5DEJDxI|kykb-(I3~sI_Z z?U3IikeOczyOmD14omJ?h*e;TM&*j6F{LuCHnq@ypO_Twrkw%Ya4|?Ep&_geH?qD4 zzrhmIS?Y@-gSc8aRznd6@DBJ2ci`8J3;kOZdaP-6)OA-JG>$llD10Ni+hJL$J;JfBaJOfDRgG6A zQUic$(g2@<+JeuO-e7ZTRRH6UjRyQMp5WLBoQX^~54NX=niF%JyB*K1zkqV-Bta;A z48JP%OGtlv@GZ5OaV_@xwD^%ih(QzagVRKf17R;)n}9v@bIRCcp7U>{8=)p3a|N%O zUlLekj5E~m^Tef!Zp@9&!-7mw?3`a7(Rskf48l@tEwoAu%laT0;^9a^nHRC z_|M6{k|<{*c-6U5^``Qr<7Ie?Y6saJSdRCqh1Sg018SBGtTbJV>AP_`Oc;bMr#1H#XyG}gaeE{45j;wC1 zIZS@0_=?5>o%@eC&C5%eqVYj!4PV9?ec7j*`%tf*FcHLR4^~3LPx^yu|jAt z^G4uf%17O~s6e@PC`%H?znWaP>w`-P$>SV`;}8klWWn8lfxU;LMk;nxRwW8^QBcv`NQ2p>YjDIU>DehgURo*kC&GN+m-E;#Ttz# z(^EfrQlN$7SMm!r0&a1<71wj|#2zIGeMvq?%u!F(gwZqLJMgRXKd1rkabnMErD&34 zyl^Sr2#RpFy8dW(Fh9f_1L2}db3xJ}aLpm6A-fT0!7yZcj2&>kk{|3v4e|HVa0wM{QMy<>DAHKbxr@YQ$hA+j z2cRPjm0eBzqH9T~L>fsO!M^k#^7p9^{WH`(Oe^H5`mn0M)I|)lt1}BgKX}D-MN=$y z=!ylN@ECF+sPhhn>mtEmQq>qqJ^drc70m+6V`ggfxbTc@csPlA5gYmU<{gDF-=63{ z;l#?0-p!Kd@G?9<^I=JuvsLOAR-)H$yo>oYJssJ;S->6jCS`JJV?PKp{V~kHlb&8_ z;X2kUW!@JyFEF!OZ!A(Du?ET)xiYBoqBfCSLKs|H^h-5EcwcD*zJZ-x+4wj8FYi~y z1qf$1g|AUf0_$Czv}8PAyac_|dt4BMl(8TUU-H{fSHej)`tEz_8KRQWr$?_uZ zsa~#|r{D&(N*gD>lr&B!=;au)i27PjqOGK(AT=~n z29<7h??MLzsjMg!S!{JR6;vXsBeEq`qO8V}M%Yo=#bb z0!NlHIn!Q~WCp-v4r?Hn+&IUhqeh4G46C$>^ zmU$VSP9sY!QX2t^X9rQTgL6Xuh{`>RwyJtUAjZtS2(AmZO_+k#FX}))k(6K_U3g7E z+E=t4GuOaoUG!ym^`9QAwy7H{|faV`_NVB|LqnJ~8kaLq= zr|{{RqML#d;8I^9reP<#crn|+aa9_8PDZI9>1~4@T_e-6gN83Kta#}h;2mMwfxUt) zc!uVl^|hh9bAj-aw?H?gaI)BAKaPC$Gi+JNJQyfi=^RUqB>pH*YX0cv!?n_@TF66a z&BhLrbrRUokhRFP0KCY*N35c^5#|6JyeA6EltQx`UB`U`a+2Q)*2t!&L~U!(Ut|lB z)OQIwmy|>-z?Zri!7TwVwb-Foj5QA^2Ki4NX@cdV3Gzv<7eyPuwx9@oOrIqx6?ZW# zX1DW<@Sak{5vQ=0Kv7&3@Y6cOpC=jXa4@?Q0$f|3Dv1_Nl%V$K*mtFwjG=XDSy((} zakMpd2s6!W^EAzD4xh9Jj~j9E65luG7F-yQ#zlfB`SrvbVVCl9;%?bths}T+>j^KI zreWjN8*~R;<0-oknab;eFRz?zyJhc_a!uOHxC?y_Zw()k zeR8{9Cyf$usBAXEW1(0r{9AO9SnnLibxNL4DMYEFo|zy)gfATv5F?;@7BRI%gQVdZ z;6Luw&PJj{JRvd68f@B5-Bh2Ye^ibI-vD22_X|?dIL`X=mYyW5f?4Y`7-!0-7{}}T zQD5W-!Kw&IRcU94dsAKMC#>HMdG;^-_HYO`D5n+tWP8X$Mt0$Q*=B7n5pzF#N5PH! zy9lmhl`J(>k3UgVWtEz(;&Gza$$uS)c?oei`U>qNn^y5bI0b85eUdRr`bVBa9P#~1 zSO%_yhFL#wIuL4#@7^jqCHXEshL(oISOrqwJ{wDM3drl|N?Kd@(~4^37W;@OVtC-W zMVo4$EL#g3EyLAm2CFcYaI!sW1bt^7D0=H&oUpiJj$)7ODfSf~M4031c`hm56-a3e zY6mtCJRzSUu}jvY)mS#whzG^}@jQi{n5keic>xSwbZ2Ecj9PgyONr=5^t;uyw1MECN?fcMuSmA4HZ#4Bgxtxzs}LXTZBHgf6XV5e!+5X` ze{MbERyxAQ5{=kNmu2${&=>G2ayQ-_ok*N9ja2QDEP%+QROqXBRB$V}2fNIh6We8o z^7{IB0R?1+JW1hDU(^E3o02i+eX&#Ioz#vG^lwz`b7=DF;n@-C{?2?x;6V1MB} z;}Ah#$7^S25dr9Ewe}rWD{E*V7gVTl|7{ba@CMb8x&(5>y`feGGh})EbZ=Jy*EK`Y z7XHha0K&m4ah6RW|ENzBM@3&;4HRv|grk?`8z`gp0Y{FxW3+&?O z0D$?c@fq|fmM8F8Q!ojM82UNKNK8OWcU{T}NmQN?D2urr&dBcaTPpfQ`=H}&jqN(R z5_&{-!+sR+^iAXpA)5g##{%Kt;y<({#1ix;6mN6MHO5W0%|s+~eu2ii&$_QDXO%ono>%$80ei+MS~+U)Nw~zl$=Oqp!+1r|g+;C<)JDHZ09L3Q zx}M=Dni)@)ObzZq=ORM_m1L8&_VU*Hk>-KH4X*j<$Ba?xvp%a-E7%X8()GqJpeVG$ zaZgoa`mIbzdFz|%AwtW;jift@b5kWagp%d5z#B@K0_!`a;Wqb|HNnKZt>WR_Jr3PuV51yZT;W zj_pyIMA?DUQFgsbLKoH~VT(L2BU_Q>J>-rEd6I+vU-ojL6v?h0re8*-k!Pya?kUnS z=4!?44NnDom9)Tf%>v~$?^(wba%Uh&tk(6F9DqB!dwDk#;~XCT(POnO>aXuz- z|6<8~*%N;%<I>*UVJ_r^uf--eO2it>;ZGu0gfE4vh!)^<1G91-FbBhc zk^XP~uMt1?E3hFzh(E+9g&V48#axHe{j0(~kP=@9vYoMi`Ew=-dIhxb3gjx;sCAGH(f_JJ z8?fa`vWxC?%@plxT}j47xtYwe+>KF%GO+rJW{R*jDfovqxOhEyKtD14b^a#zBmYfe zwIvheLf7FL_*74QQ(qxhHvo=A5+fIN(^R)L$JC$kXZ1(;xxRUkH=ma_TM zzMM;eXXpy&BF#5yIdnAjknUdOG_q2+leG9NWLr2YS@&9{<(u?2;|bD3eN(ba_5u4# zt+)RTXf0j5SztqXQ@>HS+Bhoq?p+{h2>y|zQw=m~K~LYP=w$S1ba$$qG?(y+yQxz1 zRk>7j0i`^plDSf{SP;nO7iuqH9lSlcETlt00#XWJ@~#!!Mj9l^AiaJvEZ4Vy+Gy{( z5&0J7Kw!Inwd{d}<&&s$Joo&Ke6LDsD`Iz0nGYEc|BHMBLQq3*B=tUiFg{<`8#=`M z#F-k}M}gIALq|mS`9;R96_-8rwT<0Fp*+gZuZQ;&)p$BvhKXx^bHn?Qhs0m%ZvM>T zKAIEAKm+dUYu6AMwSZ^w{-fjo8(_kF)zy^zY29Za!q?P;G|$ON2#LK{%E3~QReVrm zMeC$%^o@1j)N6@L#O%;?g%gTRUu|8Z0>3K)sh$!I%ACPNI)$Fn*-`D)HUXHgp`Rs2#*84viLPSpJWpvtUyj?ZPmO;sgjG zfdqn%)ZN|Ped_KmTVk$5wu(87x5o7hi z#3scQjUCR^6e7&~!&BS{`J+V{Ar# zr1k~#lR3&B=xDMaTf$d-mQZhQM%o_Hh=9k_CArlzm3tHCQ4K1O$N(d0z&H6~YBcdP zd5YvmgBd4_ziK}V*$Sq!qly(;&95&x7oU#(lQPG=!Bdew)wm{WCk5lz$VG*J%fA%0 zA>!T{6^qhN8sFeYf}6$biNpSA{wLx%xX~n9M+DE{V`+Z!4xSbA@pF(-hO)p#yt$|w zEQsZo9{?|sLJusR#9eHW)$H`Jl*fJBMZffZ`91Se$5djIvds70S37J*Xv&rGdWjeG z6@D>TX#0!PK)#;(9Pd-<;IVv*G`MmDJfAk7n(3pvX9NzySAsK$iC6@^W$#+mQ@Rx! z7B4Ms2cMRdkWH}u}`}|A?%4 zf$3Ep)tm70;4no;)oATLCQrD=`69L`b*gPyLLls>n49c`zjGavzAL>6C3~Ut#**QQ zM!ci$1Cilm4*JrOQPG?;k-bcM#K4Y3sS}~S?)%sy_^WS?YLNX-!4U63$2K_2Ig2Qc zZnSsOa5QwZe)$tQgl#q_3Q7YPWaZj%0UA7BdX)W`m=Qdo>`#t1SF7Hrj|Pu(adKAL zD|acFCliA|HErE_^zVU(!Kb?K)|RTffXwesXqoeg^U>BNCj%X%1PQVSC26tGH9eV~hwf=Q2JSo0%0i_DQMy%xKh_ME1n7su z0(6*SWy-GX*6IgH2=0MNsM=UR{B?0|5kQvPPi5;|&C~X9{85X-ll2B)?j!g^vW>tT zJ{Ml&lgpb3>v*!|4V5d9xzIbA4O;7N74}6NnPT2!VWs9-Vq&V^^h~!|^-DD*GKs!e zH35@&ns;@9zqIKcunY3{bRpf{ITp3Dd= zakq+mGjx{I{6^7U`~xOc@l#T&@)w0`@OIoi_UpldjCOj6KE^g1IR#v$vYlH(Kx&+ zdF0zlPK^%A{4Jaeok{EG2XIs}?}b(OY?BjG%b45oO~d4ZA8y@><6p zPb|&vZto2AVcp=oDbRkJOUMQf7r^(dTM)r%&zJguFG^jT)!h8X2V>s?* zl08es#W#djM|aOj^F>jnt&U`BMtLd$A$*T#6;bY30lo5!WzV!qSZjoCCsg*_-jHJz zRJ!_=U16;%mkRFyy7Wo@!sKit&gQ0W*AIcXmic983;sC9I{T+vh3CK-5DhC3ya8H4 zoxR8XYs<%Zkiv`7png)(J=QYu2jDCyEH4wc74n%anJ-19QZK3UPBCwFj`R<8Rhi^P zT67pg$^HX9GWWF%<+h~J&E@9L^r7}RyPxSC%_0D~=}J-h1=m)|TcVxdl}TRcA>x+S z!U5v5-e&L@MsK@SXmFf|CySr}&Rz*5t0IgR_Vpn(r_T;LQ!a1m9U?>=X%?POT~ zGfl7`=UC=K zeCgSewnI3|E;Kjv9)t4)EA&E64tZHB%y9CX7Jm_sA=Z^}!QH{qBBJyqXEt|-;F4LW z?}&WjU?q3arQ%a1=7QBgzFC}syCykn%btgU>i#wVgdMRocLM1i>_9EnV}Sy^Y1Y@A zqh)5!UG)k5O|mKdTzs6m4Gud-hx+34g7qsulP&_NIPKO(CiH%f zp&aol+5X_oc%`Z|m?`;e+vh!IF47%^8~Pw#(_D6}EgqF5KpprGtW=$~E~t`8fJkkD zSu)boQ!z`jkvW#xl)SF{>74HS+jTiO5F?XL@A=xi?D@W7aR2NDWlwXzmMxMBEyiG4 z#Z{(>c@f^HrWw9NbU9z%NLh%cg#n2}HY3gXEjk)V`~9n467!vnZN&P)WottF$Q(-NzZBB+7%R#L&%#=#ILt;oo7w4c62#HDE7 zX8fI++3XFGnb>2&WTXZ9QgBPA^E8IuSXBJYEOEsI*`bOa{xWp5zJae#5HWo+w?Q5d z4|s z!xXA9NURhQ-m#6rrUjzX+ds| z-FA(NUm?88iK@4ZLR*87&9EE3TQXhHkvK)%_R*pvZ1ZhtaTYYr_f6JJ+a>TMGAL|{ zWyHEk4X)l|7I2l79SOz1960O7O;uswqL)CWo z1Mk4RU`~d>JHMi}GS`2-YEQBoa>+Ls&y*B+Mx|n|O~S?TeA{Dt(}c|UTJ|5$Z>^G! zi3ke+!gr&8`7Rn(MvfCZpskq2c^3U*C&HkJDE|&EGBsxiaRGHYJY6n8*ZXTDHe$hXok2VG={y^R-5<<*Gq3j z{0f!J+o$fbFU&wQJMec9EV4F=Qv1jbG_B+xiPOb1E+w7x$+n5{6Q;00qji-_c{x!|eK9Qh>N=iqfxS+Q^46!!;kM$x zvnt5SSQ;y4?txF1HlTUa+l16+?2h6F+BFQs&GuC(F3ls(|KMEFEV6dw2Iq?OZ^|5aOKYt? z2~)tT;uLi~WvZtb4Zw#*?e(uRHc9y!j(;8acj%O_1!5OBMs_wl_Y8y7tjVXVS0K^mO829K4tQTyf__gT+p^~!a z`J&8bu317ExR=)qNY~3m1NpGGH{6Y@5j;WC#QT-qrOB6?sfQ$-?93bT%lvz3Uw}mV zTgiOc74Bu{Oi7qU`9}I$JDZhGGpk&`Inr!b;H<(L_gdTEg>;tX;iXiB)0=u^aXoVShQc4KssR73sg z9A0X{8P;@SIpZ=bZ0}!C4h-bYu{cEs)5?l20ysa)tjf6KUvE#Pn?woVu;n66U5=GZ zA={NcHFCsN;B;_y{wv1q;`vD2v)qv{I4hhgFzf3V&kd4LnRqdW!+2_y!`FCp#x>aj zePPl%(49F3s%5Iw|0ZS#`#EkwU4ZW;vpMa-63J0|aqxe@5VyCgAm_e(x=kmWRgyuT zGTOwu3a(MB@n0T6_D!*h$Z?MIwu?cuwCL-=N5tnz^++9V*;I9|z{oA6EVlotcIeiz z?s(TL3AjPlT9gGHEDOdi5s!hJiB(VyIn@m&_ZpK3raK~s!H~u7N|RrW%Z<|=r+g*4 zP4OYz)}r6k)>xl7A$ciDx^?{@LMN~%vJCfbMIBpja;{}s-d=#az`it>9D0K z1YD{=LW~t1_Euu!RWZTJz(i#q_ZiNpm@rn$bHGm%cGlYE53q6EEB>ZgOERzdUIs>K zVBceu!I}mQ7k!m4&Nd1RF1>BJUzeOVGBO{)D$0TMAzQQB#f~cO25QU7JRLMceH*E! z@GrYf>8m9UO(n~@oRV*WxmX~D{RL+yo!bs1c{dstMKF~ZSH)sa8Kr9o24l*xJWLh74!J#0o= znDOXv@~42FvPZ=%{9r$fJXRK<3?Iw#hsYF4tJGqF#xPRY#W@BW4*tUi6%&L*p&JsAG27=7N5Cm~PT(f89XuZl@qGntRfj$2 zEUYv!T?pHt?uv8y0QjHykE|Vf$O?&0_~XHovR);(0JEiB!h?3= zTd;br1Ma+nZ0P`6L#ELllq{4rv;8WxG0my{AgRn&IMmZn`bPL)X_Ne}LNZBh39-rx zDtHS81NdpQUSJa(c3uO=OS(C#y>nnI<9TYml!LP6sfYNVMBmdELET*+c&#K&_=lOZ zohyKD@Qx6j`~!!jJt3?2eBp9a#D9lJLV4`R;D0PLD596ATyWMG_6kh}SBo+%%Ng}- zoxKCuY7ta8!#&G2N!-aXO}eG@m2m>PkZs0Nee;>4kPlFOcr-WxPEVH=*8&#;sHKNs zA9A5!8qkBU191DrvKBPZag8H}zpx<+`D z{Y+Tp@8azsDKE@o_LeTQ6gVmOV;7$jHn{>2*iLGo9fGqnZksXNOsNtm4=Sj}0Cg;!fK6BKG@IwO~0^e(_rN0Uv zn$ezH3TTq2+&jEE!JUB?*3*7YadX>JIGf*v{FOS^aL8FDYvNbgY^G?Ub29B@(D}vf zRN{hH-mk3d5!i@$oxFP}92;M`iP%rLoC2o_{6JL4aCInjT2Uv_hElHWF6lT{79~je3JII7h>{4e~B6bgG(bd&yckC-D4YlP_C)Cn<>^3at|V4|7FMb&my1u!pGRlneW**=Oc#)xm&b97?LXJz_+%u84w9{O^0c)Deh=k;;Z9Z5 zh40I{WQQsS3k`S&ZcCj;c^F%dwvx@)+VEl4rdBrNIF85rm)hdzBX>YT{M|GV?FgT6 z)(uVtno`@bb-;M?v2v4QrTv)lX<$~xWcO|91Tr=Im2GV_Nc4rpLalmja8p%l?&#RG zsMuEw^i->}_UW`C8evmNya#Zma}JV=6}eubdXz3x%P%9Rox`v^WqrwN3Ey!$=;vIE z^uU_Nxh!v~H@?MJ5NPC5f+6aXV@({0EYz&ke2S2g0`+X*lWtVRr@83lgU$SlqQ~s_ zm<7}VvojuGZ6z9rJ_d{ha;$COf0U9)k1RETmbnoOwO7vfLDX_|RHV$;1ezP(j6d@2 z4R^w=o;fN3*2nbQ)UxUXv7FfC)ryzNH@iZ33(-OZyWh8mYosx;KjbuvcaoagGJ#;rxSKEx5OPfUO45n)9IQaOH3}O1F zprBx9hN225eCSX-fcUr*xVucFV=Jk2{0`L+tuIWrx5$L6xhoj4S#Nr~k^B8cK@=2A z*SotEg@w3lAFT}TAp7hatsc+#X;|sdBCn)F>1Ck7?qRCRH((HvFxQ5E+oFa0$OFQb znAH3@85U`#9OEdC_tvzGmaulfO+33yeH4!v)q-KLQ{POQjc3TW2YlA1#XUes{z8%5 zx|Gi#x1fJmUy059H%eXji>y5rG#P~*mGymskX-%%z9QR6Z;RgXo`7CU8o>KJ%Uz4h z`Wf=9gGsYepV6#xh_{ieul~2GH@I2xnjzuM=6)5d4|Q^$h%_ZGXYJv6!Hf9?iYFOH zV*|ktxHIjea)EIMRL$9pZT9z&H8#2xzu=dgzLw6|VEiaHTU-LS69_}asm&Q(2q)IK zaDddKWO`@1rt-%WY%eRd@Ci)YFSCj33b!no8;jsQ=>rAHjkfO|a?)1gS>dZqYz^(l zd!l}cE$tKfZ&*fd*7o-T(c|18(8`zMn4R+5)HU(WIZ+-@d&n(w?Z*z$I;pM@%@vPC zHHff0DjG##Kt=o!KN@0+FQF|Qo4B8Soyc>dJQ?OH2LA$EN;{R2WiM0-0cPpR|K``C zPHqFiFL7hBkCrYP0-s_%*H0#gke`rT`9EHo^DNyg>Cfz&^fz?psyr=lj)1Up!JTiu-YL9U!p86|S1HgRq?_tkN$EUWPHF-apc@^% zLmSEQ*1LhGP8{gL*;s7V8<=|>rHWeY0JYOw#R5EL0pUr@Z0W2m&m%|TaZ^`Od-ZE+ zOPZhd8ov&AN%G#szANwqcynMgRG+mP=_D3Nr%2eG>HfO1&BzmtN&Fui7JP|J&EJ&T z2$oA8NxFJW^oxO2K{S-*yAu!>+_laj&dCtQ7|8?VD&kaSlrRKi6SM7uC7Z?F#mhpc zy$yMr&>Xw?H2MYU6ccSBNV}vy_@TcozagO%*l|_Xzj^`wc&`j1=^; zEC*hR_X@@{)(T>l^H!Z$E}50)LXu2FWHx?V-UE&Lmm)l%w`6r-Nje*Em^t6!cMe7K zn0vXW@aqCjaFlSQtA)K+kfI;=1Q<9t!R51dGaRrfhE z!y|O7=^Un1c4qDtrKHx_7I+pFj7V*+n#(vSY|3+5#u-0?z1)rMb&T?0M^~!fSur|$ zK1s?ru}k50NgDiB^alS=d~2l9x`~NBz_WZjzC)}=#?gLc(}PU63qiCG$p4V%wTL7; zdAY8&BU)8RO*aiei}9`MKe@(W$-2+wMf`^##kyQUC7)wE_FTj7_(^n_CN=4oHxS9> zx7-n5QMfhQCaw+jjRySth&|f6i8soZ)N({6{U^~{lTx)UenpxdM@t`8RN0RP%gF!M z6(=gySjJx4S~#e?fRL$&!}~pDL?zMJTNRp=Xk~JWZi)vBpG036rfY^qcB<@=GIAN! zFhWmsB!_rt(Qb_O$-gDvyV<-#1;#r{O;AtC&!E{=?Lc(d>$C9sNq5J8+S!r2R3g1S zfyxg;Yi+sFRn$Oip1+IZ0r*z>Mel2Dr4j~* zTC;*|81FB=8xJZ+hnr#|DOkZFo)~+&0!cREBjYqyZgmy_#;(vWfsO3zv0<6tDkkB( zF%7V_I#A;BC^4gZNc>sJ2-gXhTf0Dl7SxXCQ5Rr0)kJun5+@l+vmO2D=IZ;_`eIml z-}Wi8o;xtqLVgJynLnAo5AE*g%$<(I_6F3Dggo>K9g=!R@I~+#S5a#`nc!I2btTJc zkt8y5oIl)ciNW4WA%vVpJMEK1n`-CTx1fZfoxPDuV{7jnUvt7fE09lhMqon1J(~g4 z1Z_jGbmelF&gS-?2FvU}IZp45a*u%vZxmTv45FGe!R<{)EO+^;!UteMXgs;dTV7hH z?2hM{`>3mR{!;I`@-~5$_C2gxMwcnsnlv{nxaoUj4cRJ*F$Et=JG)EsHL(b1i7CO8UbCEw5-);6F>$X0f2f z8%#V)fMeik7+be`8T3u_b)F*hF8-I~?3t`pcTlSe#^!g-v;e%JMtT9iDgW z@%b{_GJSpGipk^JRWj2QCVG3mIlq|uAg2kj-D>xd<9wZ6a>1$m0loo_&*9Z6FMRLl z+su9GXI#CEx6M{^Fr%fZu6`2GL5MNO=l2zq7H&)FU-l8|RK&9gtY?b`CV4X3TpdA$ zlf_7(T{Rm-IjJ{XR@XP8rQmq^zXdZ2pSyGHy8K4~4PsbD3^vE-NpZlbyFA;tYSSD; zU*sDn!#axJ!2$zq3qF{;m-P{6Bn@`0-D2@#0yo@uNJsnU2zz*@m8AhYi&DcT z;DETM;*M&ink(t3f)azNKBf=u`<95}s5(|f#$QR&1s6m-PnbMTo1S!-&eg6Y7b|yr zPmtrPCL&!pCv0YikE&9)rtd}Pp>reGl(qc@@mFT8vbpE9QKk*bc|0Z79Cjy0MOulq zzMN1UeR1GQ^g-fheugv~yAcnOv%FJn=g3iUuJ16~8u<(^3tsXs&@yYvndAL#U>~AM zT@$?HeL-~6)T?OhuH}1-fYl|@Hclg1q`nCEDBLc3z#k>cffcr=nZx~8OBB)%F%pH9 z4b=_2qp+sR9`S626n^5i=8uza6wX0qU=gxAyOruPdm3Ylma+-`lwui~9=jYn67M8K z!5Uv*a8gK`b%OuFU#4`)XBXkJY)J?I@t`v{BNBAjs5RCyODq4=+>hz+Bm-p@Qjx?=hz#dT!`cv^CIgGavoCH2%Kdk!D%z_g8qKtl; z>5Qhn68TeIzd{96S)S*shnG8A1|N!#g)am(P#47;^KL~*;lW=JboB)C9JpS7uWUt0 z?P|Z^n(e577Ii3Zr=N+O_K8F06m7H@wFEfH6Dx13hHG!84cs96Gc2_;_qe}7bKE+rt@tHd!u}hFHRba4k=f!;)H2Ca*?H>< z@(Hm!KCt4e6b2eoDowh6IBj%vPUH(U59F(NxIN_k^f|aN^SdIapeB;3`BM5L`Fvhe zkHK4s$2EmkOT`5uzc5fOr|x=E;BlrC$P#?BZ%b?nfx`#H>mu8s;p{KbyV3?4Q0|nJ znyw{^#$Y|d=>AY2g-WEZHm%bWQHn!lA3;vKD5LOnG`Tc!WEvR#~yebvVtjscaJVr4#A3j8z?3K(UO!L8`pe`I>)bp%B{;0Pvu;Qo+-5J zTz&Y9=qydkc&F?`%9+klRMgOfJ4IdyYACmeqh6Ub8NT<5#7YiGSj5)I%!M;Dwb|tqUDzNwJZlSi_PQ}x3RPrm{9)(?RPA)&EdMMxxp)xl+p;9sVw-p?i$A2ge@LN|;uDLDQ0nU&O@KqxX>AAY>Bq1RS zc~HV2_V~cuG_s*{3R(tiBl9Zyr>#PJsW`UT(oAZ9)h>%YdZKhu(Xz^B{<=V^BZKii zSwY{3jnxDKT>Ek93GW!}TghnEw~8(6v|$l!VLrgwnkiMr3Wubwr$g2v`FiLA`87Pr z|HG4A*}dci{N39FuZ%swhq8xyo(h`^^ApA-kFC8Ha9CyEfwqVfZ6$u{-OBqX5Jw`= zZq;k)P5%!GOIH%8n_$H1%KJ#WRFv@FR=uzf6?)7XQ*H#()G|&E-d8?DPy3%$Fshb> zS4)ls4cb-sI_$W06IDC!E!rSCC6CZuKG(47?Zn^Z zb@=Vk4xvl>jbxg?2l?4Knylc?5Ai}vQMIzEo;zP2(kiM*%tGC6`}1p#~* zder`mv9K74J~wxTcN3S9x5AsYqWDnnMMougB90|_O*3%M5ErF@GjPE+4G7#YGb4uzBo=-JSBQ~uSh>Ld1{>_ zNuS|eR12uDRe*RunWt_gYnx>3{>Hm%?s}8TsL0n?9khY@2Q1e#5)4ASL>I@B6h_qL z{tdCwx!9IiFUd*CR(Be%@&qa!Xs;>PfnQb&V$NG)pI~K4Y4223HyUnerL?M7@xYP9IBMAzsP$OWT|8 zOMPNZz=GxZ%H>&Hev}bzT=XaKU7nHo#63N(Fm219jPpdRLYtilY+byz=_l3%?O@wQ zYg4h36csk6|68>oY#}ou3bGqC&_H**bN9nLqv3+tfpYwgHCJ-Y-@ZUB?jwE}IHb6V z_tYHJw6>A58RZ4h@F&?Q#W?3te2?{1 zlHubvG0aPh+Y1Icr@2?=zvj2+|AgvEOY9IsW*A9Z#i`H#;@Oe;!*H}{lY5svd6J~f zK+5=haTonA!ef4A_+nMtx);g`iM=UwBR`OlCcSCM%;NeR}628iI#WJ*bv1h%L6Ff&-m857SS2(iTOo`FsJ;iP8Yh~-lxa!#ob>sZh z*Y_SXT`uoWo96jh@{j2~=YL5$+#0*Ez(;SKep)ibahbN&T07bII#HZKw{mCjyYc%u zMfte~lD8y%uYEkXC;HPa(H zl=gA`FMt+`!0)b}sppbjs}mfHt33pJ|H?$tElQlLZMjm{V9+ zEp)VQ>IA`TUN>7kKvf?1bSuv*2L*e)Iq+NilGMkpZ2A$w84;`KmycF7l0nNK%xh6z z!+PT#Q?N<2-?TepM#&^FQ?IbMGn{ffD6W(^GVb#xG3%ArlI{}Kzz^A93wAR;(bn;A zv2KYbIo8|fx&{fhI2#qWq7^xXoOa?4P?7y*ijTii_!4vy0R4rav3pwif80B!0Ca-b z;T&%JMmwB;S$K-A^zCCeNZK7<0y1tSBb}a_G1VGneqoHxtX_|D`Hw?A+e z6WJ~ur^t298?dLQ&IPXJ-x9xZJhY#3KTkzUueheV8xsrlpNR~9p`k|^RM?a;lHSa7 zmN}xZo4bv1Kv|LP-=Z6kz}A7=ETpu5B&L@@@D}qB+Kj+z-pTT#^r_}Sc0EzYl9gT} zM)dEvsB>SynexTvPYRi0zFxpNyUdn{P$VWwvGo9Eiw%OAe!F`D{f+)tT9xaOnZdfR z*V&7bed%U}nt~VfEXfr2=>iOn6KwNu(-KBo^Iq=9fx>6h^rSL<{SxfRqj zUMQq+p253UwR4Wvm}HmJ&!`55mY})8UDgYtG0{A{3^_~v<$e(PA*H=t@-;zCv()eX^m_Z;|dN*G_FjE3qfx#j~{T{J5om5t*aRvnCoTxXE8u&n~E zY)E4z8Jq9qHwdY4R#_d##>}zUZ|6N^96rh3f_g@DuF=Z(2aK{Ka6eZJTO^xC+L_gw zS(2-uUPNeq!8d~IINg<#;sDgi_nD`!`V;Ple-A8;Uyc43?&&eHu^I-r23f8iD}7>I zVws;F0B&R4$Y;J!Tujh>_ldchf~tZPUih+ix+0Tg5uiP!*g%Zs{zd8izm&VM;gPi{ zjg)1dMmJ*@9OEP-6-`ZR>}AG*@#LL1I38&0llzR+!j$D+tM5eUvH-Gdw{YPFejso{ zIn2~V!#1~eHAa@^kHKFACI0&IW>{bDj8KJQyC92EKapRGS*=aF#mwxCT>56+z0k4V^YT{#goNK(L) z@OH-q?#gHmXqMg->9pwzB=nHV#WV7sLEP|v%ozbZ`YsM+dHnTx2B$buCK6&{IkBOPa}~`Qe(Gl|uq)=gCpNAbBH8A(^5ZW?G>*idypBKal1lJ#_+Y*OZ6qR)axombF)$AQghPghSYqTo&mf+NNsnJ`deST6i0ZC*{sAoiE98 zr=@T3;qI&G>F8Nt8<3yfFTa(OI%j_BGHcO-H_>*^LvCN{2f#S^U9sPRu0SJ|odS;*_aMT1TycAHg1> zv8p=h-AYAKd%DB-ogSB$;0&Q({?Kz@xG-fBaEI6`XzNe{3G5ivndmOti%EH#y>~_9 zlqLS}=Bq&_H3D6c+>*Xz)WF6-8;qryFBQTkX*ZlPO_}1~k~jWawxo^5_n{yc=7*TJ zHD&J|Ib|vsCcapwsP`mEfV$v)sixRKiv4zBA6Jf#Yf{R4$_1(cRLFZ4M&suco8T@g z73)p#j%s?j@c&_$dtSEjbHB<7JU}5ze z;y7!P?k9CeeAji91wG9f#YqkpDxv5D>zfRF&|1 z90ulvGohWpZQBGvYj|tS?7B<2qrWkUpp)uU;a0{3Z!Rzmfh6*b6TVg~W+V}Kh4d?X zK<)OnB^uH%W?u=`!v6$U^EL%8n)7GXopwvf;0o8s?~=ui!fRFFeA@;%xCS zE#0}V0cPxhbc0kIH)|KhU#q9XALCDDT{ug;0|i^r>d>GBTfH3~?^+!_?`M$dX}uK9 z@nkF;9U0mSWja@D+hB9qtrcNc?LY?3;zm55sBiLMRRg?!?jmp?@04pQa49wzyo8-W ze~NOW6DuCY64KT#p2+Ai<6qS|47KF2@)l|eErvnhWO63iD%ugR@U9|%`s+hC(a!`k zV3F6e7Lx0OgZ-1y1(iQtgJONH*|wPYd$>zv5odMQWC0yHbOyvdDA-5aAtDo$Q~i|bAj5Df@+Cey zXG^Sq@L{A%T_KrlTuSwc+_XItZlLyuYNI0ZE#xMr8O8!Pu>+p#z%WSy=@Hzc3R+Nn zn!I~@CUu$fUgfa1@G@ht{bsCKItuP9uaWarNn?xesVG%&i#AZw9Q`Po!kiga*)CMP zPi^dNkxXk|p);s#_vr{`uPt{uZn=jk_IiOxjU`P!)tweXqle6kfMLbU1Mksp_yxsx zY(Q2E&SCC0#b<$Bz9pOz*{mH}G)UD~v)uo=@G^x{2yX>|i>s;G-WybZ?}oC@nGw2_ zG`og|E{kT8F?ZvL-ytmET4p&ulA9&_{5aCeOXweCGU{w_aEhd2IcJWwhuY1p)<3S? z2&^XtyRT)oz;NEdl#B8E)|Uc3Zl+`$edxY0K;$`YDUSjpWT0fC#DwXOvZRXwx&pP8vUTWkDa4t3fikWNcy28vagn( z2@cfO$hYKFDgRY{6Y}KOu+@gwq07p-rd{0a&@rtB>#x3uzQm&T{oa4HrH)H1Vh7k7 zZl7qNooYLxVam@yy=BL2`N6h<;b0hhS^7crQ+0*kRjWY9WuJ*>Do^6o%2fAe^?)R6 zO9`e#yYPjjf+PvR747S7?!n0O(PgR6p<$YPmTuIshyr>cKdIFq+4eEw>}Yw}KdKnj zNw+2aKKfErDXqheYXquWl8d0xvr}^y?~~PsGa8ypW@^f$KVdmcxKAUA&{53-?O8=< z<$L8Cv=)9HRl;Mlr!WV~6l#oYnKBqY9Q`iL^I8GAT?n<-w&aw+1^yYu%ec?H6NE1c zqRKY#V$Ku$s>nO|MI;a1o+Kkw+h`FJR*%Yz{lZQ1?i{BO$!ZCog$r0Uu6Dt;>@=!D z{GvKLxq&?(NlnJ7D@RepI{zLFZ+@4(_Ns<0f zdaWu){VeiCpDtgZODEpv-;gX}?j+_Z|1$Q&R_8p^hsh(#AEw{XD_{qwzV^7pnxys% zH9Lg4{!KESBMZ7KVWsazLb7l2ozlj@Lg_H)Yq&4Bk%Pxgm7jmxAFB}v(3&Q&aDtuDRe1);h3H$y&*o&JIa%b_eajiuG@a{wwt#C zUb7OHU{~q&i6DKlFfU!>d~ANtazj;MPu4popLa{72RrLuIX6iAh$JNt`7y5|o53om5V}1QsOc7WGAT z!$5d2tITsU|6g}IQ5HCY)gB&dSMh#G?*hZ5i^&oggHDRo_!xLn(m42uy8vt=xo)gs zuYd?nnm<*LGB}{O#J%Tj{ zSnLO(->k;QW{lb;Yq=wZqf;BB!@&IFwoW?if*&&4^3F0l(aumkY{hm&HZw`0qza9S zJBkTPjK4RyqZIWYp;WjJpUJymYp25PZv$OuE8<&y6SyZ~Pq-u218<+z9qW+sIGmca zA1Olb7$1T8(Fdq6>ycryrYj8#Da?y`m8#D89oqnMYdc9Ag^ZjU zdOffK`&{UdvX13MY?|zhWVCaXYhOkqMOs0NXhTBbIvrV#8fEFqKG|y34rl8?Db^20 z$b^s?xLDGt$|P!PSC^d+S%b#{FZ2|?7|4?bTqN|ycOjwRPFAIoa&2clB)dvofmxY@6o1mc3jQc+QW1BZ_&m4Hd^x4ng&R4z2r8zkF4*LRC)0x@-M+kcyq}&a$1oco*rhSr>llJSdt6M z$DlQumvS=ukvKr6U@vsK-~;Ad9T&P%oTI7Z_)U$*j{)<*QQ9}@zwz#oH`FkrNPE@S zhd;II!v7gM3+|?}E(}+xC2ibYDzuckMk~MogS$Hn&fs2miR+Cv^_IG%jW#LnGB|v= z4>0&Jz?VO8*IoCnbcV@E* ztof)oUcCwZkx|%~pj)UDGk*DL>dm2A^hu$k;)r;L=?TOK+fw!os5X5zc0pE1tfHj) zE2iuI(r|$MOGA?$miTKhb+?p=hQ%^9dOzZws73Wof4ZfV5=EM%{i1DVjKlqdh&Kcl z>s^?Vu3 z(5f7ZydWPeTL>H=iXxj;vr*xmNnlHOAZ2suWmF%22Ej|SsrW1@jUtgACwkIf3>UT& zO;yd6_|aF=bBRTSo1tH!P;H;u7iJCVuVo1UW{|{+I|Ka0Oe?D+(KLQEC-_BPt=|{D zF!Xl`6U#yPz}5(II;(Ue;HI9r9%E$Kq;%0#pT1 z9l1lGEsW73lw8SOJ4k9CDBPJp<%*%%|OhZ_!K!vAhhl zHMqTjL*-9|XR-0pFT(puFXf_&Wud zqDna(+#_njONbXVe*lLND+o;Bj_L<^65^|(Hx!H;hkb~11&r}d_xT0>2ZF5Jp#953 zExh7c#}j3nfU#l6(Hm6>xNvC$ayB*`ySV%ZD1tB_u#krVH|{yUkMLMO5%(6mx!m9H zIOeI`r|J>3Kz|JKMYSCHch&DjJ4J5)YGteN3-T*;nPO`R6=@adLZ=fMdH;!opd;e9 z7-!8=BojJL9RvG7C{o!qd+~$iePCZCASB7BpcqwSq-fDNL7B3jK+1!Pa(pI&D=11I-gAo@>EB@oKtVSfs3es$6u#B?MPizk<1TfIg@1NGj9 z$5p9VUpN#^B$ZTpV?_81HEYBuh`su;ARX~I@EJy>@IzkK`e0WgiPcPLzaX`gBwwqx zC{|z^G||ut^*@bLri}0feHXREYprQAMTYT(Vqq>@QtJc{}Ol9C@7az z(Fzn5hwJk7V$xBCx;P+CM4`M0MFTbZR%~*M7if+Kg=!SZBcnBJ(tOP%b)oLN{vLTQ z39JvylhYnjZJ2BM7)?ggXXfRWsIt_Mi`q&?8UgT_^RyJF{xp7Zgs%Q2Yz6W=;xdD* z)K+aKcsN1fCnL7jrhEDh876vULK#N+mN^Z&3tI*1!-dczKqJ1BBwJML>MOBs6CYI( z{((G&)T;hO9~W6H`Ks|Ipvw0#kf46mk}+5GIA)HKiP};33z>}agXEKL$)~C2n>reo zo2vDbX$iHvVD_j@3Ou0|5fGlF8Lc|#hsQ0V$kbUnEmDoe0ExI4ggubCMcXyAmA5^l z_saa`0tIR*{D?%Oo~q~2r;z3t#wrX1B%NPC3?3uS^>o+GrUdClWOf5i`a)|9*sJ;h zoo!rLI2Mb={;dmuPhfyWmH2poBx$NkErw}di_4IwWNWLR%6C%UVMX#8j1a;M>1th@ za7o?>?URfedXBtNKZMIH>ZHdba_G!hG6zP{SwXJ_sV^yG_Kb6rTpS)%xuOU|m zjHL6@*Xk+CTHF@@M9qi%Ky`?sjq;FM!Q7&s?ln>I0Ei*(kbGv$^sgy+(Oe_#RK3*L zMfXsTiT;@5p#v35!2ISdls!gx-78rrNUaZ6p_B_l*sc$QFbCC1>}Azv;bhupn*#@Tk34aa2k=g^`>Y2vG;Q#?W2!?mf^>iF!?@$z?x8Ou@RNre zlkDqkboYE0)zO+5HyCg0vCns0$fTFCNiWp1&5X-s!sNeE@fCAuQk_N;K4 z2G|4d_(@#Kus{EWb+Kbb5`SP$?o!@T>k~(-V_xJp^B=7w$JC^xk$BFaqs_jLJ;!~9 z+{j~(r(hWzyW>-TqJ6gggd>J^iziRCjW}~QkK2=l$Y8TMe85Faos;&Fy*y$?=YRj6{=YOmw<{gg7buqa+iJU2q+mdZ?qKC_q&6zhc<~VY)_#FJmChH|$W&D*s9B)=) zq6gVTv<RAl@rf6}{pLL8T*WJ<`B>`Q+>D{*|0Uh$Tp5|mDa&}0EgG4h zxnt1R0kJERUh>njrdS4(8C}eto_<;D#GF1ZSbczHZ#g&iuk3Et@viI6cJrsKW&MZJ zMg4`me*5S{4*ZA3GNE+&!5s}2xIL2CM zq}Ijl;Em1cXXTKneO~R~5&{}3*^yb72lo$uoM28*>F;TpnuW#g+0?JhSjF4HGsKqYC2>zU*DT-STUp>C4RhwpllI=|70{>&1B%B_3+vmt~z{J>~HG z?+o3OEX}rCp4tDG`O(tLdy>UhQ4*Sjy-n3Om2cRzyX>zI`CoU{mw znPauG7Gx2!WI4N?Z<3CiL!6IWj&;>qlRLY+%xO>JruIj&<094OFiV7GNAj0$ZPV^_ z^S}(pi-AsaK+;v$Sblcb=>cE6ZLo*CH%aa&;a}^!%=+Ru-M4+z*Ks$A$^CEmUHp-Z z=~mptPv;2qG+eRG!@pD@f&9~DwvTezYNw$H9BLx;zug-xT z4vZgf*T*UN8~G8V=QCR@+tSwA0<*^?|IMG0M#$+-KqRH{qB#wgnce#KW{%LcB8DKH z>71Gxm(no&q5D7fQ;*6GGbFWKNXv1A@gurg(|2c8^7dr{t!389TzW!wZ}sqcOfHwq z9!&meGjcMlXLtoHvtzbeZ26)WfXt^Q4; z8||0bLXLSbaQG;{)A=-edfz18{^8=zV#k}FSsB~-+uP?_g*;qxYr+C&N6ZYKANz36 z`i6NOKZkD*wI`(ZZXZ0J)WUn)J~NG&kj$}jUdOWdvCh5D@7>|)MXW^UyAG|Rn)^L# zrE`16d;UXG>`*OxwmX6UgnPkJJ+yB0o9zu}8xNK|(~*<2zKJ}-9sAv`v#7YB4(~Qn zi!~n0vyVN*ZOY0YFN)icTF&0c$zmy6Zd<4Jo^JZV*~#BupVys`c1M3CcWd2Yi!3f= z;Hc>@XAAFM#Bf?uQd|s@=goSMcz&?GTjt2)SnK6u$2z+d2Zx?=p7-v|hW8Z5c&8n+ zCS;H8@3Z_HH;{gSH?Oms{igE~Yg%`#8DaAs*pNkam@JdszEAK`NLI}0RZ z*cIzAj?Cl`d-wJAyJx#axg#!HdTDM&wqH(O(ykL3oOcOR-3Pln*{>aeoJWZ(21)!a zth?zeN54Bq?Z4RBnNa@A(M>sQ%l(|WJTq71prtQjJs&FQO&o5?${88c8_F+@pJ5xd zyySKF#*G}YYq?+9+cL*+zc{Yiv6+)B*;x;J`y4M_8BVC}d(J86&92N5iF@^gyGetN zxvXu!nNQPmTKUR>%UP4yyWP22jrL{yV;T4QqH>lFvTUbaEtx+vHkm(|$8)~0LDqVU zxXahE%>I0Ma!!e5bsx?BqdO<{rMY0>u+7B#!J3^?ZrcE5I4qx}&1|G~0Y4@8p{;0SYsw^N*T_1)Uv_=cdF!dTUCz%I7mMW>sjqPC z>h9wVF^1A^cxrX07`V02 z1#()tTP;@{7p-4x<&MQppec?Gv`{&BbLOS$2KG#JMxS#}x7B7EGln}Yz1u8Lb5EMt zwt@+!$jdnn)|ZZC%N|~!eUFvSqdNZ?1!YHfS3148#GGG!FusK^&N;>Uz?y&Rv<>Rq z(7T%7pZq4H(0$%sm_xPo@`lnHQfz#1`#kp8>_YZf%ZH3q-sJ3l2Q>R%``LKS(7(Nd z0~l9FPPF5_vys2&*rJT6zEv)@8)1E#jCGb~;S(B$n$it9n>lr^wG)%u_dBA^r(+_A z2D7g7AlzlyPtp%$&zg`tG?6pQqO$Y(ublFnAm`bfmqY7Vhq7bMk4MI2FXvl$LAmCn zI^J5>VavmejJ^@q`HT};Uvkb_>?{~>BF{Ryam2v$bEKNDoba*cWCo|ccHeX?=q6-+ zWS?>fvi^2QaVMrJI*w#586D5!WdZg>tVjlzn|ywBrXsfn}^s2R>Twy)T{Vw?kgh``AfSlre;w(t<;{&b|`P= zxG~uuhL#R}8yU&wx3%)y`>3;v{M3%#-Zqq4BJu9QXJ% z{Ti)71X6|w%yoo3$8!(`3P`7OOC`)OA0vC@$O>v>))tE$^~ z=#QLSbFXa-SH_OvUbXUb$EJ;mj~*PC)@}9cD`6doj_X&AL=PRz-IQbC2HH}3>V{&u z+g-cO8!|WAuG@O}=@z_A;pXyIWlXW+dH-Z|W$ovccL2jpuFqxx|35n-YWC1<3xieL zzKgHto4d#IcV!dJ1;a3YlkGevE4heAZm?JgY;F?4aoN&r(%6P~4KW(8VtS#>rKaM>ictFs8^=iQh3 zhf_K-S~{~_ligD?imbCt%EA4dg0Xt;EecO@vxm>Q@%?nL<5nGilZC8zy^_f#& z*}W6Daw{#x*-Oqu;k{_1wfpg_yQ`Cjxfh+&%=wlK zYeVYKwv7HseG43KvfAq~aS`o=Hi`45WxoA257v5&%y$9V)9p)!LvwD$wYxHgKX>=K z53!DNAyzVfT-G7}1yx6l*EDQmN51|952?q-b*QKvyMCW@f-W|ha$N% zombM=a8h}z2J16QIZ13zUkB$g=U&=BDao$$wj<%o5--}w))DvA-g@@rxLyv+Hr{%~ zIm1@O+F?JJn-Ewal>9w3n8j2@zyoNS76Rh#w<$Q7`+_|N0cLy}}prx9j zv@!Y_7C2uRxjW^twUDhzgWGV!L%codB>wlDkht&WcRXs>g!muHr~7dnpH7GU&gdcA zjO?o{kfpvOg8v{c%azcVz&mK##s=rMXH%2YR614zZ&UJQ$zeV@3(~c_evbRy$fx0D z)(z_Nk+7r#vBNH`Yh}#AsN&RB_RI;ehEuj><3P4qX^8Y7=Lm1aaw#){cP(u*r?qVs zZ$Y=e9g(#<3DO;B?QiNy%(PwQpXIOWtTZTWY&*>X?XqMWX=_-mmigoNroQqBiGJtJ zVrSDz2iIHY51wH!9zdjB%D&nq>L+$LW*+5Vwfvp_+IibL#}S&`>MFN(q@K5&YYU85 z_Poh@lG)w7ZD^T=nQ_fAGif;o*W>5Boz@XEHg#gZAv<>P$*6PuZtDTo&%PMWlGqg- z8V5Fvw>i^iWK6UjAKcKt!;+FdoRpn$ne{8CVCYo$OSWlnrh^j;?#t&HS*zRU58cX$ z8C+uxvMqEkbFMYlS{@Eg9UkjUW&0jKG&IWZO>7$3kdc}gnuHs^%!6BJ=W27}+H#FC*-`$ImVKtUF30l{WJH(Ui0)R7O@wn2RnTS^Lt8o0r6FK za@tXAVa|q;&B>Xr8^l{3bk{3qVX823TH-fW_efznB1vpnW!Daovfi`i*&hsXtr6VM zU0T*(Bip+`bWC_0=VEx{iHM9boJ!V&wAw6G|M`S@aSm%0>qB~auUAj+xce+;ui3%p z^$!AEEVG)uns<`Ji|g*?#yf2T?Vcbn+h>Gmxte6moEo*AoNS%rKE^vS^fFPnR6zK5=d3|HPntT$ z&h%W1GwK_8U%4OSPDMG*skW1r-^OR~XN}WD&Fw5=M-m+epk^NTJ z&At?#uk&4>(3uuLp0}FgX007urN^_$f3AhTYTsL)fA-X+0Hb-!s6@1MJJZx$VojVSQen6&oA>o)>OA&3}uTX2bOkB}KCf zd3(5WPQMk%PEOVhZ@26ip2^YL1SwCWzgbi^mn+SzPQPnzvLQw*EH9FyMglV~4(zt# z27jgxU$Y<9bsEjcMn`wK{2??NRC6Mb5)HB<6nB zDYmlnbJrt&n>%O(mo%TF3yhI{t~qCe37vGN&B7##QlshHxC@(5U68bEs{n zZ8Gc2u?LoQ<9oT+GB+Hr9UK>p&1~YOXLxl?NM6Uf)DvB|$a%$%NxPBWF|?_R-__XS z=d8^{CoHaiF>dm>uFMGycdVC=-KWKKdRz+}6Ks#|2YRm!k2CYLZjBF1+tGV9V@~41 z=9;$o?6|g6`>JtKR%!3C-rzRA_3-dv7P0S+{bSrU+ou#)H#>fy3GVeY_>8gv`$+p5 z+mg3c(-pP?xL4gQcnOXHU%~_ex5Pe*=2`%KhS)4wgB7Bw@Gc`rPe#~RZds#cUqdWwIjK_SVCGT1&$Ug%f- zLOmKCuF!f6#J)f=yeniYcsyid=n`aCm96?cc6@EJ*D?Kgbpvc^Nrcya<5fsn*(!Bd zH5vUL(ONSQd|m*MqGZPErO@rNzz~x3ei;UbB(4^32}_Y=%9yB~!Y_(g*&S(};G1wd z_7IRxJSTV{_$XnCE@DcMS)~@gSHM<93dR}w3j0osSC*CCs+o@crBVrV>zrDPgh@Ey zUs!cVIT1NtIEp!rN|gJ+io8cFHegihQ`!xX6TazraM>%AH|~>o8WN2-6{-|h2{`CB z%w$Z2w56ygco%+_EY%PNaDc_6c~Yo;v7G7ss`4(BTLlS*3Aykh^fuX7Q38Ym%BdZr z`3DSweuPwezbW5d9wWOe*y1&=auNKZKTkPPVAa$sFDpk8MG!B=YncdMP(=#8T=NQ8 zCJiP`L2S)Gr_2@K5O4N+t36+J1@X+3SCd*xBAkOB#J>l3BI=MirETJkg%b1_mAZBt z5ez@$mtC$E<=1u~z4M@u3)-guLAJ66DNX_(^f??R#w6Cja4qr}-4bPxeo6H+;O$Vq~L$^pU z)JCwGev{cJLy1=rwyB&lg|LHECXa>4DS9y#doy@%UaOIfkzv0e8jT=AC+wmAlE$p` zh-QKwLVY1muxT|4ub8^Ylnabb)I7L4#6vdI3LEwr_b72q!r7NW22nlhEVjp0z<(Ec>uF8&g{STJ8)jEYj{ z3C7CbYn!0^FhS5Q9)j+fqM6DCVauq9vT>AAlMAy&l1QCh+f7^;ksczW5hyiYI0o0q zL_;w$MvbHdxP)Gh?-JwbiKqnfPTCgWpR)haem6jChBW}lo7g12pqN-u4!ku5>-I}0 z336qJ!EcFg>XMcDlF7tk;IuJcKe=W|)I|_h)__mI`C_~lLd8oSL;s+RqaamYrX`Ad z^iDeXAsWz0-j4}}7fil`zK{R7I0w;+J-G?^$(XnVfm$DW} zLbg+;dQF5y0Bi9++V`qM08>ZCkf^t-L9k2_p%Pu!RJ)Opt?5KeGop}-LY~w~!4R|)OR{_Fo^>4@GDf1Z$ zFb~xR-G)cwKOpDp!>cS*Krcj$q5eg{BKa_PeKi4Sq!gZkotLN-9DR?0Ct8hK*s5{kfpeFSU%ntT>|b`encfG44Z$?EV2m$jbx;rScc7|tX4qp!JL+0P4@RKc?t4jjZH!NT42?y~rDRt> zD5ci@37LUx#Z4!Ahb0(x5YJ+h4F}7af_*B1Bo7rVCQ0|fTE@JAXe+0aVxiM&A9{$e zP)xs9WNo-9nYt2YP<(-1rM!^>HRFVTXx_-*;nRTVLNak{Ed^BonJr1zfomX|&7uj4 z?b!c;U+XU+6{wAMX_YGKZ=`dCfq-&_4rVSopqylS9=O1J19Ul%PrNOuR1w58XyCw5 zbqH!IW+75VtWhvwSfi{;E6AoDK;M8$^*o9i_ENJ_vR;{^aZ$`FhwQaC(lg&Hz}=Qz zuDK*>L9CH$XyM{{p;aPZ$`<1M0+pfytC1$vCnC3~gJ~`gndxxIS7A=!Q}BtZxYEyr z$4Y`s@7Lk+<(Ag_f`jy|^3O1D@g@0g@p9!{BpBC#(FeRIRUltux6pP|ut+KcU-%N5 z>B%hK)59e-rIf%#s<0ZacEVbe-=SASAXK7vxgIU&iXjbzf;o@`{lB$B)lpHFvX+uw zu{%&%l?dF|hk}O<2k2{b8To;llX4bRQGO?Mcg;544$+&SYsj6X#Z^6J*OgQAP{tpc zq)I;a3`SOc0Kbz~2j8j~S5PPJmW&G>kNBtd8Ff4Os8XEYTksA)j<6;;OqSl9j|NBl zruFhmi6n%Nkgp<|kthRRwtzlS+>Y6$xhGE`F4Gbr0A?a(DL}-7FfgPAy&84Q1QG5- zAt|@?LWRC$yL2^fjUY3M0DROpLjI>eQa07+FGesNYsN6#ri zz&S|}{ZHt%hV=-9;R^mPG##_DMP{VM~5e8c?rAKN&B> ziMl>;oyVwqk-0ePPs|~CyS7rHMSl~v`Kj~Q$i5-3L*UHal*TX$*oQ=E~^iE ztM(?omq$l%5W&Wrf-{6L=>y}o#sUZnm*4aRIf_;h0NNkQ*P&&gUDZ*70eZ0q7yp6I zC2bZjf%$-z3F4th*kGNuTfMB~Al0m*Z04z#Jc35&~<;Z68+q$~bjl3aXP*cpm1 zeYs=_ES5rqTta#ao|YA=G6`;chg1ve5&Qc7PDqqoQ=P#b)!zaNt8^4J$qV?c;d^*K zeGg{8VvSyP(EjGZ}*=&XQR%Jcf_P#hfOrYXmD=%JSrQgeSCl zcpWZM1Xl(I$D^N7+K3IFH$38lL-{s93{$X+uuBjpRSl7Fa606La9aIV$x32Z;U$e7 zGmo$U^g9*B&_KI!DC~=XHO3+N76M3fPeQ{+NgLHO2%897p%*m(HVrC}4w~u^$>Q6F zQQ#_OTcxhgk-;E598*o2>;M8Z3n8eovO(P}6iRKCnl z8jeOO+(C;WJ{T|IC+un9Bz6ycK0}N1A!CKFA^$*+<0iu=RuUkWYuAxBX(!c%*B+8N zp#N(A(ZqzDz-H3b*l`LjFrGM_fz_y?XwO9air_&F4HZ_t1+&h-3Vhs)SPvJb!e43^ z`@R?8O^*e4sEmp#Of+mw;X()#yiFNQTa9T!G=^py!~xVIk7!f+Fi!<<@wi29sQ!e% zB{o-tL;Neu36UCpUd3;X?g#dJe`;vQ{}0_9D9@iqnkf0JqPck)A`+Xg^P&V|#zV^qF8m6Q zq5MBszltj%hrUrz5nIKtr6pk}NMYbt#wVH%$xqWLbWVc;^jY%@{n~c}eG_ph;-^m| z1jn4FL;)KlXK>`|XzfLLvm%+S#T z3%XhnX;LsB5M9J(Re&;{zBG6Qw-%Tzxk&gVl3^k|>BT*YF9?|tZSW5nRp_Bu#X{<0 zg@jg!E2>?FT&O9jI)p1TUKUNjk0n-P{eaDsJveU}9A^wokr2=k%Sf2AUL^x7qlQc5ci;qyp0RD{Ix&uBl zprEiLlz)YvkpCm@&@b0+tQJtlVr#`OYg0V+-W+BdNrri)Jt!g9ZGjh?Fab#15~V|t zDg9>pAmA$gQ>{?WCkjK#N^%q+Nt|T61d9tS+-Trq8>_;lt(BL=xAM@0B~1V5*#=VH zC&ej)otYErNv&z4gj{_P^*X?(Wa2K!enO8zu7!30Gi0|>fs$7BY|IM?tgg(%=KKS= zF1$us8924kOZA7kRc1r_hw~tF87FHO6-tfU$%V|Lm}QdJI3?sa+GovC#R_G(anKN< znCHm}dd6Y&W^AZFzfUZ=>gqlJ%_wNA<#^rrO7_i)=D+l zBJ>vGN?5n{Utkw*k{S#<57FxklwC{;@^BRzcrH``NtnH;Dbll5laVq22BG7|$hW9{ zu|t7tuv-WTp<&@4Xpc1yB&pQp^!d1%ioKAHiW|szpjRX{DHF9FQ>kbm(Sbtvq43us z2(?x2kNT$|9_Z5^LQmAvWm{-d%6lpQYOVvZ_}4^J-ET^^(GKX9udu&)YSy#*6xch0 z1$c|bzy&<5fWS;ClVpGSz}%&nvaZ~=L%xI~{;v(WStewnegU>TuHe^U2aMug0!l0sbM zSnxK%4{RV}pZ7G0zuE`FC2kcS4m+y@Bw=Y&pG@6j}&ILP}_p;uJE8LGU}TYg$OnHC)~Px6s621E8C z)eH0&fkeNhus=cv@|S3T(`1+`W%oc0p2=9GqFp_trUOiE2&Pgn)ievi#ned&A$Kuz zyg%cAm*sf&12g&*;wFHkjPa_ZBqIbq=j1W6MCyLbboC+xj`AUVMir{OT=EP*Thypr zCFPKK7!DRu`x0*>uY?k?>1ZX*(k9ERwB4Ar>h^! zzCl*fPb1>6eULE9MtHn-Dcr63Mk*6cg!R?N()xp;Xr%C-yh{U@WrVh=a+Mg+eOQujj-PLZ%StiU$%4`l~jJR->Q?ZU(&|e1}{|dM-W$vx%PRU*M0tAM`1; zUYL`{y1eOOm4-~{Ma=tb&^oCRfIz50nXm|QD*^z{ zSFytY>RrP+(H37Qh8}*NF;RapZ(lfCc}F)#I03;kEELom@q}xI50R7fYw|~GW}>=b z5aMZ1ccH5`kN^a?2+{h-6(kv}#FbvWNZ)-M#FVLFBahNNgIod{HkeTdDnd$RLk$JKwS+GR5A4fy>$4zRHD8-gYO z45H9B*Aj@sVLRnF$|?!I(uauEG)joDzLl~#YzQ~c_*0%JfoTP_MqNK@DxEF=YLtMc zK&A-S0fDl==;LAAvHv#L345_y>H<|E&~(&Oh04Q8zUO;Lg+R?E7Z^(gEkV!n7wMw0 z@5@A9UY=3Er?NkdO;8`{1yY;*hK%OVB=pqe5~Ij_G)1btlnWF*)h|z}JQ^_Sk^A@x zc9@#Tp9#&-FWL+R+b|94^6V`SKx+gU!XL#8FaUWWW1TLuCQfb?f74npXd+)S2Db@P zTzXL9i&}zyp?g#lR(XWlBxpmBbn(O^#MLD#Vr%|Fc}>+t?Ga59ECV4?KLszL(7>sv z`{d;{`{CN+NZB0qm?|#vX8k?%R@eq2OVJ-35p+WerNVVkB@JyQ{KVIjZrAwL=}YF* z?-Jv%_f#y(m$H|Dj4%eP(zI9mRK;Q@KxPzNFMR>TBMN}o@YA4=*y(boG*DDXg=;1r zgV&GvTa7`ceFSzXJhYQS7cOc3r*3J{1`OUHMwbz>VLrwc#HY#|m{NrsTT$VH9uR&* z&d_dB_5iuK%f2YpS|dcUoOpp4&^#JCz?dk{$bTIgkK3u+Eqf94M1R6Nh_YIPKnu!0 z!9D`D#5Qa#NJUXlD=>dZN`z3-9%!(U2bqQQ!<>fiWk5&{JeX7!@<>^z-(}KMwj2Hx z7!CdrZ$im1H);}dry^EDf^3q)v|P)#>1?eL3*e9J&@eJx^;9}bsA_yei42Ep9!4T zigjXQ5e5XuV26n}gJ()(VEe_}m5D`HNF0ivq}G(7->3rV`5uo=Hcco?QDcr%b6oFjcJUqc8p#bBQ) z22E(fH`701*w6)Dz0#RbS>;W{G9pne1r4bFCd>)+3c7{7u0?5i&!RQUfG{`VV;$7 zXpD&#Mydp_fbbQ&5sw%PAlbydK&~%0^q|)w!V>fvXrsq$f=jxse7<71xi91d4p;NUI2}%+2HwK4*6WMpl-5H zm~upN%IArWPHBM6Ldb|WhzD9zlxIu4Bku#T#ujLpWIu79FvHkHo=7b7eB%JZFT;Pq z=Da=fdT9#oBXpj&4@pJVgy+ki5{l$$l?Gx+HHWg8k%__9|Ii0BfIB zAwhpyzEo*Olo7{7f?%D@`E;P}nCi9meegQwbnK{#OSJ*rx<87*AmHh zk5&Fp#x8#!=^ceS>?E@XWCjHZ4qjobsu@7(FuTYHwM~9ojNv}h>E}S9p}Shr{df9oFcOFZ z)I<`x>7}V84+Dew?yU80I0-u|m6B5k+lw|}?<#5jegZ6NiwVqJLrg~AhW-nhScVnY z(Iu6!5yL=t$R0Vrxx@R1@qI%H{vv&L(MEBIkuH3P3otOl@B4%3z=ux+aKfhIXzf+!0oyi#8GvxE|GfwHrTw4lmgFUdP>9VTMmW5Tnmzm0c zDen`7(#CJx0JqWF?9#bPqIQzt;MSYefat7h`rU@st*ze!UVb_-gEF5(bMGdLR!gQ zXb84c|3>UNvjf74vat2C?X@#&xvHtvdgX(PadquMTLsn6Fjc{M21rr-qB6YM(=R-_Dj zBCG=y9T-mhRGR?(t4tvbsa#m8$F4-=;MycGj1%gr;;8*4zF3BVuE5uXpc15OJ;d+i zz{C=bYC~nOELOf%S}HDt&X?xrcPpMjniP+!*@zuM}s&r~fcy6DF$)RVyIo6vKZ&0-~bzVMdv1mtGLYjrUM1$s*S zDT5%MD7S_lz{G|5N*ZL#Acw$TB=NxGP%7wR$a?rm&C8k#K|qjLS4_MR?$T)e&%?tE zY}F=jg6eGjjG&T;AEZL!RN^~ad|?80VR0dCeH};Pr?@Yhr`)4@63QcN0^gTLU==hJ zL0NGaHJ|Vse!Afd{usR^5RTj>9Vl2$mQXwKXRrtS2$YZ5r^@N{{}9)(@um%0Ey-ql zjMi&D;Q}k{(i0(`T?%v#_q!&81S7=BPZ~cV?lU&yTY@&jeMn{WRhlaiS)vAJK*XQ~ zjlzgswFV><8K&2(n`Hw8h_qA_9l?XXl|P16OM94F^tfjgh2eZ; zXOSzFYh;CtzrD^0#u9H5tqe2r7?Iy;%9kXDJ*uik5j<>)iP$h%TtR3#0PLc8k!wK^CJXvEN-cFL zhYA&X9AcE~o?4r-?O;S|#_AWSC13E2_24H1U$ zQvEKG(AL%9bXMrtnjxl%WI?6ENSGP}T`$#K@!3v7Q?8M_D(td<45Y9%^aSHeY=Y{f zhAQ+@zbjHHcd4czQwV>G@r2p%LU5@u00UKqpz|qyC}Hp=3b!E$E~oARYN&0sA(~^t z3x!sCBXU{o6yobK7-fsvNB%;Wi>$=H&`y-^6!~~=l2+ zr5vZaje)X%o01f3!9C&~k*iRVv_He=%6bWJBZ6vlU= zt^~s2MdTeyg$bt@>!&F;n^bihwN2FWuvp1EgcZ}_acs>sg$J)OJ`ZE7{WW6EBqOLi zJE$M)#QZI>Gjc_Tk@xXWh1bbP%a>yZWT{4s?0Z0_p&l3^y6doIW>S(d5co+uB6d{g zR7FA3LbV8|oJE)lJ|eiMUx1#f&J<}W4$M4~1{E&@+CEXBeo z&%|fQ4PI<2qGmm$3G1z&2QARVDc=D+0t0f^+X+7qI3GXVbH^uwG*PzYuPC?qyQo2g z+f@fBDQXp8U$O9Et+9?UKfCQq1#A&6Ou*Y!n}wCg2!ksL87(L z(i&0qLDfYtx)$yKpQh8W1vMu;%6JC2H5L(`Ox;+1nmREcw=fmBNUUlK5gY~0(7Pz# z6>#!4b()7;Ez!+JMiH*dA#yAkhE_ocusUi1vR{7+#V20ZoWfTVmDDmyBKCg)J@B!@ znG68{rar_hp@5?vA@7GS*Sutm0$|J#fuLL^daO*A#WR~QR@k?i6v9K*Q6?RjLiodD zrj#2Z(G!ga^;1Zx2wdbzV`6ACwT9a0&q3{?Tob=l1e5Tk)4((FA)vj~PqfIocEs=c z0^OkUGt&uvgKhSBfZ9rgrVSdFbSo3(I~IabJ=Z)GlHk`N$K@$HC~XJnhJb{(SFKVU zk`2_da9;^_?E~eSkbjk9bX9l@vb=3G0{h{vL0`Irrdwjgbo#OVOU6d}`z2FERA?E)KoduiPSR01NhZ!7_ z5FmlTFj9B#R=4i$)V*78x9&PV!weQkAb}(#z*ybgW!tU0d%wE7ZQGB3z;(fOIOlzy z_r8CZ52QOO%kl?Q-r=V(sQZ?Bs(unAU{|Y}(}^+ynTpOd{Bm9AABO5m9>LQ^s{*5C zmtuGN>O#**3vxNyt$=VMs}cm5kwF(mj2^=Xt<_5u1;c-m0i$=pf&1{nQGhYnv_wqw2#n9Xo##p zcfun9Rp!P<_J%i$c;#mY%oM(v=CAC5{%#3{xHVPpm8t z3}uE^yWa=;q8wp}kD_Z941hsS4Pvk8%xGL$8yiHtD@+uy- ztxuazJVfHvIbg2ztcgsY&!t!%%2)7$>I03VM$^zpkI7r1F)b_FApub%;)T#5Sc3>~3)@dc5T__?uTc zYXjY|fV{c7T05Pt#Fczd`wFiW{Y9?Tbd5coy2Cfya+m25Q>nY)Zw_~MNLn?!pQyj{C5AUn0LJJwvZdbo)FWCWkD_|X1)=%69;&|Oor;SrlVDmhTbg3;PesEc z=?7Bkn{WMI3da56_|NdjP#xDCsN>m5coCMLXs=A~XArxc_F3@v^o`zSfnI8fZ;MN> z%t+~N_@Hf`3abAne{B1KJrgbQy})eXdJ2LYntEz`v&~e)^-1~%_CcD%kUiNWwVNh6 zo6^%oEfl#aZB$=U2U1ppm>}Fuia2u(vX}9LR2dj(UaCkd>qZp`gH!(t`P^fTT6!fj z!tTUVMB+e~z()JOs)W)xc~Y$hZbLMYtMxlrDZDraD;SJ@3_MfAhRg&c2$_2X&-$M_ zlky)XUyx6AO^+GR-v%BbC}D$U(64maDf7wW%B|3dvH`$)cWr9A<}I>`IUoO?7?7JI zdueEoIi zdMeO?-rMFIzL^Z@g%hfsl7gAgHcL;p*^tE5%9j_lDE%rgmwinzGiiZ4+DX*e(usvL zb=Qq|<0tDf;v4F_njrx|malBf+M!@DckkB#HUmRwUxrB3*ocr$y?530%werfuY|HT$)^NeF7 zO@d1*Qwq-ln?mtiUD?;Pd)!%dBx|*#Rn`K-Hd`lFi_CYW(${%Wcyg6X^w5<>O$B)* zO2*Y@$*Q2y`XMplNRGfQI_#3p^N!6pX++VzR!dk zAp3)|rf_rT6ExMovvODT3>14`D@TOe3y*zQh{lo6Ix511;QVS#CODWU&ST^cP4uQ( zH8_2EU=y}Cb2!%~RIP?-6SC7VkS~&5&<4TTVi%U?-t5ldzhQkMZc%(iJK;}6Q?=7K zo_i>Jz#agKV_B}JIV0-|xLx{NII4R`KH_HQuhDNnFQL-5A z%v}Bf-&VF=Qs`?@aVnI~tai@N=w5Lb9?LXzbu+XK_Ea<%$7HngPfQvN<>9{qXQKR! zI#>toliW9OodE4WY&fQ3m4)0Y?FUO&Tht>57wglI6Qaw~yXyPQ`z#kTz5H?cNlb6) z1p@i+lLouWqHlVq5M&SgC7`Y<%KctF2AYP@SFDTI8+c%W%Qmd>d-VPf)~SY_EDG+Z+&rZ)Ij zW|p{9`grONdm?R>tO`D9e+<`Qrt3~=0_JUcWxf|S$UhN1QXXgyS(fXY!DC9L#z*>x zp}$N14b@ji_)ug6Wo1QKy>nB6#K0QG1w{i%b7zddu6zyEv&<+kie=0jDqnp#$-%Gi z{x15fe0Ah6<{bA={uh6#0_K005aedZv9g1KO0*&Cgl{5m^+&iIsX?VoL*)*{Z|kD& z1k&QJ*c7+L{u;R(z_@c|@tKh*L9~PHU8t78N?H1m>UwUh_bu8bQbo5T)6l-`P+G7L zbWNacRFokfBtz1oA*$gHv?OV#vUSODewNpQEg@90`$$(GZJucAAL^(B@Em25(6PLo zz8|;Ar4(MvBEZ*#@v_U>cGL_y6P%822Z|Mw3+qLA{zAeXwg$Lc2J?UVCNdk}hEWt}6xtv*Z6TEY~)(zw*}7U!>&dcWS-ndFTwlQ!(a)nmFUL zG`F)K)y}j+J4-c8c*gw;>gip{rKp0>DP5jbu6&oYK5-wGfHg<%r#^G}QkUcRF{vaI zj!PRw-vGxa!kDORvBwv&=6^(fMuvk`=m>@0b0y}wh)s9}q^kNpPvArZ!aW<4AT5nrXg=Pfl~`W<^G_0PK)tBM#}m zRH#I0lbh~}uJFY$~8kK#{--V0ZA#u{S`GB` z3$B)h1Bi0PI%X1CfUS_9ceKw>GVKbrVmhLjWDZtl>LmXmGx;g3G*#uTRp7c%*d8%nlaabdufq7@ptM7#QP_ba(z(FffmqJD z?YWoQ-}T*a8kX^k5=KJ2rnh*A;g8gw!Zk466yta1j?*Z~6I2T%3E>hnB!v#(>fzUc zYsEqDq=Z}ePm>v4r5Pt{5&DjYO4_FmHobJ6Lj~1h#wz_yNrVJ=3U*nQYR;6-l}4G| z2oCHp%nD^kU970r72b`HlxS4_y6GS?tc<86!K`>Q%12?80sx)jjoPA z6rPa#iB3_Bf+E2hrMIQ$ASK@~YN9uQ*3z&34z_h5DPDx_Qk`LGx=m6Xb=^AyALvLU zciUgZ9{}6uJuwLWRrIX9o@Je>Ju!>m&t5+9s$+6#KX5p0aUN4w*#}w2IZjJV&ev8v z=>{2R*EwRTwF+9&!r2ro4D158L>6&9p-AqE(g!7I%u~3f=e^71^5yo1zPXNi`W1Rb zP22@wMTyk80j%^i@Tir0MSWc*#D8!j(GM^>`cSR5?vU3u++=Q3r73eu&skIH`u@Y@ z2{$d`>^gXIVGmoG=La=LxyyD;ay##LLKjzjl7pNBj7aV1?Bwj>zNqf(T4n9(?BGr$ zJkH6952QQT#GKu#wfWsj_2P?~w`2BB;$kvPu##fb<=YC1)9I$E{D@VKD=PeX( z(*AVN>Ld0$vI>XNbvXwk-;1}qe^aYmw`2+89ZHl=VH)}OD+hWZnVrC84`HU{W8(3G zGrpJjVQDiWF|||7{G>aSF=sImTfB?z#0P*)id-;P@*0?B-4pdx^mR6hsTotOeoUm2 zi#2xwuHwz{sI7b1sFDE*U9A&jpGdv9NU=orpWEl_<=)^LU~R1XLH>4+ml}1D6D+$K zP}oj+%f$7|uDkT|NI{`5m4;**r8q@^;letr}2}5q0Co`b$PL-SJ+{lIy&fps{O&2|0}KXpGCW?-m0fm4EEH>o2&a4Ed*weVGa4MRVv+H{Y? z6osB7%)yL~=E$3cj<#547JgB&j9BHD+V>!D(|T(4+`SSM-cH_vGD^Q?iiHAX19DG3 z-RIFRH<}2szJ>iM@+ugBbJ)J>GOENo5Bkq^P}0J!;3oO=%L-F_sjo4!ku2jb`S#W_(GcpqI5bIc?K6}k}_ zR>dV;t({3^V+L0)c9prGcmuGcUZ-0j&7^*yaU>z!U)E9E7kEVd8TT*oA2%SgzIdJb zBQ(&vlHy&qz*FT~c5#F@Ue{P7pIptXrMex_Sr8BG#`}`59ewp5$hz9+aaykVkYLYlz9+nHOX>Zc@49NIPcU;liJDVNhnq^$h6|&XQY*NC$c6Habq+ezY)~|=V zY7;c0sV&x1oVDb#b09s#JJm2qdWwD!T_Pxy`eT4 zUPCd|$j~hAXi;?v1{SKbO-J~>(O+WE@>$er?vr}DPbsff%+g#XE*nS5HtY65sTCU} zJxzk_ihn6Ql@zO926Q>cbbCy-4QDV`zBgu!xVzfQ+L0Cjic4yz zVK(*yYbkA_i<9Mv$EnUbw$MLdg>jMkUpUdLOz%iEFg8f(!m*~~HVyH`JWjb!w>FZZ z7ez|M5Ru2Cj!f+p$>iV<`8;?(5KzXLkDFxCInZpQhJBcJ#6K=)p?MDdndwv(sE5YjRRgnSPXZ3_#$)~tshB1djK)sbH0De;{&tv6!5gX zGv);E(Qr$;DbsI9xeYyO0`#1AH$`J+dRun!_u_F-8;C8>{$jFnpS>6kWm(mSk&(7{$gp$|?Msk`m6LO*Y+27|)$ZpTXLVh3c0Y zP(DRFTUg;+#BWDVhXKH*X%y^bM2R=nHYEp3*0^eio-rb3-Jw@RinsyO6 zJvyo&m>~aK+fJJX)Fa05brmjIxAMlQ$3G+e2W&(p$oKjm#wN!sF#W}R<3bu;Ndr}` zKSEknzkvf@$W({>Ey*cI$x6>M1!~9!4;nS*eWj&F%yOmQO-qo#&$y& zqSWH8CRFXk=kXZR(Su-J0(ZdmXtnz{R~`bQc1=8}cmAn4WGMH}^$trS!7;jPKqgeA z8G(Jp#z4n8eOz^53RIVCz^u`p#{R0P!Cnft0qzj)($mThnp(gz%VPK+bXyD$?)R*Q zj~hBTK2ls5}- z1;k+!WjrM<^%c8b>h?v!T|NBUfJpd^<2P{E5wZf@4`8nLy7~>C2myE+Hx_8;ZE5<~ z|HiP<^<6O!{HDZWV0Quc+j0*M+G`lL2&aI%l1b)6#rG6>rtz?h)>$@0Uq<)S&KRaE zz87aW>oPua5?W5RvE0dPsjKpy7B4m}^}n}w^F+s#q8-Fgmdh_Ny)a)w4B$vtG8Q3D zq}!`kNLmKfY=70C!RbZ4q7K%_Ol9yRx({BLlZu;}`Hm3^DO4MoYMu}$x9ni9dI`(2 z%pGV}X_je@dvff-$X`YdNl;yuOydvvUmEuD9}OVgNV&+=(MwhgcJDG|rq+XYMjIMm z!a44*LYOvqmm1c?Wfd>DH7J*V*Dj?8Vy#sj!vB#1be8j3rYmNVDqwr~AvZx|(tZ(H zAY19fXg_IVXqx1%SEB7{>``8=-Ym2at_{ekK==xj=`YG$NOWUZ(GGBVu#siA=X%Or zdYI;`u7P8b<$mGvic;9je@zP@`y`9gn`@2!^VDr$3(OHYZ)h8xVSmf$j}DJ~75Vf| zIcvrI}^(52Y*Nw;7eK283O%Gu? zSqk|-#NZMlelO%scpV;Z`~y8|^HtDxD|T75H?&6@@t${5)GDId?Kg4SCFSd#PeNuW zSF24!IEC;@(JAGf?tZ{2h73RGh1x191}RfZ==GXrR8K0bn&o*GmlT@fsqg4y>Z6_~ zlBZ`9$M6+!htLClLtb5lG37qfikbnavBc2I(gvxs?Kj0uedAJJ0soa0RRP{C$z)-! zr!o2x&%i9oe&quV{nR%-cxGpEb@Ttll~DHg;R!t-BA` z))4Psh+HwX3_mT-uIP%tPnlut3LH)O>VV+_MKxw;Xl{gWzTh#uhrWPi=om#`_Y3TB z?kD6EKiS?ywbCAi2jR)8F3ckKPeKmvQdO|swB7L+Ono3#!hmx@zVw42BXd9(`!6>> zx`{hAcuadP!ira$H-~=3e$s=HLvTyiEov|Qr?Q{;M(BUwVYaJ7;g8Lb5$(aX6~i;` zv+;DNgl^0{-s#H5N06CpckR>2L&tP}2HQw;Jb2KywOCok1QKlXEiYsrTu-PRNDz9c z<~kJNn=s_x9c4p*R*YsGSZfa*Tx1%_d@64a%(jk-I??+{?n&h7!63*Vw?~-!{x(5V z@(8{Wv4Oa!%Jg5Co`kQW|3Ixxf_<;wt?bU92}O{RW{oAr_f+CyFW`Ga^?;gwXKWX8 zWKwc86&x3ci?p_n#(u|-*RLy?6RMlem(@{T4%iE4mj40l(k(G9E}4(7chLI!#%qd2 z$U1(Vx~Sx|Q|6cjT|dx3X~VBFy0X!XTzC zNe2RIKMN_41!l_7laSJ_&{F+4_>*A+TzCfHB3hvTfZ2h~x&r@yCZ5!)ZCFFRGqWXSX!>rl23HEN_FTt|j8a$Ak>?*Q zG%fEKS7;R?jY^wDo{+=feSRrEj_RP9%J!gp_;rqFp)=Ml=rII>P~sx-G5WvVK(!*W z8$3rI)NMh5P|pNFm@Ayp^$57_uS^Epbvr?P&l$&GV6(7kzB-D}+#2P5ZH#%B?4H(D zd6x%d=e!f)e?kz~lX&V`EPY1}1``B7yo(?0?}5(n_lvY)M@G%e#c+l#}4dozx zP&NXlYj$zING6Rd{9jP7D#db_8WU(67;e}p`J?I!tqJxFpA4LHKegm>V{zPIbaw$x z2|@Cd>v5<@jkQtoH%`n2TVt={a!mu&^}5!d<+V+{u=q z`|)=X6VZvC!*}xzqrFU0V3$mAwjqW{&&AY;8|=C!d}b#z8MY^r^D-*uP{$Zn9Runh6WdJzJZvWTNK_un60M zKEit24xw9Ox(17#l5il{z~Ki*$ScUL=|*ZZmx?w_G`Rk-EivsjEpi$vubQ&>rE%*V zJs`k$%P~Z@jlCEiOkKCvGtFRbX@AC!2))U#V`&|{u6{xMwsgafqwmwj_y(wzr^I@Z zU!=InoYRazianz_7~Ww`)Fy@gM}rES>5>*NsLH{V0&Rt@3)acG8eB_V0VT$qh|X0H zdZUBA(}ZPKC%TZY4rZ$t;yz*~vn;1(#ZgZV@(%9K^2}QKrVKo^+~1&Tfw`T&Wy;~; zs~l}^tMpp@|F}?MH`idMg^vMZX(wC??qL21UsA=>*Bwr7N-&*#qghZBRui+ zwSPxJL|$e7Twp{cr}z&7BH{zf2;Vp98r?^-YBeWhX65_%rnyJA9YLw_~#S|(mIC~h6x2zw7* ztNIUqNPkrPS#nEyS}{Mgg;=Mu1uc9;u~~8erL{L4TaxZ6`h-#=Zm!A}p&l@F_+w#L z{$7eI^on$g#w)f4<3yRpF`6Y_x~g7G%OnQ4p7aaV5>gDgZbSHgCHvg{iyG$UDRS~608Ow(n!N61M~ikT_J~@=a>Ofpe>{n zsYsfaAYDuEz{TJ!UvEdMM{CDoEU7o?Lv~)l$)+>~J9~&#=cN>*dukP~1W1wc_=0K#9!3TK@nJ+dHdf z=cOpbk~;8iXDdLE>hbc_w8Cl1;lNHs7bTq%bQ6jP5|bFR-?a+j)}HU+-^u}HtLc#M zxBRxMOQGLZ+jls(l?_syiW}tKq3E64(^HigtNtIfCZ{;(FHx*58+@)hRj@nZc3NFyk&-pVH*?pD!ivw{`EEd2E4A8274(%s5_9}1kCb5SXjwA+ z$v%PV?I@tUc~?Zr+_U!4@&B_GyUP@ZrLp40_|&4gDb*@LMcTjN`{gN;Y+DDs2Tm#u z6rCz;?EGHVPO(5TPjOyWvos+Niuvg(jO(f>^P2J!^A98xiEwg``X^-?P_H)|YtVfW*n_*S^EHFZc&3 z#(5nM>)bP+crpbWKnJvzTAn`%&BI2_Wdp&`(jV3Z?i=nrqZSAq%-f z>U1I|oyFGdtavHgmWT^OrT!GHu!ZkKZt;z_o;FwdU3??vIU;8}T4wU3x20jF?rNl# zE=KxBB_Y2tdzePSN0^91BC~_v(mx@J>N?02=NX{LwvvApiiB|}yJGLEoA@W^0!2{h z4Gn{f`7PQMU7P4^Acn40aX_wB2ci4mC>msXT8eZ4bed_+?eGpa#DybNe|V0em-;sK zI9P#q$1A*R^u>C)cOqA${as#PYD5lJ9MMnLPBA5z8Y8(85uE`&uUN;w1jXev|DDs4wl$>#OnxUnc~fd zLQ5-hd3h)Tl=>C|TZrNM1nL`e3R%uB0q2FrXwsD9)vXM9IHp6@7Xn8W*K} z5hCiHm##!7WNqdOgTbmNt{&(%^A3|CYTD}uGzOBXG+BH7&tNxS6|+E{7@S?u-# z(P~;Ft@2t_94FdCZb%b+#9;d4>Y37w-q+}Uqy%$R>`^DtHTVyOk5L1+7wN3Lz&4;$ zRhP=Q0o&!PbBuo0UlHzO$cmm4qx@GD){>2i3h#szi|OBJs!*Fs^^?l>0lR0Pt}jCX z9H8@fJZ*t^JE{MY9QKR|L8f|ecG=&Sy8IYT6p*Q_Msso&ay#uSV-iAdwK^tU+DTf* z*Z0|q?=ZIf<+2G>Bc_FC2eMHl4-T}}5YH(+j^k`0{D~S2?FAddmENyWDv+Na=n5A2 z>yeZwv{`6Hj8cdN zHPu*m7~W!^OxxW%p=Gjv4Lu??L{aFsLJYM7elijCsOoiGAJI{}!TG>&H>bV?c6t1XWygKf{QHQT$QK7-DpxA?VN9>e(iyOFP3^KjBjcfE=9yee zuy<(?svF(=tVMm3Y034r$?jpX51_SWi)5`V#ibtAUS90}h&;CTL}03wEyJCi)0(*m z?NZc3270ghmL%0=+qwo8{Eorg#|=Xxi@;_@ivt$2hrWqpv38-eQvb*{ggS$!L{2C7 z^0ubpNWEj3b4Hmg^`Jcn_4KYqXitKF5s)9RD z4r%5iMt4m4DZ?smi$5>5L1aH}&F!ib2a5yGkzb;_%q?)BIyQ1Vk+r?zc2`X`#}xHW zUnA{7bVzpzAFw|~BZApwHFJy27XNtGN5#jV2pwa-1lF>hNvYyYV7;X|%^I2jQ_F{# zI{Gw${kF3aQ?&D5A76{o{8)Oq<&_%>A>KRA418wgkn*d{YUKs_Lf<4sOIKCtfWQ-z zglVofaVKD0QU{5n=-{W&2$zc*mUz?Mh2!-O4u;M-FIi3ri@0RdUy;r6`zr@|w}C&R zH=tkI?+y!gSvN|5iIMno!5X0$WnRTRc9(W?;4GG=JOh04v>=n2484^~C9Z{KN}J(| zxq-MTf17?r&x=U%E=b#{?x$sQG3*1Sk$gox1$fVY(jJDj#8Tit=9a7}`9>%bo>pX= zw^0d^UBEZpnV7JoBDEbk6W`)$p8glI&9zFQW;Y{n#y~|Z3eyJuY04t{qqUv3PNa^$ zrBQH>wk74H)buPbI`ok139b;f!JiaiNHx5FVgltO>_&;;xV!(Cd~fewGwbW_1SBnEDzj7dK=& z64T{pL*wF;)Imo-Y-QkiIvMsSW%3K-$C(#GQ5_qd>ACHF55I69bVK3O-s?;={5{>x~U!M z;l!;X9W~>qzT7B%Z?X-V#S9Hh2~9*^s7c>ITeePLw$}vu%jpm1|A+xTk%!Je1Lc*4 z3WxKVgAb%sl=C;ZCmLD#J1!{i2t3yuEA6gF< z(Rj)wT?5U)&~e2gbgMVoflO_pDPcRnSk+)+NU$H!(?7>GJkrsU#b<>+6G}j0t}pcD zYHCNT){!lgcl{%gR4$sSD8G;?CHtuEl!$)H#HH3#_CZg<1iu3rEsQg!OBQO=;sB7+ z6@i(UHMBuLL4{(ABpi)P#p3wP7W4+=S#^Rr)^0WK6@RC?0V{+RSY7GnU~an3`^+$f z7h_u@!xe({JG3T23rnQGLkgJ&{N&cD|BXDN>pR}qW`ga&IokD}`+2zTysHN>T=FZW zUnyRuaaZdfBp!AxRvsefm#l`LlV$n`p0LUxH+b9Torr(#C5xBI>w8*5NAX_dYIrIY zo$N)Ha7}EH{Kviysp1^HKVGWL-Pya+y)B6oZzZYU4=exe%v9%2mKL;{dId{@fo zl3a2$D$73vLrG&)33MaEj#Xl}wL9J4a^{JfaOdfKdSl);$xV8a?pVp-()(q#>3QHw z3F;Xl$%ncTZ%clAZUem%zm}S%vt0Ygt0n)~M!GR|JE)XuMbCl;GJR!cf3>nv%JZ`8 z;NQO1(Rtkypo0%^$N`T$!F$2k7QV`4!|^JM;U-)OpM>7I&v~rOcIt|vn|2T~9fa7n z36JDd(m1fUuU%?-Y+qZp4RpQ_)X81xdPUYNE20M$-12pycKD}A{!U)({g)`v|1w^5 z4JF2)0C0|;A5HIT<|aF*!*io=mjYxfnFj@dQ>utgUzChAbX^5woLgO;a-O>GBO|Eq z>Z`6M+NV+_FbuC7xak{hpYKU`>Yzt1TDwwV6HOEK#Lueh&;j2w$88`n^%@z-c>{KF z%=YXJepF9a$n@i_TeY6lIb>69>ylc)lbmC&17L6E0r;%%B3LQX0b>;dlxER(*BX6q zrk<>&s&r>e|(SDoVPZ%YIkdL9thG?l6e zZjs9`XUP!pxBEzRn$yg9s;avtJEmB3*}R@JdQQ7O(izg(%!Y6mNeyT(l!7i|+ofdF z3*=|0{)s_%t0dStGG#gCwEN)({x3n4+~RbXf8po4aLXpR9d|z_22{Bh!~|lN`u_@z zR?N>CC*DAR0k8RfvekG2+Zg2)qr-c=H!vGA5BN`QP0gm?dET-H*G*XqIBFT^XTZsk zu2i>_<0+FX@=bAQMQ9-v@bxNRqp77_NEP6#zzT03Fv3qLm--3URm#M4E5#hU!4w)q z&H|gGr;i_4qu0y+2yl2X#AwDF8*`szW0=3#vHFpvlZ{cb64Z_9!?@^<`p)nYQD1)v z+t9O&tzy^v&l`^v-Sy&WiqRiw=KeN?oeSlwcf z@bt^t?rS5AO8O%B6_?mPrE}n%_$+%{I$1R(kR`rg=$K!PUJSJcUI!0baxsZxi@7)c zKTBuswtTv+mU*`8Gx`Ny&i;?wZwtG@I0rvJab~b_upm_+%qA=TT^qFhDS`dpZKaZ7 zskO8ctT!nT`we)c%DT${kQoa8bT&h4|W|%+euh03mro^9e;+PwRz#L z_++A`;L}%z&fy0gbErQRJp5F58eWsEfd?xZd1eJSdfZ?gES)rZ&yp3B;?kt+RivAOaeT_^sOZ+!R=I-tBMeID?K2j~)m z39v2cjizSoM2*KY&+?lPkPSvVd&RQd@|s_TAqlYksySKT&?2Ne6(=jsYHk!wq~hq! z*aLK{{T==TeMr8>M=1|RB9_k5{|YmRr|xZ$OJoMuK^vtGcnQ^B*y}Bd%!V!oP0>x_ z`Q%_S259TKhJ7;3rv!F6wJWM~sqi)|muD5@fEY34TnrSK=4ws4tyTf%nt8@jI{ z$I--en;z#nZkiYQlB#t!L%sYCvlMNW8$DDl)3Ax|XPV=I=;hHA(oTfTrdP%{x=qZ^ z7?!)C?Eya{jw*T0I`3wO!IWa32!He5vKQk*fncmBJTl!k@3yd!j;V@_QgTl01pOXT zi^LFSWqalta}POzpvZf5ugGLmcjYvuhg=(;Olwsiyh7RE{C(hW;SXpt+(Xx25*Ik2 zZWfxzOf3n>74SvVAX+3GQO*=9gq6kX-6aaKr2y!rMZBN=CS+-FrQ)_>F180;!lftI zM!w_S3a*-8=?>GLaG>G?d?PqFGfcQV_hY)JuBU?LY~~w27Mp5p;FL)S-8z7c3?Z_S zo)yoiC2)lS^lbLMMqA*^j5pKzD^2($Mlg?oJ_w6E#!#_Xns&tXMe{SY6fPHr5I@Ze zl&!=mx}mCm7DvHYx-L3V{lPmiU&F!L^XiqrezZe)C{m@@`IBYil>M#ks5K=mY*Q^? z$bpK3(8IJdN+Tnab<>?trgPWqy;Pr4MjF3Fc>S$V2WbKGZ|OYFrk^gmhE~E^zE9NE zwB4bP!5m+;4wY_p{*=WrrwW$QY-V<1s%}lbCGr92C>%G`jEN^EnZMWrt^)+aEduiL z_p8Q=^`U)%osQ4oTHeZ{DJ$4aU50ChsF`<|%!9B}oNJ|wfC3gBx=HFBGpz&@ZJ#`N(I zWVEV*$#XpGN}DNe2g~?G)mm_nFTs5vu!FD|%3}Iy=W0saF3~iP&i*Idt#A-Ik80-I zO?b=9=ve({xOm-27zGbn7o|3HigFUs7tltOac?f2?v;ABd;7Dky<24al1rJxu72hz zI13*IJ`-CMOC)2_L};~I>Nk>Cy#Cfi_s+w+&+@NIsTCx)MF=Gzx_mN~H z=3e~&bR+cVba!NHgM-2Anj)Eom`&D(Yso(Wl%qCEx)C!K&EH?^&X=_#`*FR9{;rM2 z_q>~4ExVtS1J+~P`r8Qottlnf)caKJlWOWF5*k-cb|P@c(92ODWB3i|G0Gd?*}qle zr4vm%W5x%XMBd@|($|oG%8!;b%YW#J5+?$kWDfW@dBgCH>=9VxJ{G{8Yi)Z|Td_xr z+eh1F9RqJX7KH<;ncvt~W|$1wu$94PoX_@%Sw*)G-BCWW4Rm~A$9V?1531t9#X_cg z5$lNU38s0|eP_V!@eGg+oX;Q3Kmep`7cdmhbU#gA%h%Evfj+wZhR4W+($)TP-jRTi z+t7QDJMGs)|CAEQI$aZ;F}aqule>SE_>)2x2j&O=O7P`x;;t*#+tO_$rOAGQ0Wq5!^r{UP{(jxNBuO*R}_zL>e>P|;Me6o5x?bpN(56dlZyB0?qFTD za%KW?3w_Qkw6B79KnVd%wLkwP-QD(1G?&@or?mfzSqZ#{J4oWve%EY;r5D@)(u;b> zJt1ouevZ#TUCv+~e-_=6j2i(KfkwieH`-7vNH_>}Q6;O)!D&m&6t?f8PdS{vKu5?Jx z=OXdm$Nnw2;QFT9NbD_MgZ|R)G%v<8vA%H+0t@8X!9oyp%qE`tC;H6B)6S;IM7D;b zKlvqphUr%5LHuGmwa5l{zUw9RpAodY&m8~qt@Gkh5f}ySniY{1=zYWol92k(7Zvj&B z^yba%qtc~`@AFw&FXy!fH_ARDgR0k@_aL;%(P_FqO{aTS) zqpNNQH`M$_wuqYRX@;e1*7#h0bwKV-(vH>E@egJ8T0^d6`D6RLaDmoUaom&Wc9^#5 z8xw=sewJ0LL}hKw2*Y95RCl)Zn4~UFdbHAKj${t3NQYBR%h&~_lMK_?liJa`cEPS% zHUCto<)JJK(j4Rt`+c+vnGnB>Vj>Nwr~GJdQzL7ZflFm+=5^RZf6MR-S9$bX%Lokg zY|f;FKLZQ6h9ZSt3}?}p=33NO@INmHt-!jI-`wqD1JrZfMR&4dK6oOmit>(Y;b6Ft z@gHt}^uAq}X^~Na3<*vk)b4nd0B=f^#mYm4{&U*h{WBv+rLre+JC)$Qq*=v#ina%zl=^g@h9dOl?!~QSo zi4^8qCbWfyxU>0E^A1Vp*uBg(EkP7Q!*XV^uZX9_TgP7e3MDROJ$CV`yiv}U@DTk{ zPjh5Zs+NrxD{!6M)9>Fg%xBA^6HuvSBZS&h{z z>4=YVsZ9?x&+{Q&m6T@UnEkpDL>+BCB80xwj+9LGAJrWKoxrxT`m|a`D+M?p8HsGR zZ#A@GHw2Z=|RXW2zt~o>-XfnDn3CfLw^HoMg4fuf^qrdnsd8?WA#M|PLwmGsv3AYQs z5tF$#a0dRxg_h0Z&*YZ+uB7Htxp5_;KzuXJ8hWW=s-~f`3x`_o5o=4PL;a9ba0%F5 z_Ai^|o2uEYd|`#k4jcLu71=(iQe_h~B7B8sZp=~ES~L&H^Iyi3yzST`#~tROWVI%n zZ5T(p*Cr(3qx_R)Q?>bqhm5)83N^-&t-PFfBW|O17qiBZ=E)>6e6;B=u@nlIng37G zS$L_9zHNBiumDL&APGUn>biCJsk^)FR<`aoJ}`p>PauH=7^}P6)^+Q?ZMU|yZTsui zwzBQV_YZIm=Oic3`@HvkUC_Z`$5;~itMDbZOM2o7D`;5}6>AHsKUs!48-Wx39tTyp zC%>)joaUx{JAB6tXm)YAxu+s4O+zXha4K$;b(`{FB*i{jH7xMXy8@BYg@OIP5BVSP z0)jx+ux8CSZzHR$L)9~+ujc@F#W;;n=XmQ2?g zC;dhk_Q&H&qK;TZS_lREH0z@EG4qeNp{Eyl3CPC2Is5W*R~G(x57cM>Xn)26e|4W1~kX8ICB?0ST`nAgV^+sJgp^cGUbrPWdqj?$Gj(u zS>oN~B)qw1xy-~myd&d+-u?3D6vdJHESrR)Tn7Kl11OeGG8g}~TBMXgl zOLRy&Gy|E+zOhufAbg#CplfvO|HAUwk^8Pelux$_RVVgwH{@FwX4aHrM9DHJg>Mt= zlRpL=88v&_Mdexr9tqn6_xac83b3mN^bcc3sK2P1(09CSiJ?g9Dks})A2-km6 z4b};3XH1M9!5RWa?S7RtQ7zsPYvkPW4vp`dDWabSeh+OWvEa6>=Im+TOnwbW*X+}! zpdU2P%az>il2>F3xt(6Z9^~SLgkb%u(P)m(pXyXKh>qqB!UXT>s%xQb>AxjE4UkoX zh^wwO&}>`=Pp7wA`s;FYno}t{n|~BMx+X<(O81TbnT_S2iEFwI7__z=f!F3LRzhoq zOJsApg^k1f>=3>S)43){*&|cg`;|X3*M)%?gKd9JPpmC}KII7AMLjj}zqC&7KLg`b z^VJuiNyG`mtUDykr1tW9sXS`{DC!E}v9W zM`+6ZC-9ype0y+5dQt-8>!WyV(csM#djCz(kL&2}@I=v#s+;ax*brc=YnYr=wskCx zvXL#W6x|?bpKe=ijQ?vq8V2mZW1NC6 zE83mtj5LUvP=W9VGTjl+)WA3Ia%499HLSx6g#zF_8G-l0PmG5&r;2{IyMk%N_7H>) z@g|E8I8n8<{G{%Yem)t%8Ubs#RvsHn8E#|m_=(YCQsP&uAJEU>OVl?cmFelvNcMA` z(bF{o`+>yNddR4}65~tlh;b_pv3toF5hTVK9)?Ue&BF6_1;{65rtNQGDx}fPH9ppj z7Ro6d)FxC%wV$)XHFPQgsXU&ug(g>9_c?~}WGfE1`>1DuHR`A8u8N+@`hZf?IPD|v zp{`;Tnp3g{>KdRUIYl`uR8K~_`yshOi*EzGD19{eZ!E^$Bh*;YO23zVkLCt2oro5+ zxG;cIRvu7DJ)NzI@|p2R6uX>Lz`9nBZU8=vZq{B5)`B&eKaiI>`*~5)xfmP$lg11V z4&;*;^0RB6ASQem^j}!bmMP=S7R;u#t0qCGG!3ymP@*eJcQ;Q*4y$8Pd))|YZ}yPx zp~I8A-M4CGj;%f3gX}8l4g5N!Z{gTjLqLHkV!K9ii;D&eL zL0c|`0uANYIDmPtT%_+CzOFAfJPS+&CqpgiPFx<(DArP=yt`ckqOUEZZLfT5(Dv9j zjX2hV*ZRIIZhO0ut1CgUC9_SuLUD_iD`D;b0=qB~(1GpF#(N5d<=|xF9M$i5cb!G= zs@Ur6%1$SyNIx)nl_Q~R$USZ{4}vShQ)2tsgy>Y_a8-zEscA@lwSS8d?IzS5cE3^$ zb9yQ|@=Xo?WulkSrbzZp$B&yf$Yp))&tLzH`%vzpLuYlB52#lhm(Dn|FHI+@K)@35&uG z_oCSDtvB`uJH^83YpQ3Mt-{jT&=>FK zeyAAAT?>B@E?00QFIDs7v2WNDG*9=^4%2zYo7yf_dGao zHdA+A%$OG-^{88@3OHgJ7@U>(cjym^B1}WC*)P>!s%n_I`K#!BaCd>SdX6!%Qtch@ z9>6YOz4H0aX4D#VN$}rFSKzm5kNcc9MYlgTF~0-8hwFR0bAEJZa4Az8qzqIgErhjT z(Q$BV6(uZUMpdrzmFW6aHbkoBr^62Je5x9Hje=l`dWc@+yiq+dvfA;?f5O?wcBiVj zUrv|!%l%1;1%f%UIW({KgJVRc4eevUYs@?f5A% z8ic6&bfsFpS2$gqME=g#NdZzuYhM~x)A`O~Nw?r@bhf<0*xl_a$daufiupM8h5UcO zCl!t1j!`J#1n1YKdosu&W&-ce%!hAhE#tEMbE2=*+p8p|a;RO&NX1~w*U~!ZQg{oR zDsQjZ$&?y;rJvysC#+_-f~{0T?3Q3Alf#E1?~Ah9_sf ztX2^n*z4xs3_ld#>E^*h_{``;=L4i?@&LBG`$(ig?QlnxW2;9WxPli*Sa?A6nf)=e zEhP&qpe@!8MBV6>NF(6aV7BKkP_TTow#Ie}MNkoNK{q4_MLwsdhXRgV&AGzsZX46U zQ0V#|_=FrKzh$B}69gcs6zy7qbkO~2N$`$LYML?**$_-3pC)}LJBK%rP4p$jGW96! zSZ6YI#&Mp`muHh(_?bwV-HwC$F5pzrA@)yZ3yDB2k<#Lj`;Cpsiv6DNf%1+#4QW%> zkBN)+;vQ+&5tAbR80DiY}@!uORY3D@SD728Mge1?dy3NJJIA zTaX0h)e0_w+O6sm z`<6ARu&`IrVcb;0;3zZ>ieG^w z*n{m3&H)OT@v3=HlxY@9Q@zePCI4ZZA+*&@l}(N@20z5^8|K8it}Vl3A^i zxgEOe?x(0;s8HsTPfS~qF2^<0TEU^%F6gTAa0(1IXK>#Mt}698jFNG7SD;+ISaV5# z6s=eJzi0=^=3tsNS24tvtMYFN ztsDu#=DIA$Jm2fe6Ta>E1NBfJhaE_7;Fel?lhdlxm`>QB=!Rf#ic)vS|FZ72rC8?Z zx>s*Ny|yVtJ$ZGoUtx+ct8kopc_<(0YOboY*wHYwkL-dm#!+#DEWP~cGNUF>+_CB} zmk_8FnJA2OkRRNGJTs|sZ5k*FOw3r5c~rTwa#HydM|*OjV`HsFm;^Q##gI^JN$@#* z!_b2qL(2mXf>7qO&g-IaWH z-}8;}lo{*6NG?sPAyh(5z=oI%p+W}$-&`oh)CvtTUN9m#dUX{PZCqS4p z*MHV{&Sf*U&xvrEz)O6mB88roaMJn+e@Jd;76Zow#PNck;jG4PWo*R;iup)Ue7Z)PG$R)V z7X5$DPP-`PySM^@wnNd29-V%lt0CA0{hxMeW^-jp)dhDXU{TiRyTJqbf!I&l+vqCA z@9H*aKkozNv@THo+O-4ff!Klt@HziE0g^q_ewS5nL&*`krkDlz9Hh8WSdM%a{yQI! z55xy?S3sBNIqde<#YVW-X@5m~bB#1Tgu~cYJp={Rg$fv5BM#yd#B~C^aW=6M9qZO1 zTi`)ZnXxQ*Ly{G1U7Q8g+V8sV&^)4*x`XO!AqlKbQa)Ez|#1pSRf2S67MQsFZdLk#?IlR@EE9%>zLvV_aE?_ zIb-=t{ec``?>?|2e{tp;!57iFa3}8_q_pvE!glNo+z^|DprJ-_<49EZMq@|p?w{Ss zZiT3vLCs&}lQnCQ_mSq73Oa=!>S-U%GBh*t=4@eU%p^nzBiXaMeROSHLQT2tAOAnj zXUgHsZs9h63u(@GOx|MbukR?iPG`6p>vwn>V!FU^Ul+w*Jjt*|yV2N1^H3_1XGQ9S z$MIKnXJV$%ikzb{*8eBp#LAucG3F;kjh%F#q<6S;qkFjDGRl0DAv5}q?pFvh^d|oE zy@_3g+!Cf}_S5w}t#Tf^HqikTM#M3528;|w7H~dmd8CmepZHTTQ!mOTD#oA*nTP0g zfhnxlkrM(8{{}|oPrzP*y{s@fF1-dzg5x=Ps46)QI3e%M*@cu!ea1W47tI-@mVBj{ zqn7w5;uD2Z(Tl*}X-48DZ-N^V$1^SPDt3_Ll%;-JGxr?FI_2|7CNYS+>e|Po+7}Q5 zsm;2F&@g;w@ewFV`G`4=XB$-7!KS+o?ULvJPZF%eBoy?f1Bl8n5N`4gUiP?}(j{1@J_WyA&RP#KOz%P{sM>}i|^2ULL zzKO?rRycDMdk_M_*&V4YGbTA-k_k@6mfB;4SItHKxc@QkjB7zIg=g_h@&Wl^IU?6Z z&qeA}ui1k>8GG4$->pua#qLl!{YbgVo#R9be??{k3E&i0Jh4ujQ1&PPBgEhff?2xe z!4t*3m0PGb@io5NTvz>QdW`HM){tE0dV~*F*Y`CM^6+2ezHBidGW^SqwK4KO=_~Cv zNm}SDGOPS=Yz|Nzy6)aU=lJqODn}#o82=r+r9G!whEJ^OUv}1&3$GR)2SDdx_f+>c z_O(0YT!b>wfmVC0zp%(#sd2*pv(}W_{Unvack}4|!zyE$DgG4}ReVnQpIQdoifICx zk@fsd(EHdX*&*sTAXl?9cpU%W7#QutbPIU&gOb|XhKD4+lWBQe39F!|kua6S&hrEA zR84DSWnnG#T}W0AWs+>ooi}4QQWF_j+6HJl=hOY-K3sGTd9SR`MfGP96&9usdxiy< zxc`*wj7wF9mEYvE%Z}oK)PmEB<+>mQ&s;lwBOOnP>_49$yWwN)kBa|Pm15b=iPv^azl&?yn9t@Z3uW9y~P}iFD zshr(1TD{m>9-Nr=bHxL1Q*@H_Z}%}`JT%Lvb1bwi^}^=6UPyIXb=q-;wuv5_J8N%h z^>9>@fREG1)ea2g#9ytM0TyQ-RIY;&q`*9!)|67b}`LYxysIH4zsP@bplhUS40Hpm+EJ{YuXZCZf3(nD1$eFBYXnFX*qvtY*)x=QMkTjR_*g9(ji_ zn)^{%uuyeKR|YS~pG8(kcUu=nRh~N3XKWna$1xfkrD>e#(8Pn@s4jete4wJE_t{sh z7z^4@hN^XMy~Wg7)L8kT^n_ubyaTy3^FQ=1)>SSu{RvznD;TeEw{R*_H{_$AgeR2_ z(v@ly)(aIQgJb!AepWw67$6RjGj(Iaa_E(VO?V=t z$j6l`g7tjIRj#B>1XS2nHz5i1b;)LBMXqYyD!+Mc4PQ_l83=Z8h-;CyhCdDy#ORBwY z2m2Mh)J)Cvmc}N|X~yoR{zi2o5$I5!W9+Eg86&Gr zLT5nA>Lb=mM00j}dZMEu)lOU@81W3ls_Yi@`Iw!eqxY6nopGK%p_^BQxJMN4U}63V zDL5{vdsqBGwlfF(>qGs*-GEk@7@I6POx~fINl&7I_^Z@Qw~ymZ*XU~%|CXax8Y@!` zfN#^gpkA@(J3DP$ti`jDXc%A099Cs3Dsq%L1K1YCIawoBs_(k3m{mt-;mb$>K12+3 zH%wpRc%=mMM?#li$n~?lp71C9KjyHy89!Gyv3#srpk~H(A?2<@?*+v)@dMo?TRs7h zGi0?`p}v#mohn{8&G#4ixiaX~QvtswXzC;dB<$6t(1UFGtL$hy!KHk$zS5!)mzTKp&9f%wc0ko4diIV{3S z{1OOgVtj98xn&8rp4cg;_4ldfhJTDhjB7|!94R^Cm;2$08<{84yQFPWy>?WFpT_+v zKP+pQ83{;jt=XZP!RRh*9B(BCRKCYEmx=l^^98_n|Z8E245{Hi<(@`jq_!X zu?W4vvBNT^2vB^(juBtoOCoLMl==_P)xa$LA^jGAQvEVe*AanjAj=PCZv!VxZTLxG zC;q!uAvsP?PTV8>6Ssi8XgO|tm@V}*jL~g&gFOCw!3^V0-Hl>3_0~F`*~K4_wT6D- z1j{swRDGWsnYPXRpzzmlme9bxt2kMIH1rc6l6FPPDjtPb@jcx-vZ;14_%HsOaRvIu z*iO_$HL=L#OrlPy1A^H4naxKQ$FF4W(4TD}Gel4tcjTVXYg6tScNx?!4cL~h32mi@ z^EY%b-641ni}G^|>cHOu=?JAtWMc3E?IL$}TEkEl*c6e`qx2xr#PKowm>bH9*X9{t z7y=TS{#Sagn8t<(^MhV*dpV{*6fmhZoSEC`*OK?Lwt!V|KQI-)N^f&713Bk;vc~_( zy$@O?SsvKWj`aYBHrzgo*lqTF!ysm#s|k0_IhFe(*tH-l^}j&7s2RTQn823k>NBko zuVRwWnL7_Rqzhn9^Hlim>XvyWI0tpn3w;v(AoRWZ2jUL=jCir!=oQ0oK4ux$dtJTb z8Z-Z9v_}U}8<|&74!a}VMy;rQYn)1LG}bUm#m~mgswK!G!(M1M8VeH0_mDZUThX+v z7r<)K9BVB;FZ7Jv1b6d1L$m$zP$x5D*b~YY3h;KoS40PoAeLlaB|G}jOeS+vV3F#D zUniSE&rr9q4XTb1^ZA)*PSq@2%GXz(Cv%`jNQG|#TT>{7$1z&tZEvn`4dR6VV#MT& zC}bOrHLK|=P1dFfa_s_-Naa%uH?&foMP_j;*>^IJq5*ccluxVg7lM!Vcc25Z_^g1s z1LlC2Qvm`L&sV>-hC-HTJa&P5&Cb);0MED!qAm1X=`Ok|b3}NMt^p`l-_@+GyyqCp ze3I{u?N-b1LOM0tg8_gCAq^gilu3T}jDV}0jj%6J0b2{G*iH0CWlI*&0_7v6jf~Cp zld9j)ck(|PUosQeKh3ROp-^YZKJA*yiEbk~jlJSifiWH#{V-im3`IYx#>wVO%HltB zX|f32Si%|Bv+Jxs*(HkYRG2XUH+7JJaEo-$*2l$){xQV z`FHgsxl&r~_{-bJmj^1mZto1=CjUeF3XaIv^K^;)VtLc4Sy`7xof`g_#k^x52Q@pMfW za4QQ7A<0PSQQQ{%R(d%DkuUQnCf+sOg2r;s9h02fb#2PmN)8oQ`)P+tvWv zQm@0#xMvc>gfuJ8y^(F_^?Xy;6yh-bJwLuk zKCSs`jNzdJedH73j+1ZcYvC8#sivUtKU#yx@d*^vMps@jnpu7aw!qFI6r>)Dc66U~( zRuMx4nc!2txph1^QdQtdsM!G|>ZjslKrj50m>aH3Ux_u!VElvrqS{GZzzsJU)4Ew5Z5Z<5}Cjt3!v(I%y_+GW_7gbeK*RUP-$^m26* zYy{E}+gdP87#!KFv6(PeQ)aoXuF*k4qVBkrkfS1$aMg`@%n?dYlqtWtPuOJf@7*wU zDQ0~E*)arVJ06)F{O?tJU*;!;21+wZ4ZzT*E?3 z1TWP&P!jLfhG;-IY3ybD!@aX&J^eJ4tL%jAVG~U^slkamf>Y>rB@2BD#Xa~|>SkXv z8ikai`R=dbG4um8kD{SNI2nS9y5gzkJ$RecujNfuvxy}!EIEp~R9bA4`*ZSk?JZEF z(lHWzq5A+c3mi-(hCsPXyiS@Io1ceglW=m9j{A>ZXxOMs&0oq|ff2_1Yyv!rR_R6q za;CTPvdrbqv9CZ~@)fG(CNlmzBemVMOrsV2SR_d%*UZ2_VBe%x-4mjH3Co=@L-9)T zvUV^_(EkF@a1wh9y$^iUjS66V4SfW_ayQFw8*hV6ycsHU1qau-4-(I8`M_F!H!+KJ zVTQD-`0=qtC&O=~?Msw7o3XcDcsu zuSX7(XH~aSg$;V(a`c_IFFVL`7zQkAgHtCHZUdVv0U-_vrX3^O<7I4WFil@BTJD4> ziSbXUzpE~&ncTtbqQEQaiGQ4#JU3A$~6;>G@MHx%IDKN*{*mg zGS)uOe=`e@`A;{92Z?WEx!@77j`bxWQS{RGg(Bh%V_(%M4`pkvFT;KbtqY#bALlMN zCSXHl1Hj($Sb0up9jQ=~!O>(WtrLM3={s=X|lLL9dLjFJa1e?TW(s|hOXj+Vgu?Wk6cRLSjwkV>u z)rFAeiz5ne(PNkffnABvE8SWbiu-v(Q0e(k2k{|%Ma?~`qv}x9iT-3i&aGmXf{oY! za*FBAz6=J`slK4K1p@Jn!n1(Mad#4)a6Q#41iRJdV#)E5lk7t2A}*VsMgM7tH+I2B z)V5>_$bR-Umfjf~Jj12yC0G#lPl>S>=kSd*k1~IfY$HKQF4w|qS7`wsH&pu*JW5x` zew@GK8t3fF&({1TVvGaG?x}Rx%kC%EGsU>NaB64@@YsC~fz*BZA(kbAkdTAMXvf&j z%3JvhRShfa7QA9(XL_c_yAGIFJX&&-FYtVn%r%Y_>}88Bzq5_XmPjBm;>xS+z(?3C z^8L1kbX%ph#1@>8oI>{0E_XGAIi1>SL~AOSBWKBY`A*kBa|dV-a2*;PF#_3!R`$oT z2ArGNOmuPw#d&wgm#+K6uc6)&o$#TIrb@Y%8{}al02s;_*U8P z`IC)S*3Ngsc1J&QJGpb2Mo#jNlsx+-*2JXN?Hx<}V{ zKT)Z98#0ZY?|RPF6V}spl~(U>7|Y({f3Kj)O~@8?FZEJso#F(41O3l}2A*ZD1^YXu zf;W8^VjZ~IXop}=A0LnDnyRbm@!{zR8BFp|5JqGPlFgps87Ezcg)q-A!+8$OnPXYRW?*N9Dc;ddZRh0NuVgpb|Cl=TDopR{PF>NQQ4Ca!MJ{-yNOybNzzDv9!yfry zn9NNMXH>t7^-VzSlJxfRLyD&$?}ELZ;~h_dJ^{Je+6%N>JodHi(&zTLV3hizZfo1=#BDFwmbPEYfJ!Dt7wvE4;Aj2^ zL9<#P9jbca?kVl$FuTWPpjExV*Qf;e$nF(?AT`v~;1<tEmAi~ z3Usfa&*VV%RLshu##WOC)gJl?zXc0p=fQ1hQ|R^SjK2|jil6J&h~LoZ=A*n1d=pq7 zxi5EmZX2%HZiVmQ9poO>*!VN>2CJ5l@UVIVzf3<>Z3K^se{;Q{x0ochbJ|nbOmb(5 zk8Of{G&E4w8ZwnxLW!}ZW4b0a`d!wT8fCmAPcRO(VX|6&wxt$d&vXi`vM90pp1X;0 znlYLM+&QW$)(P`O<6{=PC5koNE#1G)$7#1YIwL7OtV*EwSR0YQa1p9UR5qKd|K?9ag(A6852+H2G!!{S_?!u8UrSyi ztfLfpsIK+qMWgUjq<-|2+f$v$mY^A6eA1raNL6WUD>dAwBXikJ%FbYFROI=QF7X;N zn^sTpx2QVqxD)t9=4O;RhWaZrp8{jO)l64*J#!@J0UpTP=@wYBkpa??{&u|Gv5fCZ zClF(x?&_h${e&9L3-Qv*)q&)q9vLu~0ToG`IooNbVkNe)@u2*;|1FZh&M;I-e}%@O z3&SGlSKV#kPo}fHIdsC37#SpNHNV00tbfwu!mmi5b15RS?w4rz69GPEO}uR#NHwhx z0#geIG4s%&%sF6gTs$W!u8ZC)t;R;^t_O>PN$b9T(i!lXLhy$~M{ zkI|1Xxwskbc+F_fIVi_>5Kd8{+U1dL=1q7L*MF+Bu)=mVbh*+MU5?K2PXjI30N4-3 zCG6r_ru{@n>QP;FTx``JayexTzmyGW3gWm9Ngl2k%e@>b0 z+fJ^w)WsK5`;-cQcekI;c7JAHQG=NNvVOL1`Wsqu?-LI^^J3P4zH0N5e<@Yh?==C9ESZ}Y? z)heGDtr`b?hr5RyD(}Gff=}Je^dG6?vR0wy^7TSQDuElgyGN%GZ;JqLb6;nF0lR{^ zD2xY|(Kl^r&Vz0wX|w#W^Lf%~{YHOCJJwN6w1i&=fRqTf%`=8RBz+&F(R@(JG{x+m z@E}E5U_RB?-VvYV--Nc7>mn6Ex8T~)GUdi#Jxh-H0&})BJ?S^qVAlrmhB!=rAfbxu zO|64vH!B%W?fiL;cd6bKJ|PnwOqAdLFD z?$4#AJcw<=_E7^J|5n^f-@{yD?QHw15uzFDGPZXT#)z^nB=Q@grvz^w3gQbb;zCT?+waK6|?3 zU53BnKn78kTd}}A3!*Y)X&oII&YtFs{C8pqTxx$CIG=Dgy?6W|fJ@fpuQaFI?|7-y zhNY0}Y})qJ-jW|qx2z7mPcl8e2eUpUKP_FEp3pGvh&0bUtI(=kVyR=F;rOrk3Ajz! zMBZ2;Eh>v242=frDO_eqPg!?QNyfV(UqWxt zp3)asW+_gc3f#=+ihJ6}r^LvK@r$IL3r*HNNv8`gpa*R~%Lj`#i+S~%xMf8T3T*ji z>UP|DSCVO}B`>`~x|h1k4$O~tq@{1Lb0uReeG6}x0N{h7fjY*S@?sSSOP?scqBcN6 ztfAUJt*)b@T6~)YEHtJSr(Xgt zl|!luMe7nx+Ngy7&XdX&$rS)+V;t=gcAC?jV@iYsG%nH9H*IysIqR|HPx7d(2~ZE- zZt9?rIzA)}1{=%SQb~DVq=D)862{y&(JAd)RyVycW34!gIS$?UZCP8xJm6rQ)%h1tmuo3*n)nuY23859k(KiH zj8eE0*&OJ`uX8QaKJ<8~rpOTMadLu>ho37}mp33G&pa|_#O3R1=9Esgy%(B8rLjiv z0_i^IB;i)Z`;tb!SN^}eE8Gt-655fU#6FBW7@QEeDcPI+2aw{iVXeK>l>R`0QyNI) z#}bGAHv+@dZ6Xe+No;e53N1pfToJ5Jcjvx|mlN%M4pxhvrA{eFYG0E8c$_-# zUK?<*rOc>`G5TT9Wn^#oKnZI})h~2TC2XoYCad#3{RVwsUOzsC9`0*Vv0rn{xxpO+ z1qa<&=cI1#UtNA}cOuhUB8)dKz{h~RWPrku1e-=cKbgPzNp}m+?es=$S^B-I5hjiw z;a*~S;I5xK&yl3ouvbGnBG){*`d%WJQidn9pB2q?y&agyOx=qyBOco1@QHgNfQ((Q)|L;*JOf-H9@6%hd1SGkw7hh_3;zipO7ACL zF81T;WsQ6ty@%P&lD5o^wExVrSrYG&9!jqtny#NAPxJj0e~~W>w_-O?JG~!Zt!%kI zE7}Io(kqeaOauKK>H@YhM#(Dxp8`?U7xBijzqz33n{OLs))Cl&()9+)e@HgSsNwfO z;|o?H?rC7w23joPI_xFSbl{q78(xIe zcpEvyY+wEW-8#IE#|;;dnHe`L_7WHA4&D{C#WYEGA(<`T;aCc{rq6?KFm6{NG=r!ELW%g5ueoy@e-_Fy9z+)T&V)%te{+#0Pg%F*Oh|^Mlpl!EQ9k%vqf6X_ z$l3IOjBZSA;EKkXzJc0g^wQ%ocH{ND6Oh&OjT9|CaqJ{2kg(z%1+^q|0&* z2SJ-z_LLe&&F6M-S7@DUG?`=j8dw0N>047VtBUgg*R${mI$dDNHADj3UHzzdYwWHW zL*@Q4*eN&wHsfz;AF?gsnb1x1DssDJho-gUa>6=wJ$bpNGQL2#3_Ma_F&>B|&1Hsz zvR0XRVOM=eJ#T72$x<46mTA^_N@A424p5@~cTE??VNobU;e4)}ZQR8nMLV!C`X7JM zam?5?Z3I5FtiaMy)F5{Gv>j-@tr{i|IJoWMS0paody2(!ZX zhkJ|mcmRvG5)CV~8HbR&BQGniQj@TT71Q-4f&L-0C*(`vD(N$lQhWu`#njv$fv#(M zxU-zeIHzpnd4yck_74!^THQtBwPt44&d5v#EHG9UBiV)H{jtV__6(h-D#6nHU$O08 zZ$dLbTx;O3yJr}`CFeyG&}>CN-#_*}p1P7*SQf&|TRIwQ&PV%2jhXK)`-|3kt945& zxAKe0I^O$ekLXG#0Qs;2|1(z!Ln&q2}YmV!_5 ztNpLoK1e&~`kK7~zx+2WfG=iF*}~d4x^KkqNSyi)>0kQYWxMso>V9Dth-BBTvLQK8 zjx#T)t1AH?L9Huq_+L3klP}Z!lK0ptS7+u};&NMCWsgW>|G$w=;v)AlMO$zQb5u4( zh!#FVI|(9DnWh%4HTJ@$kfW;RGWmh!+#={x;;fQq^f6N_rHZ?!oxqY{*WefGp8J@2 zqaiHm9GE6I=+e^LAd7VV%pY2V^LY3a^W7iS0vfwf?&%~nl$+DeVt>gvczA|Oe282D zOh9(xJ7AxHIg)UB;Z;5l7_VU!1Cna#C)xK{5tmA>M!)-R#J5%;w)0pvJ`Q>>w7?pu zJ6jg|hJg-XRJ;eMYe-smk69pKI8W2fkwHo22AfIRSE5N<#i34|E@HX_hvG`7A$*7ZB%9B@7 zO0_B^rAK~6@PzmRve2ZHoI~#bPaW;VxV)n;MKj<0pJOK7*;L<;;FzV8wXO9$!pBG8 zQ|dmflo8Csydrfv_n_iKxupCH`Pwlt-oPG|sQlF&RDq`A;ydt>_z}`{_iH!dTAwk} zdLQqHHHp6pVkVhWLwrzF@w<^fD7$A?=mmZYJ`+-ujMrYY+iVT-WK97b=ZISNC-x0& zapKw}hl`z`1hKE#RJXD4sG*^!yQ+x4N$n{+!QP>cNTxGj;Hje_B;?<497Z}JtI1PP zVcb|pGBVxWmm3XCDCp%Yx2z{1v7kB^NYNC#nZov-yqFnO6P~L%jacwgcpu{*l4ogk zQ%0rSR=!Kyk-S3tjh<@iq1mmR#4Je0^otbzoj2_*ty4^Xpee8Lzh=5y+j1d^1jd6_0{$FgwCP^WzV<{G5UwuauZYwV`R@=Qx!X6 zr1%R3Ntz9Ofv83b9ZHlOId{_A{Xrp*Fa?7+m<#N&tO?SA; zbeONv?>5L4YZFVOR@dpsCHGj{81(P*dx1rffvUUcf4bYMzK&*;8SR{K-+K;%ol)B7 z*LW^w?NVMxW9e2sOaCukZw&A^9Va47g+cy>_W#jifN{av^g+=(?JPioc%hNSftH>j*fN0GkrrnXP2uyH5Z z4xi}nSl&2tNYU7zr=Dirwx#7EaJ zzSeBA(9(W9(=KaNlMmcxQjE*Vc!039aa?2P$GTSk!|E!#aO-1!!ayi3xEkFUKCEl0 zT9@;?Tq*=Y5_XUit?h-TxI_2`xgszboymL)-*sG-T&DN4s~`zC*E9`0sg}!s(ltra z!D2SZ`Plf05eE^k>o)x{ZB7#?o*&2*$AqEs&KoiUFmo z)t8k6HBIBm!c4_ePf}GA$FG@0{!n&}uZ-ScZ$-x$>jj7KLy^UNUPv9;#H7ZpHPQN+ zj-BB&J~GA38Uaud2p~4Kb(8PRrz+wVEZME3mWBL9MNL%WqFuUDnV4 zhAq})1)yXVd%OGP8@{%D-a9!KszItxC_@sw@f# z47S=t4`bfbW9l2e>3oC#qv)(3(^mgBTo;NHAV3ll2yN%q`PR9+ySuxbX}zVzNg#m) z5~S_ieLM5*Z2QiAXL9E5c6Mej??1o~Sf1zex$o-|&gNb!e-{oR*Mw_&wmCjJe#UjK zL})%?o#~KwF9XF}zpPMto1yUv^iPC>sZ3+DY2V z46*8F!A!iT^$HA_s)Ptx%macO+$1~3)#VL>pNie-m1MkSH5d$t*Ye1KGzAs%%^?02 z98_M_-pAGey<}lSQ{5t7Xo)Fx@-_zB#daqiVr;m9Ge(Rz}Tnnd(d zMX|Xn`Uox|Zb^p{eU%e5bATbb8Mdv8wu%#IKsl)Fi8a;G9NC4>)+dK35y9`akO}uq zHN$l?cgJb+%4I1TXEa}+`<_`v4Bwxb;Tx)b?ua1A{3-J3N?Do^C$uiQi#tyI+aDh# zbx7ue>{X1>dfhfQJC!ttuAx2EX0V+xCI4}mKe;F?LbtSHw87O!Q^)^<{ETv z0Vbr`X3fZ!AoG-E&aIVO9K|Ui@UuGGy)Jfko}r(CC(3FPmtPDw zvmiCqIt@Cmy3P!Vwld^ISj%?!9MCZ?%&+5S1WBYl5%cUwZ_)?F^VmW+h6}kp(k&(- z**C^8Xa%02=9l$=e%V&Z?vuTO`}8~EQ`P^)Tz=zRuQNVMab%Ez*8W&%g;+B&H|&fA?!rky&Xfox}<*5|0oX`d?g^~D=Gda%5h9sa@psC71F~mnI z3v4DHp}%iG6&{0jjk!oas@F@(MJ>?@a0UK9mm;M=cwf0E@^{9Z&@4a>J5_y)4cw94sJ&IjLMyE0ER{mLNDjQ)gI#1{pP(}Jf@Dp#P_6WHh ze;*IIx~kh@H%+~Xw(1!OL|jp9bvM@+`F=Ugo^1PM#$aq994{2JQ~lvQ6=|o3fEz6F zY4-32TnzMc>3p@=U%GDPR_3WoftS;>X@We@y#!kMcV&&@R&pi8AXOL<*_Qc>%5wQ! zhdK5xpK~5#Mr+oQoU9FYJJ^lZASdz)@wxijs@3rwD+u_1CBLH?=w5SMI29QhJQRRQ zPWxNa%C$ISr1OkwwfcaC#NUHsWBI+mkbe~#NmYmlw3Cj)V~hl@Us=PzI_Z)4_pxcq zCO8Q6sd!}@&KwtQEdOXZ28}Xpk8QwfS2a@kP0K`Yojs+MvL@p9>Q$6S`_MB-IuX|L zA}S*!(aaIeD67XA$gkKt>?KjxkVlPHL`n;ZMAHrMta~}qk$z4LhBpI%=bBpW+2xVO z7}S^Oyu1jtL9@l#oxh1T^}hw1;`htOX4cX8<$tKwbAR~{OGjd5Ea)96`-Gl!*Yy-> z2y~F)yF62LjqDwLSB&CMl+{SCVGua9v>US;Ywzr;9c~>jdqp+3-wPfrEVF#~E|A5{ z0N(C)Uf42N$0Lb7$u~wOAmfnP^sM-p@r&!s)d^J~$@(7E4+3u}!oE)YSk$)ILCI~c z`0)-rcuKffa#(HDKTr6`cLr)eHKk37MUFDEFLK$_JzAyghRDkgc+8>y&`E|PlK4@mZ9?=~%xmMzh+eL5h1y+e3{U-y=6|Qmh`DP8J-~KP27;;9kb8|^ zop;oif!v?cbB10OI=X%|6<_hz!LKEm9?4SJsDisrqKb^(`y+YS&d?m5kRP zE&7<(F4pWBsl`>Vt$wbd>MVO5nhqUg!`ZN@Nx+21BmLpm@EGMU@|bHW--%J9eKocH zcC;~j9v@6$Yq($wcUt28HC2%f*il`3+xF@{bcsf_Qb^{hLKj>$U+ zKz=K3kiIah`* zx-Oy9-re2}(wvm_nw_3{oI-S3UqNm0*7bibti?o;*T@Vb=o3eaGxK46jln=0>6ZlD zI?z2){2#eH&IL@BpTfWEmKYC|hqES;0;9{-0sAd3r*Ts{UlndkzQtln6=>|by`ehF zi?!9;w@7p9Ax^em>gPDjF%nJCKrDMzr?HvkHo7{t#1L)K$8L=b*&Njm1PJC zyFxAE)BJ;j1*Tj_8%Ntnud*rCztAMjQg;huJ)MUcU{B)y7pQF8|IlXOPoPD7bM|Iw5cR^5~L$_lWJDvdWSIyJRe&FVPy_!x<(Yvi;0 zw|a_vI-V1;(M|XgL@zKW{A5$mCZ6M-mwHaMuTleCHw;1FV|^XdxVG32N3qiFdg4EA z5NVE*CcMJfmj%F5sf;W&_`^q{3^i3I0EQ?Bb8Ad9G9EgQQc_@IbVpiu=rd#DA9!yT zM=5J41xut;z=r&a$bQX-8jFGBmbv9DApzQo%}GzRD||gOURLFS&#~sh9(bJJ>)Tyu zL(kh7h|g}CaoU^aTI_4&yaT;J8wd4x5Gnx{dL}S~*^h1+HPnAR{U02be&t2bLH%jd zEm5iQNZw_xx1}(&FFPe+n6#xSW~yYbkwr`;*DbvZP?r1>O9(u6^#UeF5}4GqLDsE` ze}$thwf&eWIdoOCT=Ic=z<9W`!jOHHH7?A0u_KNZA#=PGQDQ2^t<^oqkwLP`^3A;_opS;lPU)}c2u}D zJk^pR?TPW{0s^j%XB6E|u~&6Y_DA|%@QxC612HBH%zP_~{kerVc(eF{(Y5rVWLYRx z;4R$Z>%uezr-?ji2aWY882zf6Bb=sb$88OmRG$JbrPanps6_&k>#c63%3G5N0j1vV zc`cZ2)cAk}4}<$F5X+tDnut44V0bK=6S+(u0AJa!$a?dmEvsesh+04|aTHoA2>A{h zmY9dFc1O1}oAXThkw64$>Kf?*+ z!y+1Q=TB3^_MKtBHqms)G0ran^=d^S;5}4mP`SLFk*8>>ITv0B1S+zaZpt+I#F!bh zr}ql13Vx)-sy@np)1LXSn1_j)GY81@V5#t=;%nZ5;4+6ERb};z4N1!Jd{qM7DsQHT z*7=1e9f1lnw3BHbH`CjkyXkh96hmD~7TfEWbxt@M{NmnBUl%shWq}!yZ{keYQr?3b zh)k3H&-DPSwAWT;NR7V5k@)neeVIijT|)H&*Z`44_)kfnr74lUg8nk1h-Nn#)<@eg z`}5q@52FB4BABSW%?(cLuX~?4O1To=2K+_u;3nr~k(c25kQ%6|acSxhw}nRy?W8ZX z1bG7&VO;WQ>(HPG`l2t;42NqJ{|Qs#_~Pk41o@i%(s#gNqIc5Qwf}-Uz}LD1p+@jm zBJ7jeT2vQn>Jx7@7tGs3JJa66ogKTO1a^7g9v-JGq+;bM;F;8$wHVn=_cMJB> zSb}vd+g&!m*MOPggDOU00Q+0Agb`G%D$K{4mO$K~%Kx-s;gjHHdayIoB$73Nppeuz z$tmVnN0R6t=%Jz%RKY2+1L#h2u&{$a=6U4-_Ie&G8!xwtX5;p_SeqYS8nuQNEvB@4)NgcI$yb7En+8F-^BkToF-4F zCwZ0JmWs!y0_ZE4&%X~M6l;mYdg=OC-Vco~&q6}DOx`4ZxRZys%XUU4W`p25bryda zGx&!I&nWGj0BS}*0cdyv^-*Tf!`^ED5)W-0qiyb}83~8W+*5-+bSwFp(i&JBAUhA<4x=hKUVTD4ltdz{mB--|OfB*vSx=^M9@qVi*{Rm?4-F9e z9i2|3M`uDO$eZldtZU$TbvU|AaW*;&&sO#!Ax4e#MYFV%HUBX_TIMYD%tYInHj&lN zugbl)M%5j_CeWYGW2stnQTPugSLp(4s7J1C96YSsrMVbu%j~zM`ir>F!6nr2%3~FO z8SQkn(GjD;t=F_&v)^z6drRFMHB9tri2K`^wyPmx@7m>+T_cRZX zF5c_%hZXM=#rj^A+krMndU!|J5$j5clCRO@WK=~3Glo5+mkLV>Ts22LN6Lwhr@YdP z%gjM~`#Ohbld;aR@io}E^rC&RbR%79>z)okfPwkcr!zXZh;@s1rayYg*)c@Pqp0mO>=>%uL}7)%kHNZ(=#hx zd8aU2!hab8sV%GDF#oEr`^5=%^ZoJ=c8nIsNBAj7oN+GTF1->SXFkW2!xbK_`ZTo> z?+&c6|7p1rgML3DC&+N=tl(tnnLvBEGvuYR3Vw$NMo8%q&v^SuPj7x2+cuPJoszVb z>l_)7G$d}cM-k!qY7pa&f_0$T>@f4%z|zcY=S6ira%06A4sp&43_%tCk<3VP1o9`p z!#`ed83-Z^flIpay2Dt$lH=D>h0HE(0++x%trS72p`0~qwbHV&Ty0+-^EiARSS5dI z{9d?@d=haXcD0AUp{U8<_X+d|BAul5N)9NSL}pMFSCYP5jLU|4(mAzG&01@1E`t<)5d;WnTf^kd9@?Oma_X0d;yv==sBwurx_ zNDCAQUIKkNU1VQ$fq0MMyYiBMKb+%)oa;<(xP!7Kbvt++zf2DU;J6<&ZCmFV$kNb- zV3QcHdtAaNX1ZdKLYg_>8b=Mo4l*cpn4ZG4^;agBRul=R2XbUdCFSaGVDHGcv|vUT z^;LCBe1h(9;Ckg{{fhWE!9?E)eq6>n=$KWa4ZjIf zRpgiNIDf<{k&OUrl3wpM_geJ_a=d#KJb`$kl`HcMFhAQ~6}?eD2|lDOHq_SC%192q z0BRSu%G!=w*femDa0nC-??>mt&$Z*k@tKoRuc~{ri(;s9Gh1nGOVz3fgjUC_Tm`Ba za}2<3H<5FZEq>f!5g!$diQd5ib7K*VWwi#s$EdA>)#UBO{=JaF{C~LmXQDIdC`gurgV=Tzb$k zK$asIYdWoYq}yv&_@b7!uo*Aq4B28@O^O{zfsaZe*xMgc2nCFciZMRZP7{!I-}e5!N3CI zuSj?Mm}moNW%v}+49F)7t+VhAf@$FatciK%IxW;0a`crHpd3fkNqfhAjP~-K25ZXt z37?>&L~E&qyn!7B-{)I0DM)v)UBMI}4~bD`6fOOw)_&AvKMc*p-y##?c8dPo7XK!C z96v=@R{hJKE3IkVs!@Qgyom^_vU=uw2I@8e*RgNT2zvmPDCAI+Y^8A@;?+D#xlG(* z>M1t@g-A};cNeGlEs8{QsohL1kIJ7D|C?Na-&A%`=>=Z_yX~O$8vF-Pt3s*TXnf#1 zBW>e;;Lp{Vxp9VV*o{ynR^)T1*P5WjQ7CTqak& zk|Q(ftH`{bhM7QssL52N90cBAJ;AoPfDnWxb5E`RNbO>W;jpicVxWF@rc3|MN@xZ- zSG(?r-hzu|-D|GXtVkNCUm4iMFENYYF5-4jPGq{T3Aa1ya4bT*QbJ~yc2Ry$E6dcC zp7Q*%tT1g$d!e1_7$=d1Kx~xig|a;j`etT5kaj3a2=rlRqJFuJtm9M=6G973DVl3e z4Ln+LDXLIz44B~CIw^G!*g)M@yb{kupA=8Gw9@sA!&v!3XXS+D!%rYV~zPU5c;aE_4IOqw+?AUPc`_k9QTU zmmcKXa0a8dIyZBUr=kR0amB*USUTHL0_x)3ije4yBK+;uR>x?AmF}ojW6aO2OgKU z_51?=b8gMb#oEA|lze!L+u{oRR&BSr-B_-Hqn^yKyGhbgt-A?Gs5drBQ7(5} z3htFP%!|TUU^82m_DX*O+ThEqF|)>PbYSYv%{td3J9*PpHenGwfPXxoo#DM0YA`Zm7U6`AsR%i zS_?mdacwQ^KzMa}ccLtWfs@5S-z3X!?Jwz4?up_lmH^U${)X$C$1W`~68tA*%Niyr zC>KXA1|`lJ_<-nr|3<>=&XF3mGw^h1mggqC@{{ol0EBN&g4r;1)tWUE z{N>~6LHT{KQsWAGQsz`iS9AlA6MIKfydQmkg_F=0>RE=HTGBXOpHh0yQmI}8$hpbz zN_Ig-O3G^HNqk4@T!Gja4HFq7yt|At&k+2HM-*Hr+ij^dXG)r=jTi%9huunBNa7OA?$ywkhMmZQb+VYlhL*!;gu&8>gX8dnW{YRSQk96z9`BK zwTYat?E^2k{zoUWo7`e1o@d4H6f{y2>H~M=F1YrP*VszY>4ff~bm0#$3+fwuPPR^( zt(ytv2P0wwR2sMkO-mYDd7UYwdH~~OTJmvdvA&@i!S5F1ZO*2pykeifj)3w&m>_j zdzy2+*XS|@Rx$tRQ_{TJ!NJ?8itMlNT^y1+RL$L=;xeG>ShBZ|Rjrs7V@a-df2b%k zee(=fp9=raQp2~Ny{I`wr~5*s`|t+-R4kEg9dLz?c+aC{DW!BWxl8{z96NJ~cCZ^A z=fZ#Z|MdJogs$IYvGsE53H}n%OMQ)ZaTbA|E%Cep4Yq{h&slFOd-h5V!eJEt5Npv;*x2lHkcu^Q1oI z@)#2oGyunn@9J1%iS@nV00CS7#~}P$INzRTy5$~G)H;%cY-6^#h7|;`>i`EmCu(yC zJq<%^FwC7DeMWu8^&W|{2l&JBR6fmj#C%deNOqg6<7@A0z%Q+?1#Y&^PJfIM?yAUb zZh>+Rvn<>}HIG^dpRV2k3{!>z4WVlF8FH%QOJtVur?QLxgkl&71Rf@S2sNUWi88<5 zr^_4$OME?u-kA*zwPhc5o6vE7p}3%Us!~rclr8s>{B?L!_IAhR z_=8@XXH)WJwi)o+T~@Zh`wezFPebY0d9H-*qAN&<2UhW7Hm(X2#tuuWY+E_TkVkZP z0}GkM*dEEh^4kba<%KR9qv#5g5y~;W%on)t$p?Ggs#Vep#_`@)Kx5VPP&u#=e`@)V z6(5@n@1S(5<%P{SnPk52cjXmZzVu6CNV6WQ0(F!T-4MN?!KhK#Na(G6wly&uH~^H1bz%VM%S5klR%v~aRuPR4F!OUam+mkhCeHr$DP zRFUPIz}NDIzE!f@o?6Cu{w;orzbMN!_IIVaW(OC8&BZ%Xn=xOQo=};nI=*wL4p>KbU3kON+H~0v9UYh;wJ}Pw-ghWrLaEg)Q%u)e z(gW0BUoue#n&_?!E+lF|^Hm>HKFbCmw|wi!3q*cN{h;4K%LL`hU^`$Rxex55Tn_f} zw3Lr4Vc`+dbs6tuJuUa7o3O9SLqtGna`=cxfuOVjB}m=pID+-Ee2`C;#5AhvY-_c* z%${dHCU@J8Tbj$hOM+B|@?Uf3f(W>sN~WXAD%s?`6l{>UzpHMH$=Ji8MQ+PBpq}E7 zu?#|UYF_*@(OvUri%O}nbxp}2)uQ%{(2*!O3O3Pgl_%wU!CcKG^&@(Ffd=>%ASs9b zFZUhAyz-VJYsvLw9c@w5iit#F`EKz%uzj2-Fh;;pjTQAhi&9aAg#E{Q((F;b)-5xy z^LWtLXhUM8{5kPL*qVE8ud6CAn4KTCjM0V6KT?t`C6aT*4`HeEUEFE!^5mKH{NOuV zi@3(tQ!=Y(2RYfH@OLfxU|F5tPrDEfyDnHVxj(gUN{*F#h#jIEd5EphlMG0J35722 zE@zQ7u|(|2u>MbdkC`T0p*b5E1Pqlnpi|2SBN;Y%aXp(n*6=xLYs#-k_YfOP`dHL4 zcC1#@#Z2lMZEp4|ZuwncEYc+Kfa(x4$7~Y$fHllu)!4{Bo>k|885+n}4?CiWH@%`3 zqO5T^ww!wmRd}tEFVRkFL~ROP4Q!KVoA*Lb1ljsMbS-0vrI~dQz#>XZFSMiFpY@kN zUi*T3Av&%H5T_wt*)EKsBkljvYtlPwzk9!fukouTv&9E=X~x;U*6jR}W$C@0wKCp= zjmUR&2KN-b6u6eYgI&!*hA~J-1ExM{AIJ9aZ5HG!_N9Cl^(DFzTr6L3UjJHp6-Q#6 z^!p|I(Y|gZ#&LhdcC(bBJux%<8NDbWvA!}`Z#Iez-_XLU0NM|X3yejsadXj+lK4b| zPXa1*=RG8H(X+h#z4ec{Pv~zMr@5ggEe-7Rbtp_`rdUVdBX#ox#|6JLW>`Xcfpr)< zlXurv&%tODw?-_N)0M(KvFg{s1%; z%}l?Ur)I?R5`|s)GO|>>-+*dL1u4vfU~8}|`A@)PoLp-(w#R%v)LnX<&Lt)kHs@!_ z#M#Bsb%0uQKe8~;TGtnNNA%}72+ZToAm)?l88Ja~-M@|uC^1eU{GtR#)*eB&5{R!M!vYBci$@l%g=UuOwL*6az z$W4OB8boY5Fek8y)nMS7pJ9dnswCerH4;-6XqQ%fm3Gq2MOIno$Y@o%=eV&8`;ER# zWh!rwI~=CaIPSD-DfNdc!Ryo=_KlC0Mjt|z+yc$N*s*aTyJ*ZRs0g)Ceesb*%Eu%?#eMXK$MO};x2;SmaMjAvp zvYD?IeaF$&`C2tZ`^d4k`a9T}GpXxUwG0i99I?;h(w%#_d#W*k9@16FP|%9h$0s<3 z1bdJw!}{=*@JJBiNq%sE;Qh=LypCZjpciV{-J%%ch2_yUHSapQAax2F_(JLwSB_s( z)I{|uypS}Zlfe{hCDJK=rQ@=rCDUR}nR!0{>SX$Cxrg z)EQ77b>^F^YuMI>ef%r%QR&K1Bg_Bby2cnm%TyunAlapDTeOcH502!=RNVKn?(s@X zD2L8eG*zyOC^Ao)yx@wII#@IA-#{Oc!DVHR%12f9tto?wxvkXYz;`)nJ0HmB2}!^| zm98T@sBJFnY*->W3Z`jim|R%H3RyKQxD~9w<}SNMZA?w~?*{*l+i2R3TB@RDgQybZ zov2O-v+t4aE&gm67U}AnhI#1SnU5m(fKB#z(LhZt?*xA>}X(D>5a%-=8yZ!WVd z6UA3c1{?m1QTw|kZiugqK-e7MGrAAG8hGaY8#*1EB9D+Urt#*!ptCrLeX5u)DlqO~ zt|M`oZL>FK0>W#Q!uBy?uhz_dvkJV~GC5vP_lau2%w{?&|I1X_RNCu?0_XFroh~Ug zM>^ioDCBg*b{_v$I`>9*=v{;>dZ z`*Ol!-wb*pchK=k&tXdxr(!I;?wUF94UZ#olHQ|9#?|Z+@;7|1#x^O%cz8KK&t>#o$g{?kaQ{6IzKLrpn4&h&@tvURUv1@Cv9;9~gViXj{- zKgr0MGMJBUNFQAILN~>zr#GUhvTv3>!~tR)vn+WDcG|cRgW&7Q1KG3KSEQHWtako_4tbk>X(?hc4Cvmss47~iAlfD08)*ecwrF*`N~+e#DVU9eT~h#K>} zZ;cJS&*kq8Ha3OZQawJF@h@{+Wg4JkbaTwtg)clAh4q@CQvF zAw}KukK=3RA4hoUCtMbqr>%jUs_bv=ORKaci~&cbUEG(zL#i)qPGG6Oe{ARS%u`=b zpfZwv^*i@`(`N8KI#h}#)CUW=ZSXp4mHZ{W!qdAtv1*pQu?C22PCFY`RY2@9ewQoH zyPw+1_Ear$?9;xrlSvyXB?{|aS!P8F;X3qBtPNWgDznQYa|CbWmImGIc-30V2jM9G zfu~BoJK9n|nW~A;)aB^->@4MKPakiMSh_RQvPYL=iPt!E_1yJJ=WtE=1VddkWd0(n z?M{ilw+zv-hRlivtPT1aq(vaeD*AnNPC|Kc<--^<+vAN>Hg!gXUxW6fwrf7th^tQ7PDkr zR^KbVL!CpyHLJZyc~w8yb< zUl7@eH_9^lnID92YbI5E4m3*m+q>A^2u;UANrR|I**au?cq{OTYYa|GzggBhp3`TB z^OI9cHuEV=MHz}pJ!;j9Y{`%CfauAp=8)7;kZz}s$$p;hA z8S92b^!#$ca?vSo%K{60lxoc$qKwMFQKe?0;-DdbHuLp1Af^|#x;67OFTylcCBuUQ z$r?y2%`n|fuG~C?*^b=fJf@S_#JuJij@X$lsGec^gkN?w!d02wq*7;p@*UKXmguHx zTLf}LOMpLJlY`$Xd1VPK*87MxOpc}*Ju_sdB2YTih?|ZUS82VkB9Hh3mQzqykATYY zHZ;a^@jjVj82Vm3MU&}&f;@!xDZ7(H!2fX_wd46e6P7blVIX2Jl>FsUn{Q%oke$BI*$S0$5GB!-t!_y;c7MPcy!}Y~2%RQ}j?^CV5XI zm6~Hji~-aaWxzicUPpY4)Z)fQc+(PFSDOY33#ITp#I4*!C#okii;|tjG_OeBFf>Yb zQT-xxQ96{L3D_wHZEn8q{9H6Xa2S1OvvZ4}Ex!8VyP8pIpEpuCmD<5e61nyD1oBh8wfc~7q<{a?iIf5Z@6N7a*(HjuRXvbl~m5A6Zv{bz5cCq$2N^WklD zqs&^08QO1H?O3MwbFfF%i(nIQko=KjaC zJ1~#ap#6vj?lbUf^+i<^WjXc6@SkBv@Ht;ey#jdRm9mB}3n)cbY75ZKo`cXZp9^hG znYcE<3YS^&hQ&R*>|1;`dN96T+Kijzu`2J2=6c)nBk;3EnQD&#N$qI3$PJ>#xwBOL z+^k{^rq%aUz94Y$&%{H}eqa%_GtiTmFJVH>e04qNye)iUQfIZ$JyQo^+YLXdgZ@CY zQSeV!DO0S@j&ZnhfL>4sXr+Ip=Z>$hXs}_Yu!HZQyPO>paZpWTx4XWw;eM;(wx**l z>|)aX!P<*s5FYY6>Lhmf9}ydzHMA|E7QqG17wFz_VBJ}Ad2zqYhx!bDt0q%E%|D+w z8?IMX2J}S+A;&^p1s=5q?PHA7PNy!b$9t!eKUGgdKgfB4?(~(IdxVe8Y#x@sPtA#* z;FQj-jL!e*3A<|_Q{v9+PbzK6(S-wM8)e#_bi+;r-y`dCR; z_`LIh;h4M*>Y~ngI%LT!t+uD~mUP6^l^PTghC6Xe&r57tsEMnB8tY#in&X_P-RR3g z2D&aOKMHJIEBa4KrS^sP66&t}Aavp4%4FpL^k~)2&`RB%%7b7^hrQ?<2m=y&FcWDl?=^a=dKbX$7Dcu`sc|Mb3-HPBMTYxXslh%|QG zW*;jj8Zs(->;GeGRqq9U5oh=&p4!T-h8ntRsnsh}j7Ep^fxt4}3)JTum(gL!d6FSR zZ{?fwxB830C^oHJ9=qLMv5XeKcdiWWiPY6}#%dVWAbPpnf@*lMr&2{F_=lN>gKxke zz$w*H{W{BG%br-X7t+?%4g)cevga9!IFYU`l%-niG6z<9)`34Y{^)IBC%TZd%T6SJ zVp4#Sp4GvbreE1RU|W7VoMT)P<1l=5)zj@P{Wmx*^j7sRah7>1iVJuP=Ta%LCmZR9 zY);*Xl0I@h-YD%WJ&oEMp#wk69k_|Qc&0qt5KhQ+Rb(Kqr5*B9wEJAT7`LF(^*ZZ^ zur_p*xdoN68zK!jp}lM50hpleuem5I@pd)O}v);b)gp6(nj;1`oeCN zh>6bjGyDd9uk=gWoxZ4ZuIH39s_%v$Ajej{wT0cS6Sn7#vsUCC*9U!D(Y_L|Db_v@ zR{~9{SYRts$0my}ag2u#v6}*0%s$(5zPEIjXO_lJ*YUr_M+d8dLcW}5iD9j?lb3Fb|>|X-(LEdZ%z@8 z2BA${dN`W4l}U3UL}Jn%8IE1#x2jiKR3$p48BTWWgvVP3Ghc)8R57Vz|4ZbN{~6lE z7gipZk_CDO@nFzfY8LfSn2ITq@uYt6@ZbsQM+!EyLA2cT5=T-L|LNbx$J<)FcT*+K zFxMGB242+3BiY6q;8d?m^ENP_{LG%DXmCFWyA<34;aE*XcYxi;pOzLHK%>dGBhW3B zVO*L&EYvl|S!`n(Pc2rBv8AXPDkZQ&pF^C5dh13pWvW%oFTS_@Y~&)_Fx}`eDM(hR zYZ4>6CDN179AIJe1N<{{Sn#{_FXiN5jllSj*!Y0ngY{tJ%w43nfXAU+)nM|27tm=! z`-$nYY5d(9-_sh|c2hN7=k(W8q>&V|P0XF}s4_9@D7-u3pnKF@Omvmj#{yiccC-9w z44+<1SNVp)KSYPHa%sp|j+_mSOsx*BgNrd+aHO&}`i0*JuM;)O{tN2nZ4(JQw?Q-b zAxtkc-~SBZR(J>z4mr*V-dwq?*H^EUn1GzymTJ+NWA+>C`- zMc;dHxaYUiAd#xn@r!-3eH1z-c${{KoRQdAdxbk={S$a)X%JUW(j)JlHY5O`4}>cJ ztkPbAmt+tEPkqTI#Wg~tya?BH76L7qm+{F8WqD283E@6h9p?jwO5@ipWEV+Z8xmAQ z3X}7@@&9TR!VpPj>{5M&uDcN7JJ}Ukp7)ylu4@uK!Lv<;o2R`|yw$=duA3SA5iPw$e$KsI zhX~p@Z04|TOvPqZoOo_}ss$(KGhN`Hf)k3Pu5|H%ik*G}e5#Q|u2=+)9p-9pl3<;% z1#r2-stdTs+V7}l%Kv8XI3npI;`-QcIg_;skc#j+9~kd~t)NzM4sb2~M?!B~N!qKJ z;cY3Ef`-5V*t2K`6_xh{I;R|S?PO{*0?EcwY1(4h&59G|p@1>&J3Jg}=YA|Z#`ThH zq<692^3m*HMQvSw$`|NA4O;3r8fGu;qe(5oCFe*K!VIn-QC-%ySuylv|Ak?TmuA1ATW$n zx9;xU_E&eet?O=mD__2UfOFuS@Vp}r9uTC3 zo3Vk;>5u~5i`y7n&>T0h`{*wE55zQFXe@FMEg78z8EX1xMklGp@w&#Zz?lf;z5zHr ztB48V7ht;XruAgy@$&7Zvy_nQKh+R$J$l={HgE$uqkaDWbPrEcuf94p+*_gK zQe4ZKUfNH<5UY(`rO##WD!zmb@M^lX_l!MH8`cibY!iDAVCXveE+~oVjknB*>X&k9 z(EIXOc8ao5P7A~aeFKdKxAcSHT%}6889$XA@OAa~$>|JT$M<*@T+*!%3`ZGFznbII z3eb6a+B#MES3n+nOx3QKZVT#HvLkhKum^$C)JQO9bcXulHEp#8#{xBYC2P^7$8gW` zk5n$I&yeRg)c?!W%T|+LRK*oha$(L5d69E&ekcAb8!Jt&XdWn6H7a{uvlnn4l$AD= za_tS#EZ1Q4gk(A}GGi|KlJ+}}SD>Ocf+yhx;CRX28i&<3X*-oWzBXvajgo`>mT^n! zbz&MZBbe+xo^Tb(E6@|~9GlVk2A*h2ARO{011AtFUwWi#-p#qYa(^5+sP*Q`idr|^T0L!Wjc?sfnSuJ>2Jn?RQqZ=vI$cp z4|R@WU_sp5hQ1i8laeg!p7Eq0Nk5!EB3%j;W4-JH^?kIC;H!?A z=!4&+ev{*)kY4~?avRh|ffit6Vi9Ol={WD@3GY-WE9_HxI5y=&`SXfv$aSK5bXzP7 zf5@vgBs)~at6)@{k98ptkc&y_}}VGp11RSbKr|uBd6*<%PzwD`)YiZ7-z9h3mI;TIw1`r^t&uW18%vPRhBe@Q zY^dO!>X&OUl>}>uMpP?o2>C9nZR9C^Jh}{O1=n}HLE8D!(9gtSVOD&Ea<+tz*HsPDWdPHa`FIWNiFuFfC0*#e@BXDf79OJA7Nw$7qCWE% z;Jjt5YF!c}YJ;1D?-+xZ7b8N6(cZql$|=MMod)*+$zCsT!;=%8Z`%e?WVX4ZeObueCG~{#4_Kp*))mr)yQV`<(rnV{W2G0A|W5F|igE9fx z<(wCs28>eXc`9OE@SymHP7Ci3kQ|ZwIPyon)4j)*lHU^#1y%`qdVWawRdeBing_AA zj<9E9{9im-mJxTMKQ%tzHgJ{qqjVwF&3iHS1l|?65WE}aVOy$N8F+9%MIbX;f$OK> z_ZSt#*Q1)Wz)tEP@u_%s{}*Ji`@Y}DwQJ4t5yT^Uw5z>)7PE#hx?ane74frtcNs$FvCrA+#U6x@dR6+x15$r%F8ii5xOfn zuIzyKFM~|eK!n6wE2n}3;Yy={dJq-F=F<1&y}4G=5S)j7lXl?!RNJ zLNBOVz#iWhOBHx9I#{=oikkD{v+U{66obO`lVJRs=uEg%5>5P!4+y17S>9WrOo-!m zm579M3cbU)D9J0N!HuaK5yz-1(v_9L< z_Lq;a(?xOl6JcKDWz|JD2)t$o!fUIlEtkSW9nGr}^k)AsKyF9@|3s@`D0+dsFMgY$ zN7q~JWW@7;nU~xhzpZ%2Tf?@%w+78X9;So_Xb+X^d3su)hof!HasL|o0DeVqXZ*GQ zHP)MW>3pDOGdS&sJZd~APOQRVR^e3$Iic1oU$4nS)7?8T$u+0qa) zC5v$t!JHkObgT&)X9;!Q9lnvil*)TVfB3WErt_dQ8vfw$qDJb1fGiT0H{kZ(L+FJB z>dCAj0rwyb8x(34$8{_4Kk53~biq~C1+=MWpSL^mNc)Q%R4#Fq6De_CcrlCmyGs`a ze`wb-6AT*COP+O&0_Fk*rCo_6LoWI!b~SB?YA^bjMPkb&FUy13jAp*!v-`dMr6U{c z;%QUTB{n+P0-v5xVps>vi4V@`$0QatW5#ke@@(5zL>`f8!0ge2D@;3OAH_Ren)WNv zJ^qIH2)--N45Z^0^;%x@qDA;$c2y(~E4HqPKP#-Jn-pb+E2(k7EneOHHI8(8tF@xd_XFNS~n zbTJ^~JpB)Cb4yB+HEmP4^b;cibTi})Qp&DcXY9E{a0YGB-#w5e#7*(fx!x%e4U$2-D;Vxj(^;}}I0jfEyl zSmlzEH7XxelZOQd^M+FOBo*jkYzW+_oWeKwM;4v(H2^kdbwCnb=S(*_is2fxjpTVy zt#2*f8=RFm4o|g~_@=R)d5t_PF(ly`GtWCra7gvF?76)=FC3Yr87xdfCwn*1S*dLU za~%B>73ry*F{FWRm@{7JQ8x+d%k$i+@*5emXqPt!8Ym5k=LzT0`P4aWr;ww=lhey8A4w@QW9#f@GcA__OvCZZ3+w}8&(kyf$o ze{f&dCa^cUf$R!y)^J96{2`E*_0+ooS!kc)*(W?2RMX4Ri>eouW)#7E;Gh z?wg?bqKg#P2je9{=5qE1*(h|2v?qQuIpBS$9OW}*tdjjr%>|YxT$Xl}-B73Ti|ySp zlkgUl;y>XykIFHavJ?v5dlVzmGTYI|OFPR)pi6)}{#&A%t_=7}T~{EUW6{q(nyzBCln*`1JP&60 zcM}HpRh=?$8{o)1CJ$b=}fka zHwJ1#|10?B*zDKC72X)QMe{)V9{f@EH}9I|PKF9=f`J+HL}TcP2g3(Cr|PeJrpflp z<)zb2>w$kWe<_>O^(4i;$x?b7SdZ>}_TsJkynH z`=|lk`&EHNgFhhSDLm@)_I;#<8qL3>H;Q1@K4@IB+t%2!9_qvK5j)XW<*h@H3XYSt zlW&wPOHKefNq<09;06A0c{})ZI7@B{H7RQ0>qz&fdnn}SQHdllnP@=M5M(*5h$ea+ zFBFNw|2U#XTL^a|$w%O2nonuR~><%1@I4S zAXFvppl*Xp;|w`Q^0)VluF7DuPtdd?$HnHteyW{lnV&_c1CVeqI*>Z9SmK4jy=q%I znDAeEzv2~=5BMgaHM5=i$n;mQVbY>4B{Q>kB^>j2lueR~IXBdOs;hJ^UDtJu{T6Bx z8w*ci9>@n)b^s&sEz%uXZ-8B(kmxRX8(4~}RY1Z$v|^6^__bUkpngba ztrD+94oIJb+6DXL+#9FtU}{voP4YIKhBly8*h*v1@S(($^wiQR>S=_$q|)_*s+%yT zBA(eP1O+n1mqo`jezOnChf11Khp>>cGiZzxc7 z3Ja545Th&JID1IkTEf{qkf;BFg`*#Af6AADP+BUQ3#<&pT@P6p%;rb3E@+~1Bbgn` z)eXtH9==}KCO!jMi%;Q4eGU8AP9A4hF6S4`rIlo0)eNv`{^b8saZ~{|JxyeBoY>YXGP-y@iqwB*&EyZ8RrRiDj4K{Hsqq)Ba+&aTUU?FzXzogh|4m+W9SjeMO$l$w zdMl~K{IQMDfBAI{t&2l=CbLsJWIrCP`Zg9YT{N{{=RI3HT`ETpegQkd0LQfnN6hj^5Vqp;EoMmIi9l zT^Lmb1_yBDxr0kBWSG=y-e{sY^1`-^A7E_(4L!yG7iopA@$${tmVZ=>fCipluKg8A z`H1|w%0-?msB_W>fJfKCweo3Bl_DqVraQTwp~sxf^v>!7nU9eU`eDG1=%|$Qs_Ve^ zvTvp~N*=TxwxJ{OT9%3ks|+{>uJ`plw+0tW0T|=;7hqRqy zG$F<`XKL~*Cjn-9bQrkIuiS)J*U!Is*#%V zG(t-L)Sfqf&>V`KAcr6)S-yROdM-BKc{|PsW8@CiInhaPf%2AGZEqa@7hGlv=A2*$ z`ktE(5uK^kM6-;6Dbk8GO|n6qInd2<>80b5x3Q{lI|TP7l=AistipXo43={(@N0A*$1XkYs*2LC-<& zM#h^)A;%)yRnJxb8qy>aZ~;(C?Gb(w=%`y(fT|}_!hf=B=u?V!%$Rs5QvUyeS^T&9 zE2C7L=btKzBiEUHJi5(mpadUQfK0@k@4V{_y&#?&7D+SvF76 ziL*&x#@7b^lZ;ag#ct{S;5odDb0M25y^rnk4+dVPI-q)Sm2gRHp0JL41uEdJbEr*I zwN|=MbfRiGzcs!Nt6;tv&cS^HLt?X{8zOJT=So^7Yo(LL{cNX+YoTW0*T5U4fj*{K zBr*{&aEDU4R+;vhWj-r?gs@i5b@k&6-VgmMUpO+EY08X-1mYV}F+C4HNPqJl;HN|< z0ye}AuVq`(8~B5x6^YvvDH1PmMt{$gVj0Br_qV4Nq71G-^ill5{;F_Rnw;W(eEK%)aH%xE|+U`~qAZe@iq74NTb#U+_yl~w+t9i-}ha06n@`_kH7({cVbtNV4v<$muLVCTz|M^$Kd(m=(#e3SP#l9&C!|m?#LR#r5OaIuWhJqYhR*2DimUuurdCc!7D)1 z=u1~CM|+tHsTWYu+sZlqj_ZS1SyWOsUiS(6#3gACf!h_OIXux@YqoQRavxm_w0ce4 z^E@uZ7r#_pj*LtMT_d>LswuMFv?Wpr??CcJ;y@J_S?Q;{ta4~1>Ze8seyhjvlahat z=E!1KXNLwE1Po-)@nm>o!>ZU+a<9Ok?GBuY?vrU;+^J{lDo=?z5evC4+@_$4`(10I zP2zt$HHp`(4I;uoF1UmL(b?OUAkmu{+Zp_oW*;gJolomd6_R7ZA!1!pH@YPu#OlVj z$)rS~PPxo7W#JrS5feMDhLMmQ)-&!5aNst|iY zmK9k^7}i*+uBm76C2Ag*!pRpWYP3a9bq3uPS97cmMyflTgVt+knFiAw7fmDWx_8ts z)5y3>d_sL*J{39^nGO8bE238uo94X6XJA7LdNX%R_9ZpbRpHm5m#$xO&QpWUgb9D$ zlAb&>gMb|d?RC>FLeeOTVwo^o@P;n+u1X)=D(VNJpKk5WHMKKgo z&`u4<`}sRsv&w6Pe~=wRgT<}2C*g5w9%zv_FxP~4;}@`vQQEOi{>V8U~9ogj!g2(-bTxJ)RDh(H3ObHJ{OELT#syUBxZX2-NVbE+R2Cx zBc}#!j`~57^Eo;e%tlRyo8p;@29C!-j(QL~Ub3CZ4fG72mq5%px-qqz^coMMt7QX; zhMAY(wD<|*<Mf6DB|7?2%^L4M8JLo6Dd4CzaLXbtya4e1H&@1I_s8Qf2 z`B-OT93V#|yeu%Po|VfgUnTP8i_o^%;jBHv%D^W3clFr#3SWkAhqAt~hTxIS0&@TQ zjw~Pt1MG`kuPy7!FS>({w}^5qPEs{f)U;pWD{vCVKrGN!ON(5Hv|FTE^hIOd5xn}!@D_(rV#m4 z8ca%~5}nxv!jOSnOt&>!&FMv3iVLXm^pBucP>KIVUho5ot~z#VdT^tW`jA}0-ThP4gRp`q0%?28AAVuvyYWXO0K_z*=~aXn^gV6$uh z_&xPD+JMNntP|ma8T?1GX5J-&JT!^C8B)+Gpp~6NR6+v1#x~t?k7^wv0Ey&v;H4@T zMnkA3y*GTt>T; zg}Af)m1d@E81@n#iq=V;&#Q0*9&DjgSXI3!4Ytdv9T#Dmptbj=C^}xumRTlv04^mH&=NCYuAd4qlga zN4I&~6n*e_C6{UL6g8wzC~GUT!+(WVR5_BqM;>q%vERWykd?Ztnk?-_>~#l1y+bF# zo&KA|czr*5Mz!C28yOs&=d9sADZCH-RDPBjICrHL;rB;UjYwE%tAj=trA8+wd7%nkGle+{2vsAIx~D0 z|4a9nn4q5OPp_HfJqg^`UN6r|>y!qD!gLMzCAxy&1nWlk}6OO^* z2rkid#nhSpKvVluUs~ie(L>ubYo+(5{z%DUS(zkNVzBLY*t2@lBJ8{Mdi8QT7w<3p zT%M=gh7Pj-q8Cd#R;+?9X)M~I#gi-LzB|x&^&j3pb&VDEwdcHhgNu=_9LwsbyD(Xz zR=9SmThq(%adcbjR86d82fIPg4x3*+IJJQ-0n3KUS-{j?xr6fB<|VBWHzTIgPQ`oV zHgp(+O#mYYYkMT3kpF=e)GFbrTzaRJ9fBJZItE^dZptz2l5-7EfolaYa$cQb>I9ri z+3zv<_quz-=jF%Q>E_*m6UvdrwZbxDC3Ld@it&Rp=pwpvf+*yP^5H@5O6f90Uvd>5 z%KQsoSJ|;~>W9(&qN%Ry4vuKgoOWrWy*#VjD6&pG9&D*@SXH5)W}A`|#xJN&=u7lN z3L7Qsu|z0R#8Y{Y=WHHyr0|Dk9P*ipq7KeO)otzPcmt?qPDk$m%!6N3wxO@vM#&yH z8UvkGqopU1E$I8`6jra-i#%e9^(=i;fl_ZY0lR>>hHoS@#0Nq}+6IB4%wss(Cfl4JuR4Mmbt8&XhY(jOX2m3gYZtbvr<6p zgqlS2+5eoE7}z*6$0aBqZ1@bB0l(hz1Y6d8*{xM>+=~N7hm_jW~Ba~TmwUJl(6aI;eEq_*S(G|OX z@Dh?I${eP8@_LnnxI}E+d_=#~{10+B)mHJhw-*eW|AWV*Ex=f8q3Q^#5{=XUBWVwX ziQDK5#=%yUAQRz@6rCMO?0I*F z=LQ5qA8zUn-N`g(_!yZT}=Nxrmz$P4U4 z=2Mo;l{73h1apg~gFDGInICHvs)wGda0D|6Wtu=2B2`J(;bdM!eM-{ZtwK$X5_CM4 zpu7sLjI|8y^R|wiC%@3`Dg4-fFfHr17~G19Mi$a9=lv(vcw$7D^SrWY)v z1JFBcZS^zwk!NE-#C_@}$mzJmbsIUGmt{hD4fz(ig0s=yWW)(Xmk5BI!`O16;s zqr$7%E@~#IPtK+);_~o#|L5|8@UHL`aH%TWK3n+AL0SiBcF`B)+Xc-GD?|H{bWuzF z0L5(YG?hM(Aea?cUey&kSbjn_P;2+@^>(g!s;-5O*MNAbw@iLbG`_rstAAjJ`GoDM zG$xa4M!H(a4m!W7T4f-t+xP=w4S%{0EA9xifjZWm>?vdyQiQfG6gW09%g<@5b?PXs~JgN1pL@U)A^J43-6K$_biAnYdwY zrAR4+uAs?y4swKd5^Ra>)-)3?@V(|Xd?9;p1}N2rUMN~>N7F|$YTz{jADCn0Hg*A- zmQfHZBrB3o=3}`AEh5xX82|q;x21wm2Cru<v+H5 zkWg*{pN2Fiu9DaFypii`(@{% zwaZmS>`VC&Zo2v*X;j+G#LGyvZj~cIXGEdcE^bO%fKIbYg(v(g7@Fq|$&wyv!qP_2 z`NZ>~5ymStpswY7Cw!(qW_}_keQknT?67b`zB16m-q^pWw6<=jz@2{Azq71!tN}Zo z%K^=a(nNK9Hlj@!tQ}_U8=Y!?lki*6Q_#J}5$qhfn(Y%D&p5GS;4J-9|Hjju>P%KJ z4983^3qE!a@Nn!2d<6K_Rwtg2^&b|g43sxE9N|fD6Yw;@zy1O}lbsoyAk>G(1~<@M zopS0flv44TMUdepCsh+45X&^)a`HW0!|6^D0F9ZeSY4!yN3r;{2+8u{nyl zH4eFlIiDi&fLL;vGqDtb6Yv7K8{HPMa($5giZv$4SHY3h&Q^wmTN5Iji?W^SfTEAA zfp$gYdz!HHj_^OBmx zukxF!X1h8dokTwMW+EQSD0f;{Fm*GA3o-54_&4+&eH}a$+NKf^?kpDWs9ebhI99zE z7>w0|&qel2lgd9N+*1~LoBRKW0vUIqCHlKQAMw_tRyfhbgl*!X`DsW)7|y(<4aMc< zVrO0dXpUOi+&W)U#@?i+@TIcVn)<{T!+7U9RwHEfHF6Y+g=uwbbh9-U7wgXZTDphH zDTly0T3Q|e>2WM!2}Tp3^}PRi>r`b}_gb^{4!ktVBU%^NCF+Ks27J_3s71)Y-|Ie9 zxfnVQ9>z9Bk1|V?1K0(Cf*C-UDO+1E%g4&Ev6;@7V@#94mA`1ZI*4u%ohi zWGmzlt`9F)731Q_FnqafoaYDBke&%HiyUUdio>Ycu*?%Jx(DUcM+IJ~kR46vk$Guf z1Rcvq5H)!>!mTAYoJjUQZwpltRy#Zg-T-x^en}ts%fw6ke(W{{D7jlccg8(Uo}(9# ztKG6NAel-XmH*)y5qqS$Bzh2QfGe>f)p?$Aq6+nN`ahrpCc!5v*RVzMh%Tu98toTo z1l=#YN!Ke+j&VG5@kWONfPHWA&Bm!r7Sl78kPXf6E?ga+hY9qH!$J3RZsSus)I`|d zdqWgXy8v}@O^x+t4uso4$Faex{;|E1I!HFqPyWa`*Lx7ipnBjxRc)DH-d&2_8BGM! zaUM20+y%I*Sq$X_n(~hNHu?4_{2~c8wy4<8(0didVUKKO_+|btcz@wK_qbRKXnW#0 z)B~z$4Nw;8!krT+WG$*IloK{fJK|Zm1=>RJQ&2;&)srU>qGz#{<&){UG63sMRmQU2 zp7>Xp%9Dpb@Sab&qF?V%ffmK;sYeFC$oo-2AEZEhPy7?16|#Bg0%=W&G_D8@FVz+| zkbLmYRm`xjD4?a?%xjY>69gq&T<6ME;Hmr*yt=|}LYFz3R&M)gz9_B`0rq&pvtnM6 zI=|YbFJww?yY?&AI$xIc0LBXDnXc2*0B7cv)UE~3OA-_M3k22!J~XMg;DA+P&nc;w zxH9oS>rf|~xVUVowb=2*IZ?FD^k@3+^h4AXgrUA(j4x)F4q=gW&LtdEV23oi*5CUm1-$xa#98LN|Or>(Gbw2lP$ z&ZuLjsW~}D*2A1_Y?3q`TqQooA7ttj1e zSh7=g5a{JCx6iQjv!~nJ@i4_D;C<0&S9;ks=XL4N{Q2>`Q2r(B2N(JDE~#IhhHL?8Fz=N7Op8$n`3JetwoPHL0twQ^|hb zNjItZ#d`wCOdBPAi}ndRmOL|!&QEf01KXzPyrV3mT%AjwWJ>*`eV4o$%Ke$W%TC*h zon75A+o7Vm8J#>i>A8Xre5Ki9TV#%y^Ad7h6CFy|=3qj>B7qA0C#kW0YSM)C6~M$q zQOcP7KLuwz>!rmO9XU!;n)p3`Tfz9`=}C7Ak0*0BTQMTwjC2+q*v0fUA547j>gqq2 zw$V2k2-$8WNL<@fe{mBhvpXWpNm)_2-I~omXjeIwrOZ$7?d^wViYME8sp>I7?p!&W zAZ4WFV_IUKTr{25@bBqnMkBta)MMbKqMl^G=wRSb7?lw0ZsS-05lFyiYjs1f+*Z0CP zMRLQpRymn}Qn0)5Wx(gE;R^COx3qewZ?i_~Kdt9>5vAW<-y$U#0p-cz_;)M;igm{{YZXT zxffayD%aYOT7d<4f^<76~KIdvt3*&%L zvgRao!0?A~Cax4dg%2PL!^@qb>Xqs?f^!^ou7|F9z}q@B#?zSCVtg2+na3IJtZx!(67!?~7z^OebhAMH!mY}$K7cnS z$?0pQjS-JTQ;b7wV@yJDhfP706>L^-rJngtMx4Z-qBMDT*6*s;bu8Xs9c_PSUjrus z_du_FC(Zb43I?mk1WH{Wi=)~m=&8^S;(mfmKMpI9O%uNbA=jbwq4Zzbi_ufT-HL0$ z1>rh?rT9D>hL58=$v3Xivg`aJG(kAhG17a&w;DPxx{lUHhgd#GCumzU=aZI*A1A#` zZ0x-U=W+ju36Aw-KHT1Ok$K9^jBKjs(dof3)>!sh^U?G~cFOxy@&~#>-k18V*o)nc z3<_jo$IukauP`Uw;I$y`MZ4*;x#>uK_xxC<`-|Ha8mj+OURE^7aT2=Zhp2RWj&!EK zJmUkJFU^x_Fg|P{o&?|6M>u1y6#Nt#0Kdw%mTW*N|39h|cp>#du)p|!0TRFHU99O3 zH4E?a%n&w1a=kyi51HGMuc{`RrJ|oyhITmbL+P3D5SVAVYZE0Y&M30me>C)1P@A-fJC?-YclquR*T#XrQNCb-%z-tJbjso@N4R#D9Jgwf zkmMBx;WLn%pb^~<8T36xsdBYs9?(^E%yu%rIHM|ZN2yoi&cl(_f;DIoKA)}|nHqn@ z_HyP@QT(g(qvSQzR`fWsNLUK~4wX{1H5Tzu5icP%+8uzI5BN>#3vjjitFJW%2t2+A z*n0DO>G(t?^#~J?U#Kj)5*x|ePvr;mJZRzx@h9Yo{+X|XxI*JgT521HJ?SJ9VF1-^~PG@ zIpOaQ=4I|teL>So_67pv8U1C;D*t!W`N9g~e>#9k0LxRhMw@7+$+icpBXff{$_IFO zNWJKPi3jvU=x44kvhQYlI0^*t)C>(YI8vtSNxUyuE8XPs@lf(Oc0}FCxHC2_tw~@z zKFT)OT?oIznv+uh11K-B+`|OU38qIoGHX5RK<9u=VU|>ri?N$%8Z;zSA8J;9Jf#_Z z7T}n=+6(S1;292ylB81QELQ6|;n{$2R=n8u(!T0d`Wcuqc(!VZ>)A{wi@jc&u6|4X>6nNB^0Nh3JzYae4F`4*eYSu0o|O#b%=Q*kjb!*=f@6wK z%lSyPv~dlk;xGY=A{^61kTli*I=w1IZ0l`XR(>sfQToj@A}$q<)x9dZOP>JSdRvx^ zp{C{!r2FgVQjhfmj4SY~Wu2&tXy53Yct2fVwM|~eP22mcF9+8Z%}9C9^b-#gtHHr4 zmCWI~;hvX&T&41tX*)27c{7A5rD(Bjka3+v0=uTe_+ZuhS5XRbur$QKU9MWW6!Vj13^lo(Y6WM?^;Sk-y z-$K)vBQ7`9`Xc?+*UH9}%_as{j#q!vEs;NpyMv#MCjdgFt+pbQLzH5>;#TNnxR2Zy z{K3|gzofoHXOIh;gO2Cg#at)GO;4?O;~UA2Q&$1U@jlUm)*;Mr`CHDn$J4gQQ<7!{ z$A!m1KP!@`NyKVg9(@Nb$?B}{=w{VRTqC`w2x+j6q$W~mF|%8+Ti|G*wel>OtEnqh zq}u%!HW<4Lbphv^EL2~Ay;yHaAkdz7(Ag=vqtM{|7q3aHkw09^l3rlwKcyd*(K=LpSb*LCs^%PESZa>2h!sp74x0Y6W4IHrh?3f)UcrA3kT_|K9A zi!>z-rz#J@t*w^mS7Ten+^S@*&)h-M(Y2Uq>n`tzXj#n#8(;HhIm&pW*sMV&I!10ImlyxP@z1 z#3FB#I4QJFpNRAqR5GhIM&xWxmiAG0m*m9A5_|2Us};Kf`?)ur99bbcMf6xX8fy?c zgL%W-GO6 zuEWkl>PpEfNpWC?ezB=5yogIE?}VnoGtJftYdqJ12V?%>ST(ygeLm4#I~fov!@6#f z?)anXa{I}6j-r1ckDf=#LSqu<=zHjLX`QQ2R+_kWHs`vj$b*mL5{VLi7a`Tt1AME@ zv0uqxV^iD}H)*NAhYEmb`P#H_QrrVK+(~8a#goJ5A=rdnhqr zw_p!-EMq0}UfntR6D3?7=qHpgEWsk^HzrU24gN1UmnsbQ3-f)A`C7rH@Ib)fFSjgm z4iHXFSWL(gmSY!PlTmSWx$TAX8QULfsx@($s&!aPNq#{aUeC}&@DhI%VAoD(uOx@) zCeojdO{NAUqJNWi9gINwofq4RS2yCeup+l5{S-d6IJ)DJ(_VGTyZ&L z6u!>?2a0C)RNsYmiL@aMsE5SVRG0FE z+MJ)qO^lmhD5Rk0xlT(YkS|z>wf8LNXkSOL09kVjHhf=f9L=U&HLY*}U^#0X7=5>-uW zBe%lx3Q+?oo`6b$T4leDkH|Qs0&bPHFW|At@*=6pvnWI&3zT0(X@ts?85VIY#kUGG z_)tE;*WEQ9d#Xgs6Hr$fSC^klUysxJ1ie7XaK9QkkJ0c6Sb}(x)!rHA= zn)g3on!Bz1sUxGtNql&;rnF^byiDYqmDxAC3cEr=p`V^wksDN7=d;-IqH(q)q**+R z<~irbN5(&aJk^LA5q4!kBlq9-sR`pEU8D0t4=B)iCo&2hswty0ahRRSY^+QPTA7#9 z*N_Tb!8;J~86PM+FcsdVf<^EwY9}?(Fa~?duJCuvQ22&cU*x!{o!M--3ER88p>&P^ zrf+3D(bdJiG0dP3=vyur{DDoXl)F1w&S7Ra`@a)~u(g*mM}8>eB6G)39DB zpEBb0qGeDhV}^DbGMA~TI_3SqB`FJSyA^wMgP2PNdE5qjNN642$1y&1ShWwm4C>_djqk3tKOPQt&b-=Y2Z z3H++$cy@DkTKKKur*~iJ_++)XgQ=#`!r4B5pc=1K+gX;Im6oxN%l{Xmfb%(KBF_ac zXF+j!wN=s(n+=u`FZ8Q{h2bO79XM3l5!g##GqiPOtNJ8!cO-`mJ%^sAp9hvDw(#~S zD@5(yTU77tu@WkYXBh2;D^|+i#=fFu0<-mFX=%6_e$BpI9YvSp+M*`V7|R>~1nGGH z9BpGHgP$X-0nKo=@*O9+Tu{pTXei19cGIU_(@iO%@7!Kz89QIPf*cVt*gl6QNPUJ1 z!G?g2$|$|2Z>E?4{Uq-M>l24)xB7C4K^?$aL z=6B=>vdnefx4jC0v!dmCjt}nt6isp*aNkk313oe$rBiGcjNoqgx11v)3yA3{%Tm9p z>I)!fbJoo1BuPwj7}Th$+wQP)}8!r)R)^%d#{tHa7fu8Z=C$;XE)Zpe?iv^ar+ z_+YH1_G7vy{-IomZVWc%j5Ujp3oy^E#L$4AzKMDg=i%Fw&!uS2vQUR)S!jW94zMj= zB)nO+kN%(R3bx)_n?4_I7)}cIE}V~aihSaz0Na%poNWxCZl2&EAdycIoChx1vfQ=s zhpIZ*sLcCX8k-p%lAJvB{#e~(%~H)kY@m4s6H4Sd23b1;26VCRqP&i$`Wz7!3@e$-x@=b}bJi}A{Oucn4a0gxXO_%iN_CHv<>6mc3O$WX@bs2%R@{W{ zz)xc>Bu@n9oR;hi&-1MJc!yYV+F5E(#?-Ji4*8geiZ5XZ>TATzz2oS6?cXxMp zcR8KAuinyPfdC0fAXwYEySux~nV1yh(u!984nSj3?(LsW61iTn>)%n)bHGQY_7@4gp^c(^NT3B|GXu-ZDQ=zuw`zBd!R9$)17ZQ$mJvYbhY+!;4jx% zf1BuAxMh4H(g`5tjS8zd?wWeT$LK|PvuL{iE!#V3C(A3VjpVVJQUx=ml1x75uQJwP zrd2ew%(IWT&Qs2k<&=B?nx}`*cJht9&a&=di#H(o8mJ!jRV_z^MY4z--5U>tL3jhc+!<%ez%P%hnOiWY2hB z2%5OeD$uhJ`i`dH^{9{Xf8lK7d|)@;HrkjTC`k@zWjs%fiZ8mDK(5MxMec@ZYEg?= zW7ZgqEZNh~91gR;a@onCLeV0x`R%3rKH>Fchz5Szo~gf4LH zn{r|wu8_w16)N9OB0VgmJL_d4Gp;UpUYdFbP@u&Kg1H!)sI zxaT^`4BJ#{*hpk~M!Rw%*VU~;Z>U1NgX1u5;2LMRbBk@5=DKSuGd@mBR9O3kXB*C9 zw7&(?*sF-Xgv7{TfM3|%QzgD1cu#b8A1CJ+YLX4}3b>uC9_q#)BYPB0WMBI`7jw=P zc6V?zfUCM;XZ*oHBGE_nS2Sw9vRABtY%%$+FkQe>g$6^!xx_J@4cwfhWXsJel1=`R#dwP*0f$|-W1 zm>|ncObqw4_K~z9=j;3F>sp%|Mg(f&VFPa17U*v45y+K(%00)nLgiMiL*W<_TEKnh zC$gEIDat1i0lNo?Rdw`UB0Bqnj^;(%?7zbe451l-BDI39_(Jo z2(muv6x#EOTH&dZKyH$3NO?!Jsb`tE8h{jBhkF5|(`)&jM@PCj<`*vxKOS=tJp()R zqy06I1p24C2ZZYP_|S}A{=s;*XCQfz-XMCXoha|8>FasP)bK9w=W!;VHL4+Ofn=Mh z7jpzr!xiyz>R)z}r*G;BjSQ7re1g^X+i7p&XhF;9k+fL;1SriIfM#pD2>wn@FP|rC zh&4-(qq}Q9#cKNYmHZ~&TNB7mrU$-x8jx;@4`gOZ1`9tHkirGR^)@f`Sop&`+Bz)b z2cI$c%X`5I>3siZ=>po4KE$)km=sAve>h9YUf%nHuyv>FwyYis1Um~%a3f@hex73k z@mI)Ek(C1e_z_+vOV-5$#eRIq@lRC<|jIXxGefN{418m3@!VSG9t1VT+Tjl zYT)*v^XWfBNv8Wm4m1_*t_UG-`4#$~AyoFl)5_IfyAsNiY(syQHX(Nr7gbxM@oD2@ zBB{t*D_mUJDdTlPH--m1h>u6??A_3N=aaaW)F03u_#0M1R(N$l&6L51!^=bfJHpi( zZ|n>TxLYMNjyweq@|Gdh*lKh$ynb{5$|QFK<16mar^3zjE$p2Pd8VGW0xn#{Uj+m~ ze7654<*?rkd=l*=R8D{5DgqXNr_7oqU>~+EB4jZ3p}xMZoW5*m$TSQsV%JLL;Yne> zqIvN>=!on%Jk>LuodwTPikvR_dTN)B?79N_($9C=C6M^iz*# zCso!Z4ViPeIeSCVMq4t5b7sAE(xYU3S2I&{BsXgcztX%KoT2??53@%LXEJ8Z0;)OO zL-G#tuBhiy(O9yZGY%<^vZ&zNSRM3|>EkA@i6o*lD@Pl9-G5|UfNsb}fsTqTkK>bl-dHgW*bk2TrKvj%= zq8)-;U?p7JKFfaJbU6PKGc3jf-@xY}J+Q+wQj&s-yoqQV3y9=V9h76}MG?$757`9{ z6-u?$%s&jB&~CC?tjE0Acej}58Ot>D6k&^88#SG%0_Lc#gCQq+QFsivlDAbOjM%|2 zNBFo&^bC#hFHS$Bk(hExYap8=WpyCB0hP8wOKt6TbbjDdV2GwK-o^0Dvq7^NZ3d=M zLkuHgGQ3*ky`)#*WW{JDT)JHSg_lSqtD8x}%o;GI?2zdvaK|wLyzOqKX_twW&vBgx zzkqYYiJ~jYoQM*7;-BW=+SJT;Z4TO%GqD`jLDb>Q8;%jB^NN>A+U6Uvp7>PH&D5vX ztI@WkGw8A>#vH&=omzf~d{*RQ>Sa8H9mrf69qyR>3@6B+p)O2E@S9%B%Qat+{e!9q zCU22tQRM*Zar~nqo;;{lr>E-cB?yDF?NGQL6Q802q!q(qA)SLE+D~CYk;c7BG+s0n zVx{NVer9vDPeJG4N%O}9e`u;Rdk1a*~(zAn05 zmPamA-FNf~;#qsa?a(O2tDrp)E{z5UBfZg}i}9?Nk>W&WyVys*pO_#Y0IT(jg_4Xv z=A*h~!+PjaX1T?R1o6Vco=mys8?1Eh2G6l0s5YAFV4~W=xr|4bPf<0E=?M|@ll)jV zB=56xZg9QgsCE*wjH(xC=gHBRk!uYBl{+p8I$d#tV@9uFUG@>iyvz(=16<&4WPVMp z1)8&%*O?GhUr6bWl;D7P1hPze8GqX_EQ1=TdEf2zj+_i#5#V=(${YyNJz~QbEY#=a4hRI4w+Is4giu4K0B~7hJ zLw9rkqtKM(-au_D4IfMG5#Pr&m2Ci&rz|kPp|?c@{5loquuM}1#CTT;wuf$qm!Tah zoYI@<6*ouCf&XI;s(Sb=rUB9otUUBVofm%W(dHHtOVi(|GSp49cfwIYg>YMLzIK{B zk4uGAiw{avrc~Kc;|idUfesu<+nA@foio7E9>A`Ow^1|jHK_r;T~a;$faEMuFD%Nc zko-uliwj((=3V&Um14pwR}x*S^!@)y2J9rINE9Xyc)G*8><`#yuIZ9~$W5J0WMI~@H2Nim z%YGKZ%Bxg9I>)O-M<*rv(TXIXnXm|`tx5G9b}N)?kmvLvIqJCXKM%AM^%CCkO@OVs zt>ATdlbSB?sJX|r&-+ORWESFQDh5D%)91je%EyZ%Vig>A#B}FzwQ7wdFXgptALqtc zrjA-$Me@;o+_inEcp-_fP26qcKtp~IqbpI1pi}5C-*Nr+&^mlr@>X>-@Uy3dtx9GQ zHc{zRW1`O-tC4B`ck~?%njH1-3=CshXmOoB@HuSpoev zx(54^);n}XGM)xiSTZ9ggpk1#x|z(!3TpLiPPIvC3EM?IGO{!${1z_B`%KD4Dg{1 z{0c>e--B^)7TB9O>w8U+-87|bH0xP z{^~&{t0(q4ro`w#CDt}CT+$8Qsk-e-m+0&xsbUBPhQrkrQeOwP2JCGjsn7W2aQE_s zf@=Anox=&IWfgeHSr#7QbJ_#!i_jAeA>BhbLU{#v5KhqM6l}2(&OcZ$k-}4I$n!5K zscV=Q-kVelIw#X2BZiS&!|-|o-hsd;My8HSyutJ&WK%#_lN128cpyP0B^2V>_V zn1+_bm^kBeUl9!lS6c^{{~r+C3v%8#WV!AvS1 zJ!v?APICU`*qe}z)pw1t$=Eoe9=+fCxoQBl5L#8c#Cn+6CO{5|_AGV1@{C%!3lecLcnu0$qmJ5^BYk|LoAFPveQ-Kba=5Yr3zJh$kU(zhxkh(99NL`-SR(?Ev zu4{qvi6qlLfKK#jfp@l9Se5m#GUz(v*dn{*?o>De=$FvQHCr+TPx1XqY?n8bCzmY( z=YnE;^}+$Ru}MqHlkmk zrM%?ij+th51^G0O=e?jFDr%KIsme&8sz_F8Xbf^fQboU~A?gfPo0t%&tG?>&TJf~V z$k98`!#mi`WgSD~V29>ZW&hYtbX?-x(BIhGyv3#+x(x0Rb0%#KypUR;nIdVWeyk8^ zBI>UAz*tw1YqoG-VDmU%+-mn#Y;|NQUXAMJD>W#>qp4{b%T)^`s};43YUBgB5gCs^ z@Ei35LB@GXwU_FwPIV_UbwL*VqCL;~0ljRB^cJ&54111MT8cMQX-vHTpTMhNBPB}v zsx|`ekX+WQ9*P|BT*Cy8*Gzj2$hH8Mr+z8z7RdA7_HK+0Ra2y2dy#7Dy&kK_@1l`J z^HgZ!VADS1LATiZmtzFI1o;pKIL}m_Jl5YXd{nUzSyEO;T!*h(zR`498`Y%94&4!g zUosAPtNOeAcSWTp9+k?rSqd{tT+gJ1aVPBOoa@rM8+FnYw1*(b&6Q6L3ra@PkBT#a zz19!(GM{_JV?AmJ|pf zEN;5LP?i|PrMa4J`MVN;&}P>Od`jvEc4g3N{#Wxd?zri(wgr;~y-}tzC-Zh1I#=5y z$bo;ejdjkj&;Ar0?EB8!1vK=gp-RP3%Sdxm_h{7vc(I;iZVMKeFt%Kt5L?S7X67Y6 zHPlUi5w}|Z%zGjD+dahn%Y0u|p=hn$?=R5)Hro7r0m?M@f7VPPrg%fr3w(}$gnTVy zG!K1t-E_?f@?vx)^-6juwVvvOxtsAZ8=n!9E6t-!EHMXM2hI=FC4SjLvSi0TSyQr6 zdN+Mgr5n(zndp zu$zv{a6<_5&M4!5NGziI}#HDltT(^N=yx7Ui`KfO7|) zlrS7?;<{klfc;`gyoQ6PYa6%}{#Lrjw9e*C$81aC-2y*Q1fAk|*}vpHtDY#tXf0Kd z#*fC)dsMqisvFa_>F5jn8KuY}W}mqk#cQUuYIs0|)z`I2aLI>aOAMRY7UfyeDVYmp zGksFxGh~2K{z`tC?O(XNs+J{%O;L?zXB0RrYkW0jW1NitrztD)#oq}tY3mt|87_${ zjMw8Zv?J3FDMmiSMj!)3O$+3WOm0Ur*&n0`tH&7w`eOAk4C(9HZyRayuvz#$OGLOq z+t8FjCB?Tg9X5!d$Fka<*P$@4KPin|C!d!%$+xzstG=XzayjHHAI;RoGU-%n{k$Kz z2@^t@i~{Z9TIJXtGOIG-Y;#TZQ}|>44p+Hb8Ml?1iELHQ@mo{c7*iw?qB*UX)C10G ziyY5@J0__I)i;3q3kJI8iB=1K0PW#7Fdr}zNhHmVr!MOckc{mkcEC5wGf8a=Jh7z) zx|pilw#GN`H!&@Qha&B%Zvf`44LvDqp?!f4OX>(;a(3X7wh5jFDlCao7jj7tB`{v= zGRS;MXcuUY;3C-Db<)2O>xfncdc)gspU+}V@%Kd56Hj7ax$x>+bRG1^GB)UOR)gOJ zP9Qr(4T+lQaSMWOw6KAj_{xGD`Zv@i<(2ny_=ftucY5wVjsYjcc53zuOlp)y^lgzr z@$tpKJqPJF>=FNDO*6q>@TXyHTs_d7``ei*oNDRC?i1W*CJ2mZIn{%iC2V85=(y@` zBRAO^cv>jG(GiY0wYBst_*yZMBh1U`)uus_E(A=JkTrRm)Mxy+(oFn1?4J~nndJ}= zIpKMESLr%=y_GK|4yq-aEILq1l*ju zGEN5lcFzjl;YUJS%HEZw8RiE*3$raDZrgu6_!rYOJ}u~03hDjnJ@QJV19{gqJ-rfo zClp`~aO9S@qT|FFm|t3mUlZ1sw|DKbJVTn489Yx&)Iifsh05>&X)|!Naggo>y}Uf1 zEp?8|`$G?)PGL6rgY@h`O?3!S)7jF9w{!R~^9eqSUdOihiNtf(29j}-wCHiLn|}aQ zT{4rYL1+} #gwcBIG+)Hd$&JhC?pzU3#v^)m$EBA= z`}`w9iGucUiEU^4PkN*88Ux^S5=Lo;l)vz2AYDT?PhM`4O71>E^^NrMH?j<(o2WkM z<~gr{@361bkz})H3OkT9E8CfOo{>10AK)znKS;+&x^d>`cA#3?72nLO6C4Pig!Rb4 zxMAEs@EY1DuP&dKB#c`jpDz_K3)2R(cbwJH*7)Gun&@Cbxg?i82hC*PNq34;(3oUF z{Ndb-9-pLzeMMLqKMRhdYa?a3BjHl$w4su%z9U$Ex;H)vf0?H$f8)$8zo`1)pIqK3 z?my!^-#ydN;J&>8BZVO#K)g@9DDU#a>IZMi}6MJDN(L);G z<)apCJ{1yzsyQ$r<6lV>*Y$h*V)*d--P;33R<|HWW0)m-Bo@3Fvj!_;glejZ z^8d*Hh)bpZk{rR*;E22uqazQ|{;1r?zi*GP_y?F4?hhRZdx!_zTvs;Gv2YgrHTCv*xza=*CBUs5q1qq7h!t`(|Sq{B(OR|EcAA%t z68R@5!PHSuK-xaMiZ=^r6T?8_lnoAWA zicYKWS$X=y;EIqyvlVz8?rG@eZKpmicl&Cp`U=)DZcjJ*FY37JmC+NNpeMJGY)fXS-w zlw8`+INA0ndZhBQY#_3LOa^)@>ft_N1l;u)P9d`ill z36w*9zKXjX^p2sS zE|CecuYz1jXZaY2pO5QT6HUnRQqFCzQH6hswwl%h#|7;rJUJVm9hw$7t*UFDofeE5 z;A^>~i`Ik<;ZIpH{UAxuZ1X)vW&|23?-vZy4HKlZvss$>YA6uR^3G0jo9+PLsf*~q z_&n7^bfu(zKP$OF|YBAED0Th|RsRn{Ek00SE?r^3Qv z+UJ2D(V31Ds)qbENKNJfd>FVA-6-vYcdPhEJvn#>I4xSP3EA2z%PF4ZJ+Od7azBzR z3{Fn2dWLN^?Z6^;eGAZ3>t3f=?UM550YEeQe2GlaH%HFS&cnsKVEzV%E#-7KjNR$ z4*Ji95$2^c6sR57+xmp@y;nhAW0ZpUgV(qhvg2D^d2L)R+vT)PAfnM$RV`fY$bZ&E#0d3=^*ZLoeqg6{@2 zOIR(oFtG{(rLoZ=nBOi_(Be9o&E6vjnE+av{=%_h#OB1_g2P`0{4l+5}meZebfeL*7Q zE=zIj2yKesXrA~9Z+6+Cw6Vf08KdiBYzPUkj&L%{&?o?D>&LAN%|hw`v!snx@11MC zTn`w2V!D#{GrfUwlxL>QMt##~q~>YMT=VmnM1oWe)dgQXvD_B@zayaV3)i=@Ojj3utes$uXosI{@XZA}%O z1){3JbBWvNO5~%}Av$qC6wFwpSp}WL?fMH$w)=zsxsIExvknR;z;H#Jw>i@_9Ca-& zJuAr}=j(>b?6wp1E_F*JTVao`3%^F=__e@(Yl^}nO*ZDTv{N`sbzi*OI?}U(tfvjo z-MymFVCoQ3Kb_VeioTP?YkLuQq#@|2E!(>x+CuuPtc>3|qcd4MW0xenwoG4a>l?a? zc4GTGt0Rk*t&yc1>t(KNVC*RG7i>2%vKs2_=w#C|d|ynS*hJTtH9*hvuQIRVYN~eW zJK;xzGtf(hJ!+fWT;_vb>Mue&HJe1E)7FCG!pq#7Ig}npRc9w?W!B?tZ_Rb~X5bdx zB6_c)wNtFx2@b;++wY0i$$O;iBL;dJ8Q&KSXH@FK=)0tb>^fq#wkGgHE0v&uHqj>; zb)wCaGw?6Ivzmg0BGhl%3XMg(`tB2rm5%5Lwy%1QP(-~1Fz7Gpg!`5?Y#Xcj9{0Ca ziYw?H`pTq(BHR@4FR+wK2*Wg_vIG_QO19Hvj0SG9wX$Yt2Ds0lkHP7lU8SW+1f8sJ zhPX@jdSuGo!N2*E@U?^mx_IUkkn4-UHPYK?FJ^Q?Mxo;b19BfjK->m+A>2H+)@Eeq zAqBSkSo6R!XBOsVR_N}B-x}`~-Ci}A=oc9xe@TXYIt3CPlPaUu5asGH(Z$!ini!BTuOG^ad3jWxKprV&=jjx<6FkaPz=AXC3?juU4o^wp??b zGa7XdT#*ek9rWE~=2BNE)V66jgbbodQwvTbh50tO= zd@oq$Gsn)C-3_RWA63KBM#%5Dhn4(;*QckM)-iMBH}LlKY<<2tDz&H!9NFyBNSN50 zH!v2Lve>&!dq_7emf&3KE@EtUIlnbrL^r|<8J+uqeL731JJ1^(ZB=(E>FU~s11Sls zck_}ey2G7#Li#lRNb@aRCva0lsGTqX;^GJO_^^^Lyv<|t~qg7lAjdka!8~V4f zR_zT(OLKj65!@8mY+fJU9Y0mN%6}~WsA_SrJ`Iao%KCx>2|s~qPErc?BFSk07{H(g zRTW~{XI{K*UFzv@7WuFKlk*(Xjk=;cy{ z?KP*&`RqLHJ^Ye)jY}Ka#5+(ik?jLE4K%b)MJ-uLp8cpPGFEmOy%k-~?l$fSHFQ0L zK7(gOF(5(rx2uk|ZFB+rPQH%TlB1>h#@otIrWMBHWHU9)ywUeXFQ8oh*5lSChHr2_ z-A$|u%8xW7=B(PExrf>q8msJVZ{hn_|AbwJmK3)0B(MXRHY@7(S8SwtS2EZq_r z#&!+H!Vl=I;4ULikE2+@Zr2`piD$I1X?m+lr>-7>I9F6QU@jSciBhtjOAgb^5_X`k zflIPza1>F$^1W*?vLAY{nV*?bS({my`3*TljWaFRwbEsw6-t{xZ$9Y$L>7cf*~NxI zN%u3n`CoPI@iW1J)lKn7tf09$vH=3Y)6gH&xa6RHv}=FZSJ4>=D>I2N+Nk&`S>IRU z`Y3%Po`~lM?nws%la!}bqbph`6zP|ij{>)_WwKnNxoM%Zry-f`2;Vc8#kH5@tL?d) z)rqd!6~FjdtlzD-FViogCHN8yjWrMVU9~vSDIpWBA3dr3%4YGaf;QhC*CQgt%7xJZ;BcjC%HTNx6*sU*0Och4{!su&Uqx<#@s_&n~xxA zsSA^8v5(Nn)!aZq`q;{qWG&+n`UGlIH#cXQMv;GX2Pqfvn4XEZ(6o~E2|x8+_AgQc zWQ5;zyKy?jY=inX9BmA@OBKDk^={y*# zrr+=UN18+4gi|w<-Cx*mn22~GJQZmdSz!2(^-^+8HZ3&9Ga8yko^fqS8$gtjmjhj? zQnWV|GBpJEo6M;bObh)}Vx`CoZ!>2QPoW!-9Tl&IpQ~=uGr3gcV-L-l1aM+TWF}IT zaM+zeDvDmd6_=*Y)huznyhxis?ifO6yG2SFM z53B+%+4hHRLT?~iCSle=H|gy3Nm&^-+BXEOf`I7&dPAC!U_>!VfwKq8BS*;oEq`d(otMu}we@1Rk*8$>Y%IIi{VLoG ze5&iKZD#cYGci707s17qNDru1s678nAT93-*FPJg5@iOd`f`c%rT@2nOQfc44|}O_ zkd8~-A$ueh=5mXMd>hq^OH3npoopL*edYDtE=nsNo)Bi5NmmJPnJc;6{|+ogp$wZ) zR;5keYaqP?qUO|VE=u**)jU>DJEQoJH#fRc)s-kL#`N9X1KdG%XSYCkjfXje6}zy5 zwl%Uu)It)#qpC33N+V$V#fApLX;O2tSf3!(OvO#gd9FG(eQXP|Eq@o`f`jCaysgk^ z{GZq_>7A-e8Uff%kS+5XHpM5Q@2MW(xX>cqC2Fm=W$3l9Vd^P=GJVy!k*SPrD}82Y zjAWoKh3(4PR3;V0TQF5FwUyfLayXm2CWf1P708Ul10r>nlzy!i!A|FEqKzPbgTv*3_GNOV%XRL(H7)$iTs4J~bT^dHm#bR`*-WNWH~6Qg`I&ybz=H0fr* zsi=XssESdI_`0G*-X1_mde{(aNNl1`n8oz1^rkhANzqM7$x&x% z>N~Sb`+8~ZdiQM60(>C7U-LU=1E0XJ1Z(tYARD}@FI9#xk@^7hST_@V=vbUG*{dfF zq)@fYXyl0vC@?Kyi7p9^BkLrcWw%51D*G^kJVYX65?QMSi3d}|WmoCc$RWo&)hs%p z;26s$Wc`Lf^-Mf4*H9>;;*O%5v zN(SB$e|s;7S4eI$Ds64Lh?d3vX6I>q6|f`<&qd}yg}&O%c&fYOEY{lhN%c`YiD{eOKRBZi&-i zn^Y2i28tA{mZh-zwA-eCc?YB*BE@&4u8wc&8%ws-%#Kbdb~1RzA-0qG9>1EsC_yTk z4@{A8Ds1Si+G^KnrpBSM>{2g#!MinobkcuRJ$t_A0b4;C$d1+m`mXqh?jJVfmP(iz&&!ag9z_pTM@MW zE@n2ZV~3Vr4!ntP9_Z{@p-hd9W>vz^uKLIiW{7D#I9+~K)(5Sh`B3>)pG^$XKhv7+ zy}U!EjiUL?N?!-;uCGgQPRc*Bd7w^ zeC7s_WyB(+mA8XRE-8Sv1a4~Xk*6|1fTM$3b_M3sbAy+?4+19rwM$V0<^XgXSzg&AW$CG&p<&fKL zvM0K45k53i^Gs?1{*Jri4y!i$r$#bamht*(MDJIIHIsE>@i3b_l$)er_cQBVM$5u~ z6Erc0kR0RblGc#D8RTnPL(?_8tlEf2b*v;`|20}{eC=ohXM}boY@jyltafFZ9*Ex)UErjkJSLF7HUh|HWLM_Tups)|VwCN%@)N3s z$A{Y5JnFyGxXmo7@LvI6(W6nP>JhzNT{ql?7^%_gJc?J~4aqxgqE}uqLN$%86}pRV%HdRfl0wBbViI!G zRzJKm<({L7%TTl;Fb=uNsO4|TRK#DhQ9mf^S8SKGk1wS@ninuj!2Y%ezAo&T$X-pY zlx9B8QWD5>O?2E+k0Y!5$JvJJpD>HvgEfE4*TUD(Dc<(TP<1cNWWwnh;C>a)*F#=2 z@CJ7QO~c*j`tnt7x27}s25Ie2)AV*mBI(3Bza*ML+;CPPD)X?Ex>X(RQAESWyhF-P zhdyY1-sW&B{tmyw#!&%NP@Ln;w>=`aQd46?ct^$maYn-1;emqg-WJZcu@SoYX+uN*eQQEwwAgjdS4ROTqJuDj+DhHE0~7LIpX-tP|c!C z`e(V%!zU#IZS`nTu0k?A`x?H6{I%n#Q6n%vI>f{b}di2ZkZBq zvu?@l5x7#h25OpIh|GdF*cPRj5v`<38C0zI)FQ^APjUw^E2^p-3FaDtwOH+7Dwu_Q zlk+ud0P+q^eU;eCJc2m{VV+LtOyvvHS7c2AjbzETY5$csR4KemeUj+rz!zUy(E~*j zsu8RPCkBgbJBdv8htfd)Qt?1lsHXFbW;H2g|1}QwT&NW2m`+8XLp_0-*l*%kRauoavbVuRbE4|JM*s-zBDADfM2>rPrW;%B3C zs9feF==5f?DjRD$CmSf8YX};zNFF4t3#o(a)cuiF8iW29P~G`ddlY=-y$)WoOi)bl z+Mq)Je)_ah8oj7#sgDB>sYm5Tt$&jHT4!3aWf>u9FoHaDZ^19hr@>PU7Xvftx#V`` z2Kh*)o$-mjl>UlT2Wq=I$RDa}G86pMN+e)SZ_^^7eo|^6s;oFI3b-gs!Z?|OZTvK5gNM*6hylyrPU9G z?(&95d#Eo$qs8MCa!m(UQkAOevZtAQllK+k;hf5;+Q0ng(OQxV&RvYzosj#9eP?Sf zUk~8=u28k|1?CBcVVio)37a@}$j&#th)|c1@*df3J57kunt!5!MT(K&Y zXG>+>c(W=by3@N&k&=4B_)7Visq0w-9i!CvtK#LqavQt>tV~!*JhO9@e8V+p6A-2!Bjed@^=wra!{v;1 z#23mH$^q&zbM=>zJC=K~E8s;k9T%u-NVl>L$%e*Zk@vyr3a%5Pye}QCjT33%()xvPS-R9#Tte(;Ca4|&-nCf;hg;T=t5NH@zrm>FUj718*}4?MD0!CPnJz+)x^PV^o%RW~&eFYvr2 zF5si%nh|`%asN-nwz9*KJYZ|AOz=%LEq?5ti~-;%!i*3^vLt%-s+Ez zJq4h#P?xNFC&&hW(OtOP`);IEGXvdR@r>KMn9ZfkfyzC)e^qaY3$}%7o7O?)F+k0b?U!ucIHF1)SFRsNC-!fR2mvf;7?{e{a4m(3G|G_p^2nHUT8W zI%1fklk;7PoOW|>B1LbbVt$j$%=V@?Ad_9y@t5JR=91uIaVfP5=0%4{h7hZ`9+sc1Z>@L>jUm@lJZ~%D6?EOz0+qUwN;~AP6Vi!E+G|+r zxTDB#%d-5>@o;_zOkw>8st)u_8DrPSM{t+qp12>rT7fu+$hlgeYnP~F+68QMsVMcf zggfCXw%h(FNAQ;BUS|$bPbGqsRIF#QJQtI0va}Rw%a6sKRw#J!f-^R&Ji`_gyyoA= z9{~3)Oc^HFQPfbFSk_0p#px`o z!|i8fA0&hM&r1Ho$9Uhlc>Ir+HqH&n4P}m`?PY_?c1X71-lXj09F0igR{&(0tK50W zIyt>>-dE`v(C4i1Hb^?<8RAyhU#R+6>nDn>$KnUO|4!JNmdKOY|4y9aYGFSv))!K? zJ^UvLkZb@)mAE3`RieOFgR`sv-OT#MIWhi3d1J@L0vPZs#yZ}Le`Bx3|2YQQ9x2{h zmP!VQ7GgPZ@7+6R+OcS;O(@L8-|HL;c9u9uZo0zJzpO)1SqiOf$ zT?CiQcO+gajpWwl>A??aFD22$o}#yDcHTit0@0ke-PH;h1Y{=kS8ld^7bSSk3Hp0l zr=7IgT&A=iwn2{4^2#C~HrH}5rNA{gFv8o^Ez%ujct}(=D0eJcq@Nnf=NZ6x^i1a! zWQ!>*Z58N2x>J8cEd=$c5@{Pzj{mKHk}JXbw$#c=)Vuq-h=1pQ^t3DgrWFLwL-q9u zC>VGl9Fv>n=o6R89+07|LsBUHrdb`NsM?-dz%8*i^N?;m^}1>-&`qaCGVIoZ>z4f$ zCVZG5gvN=6u_>DWF?1FTYNK5g9!7BjB#=OYkJR0^?ru|ex2e0g!zeH~0TM_c*v!=3 zyLH>jw%xjWzq;?%+mHW{yvcj-InT2&P=~WnIa2wYd)MmpF3|qN%2cm+e4|p->E*R; zdU?KPx3!hLBs|nVzGAr#cGUE`)H^vG2Zu9Xwl*LqpXiRN1c6fJGW{534l@wbwy zGVq7GubFyHH_aGg71dV|H#*biDGo%I1&xjsf_|kZI6XA2Jx9P1`ek+jLB>Rq%U<#h@F}bL?|#`R$JFA)POW%!^mrv!^%;n>*i0;4c9A_Hj7lX z3LDU6z-Q!yUQ_6EhGI2b9G7=S zVj>~F3e7?P^NQt-kaGGpEy)>*wu*L#{xZ}`w)qNt%`7I>Q>bBNLTHzADp`t73|({O zRyGulV84LVYoK92rZV(%sq|~tjscRic=_7|#xc`k@R7DYr>}}C{Wo+g>am%z?!2wk za1Ab>OxF!$WwnBKq1Oy~VeXolz<{mIzLHhq&uGK zx}H2!b-ftMZUGeN48SkuF;GC%l7Ljcc>#FUk5e-u_gvjo^__ot#==af1V0h+Gv^>Y z;qbJ}ZV0>;H!Thbp7B-61))|!M|FVpNi`>hrzy4FXO>2uv1I<1zG7E@?QQnEm?Mx` zF;INoTBRkjWAf*MR)!N^wxx@70es7KTvQU+8C2(5m=5O7v5TJkz-%*(Z%oHkmAXri zKC~a1%knGF=^oPkluLk8XIpxi^$V_s_NXH^A$$P*QQSVh7lR$A!L%CdQ6F`NacA|= zcLXc(51iqF6{S%N%2Z@O#wPn0NuEoFLq0sBUeA0*J|)e@Zg`XLH^2`8$PeE&c&PS6 z(rU&7vIAJ;LGE7&sogK#8<^-HYMfKqMbT7_x|QPOHqM``-9iCW-3&!`T@s`t)eB^Q z>6YTB;lHRZz*XQ6VH&zKD&H>9x@*f)#>6 z!G8J`vU#@0wi4?$_a5qz5y@3peIFoVs2Eg14N(MxmsH~1Tj46zJ z>|PhD`%$UcB%`CgXKMf()r ztr$hOLQZNs^D2mmj;5HJI;l@G|D(T@Io?}%zsQhqBUEbbSDc^tL=IuzDEZWDxx+dq z=VQtiq(GdHwIs$@m}K>;|3?7Wdor%}ak@K~`FhzhLbRPyXiHhRz+7v?K!1DKC+2=lynHb$dh|FDeDk*knKz( z#c#T|dMWlZblnx_^WnOHPP@asS5<1>?*W+~srU73w1cr~eOAtaoXy;M=tyW{id$6! zZ?DVb)OY>R-@#T8v*=3A18Qe(HzBT&8O}SNtxd#1PJc+uJD_<)EZ2@n+KZA-CN&+w zQG2K#qX#geL+x8kiD6EznR8hat1b55N$w? zi5e3d0nhYa6eAqN9$V82EJ`>+n^CUid;&r4N*gK0#wLP6!#J@; zr`2x>_p`UE(U~ID>4{gODa_Hzr{Gw8Le5ewL)IZ72Dr-Gj9ci7x0Zg)C~-DmvZ6nO z*TD|{Ud&fTR;5We7yT#JSAinwtT^2#(u{%w?{?vx4qgD9g<;70;Vv5xUlr?pOXUNUw11$f|` ztoxu@q_N8$3y+4LL91vDdDOMUHyP@znZ#mckMK@+F2_boV8uyoDbmkCNzCE4p_>(# zWZ$?Cq4qWYkq(V>;&sT6+$$JczRMpkJnVpj&GKThr$873H5;XA)_vF-aJivtm{g1) z7ASjp4eF~^*J&wQ585L*=HxkYB_#1iL&}FS5!)-UrhG10DRjddAm7fusq~PabB`*b=Yihdke#!p|1J-hUjGXEJp}0$hr+@ z;kR{rEHJNQ=!W+h@{Jo2ceG+DCWThH+1Ja}&@3iR?&*%wBvV4o4`U2CMl_a=aDtF2 z_&57D@ZP$T7$)oHEb?u3?sk=Wj|TdMdywC7TQLgcx|c)!q!nn zY6=GW+VQqHUdTOQP4lm$aiOF4WX3YyLc9S>D!T4#E?(rY`tJpOs1~nF+_aVXBN?}C zGD*3(Hq_Hb+79|!iY34}L7{s*SX;ag*npqO`su0@T483~Z^cyldCRQeGeGZ1BkDj? zybJL$f(e1C@GqzWc`2e<>A+aeJ8K1IcD8Xpbv703LSCkDWc4A0|4aB+D(cLJv_6@l zV_*>3+daeYaxbVLr16U8f)ZC_;CZ04XOvgqbl|l3SWsh|EZ9=kS}>8*NcbdEFW8lN z&v`_CRq#LG(KIVG9qi}-7wAb|DtQIu`Z@(NxcT-k#yu5g_Z7S&tP!g@0cs&Wst$N4%*RZER-v=4{3l530KT3_oL zsGs5tzA}ghO?Xzg5ByuU1g;4#Ag{&i;6(HS^wTlUbq=u0B`!_yf$**?XdR@g9hu4C z*)8pF3Wt`Rh-U{$b!$ilEDHZbt37?(EAS5bqfk0x2&z@DpnC99?kUw+ncQ>>e*hoz z?g;&_bUo?7IB03%W@Oz|=EE!L=1hEA!297c>xT_3uP%f@% zcm&T9wuv>5&nI@G4Mh{e>6)L&U0EZ4FK{NZgqY(xkW!z(ViWL%_Bre*yfXGJ^o%{& zHr$)ku)}Mp#%@=rd-zOb4|dDCkt`MOfHTkzatr-k_X-x}^*4=&>!j7fi@j0TZ{@$? zy8!Cw5~)e_itLpz%pIB4>5!rLs|pG&$n8s2=K73ZLNXbTtWs}LE{hsaQr%XP@J>~3 zKp#_&MG9VKoDEUlv%EFbaQSNhldUbhg{WLJv`FQ;3RJdP`vE$vpM*QfsXEjwcJ;7~ z40~1Iefv;DyaO@Zt`y(H6%JS0FX21-bu{58-PfZ5D!)?8FQR(`uMLUVNqd8ELGE8A z^TD_93XvzWuVS9jgx$pV&?@gvO|f-|_PlKedyFsBAV$^|9yK7E3GuZkFDpNsrfs1A zkF(J^nOf=Zl6W0XM_Slg%Wo@i?;5c&JW^Hdz(VtJZY1PhD1ME8!y6&*=>?^3e?8}2 z1~Z*zK5L5^aRdV{c<)=MrTLkE!*LbMk3%_zjp1svCw2oCQC$sY!*Bcy(NlRSnmmFm zrG&{eqP#D@DQVvQ8kiHc2j^*K!KWfnV3ud3{cvbqoEyI#vRhYE0Wg+!2Ph@@^nDwQ z>3vUv^RdUiXvM;u-PwnvMS)!Su*6?AL7J6q4e#>H6AeR6BaT2URt4418>rI3yP3{R zj(UKrQDuKIq-Y1PhStjlR(JJvc26ZHsAcdYbS{~RE}@qC)Pb?uDx#xj8LdhTNGVnC z20Bu!2^#EMc}+1ZS18=YU&E?jQU zrXq&tK(4Tln!)}vbcJpv&wRb;CnOd6$jSB?qK4;EEM*BOPz@>t$&Z3du8lc?$PxD@ z$vzOL?UC8esfiuZGoj}Ch4NF>mh2s-1t>qbB8Yp3Ne8(527=(pqH+?C4gm&jCo%VKcfZU`5Sr+;k`ibgly6kKqI3!_H-)mh-MpAl3s=_a#eVvBDR_ZxC z9XfBT9cb^q=J-tOH04u?wm7@8XJ8c5Og6x~ zL!+~ufWJfS#YgNz=+)>RBEMSdE2wb^YvViX{GPG_{0Fpzj1cN&Gfh=`)pxqV8gaN> z`WD@uqsksxIXS!wAg!ls-gbWB@LbwZ0;3c_c)eN*bD>Y-B}pIfwo*6wPSJFqcq^m)h;hNXWe_w~vkP`wy!q@E#KVY9ggk_TM%y_+@5e2qiXT#e(p z&;;9X+dgy)SR2@#Sx+7;vMaf9CHgMWo~MFzrWM#w-#b;p@V;uSNGy9ot<_AAOQLAe z)Z&i%ZW06fP{|>v_~KL~axG;wg~~SSk5RvbtumJ6fG%!shHoTMhSkq{EwJ$4GLzuB z621O}szl*7@u4BGjPom_26!+&CTB15+?7aDMjjgW^P9zAvDSzFVxsaVvMfwuEoveNB?ko)4iNZ+d#4AfX*}u?Nc4^|EYKGMiuq1lxdKvb}<`jDTI4DuJ7pMc< zgX|1JY$JV<8s@x+>XLuMqOuB0})Z)VAlvHgGf)Jn3gE2q7+(`mz~TY z7Ql89*NbRT9A9)Vvo;k5DoSK2XXr`)9?iT7JF-}NA%CB2RT9EfON+6GKl zoQ>#_AK*vj!o(-Wp(4wKIbPKgrlxJQMaO)z?bp^xyz?GWUO{In*3mUBeIviLai7mQ z1*rh0!JSO^^wmICU^QJ+lL&LI6IA+aLb9gDoA^9;%q8wt&7j`etirTqN0@cL8@IzY(vsEz#wF6(B zW06}_Jsqr(yVarWTAu*QF>=24NnqEYZt1LkWTw&ViY72*SiF|LwIvuv@S z#XX64kt~m>LY43&{DuY64^A!6`hmxx>6#AwE+${~C2yU`#f(c}SK>=X2KSlqZE#k! zmGlMGJ~l11G3gyW=RF35odvGX;o`OTv7OF2u!8>0%oBEq5os&P0?AWfOQ)YW>SPC1 z=<(PsZO8JNrv9=H{C~&?v?4Nr_1345|5wPF4KZ}ke2Epyr2mQn8aq2mCjC!e9Y#kCUB04#41m5~PAU4Hx z@};sh=%`?kS|r=~)@cycG-$wnTCbvh5ckzprCR0(K}~0o3%P)^5H)ZMJspn|*U&zK z>&kIJU+r1M3im1c>Hjl!1KkY&X=~%T2X%CssJ3Mxbc<@Zu zq_&8Qel4yiavO$t`b%nuCFU8j7OEuNclD_RhTgdMEo($}Mlb)b7Jxr`o&)k&Qgyorw&)iHMf>jiY$ z7RYL=n(Bk|sB}T9_JDm1+&KKxLZJD~EZMf;*z7grQD?x`i$6cKPEzV0;I9sBPJe`@ ziQ%L>`Fwa0*oP?84$}P{f1qv6iqZO3LrMW5b3sgVrVogVB3-+YgLeDVm z7HJRHsnAeC62PSnX{#;gnG$_phr4R5TOaA5de7+%SD1drjs=&BS`mGf=}HzlL2)!3 zOYBk%b&q2!^G?K1F@II++Z|WoXm@Rqr9V`n(}z0qiwuwK&!~<5QTTwsBzIw;_3hZWNiSs-#ASZ`uYME~8oWhR8Sgr){p&=^jf> zjDq~$;zi6y7tgTHaTr-53q=MYorM2jH|4y@=HNJHGNY`nQjS%7z@EO$viYL%fQ_{* zDvcau?g{%|qF0CXhY$uk<13eu1uOnrujDTKRMY7TD}gy?EB$sPYR=y zv0qT6J{&oP*DO6pZwHrE_F(e(ugL}B3(lO(*}_@DzbF}Xn5w{kQq~H#XiI3dy^^@Z zbTGupk+{k*0GJx?6RE7~t$$kaG#Vn>r`Jd(hMQ>9$yee*Xhdp|v;y;0Gi+Z1`(v#G z4T2fU32}Mka!I~>rteN-YxoTMK>n9jhK;61#Aa#h#)koau!AN=HKSb}bt{KTOXAC= zW6E99t;9RV0ZxZ&dZ+pO6YL;^W5gVGcd?pIN5&ENA_FU?R=R=FM6K|1?PpHga6NsI zCsV#sZ3d^&=4gI^z_&&pNpD4edsjqTIeV>nDV|w<-aAok4ulN#kudpj?LF5V;$7lC zr4a6^QW}IZ09onit?3b)FRK|lP6)YH=O$XA?XLL^)F_5=KzJ6(EhIJjz$g0IlteHn zT4t|GG>M+(6kyYe*eU-UxY-fgE+m%(UxdtweM#{VU z-={~Vx4@lIJ38I-G4fx<0zW(6f{Dd~ntV0Kb18l?I5O#GpHp_OoE5`xqnD@M1$Ihk zd0#^t3s*A$F+*jj?kgtAhRi4D{VKjG+=%Oew$crWKH>=;0bJ94gP2J);t!3MJDU@D=)2_# z+Kk?Y=CGU7u=u)VQ=+B!ur%hJrOCp6>1(RPri&Uob`BZNS?isQwc-&u@ARWX^W<#z zbg~YEN&lsKxxKzC;XmamfrYkm+azY9GuwZRY?7;G&a&rL{Y~wH*GCS<8^IzQ8MjFH z7{^2!2Sso_((TwBeix>B!x%RsvJ&CsM27Uoze8F0PycerhjqwrEbvtyErU9!-J&a}@_ZF#YLfq+Bsp!f~}R z4@=(48mcFoinP_a1-4g}4~yFKH&g`z0q7XhN3STIZkUp6mPxgn$kQrB#dgG!TeE=r zVyH@>$yyy>M6c2G;(n7ord{|g4X3zV`wXl>T63z2siBFw@5UL*<-)n1-s#Ki5@$>2 z8`F3H5oNwW!|TCRMzbnf>i_i0Rey7z__>xr@F^KfeOCX`y)stj{Db(d0%H$Cs|`if zmSQyc79SH=xt6=-oQuhV!+i8TE~k5XGO{$()8fIAlkP$tKXKZ08F$9t;Ws0P1V=Qj z;>Ffb;nJ*nu`d3fLZ_;GWr?MP!dmgI-kS=exY!(VOpy(gT}|d$NPiouKUkxz5w}am6KIMn zUSTCa!xPZEE`sTRVt9Jhz|eE5YledWyjcW2j7 zJ8-X>2d5_a_Br@Um@C1C%j2^lW2+d@C|hEMxwY@O68<3(;5VkNDS^oxM%< zR>B0V)G!MSZ<0?Yvx@=MSmm404E&a>j{RitxVVd|{ zUI~6t4N^77vO;n}S}4Me$q%BZWG=HfIsZiPROU6j%J*FGu;?VyM)*UG`)bqA6~B1n z;kXx6UC>`duLM?Rw^k0J%a!|ZjpUiNlcEG)PL1%*qdvhvWSqhSPXeRb7T}VKv1PRa zEbdL}Kl&5XHFDqgo$g;e(?1dhocXFI#hX3vfKb4psvA3!l_Pr#os2gHJK>GVwIV&$ z5xlQhP}~E-?H6H(E?=UuJkho`c_R)U=G&oJ$6Kw?n>n7rp~f&rSIQrTo57+ghosWt;*QEf(1%|Oqq0qbk1DmifH4OPyt}+BLw<2VbcH0--8)Vye*CTEdg=^Q2kx8_p(&6dDLkLG#^x=hJVN^{;|hfwP8KeZfraN}{9=nJ-PEk` zi{qeMBW_VtoVrGK9GC(Gi3D&7Uv59^5V~#%@-kPGcg6E;G;f==j$9)=l%bIJ;9jt@ zIgB$^!Ah>R1S!hGRP$uhK9+(Fmc4ThLbj$&FrMIT_JAUOT3y>nc1u%hPV3YS_L{ZH#;X`yFuEq;h_CHM5$H`L^Edqx@)bv86p=PPtOf7w0)oOPVWQ zN*?%Q(Qv<-B+MKBMrE77{*h%!8z9K_ zRY_~|15O{(llwwA4l0nOnOB$oPk?zo7cxAq-QZrF)>z!RY>;UlbPu`@NyLpKLp7X8 zL)~m+hitC80Np2P53N=H<(QW2iGC!ndP>3_(}!rrWK{+<>aCOn+5qngTE?+eL$Q;RWxzi1zdBs8&;JLqJDC%tp)QeWaV~35pqX=z@CW9jN212cyN*&~ z4P7ekFXYRGsvpD_{|m)M_Bz!hY#RTjHxI8Cwd5`JzmZ?n^Z^j;t*Ru*3YZ+tu~~}V zInRjEnmcequ$TNfbx<~f+uVIIr0}*t+bFw0DdO4ECz_ok+rLS{FiVsB(EEwWf{Byb{=a)sJ^VJ(Y%ewYYJk6lJnRK_MJs?; z`?p7jqGV)pup_fh(aj|H=43Ce{1G`%D4lZ{nRY+%h1*|~AF4#h&>pmJVcO?Om8 zk-YxUiZI{N+<8fhl{lC~+R33_DnV$dv?0|wmu2}Y+DFYJ^rjgTydhCS1nt9>3<_WZ=Os&~;Rrwrg$!{cFox))-U1 zYn5Xs&@_9bv<}?{FG)M&w&#a4w1x_{1GhyShS7@4M zpVeO0&L%qL*4N&l8ikMJwKMmiLANow#5Wg46hEw4dI9UO_M+q-^R5c9ofqxXHW745 z{39Q#m=yV6nE;<>T^U~&xo^8b$kbEx6Gbx}3w#Z{d|;64Ts9Tm=E1@LDeq|S#2MZX z*Y)Dw=&Pti)>-#<&2_;*8&m5EHJEx(lqqD~L+p2`mGZ%=^VY%6Vytg@HrAGaO=i85M_(xpX_pdUTy>yL~YCPy4c%B=VoH19AeBE4nk|*rcus72<;x1{?<)qi;)V zQN64q(9VHO;H`?EzN6AgY(m3oV{DN5Y+6_~TJ)rFvD8O)g(^jP=IQJ<>Yb<(dxj>& zPjwpubBgNbwDHjf3*OfE0_kZPN!?Dp5b3NqjA%o7bdS(1{THgI`l-|5)M%&0n#R_V zyMg!G2hmuw9sw{xS8FbeVd(ZU)Q3Z|T|Pi-lGdPS?yw z<|+ngvaBZfDfE-98;_80mE8?{!;RN0Pua$iq)70+sq3Uq1*3fodXc|PS)mjMZ&*8l z0aq{I!3v3RFelS{DKtU3HUYcl8yclWG#eEyG|EU<=fGrSSv)k%EJCOWQcQSL6gT zik?~i)v^W_Sm!!3{0)><_TAc`uyJZHeFyOXV4hIpqmgI0QPz#Mg=~htAv;)_rtD9) zK49W?dQ9BJd86V%>P*>0cT3?-{=Sk7_U-h7vaZ&UDbsleIAT9jKE-pYXoHyLLz7MY zY5Jf-mO0S85jrlcpHeJyBt<7LL|juJ_ohr7_*O3Re&tSdZuN|VngpV@y~qz|NukZv z0MZfjgfGg~mXR)rr>RpJ=w9T*&PXq$&JeVdT11N_Z9T)wmcqMyqtZX5#?9@}`YEfN zI?hmU@+-uPm*!e$TAN$W19Bh-e=Uy)YXl_lA$5kRK5xy=XmN7il2Gws-KFsg7uY~q^)==D`ELrc$449 z+CJl$Y%j3U+0)jxh$(C@fxrvsl8UP-*TqNK$7PcQ>#T!_%VLG^Rk2xlF6E2oH*Ywx zS2B=_`9>tEOq2K%&Gq@?*pJvnzzAXx_yO3B?l)^CtumebD#2p!YN-_H&CZeCCl8DN zLP-l7Z)SVrajRsCnzFjMPjb=npOfd`M_hNN+Wt0=2m1+9p?hEy{sVARR#H~M z3UL*D%01dy%iPnn0U1_w6FTl+!P(+48!tFNDPFkR`^E6T&LY!$Yu%E`8Gv!DfK41D zTbgHie!5$^d)iS6SN_eml?amie2c+zS=)d>MSnD6UJakLl>lQwj!h^&DXN5*x_`(o zWc;?j2QML4Em^|L!713tq($1rx~HrQzcsRL1?JwKU1GNACJIVCz)Rb<y)k9YK+AA<=A4zLMs%;~GBpfaMPtb{94E#sf!B(h;qAePr4+zH_H4be%VugQ&hh=w1i@V4ir_$5l}So=_Rn=*g;thBetR&>NfX^gOv;tw1@I(p9V}!! zZ0!Iq74%ll%oS; zr~c)E&p=h$Lor*@S+NwNrDJ(M2NXD-vYq_Xy%3_vHty3nml*3>2p+Lbc5d*^FxGJH zV!w4=PV&^3h&kX%N3hsPv@L4xd|7ru*a=)q#ftNBEvHVofn7r~4o!0o!G}YC^BeQk z)CJyGr_2AH-B^0nxeIv4US~~aIczhLZTOXpS4Ojah+Ieeeg0H5*ueBYaLMy$;Vk4I z(9IdjTkUxv%PcxZ7E`m6e>V)+n70_dAx`t{Qk+QFNj~#?yO-NZQxRAyEph?wIdK2L zb8`!9q}gUm&S2=JcsH?%SZ``kSSdZEn96_8xm%`2(t+#X?$pPk98W#$E6g|E2pt61 zp$Z5tE3>D$rz*C_)E$IYgxq; z!3(R;y%N|Vm|67QeLRg0p2xUsP?Rgwu#aJ{Q|xdmsbMX&N4?v@C8Ei`O2@yNEdBv! zP4WS`CODFFPdO9%$g6hMP_zZ6O91O{aYHW|IL!N@IHMe^_)Lwr{{#I?1cQBqZ~476 zvpf#6cSTFCmOsINQ|53NW$YA8lr6A4a2Ytp!ok9b?H_ue#9P)@(T8ZlKb$_ndrF*E zfoseCtz?rzr{F{Ew$7XW>7Fa*%Rn*EB9z>+dTN5CZm=v9ZRG6kPD?q@%lE94_)4Zb zHvp@YZM6UTTFMsj0_tUHTO_P`?J!u+;@M&$B@`ZXZ1+AF5Vi@XK0>Y- zDYCN9CsV48va($Rvf>7#W@mNJXuTAn24q;|J60>t>(IiCA(8>aS#UM_MY5FQGLKvx zRUG#(bc{J6Ab@7>mAuwy17{v*H*zR8oL-rsh?mKR;xlXXt9+^0mHBs6Eb5e!9_x@c zPqrVQE!e4b0zcsv$_;^4q%Yi!`VXFHXb64qkEOnVzd;M<6!kZM2df^w!TBXno6yjG z$lMU$yVYp$3H8k=QkA3AK-Pp0-{L8k)xc~Tjk!rh75TTfM7b0mV{eY#*GdI?pH?!? z-4wpXsff5$--OEO6{>UCB7d(b052FiqkTQg;W7Gd#6H&odRpWhea?H(-@}bEH3Id8 zHT9|Sk&^bh;W?=FW~dOb%4@A{sTgYeS;>kiO3&e))8-U*D8Ni}1#TuaFkQ(*@+Ryey$ywFDcxMC7{6?Ev zw#kkXN5}%KNO&yu7hEV>!;uAMgENvX#If>6#uADpF4k13^UQzv?nWlU7JXarOJH5{ z|8|%$)sjH>1an1$m^a~#(!H5K$n)TF*M-7QfL{M+4(e&k{mg78kLB4-&10)r!esv+ zCtk~~p}U!|w_os}w{84@rI{qlKilR?Hp&)6`tzG%C9-FQ!()(ZhF~FQKHSQ^TKPWM zq;L#a18Au{#!csBgQqPVnuTheQRq05NwNjKfr{X9IVGH$I#Kkwv=^^Q*%fa;2MbtO z&Twvl`Nnf-KY5i+D4Bv8{XRB7a~FSp%AMe2d>Ot`vMALFRwW%rul+n(y8AZN1pW`N zi?uIl5j-fKL)kUmKRpO!gxh$R^_uzrs39G#MKL z+)N6~pSwQ-CUFZ_H&F{9)!HeeoGk#&Kvz#I$rjLOJCz z0yL1{7LRkU0^WHVSG;lFkxIOAb1&jGbX2m=v{(`+mmxz%Y;1sX66|qaGvCaRT33lz zq#jfJKx-lUeIGKnTE`{tjtbPp#Y*axmx@#PZ@`=2J^PmQe&sNDz|vF9BW{r0!5`_5 zp&EE&@DKS8qy=k{{}HsRXo38s``=7gvR^;S_8_^LPO@g9o>Ws{Z{VC@7c|=}bIBYp zZKC2$?mOrqSIfX4Z%g>MQO((66LY!Vx9D7;yL*sG1ErZxu*VCQ0E4mwl0N=H)(x%z zJPsJ8sB6rD^}G`@p=zS|Z%z)_&G8Yvl3EPz6yFlSa!K(B-#Oo8*zWHIuZ4&6T7sKJ zr5=8fx9k9%qGm(g*}a7gprwkOw7159_=kTE{0%WUw2gONA4awTHB1=7FE)Wvu%G*X1kuieB!NKv?{(3cT<3=e_?$WIA zR;Lw5cBzfp9u8gc-=RKU6(UZGfJt#i#I57Ar!mKf3MDopgf{ZTL+TWhKg|`c;7=oICLx-&xpBM-*Y5(wXIKXc^&; z@wK*1$Yr`Qe8V;|${=wKZJn=wE#59{pLNo?$b3F|&K9BPbWiy813P`0iV@nyn1|Zx zYa4zE-q6`7GWgs7r+c8ahgQm3rV?3>;w$(9>v?@?$}K#{cHDhQ-_*1%$trDxI5iWk zsTN2z!v53QL)cqQYB%vW5^Z8i_@?v&=azVt*Ol0pj)c2Uve$Xy-1S<8Xz~kxBlvXra!4Ktn6^cCd zR$>6!$(n~>){OBjLl*I~>E%J5j_<2P9o`w58HQ$&wZWvXTfBumm}zfVsnhHHJ|x!0 zAc2_FF^)yqAam5YI><#9$=(NVR~!v~kJNK-^Avb%!ELc+{{QHqp>XDZy7{q4qJu_^ zeswm@JDxPGe4^ULzbH-%hg0JqwxJd^9lwKbqMMVyeOoCE9WLmcQ=jP|nohu3?bIpd zGG&qLWTXKz4E!3=I6G*TQBwn|?7fnewqL-mNC8IDguOyINi);-GP{YbFV#A7IGSuB zmZee~hy@itIT+RLh>s>Mph7584O zYxZc@6+;zE89fM^BD?dNR($pE484|)j1Q1c#AMhQR*~Cf8;V5Lg?Lsx75+0Iw{qcL z6b-d;W)vEjI+3+>9lVU`gtd)y5kJemQFhDGBkzcBmEyayK(fHA0`*EYF_67O+(BJi zxCFh7m-*zDkw_z6YDreklaSe*!Z#^KMmvNWg(Zazz^L>FYA)?%{plJ|HlQ+3w-Fy^ zA5GqOD<}njf_$cHKfKn<7OxT45oBqlqySftZ!}P0e zkE=JU+_{9V7v>VBruWp}_9cW!0O2+vlrzI_EJ765!Oz~m6jNLVyU&cEX@R~F$EV}N z%xhO`%@cs7_?K6obJn>hDxhb1mcg!~U)T(YmEO!FQ>IE~vff~^cN8oM)W%r+x~f;P zKvw4fSJKY$uU01Buc;Rri;YmWl=J9ZG|5hM=W8BOCnSB*>ri&qcZ)i_Ej${&B0G-S z%*(>FO}o{niP@npQlF*|wa%-EI6TLAWdM(OVqPA3TX7T3Po`KpBmJ4>_H52btEIRp zJeJ8rS5i$R12QfZ-Vv_}*|_ti!l$* z6vbU5W#eF5ve+~psutNplo)^qQC^^%_N=IXFw0mY**oEorwtRphT=*$5ByucL;92l zs(NtOgKLXUF=I4cMU@&B_p@&w`ww_081|>7EirEA?r}|pVZPO`RL)h^OWEpeB3SNa zv{QiQp^>UJ7D#!RCf`WRIWb;<>oEiX1WwUJkGA2ju=7uH5 z+&dCdSC_J8i9tCnz#5UAiCKy}MT3K{i5-QY_N}^5TN`<5Yj5~RSrh${F6jx-LC{3;GD>);SY(W?7 zZ{!8BMcS8|s9h6WBi$3IrCy2qTw>lk*bz(P|01R6MRBdfLupN>g?b0?I&IQFB^l~v zF79ItV)7#5V}SS<&Ktp~sLY$ATLFs_m2h*-C-|A7MxwQ%4Yeg_Y@#dtwo+a?MD?X#xASXZX15_{P7wZx!Q-hE#a}Sen+Tml? zo>UF4-}y%(Rkbjux2rCZ2@h3vhr6Mo_zHBI?kdk~61)>C~fnf4A+mdf|yRP;Az8SypA2^~)#_S`O<%>F?gqCE1I*1OJH@Gx6l z2khozk5luY<5r684L3n9mf)!gv6RdpJ3Hm6M-`8Ovecc0I@VfFcVk@ghs4SsT)`6^ zu{U9lv8%zRPN^lo7~p@dKnmX(*C*4-_6o6w5;u{wOF1hk@NFy|Nw#BS;JW>jZprE6y)7BZf0(kz+KqT*ULc?6=CQNL6vwWz{eenT4qhPmSQK$>63%iHY?$>i zC7YGV+9lZKJYarfJyaMed@5ON-67d4aU;0xSjs&66Wh7WBmUF8o!nX8x4a!bTKFyP zREf=YUU)sr%}FWRK1DKiF!b3Qf=%)4#00?a9Qp6UZ2AURP#!d>~CE z;Mnc&9L2MpSUpxo&du=O#8kf7`#CK0&RBc4`fzf)a9CX@`astLse*P_b`FF+N+8B~ z!2$d`@|b6_>>cqCrm)Y+PI(>dyM|wBqcRoU1XJQ2WLc@p{k4e0ntZv>sY|?&Wq9bw zBXo&iM_!)3%l|1l3;(p$zYW(5#UVff2_#6{xw~|}&aHEIclUY=MFIp!Ac0_Q=e{%d zo$bv1%w5mi?YHga{TK52JbC1M-`B;AWL8L4#ZeJ!x$S{$&sz9Bf`m%;g9QL&~j$*m_x3LGorH%&heSBN!f=2CMqkQk^>?o8kg_l!> z^hfbtd=L<{H<0#leZZdqe*sp{QGQKUOteO`u?W@=o(K=4(CSRZRObxfiMOAsW^v2l zP8ciAP}Kr!_wUFFz|zB zhgO<7%D0JMQ_`KiE7v2*Oh-q1HcR=LN>7wzr;%Dzi4mN(&=%cZV4(Ds)Rpn{?CBo-Ob$7s5z6s($+*ABZea==0esB-bjIF9cJV?DP2KDPT9l+1< zl+3Vm7JSj!8*7QSSLm!S-RoteRLy)l*oN{N2*+_owntZ>sGxp=YhnXqa<~VYo?Nc` zzXWYg^1e{GG*XeMCIXnXDcRincgYdbolzswTi#1{UQ&fj zfk!2bi{8?mwww&E2rQ32<$NW76OMvW-qWlm7RuNQoS|PjIW*-fjc4zN8YWfs5Yfmp z#k=qcUnbDUb;7(NG>SGbB40LmR44bHfX8AAL!oDe7_dLA+!37+F&pKoI{wSXdcvi| zc6g`1Jf7g64*c=Wc2y@nlSI&6@#$4CC=hpY7e+3676gy!4uB*5O~TiM+rn_PLpl)a z6$q0?q&9s5LHV7cQM#M+tl(_0Ek2x{BUhkZ44KRl+0n|nAp#i1w&e4}Q{`!qRh=G&*K*`FhzH=X>832Bx9P6THUZ z+~lQ!+29LO65-=F71g0m_k zcSKpC`TEhpEmll3QhpMR*rx|OST^|ouwsDnm6M+&kKpOyI%y0$y%03tCihBuL*qRp zTrDo~yjFg*{Db7ea}>K0uRycd|FlASP5w*Drs(ImXU+tALKiE*%y|JFI9VAH3;j=! zdV(w@P1V_<);yDSgFDLW3O6z%On3cSrpLrn(l~e)L%W#6*Ki zseK>1qpY9ul>SaSsUEtH;y(#O4-%rGIvKq2|YCWgnS27#D3P;2i~%EgeNPV$|Th~&?H^xRegr`hL8vxdE9I`7LflP7Ey<9I@7+nkMb1P0V=TI!Rin z6`;r5{zjpK@;u}3$P)5&tTwUUKMXv|18ue8*-<5@HGSBT&5YLG#FEvUsF3iWSk2xH zYjkzf|HXIsx)PY*&%cT^Wy^ejm|;oJ$prss`O(p=mo+A4NhB0=T{`(r24M-=!R2>)~8A^u`zMl>e>B>p=+i=>QA@cYPhfq>EZ zl8L#YyZ-kUnOYUDrT*}w-t@$Tv;8(YpFBkyI5bi5Mab}l%P~y@eRo0E*6hh zY_s}QPRZur9NA3AB*QNBF4@aE&PAFX3G@9=BwHOPiWgZ=h@a!1L7Q`g*>63;bS<0~ zr@sY6G?4DO#BDCDDOA#Ph{5iG;x_gQ!Ex(rb~KpFj8<$-s+k&r^U(E4E5zf4ElkM) z(6X%n267eiU2E`<_%ULadsq4Aln~s){ZW`GoGx+!Hcv{KwtOV{%r20dDA514tPxZN zJfc5QVap!=UE++VN#S;4WZay1M%dnUoR_9vl;E>v!sQggk5dhbmwNj{+2Z z0UOB7(3V7x+yOLzR={f4ROfV3ZriK@P4`q29L5aN8b}^3&2rE1=$V<|UydYm34s85 zudK9C@Bwd){A+jG-`XZi9sxV!{HO&cKyyx2B-v;m?CT}X=d08koIcG?enHBz^nJLH z3(Gy8U8drM6~#(hUD*wHlJqt{pBZS-YJa0=@}tJ&V2*JD@TiPOwsMX}9g0_ubJ{+J zGyd)91^#}?IqV(CBRhHKY9|1n@oU)mVn4A2l3bFSi`9jP}_Z)Tyy3)NH;F^_&(VA|Wen>>w zINU{37po2PvJS|LlV_2aLyxfeS}uB|Y@v6yvX}ftoVuEcXubDU@8J~9G;KQ=c8xI9 z)Yev%BO{?@RO8G%XuRRRtsgX7U+8Iqc)TLr-_Yksc4(aXHQQa=&E3zwNW3vLS?9KP z2Tk~Kg-G5t&Z3l2Ir8CwTF__ht*n}ysTv+O5;Woxq(C!1-cNPmUE=Rq;T?)LsIpxAyntk$O>E#*5TL~180 z1L*C38^4ccYJV9PFUP@BQ(c&S2PZtRCrZap!x>3%MJ_H%m2>qODMAS z&`R+=bPa!p3@UmOzJM+Umxtf_CK#UOgY*!$Q`{q+1dDY&j1-gsv_pSuWV(A?Ar?vZ zhvisq8bpi_qP;Xw+4 zYL-Y5_+Z{Gma?a{Nrc<6GkOZo^5s|;(aU7poo0W}>=(fg!TUlU(=bx6Gy!c{yeQ~0 zeqpWyfUhSecK5-AKx=(TFuPZuzuEm(*M%BJn)OfUVKF|qQn){nA*HIL?ptV{TCKeTHOBXy7>e;p%#Axb?qMc@ex;M57-5svscxDy*5Ts+g5p)hx0;@EiWhj!z>7rbu zKPRaltWnrKyQ};i{64d@OhRz5+khE7@2n{n=`RbA6Xv856N;?3z1coNcwy8)Y)x=2~!{)DY6&oDg8{tIXlYbW|``$~3D zM3kKrldHbVHltmEU6T9S-9CYOwEZ~Si@6^CjzR_JqZ52rLVF#oH@Gp3~Ri)~kybQSvq$y{S zBk5DxkotpRW8AH4WVVP}3vU}7l!CM=lO^d26jh5DJmP8@H;cS+rQlZab@>!m4zM8j z02(J;=3J%ZNtuA(TaF(0gk((_4>j1kPBS8+m88dvP9G`Jya96x*EyG}TQiMSR*6HG zP1J;ExfUauKtp}pXJ_aV9Sbh<)Rs;Y4`R6fPrz%#UJ2@N8g1ZOf=<$T;OW}gX}8mU zTW&+Tz!YYX<(y!oceQm1!WT^BErQo+{?He!T5u0+f{&wTs2S|)DpF$oHo&_2i zvZC8VKg0{7^V#HRP%a?$Te^Gh<2k;en&Sx+`Z51s)%EM)CX>DMCz+)Q*Ng;c6|Re%qfy>C)Eh1c-Xl8uoN>5`QddCTg8 zC(wL(kAi`8p7S+QJGF$UVY9<7`4M_duXm@VntkI0^%CAPGs#zQo_u3z3q?oKMA6>(U{O|3IxUJ|AvQUyBIs|r*y&ywzw%nMCWR+h&q5O}vy(1NGPMooB zO7M9a!f6#}xy1@6)uaLfhI&Ss=h>pRTLdK>kw#wY2$$aH*Ji~^i+!3a@G@M5A;jUa?OW+bbjHiHdf}ikr z6_3Ta-u2vas29@Kw9RReEb=@ibKyiNoOmgvV|j!cQgMn_N~E6Au0`dGZ3Pu46kk1j zW}@Oer&Y-%;+yocuO_7=e<6@`FEv)4?b>GLOeSqo`m?x>9_LXNYpD8Mg zH<&JQ{_+|)R~@Q?e3gPv$}#G-bhC7n{7*ik8w?zZ6VtyWeN&7qtybl#C(CPjcTwvV zgL#LfbwpE=#%659A0fN2i~O46Dru!WqE53l^mdST7JS!?7yhrHpC-?-T=apwEM!x9 zikC=hxEGXP5x&PCc>`h=pHc8IMNUMti1eIzF58bsTYA4^l(#C zqbt-wy)V#(exMzzZ%*vjELHrJd%_*aPKe8Gb&1AeCu=qCgZll+pI zfhdvW|3}usFgty{0rmdvQ(;+ji}>`kA(m3HH*}kOo_?Tc!OV(VZ~m}5-JRKVX>+D- zuxE_N^ibwX>RCnXQ-I@>yUGiju_RoZ9iF;M{cq?g;|lRC238F{j~t0)`KzHHI>?vi zPIvwi`%GT(STfOeiycAtglc(S7#737H97dc%7%(n)Sa~2_!z#*Ln3W8%BV*Xi#G6& zfS!eqK`^QZR?;itUiK>O!6@Hw5xi|(htY}aKz=YqZb$27oD8NX7O1T5hyFnHv$dV| zT6nQqP+1>G(WMfSzs4owUkav?wTQw{BDw`pCd~xcakp7De6z060jh<%2-E5$%OJn=zV&Ja~s@@UI06gkIGhP z0k?H|A9S(gZ|PL$y1?_$MNYH8!_ZnuiNBa!D<7F~BvfB=Az`oXrp|&ne2s{fs@j1e zzG>vjz+zVbkwk}x`d~j43w5`BVc?u&y7&pY43znHq;AR|2_7_F#XA@>Y$F0YD?92Y`AUp4 z^lc>KNE^u)ct!9JF%@`^iL#WT;~^EX0@)B~sOlHHP%yRZg7Q^hukMO&H@*pKfUJ|V z+76yc#N?2LJq`&aVB>gb`-sh9|@` zWoHGCb(3A0=xaqCb->e*{>Ru7`+~i4v<`2fj)k^X_K5uLW3!4_1x%q$W77lg!&Y*! zWr40~=_|Iq`YiJ)G}5sM>Xpll53e>m9)WWwxK{;U`Y#&1N(eh>J*1CfmB31La@AL>)3GBq zUsD;HNCYJmf>1hm57-!0QE!>Hswr-lt{*7!Oh~sI=4(xnMY2)p{~0D|m7%=i!IWCj zAT^>LQ}eb@0>aF2B2#lku+Trmn=h#4yF?9>IKU?OEB08yPCs9j16KoEi|(@?=_GV_ z_G#T!YD9jEcx$j$;ls!P*`{bFbs>MRdU8DZ*F1ES4*C~n{R~#cS+dEZlg93zG3KG} zlGOgjvE&J~GuCThc!>U2+>*u;wZ{Rd9wivW*>`GwMo@ zGyTx#;QY{nQoD&uyPV0|9?VzH(()0UtwcfeL&`|W2e}0o2UxVb=K8J>R~#{ro7JkUo?}O9vX)Bsi8d_SD z?GSxodg<(ozL5;1ntO*NCt$xN5??n*dii1qP8_3K7e7tzF5Zu~ac2hH_I80r-iwKw z9SeyR#v^Se)InXX?};gNp5b5h7<`%`O!Wh==_%$? zA92s6t7u!CdGbY70ahrCl?R=F6I1-!v>ZfkUR#kst@E6ej+S3j4Odq{{lYXjp4-nd zOn4OArA~pzczfY@;EcqVd`c-&b=MdAUjg@^vA(e4FJz0w>Tl^#n1ae?RD0=4aHsGV zITN`9TA^R?GI~V%6y2@-L4n=yW9p*xtL!fE%d!jY#FUV8ps}(RB&lym)JFQb&#H2j zk2N!?UD833JEHC8W=N^xFL7b04E)R8$Y+#p1e;L(+1zj!oL@LpC=K0LT9Hfk!~CbV zp}5;#h>xSLYJSDD9+Qf9NajM<)NytTdqMt!sswr{nhQHyx+gC*eQ{kX-)`i)bI1Ws zpvZq)y}P0lAnFkO;ruIoQ)XCfj;G=|3^ngO2;v$r3-B>zE_f}jt=~{UqEkzFTONh>v zcF+>f0YdG47V6|3QND$f1I`jtNd@BkP#*f69+?pJtyi(?gtFxHF%{1=bD7!>9WXGk zsra{$A5*F$sH@;q!W-ajeD;vTNwUO}`#|oD*QNE4>F_(X$lZv#8`+LNXTBx)V>8HF zSvkDL{JT!N>|=GJsx+9T?@#_m?ZDPaABa{OW|>R9x$Xh{8Hqzpa4^;TQT3NUF?52` z2&Lg7V>_rJ%dTmwzF`&W4N1>SyXye`EYhMrmOMJzR=MAsrm0Jf!xx4JXFpUnA>*uM zw4QGiFiQZ-T7}zd;?yW~i)vrE8eUZSD{kvKNABeG5zg?f%q-E_485$k*~`c#%PQ$A zuq8*sREvdhE>cb9ItB7k-cok7S*-g{`46xl{KvDJDfK~tAEZn%(*H>F+YnX$4);R! zwmRB(Xbpi<)IHjVamyyrZ%B{R9BU%WfZG~?@LJ#E$_|oTxM8@RxE3`&x`gcF$gIGO zSK%|5RSpsZRD`T2eAd>S^HIf7&}bXFul=T{HRW+H#4O2QmH-NOg_xu_kMKVgxXRP{a+?9|E5w7bCx2!mvtg$V>*N(FxFh@`Q{V?&Z-- z#zdy3csMI{iy11sn0*-=!Cu$br0ztU88fLW(`w5OQA?tqs7XAvcSP1PpplM&nW9TX zWqvcm0BNanr=(a|FW&4L8*jVSG(5`~ow2mS7g?h?=h}eJ%v|I*Ic5V7RP}*YoR9gJ z(hsQPjXnG{tkun|YOk<)ua;c%PBx0*eDaxbGq)u;7t?F4L7sJ<_?D`XyRVW`u5k27 z-j7}vKXKDxN~gm|N{0}wgFVq5es4kp&F|n=v{ERRageR0T~)0qn>5X%LL=_YVKqMq zG<%+V4$++zG3NtOvY>T{C?4)?gj8vI(VL5^jR&#*sz2d#hCcQ;f+O&-vg(2d;UPN6 zyIaXPf~-N2h+Oo4-`MRQk1w>C3Rs)xQVeF z`h<4iN%mLq)JIXEOR>hf3Yv+G7QVpu(POm>z;#p=pk~)YsX@1+i83`56AvYmJTJ?q zBHN&Al3T&|;2HLnGy`2BpMsCaua~WNPjq{jPpZDmF7ppn1uSAFlII+2BxY3s^=9f0&4c*naM*a!;9JdhWygQtXRfytB!bx0bTatf~z($I5np`^Vz zs7hAg2Cb!~zIWK7t4Y7gPeG5$2WXo3d00bc1u{$UG*+hU;ux4-EIBT(RkGJV4HckS z(qrHnGGO&v zwE{MBG{PB>2(Tctk%o@#`bxeHMGCSE&75e!pz(;`spcF0i@#gN90%2NLad;h{3Y)V zU7^{d;DY;jbL3MwOVwv^FFrk)C)}#J8;IMo`SnNwYoMCQ&!g`M+Yq%>bg>3}qkUSs zKn~MwktAkn#+Zb95-*qUQ+V=~ds9w(XUVtnYsZ_Z?Ku(d96k?tYR_>v61J7!$7>Uc z0jPjPvLP_QUz zw&fFEoeYVfioBW;e#^cjO&?&_0 z%eGopl@*QA{dc%C6fiy!FMWOQ(6}7SIW^ zGR)3rDTnxN1$C{Z+$4cFA(%9YSKD-vGbX{F|6HELzvXTx{KID?=bbYpd#qm)+GLEu zdzReDUsiC%65))u3JM?b{;7D&TgH2C87V(idcipu;AfmR4d8c5>M6u!l=yz}zn(nP z_foyH6Spl9<&I4}p8Vb_!Yh5}i&FDPmaY=L5_iBqnE5FN(cU7Sh?`Q=kpvVa_Otvc zILez-vCTrd?&trT>hh1WO;>2k%eZ7>lzS_!OR6M&g~XXqTCu=YtGwL3$8;R9mu)N? z&24QRQ6T1(TEF7Cs$F6@gD9_?R<|J8Ug*l;Cpa?sFGW4@XYMT(#`ImLeCZ+Lhj6br zDZfVPyNc1pP4X9td}ZTG4namio@Jez&ueFXUbt71CQ);4;=;rM(u30Nid4%wK$ntfg>)=74gHJsmDc>t$GC3xXMvx!55@%<+d-!`r1xbl&JB z_y;!#nxNd|Us^<2>K<1%!#+y?-2dImMHi^W&Zn_Ks5O5M6I3WdPPo3~67&lH=p5`? z>uu1s)|0b_|Szj&9*MNELQkLV=%wcoR=PIF#WkG+VUh z$}iR9>F)Vcjd?mtU>)(EJBw_P%8B$=fXs7@K`(+O%#8AZ^a;yVs(J8;Yel>a8;zZ$Agv9K3)ggxX5PmyqnI}Qf)3=4^VTQy8h?YQV>I5-UbRO72eN%2^WZ_Y4 zKl&g@hGnkxMxJjWPy^(+c7PS;faVIcg0%8pXpeb2`FFT~cy>~$@eHX#k3tHj873)C zhsS7J0gcK#5`gvv!H?`F7W=cqi9x$|GntflGHond=Gdd`ZMkit)XhXW>P5V{v_;$3 zXSFOX`V9|5b|}Qrs}_l_Cc6mPuj!QX-1c`-j;(`ew7o2J+Sey=*7l!ztiLT{GNIs4 z_i1$p{#oK3ewPFI+6Lxn_eplsZOG2d3-wRzA(5i8hjO5!5iNTxSRGm?nN$+D&N%Oc zWAY=avC;Ru4#D*NS)OS^HL%0Bl9yxVhJGsap_Z1`NN=cl>1+F!)N;CgG}o$fxb(vU zGb;M2?t+=-pmnrTA`=OUwE7M7*O&oN@Ui|$77eu_Re5$#77iPfGluv#KV6O6T( zQf4J|*r|7&O*l-7G{0rnRP`%{m5h+1R0lGI zs+yD`Wn#t4!WHs#a&E=pK-kj*ADnzZbxJ8h9f1_F9I7YIs7mqqy`{uZL4EQk@x;)^ z`!0||l`+HBucL1Ik7gWqy69%641S;(&6sU#Vjy+KY~1OO zd{Y8^yrv6*+k*~6g7P>tEz%=ydy%rgvRnG2VUoOAnZ_=YEY%w^t2$j&M^ld(Cp}7K zu-lU_LEiM=zGEeoeyul$d=a_?xl|YB8=T{+NBbTnbqFSkE4>pdD-_wTaqLOk1>GNT z55Jz}kosMCkLF<6VcEoZPj$5MM!d_?D)KE{FVw5NOQa1v0qv&v>D(TC!+L3ZXrHSY z&|I+B62ZUPpZTwnfr={@u6n8bEG^;{sjL~zRqsqgT{9&UkkRy2&9vwPY3GQA=$T+- zAA1HdGo$5!1EL)Ef@?^u1u6oYr-=;yj9W~WIE7jte9m2m=?YpAL(8+MS9F!V#M58* zj!R-6aXvIHbe!MJ`Hth$de|Q15%)KLC2T8w=UyxAo-9i^nNbPnhUA*36*{Sm4t}~v~;BZrWAQv<7=K+~WUAiq9(40VKlT8H2XhGcW^$+r;Yyv2?ad*w!;i*&HgFjTLcBbTy^-gr;_-={6R&;=6o&#umWp+jdh*hl$ zOVQT$Dq)SviF5;Kq#)!yOP-MS^l51^oaP$FyiakXC;SNe;VpX3uWgt3tb9LG-bYa5YY#c^KYA~q~p*a5%xw`TX0bRzpE+;Tq==D-8c4vB+Yt%4}gC^9!=2|Yt;6k@XWsgsc58o<#r zfQIDZA@;_2s`3V*DN5xJ(qgLFVz5}MMAfsR*EyZpABAVYb~KQ@)zSf*mhxO3@$6%6 z=(&O^07DoHYJ$6L3M3)vQSf-mMpFmP{^&?qTf9b87wv*oF~f=;V7)`7Zj+2>S`J?j zi0KyCSur0Oht7-po&E-Nrf&3EIV=webLnC{J)?tSu%}Rz2XGZi{Ro23wk$!hCob}6u*7zB1UjF0WWC&D{|6q4Z^%{FoN_X5Hm>_vdFKZTD%+ibhtPaOz-G$;5EOo%?-3gLDvkjl9KzR=nz5E;#UF;5zqp3tScXVukopV zfIIMI;@S9pP+PpVs)WAAN}$Y$45^!)#k=o^#Qn&qgNV=SwRt?#4qFehxYdROgc%}K>#&>VO%gwc&y;{yRlk5b=;$~hhU@nVQM#M%1^Izn z?bncNYmLzm+J76uzr*j-@sXmG= z<&36f@;tXo+0u~CkqK90dY+%)>Q{u^XpN*~w5zpV(mrIMp=YRrXOAgk&1m0K>V`Dp z4@-}t^Hhly^U`-x=k)>Pll%d)ZtkAquSW92=@ z%&hS4G#Zh+E`ezpMAle}%n9taXHlK#3GzZ&f=0}qwUo;*5q8f^^bfxtb1yVVk*Ics z{zL14tBiw_V%YRv?I_ap@&`#dQ#CY-mg++U2|0l6RZy%i-{!(k?gk6EeT)8K>pZBgV_S(8?a^$ zfo_uOo#c}I11?}EB(!JxD946}8@l4H9JRBjc;;inOta~!vaaPaFP{1iO*VYNQ^R*N z*Tq|he|(q3O%=0C2nsK2oi)qR*0$PnkFp!we28d)&oxzQt@uvZXPn7P*UrN3YZmGH z;BKIXdQRyQ&nab|uBr23@E!5g6hVeKA1DybPdsmdPW(jAk?Mn}27V~gI_l|Dv$hgP+!I`N)oqDI(N5ru(}O~_ z(@)E~Y??=6CoBPvr7~<1aLYXzn&EjG z3VE{27{?FQKGbFS#?w2w{tj}NuBqq|jPK zXjtLy)Q#dU_#oZPIHzifbw+3&u?<@%C=9Z0r)RZrDD_uqBYC--AKu9R=4|sVCTOS} zeB4GXrJ$X`B2M;f;WelFBSL;17|p-K`UGQ;N&4E3l@6a~ zm1S$3)TEcc@vJHRg%_n1clg0?jc{zP+R&lGF3beP=MK-`|!r(4dJXLvEzA$&%xK!^+iZP zJg_RFTCw&D>MD6muZo$ zN)NJ))zf9ehy%*LsEn-dFF>o|#n3w@9_)pe8`jz$Fr(bfslrOceJXklrQAXFR;&Tm zA$S%p66D9HDyty9>V{6oTyj;gmDD6HKi*z&NKY9KD28%up<~!r$7-Y#vQ)YQRl0k# zkFdA&RlFJ|(SM11EaH-9kmeP^<+8EhOUrKRj&6YRyRO>WPvFqJfEHCvKJ}Jp9>0NSjc~oRk{^?uf!3=1zBUy*F$hjliwY`({fHrm zkO&0#x)R|P;X_1M!~fhf*=%zczbDo_cpZAe{^q*C8KJ%zS$YJClB>*|l8H92GEYX@ zU(kCvD|}}Qj$%_x9|MW8F5GkCDd0x%lokcMvQy|~whR*wZ)~s!`T>(^A-EK4Bko(Y z2^5%Si<7A~NN|n9e~`OKen50I^Oki{5VNq@5QjIo3lz|5Vy5j-I6-3zud~WLn5J>@ zDStEi3A9qw0^T9Ml~x08&fJIpasFVJqIV*PqYIN8$CiVp&^&h?_mDU$@kI8f@DHX^ z`@i6M_%1!o)HPVk@HPVrtZ~lr&xC7vk7^frFq45=hAXK9rAc}?Ki!sO*3&HC7?2`B!RU0IbdYsTEgvjmg3+%q~ z))eX)2+XcFgbr7JPi&pqRh*L@geTH>Jm1BU@Lyn=yOV1@;>{e(bn)I6meF-32k0po zdc~2@YsdLOPFjL*LuCza&(M5bcTJp@;cr%+N%t~_la^p}*gNh_>x?J}P{OI$JkkfB z1!uA&$zF!7($j{wh8#v~2}k;BE(g+CU;1zVrFernlh+jwjyG_4fp>8PI~YlVZ# zbs{zWJp7q`R>{TxQQikXspf0WxVegN^wAh6u;2EQis-N)TDGR7$Ol(4`n0Um#CiN0 z{<*vof8{ugbYcK)$T1fgsp=DH;PHn3vNdDZxLR^&@-L}cvmfE%*+WXkvj>RDs>2~y zNbPPCu%X>#_e1+5e6~EmmF}$|$Yr8Bp^#=U_!(JAET9t#BZdpY3}#)W6W@kE3e6|( zQzFkYdL5c8{+F1@&o%51_QGWd$vYN4CVehxs~jm`UqMP{fyU~c@T{5`0SztXLac z8#)^K6j+duskefIsUJ82JcL(^JEO-9E!ZRKdQfw9EpnlAU)+Fu*a@olh?Q`r;*WK| zS171$?M!X=b*6dzkGccQC~8}zNA@9doUJC)JUKI|Vcu@HX?S0KL(Kl`l&U^HNuQzx) zz9*xB`*hdR&pEe6ZIqun0(h&sm~@YN2y2|vPE zDlfD~y8^JGyCmJ^H*uT_Z|EP*N(!QSN_)ctzqc)rl zZuL)~9+usQ4}`J;gTbkR4WS9%JgjbTQd)`qT0sNifb&^mUa%QGLioEl6TQc8WlXef z(J2KZ$)h3;_YU4vHNbez4jRV;Y5o8KQLUnp@EvR~U}7FCml|KP<9dg!XyVaJ4xu0A^)rXaVph1$C#GQiHeIYY8_3KC4@P zwse-yD_q0roPSZY+1sG9QaIQ4mV6T!5Unl!f~>TpMO(<0`&tMmxgkNh?>%)#*$1;Y zG>TCwil-x+l`o){<2A8l+cGm45PRebO7sz0ffN}t(D4bo>;&20ctAQunU|PKbi)=$ zmLi|14(uKEtiU2!+u&^97FDvQll(7-8f=G)JzEP3L5|dd8P)qusVD^P*7mQgM>dm5 zQ?{1LfE|gG)E1>3{>GOlEYVC;q=8ZO0U(81f!5&8!)Had%PupaKp)-;&&;HQs#SQW zKnC&@Sf%dclV=`Q@nWNBb;e2PfPAWi);tE*i$KLf!-9Ze%5CGG*LG1Mu?4z{sskG!4X zUfRv_Cbrkw`&du=ZXih1CmRuTay{Uk>$KyOZ#&s9^((O%s7+ne?ShP)JZ397tg^9e zpQwvyi_C42I8W#(Tvm|_oQ!d)wt|pg4cf`2cO~();V8 zBygB+7#+<_#r@&D6)DhqzPSGyIlVDd9t6+9r6y zKgsfiox^i<{qY9~fwjj4!i!2kF%jcPUs~Hz=VVInXNv3TBg>&@c?%0VhL(|ce6P7J zSUWnVau0c{@QG@z{31BcmO%mDV-kKiq+7=*w0US-c7ezv_{`*Ck;E}@iuI4GxtqoF z>7|7f$qG@bp1hWzcC8k}az%-iOMuo;a)sMFmfq+ez{DNp-q&uCWq;g@nUZ}N85lVt ztPYs_eGDameez7|GHo-I zF-b^1$EcqMPE(#&^bfe`+6lX`4*q3sN@+pE;4Jc&YY()cyce<7ldmu;ljX^ktI9JG zh2KRsPvn;UFvt~uu|qjJM^r$~QMimHET;)ZYd zip8qYm_8xDu>|&@{z&Exl#Uz~`DAZXDaA19O4k}BM`=;1({hQg<*MjsOGEX#qL&_@ zvj%-l^2G_N#Fd6X|I{qzh7Dl9vnlM-sMEg;ej)B2KaFqGjv*V!S8xh7pF}0($&B&L zW@KpENM-B%Q?Y%5%aRAszVt<&teBLzLtg-HLsj7?=2~gV_OF41nod$_uvt}8^eF#6 zvsyJEzZti?)S)}8165UNy-{_bT9+ewWal zYD81q5#$JYK!IjIPAN8yN4@a4_@C#Ip*2kFdW#m*90sQDYL`UAfvFiSby6$<9`U53 zcVsiO*Lzt>gUoQ`gWr@X)Qt{Z%X}?~$)koNDlTv#a5A!iZWJ5peh*((Pt^2|77

aMfdv~8p^TZ^82y6UJrP| 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%0DZ;nt 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

4&C{Xef#``)LRbc%k1d&nyi2YDUWo1tMv@m>)% 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�vN&6Xa zXKHO)Zlfb#(Kw)GUu8EXXL#EXdlT&+7sg`C~#Q?$aL8LFWWJ3&@x zk%NM0ndc=^1a?JVhW62u(&TkB`g|pv*&@^?vP{;6r^)&SMaY3Tr0ZrL6P_3QpXofi zilddimE{G_pq~0HJEr@GzZm`y9tTAW+8~wMUcAm&j~sva3iu?_N^Zv&IrZrWdBHm)^JWZoT-6sE=Nm7>YjHu8pv-)u z;$}#Pv;ji=T9upVE!j9CjlDu@#Ir0mq-MaL$g~S2r{XgNv&D_{JCOP5Gf-P(ANC*K z#XCO!+7J>iFMTTrA-7?Jlc3sEkXiiT2Kg(<7ao8dRX*dqItE3vpB0Gmt0}W$wFP(X zL*{wELF;t41kV*)q5Hu;#O91C+)8b0e;?-y>JDZ0q(Fs2Dl5l11fuL_!c?XZvfq8* zs0`?_V-MDjX%MaU)i&(VtwOuT3PT@7Q*?dsyZML1f&^}mIJ4r-bcftejZ}`FUX4w( z?=y(l{#XMAw0f9Q|X_NJYfX>74iMCA?O#|xyVHbQshRH+AIu+-C{q3)o#o;(6p#z zemXg{P^+{TL4V*f?@-1}Xw?OV&z_LV^b4-jOqW4EeMMsAo|2}Sk{br zMoZ|Fc$UZ{`zwbB3}LQ<3Byp{VXz&wLetUF2E7w3hH8gLdHb?6w=SE!a};3+egYWe>4x+boXMlrm^@kF&#|2vrHk{aDyZN>ZYbAcg|{h>v`X2@E3 zIY*~_fdfR>=nyc3dDGJZMe2-H=c|H`YEjX53j{i;uDhq>3oU-DzNR>9tZ--%wK|8$+p z#b91K_t(FyiLrUkJgro|$|3X(3jFP=M%%D+am>RhCB98%YS5RF1RDhEv2B?H!S||9$X3Q5=>c|uJBPJqnP!pVzI*}r7_1)% zg6@@swhuGcv(WaC*qc`;ewG^PTNjF^6U<)rD!oBAC~q&R^Sv$|MP4VMS3!DGSmgn z1v^^fvg*j^=>L36;H9!0=q)iTXPxSvvO9T1vlHqRT#5KUFp z!~+JnSE5Y0OXX+38@1u=T^wQU!ZY+62 zk277?u9R1(>p%!Q&e)6{V4IHBr@!bgfR(CSG#np>oI`fzq#cA6FXM8c$~s?v#{5zL z6T-u;F@Gv6Bq&V60bPf zK5z_)lM`Zn-G)G$XieW%M#0UK9E%)?5SS$#ElLT)mpD(jIKz&m(vT8MouaMCqUdC7JiQ@KSO zgTK*VC4-#?R~WtLKEN%+*Xib?XGM3JKec`N|A>mvbI>E=i)uQ3Se}4SL9c*mWIb06 zd}x%f{|c^%uh2Dv!l(>ehBQ}KqZRSGydT{+fyNcNnq|fmSBn-|GuS#r2)khW2pEIT zydpe?z2faFRNCE%j|M%%2?N z6&`c7j!X=fNogaNml+w1TC)09{YTa|lb$~ld9o1_4>JzAE8-`%DYvDwQulx$J6BQ- zu46hXSUOWPm==L0n!Gdjtk=>PH41sfR!@{C}%55tzLb z{~dagmmd-*W+(=0|Dfuqx0|1)&9-~9KIkgBZ_<96zTiHv4LE`K&KUr_vbXSBa+rAn z@Rp8RM;j1aO|LJRNuOsfYfY8ctu3LnZk`dv|EOB3I*UvYU4YuL0!wf1nW2ftrOEMT z>Dn85=vvu+HBUms$ibBzcyIEfb~((zD}leWq_P7UnObFD0XET^i(OZDwzfz&qymoL zcw>!etBKrzo5-&@u>Lwlx-0RESv`@yqW&D;yu_^M9>;#7X1bq4KZ8r@gXxjb|Ad#Q zh50W;ER`42sGXMfut9y0Tbyg7>YFHQZHby&7A=xQ-23CYt6F051 zT(*M%53Q_cq3u?5K zywlawPZVxcW}AJ$;gY5Si94V>;_aN;YCeSYXD>>vqQA9pZhhEQ#g>N1QEBRvA6XfA zTlj#y0u2j(te6?<;e|q*@`eI8xVG+0bTioo!Q>mEesGcgRF$0<)dAA;s*b_;^4A_u zaA4Z=$kLk?5$Y6EgL#wuKSk#qpEUmeaS9!50t5(euagdU{&7=l=2IPyT~P2>HC*TIH*&T9X|pXhlkn|f08uUIwJC2}lJ0)EvD zDPb`(<5^SCOsHyt3UVQ^#C##LjigkUXqM@!rx`K2@&|Gl8P0A*{s*gtH&djJ_3)OE zOEEK*0{5yXc}t*dRtY`FEs!nMG}aiLF5o+RwWI==LCp==^tF-$L_N42l(VTL8NT>9 z%`$qKz(D(LT%w7=MvM+DU_T6OkM+_`M*A{x^;Y_k&IsnE*7oUSaiD8po_JsUe^y4l zGR{%orMndyW9d{ywu?jPCXh=l4%S2ebX`rfgRnuew{x7P54Ssf8VvGgVxwg(O`2rX zRSTV2I>~&3sLMH}uAnbui;BDuNHqg#cfZOm_Hi_>42Tg{4RjMo#69}f@&=MM;0H-d z_RZeFWx@4Lf57+@AOn zXq&c1QJ8(6PV=`4b*KLj%_G_LX~lDAgt#J1H{L~P*;V8oRN#J=(^A}lI;;PM@rdlq zJ?TX6O3g_q2CK_`f$6R$z$iuM#0Tx4kcjphDgrkYYSR$=0_!d3U9veO#6JZxT~A`_ z$g1F}@N%prM8ubdpT@5SpF|fRdZtXgG$us^;6_6sdCGqxisj5S?kL?FYYY9BsVI_A zEy{PGY35ClExvtl4ZV|`lgoI2(4E`|pm3~P#Uj?Jl-*>3d$;tUZ4)&y`dWJh8eH)g z=+v%<)8eC`rqVCq!GsZ9A8IOr^?h}Mm=eQGec;oA0C9@bH#D*29QIn>kZ3IZAcEba z=|!ckvTk^9sBIK9&&9M@-N3Jo+fEPBl$;Uztcwavv?Bb{yo~(8{jB~4?4>^+dv17C zF<80PH(tYzP^s4|bP(2ZVHK{2cnZx&pbhf;7CU9N&RHGO6X1dun^OqK{Cf9p+3+7YJ-7LH@(Gx0F zFVQ-~?Wn(F(^VZ+rWEJc8Q4ktuz>K{Vsd1>(Ij#rFrlI=uD@8qL5z~;W4$*kj z+ek5-+cK`ES6MeiqHwjLby0h|el`c^Fotlx`xNp>x4ew2nTc{>bX79jIRf&L$6e`#@`SovQY$ z^9UEyK~pc~&%K8?wv5v3ROd%l*(M7Uj_rt0w3}(GEHx~GMUoal6$5jZWL;-|Q$Gnr z-3RFZcpsowaE7fCJY-uyHh?1ruc0vZF8(jvKGpOVs|(aLwldNNM@m-5?UD}_g!;Z} zA(>%&z~2;GYMf)U5d$h{USsYf0~=DC#-t6>?;-ro-12j0 zqzEp4;l(|N>0N;$S;zDuU>H*?AvK?ccV`TR^O+ZAe@V)ytr^2oPJ4|CQM|T(66R@I zn+sIA?sdW`B~mj#yg%JUe*@T@&w;ak)K}uKN>6E$GaGX%RQ zSzg@2+}Zm(C;^0JGd+!P73;W7gsXrbnNwu8^7IVCEB6fv-1Z)}r3gjB-@JdxB_-LO zfl6BZi!JEdRGZ;xOkfRUnqThw+Bu*MWLzy@Wm7aPeK=Pw}lZUUAfUP;ke!t2`!oCE1Kk z61PtQT1&;tgFn*VVpX<%m{NfkcN29`)dp&_2Vp*?N1Dw(rrqj)EIDUy&0nj&Z%dat zY#ZceqFzRcrH^Z3IZtv?;#EpBzlv)~*AgqXH&&H)(dUYT(t6LoJEKTp3PpDX;$`il3;x{qHec)*+M z?wK+Gbn({7_Nj5QFL+zMSU#9Jp7F*PGj<6tWKPCA#>>DXcz>!1t&RN=X&C&4m|J<7*93#`Mb7=qB4aaI1K#{V{lG?W zVR&e~JWS9WN9wZE_l+wFn$Ao72j&`1fytB)J{{ST;+`xGUf^~@2kHMs{aGuOwTW}d z8_}v!J+6__*W>O%CM)a&nfTW|0u7h zF9aUNxsEH0)X`nnm&;a}D}sXnDC$H;8hT{Z0UnYcqlb}e;tR?nx|=}? z+a*8h%tXIyDtyPtqRMvEKWf_AnVQQ#PkzLA5#5x6;8)*R+Tv|PEXQ+%2(r{WnYbLB ztQET5=zD@-?uJqX9nqVF!LLiT%l?-(6aI~op>cleOy>cP3Gl#_HB&*za!_nyfgiRd(f^!w`nO;=A z&_C%1@c+!8bsuhZOL&b?sAqw0@xmGmi!4L}UGV z`b*?;MOQRm?$ac3ke>rLV<2fqhmsm;s>8X2HPmt7QPfd9gZ!vVQ)9yQY=~N@xgE=O zJM=BdQL+2JC;ly98qzjfEY%_fz(=oMx7FArQ5#k0)5$00t2MtBw-cl>rM#A*N1{S* zqhK8R&p%PHCD6>13nAcD;FP8{LZ>>ci^wlksIw6{CvrB+E8FJDrEdl(QLXrEs5|x2 z^9ki743de;s>mn&D_qL@gEv8QRy|yomr_oQx8!Gg>Lk%KNvu0th zK$9-ba88fszSS!t#nI*1GI<7-^5uaFcH3lM-Z!+Dv=E=GD`dYjHK2;ZBRM&N&4?-U zu;qzvlQBPNlCqi4qAWt>9vCS=`e!LH6I_+O%+N>l2Rx14!)&sh#bk=w)@EK)*$vfH z{1US%J&&3uaj2Gh(~7Ia{{*(UKIqti%OLHuDF*xd7#6T|;yb9%-s{*4dKA6S+*NZ^ zv_A8Nw$xARx6s3&8z6$-#q*;rs9bMd-K_W&lNrS*jq>&ASNA z!ba$x#z%pDToJUMkWXAekNB#|jY>nZDS0gVA~cQ|tD?&NX{hV68B{wOrP~HqA{$l9G-Ht_6c}8LwL$(zw2ON2 zWpEGVG%zlHZS7q}E6J6V`=yThif?r&JJf=i0d2OE#xWGv#!GpBW=6)wTPWK^e<`0O$AiiYV}}1YxjvZ=_4g!< z4_)Pj8etGE^Mw?z*YiK@FvzD8l^lFopIuj8h(VYBU|>*NlC9w}YIZB+vv~ z08O#glHV28Xec|w8TuFD9<&tgC<)K$$t#YEW7xufpw|TwS=1x&StnR4Y83X={ zOoVQ`PU6Fb!-S8qD}jfhe$E2bBYL~3zi^{2hf2yCM1|^ETvO<=#^%|Bz0~D0a_1?q z2k;%6N^w~>w>6L{!;xz~A=5%aYDX8XW0|2Pv41kkG_9dJU;*cN#sqIq`2fKK)S8G0 zPeDn|O1KZn<(ueK&(G)6?6KYpe^q2sOt61IZc=eS2KB63#O?BjzJd5i^^79Fcys0f zYMtnLv@cudiQ-q;ZV$54cpV!juq4Vtm`kl0&VGlHqiK)!*;Z~}n8ouQ!^O-SJ2zdr=2JlOyJSQn%$GL;_Q1t;D3W?OdYb<^_=bCaE z%c49}^qL8%Upj^mf5sY<*JV42LFlr;@(PdVlC6Tyf)9qi_&Pw-8EfEtV1Bq~YVr+g z*^oFGH11bbGY4FovCQgX+kwav!*y_)?FT$r+6Ug3GcLYKR6t~@7ewnD@}ifbX*v%u zEy1a1$8E%aU;T=mrR*oZsxDx4(XwdBQ;WK(8)o|}bUeUQ49QdaWMRGhs6i!KY4{R; zQ2sLD)c&DpOH09DX;WfD#KL7)q@$%y9G|G7ty%HmtWUTJHhYz!&V-1W2(3ehS!XH! zVvZ-4mD~s&!^?GQmS41=b(+2rsL$vtbjo+$IJGr=otcz&Onrmt?>`D{65dX6fa0tm??^p8ezDVWL>N{Ib7JFd{Xjn*E7wQ z_^F6QH>uQ2;y>u}d=16TprRNM_Yhc+m3W-SQ|G~=Lm zMOT=fW(Q}6uMwc0Y65rs|I7_@oj|F?*fbWc4(M_36~X%OH-_>X6JZnq zj)Ep)dGbs+;?9VTq|SjK^l^7GVc`~<&IE_RZ8RmAGYX_t$cJG+=*yH2o#DQhmXsOQ zeWZu!iO`h)Egs9GW7>;P2k)1Em*)o7LmB!W1{YFD z=jYa>o?|GQBEHdsivIO9PwrzUZeRg&ibMeWoW2V*JN5$H zW?W_%B5m&3kn+MG_Iw0tAw4rfsXNC7%v-kBvQPTR`9k}Je3Q}NZBz})&Q2WVU)SP* zkQ!>3Aim4H0Qo##8w>4-59M!>=el_ES)Tr?1&Z_TEoJo_v?d4Rt5>;uy1G$y(!NuB z)g2=+Hjv&&bR>1*T(2qdRQrl}hG!-k>3?c}Gxbf;PV)R?h{@o0Oasrwd#0K)O(S5@ z4eC(|8E$0A&tNCN5MHWDXkpxGyee%U0ilN+4fQQfhZ_L>Rj!CNGGTq z8K5{=QAu3)UW~K^_fz{z2WuDUL6Qo5BGkk=$%4pG_#3q>WewqKX42;?4urQQwkZaA zCTf1#nY^)2#`WF`UmNH>cIU~ zXA;$p_OZE0H?`lltY~wnc4P@usT*pl5z5GgXea zoyXV+uM+lWZwSUD?{taSzoE6x3HEKykG=v+fA}+RV7yu%YEnNcFrV?O4 zzKOq**9>MOiL^4jjkR;c5NY9ErdtiANPB3NPD;5m#cHRuKRuQ|s`PC1t#spBQ|j{# zjIA!2l>AJMQ(ZG7;jnbIy+R;xb|yJHxMe)P!|hyJnl9Rey|N0*VG#~$c`s}mywmIlbm;c;z}JU9?=} zVNdp0_~|T7>7JrCzGFhCwOeSKK;qkIk2+%bZ{Cw;4~WZpv68Ge<{mDCaJjU#Dmx{M z?g~OS)D+exkSj8PcKv0)ZSsDHRj`Dt7`{#1mgkuMLUF75j(nxO9Zqk@?f*wOFLzfZyzij6&%|XP#w&`EdzfaMkjcDDK}b z9Z;dyoWrjpUn?h35-^uw!BWFdAWQ>H4dkUC!H*&*wSPff#dE~Rs6FLH)BwW>BbTX8 zJe3Z3;Y86sC4E zr{U{llkj*Z>CH@(2TvwiX`5nSu))G~ZFyoc^uw`7b;bA5;G?@l8^R?ZCfcPvm&&CP zOoB>v*Qj^KMfUDc4rO=B!U^f?$XtH6*jCk2|L?{z@EXacq|1LnR0m%VPNil=V)Xl* zH5E;zACLjmDDh2Qc2F*^q`udlUkP~ysr}1z_NJ0kF%-`-vRRAp!=*q%|QOcMV&U}y}}Pvy>;ki9Cc4%IaBQh&fbf;S^- z7QYkzFXBY2(352=vyHLZggo7;olhxk9i3l{|6?74eTojc0S0|q63fJA1+xXO*}tcD zA%Bvqz{c=55j(95e`9$;cxBisO`U?^QD9Te9??cnjNOGlhd)?4*>ylKSIQ>_Uvxgk zdii&-SA|cNtXDSEuac!%hNuU6ZQ{S^Khl?$4mD!bpy&pzOje(GsXjo=AP;HYU{&#+ z**}dPvNQ=LGcgjcpeT!IqXeKvNrjQFxra|_G2W>JqOuDK12 ziq)rnSFFrc2HS*Mss3`}ih;W23Uy+Xc7x$mq7U>8+!^W#rQl)W!!FS6eL zI;>>+gInOSOczHB<0$hVNK$dZHbCpu>gd-%15_%dgr&}G!}wxOsJ(Pzm-^uL~=|V)1uO$u9a>Hih#Nt!JEohm` zXKxal5PX<$`=rD%;~Y<#OQAayU&prtcXiDZ&v|R?&a^X*y0%N&bbCK4Bhn&8u+NYU zH55kPTinnRVRP|mWPta*%}T*$y&{_0B28mY$05;J`x>$W3$XD`Q1?l&!p9C{gv$CqFQ(2U@m0IH3Vyp-5^Vx`M?JV6_aC=p~ z_@2mizoV?Fs2@^bTc~cDm!tZeys1ZcP7TZx>yb3Y^}e z`cTILSuUY`EG0z#wVsL<8Df!2$z?;XbhZ)1N2c9 zp?my}cr#m&JSCP?+H}#lO$F0smz(f5`^ivA=KR?tY+ElqB zTXnbLYe&Q>oLlK!PacZPeWPvl zqO^Ed;#GuQ+$xS(#wVQ0Uv(XAWf6UKH{l&otsIxGHpBKT^4CtRkS|Vk)?XRw7vc8t zDMnETb;NzbeZ)m%T)>ZmB=}POL^;EsrCE({HSjpclYnq#SQ7n9DCWs9p`#Q1yZW*s zOFDj>6A{y7n+@TDWm*xO|)<(rsTDe|v2jh;g+K=;Vn!0UruMLptv zw9Nlmb2Cw{cn>@e6Uvpqkks_L9sJ2bhW|{cQvWEqk=aCF$5Zj5$UtVh^9iG5G7YDE zU6?XM6(O%gT=Up@`r*kG6~?*WA7pCSorra49~4AninkyZey3+q7QC-+DCnl{0A#EO zTEMjP$n$pkUt{$uUdP7A>+y!CZhQrqi-H18D{Lu=7}ImVYCA|K4Q!HcQGi zgJ=s-P`*|E+L=jZutq6J&@USc4+`SB8P)-DW1ttY&`1*14#@CGb5F3`dC7dlmmlee z&Sg~8ICmG$Fxw1vC3 zv{A)Vv;v;*xqw{N&GI9_ul}vDkMoA#3|h=|%brqN5AFu2SPde%93(KByk`1WG%fl% zaeQsS-75F9Ybo!(rV1$W?}bZ2NdLQ%gVcAg#UHx8WS#P3z8~NrZxvoe#b6$APpy*U z>09YBdTV$R*^>4s8kCy2Y|U-5uH^5;G;%arU-mtGCO9vsDNhDJIoidJ1fHjOsoum{ zf4=rK!@?GeCnkjEuq?FZ4wak=t@h3*+xXiHM<6awdU&KR;#`SLELj+4 zsn?nAhu$e#QRjTik-qL>DpziGUILV&_?L@l< z&qmHUQgN23kmeU1FuaHEsvYe9oD6xUsEO#e$}1*i;JLUda+ThK1WI#MJX$9M$%wNw zdRJEvlWW=VW_3S2U_#PPQLAlPid@Y+xrkL(I;}Ja@0Q(+-4=wZRsoej4be3QXqIrA zD~D4A0txOD3yQ~40}(OSN1E;28I(zzhhfEAx>2l;{5&{8y*?}rIs%)RU`DsB{-$s4 zK57bY0lhYK&TPf(rt>Q6rc0zdWp{xRFI+qtPVQIA5hQJEmuz0LQ89tHjQC$M+bK4akk;z6w=}P8=42IgWk)k=~!*Fr;tO}w{P`E5|@!K z%*<%DA?kJLC8+}DBH^Tnhk2gz5Edqm%M7X-rcyiDIm38Z@YJ`KyQ8>KyiJIWz6DRk z+vy)W`EkF~o?!~hbR}RGRwOHm{!*H+uS2XrTNqXDZx+_SsS8+}L)Lt9(bs0>i7Ko3I#^GhMkW z1HH(3q|Q*^+s%@axr-;kO+)vIag_pDWB)2}zOhLfig#B(jclhC$RAL=sBUVj)KQvL z|7Ds49uM6RHk zu5PVyX1$Zj6x9ap9H>Hko_3-e%wFJW3@km3Z;tdWC*h*MvyeZlmt>6tO@!+;wvw)W^heK z?{rNPqf)Jb8Or*mY>imB9K^xG^t1RR;Q^qwjWC#`SCl15)I1c~0RJ@9l+4vNaDe6G z{5jqsOe6ZI;|;YFKM^=A8qTX`CKvT|{h@4AkviF0zCpvpON&O+2izL&e4vi(Ir_dgVO$zpYLs@=nM7BtV_NP z{OKEl4n+SUX>@5=p~#`WljX|w{`^1*^CfmjGfe*=GD00>Ucv0Zld{v)CvdZ@R1&1F zCp$2mBVWTRa0oKZc9N_#ZRhjU4`NTE5B#Sp1{vDQlZuhzCzcsfz42){6PQbAO_#Ab z#wpa+_)_Y=yjWGn=nV_NMyBs^kLbScV%Bu3tzW3QqHt@z;$Ooj;%CunW=pVhD#uf1 zTA1tw?e{MTlLlk-vHwA+T@5gB=C2jJaREUDNc!o;MLTxcn3TdEhN(o+2)qPy|LRVHr;*t z52m}cnf`X^3f&yT?}@ioT%!Yt{S_zvsW6RifP-Iv#AKe;s=oe_}cQuF=wI0_)p3Q{R8(}8TB6AUca^P!Uu7rL zR+r6p*U}D*Ma-R{I>4clOX^1gle3rlr2M%!f_*XcLKx>Lq=Rjatd*(aQ)Iv*jPEhXssI*)3N7Z5Bj3vM?A;ajQOFM!{o_#q&M(} zc?tMQ_E|IyI$LWr(lgXa|2O_KZLV~LdIOpR@YXKOh2aJ=B>0V&0xuVD#B$}gv*tj@ zLRa9i>aD1yPDg9w#7JnHfQKH7-cYS|Hw)cCIpupPm>#EQQXUyAe%`P(R&8GhT{MbC z%b=}-pNffsRPQ-d2fMI%dKnU7 zQs+>KsyA6LmWipEzUfa@EhAo69hWz^KR8!EDbSm`K`k-NR9>Tm8ii0*@ruHsf~rpR z4B<=ewP@e?0-4oa2j>t6P0d)pg>J?ilq`6eY(&ZZg5(-oU;QLxpVpdAgb(Q%|8T6@ zrAsA0J_Yp2Wk#E#LjOVk-7q}&ow&94Jea3Wb)r4@HAfN>tx5L}vlG!%yS)$0Yk?WS z0OC@7AT-FY3!LW-qt60oVglPs6f~GbJFsI+5wW8vUvnbmgvnAzxeDMMZKUNQXe zgwVZ#+VKH`8{Q704Wu>J(9Z`Bh7Y@55PqyHam}w2H{gE_+$@sXUBLaa&aUyu1-izu zq+)_U4D7EMsULw*iQW3&h<{@fiQ3vn#AmNs4XIznR;p*1;-L;m8RNk+`D-=K$cn6l z_hn8A3{cCX)5H7i8S!oAZ@PYTrmIvtnYkSAgMQ`RVCF`yXj>^4l})3B@vhd!!)W)mb#ZP2>gI~z}tXEYh1D!d4Mf~*Lw z^WBc@F=+z>@{rIS`=4apls{?(wU<0ru`N85$<2BbA6U8Fa~yi1zC`|yk+H_gmI(e3 z-XS|^MP&-bb-Gz#Gu;+-F!9XE`VaIt#luuz>>!;f>nE8+g-vVu(*nm5EmE0<{%jrG zTt5jqAe?B!)MZrTNOR>wZF4mZyAxXTeW;1Bqt>92g;z+Y`8e(^@kgFx_FrAi{90nI z`v7qPJ{~w^UQF+SCor`w_cgJ!wR#WX4l1MtX?;Ya)K8F+a8mu%P^eyRxEzu~QQeAY z8NzkE;@@YEdCnPpvG)3Z>1AbgE8?;RNS0AwPjLIk2_V#&Og5xqUomDYZ*CzTC{RtNMSA);s z@c~NQp3XM>)TR<&rch*J5U(5)PIys-A{K_{dJcG3L&bD3-qB}r957B2xi!n-%=G@@ zg~)#7g?@NpN6|aNpNyrf6HBPPjD~S zFFz#a@b1Y+L_U$3ROehb?jr%JyKuW=Qqs?xZ2aogo8G9^bz~k|V}a*8WxBC}j(9DT zAa{Xonzu!GV60I1%=s@9z%OYLRySWBG#FHfw%elcA8b=BU)EaIRT)nNEGLZw`Vsnu z9RpzF7ek+PfSi=<0iJ+vp=`KH2XLy?SC}8pJH`>7n~VTrnHq-2m@3c<@v6$Z?51eI zeptCtHyc?lSEvv3`-82dr73#-0R41ro^+9GuL%TO+V4PO$v9mRv=4Tb-T_9abVQzi zn|pNd2ZHLx(*>!H{b|*6LuvL=)hxVF_cN7N=~d=Ro-5mlUjr@~_)Lt`Bwn3e9N(RG zD{wF269hanWA9`86EAR=>I=LR7*(3|=T+9SNwEGowTuGIb8vuuzYQxnj`ZfYi*7`2 z`Q<#8en{|~?q1eUo!q`D(ixFs*^>RZ&w13@it3qS68_ISR`@I3tIUk7j-C~N_MEp5 z_RlV>i38v@AYbi5GUzXc(~J$;LyguvAvHc&*f93c_#94i?bB_D=$SfsKm6Y;W%P1y z4d@Hi(VX?Y3Dk*cqQ9igL*KGC$MpD{^2(y4^ps>DeVl1%8?0;zAMsWf-=s^>G(v`} z$%!T$&*+zO6$-dD}jb)@eoY|Ox%*2H3dC37~#zx-Eyo*3p?fwp1&t+<5@ z@YONw*Qzvn3ESIRS{;Aw>VOodZPhmRHTz!$?hi_Eg_Ij1AbiKs#%HQN^ z^gv{XeX@g%|12l5d(t@-|?TShvVi*{h;EX*VRGg%y0~s}&3D z#aLD3S~`$=<1rme8_FV8R=oGAO4n({0H=U5g;?phy$od|G z3NSUMKz|AT?b@m7Up9&CCcPftrX7!UlrB-%(6Fo;Xzu({I$t?5Rd`>Z8l;$8JR>Bq z&rq}l`t#pOF?TK)!iI#dl|ufC$PD+SvSX}%;vK*s>ltrElLs{hW(#ZcH!7x-{35TW z+~RcU5`|1@5&l=UoV+EYJsrfg)9c8ZQq%A*{CshD=rKzGE)pNG)>l094k4E+H%a3P zo@%qA3xAJmlz&F5o$^K2-X-v^QAWM*ecOD8@jilYzORl|K#{pT(2bA@Ss@NFUvk@A zH!wuvEqzc{>8lbI%BS?6{RDdSLISvTQ0cTzIXWp^Sx0~m&?5h8tFrb(J-dkr=c zJ$0pHpHhg+TH>U)J#4UMI@Y;%$bb4W&1cgmX7Tt90x5fr8n*Locfo$(14%QM&w0NfNSjuc2;BOsX#&TWv>>`mY>zu<4ldr z6+cvE^Zs!MgT=z_fe$5qmmA#7TBgVao2M0K*};Dl)9qEBy`}4+X3%O|OX*GQN?Ns8 z#1`8oI4%C2l4blttOMZ^OI3x!nLZ(8w`1bLZXoS{sq3F79a*#vcyIe5v$#r18PUP4 z$(D8!gFnmh)Sng_7q~<gHOxZuSB4Kh6g^U5 zRl9?wfX#fG{x86Zf@%)LmLc9z@PhE8>>a!Xs2zD3Tpgvo#;`MfNz+zwkbX!#)?N$y zm^lpPd>`!^7{yGJPYN$cJdsaN41ugbd-28EbshQO2T+H`0VjGW6qGJc{Gwh~whK9n z6^n-^l)jr(g}Q@n5-kdS1fLQG)G$vwaAa5(cx=2Ed++gkSW!TE&0nO@MP{)*Ooo{X z)kw<11>^zE1SCy8maHvn8tMeQ3~ka>*Od@FFPubimBDWYTZQ9RAd`;5nV`KPBB#{t3hwCl(!nJxJ#X=T1p?&53kf}Kz{d} z?wm#hiWjKA`m^IV!o%gG4L0$t@UHCd4ksB?FQTRsAE6}`t#Z4>Plz^zE2%yHWwAey zDx!Y%K46=x8G9jf1s(6~gq3pA1FdPb`9!L3WJF&|Px!Ahy~uqzI?-<8xi%JGR`xjY z+*2FAgV}@yvg1CuC%5yDN=#b4CVkfYV&0_D`KG zd7LBjtarVIZ-oWQ!}tztg>`1^tuPNAPjo0>8h>bsC>v|0OZ$k_%r5m@)mpZh_TeV= zrQizD8EJ)WGgKBiZM?0|SEa@0Q6<#s&|SG--zwTW-d}1sSvkKeedWhTtrH?mg9K4~A|xcDFEU)e860sMwjfbW%^jZSv;ODsh; zDM)S~%>&J9XFhr@e6^&D@q+0rt)rVV7%@0{5bq?qM*fy!On-?@MHa`3kWS8y>OZCP zBMv74og^o_TB!x-7}HACN~Q<7B6A1bC=DuqnIgU!qR&jQexRfsyeaV)Pm3V@vx1N1 zGrTRBppaHSK(9NG8Q1BmiR)AgWUX%>{cH9h`&d{MdR#I(#Vj0;ELRVvM|ck) z?Wol30{q}R&!8!m*b(R#<=MD_8l&4oe0QFdudnFBIuNSuew;G8cR|&>quhDPS;=1_ zK*dQ6RAv|-idX6I=)~+PiQUF|SOwgOISJMxLhvW&;T(l&B;41vCY5%nA8haAp>+|5 zPHJ9&4K{+3yZ+H6LAPOFjZFn)vBq@!WPR=p9u(b3p2jcw9+ckJkLS*gPGlbWy!ceP zEWm?*@jq2BHXespXr_98X#P}&gCn&0@mnxA+Me0ZIbvPo92#7V>;rl^ihX9gb-c&E(=!pT7cLckrv}A#;hU-Y zNM$@furoFBo`z1!kd$5xUv(Z*oHST~@{q|o6un&b%&^@0C+^D`Y4ZhEX>TL($}E4E zGI4@bW?FX>4P{-NuykBxHCi4UUtUi?ul$|)Am_5kWFJl5!Me&WQ37~!e536Ucq9u} zJ`Sx^l)6ST%~JRO<-|=*U-=pQhVZ;&DEkL(r=PJ`m}O9wx}LKfnJir{Ye{#eUr27F zeRXqPZMB2dYE5&fg}<@9DLs|8Q9V@Owb!7hmD?dUIELay*C=|@KAkQ0BW9><9iC>9 zGiNglz!l^rR>oX32#5z%E_nf-6cFgw$oAQ6(T3zz#RT&z>`d~d`$zHtL`pT%Gg_-| zRea~#J5(FxpPI(xd@Ud)k+l(FY-X?vS_&Eh|LXczn4_KG8w?ssuV@8lXYYxA5`L~+ zl{g3V#0;j^zMir4V1V`$@1cn1jk-y^1M?D!=DhZZ$fD<({;Ir)VK7Gr z2l9~z^jIg?tz^HgtOMTFKUo{_Pg6|Q$MD8O-_O4`&% zlN?JcCLex?>=G@Ns?JjmPBE(Rb-?WCURV}A;ay>9 zkX()I1^cG$PE3&I$Il@j;o7q6{u};Zqle3$DJw&x)?U)w@LeRzsy^CYSuRvOU|2}D zt60Si)Od=Sw_vuUw@?M%g*PL;neYBq%%8xrwf2}k+J=}K*Og=gzloaX4FVmE$FQ=Z zv97MWcSVaR5Z+u~MORdIcU~8NjXtA8;Y?+3)JE!qG7*IiWk!hG%Q@ic47swvw{-)EKJ(wMU>)XKjU zGzWxIiMv?2Loi4>zhp$&UXZU^0qDTF!oA{yC3(O_?7MlCs!Z5afr7{VPi2j`Zuff8 z;B=AXAAF8~WY$}eP|-=yRT3?6+S6ns{fyur`Azv(e?sArNi&6kpk=c%ChlH3SCMjx z3r>qd(gDId?h)yyxibU>3I)*2v)ZYb^mFF$#|am(Z&T^qb>$z5vISo=rh~`aAJV(0 zVP>c})f8fXwR%CNwYPno^oY*_odg$%5Qz}mj&=7&1g%S*_WBuq^|Y*wv(gzy0!-vvwCBC^L|Mqdu{hB+YCW{ zVW0BrQU@jz%u*`S4oTZf-^ydQuY%L!^P*Ki0noARXZmLOEp7wz@T{zFCz3h- z=IL8Nh47Ty1@0H+i#Kv-yO%5eRy^fSD{AJPAnq^!VjqlsD_II0bGbObny*<~U~%E0 z;*hBUvM%;ga~R$oD2dFrq=Q{TZGmv;EGp9Nq8}rF(^ILD2{xJU-k|UhT%w=63VCI$ z7L2qB?8K#^gZDy<@i*)D>y&(a#cj{ZT+BiCC7NqGjNyg%7W ze;2QguE+k-WFcnqx$dTpBh3ZtQ4zZvwW9XmEomqHYp517S-jPJ03D|6jvRnCDvj3|tvEPBOvvMF6Q>sRJh-$E5rLGGVj^4-G`#bwB!A|s4 zV=LajK1%tBzU^N{w%08QWpgAY)V<5<6J~@%h=jR-C=qazhQDkdvFWTTcIi$qG3IQl)X~~fuE2V+CZ&WEzsQZ)Kjlk^^wh2 zh|Lq^?-bLden5*9(8u5d&@J&suvGnBu`um`WSnd)JR#$ZG#i^MblBejjHf;7q%Q!? zVJ)&*vmadRa@c8;AY%&LmoC$M1*!$z8l4aH&DS*!PLv&FxTMA4Urgx>L|XXO;eVvp zmCcjE+YP*QF_v^m7!|pp9m=Qn!3+a+cgsHiq}c`7jl&z z;A<{<4qirjB{Sz!sgdp(P}I@i@>8u>Xy`hoa`9gO?UYhl?-&p7bY6wm0gw+0Ey5?H zys=c$gNycxTGepUO#`&6)#p|+IN_Y9XTrXpI@ zZQ_pcwm_?GW1$P76vZ;|C#3-TCubhHa3^Jbm6jbRyQ8@!zixS-^!yo9_NsB{#4Pj`=ljLMV72_e(*2%&r~$Z zAU##?zo9+pI%;}wZ>CFb3Yuv-qje^f$)2eqX4!@`(4_JdDJwK3$eG|q!3<@VvrGO> zwK?Mmb*cE2?**w-jinlL2c#vMM~;M7sJfLJm*02D9k`~0YCY8<{YkMK7(ux#=aF%q zpw#GiY)LO1>!=nv=jaRkLVjq^1or31zS107EM@fh+=-;_GZx)B$uTFb8$D^$9(Z-gSQ z6Y7)@ket-DCEhBye0S+&V3gr*Lacd{H8{UcG-#|5x+WSExT_y58R|Ngy^1+lG1W64 z-r^g{Y_t}I`*KSxEu@I%h1qVFY(lUb}S@d5b@Ld!%S z6`-yqnJy^Me@oHvnWzL2Mv5*mxRG zEe*2glpT1rHA?V6c&bm1Rrp&4+>VXj3BDoGRn~_&N1zwLq3GSRk-mn~gF1)*N{IF^ z;#86jtW|YOwHay%pz7N6bX9eITg~}IMcHk9cQDU4M^T;oH)}Z40#L2>L7Rd7k&VQs z(y{4Rs;$lZ&NZ_C8T!lr#?lK4MYcGk5mNaG>TWBR*9VuvAK3dvM^&E^Gt1T^6iEbI z=6AO&mpuiZYGeLi>h$F7DI*q(esa7)PNbaGx8hXt&7M1OmEa953MNm?(q_0+v{cn2 za|HLwJ3jDK(T-yyAMBR0<#cmrH^>ctiT7b<$F6`x&<>qruW2#KU>)RLrw7&9#hE8tb;n4EHC`h@G$Ed?@IP< zb?uA>VnTLJB;bQG1an%BibAzxFB>dayY}zGTcaR5rgQZ zhNkow<-*u+_%BHwyj*1}^JI0(j+PF?FJcpN+9QLJ6^Y3v9PcYwiM;YICFlBTJG5*U z=O?u`TS&d4sH};BTCA9nF7-BjW1s*%&-aqov|riA8a-~UUVthH zulA=;tIDOH1v^nKWGbdA<8CM$uN#HYWmzwBy6FCifc$m(E~2*BFWoVWM;(USrWI#a zWflgnX{QPPTt}-K-S9cMvNGYWT>x&W{^eb9{Q7L5|fuqr+>rVlWpC7@I_t; zlDv!7wPnOgj++{w;3I;@>l%4b|0LDs=qKVf|9|m*be+<%g1zW`;x+$hp+z0QmNO?Z zuN(7`jKC4c7!ED#mw(aHKhluf=xHk}x5Ft%QilN7Gz+-rr~yCdrNeKt4aBR|E9~}^ z9@usQg=Dt-h&-bj)||TqIY|WWr9`=YscX^>X}8Inil-;t)(n-Sud-})j>_7n8vu3- z)QZ&fh2nKoFw#s@OV$HjtB{zEXls_+{Z7>i<44H@*G%A@ViEEO&=@I4uZ5cGiqXgN z+o2QIP&nz4;0u}BQ7gWi?T3Cyd{qC%E@Y;e$6yI2H*nAKN`2qIsCZB~9MJ}wVqKxC z#Hw&7Myq;bm>B&cSZqA)InFT&m{=-Ek51H#WyeJCpf}6;_`m1{@*N?x8+6mSrCLL> z6WCCeoCw9enFXPK&bE>5!7%Yz;shGS+d(7U?TLWBm;afet!9yN6@ul^*iUE;!^gx- zUuXe3L;W2pz&fLqiI!Ah^d6^oDxeJCZQ=1?^<*rnFZ*}k3bcbN&iVqhBonG1@I;jX znZ&>2TN*Y7T<&kOVraf!86HY3G@f?c@yR2H!abuKQt}Hs;Y)>+Vlmk|pPh(Bzp$!^ zA@P-!hEsVXm|aCtr8Tw|>sZ)b^GMn#SPX5B4kZ61Y=|9r3yw9efd}wHp@!%xdy<&} zFD-hf@Y4T^bSi1u2&g{R#A6Js!g7ctr-8`fdixurnM}Q`DGJVhNq@i4ONw>ph?k)U z>D{qQP&3wO25s%Vtz=o^E~@^F)zF(a4;w81nQTv}kU6^1l8zZIgBj>LW~00*a>mju zMe2H~xUIHCmOA$d-Uq6Xd)T=Ae7ueHCALLdieouM?AhGwxM*T&XahrxgvWf*+KHy;fmqPw#Gh*8rtmab#U`! z(y%A;+0t6q2I&@l$dv1{vR6TG*kAsp)JdsDblV%oU-KSi-%QM*dtyriyEI#sg0Nn- z#r=)o`7>FCJA*MhhVsY7%bi%fTC}$MNnAnfj~vupBL0QD0&)E*Nhp?Mu(7k`jeujZ zRZKH@s6k?A5iW=}GEr-ns}2%Ha9;i`Lp^kl=sXoxZL^(c;xx&iK(pwX_zi$gsD{+ZkOctWFzqSn7{fHfd0%T$4@Y(Eu=qquLvN1% zOGIn>1e>rbdWY_XyC=Q|;Tbx*OW}+9#^v&YiQH#Q&CD%vINJpT89vhRane%WF9bV}GZwWz&!WS+}coO030orq0-1u!iSSz{NI}we!{RQ z9gmDuKSQJX_o7NurRGdPCi=i~*p|d29}w-szt0|4%u~b!U!;EbW94q&6!wL9ad;4| zj6HzGv9Ru2Y@%TUaMEl*`#Hl|=a|~@eK~#1eWP0ay0Tws0rjTnu#9wz8FEkus{e4a z#7)i!4Jm+vO8`jTjqDfv$W2zHNva2`lhZ^eQ{|Q){x+eb3?HZ+Fk!Ee3e#ZSSKAHU z24xe$P|=Cd2VhrZN92SP$Ugy20RtL|goLuOrjG8?)98Jb1$@FT0#og;b(11_&;ra6 zzaqdB17R9kuGy--SGJlxh}2`wV++DZv2_tXdXnN`WoR1N8hDj`JIkHu8mfog6cgx- z^iL69+-g5>Akh)Vo{=xu)yU=a4(vsx%KDiNuyxV*ndi_j7NU<4_t19$fc0eR$3I8j z!42@PSxsWw{HJ0qQZu6+<+W5OEY>?ce`3nAuC6FJh#Ky*a(@NX#&goT+#tR zcstj`*&g>%-S}_G5TaHabt5$UfH~5)#7z9SzODH)Foms@u9J1}Uc^6hBRyMHC&Dwa zZNvr+OBsfach^PE20w)+@wT{KvYQFN@;Yn>$K-T_|0kWGC@==Kj+Annfg{6}-n%i# zv6w3=4%ohmu25YSrleasJ@hm*xjauV2#@wC-J@LZ^^WLYp1+Ft_%}!IvfsF8u%}{} zxT4ws!X&eZ8>{aprVIMn8{$KOHJSld6Spn081}j1eo6V2{D)*){C(`Pw1!gc?O~h4 zZ>hZ{-Ot3C`Ra3W16#)*_eV23l^W9G(HG%K_J9Duk65u#nXgaqn!OGk75B%E7q7?1 z661hc-b0iV8QndO6sR{0g$ztMJ%-^!XQTGQLP#jc~sB`<-+Jj2;RW)HYpgopZa{h^TBx(^$M+3>J#k0y_MDN}G? zB1gS=Ko)6<{RQgf_aunDRfN+HH>BeA9W$ZYkwcO3wuu1j>rV1T?+BxRG0{d*59Je= z1aHH{y1HR#{u zGh&}@N7di#E^BJ?b91n9+6w$nIE~3FpXR-49T7g4p5^OL!bokVmv0C@*(Z<`$~#%i z@IGX)JU?^**09x}gCQ+*(G~Yj73Zhdjhg8jC;&jR|MW|eY5vZdQfdj)H&n$wMANk^ zq#CA1(%H0DGe-Q@@X>2mJhzXG^a?!#=7omon!1Jvjz?_T6hcJbK~G^8Xasiv^ikz$ z^UH51PeApk&!Umi6YPEUWO6`a6uN|xq2v4q)EVBxV1%<3WQ7UsLwp9)A@U7f7kJ>= zryAj#fSo{M{IOysy5G3pp6C6FK=3C7G;NT+z$R-Q!Cxk4X^0+<*Rw{5`sz}su4N#R zpQK|R7H{V7)W{VNY<1(cviA74sOA3Ax<|y%g3F+d@k4b8t1!;YU}agam{IH?!}q|R z(hO4zq@QCsM%(`a$2&&3rvW#hZHgE&3D}Y~5ETILu+{WsV5Ar~GRJWaWU;p})zZJkIwd?Yv|t%z)hTr{1wi19xK!QgDIUOyMySJVgt z!io~Bq=09@A4&QNmJ`dPyYStzQrW^lU0X}xQ|vHRTG#<-1-~XzBcB}_- zc^U~phxM%>5gezp%enyfaGYmnSolxt6QR(@lLGL5)i9M@IwM0PeTBlQ-E=#djI>^& z7%WtM=6}w3RxqHjh-vQsAjyHo1~1B_s;)qLFq0g`7tuGo8|YN3ueu4$iJ__c_-brtIH>S(I6P$}B&7g~xSB#97*?istXn6iyc`hVo;9zXkORb&BtqwvxfNE`h%x)_`UJ9}39AI?^@b_Zgps(_okHa(bDvj%1fZQg~c46{?%xOx#ql#IXSRkv7DA zI8B*($R?AFR39-Hll#qf$yoIz^1f%C>skIU+qVJ^IwiFyZ&4fY?gvIWN0}kjqRgj7 zhiPA0$Z9RpJG`Dr)@LbAQj*wOkFW5lxxf93_>ouU@;gO9La-O=>e`Ue2i>Ia%pOJf zu}uGBz1g=1*%91B{t7KsXApm|GZJ5HZ9>(!N!D;iMPQ)sqE3QN8Oioq9r$wix8$v!8@lMI4S8&L@Qv)9V4>qN@OH+hEm9C_lOZRfX!q zgJmtS`q;ga@5ngalbKL|h_R zku_AvCya?D=zX%F=$QYvSO$0}QceBAl!Ly|{YG&3d~$Xw>7^c|^g# z4fVpK1G|X-f)D-kRFZ$>%sSyw%ejoQFYrjqPt@2l`xp zj8X-*SgpLuxB@yFJR=_IFUMZufPM;FVYr4rU_M6v#DA#%)tT|_DS3h=@t6FC@n(jx zr5WmlmTLHqh*(|SYDb!2^KEfyUhshXOT{CXihYQHz&-w7XsR(I?Rg=AuGFHzO2>4z znW#vM%Gh!Y;-DMBABYU$6EA7R#H$AaB;=gp0C zJ}YK3x8=J-BU6qdKLY9SM2dmm5o=JS%)(^3z9jnuxAd*b@4GHzi?c<p3520iHo7pt^HE6W%vSB?uysSgGkuPTON>&GZaR;C! zf)|lZA$eql@*Lh(o1y;5oddH1T^u#aN-b@)mBc)(m&v5MRyp34C#+8I@#iWBMhm0K zBz!^>cnJ1K3sXeSZ0L?+d}*5eV_A0mL-khl6kl3$wbjG=himdkVkA@*i%C{;3o7P7 z_tV=X$?cnn>O2^1N>uo_X#Ugi<8IIB(lYY2;yLv$CU+cHY-SHd$C;w!Ds~6f)^V^j zQDY9J)bycQVjFwZd6a#we(Y=?U6%P6uR?0F&w{rs6=e$MKjS777^&kt4tI@q4a`p7 zn~rsNHd>T_7*)_g{p?6pW=!>i=nC~Is-6YI&Gg4YZMjM@7TlwmtvRQ2rPcPILiQts zxSM`g=|s3kS*Iw$&0~$q-*N)bPoTa*?#Znd;y$shYFiO6~Q$xv`R@wQRdD8?;o+;B`c3Vm%;o?PF=BEA>urCOtoM z3ASFpn8AogK=05xwl%O+e=6yvPS>4ew-e9dw4gkE#K3GEMs9ZP)h1UD`%Ku2ImKa6 zXZAiaCW?z^WUcp) zR<@HW*y4yF0+!ZP-qj^ExxvY3kF?9|4)$F{1+JC+6WSsfljz5d(YK-X_$)MlrzY=F z&1LDq;o*na9w0?w+3-|05uGg1vU!UC@Hi!shazpH&zRYS&3p=elGWRBEwEm>PVe#e zRxAYWMeg90k~c^;PWeK?N^WLg6)B6|Viw9SDgQu1nk&(ErWH(o-;Y3TeLdI}Y@>$C zR)f6K2BmYXx%n-)TcOkHf8C_OhjEyMZI+pn)gqZk?3Ddaq&M5#aSfelJPpN+102UN zJTyN_WAn2%>bC~(vyId6R1ehxei2%#SZ02tnxe{#oso`1PpHr+j>do|Xj;w&Pc6xa z#7np}E0TC4mn{R~zQ&#O@0vH17TV4}2n0MGjSM?GF+J3fIl^{l<=*az;o>RQL}(DX zCE9|!s36#42^Uo8TgE;L=f~dG>@Vbb`xzVIr}X=Q3x=tYlZu%R38T-xYOS>0iw5!a z+M&SKXg%i~fk_J~8)yQ)-lCsrI;faBKy?y#h%S+~N~VuniKVvW3DTJx&*7FR5NfP@ zT-rPXRr1(VgPrNfE_k5d9lPpUz}=QS6RZeyhIH6qaRV=r+)mGl#`yJ~*W@7RFAVne z=fT)$<#q28>d6CXhn`8yJ^amJZTzziTR&%SE!y~G__Iv+**^}5;?=Xp!x1- z(iGLn|Bd=mkm*lB0EvJ+;%vq|cR+y?neT4WaIjzr!;e8ov~ zIlU`&3)P!x;Y;-@umh@Po|O`-)0x!pNf40^Wfs~Ye{W!A>M&%9{fc{+z#?rycV~V& z>O0+RJJ(b3Px@U+ZPzvbHQ*0zPZty19PGyyk(__7`V_E}@_QeOXT(B*P!LjzD3We%@-+IePyTZej?{jxMb9)9RS1YwoQ@z#W>C!k}Y{)%p*|9rckL!c3Q zsNQ5D{8`}xTFy6BemSrMA?-ZRy%e9aDb@(NX=@)DrbvM&qQ9BSLnDCSU5}8c=_nxb z-t#t6b@g;oZglygmFg4JH*YS}(1tiB(!>3o=xo<3)n!{duSxL=%u&{pH*tsP4vK7z zj~y7S2d`s`si3F1`d)Cn?Sv&EO~Lmn8fcq~PeP|9!lIgt*V7cKu=~IiUzxKt^vm1T z5mb0hi+5wBCT}JBrDWLe}&~& zu!DQ7EYJH)IU&ConGDvUYw3p(sFtW)53mVu90<-zHuC-Z-V_LwqUlZnl*(T0JSjLz~+Tg*9+(ka0jd9`2*1- zw6aP)-mFhAVpmHRNjJgAk>WJ9d_(|t>wFt*T~oI}FWm-jTvQ;~t8G{^Lat1%TZ9agY(qO1&v9<`RChN)21oyZzJnDRb5uN~oGD~?yJnb^=^luu=?s4d-auwW zy3((w#A76a*yFUG&ciO;YZLtmsp#9TwXg&#bKF+6Eo>#P^x#GRv;Gv}p;TCoIBakI zxp1XV3yGZ{^ACe*p>nv;aYOP3BOTKmW9UBQen!rlV)+Jj7d%i^6y{OSsZ{D>3aeSC z9gF{)a#gy=Z%FGPAuJy=L-MahqVO8!zfS>1x3@0d_<0g{DXg(nmt@}8=?XPJAq z%dB__Z_S?F08~c0hMM`$fvo9AV5cLfuNewQw6+>8z2y5~_k>ao{%u)Fbb_AhjM|`0iN(* z_dS6hiC+|S_H?D|0A^~LYLawO`hL$u=~=iR?~UwlD6Hf%=kYg*GF(%AgtI?bNR2Ty zfN+bDw^K@`H1#yMUSs|i4+g_51YMCAh6aPLsM_dUs+SB&8i~&XxzKmlPJ7fzD(@uE zP`~95bzfA~mbNH)KtHl}4@!Vfg)>64Lo1>Cq5Vt^uq|FwImY+gRpl|Ga%C5GhN@Wi zTk&ymLiy6sN+Dy8kfPvG`kYe0&SM)smW ztBj!y?upC{WnZmVgA1yci0Ev@mAFRK{Hw14H`{n^H#A=cLT0U{tuE?1_OEE z@2WpTYgIWs4vdBN2Ks~b+*j!f@~}`rckrvi^`q$pwc$(JJXJ&C+)U2O85crl+J z$Tc71f0FF-Oa%%tyJtFm-j-W%%l+Ov!hgcQG4ML&zRT^qs^SZNCy&SvsxD@B(XLYW zW4ufoI2@i$Z6tG{_sn=|k9&yZgXW;5M_`Ahw(1h4x2SY;ObO(QyDvlqH@IYqd!A~= z{=lIE()*REAY2X2CdIL(KUwH0FBs3_=1r}j-8CtrDxu_Eu zh6v1>AKo)T%)iwCZ}=~97`16**_#VY{?!50I9HS5`{gb}YN@-yQ8=LQp(-Z2P(r+u z^b)eF*U`~8_ z`c298B;`?2uo4=o%+-Rdg-dV)WPi)|8&C#DJ4?O=+r{}%%iH~ z64Q&2Vs~4YsVK_y;ey;MW~{DXR#AMYp|Np8uo1I0G!*LtwWK-*d)ZytjiA$7S1nPr>`F|E6Pa_lA#@rg^lXKzWh5-)6rI3&**nl3iuSVGKlc{HObE@MqS}iWGTs!**~Ib}{=&!2xL#E`y4Ax8VD=6Qr&EZ&Ewq4Kv$o zmf}HSm8%iHK{42#z~>hYDjWjtmkkviNE-G?m)(8L+F3l*H8y{ecLB8(s7bYD9w)hv z>6&G{$@U+aU(;{OUW&$hj@Y;4|0g;E!u&R#vcf*nD*6)dFL|+LljNm!r!qUgwUiTn z&tGneIHEEb9GW&y@ZIy>9F@aBSwW}b&XQqPZJ@Vml4OGKjd^&=TESD&Yy(}*t+JG3 zqGiHc`A0ym=$Ly*{`G=3&h-$d7%1U0+KdB9O!nhUp6N7{o>Gm(^I6Aregi?S@NQua zl;Jq$41%jN{1y@KwPUAL364`g^(MLBsY9jjB~qZa^02~CWN>UPHp)=v2T6&nuH}eh zeZ~&nFhF2hC;D4B)v>$qnhkQ*D|(XI8R!Fc5l=Jq;q5HG?6_`SB-qIlIy*YmRI1<< ze|OOqGYG7OY>LD7j^K4$rm#C%zhrT7jj-3Ly`2xQh=-JKFxVwk+

_Z$npx`0_754(R@FU+Np3N`OA8QrX{>$6q=s$PR&3e_aW2mOopy1-0AM? z&MOIdho(F%TH-qA)bal(+fGZ0`EDS83-kjxVjk=6YJt*}fGB-&(G7k@a+=jc3@c_R zBN@G|Eeh5;^p*=r9H~|?(8=;P2wMvUym^$uYX^tqw{~jCm8nYCBx^MiNEt61s?oXi zx&!oj&sF#;dpy+JkPicJQ||!fhRT1+eC2MukG@U(3B0GGmSUCkCvnR*kc(nUqeA;q zdyAyN$4-~$_mmk(p=pS5k7-V3JyI_rGuL*qr2CH~T{Po@PT)2U2WFBv%oe65{@sH{%3`&HwW1pwrO`1- zi{Wy?RdOTMi234cj?7V3Wf7&_d{1So@Bz`ylFgO{VIO!UC5zWV)E_iPB#~{(9r2%< zm;P8r>u7g&ee_7mcdT>dr*F5Zzq5dw>puYh8+lZAGB{Wcll(>AJ%T2Y7gSeOBj}1NZmGu3@fwqluYUBJF5mK2-X{1A zE*Et~Ma0Aa0$!r(NLtW&L<9K|SI^=Pa2L#uZDn!2pSkQ?9qVM#hg;x0;wfhq?i07E z*1hDT`mOWdtVOKP5;bzzJMDi(Ndy&o#Zk?~Kt@l#p$`4E;z-$1;V;n#yfC}1bhLz0`YUYcNe!IdaT zo)eGrZG<!^~cKQ8;%f9 zC#Qa819PpyXpf<8#dU%NK1K%cE0(0#4^4`9#`rgo7i;H)M?H<1DU8^dqtA7e zmi>xW124P8rnH)B&yB>e%;s@5>PmixHsyWf=%DKc5PkmyG@lj?%-61C>`XWPW$Y5J>A&U8 zlz8lI>62i8xHPy<$9nHo zQ-f`7_l$Yk!4(_4t;q?*45&4ghsd6l3!Gzb8Mr<0uyP}z|?YM;UE#mk|8=uV+wvT>1JMODPhI3ZS1w^eeuRna~F zcJU|*CyKBNLuJ zlKrwodj+k6O9C|_*2FoaRh+>sp>psVsEIYXBcq-PSe;*Wiu;3hS*Te1o3IcqAsQ%r z@zn(<)UODSzBl@k!|*laBpBl*A`R2K5|wOw#qh!!cGi+YTqBoxu6bnT4FV+J;aeH) z8Jt&?iSm6@LeEA0z)I0#E{?yXmj)K3q+`X*Aw_$=Ffy9XBIdF?5DByzfx=&?)}omL zl+&1QtH;KVWp68UnO3_^iXGr3)4$&PaG!!B84%Z9y_0)o`As)Zw}MKDZ_#67SA?6K zyYVXAiv9Es4Ry$TV9r5Sc$&E;Xl|38M6CrHL!7V_9MVW^yYKzX}h1PpipO}H4&HV#ha`fYJHBsMs>>YBPmO!P-hTIh9w5I_3 z$^94H?T%LL4!jLsBgt~D|EWeBYtG8hUpmHL;#tbpC+>68R5ytC$%dI&U8Ce8>6i4SOseMo zOITHKG#pPX3Y}y+XNCMHk%L?{>@oAfKeEP$;CTOZ`)zKfXQR8L4wZlKD~-C+ZNwcB zt$9maakW)H!dm)XXaqb4I*apl+X7292iDbAR=NJL4~pMq_A{^e^AWvvQ^qAC;~OZKn3?>d_Cpo8-rx&#AE`HtYkV=ayDDMXwX1@CxpTZM8C5 z*j;$FutwaX>u(&PI+Fb<_6thOd=+C7pPdsF4`QC!7kz*{8g5>aZ{~+x^naRdcu!WY zd{x*eI+nQUs9&~9l7?`)8=jGl*4*!|ckxS^&!rcjk4Yj(1NNIEzx*v!&$nByT*esN69se!Q=`0PrB=@?WdpEk?xOxO?BzF@?Z4%!o z9x0tei=o?6#QTS2F0fmnDFUS~MwC&Yc?vpBsAhwp7M2U`CVvQ*rZj=#f`9YBW=17j zHI!hq;27kwOM#|TkCFfVh?gC5$nrhd|3uP0@dd{}w8bBvrlB`J>!69VCeOnT;GSLlP% zp(3+zbirOze-Yq-C9S~Kq$;Df90F?=d^5ilD5&}li9=NwRs02YD448VDf|ZBr2kW7 zkz?~OJ06CH7S*&4baZBJ6c(m8@hKspO~^C44;Ncf1Z0M+rE?x4GJln<%ADcu<=P^s z>uFWeUeK4SsW~r1Oh+wUom=uNGh6Xf$)4oPRJ*m4bT+id-B#W}<`8ZJH_MJXtBG{> z>7*PAiqoariw0*l5FCc)*aneXt;cPREF0va-nck1-A!{R68oDtL(9izPuovN} z300-DA5fN<75-iE-S9&{5?mLy#}n#8S;tTzn+JxOZDk)L*-5VLJg}X#Tl8r9EwWZ* zzN3zGsJl{(hEcM4|p0ZKY>K@2y6sJ{5>`uHrcUOBh zQidI(zvu{_SGV4y<*xWfCocjM6st43^J`3=UG^h2@VdaOigFKxBabA!Dh&K%omS@oe^QRP{)TTW5RI zoa?xMh;C)Oown@vSuH_E&Bwc_`*Bj<6<}2GCpZLaAJA5U!jZ1y-X3u?sEl>sT@5T& zD>e6J)0~Z9B(#R!9%T|u9dhh5yd3Rp94@~Z9+*tYeqoy@Q{mHzO^Rm9aq+38=ec9X z+4w)7IQiI*-u*m${KU8IuQdAvZ#69=?W`0N4HKb%rQvH$ih;urOzQQWNzA4oJuWO3$ zty3PYE{TO6$6Kq8S?(mP`G?$Af&yahRm2!cI#(PO>w3%b1Rd#zIn`6fX{&iUQ?n!u zB7bAOQ@g>Fi{(@nhGVy|``pl22cQGt2~yRh#x}V717Z4>_cn~ zrAy5a&lPH-0p2p%t}Y6$LOK$Y%5-d7{DCf}&gDX$ddXk5PBOuUmz{%ikWH*mo2p(f zb4FSy`*L~gR{2%=1C-0@WvD7xsqh+xi>_+)>X(uB(o^xNzMA}N`eEwvtQYO%_$y^J z(=9NBf$^T)f$VTLoiUs{uk9OZ>i_~uG+>frZ4!i^8Lu5>^x&udUsD9UAp#nH%CtQ*T#!z9^OAL@M<*ovv!oWBzjpo zC|@U;-Dije)IJTNxvu*XY!um{Kcd^_XqN)2P9@ib*ypoPvAKfV1#Y;iJm0K9Kf5|Ium}!zQ8WlPfe_blt;5$!zA(H;I|t5*Dz)R#Q>reR ztzv(0q{htek@J*nrEVL!5fKm#)30T}Vm*XAqXza=_e$`9$}PM~)UIBk=$cg?KQ3?S zUe9^qZkC{X3Ue?4VxQAobZ4@h*Bk9B`_o^Hy(nLvv6E|t&(% zWMuj6%RW@gBr*}cvWrjS6D7L(YuGBZRbdcb>zU{qgu9vDgxGzA`A8#lp|&QHR?#N% zRDCe~2KZm)u1q!*(=EVyf%D)(-HzbvlTk zND6Z%dLmLiKGF2Wxu)!sbdB;1(+K^j>tT8d#Qk4&t9657Ls5BnLF}GT&R*p9DKdGr z6Mr%nlFsO9;(t|ExCJvLwk^9Yj0YdPJ_Ks$uUk$B`0-!LH0(!yhsa*t)Y5cxUskUy zOrJ&EDfq@LaZUq%CVf;(Q*p~#{(8fVjO=h%?>lOW?j^tndId)~RtPk3E!8Y^le|vE zm;TFlKs${#Xnu1oRCi*l0#AHf11bZfQxO*sOq~_pZ+M99b=!mk%1;z`!)J0pX;hcs z-{5Tif8niy!=Z7dA4Q$0=co|*x1yfB171(Rp4Tn4B(gQ~yto4`6aJ=OfnAq=XC|3$ z7eGD}1whU6tDpz`y3nX_|M+`hKW1Ap>2eQiV0kZj7_>Pqu``)#P!=_?cq-5+x`02d zY)7n}Xq9y%wc9T&n8q%2?YBO){7?<@EroAEn0;{IqGc2G5b#MR(0jsTuqCu0bXhzT zl7|cJ7BW?R$yyIQ2tM?j)wG8i!6>{|8bo*6)=P)6tEDOMJZv0%DOn-^TeAchF3aS3 z`B}+ao5$8W6PEu^by7A>kq3;o@HA`ab@WE?nW8Up531Dsm(ey@?ES7~!mFVR3Lc<< zt>7nJk!G6zn@sB%oBv(Q^RV8$r17sk*%E0Z;RH}*sH}hIuJV6zoJaWNM`%7|fDa)!wk}mi=eidJ{uS0M%mlue9+PV+nmLr-+%AXK z&?Y%ute134+rvML%r?&=k3ut4sjj9_1c~`Kg?jKxA*<5`^IhFM5^D`93hncz12xFz z;uY8||4N{m@)CfTEGX!q_DCUd6DZC5NR$SyC?4+^EODhQ^O?Ov+z;J{p$*XAP8oVY zQAhYY^9~q7Pfh@*Mu!GLqjO z`a}AYx&RyjWf?*5FzODrTa7Ch%C=HessuVAM#v(E-?>~6QttKU7mowpsJh4soa;0v zybC0c-P=5?)jY)&Am6&%S>M_W+2T6vXM9b0J>2;Km2uR3Ay5~_tRu9Ak+|d~z9{n1 zq7N3z%k5|VGszK&rH)p<1?=AP#f$@65${m^Kk?M)TrI0l^M8FQYGt!TN>HbietedNv|661gmB+o0CPF69Sq3jZtH0yl zNrROQ(o9G%#d>@ZnxR`Bb}1Fy{@}V~iWKwqP~FN1)+OO^x zyy21i&gG0qV5Q4tcOnajD|QvF@rP3X(HTusv93&Sb%dQGU11zgyTV&ZQH0iM>5P2B zXke#MmjJ8#F=0l}2A@ZVRqk+}h6v!1q+N7M`c0L(?6nsT&bPM;sA5eNDXbBUB*q}W zxnCE|P{kybpuglPf1!XC)--p`nlIeLR(CZltE1xtn`B3mGtZAaIGN&kTA=ryvH$YS zO8$TS4K~vB75)qxA{QM=|C*~)XgB&Iu^f(KKS;W0HF_Jonbs_OmLMbc3!W2y6JEnR z72lvPjC9Md70rdJrRISgaKkH)4DzK~-?1Nr+cVZDvor_!y`8lp&C&mm7fz~BF78`+ zR8DV)zVmG(}O)0=^L83*yU z;O>HTqB`Ft)FW+5aQVTWrKk?p;By| ztdDwV{Ajc$ucH)Wzc>@f9rd@QC8b25_BGW0FZLaVgEe$N8E0sM=PXhgA((rftC7K` za^k)2YV2lstp5q~Q|ZwEB+Trqu=@WLon@HXXxoNi6ema^fdm4>%+$Sa-M!tqySux$ z3}ZL}5(tn$kg0Fo-M7BAt;^Qkz1_AS-(P;gapZV-a^Kf=o=DoEQ_)$L4NuRzCcIsI zUviaf0=x&Ga2pBgCMLtiP!sf${Bj5))`fZ|cPmHgHq-t>DOeqCfqr*0B%_%gsO+7} z22CIR+t53Ct#A%8h}evDQ;ac>hPHt})m&-{CaTz~a9}l*B6fWAuIa610{esMr}n!K zTaT!x)9s;V^b@oNkwbY*ZH?J1b)=;Odgx-?)?S z53dc@pueQII(k_~cnd#|ZX)lZJCwG0%>-|HCWlPoZ`dg6Bs3XnL2a_~0*k|Sf-8Z3 z_LTZ0xJ6o<;25u(!gMhu4*#SM$9TR_kd^zqC9$mF1A|tp&D&%|vfl(Nxw7G|nLR}s z%x-Sr=%o(oip5o*u*aKVx60QXAJ2JnFr!P?t$Hx-A z>?z%q)IDL2AzwC6{ScKpm02%|M_#M8o`Fs0S8h8n^L?~dX`ad#o|w7Rp+_drSuP|b zlx`8+mlvW_DAIl{-hkO1AL>j)Rzs!5gBfl3Uhq|Hhhdkx4@(z_fPyrkzmVw8D<^vd z6?rew{<^qqcKX?0XsLzWLaJKl>TbqHtGUQdWDfjB{3V{Yk(TwwR$ynLDMBw$S9M6X zHFFXnQ+biq)U33zh6+E_Tj{Ze3!Vq5nW9nfw&*uDPxK-x*L49skSH)I@n2+=GRrkN zucXMK&&@B_sG=5Ru>7X%X~j5!ia&r5Y7Q6WQDccQk^StLkQEq|tR@(tYHi?Z?NJlN z&C4WjXyz-#p`6Gqa(i6JZdV+PEK$s+dg4~q3+)-fXZ1p)i)6T=s(CPuc>KgLdL?}@ z?;|t-`XSke_AoXv2zWiT$!PV+c8A{aD4mIp+iu1;#Xpk8Xl3Mho*FzO4l4GrjkOc= zC*xDJYw510d1&R(^F&s(No0n3E!fvHjrqVv;`55us9HNqB%8X(ZC)2mbR(9N%*E~iBrpTGOX21gq!JyRlGoV8C$a}m|OUucv0R3 zpR~L$o#+0EF2XJ+o+2x=6nP)$6(F5)BGkZeoU`2X0Q*Mu(AFS+fHq|}e7vO})|}a9 z7yIn)`ayr(E~}xYiyHB!d0OV?BBuyM+}YWV8X-N14H2Zp;`R&{VdmLCiEhY;ryC=O z(8U2gaNq08EsJh;UUQd3r^v3l4j@wrf99T0L$V`(2<%Z_Ar$CMMHTlq0=HcN{s8MJ zw#R12rh&Wd-$P@=CF%%OphN-%kX#A4j}?35e(e>cL`7>B$)~{MY@<}~)orA6q&~$N zI0(0MEEaW??Fjju_cE`+3+YRKB4Y^HTDw7f7G4wR5|~6Z_kRd1(>zcbRW=c!%>^oZ z26$#;zbGzLq58u!Rx5JW#yYb(L7n@s^MLFuRVQnoH$jb-jpQGT43xGl)y4l7zakEK zEaWS(Rn3A|#4j{*`E=g~I5VBkDb{=-yODoO0MevU5bH(406$#cn&f#^#@y-H*w{aa zja(SGgKl*7vY*AjNc^Ju=GMN`V40Q|IPEy8;Ni8UZp8xCC9)^>GhJoxLG%e#E*Wmw z1AY>n^)L4INZiQWY5iuyWf#;uTgd3iwB&~B)4;%+w zf;1OrINxkKuivNhYig`44sSD0fk54O<{NhwJq&7}w;G*dYVQkx6&1aKo6cTAfodGx zKf5zJCsHA4Tv1)SOS0b7CF^^dCOD9n2t168PfiM!BzU12nRSr4^3t4#v{V0+o$nmz zU1(qx>!403ton_07Ee{RWB(yGy0VSC(CdoV;jP|TXLEHiS`*h(EOUq4Pp>73)Gj^edDrl3mOdzK7^J z@Gzj#R9kVF-_4{DB*JwJEmJkQjrFxd|A9~OeDOuiX5uDsL_c2d4m<~cntnk1$O*w0 z>7l|>NX-r^Tcq!VyH(HW^`yvqiTY&>TP6}$WmV`*^#aWkS#4skqy;+@D8}p=%M4Gz zpOP-{1l9D6hPnA@F7_?Xaer}^WcMOBGmm{b`48t_sxjJK@9?`-HcdYyiuuDb^$~EQ zXMN(cxo?>*j5uS#ZDrk<1%=PE)s+=wp|(TT3;1{f=Qr{!4Yt4*GH!WO{SRF&mDXB6 zkHw~$%Y75DOxmcrE$s{PZLsjHu8ti+`ly7=WBZBhNvfq0tN96I5Peom&|LBM0#4|5 z7C$kpCF%xXd~@KUaA$H~QFp`oD3vD4mSdHf2lfMcCspdO%GKcv9i#n+zD-vlJ5r$j zt*)7}R#X;`MjI&zC11Li{)Wt_-r(l=ANZ!_@5pAOg0io~=>j+J?_)4)a z#MQjXzCoSPR4YJT|I%D1lGWaLBN>!01}{Tx^|D+ z#n_c(i*#c%hdr+_1e>6A?7L=_4)NSp_7ML>mL{IEmekM{Q7jeT%DRbevMi-t0!F$y zM9^c^f3Y>5pJFL;OOZhzPJU4YN`@6Q4Xua1r^RAwtoI5loE5ptZp4vzA^Aw&lHI)0 zkr>FE6Q0fXZLh{<&)dnG7g;O1`6j>{$Uo_RM1AuMxK#H$wpi2& zA!BQDX8Vd!k(taBDnRxY<0Q8`my0(f-{4d2e(VEOH_@pG({z;xB`ow!yaa(`<5WNV zYa?^x^TQVLT*G>qFXE!R9;L`tgo*98dIRV3(k_;@cUXo(@;N8 zUX?wcey=}>EZ4o14lCGV>1_PP&dF+LsI5Pz*+y5SXCH5P!_$1uwbofoH`7sSzOQfg z0fPqI65ffoqV4JPVKr@w$@MU7N9#D}D&AwAiyPq^nF+cp-b>Ib&BcH*G+x!zh=Ah_ z&(hz^j@=<9Cg)L&Xs=No8LR0*pgDSlA17%wa15Irn(42U=TOg$2z1+kU%V;CHbhq9 zgp?2ECR-&Fw)LuI>;>v-e3@1V%t{T^R;ElIEZWOdoO3cFDjuV5r>$h>Ky92kAyfD+ zl!a^!P=N{Z0$n}h(6B4}r``bxW&afSl#Iw8&bHB=kB=m>!P@d;i2%dV#)~odkO^@8 ziB-d$L^1?aswQfS?0^NTuZ~X~t8%k#P3|3Zl5YTh(G|$~Nso{jOYF&mXRBMtfcrYb^p0 zq|*MKwOMaywuH|eC2J<$%&n|Fj_xVq=>7?A)MW_{!AF7J$SU<3=X0PBan)Vburqd1 zbHu76E|z4{qslL!r=zF2t=-KGmq5T7WIB=6_*0Vgf|fjSyqBY^{CsSP>r7+|Y2i<# zx@v!5C^1WaTT}!2WZddI!RxN+o4rWq3$#l6I$t6aVnflEMdv9_#_5n&A1&HQuQK#t z1KxaWlu78Hr`VtN;MPoJ_-aHrvhMsZcwP5M>J4=w`U)PPoEJNTJ;nmTVF-fkP+|IJ zc7h!v-=z8E4S@GzPI5kt`A!fA@K2uA-u9+C;f{vZSesB0>oyMISw%}jw=yOLij_%a zBfk!7t8S{W(6^jJWc9=dcLaGR)s1gXWT;K12YNwj5T{R?``RpL{9qk}T@L)BVl7uqzP)#=1uup;Q?I~;>C_tA<3KIim2DD~LZR8R(jQ1q2Df%3$$A3+A z32z4K6}Okav!qp^?(RsP(z)zIRd3uATAU`0oV9EYKSf?ekJ}Z|Y7U`)mhqHwwEY%$ zfOKo7kn?DXNtCk+z8;RC=J4r5lvoP2b%l+HQ`dyoWC%)ZTmm`8TlH_f4`(Ymc1d zbWC@%$*k4!u`vg^5^R&2Omjo~i`)7=NJo5@_d0ew-YWPZ-qkP`JDfGcUBMq4>7~DI zK-11RnRh4Nx}p{HyQDh!)%KIU9~;Vdrxv*OB>JfI?002vx`p1C6%^G{985QCzrY19 z3=sXT~7`r#{>W1N=k@7mn%>xw2B^SmY22UbPpAZ zo~x>d-g$a*L%DzG)**9)rkuj~lj2rPGoZx0N6U$A3e^_1Pkr!wQ`nQ$O`Vwat|Jm& z>LgTG(_Yqqu1=RyH3F~Mu9|456s5B(QN64+nA%ir`F0;7ZzY>SxGg6mcIR8Rr}C@k zSeidyi_%*M>2}bKh_cXv*cRw(v|->kINH}0e}Iljtz*u^28{!&ON)Zr;tj*ONMYwvRlkNPxqGWgNmNV^l2(_a25sH;0gHK%7PS7m$(A)+2s z5DkymAMsO7FpyI^Sz>WbW7`6ZC`)u z&_`b*L!sw#U$@1;hQz2FY&Y~w25EocoMIH_q~>fOVy_NPy1dbb+&6Sa6EEBNaooxp?v8S9^BnX%_0aJ{xn=rB9s%1IUFRGST&Hyg=Q}`UOI?-74I+6XhvuQS@(XY*T{oAKiQ zGd3}=0kPki!?%bd*{yuTCB07t2 z5q`6`6#>LB|9R0ucNh|LL}gng3pfXbKZ2|`NV>XX+XUcxdzu=(D2yH2;Y3ZA77PZdI=8U$7>>m{E zt;;j-5YaU0|9T!A+OPCBFROWcDNPqqQPBYp|iFHSkJ za(>PjV7JXKy4}yPb4~x|MGpvP;hGDwTfovG~nHJH!j$>Ma^0}kfC7aj8r5-$#9TkJ(4d}$f( z`XyT6%&`y78J3wSkGsd&j+HMLZQ)ensB@9*)~+M|E0(c7x&N-wn;!BO!(rf>F1 zP%57h*QMORT&O~v!z@jA2m7SuSW^R{_(!m^HmmYT&GqPuP#-A5M0|hnThi5`!{DE> z8|t%aZ7>n5Q?b4LEVIIRMAi++2$xe%gOGDWy93!HF2D{_Gm;`znQmyQOZT7pxUn)n z$xH@2<7Z?BUnlgmHbSaWacn902RSAyu9jnWEKunwHZ#;k($M-6yAW-a*C%o}bpq2N zFHGE`4>?=#jntm_2-SarK3))bZnFH3yz7*c9@-fY*A;tlQF{GK;L?Y09%}MMVQ=yDnbg9__*3=}{gt``L!1=7- zq3Rzym^~Zsk9`%cv`9d4_;;Yx)b#0H5(j{nia)jc_zU8mr~d8PX4fIEE9c0Szz zc3jVMCXo{74F4pN2#pml(_)RL8ZS zfn<>^^fCG)X8>=UXiu&bBB^|2JTxt_IRs0*cxB*!2yJ_#c&WJ=JsOm!7IU`g9W+90 z^%X$l;7*2SaD?u~R3ewEfJh%P2NF9zQLSl!KanYb)Uo%WSM1-AEHD>*s+l7m!FSWW zG;dW=<;3tZ5gv6?^COp`KZ5DxGjp9}(yfsuv4_41sGGAS@J%yESLkDDulks;WprYE zwhknRBQGH{QzNuDCW`Vyt0H}4t<%20yODK5A3l^6Ba8eq)wRj9GH&d;x+IjXZ=pOy z-AgnGnJiy~Fg88(Ac<&!kVm`0mrd@_*Ckd5?Rgz_b-W_-VmgPpM{^YsKsy{q%sYVZ zntj@9OhDZ{`8qTc9xCU=A4H__lNKClOw5WBc)pa>w<6w!lX@~-X8wrZ_9=8mwAjUJ zf72`YyXXau96+p$J4EYHA{`lJB9PbLzR+@y)SzAaw0kP{3 zaFQ++>PqshugZ5TZ@b=$#)+;1TRc~-N9g&UG_yecMDi)Bqkbs6dpDxT%0APhhy&Ev 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

3HcWJ16kmVD=A0MA269DKVL7xG?RVYH%s;Wv-i+ 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

7m>>I3{vU65biU_o)=%FB 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

s6I)e7QN(khj;#^i4rnd7q4*sG(tNPCYV) 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≫71=*ouU-G|#c^PZ$Q*C>*dWJVk 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

    QdWQYd2>-2FtP|JQsQz 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¬Xw;I5^YQRlHn1KtY8{w7;UOm#;~k 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

      p~;u6g0} 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 dCw44T~S}4pYxuQr&$!B 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

      eP+r*>)C%o?SfR?6+g~sqf-m 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

      wUzH!1Ih{7~Wj^9F8kYl8$ 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


      y8hf3KAvU3k|CVuQL3`6UZ$O_EA z#LJvmvRR-BIt#ZT@zj>m%KQ`7>whOl^UcW5bcWbPzW@oaW9ehIA1aYGF?h{MvqjNk z(|e(51x)ZVItdy_G>)+%AN|hEHsL$94U)d2-LPZ9Xy^OF-cXXpL!6a(ky6Oqx#*!20(LOmkGbDjp(Ym z)4@+ujW|8FC-Q>&9du{I3R+{2of+ifnAK9x^zJ40f@@eg{2TR9chPH52WDVw6@8pF z%z4q@Cnl6vtPOak;6Ui%$o6(taw4MmwxMKZ65AUCzS_{V^2*jKN*_DsXaI;cf zY&+kAT2{C_uCZK$TZn|~&zq2hyPg5UXJvJ{3)BzZBh$!m^+fxn+$(t1P+y)J{8=_w zxaJ=(N%;e1qa8w3=M@=I;w$+F|KQJqK5{yFv=D~P;%Q&HJd$06`CNi*4~$4|8v2*! z@mo~$9A{vr+>Ra=N)VDj2coVt*56g-6CMHq`2hM&nGX!u7w1x)5jRt_-7nB#{w5d& zJ@cY+3w;eGUEXAkCR#}*)#}6?ZU}7YKz~zW7IZaWqTRFDR#cFiO0}efvm_J%Z@;{CN+39bC04AGN$MH9r~u4i`J>GYk`(| zUH$!ZHLMQv1UxmsxStsN3R#ZXCZkYEtA!(cWm&HyI-u5I4EQU&9y^Bf1pk)L2ZKZ_ zEYZ6cBdsIShQULNjUElvj<1pZ&hphX+146w0liSy@MsKBh2SXFoYU~17&76vew}=c zO5$;$z4x5uzOTP|1d^i+D&B^ENg0}aMbKNP$P1}g{t4kLa&M?PKPzxV3{=w|kA(te zEA-h?L0=fE391tX%wRU#loB_CjWF}-IbsEQ7Iai7BQE;K@X6?l{OwFUUq&JDASGTt zj5as;xzkv8d{FdZ{FyN~@ESb!-T@b~?l32<4GK?M+aU@5r+6~Ho%sO2RoW5b@u}EI za74nXH=YG~ksRxXaT8Qu$S7@)as^7%*CM_u@6qFiW9~|}_8f$lVl|;+?w2x$?&9AB z{fCS}XJEYLAM2Zd4`f-4NGh9S{>rMfM`2cSS!o*&YL}6@(m1)dg`*Zw`-$sG$KbY! zxuvUB(?W>f>3;+!5~a`=@u~C~YvEyuu32u~+QdA69bm^(k@0dHT`3r-8LHbKcUkhA zdQp1=SNVSp{cQ)pVqKYQt2SJq=q6XHc3Io#{aviJ(orGe)zOT^Wp zF5zpjl_=>r1v>CM!q!E&eKktQh2^m&$keblRG}%ymXSRyWnAEg{xzPVt7&Z(EDNt# zDrRVd?U6a`6jE^qBKA?M3q}z{+z{v~7Y%~eslgadlkmcvAsYoc8LT6Pn;=L#` zu7&%vJ5xSDCngJ2iT##!n*ET!1>07rOU=f-;$-+Xk)S3%To`SfM@{B-nwI8N z;4Y(8xg)Xl_{)y98kaxbFiM_7tl`bcebdH3HFvql@urShqB4G zoh*>E@Hf$2+^)p7;!HY8+eO%Co(*NCk0qp#(_CA>N52r8X}2>IZU;b$F_dtc>15X5sHDR3W?l7 zVLZ0he~u7JSD~+2dPOK`wn|KwHp2)+L$-;1C2^#0Np5$%CWej zFe!_De{k&to>)uyZP~>g@yN2jx!Xu9VXd=3EO3sDTHt~dtpR4#`=)uSyBpa7`tCq7 zP3lwY@Zd882&9B3h>JmKMjZRiq9L-?KIeIEUqUZUwTKf*Q|RH=21IMeT{jCe(iO@M zF?40u3#KwTEat3uw$McMk4R0n<0a4$w0DeFNrm&H-$Am<25P`}Li9o+6r0hKh|KK~ zTSu=Zu+8^89gEwmyXT$YVlXRsI^Kd!#4bBtbCcw@4tvyH>4>`UF{qWniARNW` z5qIcg*-r0mpa*?O$}^MP#J6V&#*coHPAWLr42?H;;p@nE#1G^fe^We8s*~K&Ca_sz zz*?0(LABzVgAeQmD$FA)(@Za93fpTwfJ)eMdX}-OZ-Do$?L=S{Truy3$D#}oqL{kM zx!k{)U204BDQuSePz#IxPeW{pH!Yh>yhpF|-(!A@v6eI9Gp=>PSk4G<;R(+i{Y%Sa zNDfX4Mu@}Mj@}aS4c^saW*-yPm?^}b=s(DT{Ga|6G>h~Q1+~?41bc%{3ptU;l4^JY zYnhsIXPon0htIp86Wam;bD5feGEfHlMHm2DdZWwVnj1ru_W=5k)#9CVs}e(0XUH;U z4(5*BQ@%p^A-cfi;``tT2I!;$Pwqtv{%Z!WO|3(l3$nn%pmNeR15 zn}}{ix!xpv^|aBC6K*+-F2d267@WTd`y)KT`2!2!My(v{Ln_M4(o2s^N!a7aIZ3w&_#mg-!-mME5QY z#@{e2{&4vwu!xoUG&TafqtnS8`#7~Rf5LapQbB2BAAsx8Yvp{= zhBd?hr4BdW)Q%g*HBam(9pS2#b`?fK3{e=|DRg6Nl-;oyR3_6>CR5$D4Hmc{hIW&WQ;C;!+cr)KK{x51*FbRLd^iXFOampvLDJMdZ zT-#`n=c}hfkC0T^hsR*WY)x<|xY+*#)WYWQyQIoUC9sqD5U6O>u-Akh_)TdSTfw}e zbWTuh_@Ohy8yhBP_tR93=_=YD=Dl8)q}{KZO}x}ky?naW|t@h z@kyi~`l?&*UxhTva6+%R6H!>^9el3HQjav=!b8z}MFaL%Fw4*z{47`mKNCDevPl@IGa6{lpLN~InWvHE0 z?-MWGKD0*2i@)Qa>1qfy*+l({f`$}hzfAU5mVyrOZ=!V!APePiZUi!gS^;e&vgB?c zgX>fl5z1pgX%{|~-$%04J*d9;NW58+2X|n;K_76!JOm^qpAPIb)eS__^~_yxU`Q^E z%pZ-eX6CXRk$d!UtftUF*o4aXS)r6UZT^5Ap(+*Fy*4hHSS3_+7Yl>E&+`Xx4pfVu z6dO~25nZWCf+%OnNx^$;Rq+sE3*;eu+%L@vmx<;jZg*VS9#MjfV+p#OxPxmtdN5Ni`Kaze1V%4?kq;EKIGTmbS zm3GmcQ#Sg3vxkKUa2qnP(V@v@hkbF$cgrSPw|L{IrH1C_QTS3<8n@Q`7Z{Gez^h4f z)K4^*-^q-N8DbMiHJ2ig#x$;))#e&R>?uv87NkZQ-Di#OO-R2VzY*Ay-(KZ)hg zOT(k&7Gy^06pCk8fjlsjrJ(`p84+&RioAMU^$ghqHsiyfy8#2a8QDa%K)O+N;9Jnt zKs%^@=1)YTAIV)9fWPIAO52fI)GIb3u7K$d&%m5q7JrTM3DJDG`UE~2G)2ldr<&Ay z;eMoe^4>ww?m7mYY-8tv=E!_vE~sH?PkXrI>~W)_0HBE0>oxn&uQ#Ui7ouyKrPygYgiw+Oc>eZ;J}O-zINfx_$}s1K$F~omUGl}zOH6|$$r&fUfcQEvDjN% z?Xy=SBQ({NO32dqcl;0Gz5FUY&-ao!7Ip%$Ab)|wk+|gmvJYj1p>(V<=dL` z-PizB4((<8aV;{n{~eqi2X9b%XxPvUMGv}6X?J7;&vzc`*g4cz4x=0<9A zt-aX(Yl<1n?Z+8HEFF}%3E*%8;g(7q45;_`c-{s*(3fIuu=2pOs8!fc z?hIP)1Lz5UIyO={L#1G+eRm6ckhe&j^ScHj#%R(h_igWSGisG+?B)u_0aq9)*yCG?6s zmtTyqq8TdAt5bw?^Wgq^gSboJl`y1*QYWYj<>w7B{9#@~=d(SfG*3AGg*TT^QzysC zp(sNI?!3>g8q4C9&P)q@U*WBU*>EFvqNk&;5BTCc$WPCzEqBA-1xB&~p(`|4CW3M7 zN7D`c{nGBz9@}KLv%X`oj;#?gn_kAdxMX}2nk)TcbYPq;m&w%LPzAE4z*_5-tV`Zb z#!593eq~*W-W%Q^GbBb)?}bVwC)ic^YB2#jVh)AtGn#8Y0f|j7&>?6}G1DV4-t~%@ z>c7edwDG=u7D8C(TIpz{%mU$r$QvBD!!vx<{NuoTY`85edkeN1*z;bpoAPg4CFh6W zN44dYi$b{-;MT$2IRS4yM>8;0sN#*Ht1(VT7Pmce5Z=4+rSG-}S91`9aDqvtZV_#T zG5H2~I9u${K?k{R1;sioJWrei&N}MF2J!WLODQLq1m+N?vXz++LAVYA5ZQ8 zKh{^2H9{J(Oq?$KKo`{B+!gaKYYTX`JDMl?5rI*~ z)f2*eLrV4u?_rHi8(Pjc^^`H6;V5E(KSd}AjD@$9S@in|2O(4Q%&`nj&O|x z#drdY=T3sP)Gnx;vABfrkZ(WeWgIWp7E-CBvJNd3c)W}LFXo=|47Wi6B7|KKYKs}l zRHU9VPM++aA#Y<${66#+rB$EG^HkqgzPi!{m=NC*o=R_rWNwb5u_+1~A-sU!N=L{s zfgaw|0i`?%j^;YTo$>9l6V11oS7MRMgB?Sz!YWbE;t>zew*no=571!TL0qv_DcS5! zPC2AL17wp9>~L_B-fXdys8l3fDpcm`qYGEv=Q>|E%0=`g9oq7ehfH4d`0VlFB_;q3 z5&M9%nIDC|UOA^Feq8?n=@NF_zfEka>m8|R4hqe!^Q?y;odaMp{}cOdkfo|f->{a# z&DdG#h2#?RMi2OI~Ev76u3}k^SH`t52V0ipo$^ZMy01 ze(o5ilbYnQC%t7-z2DGBQ65vrq`$+L;3u#x5w#sRy@P=n`>e58FEJB{PdF*|HVl%R z?B;mv1ovKW7}JjPuu~s$;FIA>Qhz?T^9L7*d}mEbFAOx zpDax*FUm1p;6mJ=gu(JnDDX_9J_nxTBlz#ec;Y>|DKb)iApec@5e6zhB$I89*fRD9 zIWp>t;sqZ13|PU&`m~rU zq`D{nM=ZCEwtZ*2~pjyM=iZ@d8oZyHquFDWnaw40UH)P%Y$4?wc(_?klv% zYunc0R*scD>$_TiP855kXWf+fRRxaRfKvSU?^7FhY z=s!plx{GKQyVCK-SxRnDx$1E$^L_^K1Ruqm_4mYAs%)UCQct`G(pd9Dv&=Fd-fOI% zKsXHYS?nd75a7|LV4|y>t0|`Dp7GqwnvRZ(|7LG#ns2U5ZgT#zrtw1y!ty$1%*I}G z>mwhsof7J4SFr=5UxS`;64MFVrJoH+_$=xHe>eCJ9g_FdlWF~~{pndI-p{R{H&*Ov zS`Js&>@X+5eZ)$jp|C>VADQUh6O1El<3(41i7ny74{ySkn7?_feHmfv1jlt&;k@PYRk^Og6d@ZR2*ZUioGHy zuqNuf?R(e;EE{_P@4!3xYoHIQ9Md*wR$whm;+u+&Nj5nok1g$hWWv|rrG{P9btXo2 zuYOLNK;_B}8YCeYWO6SF}_32tN)iRX!ubyK{i z@J95N?~qEsY6!oxY&Qm^VN4eB3hkCuBj#=Jq3L>{hPUAKdf&Ro)k)u z)>x)09dw5ca8`BQA?_J_m6}8R#a2n^&OG!!HAB?efE=gU-}=@I6ZC&a8rXQG33ds)uX3JS|i zKp*)#Vvo?*j=X@Ko2O&AU#sj6h+`+8W=HfwA`0rJ|r2pyT(#qgT>6KWec>9-{p2fyg^1)SCRNAMeH zKs|uYq zry8O6p>3oV>WEu02HG9^$8Z+ugAGqernSn}4u{F)>M$#aRr=soEd%-H4E{ zQ$a@3Q_PA*x!16*3VY`#hhohGiqZn@o zT_}rtLgk8$sIRh4i9vhupXCj5MF_$im{#oo7y0f)RF(cEmVo)lYOqzD3}%*hMlY$2 z4as{NyU5jG`w9>64eSoCv#}kBL#`?xY~!Rcz5?kbUxOl8)^?KjNWUyADT~sd950ud z*Q0IoMvE-?t#ZK<@cFifDoJGn^)#s_DY86Kg?_86%>zkP)U314b`btY&h1H)8Gv;AKR3#MQ-*#fnFrv@QfvP zD4P;xQ%kl+bY9V2mB9*eeUc85`~4Nz`A`#Lq?9h_S~Gl1`Ly_rz#giC{SID{$HIz$ zdwYYOU^nw!UgvE=&OlG&?}VM$6D&xrQTAew!9ix3sFP!*bH-_AinyBJ&R(TFpWRBJ z_5?R3TxY)u&!`b`1iF|S$^InPnP&yg5b1E6KxM;rn;km^^^G3|j%d59Bo$5cL;oHu zi6z7m|1a=1vZo<4zBqS#7!^@Z-A%>`S8WG0hukfEx)@xwmeeZBb_|7Ahzt0a+7Xc* z)Roy(3}rwLt6v}djUPbgd9H}Jv&UF2`3uvxGBaetTr;kXwKo1GYO6dlt2uY3BsODc zLDP(Sf-Csk_SrK6JLG)nuaofG)+fJ$H7a-t`N&u1Ik-Xr2Pa_-BYyegF?0H2oU<5%*&sOE)R7Rv%x&ME|F4F zj@ghp=t{yzAEvHy)5KyCDCOLJ?`P2aqg>(ifu|?i=#hY0I+tX=V`jOtsN3cCU5a!1DZzyxzPl>wwr+IuO>P zYyg)jSV9%A{b= zt;bw`53EVb+thz>O621LI8Kky3c zkNg9KltV&%d0FT**EqE;XphYouM?Y8;xHF;Uc6{n;eTw(fjd+8gr~^eoYsoNngr*g zwam{g)dB7Pk8xRt%gKRU{4`+8Zu9EvL%VE)EY0XET(968>s+QCIx}=qO&DKek4X{M zPZ9?;M7|laL5bR}dT&3a5*y&sx<)xG$*@rB=1!OY1J}vEz$>;dIKvL$pYi*-VQ>R} zV#a7`fMk>IV*=RhzYyq8RQ8+P#jG{%s_!y6FXgwdt5N_x6B5;339P2fB1=|#U&-gm z@z@7So$Rn$;Kj#zZhApf0^NrHDy-z^a0~qD;(Ts|>7-Cs^?dy1>r$u8X=oRCynilJ zUzk{QM!KPTXgk3@OIwnKLPxwQQv#g$X75HxgFi7Z%&g74$xY7%>{8o$j0aWak=Rcm z!D{1+vJ$kZuEXy3!R^=#y;b{($u+ggF2%;e+Vq=4V(!Z=yLn+QfJYLhKia4 z@@-pAQnrW|ZlqRelkrj3EjgoA7ThlMQB=`q42!Z!rrVZSV{IeSAB81n3mf&Y!Eh%-hvdT zW6X1O3bZ|M8gpKpD=lL;f_eN6%LdDB%da2}OsfPwPF^bOVt`5qf0^_}ycPe#pJY+Q z?6N#*sMw!>>02p3;jdy@fGw)Um4cgmhP;q=8n4MMl`>-&sve`aW;kg17&6DdMw*cM zx4#wJPl*veVqa*d?YFun334~39B=YB2f9-H^ViM(T@Lo${wFDvwSxAs5eX3IkanBG90A-XdM(N~Ng zK4%_TlI7_R28g4i#lGgqTw<{=vFwE@U96&>s#O;IiEreK&?$FQ)u+3Kz?8xKeLlu9 zH4n>}6%#Z!2qLCGxdilpcfX}7*@ao>cp7#=qh3+?!N5#S?TD!wnUB^Mf&QEf+PaQ# zh`B&tkg@K66rFW+6Y1NA)25PoJmZq4P~3~V7b))U?!_gkd(*~7-m#>(!vedDySu|K z`h#6umPHo(=KH^=rzg$Kyz@NweO*~=JWGAcv4_4n&Sm6nz8*7{ertt0BP}pS;jxad+xR_KF}R`=PQMq(N76L-GCODvixJ^ z?_7QC6c;Y;2sZG&S1uc))%K(V>!pw4e*p#MX0;F3QDKPZa66m6YK_!W-B64`ZD5d4 zM>*wKBhC?*iPMO0){8_lvbi|WCYZ0{qwr+xI`RcSsL!%}L9Pb8t1)>4+Zrn-XQ8yG zJb9Mt5SuI?u6m4TQbEonSI4t-&jlI8n2&*h{95s(H{I$iAL+>Oy)+&)ZB!@SvymQ9 zPkbrWOFCM>sDAJkI4Yg3Jfe~o`UEFatE}@V)LdS$N%#iB#e>ueW|+#|ogptL@8f3B zGr6m3=L(oVz#H64`Df~M=Lgyji4%YN){uF!M!c+aMfQP(R8&Q-?@3^#r4CpJrr?aX zkDApl6)M5_0Pi~vEjM?<`c-}BMv6Kyc%Y46R8>5l2A+ws90J+LO zOIg?{-&bdC|JRr_vo&w3b%pU2vbFM-?N$5G(Ti*?HuY{m|7Ig) z*|Oc=Fln5u13Je8zK)3StCjzGabgX3){$CVW?Qcyo_wpP>JT1~4uB5Qolqkv7O7D4 zfW?H4Z71aj-5gK&soX9h(Yv>zUhs1zQ@DT%$|3HdwTj$`HVKX@`QZCQegbtM%D7+P zsg}>=DcLU+o1go~%dGF3x-FU#H`aga@f1DC(E80M}b_! z2xbA@k8Xo6xBM^oci^YGqb3m2cd%S=~X+k%?l=M|^T++sKcWb&;|7%&-aIZITXI=&naUQvJ=@Wq06? zx*XJN{WE*B{xQ-}H_O$M7%aEt=7r70MoD@i!!Z=OK|Je9b?4re~dznFIOSB0?91fDXq$A?oL z_=#|pwGou1w1fv^2dFf*v#t>PhCg5f?0hxbw~vS~i5B8Dqp1brYPf~=&^*eaGz2$yo z|KlH#4XKgHA6z-K*xW&V+qz_8=z?B4E+^Z%vkv!IETQj7D#TfouEk?cbKAXi>Q`>eTQ zb?mur0kR|9ru-GRG8OZVCp)qd%Xe1mn zhRqh{@YS-X!VU1A3{w&z|72=bxS;*{W3cAzh%k&=81c6c@-OuyLf`Nt=XR0F8OD4r zm|A4>-asbkzeCe1Wc_Dm9}!!0O^TQ3$d3L^e0-syz|S_O?jfDRzT!=-8_F+&DNyaI zJ6I=iJ<~uuE39PN8oMBUy)~hCN*U2G6rVg+SV)d3YvN0X49e{Q2CgfjZ1RiQvY#M!?>?w?n9Lv5;DMu$UU$Gs|O_nd&-<-{b75+G6 zP(o%|ANECr%h#i9u=99cb5~sAUh{uRqliBumQuS(Yxy4A3gv!oDBQ<(0u2lob(y(V z+W}CQZOM<&3;W+uU&(5vx zy2<{+Yy}^kU)YDv4BZHNlCMZ?>|4Hi5YkKRRAr-nDm}duKmlszy%i?MU#br;f?ZhL zD=-`U&73KTmrpx}RI~>Tsp-T5skEZ0-^{GAw8PghXVAsw--8#}hu%f(vfy{sOW52x z)e6+}!wKI(X|w4bbeat?S-!V{Is5_cqH>-XhA~N}gX7I-q~GDjzV7rL;7QhEreI^q zzWP)mpS+=TnYSx-$Iy-XmrQl<#HULey=VEp@$o`a^b9nOPh&4Klc`8#3)R+g87mbZ zvZqw;+Hw9B7%6_2Phc@pI<&)by4;QL4n%;Pj+@XXfdOAr(xID(Q%J{dB`olqQEH+O zLZ|VwLRm})^Z`Aq-fg@u!_6Xp)AzGxPcXRmU12IB%1Ik+nn)=zHd?@zRZuSKmY z4Pc$K9F;%N8vO0pL6Qys#!S!^<$m;5cMKETQ7%nms3PzH*IN>FS7{=ur!B1@p(stv zWf=^QrJ#ca&EV$or!+e)F)GMqtGR8~8?LJ8I_jc+vt0}yV_Ty6A8#v|gfB8LM5cLW zDy3K}P#@#G8Bz7XEzhHzx@4jIf##zt-#XluirsV><=Yq`oKhWMGl}i=#;PXXQTpGM za6=Yc8Sq)=1$L4dycd2eN5FlNUkfuJK0Xb;4Al{OFetc$iDoDL-2MU_5P)(_&EdD9 z&WcSz`#_%80gLo4TV3iMD|lMUj>^{l^=v)sM5T(o1zyVqwgh?>xyb_uhXb`GA=V0M znEPmv&ThL8c{r-v&0MGJdUL5&s)enVtwrFmV6y!MF0wu0SL{4?4{{y+BR-NA(lw;d z$_ta;e$U@2VuSY%WxCZQSg)M%&Ankm&y*wgAz-3jgR<>G0!4tKO{E`1JtPqxQK zR}CUYSp>0MFsLoS5>r#LFOdr!fe!E)!3Nx^5`c~(bp(m$u$$C=OPrAblhjm>*7#PO z1vWAtkOy(QY~$e0+Okkm@SvJzqJ&h?38s1AAIdC|-%x*IbBP5?O5lunn+1`gYz4wN zA~9)&_+4tj*aJ@A7GMLosGqB?1iJ}CqA7kcvM+K* z*oW{D#zUN)A6r>JyD_Tr;B<4C@#IbXT6o9!{$QA}I4qcDfzDWrvGd$@H2bMF*k)fm zVe&35$~Hvf9E?Y|TF7@|4c?;(=$5 zG4w$&So#6STiZy*M26=nlbGKW2l9B_BMmn{Flez7meh_Cv+$F`oTO{Eo>Gy171Kd( z$Ig?l*_7Z(=x?^0DI{Z6FK$wtZV z^ljafiP6+m^c6(N2SIy;^N%-NAi6@0^w&dIiGzU&;uSPjNTuF;2&rY&QmKCVb59O3 z)IUn{TRTGKftk?BtP*}h^uoYuSTYW_W;2hd7pmbBB`nHDIG(5zcS&lC);1+`^?gX< z3V5Vy_;>mRL}|`ua0nWn|4->w#tFw4EE1l3M?~f2 z^vLQKH_2AahoSA9C^EjXoE^W@C_I4(nd`)Y$S9Ip}?3tJ!q8s zNzLJ(2(NG3E)K-@`EBT|?8~gWYAIm~URBlsxq(uD73YK=K%)d5`dijv?1?QbJC4ZI z&n}p!O=nlyY{qS2uM6iZtnIeEOjv1J$&UNEd_=i$ZujZagXv1x+zqd&#NiWEArLkE|wOyhO(FYjHcVG^Tp-A zv45ctn40nyF%_9??JV{a1i2$aOE>YO;#W>KPjOGDX8X5Gk;-TZSnGp&o^0O-{XlxG z^`i!gu0yxN3#k%QQsSKQeH;bda(~BHr&Jhv>-PljllAxr{5J|F9&_zgyZ9OWs&}0A zy7>B%x-g{gJ|Mo-|nCRb(jly!U zOhG5G7SVdgq;81dF1h!Zce%D)hmZkJHUEo=SPh|s{hzroG`A!}H_tg6OY^G@7I8$_ zXYdanUos6nW$tA?s&Vjr2%B-VtEaQI$^sc7#z;w;6IPdi`?fQ+ZRs{r^D~(5TOVl< zKBA?9t+*FxMs=~w;62e%Oc%?8uz`@RxCwq9w!$sw0{EZ2GvVn4MP#3_z1Uh4%zi8V zX8m54EexaT@fBI^kUG@zurqMb7m;-{yFN3Pn9eVEt`v*>>0qYP4N4ccn^zPp!^Xr_ zhyJxpCv=#a05#B*pPure#nqJI>H zgm&4^fI=~ja0ll zX0jJSJ@6c|v3FGOA&a%Jx2_2C_k?!bQ1Stmjm^Q#-i?5wH;NdRQ@YZh>)&ti!o8J2 z=v{ud@Ri@nZ5GbZb@4qa;gnyUyXilHcY)6dkBIt~+xZ5yY1)`= z<-h0uhTH-1j3`xClk}eW6aM?Ioz`dE9rxJ;n=@PADIy{wDF#taFu$tZvZe|l0Kx4W zR`5$$z-0v+Se~58j0-36;kFyjHWsbGn7Ld7v)_6NewA}OvW0)U?}53F+fL0HR=r<1D=U8s3zkgWYMLavZ; z$X~&Y^dGoDL{wgbpAns8H(Q^$%l-$-Do+q4_!41)=dwjYdG{FaHN!47tKg)0+$-AhIWf{r@;klt6 zd)3whi>`PjW`!lq*Z$jyA$}aAM`3A ze9bW3NZ9~;sLjGEYQCwFf;oyoYik1=%qPfglg%piYdJpvZKd3De`5L~xu6;In(iWo zal`ob_|k&vRByuqaX8+F_HrqqnrJHOs8We8f!$mtb(HOFZI^5p_fV&i?S_I-qH(Zn zla?u|LX=#LhXb$DkJ!pZ%J-N%v<){P*cV7yPlb=W@pbhGDcp-MvwhZ=&&qF&L zJA!NMpN03zOZ+EVUECuVnAdV2`Hy&QVL;VH>VfJCKgQ3Znjr_UkpUb#4lT?F?Ek`_ zy9!LKb`UunnL*Z}wz21@O-kOoJ_R!H*wLO8s?I@8n2!-T$ChH)g` zid<~$4W@=*PS$JM6Erg@jI)H^{WoVx)&1ggEk;`wc8j2;v4dn-8&(?Mar?4+_Kb7Mb=}n-{ zs(z(3@kaPVzt^|G+n0rGPq|@womfjwq%6gc#9!i;69?qJ^hZlV?yu}C{380%KOJ-h znUp#kl{f+e(dLOV8hYoSNXsFT9ZFx1yTu(Mj9Tg;&bW1peJQZ>JXrgIHIXY3Jipj3ozg08HG504ygzo6WK zeudhIso<)J1g)kRPk;+pj$7s+mFQpiRy2aBr(D41BdZ{TT$2unek4-R8U&2+&C{6vS(o6$kNEQM@ zme_(#wp9XS8XEhNnJZ@^V(x8iO*P^A)7!_~Q&S|Cv#Ysmb$Z13pXHDBtplFy(b9V$ zByGxG%B~OO$=jJJSr774_{P~wIBobALa>@kIYnz6!;gAsOsWlbxv$$N ziWHLJ*C~&KfBJS&m+?k$y0|d)EBPoQy1YNclYP-Rl?~?%?V!iACk)TMAFx|=Yd9`0 z+LXfNgx*LBw-;OOm{U5#zgHfv99gqa?huRc%lT&F3BD6CKX5?$jr|~GG6$8fIqCFy zxM$UU{5pKBsv*)T{(yaneO%=v^r-4yUCU3Wv~VyX2e6gb^5VqD*ingNON3vDL2RvJ z5>1IcUlk$NLsH=Oq7MCr+lfKJnQ#qd4A#wI7yH=%1nUCNxm&W4+zK5G>h;Aaqh@iQ zlGCs{a+*AduY^rhoMSYXmM}~J@;qs`dd()P`3=HYJ@p4Sw7Dt0SrqkFF zu5ZkAry705`m6V%SxKoeH)PSGEwJ(`yLvztIl^Fuz1-qF zg&kb79CT8HRoj^*=GJH}VS-o#Tg9I94=&nNzLI+C+9T!2&e+pgQ^g6?U%pAsQYJ3c z%Djp`ZB1CyTiE8U;}<}NpskRq4x@$mJoYrTA$fNw9g*Z02!B4L;egcv`lckvED|TquoUX8h~G?vhkZ1Ga3wRG(55W>lOU9*I4`$ z@ORP@xGr#|OjW1v!}aoVgYC?Jd!TZcGG}Bl_5(% z8*3;ZusGmZe05u2q8aso?eDp3P6ajiH!;20Uc%zwPyaaKe#Ji^R`D4e)<*$9R;;8_ zGgJ@F3#N;#!EeGzu`iU~wtuMw^mObkvlaCQI^!*TiFkO((wQ%r z@LHPbB?xAY9+v-vyy~yyG1qM$6G&pOBa4*=_+jBZq$#VVVxCjQ1t|yz!S^wwyp{P4 zG?*+FS`hy$`Q+Odyr)0wPc%$`bGf5c9e7Uap!@)5uo=P|bTYi3v&jkKQ1q<$*!o{^ zn|-~~#2fGJiC<-u0A#$4?AG2!uabp2Mo%kMc-M-RTujAT@dPMQ^xSb_mu(TYz*0?3 zH7^ee^eIqC&56Bh%*Z+qw^cTP$;uFL+_>QpZn zXZ=fhj`#7u@?JK+1D|AduEZQe+jH~L@4^4EdWI#6BM*81GyXyU;NGaSsdn*ysarb_ z+DP7n>-ZJAZFm+bqMg85@F(Ku*OwhKbgQh%4Ay0-iN`;Y1hh2+5x5uJDQnH;{Rde z9WHT~ZxK0G&C9&8KdRV7G^xlJ@B3#FMG1R>0WS~C2?F>DSd|$SpoXINtK5)EJT4sMc@t<2?68Z84Gbjq zsX31Q#0DtG_p$V}lxl4joQ8bIr{OkpQ?86i<))Ln%WErtF#oFTz7#@zh8Wy%rZNGU zER091h~@BF)!93^(pYelK7r38n+sX^R=LXmYsz}GvHiQ4K-Ti~(@TQ8q>}pu|4#0t zn_&a3y$U)S2V?7{Le)TU1%t7yzzeHJ@Srb2Q0&BKi8qDIoMC`f#W7q>jcWozNEn2{SH5H&WsIi=0Sg2BnHZmDe3EZ!N1x^jz6u%YQC;xWf zC(#z472Yqj(juVg@+c6WGFohy94ocw>xn0n>+ndXfSn3olb(hmC3}$7yK=FDt-f*W zcHd;|hN7s9o!!PA%qL7EUBuwu2USn%X1|^?fdX51I-?h>qI6jsl?#HaEE~aTZgUZ+Mgv>-|q0 z4UG>zC%RT@rBB}NMfLH^f!_AN)MV#E=7_tJDhn=BGp`W5)cz3Dzzg9Y$Y)j#tN@!) z32h$?aDNISoYkJz-;ozJcxB9HK_(K0A|)hvNA>DY~GOl}a!R(cECr%GlOCHjpXqMJ?<%hO?gG zqx=a`EiI|qD>(!8d;$5n)>O1QwB)eXFpJ(UVI>gT~!9XuWagsYW@X%^<-*%_y zdL%RsLp6tdX=Gj3hQgE37e&j1Y^`N_@&{svGRm+N1e9#ghTt!PHD@q29EfHd{CvL&5@q8e7i@ob@F6M;Ti?}5`;A^6RLW|IvDv(zy3H)k5Ce*`5 zfs;J!jWCtttEn-;wISI05L)HiVRd<1Qm4oh!Z}0|P9j4^N%$N5Pfn5>!<~$;N-9-? z#=FYHg@2f4_=j^H4M(ueVneu(yRZBglp$=jxTu$`G!3HVJbxPM#&#%&={d09-wD1QxT}6Qn-bROLqr!_Te1hS z3#t_|sgsSaQj@}ol0ls%Eeuo=E5jb*sha-UUe=c=zIsX}VjiHN!Z#!>DNeUW+e?$@ z%YrmShcHvPn%V{zVw;JFqJqebXoWjQIgsM;C1FJ%zN~lUua;Jt?fg3-Q=PkAHxx%) zj2y`H^puB3Fc0A0(D=gcuw0Uh76p=XLP(>SojI}C-Ke)xrKQ-7`~P67Ib+Q~!y5QS zZItyY=_Ee~{<97Y3_*r4eK4kYmglB8FL$c{BO0L@P>>DXzz+(?HJ?orgD)VbqQ&=$ zPoQ0NqWqCs0cDE}{9L7z%#!{M?p<9+e#c$&)nrGOZoC3=ZIvUdJggZ=-rnpIPYqF2hyy_QeQ|PYz1wSlR zU;9LOMs+T+l&xa?D#^JJM45LI36=YhAF`9_LF{IspayqigK}H50_fuHjvte^^O*{* zdK|TEKbpmM_@X_N{pCUxYL)te<_V`NB84ui0gsYXgWW|<@F%lxb#r_Ka$I@H52oy) z4tzfTo3I?J@4rV6t?I@mpabOY*iZB`e6jE;Y!l|8aqKHl>Ugf^NLEvKg@4$ml^PaN z6Bj?}np~@dRQ8TFQ{B*~f+5sPv>v|KIvV{1hpDUx#ZrT(K>Jye0S&)1Mqd z^rpgbJH7?1qa@tx70=Br}+%st$wi`PopGD3aj#;v$n7oei2BVftRD219$;?;HAiY%tEpPJJlg@{ zU0@sNqSB`Jg9D~pL@i;6N(Zgsfv^ma$Va>C35{VRURl}6TZTU%Ckv2NRqdJdKt4$R zPIcC+&u?s4+#_lV56f2h1JVV21m(&+WE@u$S1qpCCo(p96LFWQhF3D{K>?Co(8w}E z*@yigr&nvDtB?0#=HOe25k(E-;>~AN62k)6gxBBQ_=X!;U(>bDaF1n`4P*x(BL5y8~{jgSjO&0)Ap|=-F?@k`Loy_<_JOL{|(^ z)x_p8jo=^QdC&&kG}ptxXVJ_Z_C&x>gdg}=#un8g=GUxIuF=SPOo1NQu4mW4?~=E4 z2T332lF~)WOJmVdJpF@w?gP7QJ&;;s9e~bf9}(r7PGW_mJ2by&E~6{?(u_ zg%Yn&8e&jSU8J^m%rWK-9I$@%{A=rJ zOoi5~NurC|ANXH*|ESHXb7Xk_@R)({24X&XTwB5uQ?hj`uPB8_|<)!A-(z@_WHH;!fb5lt*u7JCG&Z zEW$%gB?3$mcbHiz%qAPcJ>>TGD7|0`V&i#V@Lc6hYYzGVpFpy~)%K>MPHZnO zRVf&c;GWEps%NhDNNGGp#(|~AJhFt+i<>Qp!T{6Zigu<|LI@#)rN9DB<Kulr|o9zCRye%mp2aF6lMZjGk?n|AyF^ScL zZJ?vqLM=4BH&>v*+{VHhE>O+b_@q)y)*j%SxeW1+Ku@6!V90;n1(1{Io-=}45MD3( zZ_ON2bMY=0k40zQR$YLTwChyk(!cP?h=izpd~g1I-lqJ^U?K}KkNL40nQ~ASA`h=r zM5<{-GJeB8Gg~m+!W{1Bakq`N%g@7pYr`Cv*ua!#JrmMguc#dCs*S+vz^|PjxKSD^ zAm!Jru!9HSc1bn8j=TyQg45tec#raM+ZtyaKit?jXPc`D(@^=A7nl1uW@)euHmE9s zdPS?SC+L@?NysSWo_L2!#&+4yLnxaJ-DHe}4Luc%C>7v;q>s!^LqerWAuqpaUC3V5 zKf+d%eWjLEk}w6FQM`^7U>kTwO~4-|cdcqposLekx~X=S>RLCkGgv>^EupP_P1O#( zpS(iZXuV6^l$)~|K>Z2g7WOeFU+pez5^tH8<6|Hkek)G(bVW1Nx2?WVjFc-Jm*04& zah-h!$b8{H#7msx+F*AR-^fcGET#l`TJ;ur>#H4)@j?>u{QsL@+Lq8tQ;+iM^pd~= zHp$l5`#X1+K4>n2&U4j>R_e5EKVE5U337|l!6|m5Tn75n380%}r`>}=aX$bj*QN@~3+}BOtEse-KWL{8l2 z=;!&kzNX*_{O8<5Ji}Xy9|A4FVbIO;KxJJ_@{FN$osK)8In#1S#8_VrP`I z>DVmWkCWbj|WX0ef|!+FyfBk6sGG^?t`-v{mSzlfG}Cf8rwCpQar<^Qv$*u+pB zTW4uMU0ZHnIf7XfTqXAR@5fh(?eS8-D71na$MeY3igCX81ckQuoZ`&hYgBdfD5)i3 z5XK1Ga14InyF;Inet{GpVN`E^M4-Alcfa zgNoS<+Z&33{{=^gIJgB?gm(uoMY(Dl$Scndb`RbXj$v10kmTudEwU}Q8vEgojO&5* z2;88mDfuGFXOQDDn4g=|nqf<$uqEtx<%0TmJ@G$O?k6dpIH`^}OEv`*aHIShpKcxi zCg3(9iugksP5hlhVg}8)k~XB%c3)ymRs;s>=88Ru1&iN1Ma>3brgs9JX+9pY3vU9M zvaf{#)J%C^G=%8=!(lo5t7ZcADyn|?g0L2vX@Xd^8XnI5SLF50%u7bTP_dC2j6*yC zz16bNckdMI@ANy(Bq0;67Is44JSW7V>coE|NEcdUy|C?#ZAyRAkRTPii@b_FhR(!n ziGA4CflJX%!2|Ej@EoR}jJfiPAnXC%5?T{k1DZtEM-S3%QuMY(qPAKGZ^d`ChxVB183p~B8sLO*0*NST$m zrPP<8GK)S{-bUIdr#lp58Zj7K=$pvZAYOxSq9gDyze(v%EX3WGhU2d)(!t#1n#LZE zYl4kh&yqwGHWqq_x5c*w$9gX#FB}LMW1UhG9stZH;jpxm8pih`8)96=Fd_!oMjaq9 z^jCCH@_zn`zObUDe}v_gYW^xoiNf{p4)A+aeFu*`GUPk{mfjPUiNh5uwj3v^n~EQQ zN0lSt7*8?xR8NI_Ndo#>U$_6Sg*$Oz8 zIzlZ=*a7b~ndlWl89zDJq#7%CpzruFWPozUicnjSiSQI;67oOkw)8tQn;9q@#SF8; zPh?JtCm}0(*47hSj^3f?1=2yW>gJn_PXUg|?Up~a1Hwi#)#1Bgy=aqo1TUaA5DC~R ztyXtRvkSATRQ#R{l-YXR^Ew3va z6=Lb!xFoc&>XR)QltT^WTydOKN%Ddrv_LY+pWzeO9Go$(Ri8Che`E~p?;K2pw-deO z1w=b;ht2MJQdr+cO*XJb;=8{3vdW2U?x#-@w0juJ|_=0 z^%1YoGcX7V!iOcByC*RU$1SsYdvXWx7w8SX9@G96~=~^ZoI*Zp?6=1MzHEtR8=syg(1fdf?xP|1lQxRMWxikHmVrQ}y_+fj=md z0_XTerSszv=_`Sg;RvQ$8lnQdD+(P`Z70O@6{Rt$s=Hl)&IGSu>5NRIkb8W;B^*%= zDg&&sqDFovNELDBhQXRLgbh>D3|FwBni(om{)wS@Dl=8rO$KtS98ya z)`ZdC@8lJTRa1j?EJun~+ond$FpYtwY(G*>o$FwMEegW!4o?)CAz%I9p&Cwxx#8a& z9s@=cUK6syPw5|)ZIdrm==^-UGSqI6d|;$7}f@ zXu~c#PnInPLn_aP7dU5&PHRoIyR((6Ed=ENyi|B9y@pKGe>^AuW|En4{C0mMUxf7w z+}J%{by!SAdZOQak*mLlo_Hdv(&9H)IrySb1YYhI0=e9I>Nijsyq>=Zo)D~L>s6Hb z2Lzjho3Ww7r$LV}AcJc2MHfgn&1k@2oZjU&qxUM=DRDW%1*g zd+2t$e$W8InO3G8euOxbQ&h(tZMrHxfQGpbme#6*p(15*#AN8Gkb~2lIp?7xO5SAY z!%wvg2{yG2#q|EX^ zpe*K(@G45+GNGPTMc!9{v;ByhC-!De;UhsG)d&5Wxkgr@<>fx|46ZO!(T^%MT*ukT zN14k?;lV-Mod!owEM2KieC&PTmZL_-f}5bGE}P*){M>h$PQbb)EW9dygY* zGS>pVUNO4}9+lEjd4- zw*LoS;Vpu^%u0Tl6G{B;4QU-<5}IE0T+A&1qh=?8sxvVD$2m`yj9Qvz$< zK2*bY6|dy_Les%|-y}K)TCC>T?xA^>FtJ!A8E^45fg>EJs+#lf;dJ5|{|Fq(`2fA3 zmiua3EvQvYqvmsid}AYLh>0pobClzn#CU#GCW2F9PfJbT6#AVu)3imIVsPV`1y2c1 zag)Ot8a#|^AUDBFKs2R8|6!XYHx?$#UF`Ydp}02KdM<^dg^S#5F4Zm-BLi&nr zHq(-+g&u_(Bz-9V+tyc_0)CeY*eH39aGDt?yu#Zd`-Q*p_P%gs2@9Lrg4J-mXMz-` zG$y0XwdHR3aOM_h555D8z0Nh!@3Z}nUr4vq=Yvy`y%}xpq5PxlLcF83hW9^}es6|X z;9hcW?3nO&;U~S9;qLTxp>FncXej$Wp-TS5ef9Q;(OOy~m&DbP)54xGTgdC&No1ks zGY?eVyJ8*t#czsR>{om>vrX1C_)fvNnDs<${+wx5 zSUX!a=?K+|jKBy6Q6)`}aZ7^apGrJZ-47S2_b5u8AYW82_nInBSvHg;8%)eCd|n}u0`PZB3)L+>w=lY!gv~cKo#;mh=trdCLg_nYoIFVrT73VlBQdd z#S}1`=}UAc>tHS6=HL{(5mS6O@EG;|>~6(T-iU5y#-K76NiQw0>%WH`!&|_6&?E{A zyd&MjAO*I2#H*M($B7A}H;~l~ubfwWig+A}^47rCx-+C}QabvJ`Jmj;k}UNGaeO`g zqyLteESJG;wRyg!%u4A$e|})2rB?8UZzO!*`Z9ba_XHfn_7Ou$@Gz!fVqR1Y*C(iBN=s$|V{^_5OsNRE$0PBcw`hlm5AaE=yTlfyPC{oQ z7rzD1sHhupI$W-J8E$5>G;fh--jxAAk7MVZZT$AA0W6=`9aFJ*c%8sB??2c|W`a;< z8x?aKGa#R`2CLWZ+hRQ~DVBA?8Qk0QpA{|4oka#(%;Cy1WjcA~t4pNj5E za>Ds$0X3qh!8PWHje%#VXY^7r2kVc$cc*(631i_)!qe!*09a~q7h{{6{%0G^W$M3k zi~K3rWA`;|Pw`4hFYWN2#V6WXxLTmP^4-(bH;)(=Tf?gdMfwWvH~3mvCuOqw4&PNw z_J0!3Qn2}uX$8Jk_*ZS@40m*3#{_2EN;IfBzvy_5P|{Z5<+jL0m0@uY-;cn^ueug_ zi<}$TiBPU>T%fiNWsBg*h(Afpd(oYtqw{o7EEtis+qu=Y3+ym`;?p#9Ku93e=dK!` z^gh%b7aZl^bL)aNpg3`993ja#mo13q0HyV}4MM>HK`B5{R z`=9oTKi%6Z5CI=E{{^;1ZS%adya>NxxamESn?bJ3{}DE@V1aii(V5wi^&x;)-AoKn zEBpuX{HjZEuY^X#Li`&@lT!F%6@~L{KISqv&q7WzW6)WGSY6TXYR5l3_ZYA zO0ZI&?k&v*S?K-B*It{uRr2`YMq3Z#W4IpCMeIxOB!1#r^mDL)na-kB|0JhWc+q6B z5?+i{Pub)v6<%>7AB*c{yPBF^h19`DfGd`v$&Z+O_6>~a@CnCMZcRG!lzeTu3O(iS z$XhF>NQamkm9MO|!8gK8Mbmc;8_6#wgZ~yb1TvX2J+eZv%m+=}XK}}~%lm3=(LhXx7f`e>#k$wtF9K-uznz)Bd<(k&!mP~STChjLOriH%< z}}r2<)2Ssx1dX(&|jGVBI7H|LCY z7v74!0dFgr3V))fn=<`%kx&?vn~?PbP9x@!3CPayGJHDY(Hu`6inS0MW(`vQMb=l$ ziV9{avX9)0e=sL#CR?|b+%`?bO>l;=B>X%^A-i3Fvu$w?c{y4y-;Wsr@3MKb-(hR9 zYGJLhD+O!NkW!!BOI-5ybappQD``fo&8tK+Kx~peDb-k;*vs!P?v78))A2Wm3t?}a zQ`pWCk2G@0SSC?Qc70M+)VV|%))d}EhkH7)Kae1!30x zQdXMw+WKR8%5k@oU;COmRwidVj%irF+iaYq{Zd z*1k@iHyxdd6kzX4XRzhaSlWSemhsSes)=(q>A@V78+%4vDVPXaIc^aDM(x7yJAXQR zfL`QCE$_31f`M7sjh(03z+Z9CpIgaz`COT z{pF6`$#-SWpJlJP0=G|Ij+N%GP?w3fGbfueb+5)WiH|(7{P>s{RiS1@H!x>FQ}7SiM&SfMfO`N*=o4bQbk4riJCq%V;$RVFN;(3% zGPmKuh=+Ryjv5aTKS3tBAEB_?k;Mt|DFfYq!ewy2W38X1s#2LV){vVCVmJO;5JmV z@T=$qSAOIoS9eD)vo&g#ZLM)8wGg=-*4egGYM;?xI2y46oFWG}!fg}ik@^GldHqXi ze{38!%(7J5u?#I79a5+45g#sG4k5j(z@rqMb*$VbG9mLf)LfP@JY+CbV%sXNfc^>a zgaDTZM5HzO4f#TC(~o0k6I;qY>Z+}~Xs@i@AqJ;kjL-6S2|VyFgSxQGv2_IpK`Z}a z!jan8-f$gGonmi@7h{4wxJ%yH=<6v*w2g(6nhEU?oN zntTll1@pu>VWqc@y}P>KTgX(1Q%IN|Qvt9yg@q1WO>4pp0}qo|r`JvrHSBFdteiaRIkHzLG*OaMzMZ{d@UvaAGU0SHGiJfqao9@~ zWtE3QWF7f0dxU-ltBWiq-v(zR4)m?1gR=;ptj3qbS;hqy@Cz)P1s7n75O7V34s;T4 zMTeWJV!es`h2g3x$x9YkAMwM|tCL5u3#QXhSK|{Y8*37~13Tkfn2_n*Rbuvc#wM_h zxP#IN@e^@`909KptH4X7>lrmY8B}$$0&1$|1R!#ZdR3#?jO2~9k9r18M)Cv!+d;RK zK5%)+IAor6i|q#=ZhaAVhjC+xRiWg-3JCiz*2xT@?j+wqxnF*_~KxypSD^@8Umk;YE9u7tRCxXsgQJHScFp z5Qmwu$wUI>Vk5=);&5{}&AT+pbr8Pp|IT&h0SJwi$YXv?qeop+&BZP#iD;=FA>W&G zz;dUVX@(5&%(0!b&j`E`T-ZmmlgI^zWneQn3+I7vo+hAb!OYOYRBOmRY((x)xGsAxtQh~s zq~s(>W~5Vi#XxJ+&vmAm2NnEj%~_gVySx<(G|2w8AZM` z{qikIZ-uvr{}Ua?ap7l>irCqyUA;|m>JrZE59ONLg(OVQuX3I;K$xcJ(LlqjUe9DT&dx5^{H)l=%0ptxe0`mGZ(YwTZVjEZ%RSE`xC)z*la{OYg9dr^K z%N?ZWt4Kl$4`*+g)!n%?QAFucqA@*pU2&XY9>@bAF#Ie zB#mH)!YNjYs10v%JVM)BRurBnt0|QQ%Rm==QXn0w4_9!DlvVUrs0Ls_q%|JC?0A7E zB3~>llmyimOj0w-k>@k)_ulx$8Lm@$^|Lz^wxLV|7+ z-p7&Y8zA?v*9TQH4%vrWSElB|ONj|`iSD)Bi;ae-%S3jEf(!1k2AF9bl?X2q8##fa zc1fqS2%&B4Q}#}diFWcm*t@=p;yK0#rUPV_V{E46D=Bb??SseoJL@j%`$?#lw`dxY zQ&5%Hwv53s_^Ha0514ert<`675@%S?Eec%X@-J z@N%)EueSODUql{IY3PvOP;w(!j&9`t5uZrgxg9dY4~&LgC}e7fBM^C!FHuvHeTkOj~UpR;Ilq?8Q>ecjCjy=~yU!hF00O#AiE_ zab3(!F=dup&rpBR*WeeVlN&F7%x=LBNSWkzX#GDC-GH66EOC1+F+{^`Gxru=qRh}G z2kT?M_y>AN`cc+hwuyhvlDZch>d?sxv3kfOzFkHdW|SU^I2ev z;XK`0n3~$0{Sso#p9qpQv_k86UB(nImfnv$9`%NGh>&rTuo+I$T9x8wBM!w|3 zldcx;5qw6?wMw-imQtOShHUH7a(t5dv#dRQ*m~0Y4@g!G+$^>fxrr^1CJOttQ+1kD zs?ns9~fo>L+*#RU%EghQ0&rZT>_Wnbs3+1K&{=IPLCEBoBUo>JUVxf?(JUqLR8H zb4cPgs1^Gp9@ZqwbJ=-(R^;xaKJ>3J7Vl zaS$=u-k7Ipo%}?M%E$x&I+3O&#O)rvF??=pM@hg5hY^Ki<>&ZH z*o5}S`^hHb311j|Lp({QnpZ33(hJizvM;^}{{vY;D&UZim)2421tk)bklVgP@;bbL zt1m=~0RqMh;55+8&G1sJk<%1p

      zFwYBYp>q~vb{xOyC15BKKo!SkmEsYBB!9VRS zWl8EzwnH9yyCG|+v#ZzpIzY#SrTkUu0hR*{@O?NLwy7VXL$=0=6MVb4|0(;)Z&owh zfe8cei$_7#;NJKud7AN^@=D9n%3iO34E1NAm?`Fe5(kX0rGRaTZxXpR=f1x&YtUS% zi~S{}UaZD_3~3TrCxwFJJ`3>~UIi5e)**AaWJKYcIb9NO8we{{%YtKYJwdDHvE#J6 zhaY+7Yv}7`vlKi>PDsy@C$Yn14Edo9E~*djM5~(p*#oe-VNWz$a#dwvX%xh0=B8@# z1UVNQciJb7-z;eNHV_*1G=_4fB~0E6Kl69)wBoeDENRL7PivUQEbDn$<`U?sUuRe`JwFBv=gZ(_U0~#4D4fv%F_;Y`zTogTKp&)J}dJYv{JwJSRvhz-7kopL?VjlM^=i+5ST=c*OaF&YF7T^~(F@6-k_H{5E=$h>8->k< zozzU}jBOkdRCj6#1}!ZF&n2FTKlxP8B65$IB#t7xsgi#`W=M<^%Ti0YwL&;ruRSyUADKkIUS7-jU9ihICJ zysI6@wB-Rv6~>lrWzXkZh%(18XBF(UYpCZKQd=O1bwy7qMKYb>zM>+00R_s2k`v&q zW1co|>(5W7c2TWMf3txqwtd?{td|(|hH_rCAx%^ft!n!2(Yfla{%AAe zP3=5>WZnC06+Ds-CmLddNLAk|>;i8CCnM&2pQPQ7>>e?T1#Ck!g?&rzin9QQZXOkt z`k%W~;YH|ESh(=g-N04=*UerU0Q6P+_jHKAftK5g3E~$_N7V%wlZ+dxPmk@fufsc8#)9mQRX=q^_n!x2>8D> zOI;6agO=m7v$M3{bsIb_7(zq<3qFGFp7>PApvDNF;XBrF>_ABsFanfeUy&E$C?*C) zq&jRFIK@ujdW-Ef)0WB73aiE~BAb(5ain-0JkeS=4}@g}F>o8(bz6lkg}chF$D1Pi z@eqg8I8$tk)?gQ+6>Nfg+P{ zue{V>Ph4mp!HFd^?7QVwT4pVSX%M^(-N&ny9<|jrbrl=AUizAs$m)#3FjBz#N@c9d z*|pT$1TkRx7O1REt2&jKxMoDO_9p+4_>G_8Qt0QPsq_WO=f{d3v<`JgErV=u{XjAu zCucC9#7SCGB-DRhc@;Y$q9gnYzNe9n1nGyrDR-4T#~v;Grj+@5*z|&`+vcc}%4coF zHpy%K>Gl}tmD-Ut`H6%T8TQZ|cN-su{%5rKf9Xim4f}fCrEJ7{7kB2hGt}2I*-ulZ zhGxn}@-Wk!J)%n!D?~H$C$kl`=fWBH*<--BqHas3o zP1mz`0udS&VIFUF%~b|b3rRvOh4xE@WD`0O?F=oEc01i=g z;1;&Pe^*>8C5x>}7Q_AM%(ws$C7q{`sNe(8RXT=bpnGJjY1!(>&LM$_l2PKu238(&f|K#fMznAEaM_%`#iofZ-TS=yHC zhFCig7AV$iwM#&jvRdC&V9$oG+c#HOIFosBSwF1N|d+ zO`V~1;m&G3$Fb?rY7sod-5J}P?r?pEfBJ4?zp-R@sp)vwCu~Z1eK{jx15^P=#E$2d z;h`j&`Iozl?P}Sp&*6@m|N#V#<1nZ-Pw%ln4v;xIz!(&rwU{-_WmMb8YVWLVd&pbG`>ENjF#bOFW>>`Yg^X z;sva}+9iIEHZ$y0_(erT#97rkf@*+XCH3?J^;t;*(;+{RK8`nE-$+bTVPoBdFt#y& z1>S(Rvt5xkDW6eq!b?1oeJ`ymYf?G^+kt+;Yv2iROH8MAtQs&QVMEDytTtJiJ`Zzrtr<*J9**+;p=ISiD;e+%U`(inO%Z#QR3YnuP2vTr zLb{?fj$HZIodNzA4|B;eGlIb-=`X)35qo+Nv#Ug%j&HL)!s z@_ZmtnoHtPhG(DmHXrW{NgRtM1?0d+e3>vg5rgM){{>f+-UNMYRRcY&D+I5U3Z)id zz9sB-WVrR6-3E@R1Juvz1xGvehNlwJ)VdOXp0cHIUHFHroq8u(Cs>a^leaLmD<8`X z+?}kR5sO2{%h8U<_zP}jXrieFSLPmH1wb(eF^LuIF~?8qDO)+a9Xdn=9RsmF@C?nk zG>SWbo{@%gf7)9a&iM-X3}~vX7tLT_{$+fECkZlB=cIo2y@-?4JD!Ps;LHB8aYLkL zVp-u}76L4!kvdQxbQr>!gZ4=d&CiEDhSOqqI3#3Yc#?VzYY*=f-jmmuTEhIa7TK?u z7V>}MX8bj=EvGx&pV`Vs68*8`Del;|{4>W$`7m99c0>{6W_}bCC!H7SrUj&*SrJgX zkhYPJO}%FgurK6ncD{RT;u@|gzrnFr9WRn$e=<70ETUE1QH{;|F7+dODLMoBZQK;m zR=5le2&r$4Hbi;Wh`-HO@KsXHklU=BKNMJ_$|EPMPgvZ%*j!-Gqm%J{h&}Hlx8H8d z7>Az1lcHwkY_V5TJaF5PR{DvFv4PiWHSU^iE@o51sS;v^*6W)lSC+c?IIJIwQypAx zQvx(bTpy>f$MIiiV`xRe2RWZzPIdKM@qbhEgdrqGJcKuJlyHKz%lnjdP10sW5iPtpT%O+psU!EK26~Q}$5_e*5j<2+z)#t|e2sVuyO&HZ znrU{y-?=|LRpmRSY~X-*k{4qWG_vbQ{^nEwH&A~Cj*AUC*_e_3Q-V)- zjs1X~mFHv*=U0UsjNJhb2Xl3PG(Ze9Kq1Y=Nw%TT5#488P&mTuJRp96ej=Z>E%S0q zVX#@?iuGKvQ>uUlYHt=N0$Q(58 z_bt3h_5{?k|b4H8t2$-u1Pjv z#^c-QfNe6onXK(Rt~RIV)31;)(3ZKWeTRqC^H42wxVIj@6&fH80YjxAJw`r;J&>|6 z86U)ks9eHiX(7~#8xeeCNW+dfu8_+~D_va(qdDz1d^*@e+l+Ywe~<=#1@;-sApe)L z1JxSQbOjiXHHK%D>ikcLhYZD!7b>B5G#Xi3X-n`ow@93i?IiOw5=nt`xp|*>DkmJj zL+qd*3ofFmn1m*v`^h!%N4Ofh1m8%#4fdnQ^KY0Da=AZ6O)hH)PLtYpjJinf#atdX z;X8_=uc525$@;T+06K_lh}HHNu@UACrN9*wW3Z8#g8`DVDHWB&imNg`!D-eSK2g~i z{|?z2IX^W%B?df{eUt>x2wBMX;OpiX@E2@za(JYJA893gyVLLMbL``}14_CSsq3ZQ zH61EY{3Q-tewF$F)7dBMCKGP<9s4w732kAf75jwI?!LK4jAzpb&^WsYdBHif7IAYZ zJfxABnHuF!$ucA3<1X0Eo+Hj5Xp@2@-$A;4wy9*YIya;p^O9n zbLp1sRr)(9b@ha+;U4y$c@#H58DCmOtx0WT-WS&fH7T=PsAS3M5eBiUlW3Jzxxq)BSy=w=S-Egf@s;YxCw#h%C zk+#-ifBhM-&lv_Yps!`Olu9fJkZe49lD?uDelk@oP??E_s%Z}HeWgDr(NPSR;Zr<2 z<&8k2-aEsosqjtH4POwi1@lTD`GRIno&-e)Ir%$+uDu6V`OIqyT*b_CzAx3-dXKCl z$i{QV7tnq6CHP+vDP#i3fVRV%Y&&hOrT%j z5EsSw5#v(q*`L&{375T?yScCl+LUz%>J3c`u6B1qD@&2?N^o5)Ly8Z<><1F2#vG=) zr`6>2#V0ZwJI3WO(hGRMvRBQ>{F3qr)Qp^tZOMs&n{b`w9O$Ff%*==b_+N0xyi0t4 z=#ox{HE|&B&S5eZiQ|xx+KpU+W0~WaH*z?3LuwLCW^X`8lyA9umw?t5SE$XUt)&sz zaeiTur)*p-%@f>2d8zzodgO&jhsXhy=_TJ%MmJZJ@Cwja3V3)}i4R&$C1kp{yQhcxp6`h_ zm)i28=5n1yT~~f^IifrB6U?L^$PK8c_~^i0?x)@7pU>mSXOv8z=jKvAa+g47c?iy? zUnN^1hxIX7mq2B;QHF=;4szfnIj2J#L9ehkLS;HycgSBy`bvD@S8F8vIcbMWoA929 zt7J%YL`io;J3QN8B%U)p&p0RHCCwuz(riRM;IV_>QzZ6it9Xss%$(yu^9B1~XRc23XbLC>bGCzkqrZwE_ius^Xp22tx z*+=eOH#lJ`v`5MmF*RT6t}GOf3Z;0s>$i74|G@tVbO2T1VD3&wcljEf%lF4RnXiB+ z#R=e6@eNSbinu0Gf62ALl>)Exk!Yg!v3of!p~YrtIq`qNQ`skuqxZq1*($aGUCv$* ze^BY*6?z=s2~gz^_&45!YiDoaje;7oX&SsC;Y4Qwyv1NoLs5w2*{(~r8I<|>Q+Hz$(vlH(UR@HP5?oT&GSVOGsI?~>q>t7eC3g_)3`De~0Sj~|B z*rez`9sQzfE1&s!@@+Q6R}*O`tiy(*QBgcJ2=b+-Vy&qTabH8s*j0YKEkoB+AjyeY z8(r{^@|VUf*DSKf?B`itJW+a| zEwa9LehEIqe+DDSztOpL&)_5NvHJ2Z~37Mp9<9d{~C`zWQ7~7`=!(A!y_`Jed;&qJG)$xU^X*rpu$xL@KAzfo5+cMOU zthONs#GSq}&`z=HV9P|TD<=3xMGYhp(w4KeAt7?VR3~92UM1}hQ>jKcJA}W@kQ_v2 z_mrymTiuSpJ?5X1`Cy%6UUobDQkYH&F<1*V))08aLQ-|*9)H4-uT0MEg0`>^cjNF< zOK9$d*ef6pej~g|0l6S`Rn><6@oHQCA$O>72{TW87Ff#; z65BE_kloOuz*>!I^^@671H2u#0?tU7rx|%G=#)U!#0au8eaLy%-W(+5E9^DINJa%3 zQ}Y!Ud4zI69ks7vq?oT{YMbg+_#{|k2-wW>Yv!u+7_}K1?zzeew&r=E;(hK<b%1wRXp_m=(Q~Z_fOpOU^j~fXCsH{9!2lJ`$ zJfwBbZzK}xu5Y1?PVJQ{@c%^~CEv@{z+v_my~*xzE{p1wcG%sqWjbobVat zU+%fY4M!OAA)+D{K$~(?!jV*tJc1{)`IuYRPWmi#aUOB_qsp;|x;wx{4oaoiKT8_O z{)lYp3cP?D#8hPHZPm=3Z8av5{@e=wR7%2!TX3`TLC#f>D6 z@KzJ{Ipw@KSoWs7`{!(YlONkG382G_M)-?W%8mYDs z9mEPef@z=dK3SFKS!anu!TZoPzLsQnxLe?ww-VPhv7PjWSz0FhLa=4V_Hw$f6Q6@s zO;^G`sQ*gt;vMGBY>%AFVjlPiQ)0AjjnvbZAnqV4w9a~asDOOU-sFc1N#x7oN#@6Q{)F?4{5HY9oX(a>FWyDV280P zd&2miR6;816WAch

      {;Gkpye6TFx=!Znw)5G$0Ds7iDNQltvX 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 z zkz|NVK?U?9n+o|FOWiRHYEEzks>aThf8oCHL49oSCtR-Pa9Xi>3MQ><_q0FJGE@J& z(!oZ&n-Aq~uqMN{VnZ>+l}jwc{fEveceqjdOm}PPf>KSzP*$hKRzCSJzM@S791GPjOT zLt!F`E2a3zp9!OdAL`hAv-3}>8W$%|^qwXts*3L)x)|xny34fAC`%kwRw#$1>ii7h zz1o~FL#-jY!@0I0S*_`N;RkfXz+s=lx6{ak6}Z8>)&0}xj=rOnk*H8@wUN20K}bEF zXPv1=96IPrikm^XG4VXpUKU-K#);eY&r%XE1v{Z*@Ceuk;^Rk>?bXqmn$(2s>kio)sP)M&@?fcuG>B+y zUQe6~b`FG?0od2b_|Bq}#31sVG7|m5-az2TRTF1|r|eJLIvyD3!NEX7wmWs48K5ihxf)STu76=t$jl%14^>|?$6L-IGwBLD`k7CzBA5|G1Lg^tx(S2Fj7wchnR~pokO{3%MRv25K9}}Ue8+!< zXZ$IQlbj=8%PxWERwg)HJqlM_mifH=Z`78p#7rykhTorg0nNcaf`~ZXsHq)NTCm%B zs?Z>QsxXWAr9H|0O<0|0pF1)i zc)sd4o&V$Vx%v1#^tUux>L)K^WArc9+I$PWLGnht3h$H^)KBAramo3Q zmJ{CNpD#4h4@LizJj$5jn-FQ}93`A){Xsqrn`l4jGS2NCx0J>Fp2A-)1#E2 z+TblXsfTH~km`(5ryE@_1X%#K$J!o#0C#mS`OW5iE8b^hGHL z$YI`1!K^ZS*<7ie`T;Zub`yuASfPf)3^ow8_*yv?^J(pZ|1Yi*>JPhSeeMHTzt>nXomfa8grl zCD$_;Rm#J*)hw2~w&HLmTThvqzfP5~Yor~KkA~V#Vor4VaM3`jvM%8rThw+1QbMx=3(lZBD56b;4^&`NYf-C7b@BeAq6~PDq4pxUl!;gbivIB%sH^6+Xv8N;1+g$ z+zL>ODGG1M1M}*#PCgy%w$~u{qIsG1h|P3au{ph5s|T9kv}=9(89UA1(bLIv%SX#? zDLXv9^eqv^{6(I(UX?OIx7;cSg4y9Bj@rs~$7XmIj7h#ieRIUIgW*kE5#Na938vy0 zFMpCQDcw^>pfPBv@La!Z+!Q@p#n|ym&k{{i+XI{Qt=c!9^6+p$@R@`?916t`X_P#ylwxY9x$$g zww5tqzu3&p;?&=6^+;&B>kO!7Y{Xl`is+TT6YfvGU|RrfdJBGu-vTrFBFIek)#Kni z^<=OYnq$O~%VJ6it@1tkc-^N>itJFb^PS3ZY))@1_f%?vE<(t6RgXm-q&lb-F^+5# zEcSto~Y3D1us|(_E^vi?~sE%iXg^vrBwldbG9_t!KX3cP+iH_Z43VW%XN@ zruKmlxppce#5w2-y%!x-rdty*M<>_#6{rE0iT?#MVQg@b+N|)Hq~=8n!v%JSqntfn z{YZI(GXo}jid+^AWd_*a1#VbBV1m?rabxHQ8Dh48c1j!|nL`TxnOxe=r~&;iZjg2y z+#u44N^eQ8NbB>{ue*k_$RPA?-#77rkEur!!lM}tL!00BqnL3Z-OG* z1}hcddhtx;FP{lag*|e%xcgC0!dA)WX`h^mQ&KnR%4E|;f13Nl`j+OXY~Y6=>HjL7 zKwbK!wotp`+(~Q*v=X}cSn;ZRc?kQ?Y?sBwp>!f5omWAjCZTljowLCjm?pYgPw{-Q zEzW;yT8{r~HCsKA(T6ZWu#`!0?qDYfTlJB88T+N!+2E@6gIZRtVEvfANgCt);;9>K zCg1Co1r+?B{``wz#{jL8cbj=wk#*+u= z?b5WIkJeoNq&iFP41?YeN|Z93pTMm`0&`y>nOAtOI|;@RN0@hXjH_^PtxY8^Yu!Uh zTrKIC+B>>2;=JRvXqHeO>L2(ARAXx`%)6!NEar&KY0ZT@Oh0TxxGu_fOkXHT|BoqD zG6OW_nBWc7Bz*LLwEKg*bQ?HFPt3ba7GYWh`w;U0HmQJP%=hT(Ois94(r+a*jB_YN_>5H8+ zDYt6^Ce5!0kF*u8liX-=Jv&QlsAqz0q4EmP&5v5V@@$}zKSsKhIaDd)I;pM;4$p6? z8(^3o@}z;oyiaH*x8!dIC&98tLt~!wGjuGsB_>D2>s{Er$^+XXwBd<|<#!y?#+ zN=!64L4m!mbS9jown?AFZiIbB3*`8NY=TZ94zte7vj^CUuo*F*Fxd-9X-WrRB1ZZH zw(F7AHaBuu_J`*cypH=OVw6uS!!Kb6^IvkT&bm^0y^DDi|J(YND6ijO^3fH#hV}>b zkol9@g1tA<>XG0ey$u+7X@RfRLL+#VCKPa`Z?VW#^v|d-=GvdJ2YK+NZ-RW z);0PT`e1khQ#X7-zpU3#2O9qsd9TkxLzOh(%T^pg*IH_Vam|{@ZBYJ>9Ku`3(zncU3W03BlwX=BVL`VYnv;?YKDBD>PpSxqtqvggGl zs+5sM)?+6{ozai7s-BCshO&(jj-j%nbPD;7E6oM0@5!K4)R>Sp-KRS?x*no+>OglWag*g$7jerzlptWZFyvN*zFO}ox0H4A zdDBq$MuxH}c-lW+$YgIxO|AbqzA6Kl^X9gk9b{+jA)hDBqe`(KbUPfg^q_i>ei*0# z7m|waC=re4q9cX%zLZwSbe8&3HnL?;Hvt+7=uubi)H;%BcvPW z(O^BBDQ*;Y9ZA^ipDY|L2oCVU?8K+GXZ)U6x1zcB;nv!gFdmvSpNKv!jP z+E*qUv)=aW<)ofezO#k>u!L9o_904Z`73T|zk^+fMSK}P+w@g&3Jamcw;-uV6MdkW z;X=$9IUNpiT#{t5kf*4AFk%LT|8U;Dw2k6UK7+d%+^b%WedD?=i_FKQB(|GzRq9P1 zk#`Dr=|}d@uz@;3jR_VpL^=d_1B+hYxs;mE?E~Gzr;IDwWmF{QIlI^-5X+aJWMbj` z0L^rz=QHI4kwBJrhS~seiw)#=ys!n>6KY+@1u4&QAn4Gq27ag=1b>}DN(XkET|(L)axskDHABpY|x)bb%;~!b4k>{X>E!V;H|%$bWnOo z^%Lp@yCDJijZQ)~zXL5be$m9@(%d>vU1em_ZoQ3kDj1uULN^ee$E{Ouz!TIa>PT*D zs)^cAX~}L^cI(TD2PMilNudXoiVa{*a~?2lBg3^mKEeIJ&{CqEk`FXsZ?5^o3cyTsJXrQnEsDq`S5m3JAIi|z|u>mWU?E7*ysWpp_8U}e2jlt z43y%+iPi&-S&Jj|N?K*s>+z~&DzK~itH56PNVXR49z z79{jjoe-Cia1;$@c7UR`X>=j-htXafol%yXgm}F%hos@mWwCS8ID2KbEcqgDi6nqK zQb*eY;-@ZHld1E9(^|t+2sZSc!i^JMY8YB0*Y>laB_Xp;EZ^$i$Z+TfIoEWbi|hE2E2i1K=(UxYudZAWI6xk7z(}(5EPYQ~)@Pwv}HZzytR;a$L)iB?>Jlr46 zE?G)EC)Wrd*CK_~gOJp-K(*wV8U6SbPTBSj4b3%tdzlC7Blmu8kZq=3Jf}ZL1^%MEF*lSWbIXzN^Q zpIW$h!$<>I9uUg-q-pLy!5g76AI!SyTJ77)+-91fg*gv=?>v1YeP9;ZUZ|}6zssN; zc~D!)ZjkRN5p#8oGyZY3OWLfTr~1O4pa(iEo)+HH<%!esZuK-~!rClDs1K+m&~!Jr zh*S5c`6iYy=mq|;m~+~|#caHA4r$63J-oOUJHdR>w}Dz~G>Sa3so+-bHL0+*n{@zq zn>r%5l+es!O;_FBxM-<`_)3bwSw@>uUWmtYmTLI>+96a$-G!#)RQJAc++$Z^mhoEo zI`NsfE>y996jfVUYAilupY)aHw{zhYCG`MX##Y!F1$x_(lgAood_&p6v5o!h9qF)x zI@Mp#D3)A*#Sw(L1IC}m7lY2T@>bAGZx1#Z2mLY3BJ@tV1KttQIj^uI%bOS^9EqpA zU)ayi=4vLG$rcL*{Zs501)pN0KhlfTDn^-=OF?(xGyS*3>H}QYQ3Me+y8*nw`GO?po$AaOUyDy@W8o(tj>=_+&6*9Lu2%35y9$-wJL;Y%^o3OkVvJSiGS=1^bNPTDs| zYUmVQO~$N8e+SUH@nGqI1<(bE)Qe8M6I-5bO8HL8(OCjbJ@E7FZosdH2d4vfd61W zNTl+0q)gP%KDBsh@+);|MQgg1Hd5SbFGThOk8Jh*&2YM_>!OBPdozD4Q<;-eAF-!c zoY~6(;i&Y{Gtk*aiufydXl@sCfNQBl!CdXLTAQgCe7`7dWmDx07{lH7Tr<^XE+qv? zM{0ZfPx20$42v4&Ai$lJZPYlc04gdQ&4PN$8(|t0n`%`vw-e#u0%b1S-Z2n&ExQ;$ z;1_13^pGB|7S&5io6wf+$HWu6 zwEpS^C55aZWcb!P5{w?1f0PK)6@yVsS=o*q>CL!um?Jk#n;!OPlVk0XZDeDDK|@gn zJe9Z0HZD9DoQHLtA5nkhmC`li1H7v|3+2$7Fi5Nu7ZGL(BN!`JKPbEYD_kq!6pP2- zNBe@y*na#JUme$ZV*~DAEF%g>{mIQqu7+x+^UMLgsX9|1i0W9n(gU!2>1^I(aXQ^GTxqhd4fp|0q=LPgz8eBVRG4IXnn{u9Q#mL**f zCt52e-&AvL9fbeooC!~~&!UIgY*Ha&epU%)J?fAn$fFoL9c|2F8`HJJ9k9c44=N3z zcU<;SG2}cc#Y>%huGF(cc4(p)?VQbIaO1=V(sy$Nci{(*DQ9(i7#nb}P7>^#Q(Pj_FU;WbtPB324c^ z^#OH^dAidjK38j|=hN5t8D^YD4oos1)>B|5%=c*-dKMVVuGXtL3WF`79%&-zqs9ow z!S=`im%!YX(v=z{rN1-x$LZCx_E_9Ji`W15zlK9a89V#(eB0GDa92H`kEN~??QB1( z|M|v(>VfOr3nl{=3DyL4^kKSU#|h7*f0e^|1x^!PGjbIhJGbhGil-9)FtqC>T@=ZV zHG#?alvrGzV7%6UFqari74i)YuQzXFZxYWj9|ka^WIUhYW8fI-Gqq0N40hwWLOI(? z@mi#jHcaZAcRsfsJvCI5pGho>#*0SFjEo8T_`jCq&|n+i_Rm0$x*7ul~wXhqk=!AR!ova@t;9g z63+tALcqFS&=n9(PVgk#CZUbCR7zadM9)x`N&>x&NOcZ@|1)L>C!nsr1|n2~#yP1H zGfJ=L`^q)6rlE4i7BPMnTa?DD1$KJ>kxQuoQFwV zD{>uZYF)-2W*m_+QXuyMU5pcmi)m%(TjnZEkjWx~;sfPNa+DJ9z9asWYA{fl96qG) z=G}Q5lNNYv-QoC`A3^2lIox}$8!^Ja%Ds>7#djz^30nv!^I4XWWNG+@_%G5UVWzvN zQ9HdsK+=)Bo?}h zYhy9jHpgfKS1-Qj+~Qivw&4f+8&H_(q)Z?}RyTPpvA(!m{3EYGugx~4p1{rQcV;<~ zh3dKE*cEs`-$85z1F(cv5*(GfVcra()}YdjRlWgeEb+lSgig?FFx?cFx>)9kW5M~9 zOx2^a9X~A30@H;ut_wt>uV}cJb^|gD$bAjqB9;!ay#$nSB)EoXXtANbsEH;D8|{)k zAoQ|)Gs=L8fRI1=)&nZ(ozfb#REryH27J_1ABPK`xml5Pmb`z*C z)O701S(MJS^3BThOA8~v*`{1xob6b=T2&hR&; zWD))&s!DDR=Pj>hYR;99IQ4O^afOSmop|uU(06mkUv8!C9llZ4h`Lv>Z zJ7WvGlv@`JMVt{A)y~?**PJ{}efGD}HiwGEj4bw!8>Wrdj)6Upv=;YY^kR=2TeqkM zw@B82kHi2WhZ_oWn43Jr8`uY2Tdiy$o;euk!OtMx``!3`e#PI(>;{_hG!tkCn3tFz zveMMLAhlF^ZEn&#@)jz`u+n2^>QQJPc6@oFbNGI z?-G@*4f%#3UTqn=CtT0HDV=eSwT&dEp!3XEVlMYWe3W%A={D{Fw&IWF-axxWu7-0X;?Lh4MlKh=~J^R~gsKxIxXF5{18>Vj(C z_j0a(G-#ODQe5v8;7h#a?k5eG9hfQM&3@>d$W00U2UEZq`+NJ4;^hznABtAaj?+WK z=o<7Nte@H&^%h&*Ry%>K8B+^ZbXIUh+gG#Ifh%&>m~EqBagaU92HrBia{$OE(ALGsJxFQKV{8gQGk$cSb>zz(QZ zI7**snyEhbN6FizOs|4q#0;@=E@+t>8lvK~Ilr80 zpj9=lg9X|eOrv+Xfyjp@fg}*ke{q~=Cirs#HKM_)38;#1Cin`8Kp8TFtrOiec8NTY zptwq4mlQG|qpwHNFl#_A{eyIG~tb4;^q>AvjhrO%2_G{%|QX_iQe{|GacX2Sm}77+2h z2u{{phW2S^4C3wx+dnQjihpb8yb|O6;e&KR)t9UUpR-NE*=`*>8 za?`x?;$m^7{*S#ebIM;#sSO{nqd6_BlxXKWQjo~xo^zKdw_MlbAi9XUcLBdIYX^3N z4u*drw`^tZdh*#}_$K~<8)RVH2&lou#(xpNG3~|u6KR-d**lvGl?0!dwYaIYSMCv?f%6kqX*)eLrh=)Kwt|lq z3dLVvam_e{>N*S*L#)vwQGMhF!D{}+j`rdUxq0Xgct%CDiCBr$6*VcNBIRFivw*XaGzR-Ie8E1_O@@TE*^FH$jxj=OpO=yBY|hc zfy7dIwj@B>sV_Lq+(D^M1AaRwqMq?}mdALCh!?c2{vyO7i&N=mBr{8Rry=n1QjXlp zU6i^9rx;6hlC#PSeSa${+GY3&&d_cUwTMq(AOFevz_r&`0n=RTs^tP-ohRhwq0Q_y z;}QEXbk_OX$*9j=|FD}%VKwK#zs1rqXIAeo3; z@(X$`yV?6I1M(bpH2vDy6`qq`lP$ncvRJ?l<_AlHUj+8q!Tq5K**{c9JITJ)<^_AI zbrLN0Fna)cW!+YRcyB8Pw_-Zk_(gA{^V9n+f5ZNwO-y_8Bj3S=pZu6Mb&JY&x?Ln8Z$ZE)>V668N3!>xPdwqT)lA+b>WdE-u8Plboa1Mk&m&VFn=SSN9f z5}>xyX1WyJ6g%#BCI0jk4mF4W3MW*_-%vNXHwrV&-GnaOSDT@13d~sEHgqb$s_DWf zc@lk0x*SM=x7-uha>96e*NR@T$ig{)X(~#Nhbm)=<`x^rYe_} zQ!OF#InFy(Cd;F@a<-$5l;iD=4P7UN&9>(L@6v8?&ooW?3#9OSxC*#Cwpo+G0&5Z~ zmblA$HoP#YHN8dr7O91K@J~39*qUsBeDSS_#;B?kmyGn{*bvd(^utT&{k=A|c%X6U zSMCHOC1SG9wH{0vZk#W?o#^PlMEu7#ql=iPdg>l z;g2O+l2cGmvX!w%X-pk(uFG6%&cx}^?QBZ&BxiK`+KD3$o4!X08gCwY;#qgDs;p!AHr_>K}ET3Yj$#&OEW%`L? zY$mB6_Eh;!RQvQ3wjJ6zy+%?scOS8xrD#%h!*JdWKSS#Ud-xCc zzEBD?JMw_p6TO~aj-3Ml&49nS30i{trFzLo6_f4R#(HqoIoQWIce|QPAJx@VL^8?q zT@@F%3+99?xr)GjM0?)ppBK7z^FR8O61hYQhozd`#c#B3%-9Nx8yc(VHy^HS_^uU8*#2Ms_FH zLRn5vc5ShPW3KVkT@3EZtF4ZtI!?AW_geIHc$B;iCK@NL zBZY&`hY3~SH?9?zYTV)5@^QnQ~M>xGV{W#SG5hWl-;JnMfAz4DA75V5<}4j59iU)0Cd9lk=+vvzD7GKg654U+E2! zk2pIduGXcpvF zqEGRf(Hprus;l#kqpyDvHPS!CJXxI&yA%$+fp?NL8XdZzC>liSDUDp6gq4aejF)lF zueW3q%nR(dR9UHQdj~UerMUsx7JFk^QkrvV`8$x-N>Oe%z0A{1^7tolZ+)-mM^y8i zcsW(eRmUbh4z}Wa$!*Q6@FlEj22ww!xjBt&f~`}gYuU7E#i>x38kA{8AMvJpd4cizv3EgD; zBBX*g_+0lb+W~n8`%#%JZs*Y8tRimqydi!v(?|>umW7KSR&sy3*JE z1e&wSs4yuw43}JW13OVGn9%C3~~I_PHOAWzg3I8#*`rs7S7t=i9bVW z*@@^SvL^56x569j8Gdj2OZ!Ir9Cbn1MpD#c?ibyY=tGvqH%U{KEM$p4+4Wlq+U9D0 z%B=MOw10cTMQ=TU7OMICa_h0$xUCQa~ti?Km%(o`b;Vi zGkwX}8f1w4guYAl1?kbtz$F_(uE?+B?=84NZQlv96?4viMv5@wrJ+!*S$j@1ajPmMTfh+wGDC17KN{Z%+~=6XB6Ly zrsYs-Wd7y&r~DS989z&-rCU1OILJ-3`R;FM1MnAp3>~09Ws}_HkeyDr`3z%HL&zQa zie1v;kyd&>chbLF{Hi(?H&X<1W&VNFMOpSpE1gwb#QbdQ>Xc3LTznwC+Xx_gPRzDt!3|I@)m%d(JW zQ^nrGAKq_y6?G=KmFZ2+#7*&(>fw(BK8juQdS<=Qrcphq0&)g5Nbg7-H(P}~s-CBw zeU8k^k3omzuVj0N4eQVBg!IFwNwpOdldK)cxsHAb{n5&Sh`1H&E-$sHIK^~k>gA=x zW`_#kGpHf-O$6coc`Gtb`l|J05C(7wNu@Cpn$MSk&Wdi!t~m}81(|)3FGM<8)TrWS zHI*33MD#6Wd2c&?Jh;eJ&}8*F*502Mn27u(E>t_%MyL&hM4}#9id;{Xv!xMrwR!4l zdL)?2U6z)^y!H(+o2nD8;_R!8w6+N*U>uf?43ryjV~F-*3hIm@z6v^LQ=5=j%%FhAWv9IY26ha_hNhVzDNn)FA*L(_8y6dZ%Ija=kCj8e>wd19UI zisjDpf@=rUBe)tGrf-EGvgyggT$}xcNKNxbjS$xGskVVqaZt{d;W1GMq-z41#F7u3 zlgJ)YJHggC6*s6=%L6Ri)|N5VIncKR^4m#Cw=9bf6r38UN>@kYoE^G@KD zOJ&=9CEd52Ig(S#clD7AWv5H5JW5LeGqLm17o~-3Ty7t7ont&zlR2-~Vp=H;H3L1u zmT)wa9%-GqD725V9QwJJ;Xlak{;lNDgebN=vN>`~U+YBF0_R^$0XLBUigZI_vBMsYpF0PG(&3YAm~gtz|PpuEwHtE^XYj482V!EQ(q$%k*iUy(wt z`}7T!m#!c(>meuj`z(Kt<2ejLOQps3S~7P+=o%<3k+vU@WI2kW!Exs?Y>@Jv{KVXm zXZd<73&Z!syJRz^8X;)!J!S>oAjmgF5upyBj?K15!RN$uq7|f%#nN-=hlSFTHd22V ztC;o6anO4sG)-Pfw+X(WxNH--iG(*E(3Y4>PFvO;|EbH&K32|A^}(PnS^;c9TlyQz z^N~x+aq5lxIl$~Wmf!ZO33ZKG{>-GK{;GlNw&BT|)LLu@uLiU9#ll}`9=bwJ^sit$ zbLnJ`Tsk|+-d(P!Pa|I`mq>H^A{Q^zC-Rt9)D`JEHcej;+Q2>oI~N_mH|pC!W&c9u z2(nnjJh#-bp3?GL_(^oqTUlfAVXl$nGCWmoqnxAPQE!Pda(zqB@M3zB`@J?m9Jy?w zSe-=0a*UV%MUD?ti(Hl`^EajB@N2Y5LVWUTWw||pD#>N5R%!<|QrzS?Ne$MYVHaWI zc{A1$UxL=QJrkPY+szo-K?ylNIR``cW8?59t^*y1Hia~ip7a*SdZrWqHL^h7t9cAb z9ZI}sXNjeh4!SEQ!Bw4_5!uWxkiI%LN_*uMJj_@K&A1cVK1&Pf0ds+g;K1u4``LtUv4Q~j(@4-*dL0MZE503 z^dq`aqHIWhyrQ8#W*!E#< zt|lvfmYblo@SY$WQD@kqYL@a|&T`I{#u&{*gYnn}>y#_*WO9l!LV9G$BtB|&VF$5u z;7s@p(NX_M=W%WICZfu=mnIRflu6n*b9{QaqBZ zEii@#HY;vAJfY(yNQW~IrT2wBz#;}P|i?$YW3wE%6c+0v`VW@PFz&jQd~{V z>8Fm%(vTV2JZcU3RXReI$Es3a$qPb%Y)ireZ3KxRA1ESzv2aCrreq`Uq%2}LeH!Ua zURKLku4!8o9DL-fI!Zg&^JY0$n;x8iS)r?zRhAK77M5ftXocksMG7Tmkh`4cwR?1H z2?3SS%2F!**?kN<$Hn^yWq7ERy%IB$Iu)K59Pg+gzgOOwqlG0VFWC&Fp;ytN!Qy;F zF$k^P6_M&}p#eOIxa3Pm%%kTqv&zwYInr71xD}0-s8XSUDVYcIsq~}=*T||zhvcVi;a%c}0Lx_k*@J4rK zyJmt3kU|(-LPwr}AM!54;578H+|#QsTxUx)^^Y{<$40K&&qSsZc=!xEP+nkLV{B4n zdkRv>j%o+V%ejcYkyw({*~ko^Mz=>_%xMu$^v7$9<;vQ}&}`U^eTMn<>b53gF)4>? zN6yjasNLZFESj3i{>@aizk;;I9{EYI59^AwQ=0@Ui*t$6crDXl}i~z0ieQHB4np;cv3ty)miyMf~ zkcqgDNa6bBIw9w!y1YK=U-dg<6}zY%^mU+qmV?jh z>dVz(zNED=4&SV&uoKA-@vnfQuLvGC#<7Iz3APZ6IENdb^!3_?;A7`R+cmP1I@_`_ zyMpnC@8Pjz-q$VUD{7;>%~3Qz>`j$x$gS<|G7}Z2fMS=WR``7v(97EX(=M`=_;1)~ zo|0!ddx`BxC@YP5M{d^6A#3z%>QQHJVVE+T*p8G@4-tb@jXsT64e>cm@N>44%D=Wo z8o)YXlhs^~M$aZKQr{r|2(uG5li&C#A|QUv>zg|i_MoO98x(}E8|-T9hwaEc9BiMr z0^MwSP2^AqWfpBIS2j*$oktHk&nXGE#`=xGR7-!zJ2DZHT)$uxUX+NUnouibt3I7y zt)&!f1Vlk=hhY@qs?q6+DlHA~*B2$m6VDjHw2%^Et7o#bN0=@}vu)&B9Oo!0_W>zj z09hdq*H)2({D;76NYNYt-ADH9cElcao6eA3_#7nGIZB@#H&p?koPJ+hpshfHEDqKlswlp(mB6ks^3=@$M zKIT~o9XUzi!Dp)%nB=qBJzwp#E3NOZAw4AJPp?<~ll_k%aceaoamV z+$K$CHd9%)-*Pj)gR`BQukB8;**0@;J<}z(sV1M0|HR*1Jrqm@jVTwlIq4x96`xPN zLHhd6Itm9Q?j0_qi_%GlHEASKo*Q6U?(3)i3BE?!IVEkF^;eMwl7ipU_bHsSueS$P z7oGsE9C7wl%0O-i%#i=U$1RB}N{#>-sG)v$?13$l9^PB@UyF6+0n?FRpX_IDc}hxu*u=m| zc7=3N%2v*kKZCW9VcKU!MT=woh}rTj?j&=X+-3PH*Rvl}>gr1!mBJ2CU!1H}ft!E| z>8t&AWtXv0=^ZHy(}&v<^0@YRG-ww&h}=ara0@H&cOy*3AIXCMqAAS`o`zD91E9T7 zit6XB43dZqwm$~swgpd;o!}`HHinv9$XOtR5vq+{L0*O#@uJ=zArn#^nS^eV(xuwi zCjSccM?e*Gr3rixELs&1gTa-at>kpQuG}G`i@Yh64O9E2=(oZE?Km<*&oaB%VvbhY zc-BwPrB*QQ$rAP^c;So`qP^}CmIRAt-jKfP3XVBlMD@s+#BKccKn=?s)}!1&J$#>V z3*viLUr%KeI21_3Z-Y*>Ek+yZ(fViMFwvAqW6~Kk-xP8YbG4;v1F0LdqVq_D>@$HmG>-n3 z2Z2%C5qnDTA-jcs&zpe-LZ_c=tk~P`Q>RfggsHYl{{D`NL}PVKrdORvb|x_XH$5fv zmapK8RzA?p{r`9tJg zsV&x8u%f3d+kjdq^;he|XYK<}cX?RMA&ytD#DVBuBto`C+(__s$AH-(FGh_jAIrPAG4?Oqu3Z`grp{B&ef-O)9&oeXg(-`X*pN^;=9&Kr)0a{L$MJV+MdBjWiF$0>5K|l!o@tCdsoLHa7O7WTYg z+ZFVXQDT?;MnpC>S#XjCvLbn$wWMXL*;k7;=u9k0cq$MMIFU6f8Tl5~H;b!E&GZb> zX2_gUS1ZM&YCo+@jX&BP?I1yM16hWdpj;GA(S4;^SO+SHIImCB66uFhGpZ*uM{kAo zp<8m>K?}TzQr&ZysVscZ?q~*9o4rD>g%|$Hphf5^wFi^}c~miE`N_b`LX4{iOpJPFhr{qiB+L7S}nAI zAZinhi&jW(;4J03tK38?V`l&WoU*w@CN^Eat8GIb?@1EG0Y@{_2Q|X_(js8mZzeg~*Xvvk4R3TWe_E>X(@SCp!1-$)Vd zqft%vx^Lj+JY)GC(g*sm5bY1!B3e}b`ADh23|$QEG2R*}_;4^;uk9QnG*{BR_qp-x zQF17FDr|(EmQrN8-%lT=hKLlt(td#J8s86Qvfh#m=3t+FhumfLMR~jB z-jqs@2)fx@pi1ZhJIb*ud0cQ7cP@Ms$r6VI-vAXvE&T?1>Wj%3&v2!>THGWE|H>~T z%cNcQd}w^S5V@yqVeTt`j4j9%>4SQRdmj1*8sM+_D-6T5lp?M}q5rrf#0h;oXP6v~ zQW@Tlzf#hIi?oE`OgXGMh~3_9(mQ07?Gn3-J!{{WunlRO+t$g#KSV)^KAIGX7FCAGVRReb4A8{Q1)beW41=x|msPTMb@e5HG$)pOTsoZ+5OmH8h zq>k33=`nOOc9{0dy^LPs>=X(I#szAz`$0arA26PPjWG5S=AvzpxPsa|LdGpf2+hMf zYLeU;GvqjW5HTpyS}Q_O`Fn(`%P#AzYZcRr+ziU=l|5c8+FioBXIkbZi8sav6!bE`GIO^uysiWa8FAXU-P+BmKVm+MRpdAN0) zRhUP$;~zzOkS@2He2;16nuJVnR;4QIAyy@~NcHH(N``S0)RN!J37}I}F~-XFhMd$E z?nc^oFa_Kwv5Kosu4hnbCGaub{Z+7hX_fV;BnxraBd3X5EO+&cqb>%7L^)7h+wb2T zj72h%iZWYr%bRzi8Dtrig_E;-9xnSI;ywCcVRPyfSEYm`RY-i}9BAt-R43ZAqsc}I zF6$z(u>B`&yG@qwaeISPi3`%{ysm^z%7T54TBswdmV8J$FI94EMuPGRYjPiYNd-L!F_Kt=#W5M^^imHlkjvYtM~`?1ip$KOx&_9 zj_fdcN{fj4;n$wl!clsPG=lOnm5otME;gQA2F{2F|_qa1CCHj01YX`uwu zT+BjxFJG;_u|wK4*e}Jp;7rpOr*92*2tO6t@|giNWw>tun@u;=VQikji1iYor)>7dFzMRBjchqYEzj~VgN1Z}E zi|j>rQvK7%Vcp1%Vunm1bu=HAn`b5djen|5BVJN{h$mdVLeJ<5hMP}SB()i2BK!sx zYp$uAy@fcF*nq}kA5{eY;&X^n>UZ)tm{Ytsf6nzAS+5Mt>!VngA4-a%D5;^mLRq`; z8NbVZb-_`kzH_ntWZo>LD_FqZZ{voaGoYOt=>xgHshIExkf2cDmv3_hXWvP#6khQ0-j>dJQHMbuY6wYq zQ`0d1dT6cC7#t`2gYNeG;py60^q4tM>r9M6r|~;6A5aM_G>gBB4i8s!)-k3ttw00q zo3@a;V||Vk#R_~z{(nK;_l-Cfe@pJ1f`q2ZS>D&`XZ#7Bf|k)A;`cy1Jswn(%7`a0 zkA6`b5Zpp+mxn2F$T`}a^e<@a9i#1abqc5ABhXlUvXtoR%ilm&#IJWGF$K1YY7;Sp zmSk>_3*^z%KJ7XB#aJOHYu4~wv|DJhe?It2JpfJwHiDtdPXAxU{&6+ToJ~xoTH9Xw zI|Nv1SKu2_7#Stcaa6;W7y65h!n3J6*mz!pJcBH9f{cXPa%D?YwT=$FQ_V;T!D71@ zzss=#>*0*k{)sP3)ndBoD%b~}*?x2PwbOKV;f_p-bV2|dad(HqFOg7HKK(?=O5)r}mq_i?>; zmX_Z55AdZVhq94biH%@#b80|3c&xl3c$mt~UpN$ANxPk?(hBBJQU$fFMTZ=RKE^P)ozjNM z*Q2$+v^f2!X%Ko=dlhQKbb)L3&0K5JA*?4yV;$_Bm^s=K{ts8y6bS5J{6`*^v__g> z+7?R8xf#5rt+l;^Hr^Dv1i9TZCawk2L`uVYs}6I0k`!3CUzQNo0m!qlllXJad1zUG zwyOkjhQ!$S^fKu;@PIL#$Nm}Y%MQslVw;>ow&RmcV~IG%>i!P9Iy3B#l}Y{$1j%j6 z9;)6Do1#D5KWrP(1J3F8Jjjo4hQAA^IR>kCwFKHx3X5&!uE^Uwm!%2W2zss?D5$iC zy&QgIL*++A2L6|L+x@~?F4#J-);ijL9IV7U5{nc-#Gr?@OtOc0FC-#dq~0%UWE@nw zGvmoDWEe3;xZxY%aT!GeJ*^&PK=>6jAEs(qRC0EZO5}cpFr$CUAib6~tma_nl%+Yv zkdkCgw27-EX7(gfy|8YPQ!n)5SRCUk>MkQVsYT8>C*;m=4l z*GBLsm6?;oPqyNHdP(QV6;4VC+#}jD*k?tdD)Og~V+(Sz6wh3P6 zvCxsMkm8odNJX>P`<#Imj?H2o))#3Yy--iMULcc~ne~a7PL1%un+kahZ6prV-YT6@ z6L}F5X+|UzE)u|Ek+n!GxtD4pE2!NZOBH58CFVC9L5>M7}qI$QtKv<*V>S#1F>iJ>2j1kBeyVm zPP(EOhiR5catz^DcPScPF*r?JV8lz2@LK-u@`?0kd6eUWA8xD3vvM`f;1s<^Xpir# zv@LWq`?Nr!*SWvVV*+;ZwpxlRYU>oZfpm1C!C2Jpp3PmAe<^96&hjt0w6x0TudUS= z^Dl_7)3@>x^%)X+PaE-CYhN-n(>xEfH2%Rq`5zI}j6|x9KML9{`hxNHPNJKPR=mOx zt?2Xf zHYAb16uc@pIL0Wg$N4jT3G`idrj)8oFYyRFCbjktQq~d0y*$<)k_I(&sTdAzk?z~u zQXRExXpwZgQrPH+R0hqF`N8qhC))xGbS%ji#mbO-GqCcxo%w#$^%TZ>GIkj zwJdo>jn2vIr5j*97)|_*j?lX4%N>V^!{XWS zEjH0MIKHTDhjf;Pq%x^KdE35;U##>bA7VW7z+Rf1$ezjKY0VzeHgYGiOM!9O^^9SJ zu9J?1>R10F(|6lt?T6s8?JfubfTcMLqzhsft?jaSF^^bad}Jr`$xJDqO^jmpYAQ8M zeHe5hL&>_@yQEdNWjG!fcrrJQ$x zN8rstr6fJuf5M37w)27HrDTQt+0?0ITrO)g)CW`BgK4s=CHUL14*edn2kHWvNORSN z+-XRXJp$>Iwg_pPf&UK0Ybi8u|IF4=mTH}x>+pTv5%?6D;eGbGT#|5K$a3waU zKI%owb#%0`N7@_uYHa7c@UJt>c?Ocy`xbp0EUEPsdOEs=#&|@_WlEN3@DYDq`2)X; z8Ev@uSEiM5dAt?t465d>RDaRS(KlR8BVSn$j$48tf%)!FGm_@h4w~kX3RGDlPNbEx z!8%epOH$G@Dmy79mCuwHahMi7h!Yn5Ng++5}9-ZcTREy{itU!K64(^g?*9tSkI@*Q8D@w zdIOWj7uISElzV=tr>)tdFV4L1R?jV4Dsh(i9N5alo5I{(=LX`KMU{K${gvhN5^029 zjBmmYg{ki=I*AurSl=j$$xL?A-=x6pM(&I7O$={_Mu>X^4ce$T{Z-@!^k(NmUo()D ze+=%E6Ulz^3F?~dPsaREI?O~5mlNn6xW&5O|ChD{f2e#1&`~PQ;dG%M?1D~?d>6xR z%GgOZ!dIYW7D(2A@J9S}d8K+8@2RwPO~mJf-ee75^j&r4-wLet&jXBYlkrvP4zt6H z9gnQxrEMJLql*Nxg;GW@{+MOIoW!5xib*o`a@QrJ@uN9ZUpdynoSbmW3oMC%17Cw9XmS&8+Kgn4hN zDd^5=30?M;XqXr}UEsJe; z$@=skRdqeIyEwP0cDG!u5 zD4o{VA=j`JQxy&umgcpFw1uOfhi-E<5j1I&b}DN%|IJXiuS!Fo)zux+PNtCsR+L<+ z{nnA>IqseQ@APhYt>g}LVNMAZViJY@uEMSd+D@gT){!oxyf&JXLH1udHq^>}BEMPQ z=e+n8tAz%k=JZzM2b@5>bq%te2sowgY;DIS-6ned7jZlCn)^=n$Fwl(8g1J^*3tji zte_C>lmF9Vcn+EySDK=jL;h{#7e`xY(GW~kwT-r3Fs9t;z-+n$w6VM{lc;d z>^!-OGK$_Dnk@~I7BNeOH)0F9BKagZgX)#Xb6=wRidDfRIV0Fjil(cHx2cEff09dG z$}P!h09~CGjdQ?P_>VY>e@vZ;Kdi`d8MtTpLia&`+GZ_3hSkyMW1~P>XLyHJ;rP#6z6gDhi@R>i=XJL4EpFvxF4*`?F;iF zoAXWvH!Heph`tJTR$4JT&1FeJ{MR>}o{)s(Ii*;mBiM=AxGUHPd9E^DHi0)99Y{te zfTXBqjt^k%7^yEynJ@$5OBM@Mj(kYmyt^aE#{=MbJ-qX>~omd@Ha z`i1^VX&Fe&tP&iEk5t=pKlIJ6<(BeF547X5981HvA?QhvKy6dwBM!BiI7ogNyvS7t z%Y{reh3Xe+MofXOCe=NQY)9|cS4g9znk*xz^lfGb8`S1=4%Wo|03U*@Sp#drzVxgE zi}f%%T{@xpn8SFU=GJ2nL)}7o)Q;Ru@-g<6|3PeWCKl9E*KoJ3b&%I|Iq(%D{%_D` z){qIHwyCI|tG9^&ZU;G8D+YTKURzUX2ercWQPLvU;Lf*Zcq-(Q)v;ZY?1k%~t>{J4 zA)JYK^I!Q1DQzg)qi_RuqkWM2C+53WTEvKA&O&;W+(Uc94Awpy z-=O!E=Jttq1*@_?vdo8us}U^|=95p%U)62#)36qDBcU1DI<|;9PCo7UOx+OHa<}Qz zAV(M`l(xFLdH^ylZT+Qp#7SeN*249#?}5vX{&tL$_BiY4S+Lt(j1H^K{C(us@c%r= z7QqPWbKEdreOxgIIwY@;B-d&wU_dxTw4>`z8DZ7>O34t{3$8bOnnaGS+&gD<)7|Y zjb|XuqlV_RK`s(+jY37AL_Se@F8R0?yLdKg0KO>$BCp2R6t^P)+P36i()fut^iPt4=N*kr` zWMR08uE&(-2Z*)B7)LE-Bo`NIgN<%mx7WoevQk9&$qe@;yeJSImr&5PSmqrz;u6+^(sxO+FqwBq`7P+%zE7m+|hM0;z!Aqbn;T!Mnm;nex~x70=sB{i7};jxlGQi((t9Jl;qCODtwjQDQ(u3KIROj?@ci zqUWTsRJIOFX0i7n>=%D>C`IuJ8%F-i)0mmh9haI5GF#C0x>_hhAx+au>J*YBF zte{06!kg!9kYj6QEI|guwp6B5i-}P78mC6=hZL@_NH*KsIf{7AI1~Ri;v9Y5otMx= zO>9w8V&c5~kUbaOFSgJQV}IZtt_R)NQwAR`uJQh)&*}|Q!g{>R&fNp`v6b}P!u5rz z@_Fz#HXGys3-w-pMExtzcb@kQHo1dy*zM?4^ABd9#b&yW9=2y?rNg8+P9Lx`#$shW zSRuY6X8UJoV?^N8=w!BsG!JrYugc$I;tDR(E4ZuZS*e7WBQ*%Lp!B?d#VJ8XuPSB| zG4WksqO*Vz@$KYnUrv&T@aFvDS_7Q36)okPY9Pb6+Ms19xrqGEPTA~K{&woICL!QDbNhir7@taX|@#N4#aVeq-)ojDD$=Xp* zH{}>rm>40RU!H7TgR{&(SVd=yzQfG~Ct?c~JAVs*E>vPiY4r@~t|#UYQ{9cF)ow3X zjoe^ZZ7`ALU24h9{pcQ2x(+eNoT9BJ%N8q#?WInsI57psl+I*R;){A8_?K^|t&aTy zEB=d($8!Rna8chB_LzSS6XdTzE=hVp1+9SCtG`9g$j7Mqu2}e8k>ok-V7&`f()A=b zp2$V-Qb(9hat;1)m@Nr6j8x4Fcjrxu#8sOJZDj3Fxi<&zAcFZkFZr9j`t?k z3Z>XN!K=s)y&ra*C<%TcPW};T1;E(Bj|VcDDl6hCx}z8+ZlzyHkM)((3VAD8%6?JV ziqPl@5JT10+UiO|dC-D` z>*Cp?9=2#gAuUzt0rTT^L+7vu(1%wRvNJB=C6R{06YT(=hSR>bN}PI|o~6{#eDXE) zg}m8cPKkk>@vhu_?V#|De4(5qZ#&0uj$+-2X(g&zR-?E1AKo_Pb(o5{EHwzeKnlx6 z;CpNyI0x_f7XTrbN0Ql2Occpu*Wt=V0hjZ5;2Z@Fr#ucII-g2dSYZJgN#U`y!p3YB2?~wK6Rj!A4q}WQO zJkplD?`lV*?qt5R)`408NzMbaAIk7|%2p$ell6pnWs)k}wAIh&{zi;iHf}SxFV~^|tQdHrp4O zM4Xd`fFs~Rpr50;fRV+tA6N`n4e2x(pzvs$9r_$zV?rPuoXcw$B6da1E6(bPRY=Y(8=7m+&$3lQA^6AO=L5d z2Hyr}#Qq>6NnU8xyroSw0l6-9K^>2O=fcD(^_a9&QkGNUVbW!C8$OZykNJ*o1dlQ! zpd(#0Q-FQ|$WeC}0p0bnvZ$yZPzQuAY*ty(8 zHg?P*KZ#!Lp)iE4U^*e>tUP3o}pX&#)ne%IZ2Hnr>Cy6ICvA^frY4lvW`l$ z@D=pryQ|Ca*1=njMy@q@5&VcVQ`j0fPUU+Vp^f-oQXMc4Yl_da&dB?aw~ZglbYV^s zQT8D5BCrN2Y}H5)qY!_S<8sPrq<#>bOi0!{I5*~3*5=aP{SI=Hx=ZWIT<2O~6Jb7W zCRr}*qgQLI;df3&x=9yZK6}I5vspI?Gyan5Nv_fh%Uh^Fu)C`3)9|9?Tx2-)rmJRi#NQF|_@~RCV3O=ic%gR{Q<83zc#`!>UcI(EtpA{H=e4z&{e$$=ViMew zy^~I5%?y`gng#n)ae9@kcc8mCnf#Y1FZ9z}Mx5}jhH6)Y7SaJcTS=6r&R1z#eT@~> znmSurCqtU~JULDCP?KEi{6zdwJqsNqrurP{9qU!D1M`HR>D~>@@-f`o%R!!&J zi9nT?$O5sJh#_A%j{7Ep*2*5GyE?-7XsZGK75>snY41TPtt}cS7UnKdoh8C+;l@H! z#5r`W<&f{JS)m6>WN=OLVqvi@iR$C{jVDkTS2+8auLVJY7VNran4LqIKb<=eYDzIE|Rt2O!NS zQ=NoK2``NsNK>URWSoEJi?epQI)^AXBojl14<=lv6ZP%nb$NHBl(K_39D3kCPE-*; zYtLM&KY=3vG`1&PLjO>oJu3k%>+&W4XA!YIwJXl@*jc)+osz2t$AG9Mih^KHJfBR2 zC&NIu&-z<5=e;0nS^qXyQz*2r#xh&wZt`mDK)Q`~6zwg|jdU_?#%d}@MGrsP_+)<> zm?lADYw#N}-u%^bjUI@V2qqJGaK;sDyjt8}Jp=a8i^a*gOZYF`SUFGe+B@>SsVnji zybz=wOIizLkvv+eiMm2{LrV*0vqNmTDiOkd@T?sy;dvwo|Ul zV*~NZ6to1>9>f~;A@8D$oLK17>yyvqi?kk zwZ{Dxnm0OAWwQ&6o>+aZpYsEc1P`$|verAu5=Z{6tx}p&(JQB=sL1Qw=6Y%N1^*wK zFYj^h!gbc{e@OquHgvz{R;#&?%QTYys?B3l*g^gbq#Soubx4be`^09dBNnkfk_LOf z6rRa0;d|qU!DaLgcU9ZU6r#EZo5+{2d=N{`QKCHa;9M>_?}2E?HUwSTGvc-V0pG}* z=RK|-5~|bxaVMhx#h>!cY~%e4*)%stm(a4r{#a#ft*a!zGxQ9kDNmuD{V;fI%pg}K z?<0$cqNT^7TH*=*G&9*g2e^$@a`DJ3nC-i-&d*Dc-|EHmo2&`qn2jh$tyLxah#Y%6)wC(sZ9~oZurEm#La`Ghzs^bq5jxJ zI&R52l{Dr>=A-@aZ&V?YkPAV}Ofl`WGQoeE7*FECL8>D>5#8lz$r+B#*s|P<43FQ4 zwbIwDbA7eJNu*G4sfozRQIh;)(HMM>S%RL}&wPixXm!4>nf&s2&WdCS#lU%dxlvW# z34}m%qGa?=aK~K*&rbX|F$uo;f0dfDLn6Jk64G0ytgD8;MQtN@qiUEuNYr5t20M}KOs zwi2yP?a`JO?+x?w6uTEry?c@)Bd_Qe*{jInao_c(*gF1Cc!ZKmEYw!%XPxWx!u}Ro zx~nUgXCKB-biLH8(q8G6@|(NO{Vo420q}EJYwfmrmWjdUU`?c9@q@#ka?;ojdS8G2 zoE(#`jbnOdjb=U?HtoG}gHDic;zt96BM)7Vle;Mgwcd^rY!79v3}PoW@d}rVV@#9m-O?K271#wja~VPsU!D5N?gYj%#c|MxUAYY%D16F0mh>N4 zR-2{HLKCR&IPZJ_zk@q-cdALk6y&#gXt0DHEAn9jO%Z|Yk6ZG$w95F(G>hl?T4v!SGfmsf`UqvA&Rew?b>cKekIR$ zgk_Z~5uDpw>KCaS(;Zt~Fd+Xq>Iz4LTHF9~3-dSgP0&crDD(MyQKnJl&I> z5*locb<-i$(?pof_rvaz|0<19w-9}6QS0z2kvHNTM9=I6K5eWJYZ0u0cXT(N=Y zwz)x|e+?TGI#xBICQ zqRNN1sct4r#waV}I|V9oX$Ajk=lnaRyz=AaPr;eycRR1lBaRDC!hqeZuhMq~p9hop zRU#AKLVfhj44eGmK!iSwPoQ%;!SYMttssuOj zI$a(ayNl_t+D^VAeT%9gynqWGK6-dmm>3R5(3SNv-X)R0x#LAWjm}I1@$cdu<=U~w z*`Hu*gV(2EcZCUTQ?olF<@F96701h|ndx#%V;g1XJxU9#tS|-?vK@F?u?S`C4IS|W zMV@hblx|8bxka!QNjY1ovxt|rfVx!KPb5&UqXt+%1@d#d07m_TJiuJVgT#F}UO$f2 z&+mgz=KSz~(iUo&kQNw$)k-W{3^KEHk}*8u2z1xUR0JO z{phkO8CX9$S6^TDUoKlnWM9hPv^9QGzUivUe${@J7dg7C1ECuJG4fwh0j!!(fj@=r zyZ&mt)GXLJuofOi@1!ZpR8Unv!*x+Qa@>(V=PsdoRDX~IlPbYT|ZK3i4MNEu5Sp7l1?rhDJ z<92Y<5W#<@<+4}>k$ALlUv4p)v{mBTGDU^uQM2xmYY}rm+Gm_Ft^SVsVAP>+OjV_F zJ-tZ>(+p;ki^zR(DZ(`&&sa+s)E4=(ve~jyGDJ))<<6mLg~313FF3dMg1ThXj=Yct z;Dv06YwUSxcGCA1Z4UpZ=F-^()ue+=FXt%kP2ysEkuf$fM%q}qBmXG$%u&~KnLMG? z*WM8uL4z`1frl$YH%2Bj5IV|VaP&7;810NKuDKGRNir6mL41V>9p>lJbTC7^?YIn5 zKwD-R^e&!mzb2NFE=!NFWM&!IX*M)<%cG7ppGn{yPy zz+I^`^DA;!v{0|g+u$0yuTe{7sM%zq=bAhWuBT0I6u(v}!$0FLFoUR8?qcr__awMS z9WGwr2iiNx4}IJDRCU{OtGk_JaX3oo9QrS`*%MSgD{ttPN}6#aEXw7$Xw-JT$;KHM zaNxWfMua|%0br0j1hL=bM)2m z&6rGjgECLzP&@1qsKAsdn#LTZ_Yz~Z62{6uGHuH5R2II6-Xc8*AwzV{VV@``w?0Vr>Ok`olf*0y)nTB+ZWZ>*X>sNbi`dA(i>9LuaD8!#;pY3Dzz zjDC?hNnRJ8&@Fh>Vwbl1^R=1maQ+Xf0sI&IYj0_GQ{DtCl6}>U@SVM;wl^{e8}D=| zow-bUDr^EwbSHBA$C{Cnccnp53yt^qQYBz-uS^COkKeVEuU`D0x+&6&KCK+lo`BwwNI`39wX3w} zxcY;-%xDC+f{kh?xQZ$i9C!-5iD;7S<3ui&ZEeorTS=2E&DH+m2bxdJnB;ze_GU#G z!c_JXn`KO;KJJ0)jE>JyapN@vzN{DA+Q5Han%q~a>s>>skWi9z@abU5`_tNuWzQj$DnPFt7N>fBI&dJF8$q@;>>0&YFjYX|J46nxhg*vAJYrCUl47jfU8IR4c5|RQC)LG zyi3}J8h@{R4f6V0cVXp(`HqhMJur$I%e^Ba=-fD3!cecjX<@z6Uz5%)KWtg6ebn6O zd4eO4&nFlgf1fytuIV0*w%9TI*SMeU?c^R*Hu}P>z*|vvWSeuG{k`>z|Amx_PK~|P z8b&SG|B74DUU)v}fbHBF$^Qsz@tvV(h<<#8-lp9x%g`&evCb@M5x&ti5VaoD)t0b7 zk9q3GX9m+;vBE@BqIO6ph4R!e*ejB5HkZ2=r_#4P@#Y`8uEpRAe8r^{o^e-X?a52b zqv7$~6RHEX0c{^9`cl=ip;~f>*q`LR$rD4ZbdA36E+yuNU-1_3n>#gjsq+h;nmjFU zI7(G_fNerm=vxle?u706T>pD+16NnA4Z6^yo$bZp^c}N?vQ~RcomBE<$o)np%J)5) zh#dW zQDrYvvDjTPi+zKCE~sVC3HVW~W18mX_R-G@qsTJB`k4pRE|Qhno!0@Z$8zCk;v=>S z`-47bnVZy41o+b6D|QUImHndh;%*?rKo)wBrzhd$M&S#6#Jf)%&5wX2kz~{KZGq2t zL!!N!#Qhac<(T}3YDfDz{wJZHGdc3JT%cv5Q?AJVh9(~km29Q0XR~xEsDmg>G5;s5 zW&Y5)c>;Y#r`r*aE&LI&)RTbY_uj96d}uJIf?%v*muM?M=I@vQZw2-vdYFuMa!D zyfd$0d2(LLK`z=TdMhGhz`Yo*wBTsf?U@l5+6&<38cJY**6Ym_q5|CImG)mb*1r3WJ>;RvH*>AgZ1 zG8a?1o1mG~C$^#=b7%R50MpKA%@)=hL%>g(UeF7#s_WuKa*NW47O1}3)5Le-e700l zX*7pTO`J+MaBidLyW$P6zcp7?NoLxpccp6}k*lS>7V-lx>|;X*%k`BVTt_h1rIC&K zm&jo04*i3jv1yTA>JK!lW`I-j*Wga^jxC4X2&8X~B9Gx`T1T-I9O932L0O4855KtJRgIOteuAh8z>tl(TQq+UORz zACANm$c&zNjI%OfuN=DPKgZPOr$icuA3Iu-o0wVTV(=*c1&o!ES(u(0 z{~RPsx48XeYvTbOFfX#NG};`d&x=g5^x@q}%Y`>uQDls%a7~QFN(*5pzNur7*pZ9l zf5*>{%Pe;rhiVGjjP1XB_x^j@;tX4Cl zbf0~)V~iV`A)>ASPpnj7FA^gL+Gj=vM^y4u@V+{m8EmYf-)Jt{j?1g=3J%l{?C;3q zn%X=f$)%}_@)ALFtT#5wc&Qx=#Ds|AdrXVSLaqZkL?he(NbLUtunP zC-Oq6t1RP|;%Bhlxpo2uW})=96E?CPlmAi>h*oIA)C@I`%%(DoSf?B0ag{6!0?QPE zMOOtsucUYQsL`1$l+PH8^(fy!>?Y{IS|iBZm%POiE&M1+s23{px9N9*tjJeT5B$h+ zHb-)0bFqSgreIsBmD&d1CL|Y6vZC$LlGnxOi6zB9fiA|q+^?&m^(ICyqG|_0o;FXpVU_{a zoqS|6T;)nAZbtv;A86SDuk(F_GME69V}~P}aYvY})g&I8t;zkay66-zPKi}wwFZbt14LDKW2rx#4lUCTXkk{6tNu3SLB79TQxGIk9M#`BTYYc19%LE$JY+of_l$ z>i#ab(|hBGVzH z4|DC56X1L}!};A^=pGRKf#_k$50&GOnV;ES!K!rsrSE|^fEguViIQVpCYEviT?ZrI z^4A0xg?@0g0c)5=sHt*HxTr%j;9r|m!o3BrjJ4!U<^?PV>TsEYRp=A^$i8ICAg)=V zazot~3|SlTAGLZ~OHZmnI<4$7wG`7y{71ZQR!uz~wvg=*F>||mBS$gc2388W!E|^R zE|t>gAFUZ`SdjFw&Ji?lT)?{m`{L}N>@8%f%u)$7~_mMTR(zF{g6h0gEE!He`O(GuhqJ zKay8jt)zsqv~j`}yrI|=YiEu@bDA#pFyg~cRj0r)P`AI+9p-$zlNlpUO=_mxE17A2 zLr&y#_Nlr`9tH0c{!!Zp8)+U*aC`z^_5Es#xOR-qI7_(L>)IEy1HBL25?|W~h6Uv} zxRPd-IHSB>;dG`O=u*Py279`&D`sb_NA|*A%A0~phHj2B(%2oQ-5(<=a(&?)wp3Yf zOr=MxVhRTFL$qBYt7bZ~v2qbgd#5ZG80BK3D{5cipKz(1?wA@rZQBK%U{zvOt%JBcl;E7}YG%YC z*6jg#yZV#XKdXPvlvOpY7Hy6K;4nHyc&N6bEFt4^cdL5 ztXS-#TL#Fi`B(;O%he2>5<02*=AJSXIH#9mngu7*-$kO>3O9we04&J~eh>a4j;3ox zt`%$)K8MfxM>;N(EItrF<&O4_+V(hVKW8K2$AD-EzrvS$d!T zmfa1oQd)RJWTPK5uG0PWd0=?{z{O$PaxB+4&HTblGd$cY9T?{#KG7DL;<9r6>0=?U zD@yC_Ss&h+*buKnjp3|vYhh^7A3P~N^zU}oNtWSRc#leEBZ#&)jy|t6r*VCn(w!en zT#@e-OW1UMhtf=`ZTyShUNxxn6vR6yrze}W}vM(O?akLPc5Ca?w+%9$pTn|c6YkQ^)xMcN)(KIxLduQIH{Zg#6 zKfjhvOYTwhjeReUK)%c!cmqlmCq%Y}=Wx^Ahr@jV>H>H!J2n@2wOEwqJ>qW4P1gP* zf0YDfBX*E?f>*>R@F4#uekh;l?&q9{ACTUu0|GsWf7~@GPPykELPkdz&s?bn)!V~G z(mXDrBURP4CXi#)B${}xu-8iBi_Y+iJeSlG7%hKQ*DzP;m%=jHU|&m50Y-X(!~U1S zcphtQJo(BuHNjh}#OCcQH|HmVpFq5wW>etaoF;BJSDuX5QtUsgd)PTdcYnUp)AcuT z7d&NR$UQ})xC+HjxpjQigr%6*HA7O^mwF2&UWugm^^oIGaTmxq2N%c39mjZng5eMC zR7=qb(gU?J_|YxLi?j@vRh$?uL;aE(&+|$Qz05@FIZs_gZ~Pvdg7{*88=SivmBkH4 zE*M+V*GM(Xdh838gn8L|#!*~WY+R-m?M&2sEQ!b^JNdOlY5hRp7UEKPmFA%p)_sWZ z`^>D19Cv9zq!YYrE37eJ(Glq#xXMm)brjbpb>;4XI-2V227vxrtHhP3j+gT%ZG%g| z9Ar%8mEVYY^b_ff^9`o>#t=Aige}IR!zIi(^Rlv@S{`U1Y?W3Jhny$Sx0BTzAic8o z2+iZ5zm|3+nrGt82exd*#pEIu_ur1WWIAG`)yW=FJeL^>M-b5PxV7NlV5izvDNn2g zx%5rFldBTxW=G3Kc$#&pI#w(YC!%9=cW~dc*&J!igHC0?)>#=U{)I&soQ4*9kDg@z zPkV%~lor9AB~MA0R^-{L{vBIN++}7vk6YJC$A~(H&Q4aMw8`Q@H8wIb;U?M5SgbWp zh%xHo-Sk}Wklq!h!7jB`?4Lp@x(TeW=CW1L>1WKUKm6@r4FTX1eVyHe)d4geWyM#O zarF;RWb+lLHZxp7%~d__p|RsvoioY`Go0%!v(=f!>tT71L&lKhXRtg*s~=fmHgjaU zosq^`H|8~7#ki_(K(m>&oCN(Cos9UEiBhldP-AA1MtPW9uq8e)JRYVAN3gfhzw((} ziCzq;oK#{HOw>Lxligt>i;x40<8t_&h*c8}E9%qLhsp@wTVa?mz!<33ftK)2=+_=N z$E&6@fbD`)=#i1v*(-16&f9vX{V7XKSN|5HV_! z4e>;#G?~f$tVqH--zfMMo2xxAK_oq|mM~rE2`dTZB9i8jmuqR#DebdR(fC=lab@8a z<%;!wK^uKAUS9bh{!k6l&4o!UNj;9MuUuDx=p^}C%frTqd*x}uMvPK3)aUT5)}DaE zSi=gsQ3t>h^@uf{Tq#G3FOhT4Peuvfz-fmU4%Ft08_gEfGT$BX9DL8$R_Ya}SWl37 zT!dQT_Zf-7mA?8y5;qjYFkW~7*=n1SCE7^)E}<*72i+-*wo=RBN~;^~bv>ieq-X}V z5EO7{P{wnc^DR21;l8A#yBsZhq`uOx>JVbRWe(M@=z{u;b1TT_8Qch#mutz)B5tEQ zKU93k5;Pux1_quN;8+b0Ev zhE;JBzDq7sE{n;aJCQnf%qcJ*eX9zSjp~-4)lY0GR}RqxW@>lYMfx)#pTDeZm*d%G z3X5ZMA}1&;|UxL$fP-IVwv z`$2drS(dG3WGGkc*X>{EpF>qa_oSd>Iz7%ePHC@jTnRcS{p{ZZR)DIGbb%7v2fU8e zS~J*L`GOTFOV~bIvD^wyrF?;UF~N2Nmd;-Z97pV{ID?Vv>6?`P_(U+2)l=$< z^t@kG#!uy51?b{EJ*KOqp0BG+a>=ZIGOt5bneE0Z-gK zQ=qm^>|)MiZ1{b4fw7nWM{VG2$~s&x!)uZrfYMqA&&qHaIu0>`!`L;VHoSyCx4u_0 zlDoKu&`VN&=IfD#Ze-ga<~l=GL9Ao;v+wZF!aLg&BUNM#9(7f_ZSCdP8-c?W0|H`cifF5&ko3+2w{QKk_w0eyd^ z&=u91+GzKA&u?5cONQQ3IR+=XL~*lzK#k?kW4%xZ=&+)|9{PB8p%%^L)9u}T@Vfkb zXRlyw{JAq-5cPg~zO6f-PK=?HrL@ zCRmTC8LY|qgahIZUk&#n$B>*+umJH|y6J|PC%noTMfLS(X|eVR;`;!}w6dNKaw}G- z*QuD*e;dfo;&I^_n8YuntI{jjHQZlIpK!fYlynZ-0tdhedkj}olr>y=97yGR+cVwW z_-}YyB9;s#Rp)BKf0XXzDQ#&W$M;5Kq8AoSfUCVOxsTS&UIyKXyZl|qG5PPw&yPT4QD7gcSAFymRvsnX|31gVM z_+0i+fOzUs-Qr8`rP^%&2CjyDP<|Ac2xpni&>LfRWT2(3(Sqrxom8T{4e0;qS8O|W zBR0&wlDmxfUPm15OiVo+=jMM+RLy^+pY_AmS)$~;PA4gI@h_yz0@JT!k*7s*MCpX(v@WLg!Mw%0IvJ4P@s@TvX}Ota7tVG!c^E)V_=7K^)7 z!MfTv!q^O->%HYQR-mc!Pr*+WOvFOJMOUQSQ$4UM3>P;w>AElyf3*a$5Tz2`!lko^ zh@O@nLUzgT!Er_3=?vd^x^r+EJD08}QpzMKX>#E&Tu)_-G+tTZY)J>mV)>)|x6vOn z#cK2n$&pK`g3ba`207}`% z(tj8H0aFqyDWk;QN*zSZwdjQoz37|PcvWWjitTS)VfYL2h!d1a0{9mGpl^Y1)J?^fq&DI?pdeCM zPj&#lkUH<&Q?dX}r2YUsgn|xAL)FWy~HHt>i9(BEKn)Bk4=}c?&0m$)| z;xC6{gM0FBJIaFzE>*p*)uI28`oY_1yZ4`vVW!LHv@kcB42s#2w47GVI3Z3=#RtMw zGz|)r9LIQmfLa4gWXdW_g%3~*C9CC?1(BwDg{TN#M^Pd(xd^wHOj7@HU$ZZuMq3Ub zTj^1@BOFbPL>c3rWNopY@8@tGeLUZp5#4O$7xt_7Fxq=nQl_$hR~VtR!$_qI9hCQ( zlbH7~nH@xZ@;_oEHVJHJW~0f-O8Z*rEV~(QM_J@r_9Ry1yEFS~kzPt=FoXD0D2Yf0 zePkP=PiS0lXRtioUAjSZ0;BB!|6*V4ItuQQK&nrs28ZhF`3>}be+lyTlra+XUTGVx zZ9{QI5%nw=&=Ns5w%_US_6}Bv{73_$N70-721;421K7rX2)C6a+ADtJae5)G!^`Ai z4~Gl%H}~97E7v+{nz+`JlVlOLvzrn3bVtZgl9BDZLh4~pQ{^=AiJgXD3DgcPD>+@1 z%-$8hG4<$9t*B{Hrl5u-?QteU-DmoZ)&gbOJAOLj%$$6ovQ{uN3{&^@(ibE z$$n)#sD)Z3*U&TLJw2Z+CjKX1V5_sg>Nx~oG-CBgwsqbly%)QiwZmVD&hmrEQDLZK zSW*UkL~YIdtFYBE6xUTs;e2xkT2dSAzLM4&i=`oAbg*KpHlPPwvd#3DSJ4ckvm^Girx0r@x>sUS$S?qQcdQSQJ#Nni3mLq=P8xg0T+|2^>vDh zt@YJrWwRDJj_k^Pkrx>Y?Jubj3Ts`8?=8xJ@1=+EcH|>{g0_N0eyb{xZ7iRR)p{N` ztC(hLGc|I{Ih*mM&{kh*;#s4U*AzQEFNvH`jD8}!J#KQ%JnuAGxdt-nrpcd~uD+%C zZxwcNbA2kCU zlk7BO8z6=0>iiqB7%`07s}EI;>5=lq|EKs4$GJAtL~gjhGr1)+$X$aTs&fegg}VGg z>M(m<*}|`(&Kb>&eau+brpPb&XnqU$E6L{=L9K9Jh+N^E-k;U$IvSO0ml%NwsrR5^ z+O@LY(p;kVxDd;A#PyXzi90+_lKddzT2fQ&Ow?ibyEYojW6pCo$?DGD;!Ab~rz`u( z1Fnnt<;)rMG52y^^`$VjBoK;(h|8p$XlR`gQqd`~C z0Cg^y44l+Rt&p6K+G*+BbgmcK%2UcYjcd+TP@ec&fa9RPQVE${)14>qJ|&g(F(Aut zs7|A-bRysb8*`@U4g7Q61&#sSFs>fewlJkg<9h@jyX$66SB5N&C(qD#7+N1fx&80> z>%p$vLt?&bE4WFu3Dg4nTzUK(Zllo!TNrcoYPv>%7~mi9UQJy;il*r2g5vTqd{*LYBEhof2*tZX^0p*Lss} z7&A~mB=(TnL~{MtB4@O!R1#iWPx0PiTClt+P@_Qv5ubk6Gx*hLW;R0_7P}SkgS&$> zkxyy~o5#-#9%9n1s=TYj6&T2+I)=MFLAU#M$p-ufehxUA`+)U}qoFnOoy)a%bj=R0 z$KU8}O+z~rnXVNk-&U3d`iEuK%_WLDg-f0C-X|Srs$dIjO^grLWSvz8a@UaW>5`Ho z^;$g|Zw6N@-PMoUHa1PqQasFNKVQ)w+{N+Y`^B%hclhso0vM`QLH$Xz8L+Q`HmZh_ z;(E>OWvNJ6Pa{y9QNhRLTzrkIM!37tk+%geJHy&gFg+p@QY7CPG)UDDyBX@!}lxOj`=~=bHun5;z#o^ zn6 zPkCpN4692Qbyiv}onsqeYe?EK{KMG$T63ca_64KeVS74z%$NZ-mMG#G?L7ELXbhcJ zQUI>o>Mo%!ax~Ug=7V#%Ay4EdCh7cN?zzk>ay5Ped7}(lJz^3oz&Bt~Zab!%tC~1R zY)HlwA5!~(Zf04dw3l(nOgT@!FwRv?UdW|VYw=cES^E`R2D?VO%q`(c!Lz>Qat|;p zq6l7T1R{XU$J>)VPwa`xMNj%OgD3^)29` zt2r#or7Y3)71|Lv#mqAH`bz2B@K|98_lzc2E+BpYf5U(DC%Hvd77pT`3n}avB^|#f zf7VYb`}p1Zn?O^gjxyY^USHDLk z5GuW{Xe&*4PH@FSPSWq(LU5JojSNBciB8T6QaP06_p@or2YOoZq{7~WoO@JMxLV9d z)*aXcKRR~A-=W8=hrv$SpsHC~aChmVKry?+woc0qj-zHMG46!C7Tgd#e&u3Yrt+5U zh#8?*)KEP~a~ED_S6ar4Kd7npUDjSI;ZHOhM<3!Go*}#jYwB-E#gzl+B>>cBex)`r zXA_!mUd_RKnGYO43FE?}m;}p8ShY|WNBFnVBiQ%md+C#VfMXiH3Yo)WQYsfcRx-Uw z{L{!Vy{fAgkf|v|fShbBFlfCA|7%=2vje`3Zs3V?zq2PqNXmyVGPfvQY<{!>ndQFc z`o#5NyQ_DA?jqD*;CD4u*o5wfJfgX`x~rR9VwUHVsSfC7n50kQ#}h}`>0D;sJWp$% z8_kRhfWx~^br6?~R-tNQS8oPCiM*^24HEJ#@Ck3C{TNx})-3hIhm#WBe_&%#w>uS_ zcRo>GsN=*jvW?)t;4(#Z<)hXN8)nh6R5~fSEg`omqVG&TvTe}l!VCL zU{28nyeQnqS;MT)u1GppA=SfYS6LNO-oP_?JnGX>#?9aa_#nm$$NK;9Y%$K^UD#W& zw`u_!&6)BSHb(2AM{8>=^=$4?!_Zfzy7*QQl{da!h#_tZvAIoB|ykcw!@W|nKRaZcXB_s5d>afr*&s_3q( z5j#Ir2Qpr#`5P{~-}`^$U%JmzJXYUW&WzwYNK@eyexAHTpXG|^3(?c*Ih?9bc0ZDv z_&P-1l}jj9TlrvYaaBfn!_VwJ-zxuk<)QJrW;3$glZY;OjfmYNa+$zBMEf-eTDqSZvfnNvFOlh#x0)E3ORDnxEK> zPmYXWPtX=Fi?7GkGUMU9lI;ql)Ww^%Gu&mDFJ^@#I_@j;9SO=%b9Q73W0e!ssqi`2 zq2Gh^J;A&uSSe97=yPWqp9mKpUy+yeK)nKg%g4$!eC~OGT7*# zAJLXltK^BsXV))8H&7jBz&Fgh%>4!Ttv91v>4*7o^i;DxKhmsh3!&uHay3@*qNi$i zA=Pn&nBc(8>9RLaAheJc1)Mr+WQX6;E--|s$<>M98M+IG`D%(pphsvk*b}#dsc5*A z)~+Abe(t8;f#_MWl)3Au8vIriZwM^Ttpl;)@xj1p;!j~Mn5q^`ctkH`84aP@u$;|Hf8o_o8Rmqiw>?hHldDE(yn^u~c1gv^U0MsQuUZb4xA$Q! z!UE?!m*O7@dLb(HapNPk)0`#77bU?aPVoPf3j?Q?L5v6~sp>A|rd@+YyGBcmJqw6t zra+8PZ%Qe~UUk0x6jqCM;gg6e%pPtC%{hMxO$tnuY6P!pO<5nb&ofo@3XFUb(@5*4(01-w+*`6{q+ak4g9ZdE+Z zd3@P->j$Ze-w}UJU5osCWt}~_UG$mMmqmLLs++RVh3g;%n3gc4UDU_9R&fmxQ0A1x zsS`pdSpxpmzoLY`0dM7{5+EKpx4x@Ife*I?Vs>Zh{iTMUm?Kr(l9J#pM$Y3sPi;Fx$M% z?N%7q4E`tju`$QRpr>+gu@YOxGXZ$DXH5UV%X}Rrpy$|ofrM~W$tdSV>qUPzbB*gg zZQ4J(!dxf!ZFQsgMM(3cXcM@X;(8*}=&4oae&El;U*TT-zWRc`rd{-;(I;d^8%#{) zW}{5)3!;kaL*%Kmg0+Ee#rngUW*PYbl)-GQCjHG*IXso~h0v_c`4kKkE|OVVB~4^b z!+*8PY*l)*{=)0zcF?83eP>g6lS5xd#h1;G{8zY-Spb$xwdmXmJ%yfP^VDigHNM14 z)1QTSl4Nh`o9vJ9QGPG}S*fR1CP%Z4D{^QeeGlFsR#`sFJFExkB4S-+F@4BWFY>2! zhg$(J2WR4&5~uj)}PU@{s&1|A?#qVq9wKdi> zu`#%mn5=y8FM`jx8rmhCCZ`ikg%4Uee60S^|CavIsBF9swM7%M!BPuw9{jCl6a)Vi zc}rm`N)q)V9))6Yk!c*fEjqF7;Crx*B}RN0o*GD1pD?4PSJ4z|T1#e^+sE1mUzq=>XW!$)WH2BucU-T7lC;fBe3T`tNJC9=n!Ha~^(yFq< ziIYT%A8j4D&LFw?h~+OOCQwCiE3=f<7N;>9HKj5vzl5V)O+qD6@8JcyhPqy#5+02& zuCN}E%8}gb;F)hmpi`a?b_MT=I9OGWmFYljwU8X`OlQX}?Ero=`w3f6V}FCCp7PDg zurHI4#W(3Bv>AToUGR(=!!75xke8HKiiLd&s?m*bADoXiVB^RK%609#jj1hn(1ZfWYBiE_I&h$tA=NI^{YE7hIjZbR3=tkTkg4AkgDnKx#%+C*(>)&n!uDEJNULGA=J${O0hF8a9MAK7*< zVWLEWc4&dT7Cevj{@4pCElbI3o+ujO9^ zR_Z(0t;%Rn*8CyqD^rMF)Vk4U%vsjy^uOVw)EZDkw>GwbDn>Ra2Y;c*C*^T{)K%F3 zq?%kFGShWI#!+v%uplVynZt;Eb(u&YlIZvJAh?jLL??qn*Gx7|PBgI4Y3EfolNkdb zb{8K>#Zn8H0cZyM8@<|HEAkiCgu5nQEzV|SNEYwm((;;v3-WB^XYO}3QL9Z)Grc4$ zW#bMe#;fM$`O$o zfDzI!h;q2cT;znxdf~Y%iS7=2J74R&5pC~z;6nufTLkuFwPY_o7aPS#tp7=6;WTC* z+W>1uO!nC1+o9?74kp=kliaF3qAqG9QhNvkAVjv+dy~=fHt{Yq(p+ypFa9SCxBux`#|_~7Q<}Z5;*GqQ@`4z=km3+F z66fhvzE%Ne5D(R?c$K^9q)|3*9{)LUO~o1P2*ROZo;dXd_Yido<`tAL)04DX>1=d2 z;2ikD-c|cjsk~HKe4V0eR~a5Tn_B&Ic$xl5RN^_<$c&KY@wLIZ&1B6lkSstgdGJdK(jjWlSH}3i6+18jeSH zLZ=c+ITEnIj=Yo!s09IcXl?27_%OD~;`{VSs%^n1{&ry0PfSIJe@CU*T5*{g0 z%t_B=86}DUTXM`yqwf)4T%)Poz98R*SfjomtA{1ZrN2P)i$bO~OTgy-LjC~s2GZDt z^aLV9L(OPd(dEawz={y8cr2^dwZialnb1L^5x3JifbJ5s82yzQs^~w&Pg;dKo?49d z2(Hs>qx|rOFlk38AZ?CXUvuj9x$jc3=@*YOomh$PE!_#eM;!CkjFsqv*HruZukd&D z|Fk<&3t}(qu6oED@=j=DMRO4JTB`c%%HPSI^r)2bxk%}2cb59cez$d#;F)OqW#rv39@?Fuc|LLN%|8YBmQ=p6PDDNP9tEdAg+_61p z#!74XJ+9fx9oFk9Z4Q>lIT|@$2A2yQID@_&E6X3;BSMqNDO!D^zcv&wG65;y2lB&|C^%1=tL`ba%lD4a3mL7VG)Vl5_!nrwQSN3a{pGZ$uVC1L zas#u2`pHw|>V#~fr@4c+4qSO-n5!0==Fal7EXzTnXcnn)hBl^+dFQk=cpz`Gs`4lio1f;n+pc@Pz@gEYcp$IKK{PDAH{gDMP%xndoSF}RM&v> zJ=$M9*XxrnKtK7CIECgt2bE~h06v2eVY;m$_MIMU*3!Dry)=h?s(Fs_@^0)ijpi|Q z7ueZR#{XDbs7}?ZCvPF90^V${7g#%lhrs%DqVF)9rlm495;FoDsJ_4%9AzHlKNw%= zJaTqnq4X==hdmavGYM1ok<0Nf!v9p2@4a#+$Pqh)b$YPASWN&0mItm(*^2E~SL=LH z-{g<#LM$m#n`@^0N1tK`@GH$E{#WWh2C?NpQ~2FAgBqo8<6b8&V>{Cw`TELB`kQm~ z@<0ENqO)L(;%eJ4LF38#$Qj$+1b26LcQ5Wzq__qT@y*J}nVB=Qn*=RdT#6SfPH`x1 zrM$S7?|i?2FqzEEd7k^eE`Fz+5~wX+M=e)h2UlY1!tweQYMa@V+y`RFzmlgXmkN$n zW5HhIGW6g%d9qlRwivWO5vOh!fF$OqFcBMhTZJ2x7$!t=n2m zx&wVH^c8kaPY^F@l~Jv{MAtdT;mEhe0oMgj5ACW_A>4>RK(q+l;;T}A&COO9s);xC zimX7TCr{B1=DqXh5Yv2F{3jq0hVPzo6DZ;YbE}O?@25CZ;q0y z<1#YIT1yCuDNsqv+=4~%ePD_+KWCi_XNj2l*gmz2Ne5%(Defk?BUL~) zN?Pt3#ZBdIu?$m@e9u-TchmPQ4OG9k8#qZ!q%SfXiI>^6z=I6nYZ4!cukQawrup5H zhIe5P`8;e8o(4MmeS$@@kvGs<+tjQ}R4Lq6o(+P5UfdD6iT8SJgTPPTO4x1Rkn585 zKXNy(kPpjLAt;a!cX|Gz|MjPWJvnpuW3FPvHtS@jgWSUTK;BDc*&=E$OC|m~S)RR0 z1Z4;N%K4n=PadRdf+pU-EDQWSx$&7H*Bm}p_*3{(2efXhF0>6yVUDtCpcJ?h9750W zXILAugJC76DKVH^Z8&Nv>pJms?+1U?W>$#@MKfuMIlj68J#6V2- zsp|mLSI00Pb{yw#CrW^E`QwwDCLhB)!|fKt^k70lgC(EDM$RGZ3GN^1Pr8#foa^h# zXR7o6v!~0=Y=(;jb#lp=SmKEN58{aB8}%j8Qf89%0~wpJCCcsZ1_s7=l1Ae>%c2#P zxzFUPP&xiQXS3fUUNL1{adc(Z&*UdtT`mOL5GBdubjbA=^M`$j9G9JuxhsyQ@GDge6aD%Jb?D2SMWzwoY-K1(s|cpi z^@P&&*VM91Wj=`}I007WmZ6s1^pxN8hI>l#Z8KSEn{}Z3jC6+_3)V$FiMww}R>mo7 z^Lr_a**W@dEsq(gH5ZP7V*JG1?5wBZ{@M`N1`tkCp}FC*^>l>Tmr+=?MMUH_W?HE5jEBr(jx-;ry32J?o>nY zMp+U$i!I$%=?b7f=JI@k-PKOi5%qScLfF)&7ay#>lA|M4?EQTIQK!T{YzICMv6?&F zgX^5w6Gn5j^;l-Kt+zB$BD8kmTryF(1%^8L&?In~-J#A`Jb_}uN^)fW+?>+56Lu;n z$cr7Wl+sK+ZZ@fFm!&<*2;~r2QJ*HXQje6KY-!2ot9?`Y+wDSA&`RhpcMRg>hHDc3 zikh!&@~qPy5Y?T-eM{9jz{a0q4zrrE0@~bN!9`1yQOWfm_ZJHBkJzVZVB%g~_DvOr z$|c1C+WnZDdEJAHE#2ro=6E3=dZ_@Pr54LAuO7@tV2CFk+;)v}OyRrm#mMDShHy;0 zfhx0C11tW;J{-4McX;CGB&UBv?-7-`N(?_yocIq-7beU z_7!1ML@vXludaO09obmXE3njX2bVZ@dh_X3{$GVj>NKXvwKlT^TN%^k-ldKf%7s(C zG8`s0ii`on2?}kbns}2j-!PFrsMq(?au;o&`IA;Jb%p0^pt;$^t(qmd4%iX%i5~^V z`(56#i`V*X?nUu6v}VkBy)tR1!%VZxJ<3Q|L(dJ(G+}TO-9`8Wo`W^8bjn)i0In@< zVj{&iVj?;olYs6mj^XBUb;!A{CfZ$4pNP-fOjJ*H^NrDYYL}P+o>K2gObm4VM>ZvQ zXWVcm*efR0Rjb2|DrPZ}%>n)t%#F|Q4sW>Z%wqNkAo;OquDvl@Y!pj8LsnO}@P+mp zI9<3LF3=|8`OE3mt+m0zT4FMv2786h8*ABixvc{g_~@AWDI)tA%(R6(RwE3`8#{&a zo)`R~@HH_uvO)S)du!z8{h|*A8`ab5Mmjsv%QuLP(PA;VsYQNQgk_FiE?A8iU+}xu zM7R_l4sx@-dSir0}cZ{$oQ?uQ#wH;hi`Hc0f>&{yE3%71FmtW+@7QLUgmSd5M*Hc>Yij5>+C%-)$PBx_u-_?n57Y%L}fx(qhj z&3Kle0(uvpDhXyRt*O5U7CP?dzGH*ZN@brnKo|3N0e6)&_6>A_KKe!DQ+xxhmSYRs zT7J(p(?^n}gaJAET5fVr&jMJ+Y`OTQ>hx{^Uxi1MnSo+^fm3HMy8AvHrdx|6R4l19ZWO6 z$kC2lCjAEE+2{0O_AE9VPf%>ZiCmhpgG)x`mnm7U`WNSY{*m<=cAD)J4sj74Iv1KPT&>_U`zvt4Xd6>Nw)4zPnZW_RO=`pr2;kHwA`hnk^G5EpyW*!R{GOg`JhRTIcU6?LdlQze*pj@^g?J(v-> zOQDUKCtep1;GAJNG>PvBgEWg;#rze@MCbW@XqtOdw!8A3r}HIuAL@6~SJ28+T?~7c zDOc6!ngZsbY9)AK5;H>YYhKL`GP$gWZN!=&s^tIJE7XeI{jN0B4qcSri5<`n>Jc}Q zzmk{5FXxtE4t;m?wlvAHIbM|v^iUG8Y{rGK~F z6Yh$W*>miF+RR{mdotG<90UWB-)qI(b(Oa4h+zBl@vfs@&bh>uL$pMPMMAp8Hc;*} zXMv4y=Um|uXqRILYHh2}Iq25de0yEE0<3yp@&h)mUuMR$-{~m5Ec%;$pPMNzW_m`d z`iH^c%oG>HS5Wc-n_#zWxp)mGpKq-lkk%19{Rf<0Sj0SK^O;m^gYH;Lw_gX7oE5|! za-Y0)QA@%2JcA$aSi=m~1a3^yUZ>Umle&Rjq)iXq{7bx z8A=^U3l-@0k+FHl0@InAW@A!8V*&y7iGIKwhj+B&^#7?V!kGLbv@!m4j%N00^;Z_^ zLG`bMB&f^Br1{2o_{{K!{S->g5;o}@jGx)VVjJ%Xae>;*?Cu?14)@SO(?Cf!DvyFc z)RuBI>`AS!`&Ou&vX_5pt%)A<+tFpJ5X~~bXI`Oo zsj-l5t&MqhKF1-(r@f6HYg)J!fl~0RD=FGX z?qx>d5Y;_*x#SW!FFRlRiN7Dgtd)#|a;~(Ztta^Ff7VP^`Wbo5O&qc{D&%T_V&2F zUt|c%xK<%6zgF7HwKFo<8(K4YHrfQzP?EhdY(mw`zmI!g0dNZNQnFanStU@GAE~bu zE8r|eRZl?L%S>WNh`*~Vz!beAJb*rk3+#K52UW2Q%ioZH#^u)!vY2)O%W^-65@=Um zny+#mCck8czI5|jI+v~;t_}1+e%6nt(P`X zZKX_%+%l@5f%28mXnjqIR!TLoA1dj48rc(ai?QZ^nFB%^=Kj>-r^qwI3j=9%SyY2b ziF9#oO6!!|oM{Pqqiy*;nc|?M{!?6w;EaNzRnwHPwWc|Ov9V>1?ZE_nowC}Q7qLj` zurKW4oDLJCkMJrT^bZwc?E}fU?AosQrR`9bWipYHlq7Zya!4l6Iiv8M{LxD2S&^BM z>&%AWz5GYoR=J(ZvlZ0exhL>^nP0(aZ8JOzikwejE3GBln)rjyf9@{I4y~&QH=gBX`Xi!@GqPgKqX)a#)7q`09 z?%L(}c-IG4Df~7&pYVZrsST0O$b<1_be1+(oGQOodpOGqwdfNm`|xwFJZfTG!vdi% zp7LlWJi@#NXC<%qri;m&BhAxxV2jXH%PiMSa)LIHvj~Z0&zfh1vGEy!tFQ)oCcD|) z!CELPWrX76TksP?hdd>;0I*0;%c$lvW`cE-&@68NUsH9udHWgWHUFq=fAbemfl)Bg zXD4dHcQxxFuW~|dC@(2HKc%L(8Yh#59$IJ&qpg_YFfW=%MvaJah-w@R2oe3u1p23^U$ zg&IvPw7oMgkwEx~^zyT`j?@Y`RG;KqWcHKB$5k|YVv|5_{wa5N?m0xx{d#%yCnjp2 zRJRg^Vm5bM+O1gms?5B|tGv1Dw$Mr|<)4Pyk@K06?&n~$?{#uliSk+u-8cu^8Hv&) zZ!NUQF!VpeQ(bNHXWM5dRKfrAYN0gzrfkp2Tov5vY8iV~tsrG!_VzpZvbIef%5CL$ z6A$p&YCpgxdu@W+#a>41CvrrAV>Vw0t;RbWz#X95xF)l+j5&BV`o^BYPV@dCmvA2H zu5=Zw6GrP!|1EO0t+UcSH%=HP)S`6plQzwN#6N(lA?~v`lpZi0wNGRd%%@zzH-p=Q zqwRe(iaq7N!ZF+zv|D{?Cop|qR5wUTmKRhlv7PWHzD~FYzlocQeXbRW%l?hU2AT)B z2H{M&pK-$GpqT#Nd~DX{YwPt;eIcdrn=wt#rTb>i)E28vF}<>l{>}a{YqBv&=u$WV zE;Ta!IqqzujQFe3MlBWl-jNlFHtvwo@P`%gsybF{97y!NFE}flH`H*8z~hp;<}UbGu3}`sKB~-LQcdn(kDq%@ zBv_{x1!HIH6|fbqFP(xNeG9z;hxm=2DtN#6lz0?8$>#~%nNiNagT;&`*ce?98fr~7 z9sCpHXoz%F6!s`rjm}_{(n&M|E8r>nmsOYW{665i&$i?}MrCQTa$e{sv{d(~)dMvt z(tCVqvh5l_k^RCnR?BJk$c4C7w-3C)7MADSE zcnOGhi|Z`?2JAEh_A1=W&dTd6_O_;TdfsL70{9@>OT8eb;|+HwR9b5d4#5NbJ!u~G zhE|kT=oQg6Pa_QQN-E544L=w;fK}Uq-_(lmFtqto1q!uwrYy3RNYiN+mpZ>9vKo^#HS# zUxfKAU&NJsWlvT96X(Sfvitl?J(+O2cSwcWYHv$^LCVXr7v=tVPJdl}7_Q8B<^GWW zCykYN8-*$9s2*Bno(2{k(>K_j{8jY>{{7eWEOl08J8F9idJ5B}vyM!ep)Ar?|hhmb#y8&!>{D-Q&q-bk7VM|HJ+ho@k6!$0~!+ zd-qOokJ=r&0pGhW=$$dy{-e9CE115^u}M7ZtBSL#Taw!F!!;M&DfxtJ=5pf?Wjygk z8Aw@$sf=O9YW+Oe%)r&rvdC&eQ{1PniT1Dsd>79Vb+#F{-yp68COKwEi`2^;CGcFM z=+S^BhHy=c63)`R9j=S76qRbO&rQiMXSpQ(W^{B7W2=~YbQZy|ol*AkXVeM&RZA!z znY#Eo9XEEywZfFpbGp|(5F9h2j3%hFag)h6`k_@ytoc&-u01oeAz3)V7zhi|uVtR2 z$4nc%v%1BQu6E|}(BXp6n!{#it4FX0#`AZ%6Y2?}oEcB0+ouVi%sTo1QM1GM$>{+i z+%q_lc`PKDpKxC~PG4m|uI8XZ-#;P794gi@?Z)^>n*7FH+f3kofQUFp9$>sRx}q{@ zpVTk>MD7OLqi!0ZW-D3hOgh8UnOS6GBd4i1p38xS%+HYmXH!*3`JjDazM?E{UUEM+ zUTlhX7Lws9`V&-1{=t*D3qlBu^@ar%WBQVR@_mdvXgrNsxtaIU}o3MNm@PP~A&5%ptwOXbM=F;k|an&FJeHg&Ul$JL04 zQd@$dtQlWc9BYQyWLP|`>QQuGX&tlAk(FGLPt_8XavU#x=bc8OSP9m2v4Txqm^LuX zmUIz+7BqHuAR31wSq`~C%wxN&v8apCCFKwEC=%J5`cQNTx#XFy8=-+ldGovV6L8DT zkZCUSOb#E_ZQNY#*J543LdJ@^!J2WG!fp8TXqvv*w#q!qlyra8ps<%}qpZmOqC5(< zR!{S0q+R?{{gPfRssYnaZmVA=I>diKGaZeXZ3TCwiNJ=0ymP`4>Ic}zKPKLW&qQ7s zZOBo?4g8mR$o@0G0%H>H>$;i4bcs~a=IMvoFm}*2rN^O7WU?_B{p{T6H~_mapV1xm zcJ6JyyIIB zUZkHVG;?1n^_}ZO9g~NX!IhiBc7XRS?t^p|90x`BGEmIBk@+Ug^7KvqogFFNp-(Wa z?PdJ0nMK+pah#-QO)c#~t)-fL2vkMCYELAZ$(7%#Yqj6i=8#usa|X(SZh3~%-MP+W zFjKF0@K;;60=sR8Z>F|6u`E1q-zKi$lB5&LQN)34QZ{?!P9Qc=o3xGU7_FgwN^mk) zFE5n*fk*~p1L4pr`9FDZ$>C@r9LT<2c3jaNjHPOHf4!$FQ77oCIJz1`JR8(6xt^KR%2{jVn4Y@-&}ke$gs6YGPyXW3*I~(;X24G#oJz& zFoq)3=@#bP3qdwP?@5eZmrpW`?ccF!JSn8_H zcQ#X(6Z4sdTB1Qfr})9X&ifB>88_QK+D+Bv{vY@(g~b`Pqu?ms7P!Ud-W0c+9;w!X z1Eqd&KyYQ&0Oo4keNY!|aajYWNd^C0hjXehYSEL>VeHQ6;k>Q%wcTO2N;-SNJ>5== zzgs6UUb!J(Gjlt*C=JiTI~;pMZJabuFGhSqxp|~MNvo@K9!QNy`XT=u{D#>mUbuGU zQSd0dUSPFPXlwF9ZMbEpJFMhLIrK*J0MkpZ#+{MMBnzu9FnrD#^_9qT8w3IU;Ci8c z+CzSxe~A{5%YaeI6M2iKkbP0S){uA{+ueUCqmR9W$iNH4@B9+@hFgkP(2<}=eI0J) z`dHAFx&{IB|cQUVnG*=?Ey6Qf0jz8jRL-imI zp%HWw@QiAqZxIU68e^P9WfmvuJ7w?+pGJ4qR!`ORW(z8;EGiLLCrZqz{v3O%YKIx{b z98*7Kr(iK2Q14S`z;U?)*cW6MZwh-2vn+dO$GQ_7&H2~hW!_|Y(kiF$kSxr|^NbMd zixrLe=&|RCF>jq`n!mJmpHvH8c#g6s@spqktj=iT{m-?KJk4I< zFH^m#6x4^m#9W4X&PLcg>Xe(qWZ=RLbkiN5cvr2@t<5Ra2MI#ZgGq10?AO)0`2KGu zec;}Bo0BtON9D6xI=-t{p-K3_*PV2V1%BX^8t=5#Jz+iEdHdY+Q#o&HK#b7h@ zsO^+~TgVeeh5wPhBpyz=<+N}+===H)e|xYJRx!VtkAY$C$^WM9=hsF1*qSO2E2@vc z8~c2L2fujxl)mEa0FRkRq$QpK?f_fpck4H)UGyh3KuG}8Li@BoFe|?yGaemt93TeC z=cK*_4S#m%nVY4sjMDD~cf;9yn&Sge3XFwwT|dE*#yY;C7Atj>-e^Mt6j7V3E(pAjMz07qEtr5evUvvKm7El5s@dJ5X8WTAP zW>mP*YLC zV7jXqfqj-$<21YMytKHRmMhH){NhgZkLTMZJ2ahU$w$h;a1XM*cE-VwygJqQGmK-b zg*WA$P=o`)Pq1%r3I9MJq|9-b%ekzrEG!v5ubmJ>fk~8)879?B$zg?@4aR|A1EOAZ@Oztm_M*X*q$O;9sT=(>qwfEaWWa^GK?6N__!J zxPJ)IpgTRw^^r^x_tCr9t#By&DsW3FtqnCHZKJA0?Uw%q4dnrF0h6Lvr!Ry~F^l34 zvXjjcOifNj8;wp5Xy%8@f`L?)Q8w`1Q9hFcvHryTI>?)s2^UAYnuDd-d9`3V5kYRlNqLA5w5mQa+Oc`Cz?qc&k}0BS+W^p<|4`tLG*FKk z-TAAEEDr#SxL9f$oDwO^?Ur79X2L(fCH=aj7pxgk{IF!)2%n3CyllIv*!IL0i8uUNb~KD+@o6&raEM~FxU(_VE@ zHO0HIlChSz;56a`Skrq{J;gVYK8T-92E64v(^oYg9E_}53v>+~=5ErZ(PUd?OEXZ0 z8(?(y{UDMBK|1I^t9*i2m=qz*wT&+0ZWvx7{ood3hjByZksL>}nDg0#9xshnheu|) zHwzHAN@_xfue|WqGa~V+zp9jvT4uJR_xTP{W9+?!Z{|=J4c;2-#LZeocQoENFC%aB zLnA=^)tnP42oK~#S`Abw|E+&B!m}upWy#{!r_95<)t;u7qH@Iz2o=m>HhU)(Ryu$NgbAPhrUd$_G#IcO_9fWi%wB3Yy``dtYNW z+e|;|SSgGQ#pOf^uZ(@v2JR&IBV1DK3#!8v+V0%#Na_mV--5e|4#x~ZPZKlry67*oKa?n40L}Oo-U?ohZO04$g>icd)Nw zR)GjIl3uIJ_5U2t$%^)`&YNZ8jaarF>E?;$R#=NY0q22;YG_w1qqNKPeM!J=>l_M2 z@~KZ;D?3TN7BSU=SnZxKY*X5M_L}{|_48k;tMvr_kv&S9uat7srAl+txZmR2p~8Y9 z$Mh_m+~&OYJIoKTC_I5KqpidAxeH_|$6a|fN6J08Qr0@cS8ch`EA*#&PBTh9RZffV z;y&9B$Hx;7qpw)HvHu#~(U#z4v@m1|Wsrw6_ww)gXoZRV$u;JOa(9Gd!FudGcRgkn zc$r()S%S4t@%$8RhV+oT#4gCiAOq^Se^&S`QzG~swAYK!P+$Y;jw@rO0{>Q5QXR$Lz$)x{N&<;&U+ChdgD7jI-~-qK#8cx^ z>T~JNq`+&kr<%@9&~@%tw@cjPx4;(UEwwic2KqST9CLC$(v6+jWmd4W>7#OXsx^h? z-|>HOukCx3LxB$N{h*9Emj9L6&wufscBk{NnF{O+=K`=)Dm*v79?ezam!;@ySJLDmG zg^f2_fjyy4!dT%!UWBiN{TdNpb$HFZOrBudLp+6{6XrZ@jbRgk*oRDplU7IXB9W=s$DUkAyIaJFSVuIAb! zz7SprJhlpi#fS+%!9Mqy;Af_ZJLIm&?2+#ZsexCkcFSvAXQ&=vh;T`xjqFk*)OpFj z#pla?UhRqHhzKfJdzyx=%I7$dR6q?xdWaN8yOB*IsXNZ&n3|{y}v=H z);MTImpN0hutDvm-dvjpZ@BHu4EtxQJvBEagbCCCvb$hybBkxQ^DSS7uV8;JeKxm% zwYVL)j~PQPMy;7tK2h#u+WE=ydv+l&20v(d>aMr~;Wod~y^8P7Ipvo|7wIKk+_5k& zDO9d-jTEJ=LssUUf4=9pNRs;mjV#}lrBaG_p;k|t>Zt8|%TBdft#ADmesNXg-wC69F4S5a z;>`p$?us78Y!hhficguu*+!j2EFN816@>B}jRyw2qB-qi4 z{4B1Bn}M?BEcHlk3%X;;h@V5B4N4dYJ~=CkDe&LC0;;B^BmawBCe&R5pcxg=8fc>u z24$2}CxVzzbLVAw9{q?CbBgkovop9S@)M#aGbOG8w-DCl)7Y@_gia5(($;A$<5~tT zXpQ+r(if#KwM+F%<)qjAc5@<_L`rI-;``Y_C`IZAb`s4sr{*yy1=z?!xLI3mc8B%W z48w`%8bWz>q`!f*6HZKir9L%(Vs_vTpf5pI5L;OsqFoICht{Bi6`gS}__5kj70Edn zjh#I_n35eRFc0Ss$GrD4k=^<%^x8aN%)*%s9%Z5B;&k`a;B+SdHPkA3ZNj6Be~G`? ze+)a*&-w)+qKcfH8fEFDy|eF;T3}jSaignL*4O}62NyF5FbQAb^k84ImsA^6CmxhM zsS0R<;p0aUjZk~Nk}_gRc5)MS8PO~G8s_NC$bQZY^Zz7`4=+Gttm*O@uz{M+W;(Be z73ysIRcu+o<`_T(h@N601%ik5O$pzH7Vu8i_2hQ;s>(IFs^LQgp~<=P;Q)3h{X&^d z)I1Nl(YNy?(UEVaq18DEUzGP$dgI(sx@{ zI4#WZ>?$yx?x3!ay5s3n5x8vGn;jprIn#x;oXH;xLE-~;0#;RPqnmU~y^%4*$x}rj zPjAb8f-jQ$8_SKb4S?m2W=H@}obS}2u$0+JjnY-AE_E`gf_s453nnX_nP|sM@oDIX z6s_3HH=h620kzq!cO7d=58t9R_vWnhf9w z?niie;BT>tmL3|4-`LerPTUrcgFWQ_>`USsCAN~v@H3<|vOhUP|CQZYK!zH*dvWP} zZKav#tMI-+1O<7*>dCfryvOax^hTUGjxzj%;9(8vwdGQ9g6=X43l^3juu14S*WdWp zkxtag8w92Z{fMr5M&@>Ax$Rl5TWn3d!`-;*G-gOjanfYInR+gKni#?CjIZhLZX?uq zZ$s-%Gr{bwHdRCXALt)VQ!};S$prO`qRI=nI*P_lm#R~mw?BW`*}~idl7p%6DeU5s z(ckEzIBZEBwWh0~H#YSqwpfj`Z6&6l3sPywGcj6u;!mY2Q7=dnz36ZJN;Xa+Fe`X_ zLUHN=IaIRJXXpt8$^PxQu&S@EvaM8hl$;>HlNQ+OGke)p@+AG%V&t;pFPoU(VOea#i8JHVcJuOw>gVissKnAhw$#^N23s|x>PoB<*MCo1*3krnDn z`vRs3-_Tx@*eMU!|AF~jw7NdFE;mU#LySW^g^>~6UYOX88|@s6V8&PLv~UC4LM>ic z6t=M%aghHXYGb!~Zds4>b@)WjN9YCJ+?A-*+;={}Z)1V?oCA{#^Gy1_@jH^eRmElA zlb%|9OV1GLx(lkG)lB|OAV#}G{1RLr;J6B2Cveif5QCEs^&BMwKdT3w+i;RS!#J(5 z#$NYla&}-P=u4KB2D!WWa(JD+!RM(R^{Vba)rGEU>SgtUstaw@JD5*?Lu?S761$O( zb`P{q1Vdqh9(0{{WR$GzF7A26tq`W=_Gf#s<8bOBO6*`h#*XQ8sEYlSSW3$98hksW zeZfdx)4Zro}zQeh;7PuB$5(w@{PO82_(STXz#7A9QyP z$vwyRmEyH>*pvGL)(sxuwt~fhSL#ImRdm((=0+>WfQTn=E%qCiHU6bBk%H}}?a_Ns z4zZcB)Y}Wb2kEFd!*P?N0E$+F&WY|_>U^d;7_DDPD2-lP>Cu!wbPd+ag%i{S(*$m8BUuJIpfnGialH8dizK zO9bh5{)=gY9rX!i>Y>NRe)xe#^yj#Ts|=!sx<{KPw*)F2f-Eqrh@}}J1gBl!&I@l;W-q(Z!=%Y~1^MjA3lZcYc@<5JgiuKS^NB@+t zwXyUEt&+R=yK;4F1M~%F+8Sp0VYDiZqi~LS9GfF`q86bF_9UkPW7X<%JL5F-M0gcS z)JJ*#RyPq3!$qDeFh^J(-=6u(YjMd;4@^`U#EnI7}JT7M1g1l$9|!X87k^d(lyuftXNYoYBqli-Vdo>jbu(Fd*(SZ|Hz z>pItHjn$`?C@xn2%Omm6MTK8a%u!eH%lJ@11?kbXh|Zlh4sY_6ro z3}jc>x8}2Q1HKD;+45Gbf@jd2Y!iBMAC3xfI5We?Uwb2(p7#H&g$d>BY7Rwo2@V1 zN!}zngaB&qSR9!X_!|bSO5g%)kUYR&wqzH_TfFb9!PgEY5Yd5ToKz@>lg78P&G2pF zF51g%a9kkv<7Ybuo66JKK3p|EG2X&1<+~fB$QoJ<|EC_Yz9r9=nn|XsgM_`x|HNX# zu7a;nJY#?^P{tuqgf5*gkZ)7VwnimS!c2NZ)(T=>x}f2 zV&*>SKRhGpAQg}m-At~-RUF%fhM83z2lbO;yQB)v{l+G|7QIUp!$+pWp*}^SNUF^#D!gp9jkOt$`aq4>Gj#*Ng1e|## zxc3ED>`WxW&Ej6Ii~IrZ&Mci} zBxGc!NvGp~lgE2r>+O`Q@{+7S*y2o8=`kMuzb9%3%H>z0=g{TB5hEy%qpR=}mi*>9 z%f<#DYNJAHwCn8U(npOa_LoKm)0|1djS-uEt8gbapInKw4^!$0nXd2|xD=EzC|@;H*4Bj^uMTkb z61v$}5rjJ4#X9Qq7Xo9|UJM%=XJ5}1mp>B+4Nqieh5^5@xMP!gP8Gn3+&SPcrK{X7 z1XIG~Pr_+37u&>o>D{Q3`e%OyGRx>0tfLGK9}4c({Q2KO0^@W{&>t7ODV(SNN5&iJ zl+`QKT`j5p6#8vBzr=~9GxM|)wm-<3pt<&5xC6??ZDZcWUzd6(^@Nv$?(oM1yX7pE zB_2fpn&5?dOUh@xy81okopX9ptaC2>#7~#Y+wRhxyxH#JAqQ+OuxKJ`6Vt0ybN(^t z$@GA7Y;WU3WUJPYDr<8%2Pn0fvZWHKS@Z*~Fk~^4cv_>`_TH|vDQ?96wK=dW+MfBE z{4JQ6TT*O`JsDllUg@~=N#F!BJV25(LwJ^8$J5DpwR?U$X`JPeT-lqhZOj}C_G>Fp zDfXwpMDdwi8P;YRvH$45No73CwZ6)E@|%1`{brJ_~d|jN-NL3Sv{@MHNt-O1vXV$t} zisN_6=8_~f@PT<_|3zvkHR9@qR^;7PP7)#Wq%x3Crg!MQ$!F@Nq~DZhd^u3p{Rp{) z3vjJkk~x9tD*sQ0pU+Z!A9)sJnC2WAS|Bgd+FSYwGXratu_=G}n`jl7r20hjJ7~{HZbQp`39{3%!H#p1~1gB*e0bR(V(#)MyRnj5VWqSq=&?mX;c}F}Mu3FN6 zRQ;Ud_NS;ns-9mhvWty^nL5ejs%)`6kx7wuiBt;*q-OK+C{b@fE8HxFnqr66Ff_{?g;Fyo1F^RDP9HaIJ z^^NCDh8-51f@@QY`!22SM%30{Fo%^4dz9HMeGJ;9jJGCxNpDX%R$bv7EM#Rz)V-KZ zq87Zx4L2%s49-AZ9kq;EY**y>Pa&(IYUW9kjpYjZTC=fs zI^`26rns#Z*qhmnT!x-^hZNSV^i-CAqdS>BlwoiwTRgZ0zET5f#bCO#5gKp*R~#LD zDh*>h2GT=aKpTcL9>N6VVlQUIkS}~Kq)B`!l~>;pCG|oyh(ATRGe^M|>N3}JkRz4| zF7uA}SGRw&E?%|LSg*SBI`KJN9M=QRk}hi9FjumIjv1?}fnF7C6t38h!aGEk+=Tm! zi&7nYfx3Zyfy&`IYX{aUF-y;@Ta8lY>G-!w6>yjRg>9&~gQe8uYZlPR`(P}SE1mEPR{BiOOO3Q6gkf{v_P4`uko4OqG zQKLxPWy}F}U8}%bCM5a-oBUtl5o(Ijp3IaUI_@X~#PX}1N_(Lc=7>mgFYyw{AZ2bA zdSKj;H&Z{u%iLeYg`8mU8nwgKAb5-!OfSW(>lcaS zyjvOtkKyJ^1?RNnBF9E?uQAT31*W*OgC}yQstxdz_OX99Q`M2bzX`OZoxKUe|Uj#<0J@K3Iv-51q4R2%i zrZ8WtEC^?*pA9*P~nW7I-eBVFJ>1XhVoVkJ($tudPGSbLy<1@-9rp&j`H(QUqK zfETP(93~--2pRH7zNB$VXy+U)eHH3*<1-4w|G`V-BXFGmMZb&Q|E|f!)suD&jD>pcrh`9sqQpGgNgsp6(%ZAOWLNc z2##Q~(O35+o^q7pZmZk%H1sO4A$e|Kr{3FBO?{T~fgF^evd(~GK=c~2jyeIOQ+N$4dQZoQ~k zbqdWzFPQ@D0qn>=@@LZS{K_fKaegJvS&8fAP+7%k;dL|{O|!3O6k(cQai<%#%*+){ zV1PeH{gQkw)GAzwxj@HdenSf!o1ER%XirJ#WSVk)#jVVbBwBkx((D%DOJYTEjqXKd zpqhxZwui$xx%frPAkV2tEijW9;=g8wrBi69zcKSPX=5Oc-NLCNPXEWkkD(;104Es%C?p4Z+_01;$gq zGl&K*YvdjN7gytRQO!tiu4h09z2*kU7kobD0p3N71U_u@tYUnRYf2pQEHKKe7x>Ql z0MtmHotdn9*rAa`p`Q0|dkK36DCNDRw>O7*F{CTygnL*16d7xN6?n<>I>SkXu|nufO+A#=W% z%3Z2B+;^pFhCRor?E=05!x8&Y8{t{<;+XbfkZ?cw1VQvj~ zCvssjXI~<2V@i?%vIu+7?t*|_ARF@*^o$y1Gzd%Zv$quAnOG++(}tx)qfbE}H-hgLcw~%?X~;%1;02B>uK;gzYNX~ zZFhy8xv7K9gIa>vkUXe1HVagm?c|fyeUX};_NYAU?%IIN$gN;?J(i{{|3}eTFi35+ zZ5UW=S(_b=oFpfi*~Q)6-Q69E6bi-NWnD(&IhmPVT#FVj?(U^UTHNJ@qTl)c!OBc> z&hy;&bqQq)$nI#7UWY5trB#e;JN1|Gvr2<5Id_Dm++Rwy@OYswQG(0Ej-Xy(HW0!W zT>H|F`X+dO=I6!t@N;@P)i%W)u1t8eF^=(s1UrTrvoqQKc$M1()(rn1*|TJbP+tw& z51Mt|9nk}Bmzl$qB(^e7g)jcUMOSJMunQFC2ay^1jo#{s=Lt+6o+wL2`*BUY#o>9^ zQrFaipIH@D)|(X^H|~a~xF=(0P|whHC+>N1j~(4I&V_RH()xMC6F0HN{DBbTtN`aT z%a~VmCQwQ*#;y4ii7t?8oKed=8?pp6RLra81%sKQ&&D6y4! ziu+rfBP*%^*IUzRAtFNyPB(N9p z#%7dWU4iu6@I`z=WKB1w*A_QK+bvjD8>#JvkBI+S;)PGFVH6ZreX$p{ zzFaQ-h$!JX9{3UaO83DH`dy_^K$I)EP1|cLr{atRHHBEthG0$M_eeJwL~pqB=*yDs z^gQ%e^lyEFIFzlA@1DIZJ>-#vFZezVm&T#x^m9);Z%bo3KWOPvN>zVaH6!S?oHqv0 zgO%Gl8R_9csNbVb^TRu>4v71p%a-m)o`a#dAMX7@g?X62z##DqEfqtHaY-{yA@tN&{1Tw1EOIm6S(-X8&=1*$uk_6)#Us}9@_t+5e<2FlG z!FX#?(StsFM+ZL8CAjYDove?c2H3LZ<+nvn*e-}6{V@BB-p4#1-a#5{Z&*$5qVWW$ z`r(P#NUG`RYmw{D@NPBnVk8YOSmf>QaUdq`sD zMX#vUQHnAf4Rm$U8mbqPFJSINN$54U$Pbhh^IPPd*gxsLUPT!h-C=&y@6a+|GT2F9 zhbDWj81>awlFp`k5^?(UJf`T+L8Wcef`gqql!fGED<8g|1wlD&2-U=&##Q6a5>E}D zuS>j#HHqIyN~o!|rD*eOB;+=YJ7zKIJ@Xv93pz^Jy^NkyUDzM$VDnG=JMn;WotkKD zXD&*|7!6q?*Q~!W^WcvBb!P3Hsh)W6DDtl1GDOKMS*2rq78?(0!A5AP`5G2bTSOUW zIV^#nKo_+bdz?s&c4q77^T?3}iVE^o3X>)944rml>^E#1G-GWP5WSI3HchbTU>;Jb3E+u3pVG z=!xb>ccQDczy`k(739B(vienq#wXl9>Zj5OEX5o1^6pR0rSLg-L`@2x7g#nSGE9H2 zKGde-JCfi&pkI_4;AX{YV!lyJKI;Dil#%V&O4Uxh2>V3Fku90a;wh#Y^yl_;H*|N` z2sFj5nj2skU6AGq%bW>fCTv&M0@IE2(fLF@7Ui4?rPsy+OL(Ft@ zzc80I)O2$LKSV#I)hWRR-Nt%>FlUHm(JU_0H1sm`AIu=5rrZ=1CZFUdbD23yK;P6c zU=jS!7_L_#TIWAPwN1OjiOPjr8k`U;9HS5}6{L2MdAA**BbEej_Hh-|H2{Igs`wf`Xvt#gk=M1DIiYuz{{a zbW&zZdVy<0K0{Sl@&Z=k_Jz*TJp-#?gt4>Rc~bLc`u)v?U9cKig`3Z;*OCyy^i4XY zt$fCl;vdFnw-BG&bBsETK0Ib(Y#PSEw%D4EWeQyXuFCN#5w2 za+L4F6xT+nZ=L1C*TQz~C$yAp<^6$>{gvfpz^VO5FnUXHZ`B0lC3`TxuBEKG8mtbi zvR_Bj^ib%PzYDAoTrL0N*$lVFP8K?|r_{4(E8M1MX%)0m;k3A)BT;8;@Qx6mJ4kP& z!F)dToZ-mH)CRHt%6G24^k7hgYKz7PUqU}yJ^2~w47F#@SqDq2iP3sjwYTq#T(anT z*+yT{x`C0B94X?PgRO;E6T^HFtrR&OlOFPzHO4^ECUo(esK9+iDu7LxyKozSR?niU z;9%%G=*M${_OU(L8SV|a&GqhlE%-`X=^83P_L6#9^&0L_h`C1y)IQ@^@KVhaUP#I2 z+N_yEQO^YDJru#y*KBOz&{O=u3*trUiyhL3!DP=1brfqyKiR*8=8+Njz$~j`X94@z z^?TAusfT*dUY$EizAZb|T}rzQ?+Xj4gydBsrg;cOarPuR?8Ri?zuXsbimnBG?RgL= zm-|5FsZHuMxel1BPs}dn-Nttb_RrIB4tcSsNbr$5G_4O;Sv%p(L21#yH5r^!5Ak8c zrpM|V1I@V7x|4mS;K{e}KW(UKXQ%1!P<&{oIT@Am&j1Zg2YJ+56`AZk_@59XcHll} zqs{Tkq>Mt?jD0Fsr*p*vYR(qb|!*x3nbbFC?)2*p}|< zMvl^*3=nVp9fQ*>t5jgFES~u`pB-$jeTws#XM~DVHlQ#09 zxEOR4x|_v3wa8YU@}$bIFk+Zhfq{;89;lY%-ZKw8jRa^GQ@f|!qi;I1gyJk>T9}=( zhERK@rjCDM#JWE`Mr?~_3G>2J%|A1DXUhfgT17P;`@UKTX?ULY**L5I5&eXEJC?Gg z*)C=qr3vVn-Xtd^uZ+q{y~Jyt{p4xlI9Q9mIcEVS=`;2+$1^|thk(1(9_ImbnNhjm zIPt1XOlm;5m&oWFBv?GzLlyj#nk|j@+~s5Qs_E<441*&dOGm&`-!(MHH6eAQq8rm9 zrN}CLj66NMI8euu$-dH$VCQLPxjyr}AdZa<_a2OLS27h-gUZA%|POY}#| z-{Db4A2rocIe|09!eg+n9h()XFBzVcx&=+ckHz%T8@cM_OTh@?uz+BrZen6Voy^kt ziTH#u&fij7$Q)hfE?ZY&@~^W@v@LU%KVtfFAL)?!p=CNQqf7K@)JdD>;`k!`NV&9) zR=b2R$%Ea`)J5AJUMjGy^r}BPG!C3FmPNQi2vf%J%n7&Xq)o~D~XMW_Vi!iI@?w3?ivcq z>zB0*@u9eeD<&<&-|p3lD|juro0J{e6U??x(GKYS$*x7JTF-!|>S)_WG$Q|eotj1*x6l<|Mb5oeFSrfjvOPFn$1Lb1u>(H6t$Iys8 z{A^v;Q9B|XW!`hYfkiAJ2L@lOL31qo#`Qh)lWkz~G@}kYZJ(M|hhM1P_pW7UCA?mA zSbeFaCjLoWfIs{H=eiQwZEO`e>z(|O)~TKnWjlK}FthkO@l(h#_Ize2?)~15yBhqi zIhd;)R5}HFVMpB-?mf1UoeCeI>te>m!j*-1n=x2mJ*z=eu$*0`4{_FBa+$lu&hy;2 zAD1$%ZPba(hQKF%dH!r7D{x7Q`X+*TY>s^*b(i~hcge5nDm8CYusfP0~?$URj0DGjk4Vhm{`Sz7SYok z_440~{p9U9&om4t6Mh4mhyrB*tmeOgx0LPR8M-=ARVpey<64O(4fy|ssJNcYCt`=F zkyYHIUBgnUk*nPE;CO3A_Y_wL_Z4yx)bj%3K+(W8klmzY=Kno_ zukgtaPbftjTTLwMp5X|BM(R}8R>BPZ%FV+QgY&@**f;n;a#X0Lb3d3NOjS?wXQ(s& z49A$v8L(7x5OmYtD|59JqLj8Xw1;z(RRHGgSX1FZ`#q+dKP&b(M?=?h*wwW_I7OW! zV?15T_VgqHlj~v3R`+5*!$)gZsx#AwF0LN*J_$6_r^5oJxICBbmR%o>^Us13Uo3eV zHu|2CbEHMKQo)ay+GV07{yT|p?83l=r^zkU+0G3ApZVL-K`@zk?mm>=2_}a(xUF1! z_Kh^zaf8@Pui_s|^`w9@2>g}YN9}6f_tpY?$We4Q`zxqNw3P2yyC+pCW5t}j$6Cvv zFWqEzd1k`(E(l8GbqIEFUv~Z~7A+oc*{B}0oR+NYcdmTqKPp8{k=-Gh53o0lVbEkw zl271qWC`vI|LcCrZVUK5N7Iw!FQKveP@x9zV7d!-@{9CX$}q=Eb(qCcF|rh0(oB~s z%3GL2u1D^j;$2wZ-F77>n(`sO1*S<2;G!O{Ge(`xb>ttrJCI|v>1hJ&s%>*1Lgau{ zQ!a4+iv~&K_-FY8B3G%F(ldth{S-Oiw2J?OJ6JA~pLY+?+7#n$bQ(k^$yhn5hNpe52Fwh4acb8X3a{*~T`J5S)QWvHg-SzkIhW{y^a;&9` zF8;`^@cd13S$^WF|Ge1F`@?_I zmPunUL2slwh}mI#BG2PCN4Dj)z|*Lb*0qc;VVi^I7tL{F61p{3J3m#KWH`Za0|-!AD6b3e=@p-geslH0*CSniC@ zs6SwjyqN&HJGoxuIN^taa&BO3;C_INbOxSS(Ud$FB$8z?5?u(L(RvfJ;3el(r&Vss z7YiIl_34v&1N@DJGtLzJ?L=_7@j`pzC=U04%3g}C4YJ5`_7Pe+vl(hAj5areH1!z< z*)AdfFtki)Mb8F>oK&5oQ2Uk(UM*^ky6wl?6gx}EqzE{xV9p7Vwj>qT2`JQV~6*tKXjTI#?X=4zz@&#<*dKnzX;dXs+sXqpeU^Wu1y&cS%gn*ie zJoSdnW&U)UxviYBz8K*yyPoQXO)d?LL)QOzhq{_ca2FLs?Neg1zXeMfY35Z>#L+LO zn3N-Y;WA5%R^F++k;6D#a&Q;g5_g+C!1WhKgDos2wNIX+u4i|Nr^!J|WpQ+RzIlcz z#u1>cyvFG>BHU_5&)eW!R;*WG1#97I$mynqj3IxPT4L@>^W<`vV|$kG$g~5isf4s# z_BtFN-ov+1vLcPmLuGh;JT${w@^c0*FT5je_fJro_YY)%}bU@p$RShQ< z+W2*RWlJfdBDZ{bN%V94PtoU=d&vo**M(aX+JH1=w%8kn&=zbpdz;kGDl5y)Dq)@c zkXRSia_rO}s9Ri9_|2gXE{l||cS2JWE(%BCD`reep0Y(Bhax-tyD!W-TYHq58kN#j5>B9dPHT^M{;S``Gkp%g5WD1+f`5vKA8YY zmM0Zdg8w5xYNWsIZuh#?k~OXBH<~GB`;VX`m?g95T6`vg9%_c{V*6~-S6q(=n*79 zUsnk^lU#**$dGKh>@n!AC9pN1o0%Z(MSlHV&@N6w_mlt96yu>dxl}f&7g+;OX8nr^ zkpOqHFpCYCNctU`>5c3HHF;m-jX;NCF|)qmE_sR z;KY5t+(;3KtG%!~rXiIxb_GW1{ZKe-C4Rf(DU}+pEcSE441F5N)E4Ickv~cfMf;*F zPFrv_xsvdTd!2ov$*33ocSZ_b&r*-zG>>baeJD{4@6xAJc4m;&)c<>OC1o>xOKXdI z`hGX7s+*~@I=>32mkw>Vc@$J~y<`C~M!Z_@XK7Fy@5%LT*Z3vbM^uZ@)v# zVH25uOc$Vtd6DkHwysuYsUmLqW?U+vTa8GAx9tUMC~WvpUa2IjPc%{EGEcZ(bH%X zZkK<(b6U;@_NrwjwKF|JWQA^H`rb@(Czq2kQj80~ft$>p$(tjo%0o7bPS&eidK*q; zQ(Lf&nFFyCeM9VBg0Z=!OLh;wR!%r_@=q{}#2dEsyvgQoWO4ewIDp+pwz1#Q)`}zP z%BUAVP@Ux`j7xz+bRsF+c9ZFg4RD*7N@Th$$o17t;Y!+Nj!>2Kg3OuXT<&-0=*8cc z46zT^tA(u2fqFAE)tE?bGjy^uZ!c%pIW@qS%Wq&_3Vv4GrhS1Ldk^1ERut&b%B~Nn zj6XS}Iik#qM!kd%I2-UVCq42BS?IRvF4z%U!v6G>7b09G^`@Fnlw?YzP6nIx)vn2U z40GK%(D<72fXtyrll}82$Ug;n&swEvL1V?j%oXIM!JFU9HI!k437~JX$@Gb{-(ZBJ<2=*r-|i& ze$`svb->YxI3ITb-3t8$E66eSCP^a;#Dd-07%c($^l9V`B_H<0(~Xk)1-(7lm#J>1 zrrq>T4HnZ6;;c~pl)c!EW1h&*;TgsSbw8NJ)lr zJSU3K>x`LPB7UkhOGyrYQlF|f;nkGofxFp^Yp#uB>Z^N5pMQ>4pAN81)oRIYM5jJj zc`T9iRiPU3-2WQnz<4g1t5(=OV8_)5W9t`v49*9iQa6J+ z<_ls0$kAu&&ExYk4Du$uJh+4Xl^dTwDs;g3E7)2Zo)Usj*$MgurC#)R=Qh?rbKrQJ zTP~vyXB$Im+18QC(drTBFx#aIJHvY1>>6AjdK7F9PRIk9 zwq@Mhb#()ATOF?sDw^VT8B;;uth!WteY6zgjflhbw&rGfk=n^&Bi1S_Kt(Ag($3LV z>}OOB)irZ1ZH>dK7gfjn|NW-uZ>_URl4}S!DQz*!``+o4$4&UO_xjRsLs;9>6}MuJ z&|6pstk3(eUUW%jjg}u3bDOlHeCzUCay3kdFOOLyU^U2wO`-kL$F<`{^As1H^+E(Yd@15 z`8J^%au#+HzH#xOSmZO^+8M77AWI9+L}#>O_F;Q}`LQ-DKvOSsq{vUGGWS_N6quw= zWxprivS*`uu4Vb9JpXE!)Fz56=el^o81Cu{8tSRAQPR$oDP&b^jvupa+*0zbU6;ZdgFYy>0x8^I zAxCZl9e_qekXYrQgFB@^mHX5M^g{h=KS-Q0Dr%>N#<~eV^J)46N+HkZU69|>dqW+x z(&3TdtvX14j3lj+Hc0IdEusy{y-6;#fA{_6nnsL}w(FO(-lJxq4IA|ALM|g>*$00s zwMLz%ZE>E{HyJK`iwkqrsiR6|62OuqLm%-E~ivl&k4Q`vk zn9bQm`f#S5JkuEA7-zLcK zVF;Itic^hL1rrf~;}@-ZepRM*wu|jS^v>QNI%w-a_cHtEm8Ryx^Kx3wM$lN_O7)Z5 zU_L}UvV}w9Iu+RRGx!}~fqn(|Q#VBJN36lrL??Q0tc1@qD`;!tTQCe}Qguac#o((` z)zAVWUVIX`t(DFHL>24edg155p|&j)9N z|0e$qvXy)x=z0Xtd24Y~BE3^KGE=ozkvG1VQj6sM=s}>V8n3Swo&+nohpTP;KQkQy zNF5(MVyz)93tR+xsFB#!+0CC6ze@Vd?80a2W5lnhclf#ctE{NAlmz1n^)namSeJN4 zFTlIO%0x0MVB07+jd8{RslR$d)FT(&+2#yXRObS-wQfsqu^H+t_dCQ1dgwLZBBKNA z#oWpcm@qR*X(cXj<`di1322XYn3@Lz+Ew)n>`Q(mGeLRO2WNcx5xwxwzn|)0R44jJ zUrCigZDzhSjk;;J7FwZ;{8qh+^|m>lnStMppSYjQZLnyhr(570*n&d}gTppQmF)B3 z^?D3y94=!-q~j`Qi3E606Fmia-wD54fFO$}0kTAtGZ2`wXrqbzVMYl~|g1dHkiV+Vofi1cxJkp z4v__(9HXf5CAqEHIy_4GPqm<>2~CnmasQS4ftrGE%%+0nObc}1x!RiO8E#gz&(%`d zVZP(+d{nKlD>k_v;cmbk!T<5=#TLYnXk9R0O(-m5*277qu}q$%Dr2#WYlvAJx%uRR zC){P}IoCKX$2kLDMDwE6wF)UDv5n02^hDS7anbV8X5pgIdy<7-ng0+c2#TV&`DFri z!=t4rJnU=8d2<^G|6|>pPgu-}WF*{EZ6pDBo3xT(@+~{ z^fq_#GZ`j&)YU+y)hf~vr)G4@M!}cNZP#&mT_gkV$wlc5T&Ntyy!HeTTe3mLkL1?r`lnS}UDxRGAVx{Uscf<_5< zv!pKepHYM417?O^ojw#Y!O7UtVQbJURSIwOE@9{A{3(^uI(zHHmIP(cW9A3!=w@)b zYEE={Bq!V{q$bw&KiBUNovGa9D#9FXW~3T9uJ};(ZvK1buEnV{R)6yQ!a8uEOJuTi zO%;TZ@VR3%`w>-QN~gWDHBTrC9^xm-Cd>wDV< zwE##D_?jRFF7@>H&-ZUvhlCQ@XV|OS5!F%e5sihRn2uZ4xGh$v zV3U?Ev=u~ngMF>`ruv#``ZWUZm&qNWwXSc)e^VE$)1x~WQ#``aQwsauzNK#d@B_@Ox@vY-t zh(ZD&&gq%_r~L8eInaoiqt3&0;vKeslnLRU`lR@G!6IO}KGxjC74;c&i1yZ+Xpr~FM@zsnf;t= zQGaI&(k9E_2}&<3&Sh3CawWzJeG;~dX)!+}XCT$t)Y^rwiV0gUtcGD~YeTxdjsJk& zl}{qeiVc0VepUP<;(`m946P|MJ->ytgT9oQ6?;CH(HqNz{vCwP^2t-JmVnjiqi~uz zcN+@Gi&I9*`vi*+k$%^n!(ZSgvM!ehiX9Wnbe2yg*no6Id10vZ^>b>R^LO9)$ZkEz?IH; z?s_VijkQ_w8|zwrG~)>~dJ@~NNH!{^rGr=|O<$_Fc0Xfy!Hnd{?>#TYc(J^*PRele z0h7S53?0f!lX~f!oLA9uc#3|gEu;I!7oWWoRihc zjt0tG&kR$6CF%d!mpN8b^;0ejb*16_Ni8O;NM1YOETttaXTrjFqk@_v*x2^T4bUJ{ zAX>YJ`OfR7anfwI9qGL6`Iq<;wkoy+f(U`XA0cO_LSycr<@16hxbD|d1 z)SgM&*qS|!gjPl`)eKG~UkR4IiW zDT}ls)=HS~Fp>kd`a(+sQvjG(#CSM5dRCj`CD}g2e(O*o!t9L};2HWmObKeBUCIsO zElX3wqQx@q@XW*!@M*?6p?lyLqGtwzGgp133YkfHgD6=YO+FVJn=^y?+F6}vR~0w4 z>FR8M6I31CmzvoxnXPdmW(jL57tkVhhFXuSXqL$DYebcI9z@&CQ4AWoko0N%NUF2hWM!d?w#ruPHal z^N}^PGxS*ZG;1Mo>MBcBA&@811We8T{_7&Ys10xdq$@ ziyzo6znLF78vcY<7=(X-Aw|9XUCToK$;z(LFUmPOhbbMUTzg0YRFiJ%71(O96*}Ob zf#!jhap#Q2;G)|d_#_QtE)srqq&Ajf#0Sw2a__>nn9O_L?0{+hclA_lRm8*f6eH#{ z`ABFo7gQhGbHp=dLg=b(zFx-D$o2-DR-*J1S1o;S&KI;lWnKJIOs?L5d45fxB{D(i z<@ppY1`DLp>R(~2x|~fC#zG}90M)XWU`|SkUR?a2vuosRtcRV5?Pi^X|M~ASfAT|& zw~qG2_TU|=5%-lr;0VNR3NVUe?BjBG+f4KWE|iPgujn%rA@o0PCEg?*m#^eKuy4~J zagB{`^gqha#6>Mr>z-aM^fa%Uh2po-WkYTBQ=|o_Z$_at!dqgbDS7%x9R9loP-~LU z`^C|?;4=H3P2&GhCq~XUb`B)o$8tUVupjZ@oiPN?{Al0?;zKoK{?K zFAUIEN21by)JX6li*pHwjWHQMM&J zg1MS9qM$|ESGl*XiJ{AtVR>mL<>o5oEupqVdh-34ubwz&pjjE#rsqcumGsqNW~bJt zJMmAX;YI`XfybsFv5!pnTNxdqFcYG$Sta3PVAi7L#G~*NwsUBEn8$qE+x9Wx-EsqU zu=?7+mwy-BNEVcTZm&cUFiovvIU!|GPHqh*Q8zLes&=re`d{#iwk+sXzVW5GN|t5J zeYGMsWxpV&Ft4;oAfeO~x_EJmwv>HGb>*LcY_I?m8X5#zf|g8c{snrg^^L?D|9L88 z%yvyzcH2%WX^V% zxKRAV$>mKK|HRqH`%*deSW##xHo+Y8FUAIr|}6I#2}$`bf6Lk ziG&j3OXZ#NnAsirLtCUk7k0xrey6gXnfwwaEnG~Eu~#rlkX_{8(3{{d`T*9VTnolw zl4md62sjwp%#1E^DE!u;(UZvy>;QJMo&x#@`-X3UdDLUzjJ{T4aMgRZbDFhfiDS-s zQUzB%vz;J;1+0Upo_-gT3T8k>;QZ+(P^rotL|X?v?U7?niJ9)f=sH4d%~FF3>)*!c#HYD45K2@@Mj` zh)l*#J@kK6CuknANa8n~JZ6NZn20hLZE}Cm44g1KQskH}+F5-CM={TEmvbjP<6di& zDc~GS_!8njs0tTje}G1!Y34^yU9~j`f~tXU@CH~WXtCx*hNi&sU zq09Ud;wQ^&Brs={If9qFXy;=1c!FpxWIlo9%{zecB$dp%FgUz}aie^K3Hax_}ZZy5{k zNptY;F$lFp7sbKgGrW-9kXo2?-#3I9ll+Fep+FGQVXQ{;o%Q_$Vh(0u7Eo_|y;p&_xO**dr>w2$b<+;etBwb{XB zlF*Hh*p{LBIbMC7vXjRwWVy3-2osGj(6^G`c!$0%usf%^`jI#;9u*V#I9QQM5l5IM ztX(*#+C-R(bgc)Kz%7r=%&6(Cu3o{p*ZbkO1mWnaO^Pf-+w|*Hk?;elB8|{oWvjV6 zR8(^&b`g`rO7b)77*xj^kk>@y{E6W{(F=k0N?UZ_K2C`hpYoeA&$NZ+6)h+}I$SB@ z6_j<#DZjwlwZ}#lro7knH&X`74Wo>Hi(PQw?SH4jo#Q6 zs};>diC@JH$;Eju{VXlS^*}Yy+^mXfJ);j=tUuu^hn=Bou3f}TZY7%HS{PoFHBWw; zyi2U8{3aHvCzMp%MRWRre?`Y0_tN0F?9ncjy2JCViQR^>iz;2~#n`O-| z=I=%~OGKVzWU9I`NX-VL@>WrD_=KXfY3?O&?habU}k z>+8y{n4?il5*$>z&6WLx{>aZ zpGY^XJ2CbB1v(W@LzBZLL81N)ZZLz6M;05n0J;jbxo336^s~moGI`(vv&gPQOrZft zrnl2GUN1oVfLh}s&BCAet~-ph!v+(2ZUjPxPVLFj`)H~jsXQj zm{72R!J1nO-|0lkC-=O(yJkgGG{;Jcy1+A{a4S2J?&WDoheLO%9@t0NUS~+BPtx43 z{?Xy`3UZcJr^-nS%fu1iai5=IdIbliPlQ9v(FGG6BCL-dcqRGy>snBFmD46426fP~sE$8B75SsK%kHLdyfINtH5$nQ z^-tByv;`LLOZ_}$3ubfA$rSAm?*t!Y}as(=Zx=`=UXUF zE*2@KP0)W=N-1sVHU7Ci!@d;=YKvr`Z4xdgFA^f?h_8p^KeaC=uPYn@pU_r%sWD34 zh|M}zoC`?<^~oC!?y?)iZ;oMl9XqnW*HzKW-Nl@S2Oy1ZE>@H-sCD!O zAQLtcv$Zwh^n@F@kK2!&s&^#YqER5#R|hJ3wsVg*g=qlxummwoI4KX2M6C+3$Nbk= z#0+DfNpFY?V2R60_KPkhr?Pdd>xBza+r;naP>^+1Gc4$LNz4ksYT=gfcC=jfDNO25 z(H0u5K@&$=+pBN{+l*%ApCzn09gP>#E9@eBtwhrnyM8qXBplLJw8>K!mSop4S$wau zZT&WRh<@4J%dYhz^pACUK_aiKd%#}r-M|!sb4?9*rPi2#gj+-#hu@w<4ra6yKQO6C0Kpi+)sI&g@++{!!af07^XEak85(c@&i6!{WK-@{zMblW`{^+C)=uzuyss$5 zi?sKkhP^jgpPRv3y%m^_>UCn6;S9K=?VRHnwdCf|9L#qt8rm#Yg7=l1$;bAj zb_Du~@#Z@9yl`Dzmw(&wS+1c?!@05AXkV7g%wy|mgNYh+L~Fwh_4m|BqXsj~xLEo{ zs52$et@vF<2gAo;AI^#nivE|EEwK9Q?7BopvK851UWU?{$ClbrpLQyDX815Rw`~Jy z(PLD3JsnfJa{Os|C;T^=3*mVbU?1yNaT4sUwp8yD4~;{GNdZfA9lDjzs+!Rbw$lC$ zyOdf&rfN|r5r2W$U!(Z!Isurttrit+L;~$7so|HwSaC^|Az{9?%0VU*Mm_ z`G7&iLOt{$eBOF9{C8j$nW@xfzXnH#$AM0srBnx;r@auItac36u;clD{E@(7y^tOf z?f|}PH<(4bLu6!!sVGgkRrWP}%c!nbM>*ybwF{XhZzw>g9drpI}UY^yc|m56k)r2U@1Pr(lVVXe3U zvz~(M;$d{hzmY2!NYLY>&Akf=E30Y0CA+~ZM{n4SJgYt|7=rU6cUb~&{%V53{CB#C zxH@!#{GRu|#KGK~gv+c??9(BpNvs!R(NAti;RA>h=^T|`*2|ej_Hz3o5a-xTu#pGG z8mFLoaGuE(yqlTMSA}WXaQXr|Q)uJH80p#@B@d`nJ_@>A?$zcewT#g|PC(U}4FXf*xlv3TM&v3#q8(5^-z0p=uPdV2b$KWE z*^JIASNM@lmgcfWw5XOB{zD(bl|wW10nx)+3$#$GglcMx(o9OHepSAq!Z76+;pl|9 zSbrI*^w;Rrq^g0{YCEDw<|6bVf~cy zc@}AwUDdi+o+FaVvR}4cM-wH6VQmAQGxh5{2mi(2=88aPOK6)M1Hdv(3KqaE&i;{X z_4CTH=034hxM^sVm?wV#tU6l8-e8eo$MPqoPUI4GynPUQ#BGHmq*dYs?|pcPgIwv% z`Z~eV><+c0e48E>e@>~T<}F3yx)8spDZISk2KU@Jz;2I@lCFXP zcENj$>p~1!t;eI>#_2{k0ea9L1f^ zQh6ijQPyf`ulT-{3Ws5LcqLdJjNm%+>*QRXODSjG5^eF73wP+2tl83YUZY0>)87?s z5|(;1FJ$yL%ZPi}hxeRRZBzKRf!461 zy(nA}kfc_)`<$Ks6%J?5!!ptk;Np&PUA0&#M~g8}Bs?TWpsy=O7GnzWghPJ-^iRv9-uwFa94zXW`$p z+J<3#1Lo_hNt?7CI%LdOw{5r%cXxLF@7>uTI^%TQ+azIuuyoA z$$;=Z6Y!bvXkKruE7qSgkT;n=3z%xTMN!#SU`ttjflPileFafYK47iHVv$|8OGE&Q z!F@o7!Y{1CABT>=dT7QU8TS=608Ay_LAa~_x~;4G(YXec46@PngJGp$IMMc+VJ$4bzHOfQCpANlVS+RGKKrMc|$~GQMP3$IDs@{yMR-Mqk<*aOy*hhCEzcfi8q6u)#V|%qx6Qkqrilp zhQG3WFk+lSF^!^`Z2kq7oA-fg`L>w57|xki2CueUBOJzbB-ysw`U5Yrz9H(6_4+*Q z6umBLT%kdCrL+g0Xub|UVitfQ@N&}4onw8>^y&-ri#gq)rDT6(G})f`h;N8~ObP+L zd9sOGk!_jK0;02#a-c&?h_2Qt-04{R()s8U{2l(&^a)+3pB9r$nZG^8)z~zam(4_; zu$EzT>azv`G3L3@pkf8Knb`-LZ28JsOE#F#l+3prFa()!@+7Il*9qvmr-KtLJ55af z7GZ3$#W<0?SK7s5i|JUjz#4@N13T+Q*d68tE(B=tQiPATtLR1fj(*?^z-H41-XTs2 zeS`6=^{DA9!s4HSO09HY6qHNx|8~+w7VXychfmnFhFV(}^0RHI?Ih)>US*=kEGEN& zHl|i3E_0oEOzd{7W8OT=A>=4;7O`fF5FdpNf#YdKOfhlD@|rUfn~i9q zI$0KDs=Nc32`-AdOKhV!9-Z}ML?{(i*vH-5=04Of)~KzfRdUrilh8hfi`YG6Ef|bG zqN%y}wDXKQj4)#Ct#}N!i6U>cP(CV!WiNf8;XSgRv>BS96SR-z#b`Uh9V3Tw+TqYa z-C?+$VOsl;uzo@#c&qpod|cNE9~GDc206Njj4_#O*z>wvVdo<6!DVPZIgspSQP5h`cIY~w>!FO?4!~00)CdI`QFIEOTCCz} z8Lc^s^Y7y4zz^IT2%9_6kOB{isz-E4TUJj%&WmDiE?I191#M)`r+O4_DyMOhdy{+9 zu%z=g{)Mnc1|6&*=IqTOMVz_JAvPo7&`x8O8ILk{^4T9&}SNHXh!>EhCck)oMOWV zrW;;wiZ-puSBEV_#lTL(E3RPoD#o0Me`2PD1Yy@q`>_GEVFGHoP%-jnTAK4DAsbK!q@@4Qc%PZXn!*q+!lh#Tus!{W&jD%y4a8Z+*dL^x^0nx=J+KBOr?8s2%{7QC2gI>9hfZV-fu-nP=pTJYa|^eczdj_J3>8)x=kjp&ZFHoi zwe}6D(Hdc!up{Mm0wWpLSn3-B)DCtJu>o#lNdw*gRvJD=&t)&=aBYpGoLo#2z);?4 z!#(pFmV@Q8!h%Qa>$W2BK0eu0iq>17W3}ba3e==q@1l7G>xk|6A!`+JC^`=bGd720 z+s?80o+(>%E712!6Hi|$wsKVu?1rB_ZMa|f!z{r{qA>cHC7sB$xSG_z)B(5<`?)b zLd)#3Zz-8+&_la;eiFh`fgZN5u623AvWT!&hSS@Y~optq2;# z(lR?4P+^eK4R>Y=&3217ra$W@c-7pie0J15ysp)E%PkZN5b6)S<96cy(t21v z&XIz1&_Z)nar|BpJ)3W!QW5c(4V(-N=f`lvfqoIG#xDFpK#uue;5YM#i4IOQCmFw3 zXA!@_82vBPE^wahp?RFSsd#t{%umCQAf9x^Vs@@-v*r@}VujSz&4!lL_HZ zz`pR8m?`jQy@oa$pU7Kmm_WKQm?Am8rlyQtkd2TJ@ag`=2J#M)ODUh>IC=~5CFWl& zQP{$zOeQfq3}bBZ#QM^2*rSMC?m_-a&NVzU=d<}w{_+wYHiM<#I)ukIUM%>=IcA*B zyGGU%lYrT@d`!(>fe&SeQ@-pE1j} z_f7j0PvAtG2Q!@I9O~>Lp6Jc`uCL+V#-743GXWn*xS2Q6KtoX0|Z>us|M~ot-kRwfg zG6TpUCPwQ_dv#9RX3ikwAUss~+>DrK^M^w5)D*cFM+slS4p>SopYp$QOu$527;PKx zj#ZC6M1v6yy^=cwID!&X{(D_IF;N|QenPP+}b+U*p*B($Mc>FIzuPR z{^lNLjs$vhd$W_+xuzQ4{=F8WujMj)5PJp1>Q=Ji7}*`Vz-z6^T51ogZ3py$DtOa~ zUcAHPSz;peC%1K(jOZ;KL3ejj@nofcVN|-W;62tFdIERPZ(#J`y{2VaKJ&w3qA(6E zUHF02K>~a<_JlI;WLrjCF6p;XK0lG5FUv*o_pX}{^A@n;$g0QymLK!Vcofz!=OXWU zqhX5t3BO>@L!WS76)o3GEJ4wEF%ye}jQ0tx@b#V}OoSE^^`CYgIN03C%H}Rb{gTwR#tFiS@Z zQuLnkyZo{(x7D%oxkbBfLphNG6AM@gZX&oq8Gur4k8BQyJV&*Z*61@~!1ToU7bgH^ z;iNB0m93;1VJly$7xAQUTwDZ!k|m zy={lXF5wZ(AmMjLi_y%DB_`ny|4&>6a}DE=lO-q16;Mt@sAZz9KP%BTj%hdjMOi#1 zpx$WE#zR+@GR-@JHyNVI!4xlbV03TNir}^?;tgEOn1~(W&xgL6S?DJt8$WLiSUw8( zf}y~sh$RMzQE3|7ITKh6u4~f+jV!10m&Ycs)67@Q*N7Gb+BF?`ZT*fdq>wM4ZB$|c z3nD&|k&$5~mB9GO+hB3dcyx(z0XGbnQ75GXww@>FFvF?d!+P{Lb`t1gWsz}$D8^JX zY|>DZ#6r^){!rv1c}Dxvd_Dhcw2=E!_ZppQdWZGJ`s$8^cD6iZAEKP@_Q+Zm!#I9x zGxky&g)=B`iIjH}VuYB%4TAH``&3WYBkV(O#ZF=vfwxqi*U5a%{Et7^@(*1V{uYbE z=bBcU*hsFfm==U37&{Vw7;IoSXDV_I|86*FXwS)rXp4WK()CT`7Tr^%jt$$&h<3R9 z{|+SPkv0hw5wJIOlSLFgB_phdFtzb1%P80i2l1vwQEMT*E8+%xjBLVV;BIg+6h)g$ z&MJ3dAF2ITU)B=JCiN6L&)d)KSuuclq+>nw6KLcID7V%`YV{X$Zwv0Q7q&}7v>|7a z_rNuvjIoft#tiJeQ~ZYKgS}{`@H@W?wNEN$AkL`&&+0)BU?gT4cENKji`YG| zZ^E^POfEqG6w$HZ4etXUB$ywH!zY9Tv0Muqsp9B`3`Qv2U)VjOuemioDRv}VLSm$h zk;6MuycKN?u4VrX=bE3J=`^Msu(juA2P> z8jAIU7;qHr4{rlQzH_j4F0d4N2o7bfV=pptfDtA=?J@_2zDKuV$Kk8njRk|D^ukH( z1l|M=b$(D9T)f0KiTi=o-I!2-^4garqdi#1Y5DpTD3U)_u!3!dG{jcsEc&6?Ht;p# zDL0{X0%-);r4aWtMJWEm8q9eSmBkH;d9}k%{iojr4n}7}ANiH|D_j|~jAUSMZ5Mzq z#64<`Hf~F-wunq7M^|K;7n!dywc0SE18bq>53)bhM#ghf(ao0arDM#Nk{^))^992o z;t49nit%p5Ge)#!bkrwpL%9SI8b{lV+Q)DZ`P5K~w?)H=e>oe-cR0!!#5=%ROFcEm zTc#U>2x{V6_L6!Z&B*jg0TL$2Z$(K1DxO=cLia)jpTMbM{s*(C) z0{m*+j$bs6gqen+7ON>>UdfHXw&c9xUZ)R2tXw&B4*e6hOlLFQ#@P5^DAzEiV4S4{ zT!y#Xc9M68I#2(ER1y1uJ)GZWJGmhGZ{`CtT%y73?3-ND^ogbBTq$lB1A1=EjGMK)C zJgL7M?XK#kheXMA%?ZR8faK_IBz7iaJ*)ucJRS&DIqmLF7ZEjODb3QYVh> zOs{Esh(hkH@&ay6N1P|2Z`a2|KX}VAExHyQXr?$x905T!>US~?%}{>FmqdBQ1IoeI z5k*YH@OkWWu-z6gSFyyjMz$3#4?BaF#C&6EOk40roy71uysxPf{F&NE1W=H!piMKY z;ZXK3yvGi{dAOyJIE*^*pL=F8E(@+f!ivhW_9lw;iLtSg$P~N><+xZv(JP}FLkKo` ziE#m)$@6hr_(?RUc{yHf4YPIAKNB`b-{bE`=NaONN^LRKs<{P>G}8qU2BC3$*WuiL zjKd}>H_wV97olBZN8&HJ5vV!pCpo3uf$kvsz^j;@kzjzv+RO2m)?l3|%fd#8IAfG@N3R=Ydd}?!vce&`7~gJN>u)wPBrsTG39-A>sZ=9-#` zV>~%`1UIdirOzSO7+S&);s1g@YzCW8&fz6f#D3qgqN3O?OgCc$mCmdfFyV|;#o~E5>xq^s@1;%Lx z0Qf4*w#oW?g(Z{jNMjf~;wuzVl1{W|_u4ZDq9x!(Z9@WC_|+RrI9zr}k&zi?qpCbSb|q8q_yWp)}0xOMMf zSNRW`i1Gk3=o7S0@|Ig(S(@0B=x1V{V|=U#4>nISU1pb(v8?)-TpLFx5te{Im@kOJ zn04iU@lIQUK{gRYQ0pael#@i%G6s;iHwd4R3QW@f0;p3jU3~r@d!Qz~>f>DqBcw1m;7}Se=2JoN4^mxE}fxHi)x5bSmqj z;24-{xEXa<$BD7oP8wIBCh{Ar9|qeN;xubPG&F$b(cr0vVoA3~5{u86Ln-Fd9sCb|kFC~rEe9FX;eDodP?#wLTw{_k)A2)$BJNDS zM#rTlC|6*$akjCVyM%U*7Hz%_&A|OYFX*0bJ`~Gtk4A(Wv964B{4eB3Yze;?K8Aa0 z&(z{RtS`2JwGQb|)I=5)6ya00jD&`=2jJU~kuWcR2RH-WOAq7GY|{*@xqRMsQxGi@ zsn@?m3#t9oSQC}dVa?`e8$&Hm+MnPKV8@$&vUa0$3qSr+41Onxk*qtFeRzRHt9oVvheTs8{ z1@Pu_8h9A=4y|W?LsnyB$w@}FG1(Tv>wt~IPf&g8G3bH{CaWmYT6BxW=OR2hAthsU zGVW-@rH;?xIf#U6oA#ixOV15y$bV%QxnWT|3wG#|OWFuh$pASAv=^iqhKEn(HN)!Y zyUdBDVP?5ytd{DfGdpNopeS$|GE3JSW$Axsjsvo}R{W4__4rCI4z{MkDiZz%>k`{KUSBF@YD8X} zdHi6@Ca66;2_)Fl$f5d?WIJ#GDdLu!kC2~`1d2ECk^2+Tm^q+|IbG7;To8la^y z*9uEG$HT(3_o5S6S>^&d^*)F_XWk_T7^C6E#y7_4@M&9cS(|7!|0TJDXruoS2}4VH zj}5I&z3H)`c1tfjr!33%3t7NFY2Lz}WG;`+0Q;Hcybii$WxMICk*b)tWDIaM`ajk+ z+jR3}emY|%(5xQX10x_lJ6X^NUzxXre6PK3NCK)Udff1$oA7dQ zffWhJ^GW!?z zKwpBVjY8_3#%&4auZz@h&Y8@{UVHNOMNkj!ZN#Cc1D~`70-*f6F^L8l=Mz3oD#$WJ zBsbr|J4*Bm0~j33-^>8k#{4a0AGC_IzI?mk60?jn8j8z%z~{6q&JXrDJehAJFeb(c z>e$H769iEWr*-DRL_6AFMOX1X6qSAu|2Z5+la%1hOGX-am_Lns+00}u0_wp*fkT;( zPH$EBQ4Di&-CG;z-gVB)f%$G&G+jMKGQfRVk`!S2yZhD!2H0KVeQvj;%6H$nSyk$K zacG=V+%(f)=IEMmLNU*`u{Uh*(v;#q;VV(Cmu+|4llama6>_iMdqs8C*V*?{vQfS& z<)A;-_f-7O-t|SF8=BGNo}3x0_~~+H@KmUOnHz4Z^Lzd4d}WGc@%X^u z##_}p0;4oL6*OOoS0nz@lw%*{jLSIe%y!Ol$NH~HLOmK!;Ivy|^Zj<;SAKL}KRGhB z#eT|D#P6nI%jWqwRV_Z$^VVhZJd;Mr_t(5}_d2Ie(D?pK6!^c3Pae)|U^oW5KfBA4 z`USl1ErAFAxT^JOBde8x`i$h`sq$+3-UON?pmw=RTy2#;Wkc;*Uy6EEV0mMb{HJ@G z_`83iqf#}|!B*!64!DL%iG;r!O}@LHonkpNx$=SMhtE{IJAF)Tga4T~+7s-z`_7$; zQ1|oncK4TupE~AjFADdM^xW|eR)?yvq;%&Z#bL2sR+#onE%S>NQ@r}>e??poz44T@ z*!5Gf)W5w7%`kZ9iW(J5eNOSf8dq(Ddr@7QyQ4Q(ydv<$)!PJl<|kNcjpD_DYOIzbDxFH4Uk}7zdyZg9hpZm5ou1X2O!w@-G|w1kVkR zte=%0QTvzUam`j`grb%EqdQxE(vPT;RBc^bsmpgx0m=XJUT~-SQAew!(S5J`^SwM} zFJH9cg)2we*f1}CrmwQ?`at`8jtF zSED;xQ6!akZ^_#nj+VD+Iw-zlj}ncQN4e9FlQyQ~U$029i)&F)Hq@tUxm$d8DJabhPqk!!4)8o#*H+?rPuQ$jt06 z-IsB}2iF9r|Ms{W`pYLftK27)|B1rWls>2bw(O5OSlOZ+D>+y9-Mb`nRK{k-v11%R zpgxyzIHRCfKmiEs-V}eGe7s{&X0fMH-a&lEJ5=2_!>wLd8|FXnU!>`gHRn`o^@gTC zKE7w5>WQM4=W8Q*T6Ah%y~1vi0&T>8fLW2+bk^Nk zv)nn$`^kM+*5W+Y_@n-tthc&PCQkWf41kM z|8~FE(A_8SL(cHrN-?P-6e7RN-Rvz%-Xsh1JoCZMMapXdZ_RK|ygW!wcK}uK@)G}_ z#K+Q&-s6c^)c=Y%^lRmc_AU&p^1QAI$lKRd2d*ezc>9ZWo^>@hoJx0l?||C-^5@?E zlEv;lUReD(v82vZJ1t{}x1H#y?{EJb>Xwlp6^j?B?=_rg+Mkh-Wp+0Q)OB+-R~ubfpM0}Dw#s772-&0h zrlyByj%3c3ck(+^yGVygaCJ}5+2czSwSm2^km`~0x%D-EN#j_x{4^M7%Gf1k$dY}% z+-2%~XG7ADnoWx4^w6f0;w#l()6xR*r|E|WpPt<`E_Ogxo%?IR;d<>#^GEm_)qA}c zGL&bOH3yUj0zKp>>f^HddG4z?{%z{cs_D|Uj+gydJ(QkF?iMvC>4@jOsLV0F3XtvA z{98X-O*pn4Ur@DHb~%+JYn$2D{#{YrFswo5t(Arb9@c(x40YOT4bGR&6sP~x9NA+< zmugMgpjwBdje4TvxpbKPjKgT3THR20Ch444Sqk~0HNQ?3 z`8|o-8al{#YDDrqo|W+#{t{o;zK7(~+!E0h$ArL;)JV^%stG@0cZV;`Kh zQkk51*ryE3F&hRpM0hfJ@ zVx6L!Iy_TX*EW;xd{O;d)5TxspP@RfD#$#N^y_r1vz+OCoxXPdDsRs~T%djbl)z^3??8n-^7KNDKWmPg>2aUg zEbgzoUtOBH-Q7m@yfIIq3HW9ICiDCsWqGNeMU(6HOP%t)ecbk6HMgr;OF!3EDm|WO zDXHE%-_g30iYV7EdB=?6_EbOJ{Xf$LVx{avJxyF= zZ%(>v->7Qu>fi^{XUiA65309#+S_Xtxl&n!A#g^WDjO{x)XRRjxpJvHQFgShR-Bwc zS4{Bj3Y@N5ko9X9xncg>^ z)TViXROw2IB8^lJcHeeS(3srA6+7$ykysk%G`173kav*J7atKXNg1L9J;ubDBENW> z=SD`ndPMDr0LLFCjZ)iu&GrK+J=}`}tgNB6yG8fpS>m6XBF#!o(IK`tyTR)rJVPDM zzPr_bd{f=ulzmQyX53LMloJUl)l7M`>Okh`^u?M~`R#^K|5eox#RHdJ9Mb4>s~e4{ z>KmDgjJgJ2K($HL>qxNrVV&Bom+s0OrU_SctlZ$gS?Bg;N&KF1iPxPU_s?nq75!YK zxT*1rpO-e*j*BA$fWM?4Dejr3Z@j8m=~DzuY5#bms~)>BUzYlUSao`j-_~uagz%nG z)G4&~HZ}b+2v?jW#)-HuxWBny*x!jiS9^Wu9PB_3u_|qw!tRatF0fbnCEj~Jpy6?H z$KExHn`)NqgJe=hY;`-$aLH2@;t29wR<26B?>cmxCR5ZO6~So-PG!3~dxg@4ig>xg zzt;On)30`f=8D@XdXf1%05FhfNmcyb|lJXS3{hOmHWu_Q*PV(j^ zxA!EeSEUxZI*MUWLB?14GXE!6H^-#fFnPL6;Xh8T1iGq#@}Xp6efG(n$A{G=O7Eu4 z(HI(9OT}q=$0FZmakuI*ae#PGT%@S5W|!}{WUiQ*o{`?wizk;PC#BBwca}@)pQ|G5 z?dxnBl>${ycBZJG)!tCPlLU#E*S>A&Ev`+UDc_*D-?&*mO_eRa>LD>7x!d?ibUEXuV&Q3j-6Pdh_d5A=`!vZy_W{@Z3EO5EYqtzA2uiOTh|-j#3c{02pJr3lxIv|sRNR_&MmeJV!AYbb1}lIavL zlsT!Lxn1)rsj#>no~nd;d$(d1>-M`o~09lA`9KT%#$n> z?x^ELRN+~cDGF5w$L{ugwtsRGt_iBA-am@t_6Lq2>Yfa9*u?AArkcL#@QMlx4X zU~f#_<~8}Bi@&5z+#2;j)u$sxRZ+4?&4l{J8A6` zCz_!i)ig6zmll#y*jHRP-nC5mJHW|WRom<>?)^BiXJa7VBJJ!L8hGREpV3)UZExe2 z1adQGG|=5a>X-2&mGq`cF(>nA?bWke>yE3(CvNc#4770}>Zjg`fzGlf*Jsz~IM}fu zRp?snexw=T*(zTiXqJ^b!1Rc$U-E<`+^?);u?Bd8HJzQuiC3`v$L+Q*+COxDB%5iIY9G;@_@|{t$^O^{rdmu-4t* zy{T`f3{+uJK1k4>IIaXAk@b+=vte>h_6{m=>7jc<1@&=>4AiGyQ?s#x(xU&eNRo6L+&WWThS`b#(vd-bWMRGBMhj$pS-X7>G?(4k)MCM3O` zdGZ8*AO8TwF(2mddGdm!k3G~2D{7oose}EW;u8Aat9+wa?rZ1X$6lH^!?~s5SA#%y zRn0y$+J8cQL#cGkktL*uYCfwUxMn2H^+|nAl7X%PsiC5^fgkp4RhA~*ou_yunJ2sL zJ@1|(z3U0mOw^pJD)X&SF7^36myRDy2=kAmo(w5sTH-GMGxfwkAAf}BeZ5`X?0j?T zq|+%`nFjcA#Rp}wzk_s>h#!#3H}(VV=eln5zRJj|J>}k+I7W5GIa!=jH$&FhzDkkr z&X!(Mx_o;14)I`jVwS3*$R+W7Ylu%>s666&E}rTAacW~=X`NSbLNne8_-PuaV_jU1 zygX4Zm-x$-pE71u#mShG7jAadH9Mdwi|^>JPZbApt4AoKq|+sX{8u!;s=}pr`o`B* zYTEfMflSZ9p0IeevdFtlGe@yn_C7OLb0U@DM*Z7TlO&sb!~H9i+r%%9Lh`qDVOdKg zMXG0x8FeXvncx}sR9U&INM0lxPmk}R%?4_ca0{+`=xQB?}E(N!0f-E>a9%HG_V<&TyhuWNle&Bs=2ymOrU{bQ9`fr_+`%GdUCb?=1d$+5~sXF5ptWKQ#) z^j_$D&-Ft-$N$=%pRuv2mlqZ7a(EhDjXPCJAAW3$bbxoAiU?#$cFFm*dg@Q7xmvlwhsh6S^^%35B z`I6+-lsJ2pbd30wc%zqJb64e2PqWYQjTe<9#oB+>a{_y%?HeZtk{xI361)pU+Z3a{ zu@c-f=*aAzP5xxxiIbuL?8$Riy8DZlrZ0BJ_MN5t(c7T8WS?GNSF2TitG8X~RoWkZ=4i8*u zdhbtfT$u7ZZG#u~$4Q!{I~DK5S?(y;Hu)sa88<1nxc8-xNE)j+=u6bhl?uhD8egmN zzzhXoFHD{#eI}WHx@W@+WlwdMZ;Iw=Mw}+kqwUK((~;WwO%|ktIzw_r4De6ITGca;AyFv zn{gxah9lA=_OEOVRf|#+{p0QZGz-%XK(XeLXd*C7yF{=?yTtg35A#0oG4rhaV}(7) z9;R6K2}@i4PV6<3d@g%MwPAlwh`51NE(OpZE?X#k_!2@VP_ z&ubL!?&9JwIdh9Y7=Br&>UPj31J`nHB6ssA3J2Q86N{)xEj{w2zLj|l#R-jryU?C8 zMhL!O?$BpaK`~b5Xj57@%RGJ4Z@g(ZDZCD z{irrqg=xDf#@VVh2VEB&vP0UT|ugm&@!5f;RZ+^2svb+mNcvye^WmxK>z zH*=4f0c#iJH8h1xw)C&YaJUCw7_F>u3gw+Z!%mG?qtF z9ccwTh#ZKIN8WB9i7~8skd4mv^yo}}BfV^?0bB3y@aN-~G zuY3iO%S<*+H}*xum~074w%`rqJ<5E8S~1fAo(#yvQ-L;kcfna0B!&Di z5N{0|9z>6TN?40nIXq`nO@%jB1a2n?&K7188?(+ek1y%Ps~{cZR_!PK44hBVP-ju* zt03M$B7=CeO<|QmJFFW_DW;uZ5*maCVp# z)&R)Fe#iMn_9t`9FUz)A-eWzi?M;1z-O1MG0=U6c9Q@37x*`*Y!_s4V8uY@ESe506 zA)YdJ++(fGUt@e=WOCHNW%K3^_gK}1&(Jnhcj^Sw6}h~EO}=6E1K2GBRj1qznFE~5Cfb>8NdYm7txAE zw|r*{w*SCxk+s|pWHXX$I32z-(q3+3&4#N>-m{|(K28|Ek!yllGq-TgA-8M~>2yXX zJzu+-c?^r@YD4c@N{9lgWA_jgvfk*9a7xLYT0!V*(!)xPjn)5!t-)xdl7E}_18ijQ z3^ME~XEMwpM+%C-`RwQBiSYM|n9|-MEu{gtL=Z4FK*zXwp)7rRZW=#OS`V!@4zh+2 z3z+4+t%RKH!P|oQfzPl7v?6Y9ks*qF1N`LdG0mx%Np)QEElm14%O)^b(1DvJxQZ1D zlE`n!Byug;gW00{h3sQDAYyLsy+2FN6`o;DF{*SyP#f6AITE5`y|wK%PsLhuTP$iS z8|g98EtSZyvJyO!pSHKuc&kuO+ypyzuoHfC2kW%4lQ0S70jFtetljvbtcR9ijMLy1 z&P^Q$dI9~1t`>BIZsys!AF$~bW8rEbgA>g$Hy4ggEhFy)VOt{;WKro zd0--o!xgdn$FxLLa5P+ittvQ-Mzl?1&P1DuZ^UlW64RYFmnrA%4ILqP4vCo?pjter zWUHm3tQRARKe;f+_7D3!)<1G2q{0~diGUO9$A=_dRX zZ$vDQ_XCXN)`$41en5>J5eF51|IM!F?PchZvF?tXABJPgGU7+gS3 zAf|y^gm&X-Z~!l#&w`$FF;H*TAZj2cq6gZJxd^SHc%Iwo%fec8?coWw7nbJ`pKgRK zxC|S>Hx}MxS455EZ3gqPOm-A}1)nAe5$es0P{O?3xDo!KBfuA&JLMg0ag1uPJ!>Q( z;GLkD-+FBhMSGfz*{yfji%pOK^35zbSH#wZ5+F!xZj*<9d&X?83dy1n#dOT)Jr1nfxcA~7FG zHJ2Ml@=gG~z-FC?bDs`(PGr7CE|q7L9yaDOhcKn3cCsDW8NW*YAdVO)79ZG!c?$LL z`U9uXaP2YXR4!t6W2^t4cha^nck2@)Hxu{6U*#+bz5^vOHPC)TA*YY-KVnzR1L&n` zJnS@XE01JX@p{01!Xd}E7 zJ_za$D}YDLz2y^l)1ei(h`kv9rU9^qlCL?K_N^B(8m?!I3@J5oc z{5<9$tUj;Eyb0)L@xs~pLoH)DY|CQ|qVLDE*$dEKtTJo>cQjqd*|qO2sW5&An#fCF zHPOPg^25l2XaoEbjkcYR5n{KrYZ*g174Tz(@j)1o;YJu=U^jXec;3D?Q z&_8qnI)wJk&`7QTx>!-p zEz?OcFRq65ysZ&YtVY8PUaPRPIw8`E{Kb2pe?o`FEawD)OMoi=5}ur*rLEKNWbLP% zeigvt&>NX&I;dGcQe0Z0R185AD}2iP^-ln6{U!!LB26a*&=x zedIv{95W96jr?UBXk1SUE%z9&88?LN$i76og6R}b#s<9ubp5z6 zS8kE9ArvQT;c+$@R>fV@(G}GmkO}CvzqoS*n`s8i-)4{HWYkqKCvrSqvZSI zO)#{( z6?ZRf!|aMS=x&i6I3=_>-@)vKvr_F3$0`TVdC;0fMg zeT~)!I7|1Dbk@$jeWA_lOyQp>80~G2!iJRYge#~|6Y$3ojM&lEDoYo^1s1|cVnK}2 zv=782UN||Mm>aVZXfcVgWRu)DI96eJg7L^<=mlOJ&_INCDdP=iw}$SrDmfzsSA}}Y zoNd*ejaBaH$sUPJBM$+JuC(&~LW8ZXRg2+$@y#z+_mf_c3U^0 z+atlJ{C=^$F()Zy6F_IE1>3~ALiLqW^aD7@__H}rfK&J=LPw%8d!XH>6Gi_}e61bA z93F$r?v@F%V?Ua9A;Us9u>uZ8DEAJUgAnIrwIhI;AJ)rc`>pB zZzuV;Z5gB`Qzsl}|6}MZ|6vEtSOg_f6=0PlRxhx~rKvvED267)4?^_akm3 zZ8bnhV`j2(xk*}AZL9AWIlx!=1HsFF~v5jt|wl9EmowfU?4`XM1xA9LLl@jUXbTe6(fX&q^ z8}qaTlgMydT1kBmzjs9S^Ej*J7Vn2q&|S-9{BjM=r+%huc+QLKxhPqhJdP?M_Q65q ze@UldZ~qV29%*poYlUpBg3G222J?s&o)K^!-h}Sv`beHsepjD~!<}6TFDw8{_@Lu{ z7!ageO(g!k{(HkzctHbQ^7#{gw6$RVn$U zbVX|Box!&-gm43pX1~Mth3%E>Rg+xV=oU)O=~1a>!EohwD7)&SR1k8`1NWIv*f_cs z<%B0I4S)|(8=@cDrZpx91PAdOg=R$;=o?}W@)$iBiTE7wn|enp1o7%V`2*FNY#>K` z7x>R$Jo?4mFR;Y6l}uF1Gg-v%YE{bzrfG2ppX47bY&O=>qsV#eE9+DFeen{_W*-5X z$W!56ay*>`DpTF0de&yitD|9R4!Oq6T~0H}6(3T+U;4>RV(QuyWxM#+L z7j#Gc%Dilfj-`i(Yp!{Te_Hb|7z4|*=|!@cUH_5#o87_(xCr?w@&Z4pPuFV1o``ND zYkFwm8q<`boRxC+(M$C6uAo}ec(1kKIcI083|G$HKcIktP}8c}Gr3miaj3r5Ab8wS zw-t5yoBB zlby+KPaYHLU!cl`&cB6r(T?^yLPc_?T9@@2U&SqaU3y})yuxa4sl8}A6`)(d5y7$c zZQz`EGq}}t5PLufzDlqLvspf){)qqNey;V^Ug+a7hrgHv!bUl6{#1LEEqjctg`f@`7Uzm;G; zm63q{;rAAx3OqLf+O(lQXYd39~2+Rjml8|C{} z`&fLQnXs|m5n#~{%*l%k~T|SkI@4Ct}v^=5h z{j|Ig7nAlAmywiz8ys*R#G-r?=I;Q4zo8Ar8>uRMX8jIE3x1$)+IyG$<)^qxteY}> zi_ACFY5KUgxg5p^*rKZFJC^$!;uAy+kcZ`DJc7Kgp@CC~1`Wtlp~FUL@(DF3>g90Y zDXLGcC?1HHr=C;axl1i~G-WlTt+kd44Q*8D74Z&T3%r+Ia(`+9^~5P9E;cDM$*44Z zPAClyW&e;Tv903<$ZnH5G)t<_&aiIRSC|y|9rR<f)3f{mC(WGgKeO9&5E)u^G{5V2})hWmxg1Ot#H)_ z8`5HFfp&vd`Zzkq-`o|K{LhjvhFq?%l7t&_0B@tO^T^J2QeWLPvy*otRB>9_a&kHC zjXD{m+UJp)x1+AOXHi|n;c_Kqgeb6ww6E$wVyEpLRh{snS zZIkjxNuAZVL+8nF<(crAy=(BI9#HpIpzJS-&Qg2G8q`LxK^RQ5!8W)n(hllZheeB` z7erad7&guuL#W|pu3Fk3R4%(F&{f_+GW;S`OTEJ7kgiayN&BkEUSOQ8j}XC8%~wul zn<#S-?)+JvZH%J>^8cJWRR#2=8WQ!;v%-xqRj8qKQF|Z;3!$T-p2WUTWx9bn()OO) z!7S45sV`$r(3#k`@SfU?%CwDDU&(pF(HQ252^Y#%I1WvgR}&|=pSb*j^3sa<67zgZ zlW!GyBJ0&k$`bD-B~zY^uGul8L+VykQ`}Us4P4_|pu~a#bcDsdDS^%A7F?dz-?aaZ zgq6LS=KrFd@!&RBMD74qkSW)evy@CA6DQFfIeXbB0tuB2t8{{R$6T;FayBr%^p$8T zRZAU9sWjy3imRmt`mdHfY_*b}j$OgUXdX>ZgEW|t?AUjnNW zJ&bikXCEgmO{+qE@lM6d;a8l$3JcXX!T{z(aEqf6RoRtC$A^wXC(y|aqzg3FS_ucy zYR5gjCMC&-86YRS)7;+*SD1E`1xuA%VjgjnJ_hE<+1g=tptj##mfnC0sAt3(WlP>a z#Ao{yc#Ry$^`~FjCahWM$`z-`JuRPvsHKAC7}_C3ZBxV$hQTC!4%J!u5_+qg&OK?? zR|T%^_(;5o-ym;M+tiNO4A0v@0k=4m8}5y4LZb1U_#JiBWRtKp(Bz2fCWTxjhouJ&#*)Lyn&{BPOEwm9kB1EAbPe#dLlj*zG@dL^oG)ikijRs}2Mbk?A zLirJ!k#aFO9ZjQliM#c*@EO>^SIxAjmZ4@+Bbl?z20GD4nB2s!*jh$+Bm{=)X~H+c zDlP%5DWwxFL!*?rn4N!$XC|~~7%nI1r>Y~1tF=i!EHr5n3F*VLqh@n)6%O4y0+x?;6azBVw;v^sXC65YQs zE#WwQfwo3*YBh{wbggKv)9`SiH}0%NG4)aKXwGz$8EzD5FKnhL-UnUL9*(j~MRuq5 zF!)KmPpxJ~i?YyJoXMQ!cNp8rTXG-QPSJrUFnC~(aD&S5my5XHW~Ff1raNA-vQp>QCMko6gM_GthI`L!6`ADmF4Vu5V#Y zOqOk-%=_Lu_6AbD&y1>C_uQY#9ir-?{phNFuu#s~zrrc`esBPa3WM>|a(Cl~d%l40 ziwd-24)YICTAfC8IsBf<6H26M8LL_wx4UqLz- z*bYa~Bi#a=M%M(rN^Dx5+Z6c~MZ|dUJ%7M-Up3>F0zLnnd;?{8cE&6=Nv7q&9&#YN zfZj#-(LwG5y)W^JI|whj9u$@pHV!a+eBl~j51C4;*0Q~N~C18-X6S^QjAwb zIsL4fRs6|YO?#PJ4)r4YX^j5H!v-7TwZ)A>dQDbJEKsJ7r&EZfzT%i{0JeN0-$Ahwl0L;Fgv5xl5Y@m^zvv<-XX z93YHkt2>_;4-8w3+{hF($oY2>20qC#dV_G)z_)BEUl6FJT*St}4a+k9srm?&)DLm( z897*)W`#HCt~s%br_TldPMVYOfSQB<3_rsOpo!OEzsO$=w{_i??^aGH%z0?=xDumk zB_Hu-dXwUf0nrHTU--Bi|{t2Iu-L-9~0Q_{zMhZf00j$o`*N-Ym}iYB@zPBy&AgipcHTpM1GLfwEaGmVj;34VqjG?{0$#YAEV-)Rqr3ak10PfW zr;VoS#BQV~dv~q54C?8>DNR!Yj-}Lt;O6`pjxO3c{EZ_Yv<27AUrSFACnpBiqhX>| z>X<*>e=jbE+E?;1mSAGpOnVEM6dmK3E$(4orVf|?68=CGSA)LJ?@gU8zXCrA1KEI9 z>RcKw5N3EE@J$<-G3N^iLx z)Khqg=or}UJW78+cksa!7QunT+}~^G~IN= zEce`N^bD@MIr|4?s>;_gPQ}RizXGVSIbaEb}d?{{bW|gPUb!H$hk3QJUhsJl=^^! z)Mu6~=?Y#0*3{Fu#Z)6Lj;?5K=v(1-y&&LYmg31oE%qC%Dm&C}$7WG|b+_X73`PlX zX0VAioVy+@#m~97;zhRMY!R_KI$J96E+QrC2w?;1wU|7T#K)1&dVdg`e@~g>y-2)f zUPTsj8^~Xsdz>@O>S+?JS6l?E!*QO2OqJNjRIb{{mMPT%MRFCrlH8Ri{RW)q+|Lv+ zL&KlIEk`Og&bI;nCH~~RMmGgz`2OKZ1=E=C*a$gF=}mdHH||Vo49FmVRPD-UtcyC% z`ysk9e<$DESSDofIYz0vk-H7Qjm{3oyXJbWVn;KD(!*U=4=B&E_s9`6`8WJBe|Fqa zIhWiP9-$%pKByaLPtAlcxfFdYTCdOXU4*|R)lI7q^%dv9b?7NRF6bk^a3yLEYEksF zcO-oyy-NS@B`4&kXk!6RsX=pS1Nu+wSL(eQ>|G2NLJou-Tpl+_-)(^x6|2k<)v;+%XV z?|J+ypDsn||MccmucUhJq0w&(nrPiCjWBoa+aasjdA}dr19v9YrKSg9=Usxutl4=`jzn^aiUpQ3RE_z?0FQo-nlwb8t{a6 zz`FDS?qJ}xW`2)CD13k(8R%5DF(384jO~F9B%0HIN;i2xALiry*Le#p)}CYSgVm@h zM7*nSB#fpduGa>tcj@|;QdCvHh!OmI#;Ub8_9^$#J~Yqz8;--b;r|sMP?LP)44-yF zS(3IfpZwDhTbRA>evw3N{$j2xOpv^5oDR!WuZOmT(vOvhaqNN0`(P zbjKEhNQ#y)n=jIafRK1zyo9$%c2Q#kJsh!AU2j`rDVXkBqe%q8rh<=XvaneHK`SJE zfik{4A&&kDma+M)mEdrBCpAtPQ80k|hdQa>XY(z(QJuWLx{f!?K2Ccm=U8r}Ofsy2 zzN$s+NaV9TSRnt;@y^jKXuwYJIqqN%_!l!Xyjhl`%4PdF`C||XJq(d7 z$E1u_QA|NYqDEQ9JB>eOT3KHUyNVl7YZ%S9QC5kVA^_$~4pbS;5A-zs=p}NK!bZ+_ zYFRagN~b@02PspM=jGQ0{qd@y>DK;{e~H(Q+gKT>v!j=km_Aqu9%T~be~ZSjhxn)F zEN2cJCah!jdq+rKrkR-yn5k9u|3Ul}{jE&AV!>)_65S%PC_0P25?p1Z%ikj$RU@lv zd68`RH5kEPnB1H30_UB>T#+D!tmUDx^dsi&}#%L8iZG1!2r?dEhT!P79SVLP$QFE{0|gFh z|6!})5UgzB1gfvF$8|7Rh*i?gqhm}{Y_ypXxe8vG-qP9B*6KSTOatzM? zS3-P0v2W22297E6QD&K5U2d)w%N}B?C%r&OJ_j2FtC9O0e-xJCA1P1Fr}7S{hCQd; z-VJIO{tsrX%g>%vo>Jq~V^SlYbD0WPytUStx(+EwCiV~8l?|3UavAq#d;*+rZ4Y8} zt5-B9R9omaL5K1^@)0l7mx3{xs@_-nicO?n@XzR}`Zu2up03Z5eJCX`Hd4+z+FOC@ z3CBB@MH9&tGIR{g{X{hPJwaPT3uU`Kq*vg7cUz*j!uDVf8DXCa+VSP&da~c{E&4<$ z8jB`LAC0PdO?{*`P)gSi+~~x6@DjiRPpCbR>y{FbFOLqTZy^ zKUzmvLw;r}B46Sy=yj-pG>8Jy6e=-=fc^Pcajhjgut~k49YUP5ygU({a39ioxo0BA zJrSK86MXQA*#}xB zZX|v+O)YJLv59E}=DF$~lDIE=$#neH26dEX5{|DoCqXmObMu}jxj*t%QMy>YD45j4 zCo(go77jK%2JJVy4t7!|V(rm6^WO3b#;y1h^q}L6$?QmZkP;zy>>+!{v77k_C*srO z_K{YF6-|Ho_pmPW%%mnd@Qr3I^RIW9*#R!2o#wOX#Y!%A1NAoZE3~0&C$-6CPEkXm zQ&Rt9?xybwH^`l8w6;;cgsy-N;7Px|1Xk>VilB%aB?uL|+>=xwLY29>?p!M&CkaqY4Z zmR#wjF;cAQO_v+d&4YPLPsarIzFZ@GP(En(v+BsdB$Q){2n+QM_cq*08L3}DCBWk= z#jNs={ww@n^w*>puEU!{TX>_~107Q{*wew$qEC+VAH_(u zC~Bu@c@e!wn?as*>@f{MPfP;;>~I{vP@Ssh<37`<(<47gd?W4LU(O z3Gj)$5F277lfN(94(r2HFqMmSuB3X~vxB3JZlS)4 z#xMTtt^vN~ilx*1b76_t31#PhrWX*y$)4PCcv0@jS)_lg$Jrwh!TXJAX}kj`b2Is^ z#p%pfEmo^Zw{|U{j>5`Z4L3>7CX30h{4KChIf9Ka=~n-eEr^ohS}4&O6HLtCnK;{Z zLH&jA8@{eygejpBVtL+!sz4-Lu{q=%w?FWmKLK5nV~J$tc|OoiV6&yA6~_AylcTIF zi`xbMry}<}?xC7S=h`0qSJw@^r+gN6Lgj;uhI7+RruZ7>Q|J(X2}r0j zHc+e2|A&gv6ti(FDRZ!%AdqWCN#S2C&72H4;v3?gChS6!nc3Ws;^Xi*7xZ=x<^xr_ zO{FD1ko)tyV4B&x>rUM)Y#1I9bedGz+T2}N!-5W;*MtHyUAJKw_LZxR*3@_aJ3GHa z?WHp8Q7W044lBa;MgP$;N}`~%LA`_aE%v?IQEOweVp#CZy48Mk#dM7q?=nrb6;wxM zj&u$muGl5N7K(;_|WkZq3ZN zPX)uG{fURt8Tkg$DFU=~CeinStplyfDDy@YYfJDJP)gtmXv}RB$LYgdeWSdROdIZf z`rq=>DcAHyR;)vz<_^l&DY0bcS39mT#2zE#UPV~j*FJsgXMX@XLq?O})N z6Uj2GzM*?0-;AtaLGngxt?*=Oi}Pz}H8ns_TDh}q_t0Jau@Rt$n`Gu0#4hxORmkI- z8}ws3XoG~o`f2H!GRdU-N6iW^OS2ax@ORN;R|j7c`H_+@XMzR7GDlIcQ|PhD*(71G zn5R6vMcD@K<^0nZx79-PUlq}S-Iw%{6o%j`#bgqEeZCWq6HjB(8M2=A?@ zuUCgq%kiGb50}z}nah|!JHT&RO;j%>%6vvG!3wn7d)us0AZY50@&&lV`y;rGRFkm1 zfyO{x|J9O=WwWuTpp5a=GhPOIeXe6dcdA#go3lgU7k0OBoGOD25i{UHGAw`KBO)YsKyheSi`~%;l>h_cbn`+ zqS#BO%B!g}XnCNz^fU^UDpB*9dnSBOw+_$pNA10F!c&<4oc`<{ ztT@=lbXu6#^3`p43-cG?vHZYB0z1`@p@ZC)$Zb|CY7zG#wVlnWz4hO*H}^VV4<|U*iH*}^{&NY~Li|QBYTnw`V`B8POrP;3-S8fuVB>hz>3t3Ue#JK2N z>I#=h+u09F;qo!cQq^Wo#$E}_@oB_G^qHCj>d}AezX^Aw(Qt>FlQaJkqyUf0DJ_$Ovc+wOj|ofUj8Gp& z%r@~CM`>6F%vy@Y^e!t$s&s-ais|EJPa2X>{2ecUdb;j`q9;Eem7 zrLwXIm^^n^YmQVmiud%_aucySa~f;nIq8@co53i?UHLIKk%DXu7zotoz5cgotGpi< zbWQxI81ByM9;_Ysp8a0QgF`J>MK7qS`u9yUS&V-f9=^Gd1IRAe~WaCzHqda z&uBfsS@;A_qjHSKV1ak9x+>`^)|G=5cKepDd85xW?};6aKhcqhA5vUb>c?OSNQo9A zW%VPhGn+@;bME!dmhY*x;75JDWr0?}Q_LQFYfC+GLC9b#p&?X5Hc?8J6CH;Fe1HaN zhzWEHW9)gkr}Es~`ADMN(rGw>A0+3heNlIfRVSH5zYop>@&MOtX0_v%*x520<}1C8 z>#Lz>nRA9f3R@yM_|k%^R5jB)v^1_1Rlp|*�bCqBE#@@O#dm$str%ZoNE0sA~N; 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

      LHsoOCR=26C!WZqgnHnps~PpL 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

      |tOtoKue7jw+#DS8OPKhsa8bks{2 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
      Wt=p?!htRzo53g9|Xpg8WRRT_VU^=2;# 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

      8y68mZJr=47)%~?G+%ZLS!CvlTdWt3 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

      VtfQ5}cwL>4X{tPkMk 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

      @D3 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 z%0A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®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 z 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ë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ⅆB9nfvobNg=J4j7u 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

      5XeBJ};-g4lu8zC1cR1(yRDv z@iiG{*Q=M+e9L8MVlWAi$#l9g_}yjG@?SFh0^4uthioyIwl5cUXdUL|z?j@kw88q8 ztqCo}3Y}_hWV?f02wZlTfi9z&!nD9uf;PSm zWN|srE<;swEBKud^0gw^g!}YJvJRRfOkY}k6;7#s42tz&>U5IqM~^PyFMH=Y%>4DG?Z=_ z_M*>q8|-0Zr>UAf5P0t!Vrc3O!<6BaU(}7XSCcV%FY^|!uB@W3gl+@f0};+;eZj=c z-+{GEbx`)qu#Up@7HuMG+!VXYg&ZlN7&6vfN#8H%_54d`iu3Io0)u?*p=;n>aJ2M8 ztmUgGp=4)Fu8Zv=u++X2?wWl*a)cf6Z=L9T$`aQb)H5IO{wsB#^VkX>e~-GxBq=t5+Ag#Z>o0 zn)}xRfLtMdPi_gdg}1Ry@Eq_g9>*jpISHYDrmhcY{y zy@(NpF$OI$jW-ech&`lWU>K33Z%^s-3^ol=J8={F!i52Q&y#7rgXBW<5ggM(vYRQbJw`uVt+;K&Q_LEIS&?( z4IKr9)KhA2xgTiGY$Ei{|C)0)ddqn{XHmvMFSR5CbbHELZ<-gWCkvzwbU9J2Z3%(VfkvY9^7w(HRb_eq=Qq7Z>SOzcJoz^lS7WMK!(N&0jD)?X!jKi0o zwQ?DQp)~A%aK8CmbXM+2@5dZ#+W7ps$!Yc)xmDaRIaS+KUa3vJfmlV?d|OFJdhBhg zQv%q2l%GxjcBIxyDT+*Iw#oO2Bc|bjWzoZAC{hs9kUROTDuip{CG~S$6SUsU-1Jq3 zxm3w?qdEtywy2D>q-a1$qCNzlM@lC7?QhjpL>$1lQ$OU0fypB(OR+96ld9Atb_S z`K54=Z?&rmV6!dA`x+%1L&8=Nm}(~patcV4&8vkbKFROSF%iXQv3jp^{(VGkagAr64}A}x-t!R4fzp_?Vxo; zVD^}_hQ5PjBOle;@p+MH_#XBIc$(p?A$cU8ExcxKV=s)>=t;PaE*~0iZUeUxS;rvO zW8VON1BWC15Xv)KnjI)@dgQ3<+ihv2{{uGy-z_C{rM&-uJNZI<74wFiWx_18fsMQY z$aEO!drT{;DSns)P3H`2FuiY`9MpYdZNdi2e?Td#qW{nPmD4b4&<$aNX*8A{+{^7z zU+bH5BW%meH5@I;0xVr=A?(L$VRGOM^x7k78I`&AZpL;n5^Bio0p6e#S)7?^JSm4l z;~d4o2xInlW9!41d#q^|(%D^uC=!jv`3HUVM(OyvZ@I!hZy#pBU ztqw=Tq4-LDLVT}tWO%C4E7SwBT%&D^$uYh!`ZnS)rib-;z#aBM#mt#B87~G*;g*K- zea*BgXamIi`WiO~lgV2K!Q9Q!3QIAa^5#>tZmNg&*An|lC36nhuJZZL9kv8^QYcj@ zMWmv&#Z~5(STWlaI?iPKh8f>UC9Q~B6R*UULmM04fsH-Wyhp$^qBb%I`s$1V+8T;f z##fDT5g4%y?ZXZ5Ekt4Wa^FIrJe2A}jM{w&wSe=LKIoqs%UwGJp&iTtB1&ITSBD5P z4eZWb zLwNhUVYUM`R)c$WVocIc`7Ky4*vw1w9e^XAWo$W5lKfuuSaz`?@VUM?xC1>-PxB17 zv`$K~)eK7LEMW>zH~u+dk*Clms7t^mRf=Vj$Ng3|-JC+dP!Jks=Q~gNuK8=BGr@Dx zRo^iDKyU*)!`sF*&ln8^jdRq&o{jFcz60V4uS;m5k24R#JCQxiBB{`?50xXqgCl3`4=i>Igxj#CWS(lwfP@tgZ)K26Qk6Lqob9p`%xu5}8BnJHHk0 zspiN%z&1jz(okJUuJTt7uGa1(t$42|IaFONCA=b=NYmI0A(tx?TCHm)H)9SpsfDVv!l^b&t#B#d6u?1JC14JkXIZf>3XBT7i8y*K5c=#efsDwso5psL z`Y37o{k9|GFS0FqN!tNg2|q^@$S+J~Z{Jw9WdJ@)AJ8VTb6DP#W6Kv~{2ZK>hv@$j zZg~R6tF}sN6v$NmkZ!YGe9eU(U?sJYXO4ScxH2zUuAAOsC|KNGmU<3VVMmc&C>3o@ zbcBZJ?&TD5I;gvhdFBHT$UJ;K`cA(BXaTqon7*o+b>r51P*1}k^G_nj_BZ|;$936s z5bqeRK=!sYi%epxFvXE0_TgHsbi_Ga-`2b^mSHChZlpkU>F=SR#c@DIq@DFPmF9gC zPlTpGhuviyc0L1K$^L>fxjzC^%^Hb+vs{Q2<9dJzz*5T>_uc@_d^Fc5 zb?ioG1^j~GK^75XxiXfN#L{d*-cj#&;9B6VzpPpI4g&kxtHzt>?TW0T|K_Uz_sM;_qm9-6a)&h@4PO~D7UVu|9%nK9r@usf27+zrrT8@Vx+=qYa< zAh*DiktWP+VR(3w|V03qmoX~ASvh7X5`nI-MC-W!82}pq$v^qGDjboIdIsVDo z&Jw3DX;$Y)!cE^D+{oh6GVc%OTjFzOPGkY*=I1j;=o|i?ugrT*MbaXnt>=)t5`8NQ zQ(r7e_$YnYB*q4W8bVvh``YI}A9c`W0xx|J5f4}i{4@B*GSVI-b)E@AKXS0JLYjii z5^K|?*gN1gh7;{@vf-uLQRtwSlk+T<*dO}x(kL!2tdbPEq$j|iQhTyfay9_B^#;B_ zzLA|rc41aPpZUS?Hr-vc7yK1>04Mm3FdAGHtAX6-e$geMYW{}iv!)k;{f0*Broc*? z(v8)8jg_=dv@TH!7)wTJhW<|)BACEQzL6rVOiTD|T1NaQB*>M4XOVHCMfgbQBl8m^ ziPhpasf0waSBO+#mY)DP`h>I%8Ug&{JHxE;&o>Mf69Z3~8komii>Ys^j4ZIe0}j$< zbQk24@*2l=suN>&h~V))fGUbhqJRXw2Qh*vUIYeWR=d>+w^uyW%J8k!iO7 zl)DTSW<=jotRvWk&KKJNm6c5VFj55^$zM>alaq*{d`aU?&Fk4JBq=@6*$_pI(=C9; z($`|0g746e;ZA5)psBUIg93ToI()Ehin|-}4P0*Mtr6RG8v1n_vrWgko8p~xr|s8F zqv$)H5=gpGorK64h}km~$79WN*5-ijFZ%9Wee6egKY5dwO4@X%xN_nDeB)uaHXn_m zWVl>B3;19S0qNcqIKemb*EF+SDQQ6R#GH1Hee73*4!Dp5$en$)-P^s8zPwv!`Wa!+ zT)KrZ3D}b0q%+|6j#1J>beOv(`^i+@m#Z!hXSf%Lld%QtJK`tJ%Qd(Z9O1ekjim}s z+H;PB93=x*HbNYg@5Xln`#dLn7Jr8HjBFl_8#V)Pg&*qsP#I+j&{KRUrGmBPK6nE7 zM$rc#;<6>I^<38~b%A_#xpW^s;Y~1YP%o%ogcL&q{yk%hUnKJ3^Ft)GuOY~9hAHZRAk(4wGuVHNd=>Dl^x412lIdjw<3YXtKL#Vd+pkc$?pZwO2>?22mwKN$?eR$Uq~xUa^fxSG zv}s(&>uL%0ER*hDVorscLp6bSP;0{tr{?4lXnz(k&wn0A4RNVF3bFUWEx4Pe`Oo|^ z={(bnnPx5@79Vv;>$%SHq?#ao=9FVelPzFH(xC8|pw; z^W)4^hUI#r{}81NI&-3ZsHt15CEyqC(2bEdv^TH->;P=aT?cLV4naxpD><8zLSNli zqKQIDT@E~gC4KA+e!KxYos4r)97QmN1^d1mR}*)c8|j; zHy9ZloD5EPJAwwZM6`ika}pZL0)3^eU_WAn@JtoqgX&IMPp^^x^%ur#t35HJJexE~ zWr>QRpUg-k42_h!qAt@;_Ze|DpACQF?^#;W7Bo)*$#_mX#_BtxZt#u*L|}p63>JFE zvHSdcJuT!3z+nGFc6F!?J6!S52LCs8j<+h|@nnM)0i7@i$mS1#J;LjN{`!z%wX#R7 z<_}>vbQA2&m;gH~I)kcxDBOF3c%`XyRnVf_RmUIT9;cJlwB ze;qyK>})?AJ||s4w^Lg^6gniRlfN0K`wlI9DO`-sHnnj>*?R_uDIPB!toq4 zJ~}u@?Fy_^bN!Wq7ff}~&XhUai*4o{p*+M3cuU{{+$nLmp|1URI9<$-^zw9*yPFH~ z>U5HRi$b}MCq8p-Gi~L5NsG9a)F0N?x&^lCQl&sG`59B_aEP^ZyPzp@C!~p|EcBZ# z~8wjFbpfDeP0@iP9-hE?1Fy0ho0?*gey_`+2bK8B30DNuj9rqWWE4ar0|kA<&h zejYBt-u4s#CEQ=Bt~P7!*euXJ6RhQS#~ zIkp+R!TLc>rx|Nc?ft(pY@tu_O^mmqsQZH2kZGlf7rPj)B7@OXv=A8{`jHc`5A$TR zI^bzyh7EIfaL+P6MvvpyG?Ulszz^UP0|N^kC=J1+(S>{?j~IXO)vtBgpa;ugD9+do~dx89>(zRq-f82zuhQ=Ce z1+GfJ;FqEosxIEr>Ve(TKYkWWH2#*FlDX0G@JD|S?k;Yno!7N$Z3sCycb<$*@Dgh4nbiv3G{_3^PRX4-~r)@w1S#OQ~+}E?(Ar8 zV5C5n9QGxlXtL|7R5JbtKHruVUtN?NC>^?)el$W#LGEK_1z>T(yPRn5T6|cvUg~6F zX&hvxg?{16!uQJ3qV2j4s7d(5oTVM%*>)^xnLOL|Z}F^RFBazNz6O7}zsJ+jF|KQb zdtpykbzx_^B#(x-MP}qr$9ZYfvQM^+sS>(UUp6v@=npK9*P&KKMrFG4`{uN=&xt_p z?F&<+*0PFR@l}uhbhJ++b27+ksg-j}Ghb~oJ(#YY{HL~ewL#~WCNS+yUWO|iPc95! ziOtq8U)n>OAN!5f=8r4&a*oOE7xjWNtvwgpJ&i3}m+WF5EbbSk2u^+(Bnx(1Zv?$Y z0^eu96*`foPtIle=u*BbKhUM8uESqL>y!i zlxIw4p*P%697XzkKk?VSV2qlX1U9cddlT%YT%V%)Bqs-eTa z(C*+L^d-0fmqEp#Lfsc(CGeU#6RC?2rLG%qfRMfgbtJb#v^Bg{pC)vn$7%VNmhu~L zEIy4m%jU)FBd1wTBSGHq93i$QrU;pKt#`(nHHJv8m>ie{Ws#|IDYDag4lrq^?_26f zXe@FI9jG~6N5SVjrKLvlN%)~!M(e4gKpEz1pt{`9+#Sd1=cvu^@#smO#;I-SU|+9* zsClC)??Wyol|ZVpvba@x%Ivo*9z-kx$AbNWoWG)5!EXoKQ+0WoxXuug+Y?qt1uCjr z;a>12pbgVmxMZ|J=YVWwxZ2v*SsS`m6jsAMK?}*rm%xX>I`+NN)>6p5V}1j>9d+1M zN@byzR*BE{cJ#JVU+5pv?*X%D2QFjTv_M`1|MWc2HIo=!C%n6HpGQLrkz^3E)KJ<- z``W8m+xpmr54?4p>5dpu!CobI4>|*#V7!Xw8Z)VQbcK68`jbixPUaisT-2}hBKqWn zZHO-MtZqGAhpeBsmDI|0`!jA8yDM?_!pRv*D|@<#AB~la6b) ztQ$fK(t>$TW~)}^Qd9{14RMj{qQ(3p+>EfmM;6`ej zVB<)ZqgC7ttZ^Qqt14Z9ncllOexatfEM7&ZW}7X%Lxu%gyO$C7tlfBL(p>2!Tl^gr}lLN$~F)PD2kzc6(mPY@hF zi~K>gr2cXDu%y6U%^H=Q{$ULfnWPBr;_HMg)`5I2jgvb^T@w77+{=1Xu_mo2W%!*m z8L1jwt8TWWcw5sjkBU?j45neyNX?BfBsMm_&_5h|Yql}9(*E`L(MZkZ4F+(>f+7Xn zHS7V~23QHc6dKdD&}Bkz{3KHax?;+++z8Z1V^%xz-hU_X4{(*e<(ur?#HrkI_hT~E zPvOoeCr(5&9OIPRTvfi7*}{OKVMu~O+nES_Rw_aVu?h5Hk6Zs!*~ktw9rwYEj_nrM zDYXZRytj=B^u1syX?di+){Wc>zNOEYO9T#^dUIiUl#~f4N3My_^(Ub#UKL>hEb^Ie z5~DOP&>VU)aKrNuukPz&-jjP$vWZ#Xc+3ebi}QvHnrG;?{sNYvOhUT_9uZTR6F3C8 zB6@m1^fsrS&KjvEZRS_{J1{R46t6+Q!bbz8;q1sRt|{;n%0}b1-`E&mp7$d9ojuP! z1}h1RnTz!4AnyB${6L0K_06Yno!{!+4}}f0#i>+Rswb%eGJr+E6X*p!+~5H6>A#4L<{^Q5^e~9_o=)&d)qN%Py)eIYLT&^!Aod8`n6^-! zfYO7Re4(lCBsfpMiWuuzsL_II!YJ0#xzBPjGBaj#6y%Ik7vSS84@4#BvOQ%%~848(ty z-L#zIWP2=d6UMImfJk`X_Bln5W%k^6V>ZR^Qm*vZ5vKJwR=Ca+s6K;8a>yX-q*Z z)EmMb4Lxmy!n_G+PwSt-60R@O7HX=NFaOFele^mHkh}dVl9F)JzB73isfj&Z?SP~p z23%)arfgEiTVog}VQ7YRFY?P~4=C)ha1mi6o@zI50jnNvL@pugNw1J5mf!yUwg~-2 zJe#slT1D;+oz}m`T)savKOh1|;jVHQdz!m7QWpMYM6JCg1JlFS!6slTId+02s3y#KrDQV`yi~^vaWhA#s)qTAYy zStwmKtYe11gvo$Kt_vrb z+Dkj=2G$)39q|~IV3?@+yPK;ss2Zly(qMRlqzi0x{)-$Fn?v716@f$A`EyH~_17RC zVI82^;0BmC5m*B9CzJwywI0NZs0CsOY>TABuWi*C2_2vCS$|dUj+Xb8_cXvCnGac~ znYJ09`Tb-Mah{ySjTSl4#c#5-G0VEjhHU*cZ>BJat?R47&N2D$MN$%8iTM@Dw6uj@ z0yo^pF+F`)*T((Xa#b?YjX)FB#M#n)iaX1z%y%qJ_$ZA;hGXklidkoN0-4})_=_pT z4S)>HP;Fo2Z(DJ&s&qL}BCk8Ow#X9ATDTVPo`6RVC-zFL7M+zPqkq`iEt?zIZXBzt zykrwG(8)Ls#@;FGtRZeBAm`tJL2+j2w(Ft$bJ)x7GLFV~EI#7Lu&t5%_5{2}@oUSM z#VmOx;Stt1M8nj3X+P8_fx=*ulqSFm^T@)%3Dt5(*aw2sZRe39 zwT1Oz-iY|~tkVgHQXA#H6Dk9{QKEKCO)USrZtcK(YGz!ZppBIO}uXC>k+v( zcoO}OAxGH`Edzh?9gzfe$HGrUNURUu5ZXFWxukk4r#U|WjG?_em$g@HD()h2#H5&z zV(1?FIPg>1LLZb~^1o@>y-`X4>pq;FunBE7+p&95UVF1vN)B)*qFH45l z*wRAkitHt;;x6W~+>`we|Jy#(T;5TeWx3;UH=((fH2W7UvbEvAGasp8&;@-j+jnky z^s&jTCvm4`t-Ut74jIIS^*iW^9)f)0dCK>Jej{eOp?)oy0p*alhz@e5Z7=tqH5=!J zQeY*yE#1!WOjp|c*=&&g~yTfwEvl3;|H-G1=2i zfFqeyR_|YK(xEGi9fx@Ip8dEQQ zbNU3Zn7F1TXV$BY)V-nG+Dv~0kin<S zOLN}iBmxZa)|DEYisZ6^B4#GvLKg!D1^m7ifWs(3_RvcEZ5kqbgV%uRbRWs?E}{P> zoC1#EMerK2KQNMM6mA#nr7NLNHI5WdIsPRvj297bC4h)Yz)WloFr8?@R@OI=r~2<{ zyXS6fqtC*(r-a~0s5Vgw>uC(>ALwocIqbOqx@$DwN}ghHE=VH-`qhv_Yl)iYej1l^&C{3?a%!1fS6DF zbICI@T*S7FZw8XsPI|kB=bS3+PQZ*i>>ZiExYg2k_#|iH^MSH~he;2t+l4Ja#1jKD zLbaqg_?|uvb^}`h3YDPk^8R2edQ$02K__rjmjj&Ql5H>01Te}kW2>s=OznVj?s?{l zrqXH=8x~+_lhD*oAr;_Mr(2q-)3T7tHn6fOP0WYB`A16L;5{teYE=uoTll8PD&2YA z60ntfk3lv;a5_*Iy{e{jy!St*mRc)vp3Z@O>YoGOfddws-@#S}3`&ysjxY**MSFqw z>JNMteYO1STTA~3wRfzwYzBKfs?(Fi zQow7jiQW->jwCUJzE!Zlry{hU_)iYNcMYE+S>i=`7O+ZRmM*PL6^{sQc+`AfI*6?Y zYf9ZX7g1Mx3LtaDoyeWbea@8U-Wj(Wnh6(>6?6kk&Mjt7GELRDHELW-S8x4V3oECB zezYrlTz`m^y=`^v5ewbSOVLNzv$6Mtz}~}#B5RmB{8@N91;b6*d8S-CJ30&Ms=j3E z0l&zZ=Fc88)j!x#zsb_x{QpGSAoY`4#pnR8MG_2qvF5UjX95R2U4Wp_Nw?q91}ric zB5&bi(gj04Jrt=XKDCUG0(2Sk9Z?8m>E0P;V2^aLUi-iNW!%Rk>dG2&T&b30Qgd%9 z{!HMja>?5X|6BaY%wQkEDRd|F7Cslc0_F(MLz6!#4_6M5 zt6_tpaFNy2A=GVY67@c33f;>T4-LWlNAsg4Y+2eC<*6Oj=-(Uzoj;Z>);#Q zlXEFobNkNteOqqI=KT6>Te3BM9XOq)OD&=5rGGtdu;b*u$Zuy|bEzmv{W7pg$r2bn zZt%m&4wI|4x-?}b*~S89-BX8C-GeADW7;%iW-4^EL2fayozndaFH^Vem@RQ*MQ9OR0sQkz!JJu|*Lcw`)7v zBL1h)9GxLNk0gR1I4XWjC@xO2JB44sNw_%K7-|=}sO%N)X;!9JHj$fR8pN+rC+Q}W zjp6H|?Qli$2FFE@8U?67S_>P9)U@8sX&HQFn})X(_QAvCN`}$$C%BzDlB*y|k@dbY ztQp@NdI=?y?aAY84M$9$X*7_lH1@bL_+D3D9UMLCY8`xruaqtT3zL$AMr&)rtJ609 zeAT(X%*m<`WHtBcMuyb9ZLW9*OjsLw9x$362cPXZYo3jERZ^)KGsd=%tr3__-wxGxP;~b_g z!mmn2(w|-jGnhjK7tKJk?N;eOa4!5(O%vmxa*`FD0{#{@Buup2_uK4K$xWWQ!VU=Wn z6RgF9t=TPxnOfrYXSi=tDyAf(XavRj+orpn}O-aKeMZvN}IdnX5I{&16UNs}9*aL=V!OIcS{D4{m zw6)?u?=V4Y6ENkKE-`eEf2})XOuz!_OSsQWCz89l;cgw4i*1hOJ3g_44EOzApdz}Mzc;WW z@EN@(NeN?^WXl~PC9ndhtLoH^(lmMme%f4JnnWMbOrZNi6WuG6i*kFnBQ(;Smow-T~FYUXaE72e1J5`Y`VS)XvwT z|1$oDpD+Y6hz^)85pA*8WGh2|VJI*twk$lrSByIdFkD|;uR2k?l1|^ns{voMT+JBZ zU#p8uBKk?27@d1Bzb;h5h;RYvl4BRz9OLz7B8lJUvHMfx>cX8+gzBVgBR4Re;&p06 zqA2H+`a^8s9}Cnq9pg%g`HUhy;(NmXS?Yoa^qu3;*1%T(3OouP#m3=I9J8LKhvL7* zRfd}2Iwk=fj11%TJ_qyxZ$+#GHW|WNQr_%oXuRweu}!8DWXv!`Or*zyGY}lO?EehT z(R$=-;4=P+uxR)b`J2!#p|O?meM+nUQFN98ZlY})MIt~TfrMl-K6RI^Ox@kxy<7LG zdx3-m2oR!^vAS*D+pW91ck8xo-}=^NyC2{G{7MKs-1l{zW4mP<3Dt!fT4pevokNVC zs9iLYYm6t8yGn!E6~5!d3B)XSMo;?l&9(T^XiZ>nbOc*oIq2OB`2&;i1lm;yc_-R# zF;CII!0{@Dn_SWWccpMA<5M_dU@*crPVkPdmZf}4sVehJ4JLW-$mh*BENGDRh+qL zF*8%Zd*nEOC9MQ}k&9SnaUH0L?*^Mo)JysR*AF)nI?6UvStKpImjuCV``zFhriAMf ze1|!2KFBw;SC*dmAB3;+F9|2{7OQQp4}A66s5{CUm&`A8wCAgvLTVrK6P#vS1k>bR z=@c`{S;3s7370IV|-M8Q``8s;NhC6!}jeZgEJLp_LqE z1(|aw7;H)Af=Adx)D7ri2J zz#7eC%d_W#AhH@AueN88m>clt@L6p0+(+Owv57D$G*Xb|@8VHkSMjHJi*T0ZeJ98x zXfIo3v25@={Fm6za0q@E)V&-eqRxo#BtLO$lfujmu9+=tNwyUCeGK#iW|PZJA-*d* z&2+$H#4AQ?(yt1uN6!+o(E|pZ@V{_M=pz*N{*CVmo3ycxeMvR!42Q*M0gb{4@XcG` zt`Og(PQe!$?qk1srw9Mj)3+f*0GnwTji(8hk^j6F)GU5Or|7-9FVIqu%o<{yVq4?b zqs+BuNI#&VjuFb6&>Gu&Yh(X+PgAyf^h1m@UpJO_NHPGWqpOf1z{21cY$(@I|A&0D z2ZeEdorB1f*BXmE!JfcaWwy7mr^xr1DHU7{{xWn`z9N#Q+MHSg({QXAyApgN7=hEl z(@ZM_0CEhCbS_+V`!npYM3W6|vyFRV>-?wrIlcv!4MJP*8ReyKE&(MmO3CnAtJ6UG zHZ#@9&w6gliH!4EuqvTcyd<2KYG=CGp84MR*RkVG7+4;j1Md&qQr19yuyp>5N5wmn zeUv4-({d*_mUD$(>Lyg!T1NY#)bYNGn*(lSBhu4S6@4A-M0NF)iXcEG#tr>4Ui06z z9_Kn~z4AXhJ^>%Ohin<(99f+l#@uHf8Mj)d@vB31;ca^BgOzFm=TwY22+pN8QybA3 zS}1%&Q8^pp)CHdA=E>?%U?)`vj%Y`~r(kdL8Z_K+H26696#g^b6ypVlql7sc|1uJU*Qze+fVI0PmoqW<*;>pow0!70(v?ku z7832`jkXG82U}d9^uLP5Vq=W^aEs%%>t_5?)MfrV^eZ+hIT1*Wb;?J;!=4~p(3;6*`tmWNK+Vk)cUIL}4w zq2O|}`$SqP(-wLO`+o5~-A(Vpm&gsAjRJY8VE#>agsJ05aKFie*fh9tQ8}liCA2Z< z%TRHyrd%&J6=@P|9P7^yi02T`B2}~Vp&9mt zOwI6Vd9|=a5#@&bWo204Dc&yHt@y!kdu@ikdzqQCGIlsJz|}Nt1)A^^BR_x~@u#*Z zG=WdTDbtb|4y5v(BcmPv%e|Ah5R69l$4${vM0k0zm!r2FD&Y=Ge@wF5S=od17hcaDoJbIqj| zIRvC0O4@a=ym|@XSVEsOmc(CUEn=thTEVY z{u4+){%K4QKT}tzkgx@RAgv|3v;9O~`AXCwPg}#5hQ7;bBV(8f4NZpWOmC7^bu z*68zKP`gg9Ff{|i{FY*Uk#@vn@**DDh5pL>$P6O)M(XolbqnKEZe(<;xr0oH8GVPumpG6F zIh)z-!H4W{vX%dfZl8EB?T~9)TdM=p8pi9R>G`{u>r?=6vrp1eB-vOOv&;2;S?Ffv zVJa%jR6euS;QpGXShc_Sw&G^nrbM~$oOFw24}NWNF|?$zchQbO=ln+C4Xl}^C5fii zBFd1J(R=FpL~n9LN;zU9K`9%V_TJi|2{sY>sN2SddULW|p1mnI#iNP4029PbTz?yB_)A>Gk={OPyDSXTCPKVJwxch z{AWkl*4y(wt)0EIP6laU`c7RTUEHkbo@i-nnUEE$3{v(#*!d(nIm?gC#gSdtEe+St3E`aX|#d4qK0)VVfmUH+;cz)AUsO5%AN=#8qXC*u@st`Y#QHV@sErZUf*%o1zqzT_p{yZK6P4(#^WncDo2#5kmj%^1onsN2UQsyCRRlbAwQv?!Xdw# z%5&s}x3M!tCv%zeOKSw0y5JFyMcHxt=0vB=(*w05ecH zu$}0_A>Lg`CA8%j#jj$ zk}Zis$64gIX&>^tZ8))lAD{FbZ!A0A9qC8xQMdt_&CXQHOY1%3;a1WAWJTD9Jpxw* zZv=QNEmYS@Ftgxv{+0OJc#{I{|9M{-U*>K!Ua?=!Tj3oKjOFgJ#pye?zLty_9cif! zO7G}hXPl{CBl{uQ;Tnnh-szGHYz-0EK_LSjtqe2t#z#5-ir2MmhX$E%=)3Pqp0DyW z(?E6yJImJlx!> zrKx0;Z>zKDeIeLAo$c&tVb4`AVN4=RI*Cpooh)wMh5W>RU=x(qCU+nrx&lq|32rEY zgg0|jd51D8a29xn=BP%Iifn_jqYwR2Z4B5jni{wS?gTp{tC)IRQ|TVl(Ab0;f!5T1 zm-~8#1{+z|OAq*-WDWBcLt|x_KDUkfWB+!fz`JLhH1?ur-vGCx<74TqYN7 zDOu?p+O%wQ@)Ua7^3#OdRbiovoJLi~hb&xyS6$d5LB>Uyuvd=^0OnY4lE1|^CnX}S z%vI7_5i`)iTt>;^4n)4=}XcdB8`f@D>xJUcj+9l zw6I3%C65i}sNs}eZd=LY@$D=}_Kn>= zmAIJSJL^%g4#{+grp<=o@*uFB*t=B6csHGbCj^cW+mxVIyiiq^*lex|fOF}c&@vkg zeTxheEKA?ReM=OloEWmI7P2LV(Kob6_;1-0Fj6#HpnZ~WlfA)R0asoF*TP^u8X)?R zE_{~QhHGFf!z@UKkwOPooB)TXuLD-w1O6O5N*&>0e23Q8<&qjRE0l@&i4tzx4ci-H zBd$|&$IXZDZPpNEM6zT)M7c20oWDBJ_ zSifD*cDWfyUHNz zJ++BGLAcJgprejW+70_2tWChe#Qk3!TBsoC2;On`P^pwW4;8-vX{skGjEHgY* z0kHaRQFYXiwJ*_uuSbs_Hz=C>|Aqh=~kAMorE?rKZ4vl5JB*jdZ6NIbe0&hj+T=Thqpmx$58A}ykn^891k z1~rc+@bl1HXd-bK-QrtqdMY#&zX`j&6`A{B<-BB5H6)HJ7(!=LPuY{OPkjya=So@o zGre#t(brZ1f`oZ;HS<0zg-`Vk_FG+tV#Ddhu{wsA?kS0Xg-@=Y7#TZDx5#>`_vcd= z&Xa%P1ixs>Y4LFynH)^EhtJWU^&H20tC?BrXsaGiU2WZ)<@7C*wpe!Ih0rzo$|zP? z#xyaJx8&1eIx|ZpXgzVAoM~@V&{nIN7Ej#4yDvS;mh#?rR!yxdO7w^lb)v6w8wVEZ z2IoK2wH7+5Q|>@_<&~Gxk4MvU+tVuyIYnO_vk_IhXDyTTr~IQ}5q;csyTF;*0?Z2b z1r~r)mwYc|9kOvB)?D8+PsJ_8?gj~ppdWGVOH9BUx<0d`jMuHM)N5qBtXJe;TJMrm z$tTLEQU{dkS!JA>NZ4;Vt;M=WHYfeX|LL0?sv4eFv_2AG9gdThO-SRs3-ANqS?rqg zHAxp011qMVHjG_WAMuc{lqY}2|eA+`(u7;Rx2PbVo(R0>f4IAoCfJ z&GmS~G{t}ly`$;=3(`NXREEONGOuDEHD9m})XulSzDG)sl-5pnUknJR1NEFB^9im* z?sSmyF5#`An>;SiJtRgZBDds?;jU&e`XBl%yafKku*AMW`C$#y{lm+^Q11G`V5F?w zXT`J`k^X!}Y=5M`?Wf^I>?|_R{DOF?F-dKSbj}}|>ubwivc7_A0K?Tf%nPk%tTNb3 ztHI-%pIHEJH~TEKPe>=n6BBrMJTs;cF6cpcqE77?AQbS`{apeJ#AtLd06-b^zv1aZ zT`tp)aJNDgA=32Na{wOYDC_C!%wezUsl?y43I2Uzn71;`_@jC=ZhYtyTE@Hts-ZQA z4T(KfPKn2Xxt^<3afMK2RJssrZko-t;O-(anG&>`Pr6oEUPHyz9a2g2OT$a8NWY)u zfJd$GBWXkf(`~VwZ?Hi%B%9xxmeL*Alis*67rLpKEGw91)*6Au+8^|7wgFXEUa4*d zK17FO*ZJPQRd_cjsy5+AfkA;2PKU|`Du~UPl}d_v26o-jL}YX`02-YI77QGjI>H56HT$t_Nh5v~DNSQ|OiT=Crxh9zh7e2CIQX?Rp z)LNJq`WAT--;3jk64v?N@>$p6ErxE+wR%>&bm8BK9iJk_)6e4OWW!1tIK2Km)^#c)!&yE@*5M|n8k*Yu?EzM zXl7!3>{DJ^Uf+caizjF~rU{!$oez}^?WC`3GYSv5UuKSV54PS;i6pX^L59)H6R>u% z2`S4hZS*_AZQap*JKP~c5J#bL@e$~X#ez~=pXaB0X@?H-43;WeQJHN+LLEJ;eN$J> zA};GO+8Y)ox;b{2s_Hlz)$jq>H|ywvl4(fl9$;x?KK#;CZ9a+J15Zxin%AJLGKPouR+9QW`}LR9+Y__>a@~rFUYoJRJQeyxw&( zTt&pCF<4bFprW?J=Fx^$(gIgSu0ay*L1YE!6=}h~3_WJ1>Q;ds^hWKlBH|{;S8j>x zy<>DDKi10AitVLG+-spKe^PlD9v-tBBo32v;4t9wl*8|#yArvUeMvU+NH7(Bq9?+7 z+P^@*d@bp?Haw{w{@&ILFc{Bq%;-JL>c|(Qy?-xO2Vz3W#w2VIHi3U@IvA_1vvG#m7f3sx7WfomNcgCFV3U&h{u{$X5LI1uHG8IDPjU(BfJpAb@58b_Bu&Ppy3 zE*M1(k8U8ZB!-u$7i))4OgvZ!1n!q>5d6FKmJ4B)GEKt0n7L6bP#>Rf z8=clRZ)33)=`D(1la0(gbak;Sj<&7}{?SxVyRG0-)~xu$yi$qM=}n*t(Mtfqip8cS zO4F0{?|K-*%J;Pmi#Dr^;3VWvp+Sib%p$F|kRJLj&2n&L?^XBknPRByJuH-RJ&s^q>f42W~VZWkknZ1i@!V1=v9f76OZ{jP#Xe^7cX-8d;Jn_g` z2`N4r)aU|v5pfN0DRuIG@lWI*VjYW|QI>d3>62yavVzoDo^5>LWbdC4ZQM>aW-f>( z#wkn^hnTzAOUv<8zjYb@Qs<^O&C5t$7*PBS_&-l&W33HV$*mwQ99LiuwIX!QqqsN)DI?rzhVaEv1 zKx+YZ*>@1$2Rvogk-v1i%I~@d*e5N8T2q;XS@GMRBQv3^^mwoi6A0}LJe6jFb=hpP zHa!CIA~P@*_#w_WR3(=vXRIxORNHdPB<4aOtYqtyfM)n6;&7}fu!(=o-p8xLEy)U=hlO&UTq-c7yzv~^}C|WG_Jvf5MD*>2~dXpFDhL_sj0ZI822oJr{ z(LOQNd_)>wdOW*Q{llE^0x*brA=7$CH%5zU-&e3!0{VZPOfiTN=>7uWNl{r{ucZscB(PT{b|pQ zm&;!euAlkM-6KF@qp6ji1pJ>|-a3yjoA+_?p;VQ+>RM1(4>HkE7dU0BVzuCPmP`mvK==|jkR7@A(>zk&R3os# z_s;&x(Y;h>^g0d8eeu_cElZk|Y><8)ysulUTLP_$Cc&@ut@(ZDE?ii#)%&sJQK4c1 z>TL|{!rsF@kd+ZOf2LzT3gc@$^^4yn>gf!G^8RSiw!E*1n*6Vn!&!pA2dXhqpbEZL z@B$ZoYXUujwuOxiYqXZqBg5_GnyWMZ0x#p3#!fO8O7VPIovtTqzf%iC+gvq5C^rGv z0W;!ea+NKjq;NgddOYdb;c&6_$xUMQP&aR()C$jpp88Vgjo$a6dVzX!O>|KLjNddr zaM__6aAz>ZHUKa@o*?tzGu0CknYw((}EnsZKeyggF9(lh@Mog z*oGBvn>&|lf`66TF?WkbX##GxZZcCPz?ExW0=c!x}#ziYA zh_SA?!T22fh7?zPLOJvf`Bqw`rl`Nc>j8jX0j;E5(h6)+d?+*~utCdI`*81rCkQBz zE-io`1{d2l13NvkxkmCz{!iAb{uD}MucH(2zJcd5VV>yWw6(zhu;S9}a1DqTYN_{# z^!P2zsPw_7)7f;TyshK`lEP@Vc(8cV1AMoQ4!`vLZnk>vu!osQ(rTcR zP|o*OJ!{9oDb5_`3t!ngkC+F3Hjd)kG6BOnRrJ=vc8a&me?lY3@+n?d9if%yi}4>e zJ=DiLKnNK<*5|}umeRrpkJmF2C~ZrT2ir!c-{aF9Pq+qf7t8>yMQK4}n)}-n_3-U> z^bQ30`b_P#RJ=ESU6{h_`2kFpM_adqdKzcpI8a2pm^F;Y@y2u59K(J=Go)`a4pbr@ zv0W`6tu@7-DNn_w=oxcorhTX-c@))2Y=(d2_%tq>tt+M-^JW^OBmLP5>^$pAv z+XI`>nqJP2q##N z+bVg$!qmFdLMs8RldI`e)UDupqAelg8-svxDbYh&hozeX2A=#1-?9G=_hZ@xAX!q% z`S<5;0P{k7p-xmqZw^(Jp9{5yR|S73>rqbKbXJich#bw-~_>t0k}AQ3wREd79OAh!znHmUq%+XOQ~&Q$HBJBBmhc| z(O+%v)tiP%T2)9P4=XLBJK0--EQXR124GvnHifzwCt?-(vE&MWJDZu_0Bkjz9Cf*D zJnZY~J?+is#Qem%G74Qs;P!n+k7cH zHnuWEo&J)Y>HIyqR>*3vG~b9x>aY(4W;m zfF{_60O3JB+jOFHOXGUiU}2@cp$XZ;aCgtD=pb&WZ7rFGwr9Tb^_+K19o%17(c4k# z8+s3!#Ovm+a3|z2-a~s7oT~k!-O){OJ*-Zu_k(!%6G1`*H7*T zcR>EInyKpGMtrSq;(nWd7a8XNDQNNxxTC!}wOz-qo)51`dT!gy*Jk9rde*<>0~!l% zpioa2Wou+Ay-J*%>}Iyom4Vwp9W;+zqrBtS8Eebq1eRJJpT_!ZpQQ?L@8D;aBCBE- ziHxX*bhULV*aFqZPT{L8ptMC#*L{>z?X!g)K@l&L*rKhFuJT7c9~>pflTnx5&vvn= zSZXutOHqWt64lVrZ7@u5v&0Og^ffCkSqi z#OPTazwiS(9<3N28LjL%5B2vCWv}4r!dRWqS|9z#Jlt@|unrual*WdLQDC3w1FtFE z9_Y@FW!z*NEmH%6py@sM(*9C3!wrH1C5kx$l%y1fCuR#f!&RJDtt67k9|j))!n{>)1We~{;C4_BIEa`bWjo#~atJ-7 zn~4U6sxvd~B-7B)(=bp^?hi6d0D5D;;9mIquoucvM#PNX4g5$W<8QzwS#WxjdWFP7 zKg0J;QZ6obv!KX9{4_o<_|}{uZ^v$ut?)~V2AsDXz?*3q(V5N_{JhXQ!2~%h00lEW z(5&baF_Z4cln95lMfz!RpOhCU9;htTu)#!^@L-`2usLAXx7IIVy@D*16`P6sl~v|; z>L9im;L;Q9YlxkJ-$Uh@8r(rP8#|?yRhnBb>;31i#1J{#HxDl|FNMCtwE2v7z>-3> zasCtNF2AsUG4ukzvp=*WP;vhXrJb?RbJE}suVnYcYXVcbHJ+;E1^%|*V!8qDXHStn zWto{*N&sUFH6wjp_Z;iBWHyJ9bTYzeG9msUe+Zi`NxH|%$hu9S|AY9P&oK6PG+niRwi-hu+f0W zC>lei_)V4# za(m>oG#~W`W7s>-I&qP>7+LP0Ek5J=nx6Wf8m=l!g~8%L>^#4n*#Tv0ad0~^LU%UQ zh_qz4ll?3&?a!GQ9yYIH%ZvTR7XFpN47?}X(fccQ)%347jJz|+-VuS2*4@;Cuju&+ zUe-_cf17v{>6;6__pDG>lke~(Vj(yQSxl~ugVryhNd?uzT^*^8Yr=TfC;GX;>pK^E z6G6$6@oH3U>2PvV;0m=%xS>|G{)Zro!?5J|69XvD2VrY`PCXktQh=~JbWLlvwRWr= zy_#5-pOm;pUXmGkuJJ1PI`_|%a;f{Mq@?WJ#bke1T{sunXs8*sVZ}AE(B;W-|E|0j zh^SrGQx=Y7G%vghx*=PmA;dvo$3wKZQX6Q7gq^{Pl@%}(r$_?l~ zi(-|mYWQccv)QRS;cV@Ec$rSCTNl9?S&sxzA_8c578sh#in$v7dpjUDbxyR z7V9p}3N>L6KF6D{CdZ3IG~#fKiI+*Pp16@8kCFXZ>*SI!1!obI;RxEu*@16lO@M!@AAtRE6PRZ^ zL79f>rY!GVu?o!r*P`Va&a?_FZ~Vk;ve)u_1fCiD1shl0`!{O^#eQ1l6!n9?KdZWY|`)VFPamnBq#CEBbcg+ocBVQLdNT13Zbf0Fn%abe?snC&uo;YKa1tj!lxY<#V13 zf~Y&__XVo6Il)UhPkxB0w%AsXnY!R9>;W4vme$5;qv-CS74FRF?K}4G(Col%a6V+< zR)L+d#^x7{$@H7Xu?AB`G@Tpfd*&-5cGB$Yf@d z!$C(4r-Sv`+Q3rotaKW7%Ws56AO&TcW(!XlgH~YR**ESE$x+=B66KqN?Twp)b;C!c zCEEXjwW2-HGAYfBm6+B@pTKw1Xk%~sjxdLQVS2%?m5z)06WzZPq$qc83+FM12U}>w zff`oXZe)HKK7vzC$H42<)|k^+%jkE2j2BO1HZ%L3Ip%$26%2)|ky8x}{vH|$_Qn1r zai$s%Pe!aBjk3e9-!hm=8nt=|3{r#l^klv_6wa7D^N63(f&y^8`m?vgDtF0@m#JK z9LGMUjU;b+o_fl{Q^lrAYdzIEQOf6QF%@AOvn8BNHue6^Z(`?&jO9k4r_GLR^K7-N zwjnAUEn9R^Nhi+ZmC0_7_1rwl5ltwCWCO!L@gzeHu9lEwsDgGRf>0xDzw1f*8(=`F zw|9-onzxIJ|24gYJMNuq%A^J$H@LYz4^MGERluqJs8^uw`IJ}l;sZ@iUK<7HH za!nWZ=6izIsQiR1R#Hwbnk5Z$9+Y>A)wB`dLt%aJf5ES$X=(SAw$3tiHKZm$IC6AS z#dLhBDQa69sYuk5uLQ0c&BPR@VI&!N3t$V~w&}xM~)`|=LpB-Y0*W79N(EJjpRkDQ@)f#!P=-IWWdeM+Y?d> zXWxr|mA41Cm~gq9)DHLvEDISUxpW`6X9^XZgG~S$*{&%?C)kuRa<&MxNO zg$bIXHi$=U9Ri=DiN)K~`@0Sn-p_i+3>PwhXTUGISkX26ZltT8A+NX3UdG|hj<2{=cQ{g;$9l_+3v&x$kf5E|8{%Ui&FEj_Q1 zvsLh4%VS%og`LTN*w&OlKFM$EEKOHU&2U^c^-^u2W=v!qDJD-UOo2xLJ<)`37D2$A-rAb%qFnC0N{+6;5Yq91alVHk9;>Y@n%_NZK9`1=my*jXyaXk9Ps?ZyzqUnb=ClHmVK~!qwE9b zM+@1io`qr#C+f-?x4UvZWssKB|YCT%@`wnpEXbV_Oz zsu781MDw%5ys&tWWuWZyA%25AV6Ci>aMl>+F*MZV-vKWu_RDby-T>fgvXBtF} z$Q@y#;e)Zhc2w;_EY^;xJq)>2bG{WUYP02Id7{!EZ7b&n`aAxX?uRP*+XIsAn%q8s zkYCw!@Qu#d-6x(j9%g$Y)tN$DX0zx` zKcwVnV~l|RXV4ctgCwK3)PLdHfI%q*lu@Sy-Q0O*m%ooECqjfOp>!qeVW1Lv)+W|I!u- z1*yNuhoQ-MB}Wfq6x+Y(y!bw&Y2XN(<;{Xm;!DGI{d@RL#S0z2wD~AV{mtf;K*)vG zrPh}^dotZgruTHsiRY;2T~6kqS{nGuy~y~89P&zr-NJIBkeL*ri}JZf9v{8}9acEf z(kYf_-mlLvv$bKcdr5EV75jH|gE~O2M8&k7$u$Ew`9)kS)y+F-6P24_1R5Ah3*4ta zBR{}f2r0FPW??sCt-$K;#*s=S;^^ktk=IsfV7~^I_TKk*BTDl{TB+ zt1i~Pa3<-BKU=s;FO@X08C}A20KSb=aLhJt2)!P645BM93K)G9zLV{*srSl zeSJ(lymR#{xg*}f$1 zgLYN(!6%qB`&Zpn9w9%Q*H~KkgHDUlgI9rO zzEjfG;&=_x36=uCa=md2@LXG=;m}>K9AB=BrC0|C;={O-!GNt;|qkEt~~5 z8EF#HuJf~;TcpXHAy!D-GZWU{{*mHup=rj8!7uVB_%!sCpC^2$hHBM)`-8=$Z)^~5 z7?{9Kcb&?NLmJ*~CT$V3)r3AFJBAW9n~ zXv7q2Kk;#}r>A$k5!X}SoZo_D=S;gGLSNN^1{ZAtkP=tYw7{pe1Bi0(E|1`Z=t zHBfse3=6goOa)reM7)e6oo*03#I|N01+r~J*hW$Z>b7N$ZFqEnaLu4+*2Pj1hIZ^@Qb&Y*4NhEjJ779Pj4%(+BUowagOJR#eVequ*Un(d+|1?d_HK-dO|(in4US3(GJX9BNiMME-O|u_g9NctCtRJ(&*C z??NX}fMTq(Tu)Iy@hXyP?_}R8)bj&^4H`k{Z3>6r%H`U!d43!494Eu|*_*;vcuuHh zQVq~m=-=yxOo++V1{St}5k-Q-tU8U3IG7%h=5(dk=t% zj02f~b+5cfmAr?g$_T-ow7Y|2k?Fosw#}jcsmt~B>08Tc;h#Wfe!SL3oGeyQDocY@~mejdB5m$tc}_w-BSG< z14T~x+#yCSP>R72_nH2s?6ep>CzJ!u&E%EXOOQlv5^rryxw+V;xDOa3b_Az-DeN1! zPK+@*ay9j0sFASAVl_7-YBSmSlcO8LBQXWE;j6?-K@(|pnG7w#x=ceWz;uRMp$^^e zR!OeR%!W-~I@me_K^;Q-BImu!VlAOpL5bOkl%YO{dRX7l9fDt(%PIl?XKfEqdj zZpBReLaTvl!&DFd&JQ$vAhyYW(5d>qpOtSYdklr>S-vA<;_63KWj~qCoPqrEYMEv- zHA=M#*Zoe*QoN+rhyM+-30G48l838Nzln1Rs~9o*&GJ}U2u{#h9o6;z3mEnVRkjoN z7AdbiR7zqE$y#P6)-89gk{|qKeFUj^Uu&n}fu!@q3|rHbwxHQ65GU;QtV56t_MzDt zzAwnwAZ?%Xq=WNJTxf@ynJ$7TcBl%~I%Z zrn{i0YPnF8_*vlyZPeQOXQwC7A54|tnAlpW1rf+-N6rN@m46{lXO15s7lfc zkvni@sNQlZ)=0=JWOpio%??5qEaii$38Nvcx**?q*aa0h* zyGqSMujCKnOyWLv)qEBIiWQjZ2MnimIm+2qtW3&HmK8aJ%0p-hFb$RatT@9 z_)y7*2V(ydPH@wR3~w3yEY#nud8U|9oiH>DY!zr9?QQJ@LmC0Mw()!`-KAQ~dlWqm zsbM=8XE#D+kqY2UODWSn=9w(3XT)CcI_CdpJ(q&(m}bF3+{{$x((wn#9Em1SaHQ!< z{3N#3!`Mb3I5Hny73?2OC4L8IgHPmirksC><(b6?HfKyyH~A0K2;Hh)pQ{)vQoh=} z)N^vQd$4h(oaqq?Kl+YGcIN#a`VeE&o94EZrh2Q{x{EcUGcBpUda^ZwB)gF7?h(Rv z(!o#ATR2a-`}`y^N4lFdLjIuNiK)ml49#n5YoC{}noZMv?TurcH?*1V(e`n%KJMzs z^Q2zvOY{$Y13Dak97WPB#!806ZYHc$a~g#DAXC|gi=M|DYh#FW z;&uBn;e+{5?4rZTSBqrsu6KFAbZDaD?b1_8jme=6w}isoq;Ld2}T@m>)xKU zSiTtCPpFd>=*|@++zz z)1K>RJEydms3J~U;D3R66X$8A0 zJ&gU-K}NrGP(i6+BWP176_^uBWj69l;#a_&(0FT+_ZayQze>Q-Ht7Ex?|iwY`j!ex zwxg;r3l8HKf~dA6zS_~w|05r_uZAq^$j> z{f7-gD9_)f^k}NDuHn0J9eF_=6&-B7$JA&0`B!;cd)Eoq`TM|>Kp=R6J#McG)U~1B zLiGawm+ddp2%t7}PP-=^_mAd}hGsD};(^#S+jNIn9?KSb&j@F2KXfncYvXP@$vD9k z;RiD{%~9(FUkzxva~HryuX|@1-r{?qfymTgmORfAC*PWIm*P`QZh%NCGQ2m`!?GZA z@IOy1yup4El^EKQ#_&#@8O4pq2jOGzISdYeFy!$jB~Shaj3R$nTf%XwC3ir31a~z| za`sj?$qu}fycu-Kx6~2*Zt9^i3vW&Q^j;3N(3;xLc?BW_FTi=BDbg+8O%n7)cbxPzTf~3(Pb|71o2Sg;$vh;e&)Fcvs~Jpp1~I`U@;{kUJi!E+8zS%=io#uicE$oR^9h zYV+yYjDDGm_@#W3^0(rI=`-`D_HR(iJ)!(8zAK$zOpw%>uR{U{i?<#>ff+)&Lz;@V zL1W0%Y`!?HZ5%#Tat9x;48ta<{P8$-4q73wSu1e=a9wq0$$IfwjBlPoog-bMO3bdq6)ejhLdWFrUMX zl#6jLxJWHSA^^Ksu~@dlO-;ibIT}%~{-R+C_LkNuFQBT~!@xBfrFI$tvRVtr04!~VelwnpyGK~6-L3S*y~g!0U5GCnxr8F|UhZu5 z2-Tp@Lph+Fg5A)1vIX+tl80h%6(0R2=i*t0B#8$gV7=BsaI0oHl1sjC2KZ+gBqj{2 z!5fmXq&LJ~hLE(L{L3nIY+XQUlH5)78gQrh0UorKqH4uHqGR7>n2i3Cu1A#$NG3(c ziq0V4#HVBcdO zh#vx2c)M4!*#~f=d zsZ}$~xRAVD^xnb#Il>|VrKn0SgjYd5L|@dInJ2j~2N}&k41Fg>OjDVPDbH1L_>aT_ z5smBzLi|46dHh{?(6EpoCk7Cv0z~5ve6DmAvtJ9y`?QG)m^=da9M=S1B|MU*8m1A0 zfo^G)WQ_QUl&YJeYSlAE-SiQ-S@Z;)7kC|9ql}=gPCfOOc$|2soRbCrHs(t+Rr`S% z$~H%r`Z9fzxk$Afn+=RyGnp>v3fvU+N&IMOkfopbFY0U?L>G}KIf!Z&Q4n;T z#3Y)ObQXtk3OWR((bkJj8%$QJ<$(Dz&?@gnVQv7XgVV{^bpNw*HEw#TMo9e*oF<6L z0nFvrTMD|2CSD`a%UtlUG-s&=s>OxX&>9c`uVn!)Ut7t@))rH{or(gngRI#`h5)}ZrsDFx^B3UQ7t=7=kVgn*WtMDo6Jy3*XK75;SfG|#c zmd&9ZH$KL?%u|VI-r<}Dd^L}v0jQI3&n?~*FIcR7$oq)RC;Z^gW?aNSM?V>DWClK# zaY!5nUzT2QoQpx(Y~UbuhprDBk^h|Q3TvpB#Xf*{_HQr+SfLoI>;pS#ca3`D0%oRa zgn0=tT*&|?I!xG6h}fXOU!zT;yi#vAyJ4G2CAzDYmFhCVZP`TK1V=K M)X3g+4O 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¥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 z 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 z�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 z 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�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 z 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 literal 3257752 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%0A&YzOR0LZF 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 z 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≥rt4je>u})@YtP6-(zPd&4{_J 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Μ6{+qy0l`_m$K0FZ(Vocvdnt{6fXZ(#Lr&;wZVg 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\Dw}FulQWLfwRzDNL*On5#z!ir3#eI!b!))TyV_S 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%0A>QG)5ssbk2c8eVnd|8+ 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⁡Lr89ZY8J*iUCGFNBNSvses3-9%^c9cDJr6VfM zY)OWrTod)a*g_V~;OVaL7C**j_B8Wgx*Iwyg@uN~YWf6q*l6fpt{wGMW&er}!$|Ee zs6c-$Sjhg29wqw{J5ydoQjN82St-tAvtLyY*!O`DU5D+(-$M-g-e@<*_KKX)L*t3WHLLWwXr2}M=_HT5Xd9=XB z+7JQkyYM@6mUVcZxYnxy(xz3RC*Tn#S11h18)Z00{zb7})+J>etmuDZ8EwtAu63mX z3s)^Xi6}ww@+7uM?saCGR?|bMf50{2zkG$=>(uu;AK06i2of0=^H*?mLcBg)FQsL= zaV3q7$zS9Vo~7hXV)Bwz$n(Bf?oP%9M}iJa9M?o)cthB|;;>>hw&HKKddgGH$=JY4 zBat1f)pycK_2GDA+!&v{$9saXa+^Z0{T6w?f-6liHFj1RVe1pj3SL1sp~|of3@xld z-bO^b0D6ObKzq@(p%wn-uI_r8?Ss6`)FnJcRImqHd2t`sgxZ)D#=}xOv4yr9sE7(! zNU0iuEQ{{Zm$d$D>ChhC2zKB%VuiIHwlTsZ#0ne6m!S(K93lQP&B#d7j)PYGRQ4>n zDX|Qip>~Vi$QTg)oHB#91=!{AVpxywm7>b$g+=;SI0d;2=2NG|#vm+x6iy^H z&h8PZ0)y6uDi(Rb43q-a<(x}!TekDR)CSSou2+_ij{1BsJWsC8Hx}>GcZoz-eZ<&r zM>ZsOqMga_^i}#Ly?}Cg|CDzEFYAbYkL*{r`3{PI!K#Ln{Fkf3=jQ!SUmUfG-NI9q zpYm^7Lp_*!8Pp>Fq#w&orDY*XyOdejz0FtG2s#GQv-!n}O`3*wmczuF{xJSjNs=zg zwIlWDB}^in9vRR5gY`iD_AN$7{yKxpt%G&6t5|y>esx(Z4c-EtxK7V!t`yP0^+<~Q zH8mLcnZ34jc>V4A0O#7(1K*FEeLYD_2bK=6vZ3`OmVSf;~}B@Br%7 zH?=LH*I0aV3Z0H}ryG6kG_zD&pAvN|jo@4A317@JLK)1bNW<+V$rBN5l@*RMeTH}C z1mh;+Cs$IFOh*+`x*I61^@eF+0_%`xhPOGd5o@JJ^g(Y0D+8-q*Pye^6X)U*-^mX| zFM6rPaKvK{FoQme9n7Pc3giXnTmKHsDPmd;_#JGZFUT9k#;%q2&H7XjvEyiKcb)5x z6Du2tE?7KPgge94lbqNwwv^U7VlX!X{qV95lIp_Dh}D55*&hjyC>K%8aSIf}#yNHd z-^=S^7c{Y)%J0mdVKt*EMLJiVFI*fl2f{Nvn?l{O025$rdG+W|wkNJ*?uNkRn5i$b z{|TqFb?ge+ShxV(yGupTSJc4qMlv!7U{OTEqyWkA#FX=P5dN2QE6>ippQJ? zo*s@Q)$_dLhJ$6c|Ak%$Tg4w?K1vsn!`Q|z<*TAB*Lijs`%tLnYKZc)0mY>sX1g*^ z3l^9yiL!A*o*4UZPlHjKMBdjVoU2$SfAc1~sQa`0AHUO7B1FcHyDKP}Y6ogJmaVT&F_huNT4iuT0~rri zP($vMvDcA*v+ZJ~kN|HaS0EGh?%Eq_KXDiQO|62XWA&K2><|pPs)11KI+zN+C^yOH zHnZ}>cbsS|7nWy4PiZPqMm;BwV0YNMVvi$fo|bq8?{obuQ4{Z}-_v?B!_*Aw6L}4r zZ|*9+=ZA;;_#0=|;P$aIOKl9MM$XwLz|XGT!O3b1Hmq$i&2k+KO%dCHsP--V1?x&G z_N6J)co;h1JAmz@33ihrQ#qf0 zol4N&G3||wuv^LwD#(8_mtgwAM~hji2liBU=QhId)CSg7n46oS)_~2K1b9pv7tEw? zQdZ%api3>duJ+@?0{30_8+$9TDHta_12Xm)RE-_fPo!eZVz8ieJ!YVCm0Cxh2tQZN z!8clEfd=0q(+lU2rELnI$bJx~VgX}Oq^|FwQb45%@?NDSGVi&Fo6G#gD7iP^P8j4lL@3N;wH{W&I+N`R>IT2czv%5;c{~v> zW4?ji16`4)V1l(_=qwnl9fR9S{t;>xndV-{4aUo|z1ZzMN8r)&a%-W4tx=#r$zUD@ zZc)uCFJ3h|fjW$lj^-;W=lrC7mcgP~xkH&{9qVEJgry-;=r}FnnitB1@ugeQGuesQ zeeZlN!?xS|N@+vX&9SiUN>$?fvyZ~{Iva3&-<|*fRpP*jY?{A%^!s-ra0?PTi}wi6LsPks$ZW zuS|52Yf`JQN1i3ZA+nfOoQly|nZsfu!7J@78_%?|#%Lk5!}*sIGVJ*o!~o+4H9C(# z`@&S|X5c^H4Ze}E*yybH!C~N@bG|$$cFB}aHBz4oiGCl-VE<0_gazoAv%xrQt^lhd zv(O)2QmX*|q^i-^>9R6%{E1|Ka?#$FN7^??at-VQU<=JF<|G_~6-#MKj#86eKn#ve z{n@wr_ejdjM#I;lUayvjlWUp3M+o;!doK#+7jbR~Ixs>L_ zx#0iox2R)83Au@2AywoInk6+y`}Qx6ZA=kiHFA=z0ul0GX-SL`rpOhNo-^;LVd8GM z$-a)NmUTd{uATRP!fqN)d&GA^9_m|wRgp+=$T}SiCLMYueYG%9y%LPXzp&NTMp?SX z@Yoh@S6rEe zl?8->dVh#;bWC*^bsgc*bH!`#6pGVY8uyU5BR`sEd&!+JZki5)g;IZJ18O|k<<|JI z&`x5h%cDE=yQJ!!O^&eFWp=4Sri!<%Fv>DCI$rt3mQv!dH=sTB7}mC(lV{7rHK*Rq zu~)c8^-<|SX*2^LO;wcFs{7z*y09iMvB}3_f@IU|e4>7z-b?j2Y+OSyP|wphaPQ<1 zp-Zu|T!LkmBSj0Kq{P!md)UeSFKHz_p8Hy9?u(@yU9r?qpH)sLb@>@+D71A&rHqh6 zt!Aqqs;m~LkAjzCDXhLvE zEZw=ryAt(-?&CJ5dthdyg*;Q+D*qtj)L$@9D@{5SNURk%V4Ku1IIA%JDvVcH&13}L zD7*3LLK*B^I74owO{Vk3d&JwwI^tO7F3RE<&7#~WJq`J}{>2|s{iKsjG1Oza1#EOL z@h(%uBLoM@7lYLT>(uzv{z4|(Ss_GPU&Bu&7pOv5uvL`DGPS8*$^&vrtdh|U-Sq>6 zR~;D|WyC9r&=F43UaQxUKW&cEEVvz9Qdh#7!Xm<%A_gx+;-jDNugX2YO`h)`lz2`> z%m{ByvRukv#zHEl_NJ@KaqL&ey3hovLv$jwaYep9)&2|hz#GWN7qMQvlTSO7^4`-`wFQA{Bv2vyNq!Smscm3~^mVZTng|D(=42J>81&N| z^?{p{^?`p)PW312W!dxmLEB=vM9zhr2>43ug#EY<&MDe^X)e_!n1klJB*% zzj{eu%5EPpMjN?HW{6qD?%$= zqv1?2P_8D;4L_$Zh%+#|bjVr`_HsOlG}RW`$`U3=5Bo015KD1jbG1{eaOc98f-gdm z;6m|^^wL&f8-v}$JkV^NC|3~`M+mRsZlLvqv$Q+mBcvv8HWY0GctDE|XW5;f#puFmQq^^R}=>X8TBAYrsth`wgD zx2H3!(7h1n1`kG&SSoHw7~ z$RvtFiTGl^_{b-+0r+dhxZv1?h6%UWw&p*QNc%K+lWMDMLCyGD_Pw|X{F`(e3=e(u ztrgpPJu8l*6W9Q?hIPES)4o&rO8&`;vS2&yJZ~G1)s`E|e@FzzsPDLU<|0~Cu}Ca~ znu3yc$Vf&6z+};|3iLVpq~6foUFZ-Z=y;|EF*7uPtQRtbZ2AbfntT_j6Di78l9z~a z?pLrIvp}hVdD-fj6}Vf}GljJziLN&XZ$N~F}*x&8~SwKnR%%JK{_vc12>INaf zR>luar0#{5F&kn^6r?AMS}MJwgh3Y z>74S|4n2+FKc1_B%3zs3T|Qv!leWu&5TT}H*WBZ{ht4+aD+Ckni**n;F-K$l*?uLO zIae#)sX>fI31*kWN0~5wq;~MX>G*>DmhnUUgvKb={mOLqf&s#EH~VP zld2m_T+8T0_KAKF{)f$AH^NEot{g8L%$MK~c5Y}m+YD@>txWCMQ?L;$>Lwf_Ig1tw z54GR(G)&9p5?Qy?NLn9lqza%Ay9CrEw?vN;e98wRT}slLKnTsqx|S}^W>d9ZvF)%u zN;M`a-SDe|sKnESP}+NW-ey}iax&Fck7(bBPmzZ93k54}Wsx&BCB#GQ-gI9G*#P|4ga zW0lpNeOa#-y~!phuZZ81{c{5}KU;OZde%mDFjEk^nmv&aD9a1C>;(&wwcvTVMJVfNnzfJd0W-Jnd#go&-maP7L7>}4SuY#p6sFB4YAI7 z{=|Hd+N3|js$f~(Y^k?2-e^lE2r_ot-aT5*WW|~yN>mr+o~^WYj#TgkD|9AtAz(AK zk*XGXT)e5F1mo56%46<7<|JO*Jp(+IN^z$pM`$eZDe%oT5v&iLwO1pI*b$wU9wO4F zH#AI6=4MDH`+U4U{v6EkT;rPRUe2c-H#K3M06p7c7Vu|&vUO+Tx$bP1QObTxohC!E zVdOD)CD{xwg>-9`l@GBw;kKZy_}(8P5yVYR2N7*?9%3QzCxm3&M=T;|2VW#ANmqS# z&K&w?v}4aw?dfTL&Ymc5MQ)Ymj#TPJVg)9j%*p#jtaIR)#mQ&AcC6<)fJkC1{>78g z4too`%LmYRZH#r7s)$uVXRyx}g3p{eFdi18J^UGdvUWx8&c^WCfy#0}%|T8v~x5i1KgZw zHL*jqwmcu%WUonkwF8#;Reos{w@Xi1wJlcQ$)sHQrP%ff`_h`HWivC4qegqI}y;#HsJ3 zwG3Scb(x;_wvHs!mKfyN9$V}#%4c~-lZA_3(pRt(V_n($o=oMPut6NpWf~hibE!P# zu2dS{*Kqen*E8OPHKVJ>_r;Sanu$i&A_w{sbov=grbpIOjHuD{b@@M=9To0MZZM;->Hmuv;eC9oSu8Q0+;T(SP!Flm{qp(VqbF zDQ>FcJa-5`EKa8GX&bZ4EIRD^#joSz*@5^yssS@E@jYxR59Nok7m(xaV4j8F7Mo&! zNe-d{Oe2ETwoBvlI%QPNdlhb`t=6*r$KheD3KOR0at z9dWK?`GBO5ee~jv{odWSG12nW8>6y+yE7QEEEl}>@(x%tq!)TP?WpO3Iz#@=G&^Bt zn(kVVf09PyXuN7@7ut69rq;(6D416R-un6_Mbr4F3yYXmc+tEigcz0?gf6=*M$T5t13{wc8mHf9Iwzd&_;0e#ha zQ6<<1Ogei&n;L=S(8ve%RJ4`R1$VQvAYnTiw2?Vl1(H(F>leNCbQftsGYFvBzz#S- zzpRE3ySa(1(OxV&;jvx{<@y)Lin&jNbcMENDK_RO^H<_dws$BF7E{JV8#<~GEy$1H zB4Js1h<{4;ryTNYwVRR8`~p?crZWXSS%;~BwYw80OR#iKQ4=A*R>E@Q=vn?Ge%94k zJf?2Lr&BG2{>pl|PV_h-_fKIy`ykn!EG7?j)d`iNWygLn&G#YOA`|k96&Fw0YD2nSl z!v`FdsF5r#pP&vf!=dEDr4MkDxdLPIj1~)YyR!?d#x2ulp=3q??sU9`SCwY=D|#PF zw$%oTSe&M~p3F#XH1~qN!$c(x$k~?YG+j+4jpOR6kUiGcA}Xc9NBx(xJHOX3fXn0% zU$O1^av+shqTDgk;RDUdd*E@cbdYf#R|nEJ@V@2>AmBr9O>wfmko+PwW2ectn5T+D z{ZFZtpN;&Jd9k(}!`-0Ya@bNQS3UGw_@UM=*nzI8zJjCR25P8g5eI7xnHF^S>;ih5 z;LsYS6_@ugHQkr8d&_ZnH6A$)k|^yDw4s{h`WSiQI9jS1t&rc8Z}@k53~_=U1Xgov zr7w;{MzUunSB^acaeTMYz?X{}+dY8lY^49vx?@AB4%$=iXMbhX1KEydS^u+j&2+(U zT!!tHuwQ*fU*i8GekO0x{|Gx>TX>ywdRBpf{+o0KqKoNjC>iv2jHI*KYp}0th3rGN zvP=Aacva{S^pHd2O~hwxBoRYB=l@A3)CY{L{=w&?jD8ntxP6QG80I@ZQ$^5U_0Ia( zm_eF@rXscNn?WS;j5rC5rdMgrm{-gP@QfY{0d&VbW^rZvqN@;#J}mkj%p`B2zT8*) zL7t&~HA=?mTkjE_qxt5w2R-+iHi)NR=REU!gI6R8J~kK(*Crq zmPe&laYtN9LQyG)wF}u{b)TNHa zwx@I?8*1(HZ#pMQhvM(k`Dz>3hf;FNsQblh;H=StwL&X+mDMo&hWwi?pp;Rrh%A3{ z;W^N29E!!D?~ulxo;mIzI1>c3=CVb%e+L z+q6a4ia-vsX)jfvb4M^&ekXj_E_nzhYChp#4mN=0xpUMx(RWH$tPwKh)e5%`b;(-o zo4n+^_6D2GuJ)1Izq!NdFXn@42Hwe6AYM-%W98J6(1mlsj`rzbDt=VnO_KKY=09YM z`a>G6zY~B|iL5QYM%2L}u^dZ%^|g|w{t8vo4#|HeHq33N_Ch3%=P9MwdvGI~`c3j( z)`q&`b+a%)eF}u8J zjxTg2;ZXQlc!%?5(I4&(?7!qRcA7Sq&#*Zt-P1$wo-(Na zR!>nl!*`rL&urDE(Fu5tcVxl3i)qUwuQ^9Wh$4M`^+r(fh`y2_`0x&#Iu*|-`MK>A*Uq&VtPhv z>4n|J;U%_0zOC3*N5>M&sqs=f>KH|H%gp{Hfw|5uhClsQNjBEvha5ebGs4`(w}Mu! zc zBK!gPfy;nnrL|y#?TE111QY9fYKj=xV)+85vH9^Us7gHJtH@`;jS*Tow|p>JlFWb+ zXJ2t6MPN6DUP31=1Z_c*N`v{JH?`N+0xY+E(F?>lU!(W}`iqsO@`a-ODx*b-&BkqU zwmk*+s~2Spi3N{?@!2)OUVT7tv*U{31gFR@i5p#I5l4Qe>zkOMGLHZ3`-Nd3+xZHm zrc~XpdF*dTVrY7B8i3R+GA{L0E)ad-sxKAK!ERDlg-l{7wv{c57}Eql68Ib$ zVhzn87l)s~W;TI6YkSLo4nV>#M!#bO9IoNSD9n(0%p<{yegtecW{1H zzAGnvOL<%99lMyF<|z#Z8#S_~;Dwpf+J;D$(atpl6k@)3#N%XBrAK%jZ%xV+&)@}g4}Bq+W2!1IDl->vZTYWs7Wx~C zm8>k+H1B1K1xEyNSc=NyO=x>P$FV!S5_uRJu$2SBjpd1z?r^%8^ON_Izn zCAI~<0nuigu@8NDh=i7CSZr%dd6@?o#mRvup>mK4n$T2qDcTrK;`gl>#J-R2h;$_y zO3k#b%3F3YH^DO_^$)T`sGr}?v=z>QVe*mqOLP;pbL2S@@tkvyk6v=kr*c_)^bOHN z7^c0Bb;kGFS27Gpl+$I=C_|J8z7|en&Gld)-BnHN!!)xG_TsLPyw_+&Wr4|Zj2);I zu-)kzMkVVQ*KPiptr_FPO5mB)3ObG75@{3Yl2b>$%C6L_A~rJ?`pTv8EkJ8xn30fQ zS`6DB;N7)ewsFv}ab#Vxocc)~0(aY6Bu=Dv1p8*D)5nDmns)=1k4y$K zJ;vfqt|TkczRb?*NAO)cAY8+f=^(A3q{@1R*4~+i*_%XTj9(sxwuq~^cS4kE5&9SI z_dfvN7%upMQI&}~h3S;Mqgcd6F)z^@up^i&&SBQEA?W5)gHvQC@ptb46_=^EI) zJWj@dH5x=sm8fvQ=qvy2teImD!<>WoJmP?$(B-8&>;~Fmu0;T(TAAccpu2v_+7vY5 z%Q#msMI*0QRpWNygM&x3HNnO7DcTW(+J4Ss3p$-EE@H>%&3rzb&6ZW_X~X5FUJq_F z-iodggZSgxgy;u7h^O0gk}L6V_(`?{cxkwk+N0%pucda1dnsCq_xNuI= zb9sQUESkig^saUerD$x0TrH>)W92T0{5INrHk^bR zfbX}fN_}n)tjT8hHz~i%_neK$GmaljAFQNltZ>+SmZ;+yEEbQHg+H)n)N^}PJX@#- zPvVR=KKK%)XD&*M*;~TKpeCtG2RNQMtKJMEu9ZF8{1%K~bQ#nu8C9Q^xS-8PG23Y{&-PEqI!Fmy$$B z7)5Rg>XR?YYT@2YJ?syDqB79Z$lsGPwDiE61X`l^{(W{DQO)xj-&67& zTTD9v=28o(t@tuJpFQn%((kjcXs=C2`KjSQ+@y!)n`FC6@H6FvdzyAn*@6f7M&YLzU-Fsyu~1WeCDRYl^4nAUg;ShOZs+!4BOrK%2~*^E~%`UF(qlq?GW1 z(T%&F*X#pC2;Qsxz9xk-5$(m_Q7XfsxtXVwotsOSk2}H*hwVJbx#<6oo@AhI3PC57 zC3!W3^jU1Z z)mPXH>iWV>wwZd77!*fPEhrB^B(c0aiXM&ELCmSO)K_~}#>q+(vd+qP{EKCRI3oJB zcs7DB&8@|LD5?JOo~4=#&j;O@U8>92!eHE5ah9Wm_`x>Ozc9lrze#-&S^0cKBA2;~BZPI zEnSza)8Q<#7@Wk8SRq@Fg06GkI^u+wY1p>Bp3<4%V#{_l(KXdKPD@7Y+8j$cY=CDk z$g>5>7t%gGm3#XTq?HSYCX98wSSUh!_LM=?#Q;{^G)F)QtGFKnYl(kMljJ&a08e4v;17pwH&{ zdQFxzC1=rupZG)TjC3Qf^XPcW`98vFmeCt103%P`jBHhr==$TOXjDhZ-9-s zV4r4eLoJc>>|XnQ$>X3(4~ui_lZp$6A3nODSICZR%%bI90*+sjxKL(wi+$S9$g%kqf@sw>sW)RfSAr zWq~401zlKl*b-MNKbdJ&M^l zY$15(Cf5|YnK(i?hjwA9MYA|Guf^)JRUHGperAtrzjDuU6h;7#e}Hrryaxn2-@GZR zM_9l$c9$gw%?2_8$Hj`mW9vUKo5ZNr)DNx~_e=>BH7U(HP~U4@)1SGTVX3y+W+TvC zU8X#-UZXO=VaH>+o2d%iC{Og&BC1>Of#=F){%>Cyz?#Pi#|fLfxoEazcH{~b)(kcM z@U6sGtsG`rz}Jy>hpIEzq%E3)WZ(9%T z0(7HRRt2&Xsd6CT@J-{Msg~eXWm8s&+Nwn1m91PL-8S6woj&R^abvS)GBfE1)FTEX zL3CYl6S*?ut$5b+1N$lN#m0l{!b~N(%rG%cImx%iZ+M?Ee=hAC`i_5A67VMaQ?e@2 z5j4{PO*?9lNm1{K7V1j>67Md=Lr4xdr7^BM&_iZLJN<-wM|U8i_N#<->RkFSwV!fB zJ5}&ldd1;*A2OPa0(Zbr{HSn0zIkYqQjX9#jT=Pv4S~d}`a{EPTsNh#-*PrcO+&TV z+D3I70L_F5J!1{pL6^VIS=rUX4!IxKk$OO{vo#6r@eBj)ondgO(q1X2b$1|l9_Z%0 zu2(k{Z>F9I{tlfmy`Zy0`?W}?fxVD7Q)VuU^-^)Zqx3NR2N(1`04oB&jP*+gvh$s@ zQIqg4+KpC?O%;=Ql5seLIa^(~e3k4jRiPVl=ji5?Er7H216Q$kY8Sc==%95goPsZ* zsv##u2};F9v#ptQ&miWRe483&ui=;=<->Ha-8I-NfQ#k{R6XB%6U`=p5#Vb=vc&j@ zt92=7;4L4oZjArU)Sqp~$@GhSl@(3EX&#OnXgUOpmUG8`HWt}#=>yK>XmkY^NU$0wQNbGF$ZB12_q)J0!rKa9<% zKUp`K9p^6RA>=LIheB)ajrWXDj`kaO*#E`;qZ6M`>AUhW0fXp3PzQse$tn4wHcbOpAP zU4@@Et61K0ovdM$lcNB9r~> zKVW|?M%xRHit96CwKBHFI*UIy{*FxrQcN-R2N>YH5_VROhpF0Fp+p@edC~6hJiMV_ zpysp7yszRvAhz=X{13Juew;kq+EE^@KZKFkb4Jn~vR?EGq}nTzC$K$CE?qHulzvpM z%dMwAcmdjxjo0pi*+h<9Eym|LO4sv`Wg1A;O8ck^==Z$9y$q$9e)v`=yrdR*4zg2i zW#JjC$K4PvS8>leWw~;FMGtraey2(yr|ei~M|M=+2xMWN8MB0Z4K*;vGZ3Xo?_%2^ z6YukLM;g^RI3-Z)Ml-=NQP7(yrKJ0wQ*6o zfLfUs)VWD(xoJ|m(lLIzP)eRiz1IJt9;r3)3)p9}v(gNok+%guj%}t^vOV!QM5Ow zj@ievE0lCKk6GvocLdl7UzTjMkAO>*L^Y475qZIJ7HjQa?O025jLt6b{jy$&%eJNA z9{v(NICIllUJrmdKS(Oya7sM^2S;jGhf540<@jxr+#kz%hpgbDy2#JkBX~#Js z%|9Ef7R;vVI=V?$?4z8wy!|WIab}3ih>nGSIqp!yLXFZDaTnV0c7|KHM(R9FrY{Qz zK#2d7Yo^{ojO)@Mg4Gb+`Uo7vCUd*3ogD+krt$O9Prn=+t~-^_+y!_WC2mhdA6H6z z8;NtFPgnzQWAT=j?Vp$MXTo#gifCgFi{*0=eV)n`4xrjFZA3d0$%}DySi6tqmh<2A zp1zwET4|@ebqZ!ijnWq@->|N5h^ry7m;D8Y3LA4{m}%Zd76^`kA$(V^PFn1?w75VY>NuZzFscGv9lZ+6YVG zXN0xNQxJii9zVcMx}L=7iZ#EmN+6%(^&Wv`?wWKqWewHfvSqjO9Fe9z5dX`2ppPep zGF|9B+V5m7b_ZNSMigR9Z>nkTHN6>{o*W2F*J(5dxrhuKDf&C&Q;1tT9V;?ia5tUi z8&3&{{^dfy3)6*!ebQQ;j^SCbfx%W zXY`uq;fIzNQRS2fd0b40T`8QI*c-~VJnLa)_CGUIf zxNSOD*;5-N(^|le{Lg=(o(gJUT7F|XvPlINcnfg!X41oLBzAJGw8nzu>83gYAF&t3 z30#iCgJ$5W>%4dgFHM#5y@{edZIA_ilcTdl1g5a9ot4=g^mq3S@fLLlQ>b>t@c4$( zMWcnmQR6JJaSO$2%nR&Q(PI*L>LS-uMEqYibEu_oj9s_fmv~-WQB;*_BCJnP$uWsd z?X|oc7aX0ZlVh5`; zliZI%C)7d0g?2VPP=$2|uE78KeLlvt+&T=8VlNVd)p^nZY8+h)F@=92c3NBiK&n*0 zY5WG`xmRo~V3wN@3ECu&Uon~+S)6JfA2*Adr5#oda^L+_@h@KnUL_*Hc48DTKpIB9 z5PRo7wj7t+>&MtO#sqjHc9Z`adh4(EtOM_q##|!usa29+u^f4Uqp2O%*TL;r1T(+z z0|>yHdK}nb+phTne|z&+6d7d-PRo(_RB@PVA)ilQO>f5r&^*2q^MS-r&!TbS7-pat z;Qg#qpNZ(E>p?e=)O3-**AVXs(zgnApxWlt%j zG1kamDPo10E!975F8IX0*K-@~_8C2qdkR|Ve--=0twtsL&%BGuXwo4MHIEK#f~P|@ zwYFNZI>NE6@ILAY_=MrkIntlX6WQTDk3248y*nHixiNg-yqVZH;b+;^{0F51|HL_h zb(2%*^SX!5HkyULuyf>rY&N(N=)qa_T6~~FPp___yR^O*Z)#hI&jtSz(G1^$?tqRO z@QPlIh%}C)v~r*9J^q@+1e;CCQ69qr$1g+FLiPmT19qf!3{ltf8f2+mO&PKgoK2^3 zgYu7Qe(4=NfgwUes2O!bXn{HzT>f?Pfv=tav@}=f5t!}xMDK0)c`?pi>NrD` z>dAizr0Rxsg-6N&gN06_kK-J9pErX9sg0$HuU*JPdencifwt09TdJRv0E%%hfH8K@ zSd=mTPq+BqP;HpzQbBkYn<#b{8d=us4n4_#PPD=zpT@YDD>3bZJ)KjcPh~8XK3lpL z?@)Sc;eimBL%tURxg5L3+JxUhPmJ$F>5SD-u!Z6Ww7oc|=jr>XwtAe}n;nPsVVfZ? z!r!QqaRE#;Qmhx)koP|jNy+!hc!-*P)^x;n@6(Y;4m2CDj;d;x;)>$7WuDkg4y}CsjFEwe3(*) zYJlHk*0O~nn*0e*umgcapZ2pv}T~uDtL+;TrLl zUtvooMOtS+vCYt_YMu0gUgT}bC-K#}(T=;=BHLnoZdNC@6Q^>moaLoXas(gJj}mQ6 z{-hW=J+?hHQ-2t$jGc1!_G}dG3_)BsS;eXe>y(e+Vp+h3X(dVq=p{B{3doA4gq(o0 zhFUDYrb^QTjNh;=#QB&#wxj5zGY(JJ%sx%|;9rB7;{)`9gro2{sKN}!7Fz2|DG9q) zj8RqqhrZDBk+l%Fs8=veLN-Ko8vC568<3S!+Q3kIPGZ|~y@XFpCiM4F)cz2P%8)_)~6kG1);x#{q-vl#oqsv0orW-2s_xB?NB%qz9i4F3i!Gr3gQp4 z17r96a{ur*R-4dcm}HdMuu#Hc8j1liUL>Q#R2XX zkY5FBlw?Owc0S*ko1zDjUM7wy;MEH35V@bUy=bW;In=_jJke16xDA{^gzCx|-oN@Ktf@T~Y$fZk z9jt?>+Mut!9?oks#0|33SQ=sstEFesBfhdRAO9HaO^I+I(?@8|KE)4l5_eqxNBu;m zD&@el3UkN{j{nFMxB%avt6o{J&kd4J6N>wtbc5sI)9^}xIAI1s;Go=At94mBxh%@S zwS{aMfCcMYqaW+ic0TDpo zA5B%I=Mlr~9f&rlmDW^I)kL~?Tq?c?7O;=m#@t}NilrrZ=O0ErWy=>n^L|b$pg-l$ zH5zdxazpa6x_1R0}%P4QO6WUv0f^jNP%3ICGvqy~@LL+Rj zKG(XA{$(u^{}jEtMC9@d!3AQuk0@f63AP0JM;Y{wXPz`@6U$e(?=Y2P+ z^)@%1j}5VPW1jj_wI%pDc*RJ^fC@7@t6ddbZzVjXPI}seCfI)iZ@s86pU^=ans^+2 z!~LuUr32T-grxrTXnDSGI{MoVqn{GbOl2DcS5XtJL;M3-CBG#__*;6-q==bHcvruq2ZylBRUjt>S|8$KbYo zfE1Os zL7nmsRJ&jkZ67TY5=KxXgj9P|X%noc;nCUldCJ_3I{Ge{NjTMs=GjSKK}BOd8^m@5 zw}^F=LGFk6eaC&`Al6lH#4Ymn%$==`@(1i&v97Vm*%Q9^>PXgFD?Q zja}BiIfnQ{s+4sLHF$fYcD+lS>RFG~XY1089vNyM|8=QDk5W1*Ha;Eo(mJa1l78}o z;grO&;H6sHxfN};Te1&`^X?v!?vAt0l`Fcc22P@R@Z-WQc#vuAH$gtsoSPn8$kYKD z^aJO3`zOZ`L|^~S^U3I{Z?>f?JqpUQv_4a-N=#=Ie7W|)bAi@8qoh2eF=@?R1YUz{ zdbJ>_y&!q1CivvfPYu8&z!Rp!3p|Np*=YZeRDS`6{rqW7uSF67oaCRp#115*Fh~{r>PCdtwcLypI^vU&?XT5 zoe|!S%Dng*D3W1~ZYm7$oXxV)9YCS)5~9;?XR7I+QTLmbvhiKMJyN=Nr@JhAqs>-S z5YV=Wd$e#qjWU6?@jj`sHTcofBK77cX6h{-4?%o2&y64Rj&LJce-{2+*jWM8*?M9ZO&7=6EhJ}IR>a} z^o!Pq2pY4rwg62OHyA*hLe3DP zea}G*-5^fG}J~`lro|7e2>B+sxos} zZ|&ld8TgX$99yoo@SWn?lmAkn$P6CKC-mxA0X|iWKrJ3`OgTE-yw!JrP5{+IgJHDN zDr~OnJh4{0!L$MG)k>DLXnH>pk0HlL{tFM~xA5k9lj*gpA3UK=!Cll~x+@-q1yMVr znPwAz6?xT9+Ky79K9W3Z)Ybmb_wyZA#<2BO9}%Y=K>JuPFas9RuE%NP{I6h3pwS=v z)qI`dX?qF2-*-hn#g1FI%9yL2l5@?a*H%?+dWP7@GFjdt=MklXx8fb4_JRemO|OtK z>I`L^QOP{RDH>7CbaL0~Q$|^Rdni|bK$@ueh@C%7s#Y8(zgJ4pXBICX&MK*LjqmYk> zs|ybrR<_8y&nLo6*MJ03%@uovYSXLKpMmS}p8Oa#BbLk8=nZrSI4$TWf&M8FLB%Rz z+7E}HTrB_3GYXv;HITp+P_|Ie(+v(a&Tu#4{|@$&%Q5l(#*V>EUGjo@Q(j~{<((7P zmhDl*?Qa6oz+E=yEl8g;Ec8Dr?rN8nk_D|>-RZ&y1Ioi#@J$Z*xZ0%Rv-pj%I z#I^)?)IjrV>?PhnlcdMeTBQiCXAV-ssb@OQ|MXP`80HeIv6B3oeNya8P|8?~yrmV$ zJ?77mCzZFxz=D=+HI@tgDC%1NZXV>5l?m`{pnu@0tqSPq`>Z@yQmoG@GuxN(D%-$d z$A8w%u)eZ~nxR&~O03UeEPQ3#Nq^RQ!{k6^1vGxUz9&UZ?%$e(LNOnPuOZ$ z)w0?LvPoRvEn8dn`|`DQKhUW~@VdGivq?kr^vG$pj^4?1aaj|4 z84S{{>hJ7Nwb&v;Ep+EW#auzWPu)_Q!VD&dpJI#E8>qvv;l6BfHDW!K2g}VHxy#$Y`2BbdZRZ*9Scdm|se6UzkXfiKIoq3|3f8c|hnNZZM}tRf zY^Xe4(U?cI_2I~~Z~)N|8mVp~-})KZb&m<>JR*J3`pPymW~}QI@;&Y^O5wk{6DW+l zYb}X86;oH9NuO0q5$Spk>aKh$8i%qwrQ=_E$LkH)c0?B;0!W3wabN8Z?CZE$zCyWV z>9?4j?nYQeFGDN`y^Kj@X{;s|8=tAoj{ffTvt>jM@f>Z!cOa*LkkVr`41@ZW%Bd2 zA^LAj^|;4uxG>Qb$uF}$bPX$vVQ=tv)o*YPE0;R#oq_HGt1F0-Op`$hZz;47evv=3 zPhDlrZRl6vn`{n#VDl|Y_~+OM3>qY#BJ|4X6ng4CAKD92oUI&#J+GNISQ%u)t6?9d zzX1iVlZa`P7Tn-j!~TyQuH}Ox(QVk8>_o+6VX5g-wt7h|5>3u_$o1 zi64x|IkpSg(HQE)Z8cU>LDVVl6sTc8guRCyJRh_tbT}|rRokvSLQkWUG$U+Q4pGhN zox#Dj$MnX?&0qwP4H8i@tTH)@Ney^hS5R}bx$j0nkrYlP7G}7&fEw-^j&5vY-!2

      ^F?t;d6GT@Wk5Oo0K5UOvzx_h_%B;KkLVev{J{RK z4Ky3QCHX_Az2DgO_fYT*?Gd*ruE?e--n-kWi*nC!KHQAIA}#~{;X!?d!6EIy*CdAc z&y-KWb=DouYp@wwMaG%#;}rZRdc$;(bzR3rkMkw2hW%LNCV)esCj58uJ~W*1MVDbK zciD3_r8t)J8N41OwZD0ze=&K*$VH98LF-3(@xUIthB=mWP(V-kexP+|IcY|2@$Fc8 zs1f@nl*p>>%5-PpLeXWUvH_%YrROYf*o}ROxf7~tBJ7Rz2@OCOEZt~j`vF6SX$SW= zd6nX%&2?4reZ@RwW5;{VK}_8;p`mUUt*l|FTxXnpLYtd+f==cfoYb4?>6AD41K*ji zXy`-FK?{-ba&DO909YO^!?#K4j{DIO&I;y%cqPjw6frl)y$$U&mp~72%0AUr8)u1$;DCOzSe4Xrn?aOL_r#1;UK2F8%|TzBy(|)N zg0?ii1zvGAUzNFh##mmEk>-$o5V?zv!OC!YEQ{snO0muRN@+*t$rHded<6HG_5(tE z7j}iGb6v#~ zWcP;}x8@?Wl+p|sqfycZzV=@ML9sF8ss*Kfh;lySSHZF7Ojrrl$B*b%ZUES?$>3XI zyZe@=ML>i#=u12o*FbVSOFJD759@TDS*D~v%!M`aOz;qxh!q-XM?5p}N|q7Ey42`a zX;Ue7RHtd`!srDNz4aj%??n2c&3U(Mvm_GD2rt8v z0!p$Lo(BJKg)O;YYf2^lM4+$ab@+H_9jJs9q7$p(sz|MHo^}PCs5T_~OU-Z`wt5GE zx?D-Yh_9>rC(3w7g<3LK+i-maNk1-^wJzQct}%=y#^^9oUNXgIbK6aqs44afbdcH9 z`Cw=CO#c^7QEv?wCKqUrz!StL(xW%QYpiE|)pNX;P~})z_I}Q$1TnrGYy|8lUyvLxC9-qjORm6)A!pbNS$_J9>Z!mf^-!51{m z)7m=P+qbZ{dI35g_T&=gBY`!@h7W}*@%@7VS#L>x(_%v*)Bkz*f0H#t;$F{qg!^LU zY^_io(hK)fzxF;MF5g((2kgU9Tp+R;*zr@hTHl1ZepVYQ`a0o4_!-dI2Em)U>v$|t zv1Z*-xF|jWMxu20K~NDCV3dYtWeLV0FGC*dO1E ztKg5$CMKk}bMFK_%lEuAHW{^t{Z4C!7BOx#m%(bZqyOH>=}QB?H;sL(rS?Pp~g|LAro8 zjj|{SmIq713V0`Miv6s!r!QNZbp{`_6D4;d>2#pb$aPz_S##dmSm**e`xk40b-(PnO;XC%9VZwE2G&on?3%N85#GW>;vjR^*_=iNnlH4Kp({ zL&MMPiY&0jk{xDl!`NWMj7{G_!`v`5oNvB=N$kt9<<-D>&biNQc4k=<|1MO4Z?In| zAGnJv$V;ORiDpuL!!p_iPZ2uG2KcK$dD`EyQu48T@qF@>?9Vzxwllx^D5yeJ*q=O* zHQIhasE&=WfN>+#Vo$i1j^$I~zpM^EV{!qR0cAXI@N34~%#Mu0>ve-^0hq(+bS<$S zxzXkPxo9w9jp)!O@Z8zJc;4bMZFKIEZOK;Bwyaxjp!1FMEO$fbLyj?>?{q#+JW0k0 zhw(=4BdCnEafA7fU~5i!mQG)U9Plsxh2_a6Aw8W-p40ZI5y@l(=2PZr)C^kZ2yYef zN7@NEnyP$S9t*O_kCcplzXbco4NJ$GF^Cz2naCNHH0>`W>*#%R3OO`Fut`X&IUUyEM!u%Wm&_ls_ zJ`HN8YlNzJDrujm)ix#Jxc^UQM^Z-q5A&~fwon-7*cShXE)+)@>!F%9m-a6G%)8;8 zv`hCGb&F@>DX0=B7oSKo`RCkZv`$JQo{?tX27jYEo6b3rtv@Z4HE{1}C)_YrKXw&O z3U0Mr3XgXp^aQ&@4cP>_fvuUX1evItVQRp-D!alk){r>@IQNC<%*YVtIbN=+fTH># zzB1fL>&*CA@>WripUZe$cY@d9Cz?f`N-{$iS7|7ym>>RMv?h=)nO*5X;X>;6Fs>pw#m>lgY=HI{xbe!w@g{V-CaU|N_0b&ef% z=7~cBQ=NYc&ls6~2YL}#;t5bb`7&7&bqxJX9pV}Ww}2DXa~5Gq|GlC0hMDvqC>VQ9 zdpgIvJmQu}Mrw<%m4CPR4>~F3nDR@^<0(|vM&hO1e@RAj%ouZxi+qsIGWJsxtxLWJ z1Ds77jCC0WvRbgNcD-1~-C42)_uvY)>f$5kul67#`ORTxEn~v#yM=0!{?19_JWVzo zt4z>(=!~#)`F5}yA@)U9Nfhtr{12Ph*^Q++UG1~F;P#2; zFf7rT)}q9@Cd#_e$R22tJSF}c(K61|dAd6~-XbUSG(TxIdd;O1Z|Djd4~2gdPt)zv zf7#m9DXJ9To2xPY%^IaM`!TGht#rERy~rxQ75z>7iaoJ^ge_S^T}rPpZ-CSj24i#V z2F(V5LQcvr8yW9SQ`yq?PAS>Wnko8)u z6>^$7IqQ0M(+Sc~{{o~B8|Y|Mn%#nyL5-~It|$16YzNd<*`bb*6w3yxpf#%c=q@`6 zeDl9V(bU4gQs-a#E`|vy7s$~$xEQU?{QT#9wW3M-(w>=EFaDc*9)7?=QSRIedeb4# z2Dl8DjI(I7{C;%@x;Hp7-XPW|a80Vok{2rzUNV^mQWb3@1ErWdsD4xxn_)^*|49ad z9Gb%-R|i^^afSMZ;^+Y0V(Assqo8;RN30nzPJc-D7J4`~QMr2@Due$^OXu4`1>6(e zhQF29plf^}^hM3HRB+2Yke6vUCOaS#nu~l~x}-!C1%MyN^|c>O%{rek1yt zmI)1%F2&`ZNhI4p5tU||+#@=2!7G@ce8Q)*l!Qbp*h>p%)nCYG&}diVKH84hEbF8k z>gt$t2^P9up=E)Z;s)LlYvY+MHbIG48tG^%j&oz(V6^@=bBJ_to;F^j!&&=BE~@05 z4-LVa6PIQNT0m*^w>Vzg8MW5W6HnNiQy@Tzuo5KeV+p>29^<5tpbc@Sl+1V@)A&{4E>sFPr&G{Z{Enri z76tr?yRZ`0V7u#30e8@%t{pCsl8Z%fEzCk_;-KupG=f^jo+TDrWm$b;nCFY}N!CMQ zEhmFqwx(Q-6(TC|g!Uv}(m$kjmcv{TNOv~FedBCra#hTlFMde6;kB$IJpjACWzZRX zhdYZK)BA=cu33Bw_S_G5H+R{i&Aop_+^IFpF`q{d(rhS#zDLe8VnY7xn7O*W4irR{ zQ3+U1|6<*K`^D?28i7~t7xC6u0e#>&REf4gH>K0~G!4f;IfdAAtEitWm2k>53u)Bp zr8=)%d0Wa$zmK;0noGXCF$f15MHaaa;$paDR;7SVUlLUiBdm*JE`3M8OOK6pSfkMz zs6jW23&kEV!kf$d_7fO1c`02OuK?d-tx<#AGtP$LHd1A&660A82^|!B7(Yn&QC}~m z`?%kYS%#g`>YTeM!?;g2itMKs1V5W6miAZ6TNz{dm-O#kiRfpSjn)XYMoU=saH~rd zn`LmR{uVT7t5iLZ;A6BAK8<_DY9-nHL0>>T!W~ca(u|C)?JfjDn18jf_7HkVN9wJ@d(L23Kp%+3 znVwaeyN#NV-m+QN1>q!Fi(J~Gp3UTa5%f=J%hV;?Qb6Abv z&;)eI>(^h!KjSr(gK-3vp=Gi*VU+Hb*5k(ELI{rux`j+E^v3A%fmNqTq zMu_vEFnt+V;FX~&VnL{Z^ops{Da|4@oemJ!(4mGr)qLwJ%N+3%>W%hFe~2ZKMJSAX zjEOznWc25uK3r*0AqG4(xTpS`czyPbw13?p*DZ7y1n5umvyPBp`Y-wp7Bs|2+q?+!D z$OG$g)_c3_u3Ao|F~=V3B+{9_acf=UpoZ+9crROJ=}>k%K9hUl+7o;hFHSN!9?gdX zu@cN5+|$lPOuna?;wJD$*du<^&NJ*m#NCP(LCdX2Nk@wx3XmrBA`E6bi4rvt^UEe+ zBD)P6l+&QHeE=z`9}F+02Iyb*`?x3k!Kkj$tX3vj@S|868lhmY8{_C)wUZZd>*cuX>ixZkR@u z7-vOsDb;r_z^H^dFxPMiJy+cmt5Rc&BiSt#zyPmKU$TKoca%;}OU?Id55Ju24ijs!wOn>vwcHKw)jJ45t z#4`?0ztAe%dt(o-qy00zMPoTjS(>J&wg)Un)lDazD~0ylmw?0Y#*)UouNR#S#r-hL z*VXylzXX@HZm`avRrvOX{8R~HahRw!eK(b+HcJC^P8l&y^!IiALRO@=ClS~gTExU zYN{fcV`G&Lb|=2A-|uX%48b|_I(CJ7DyxZd?LS!hq8^+KX5jz8l^mjO16*3v{sFs! z)fszbA<7WVT*3HTD`CHdk^Y4^n!i6D!1#JxdcxdH)`C_BH_FkLWU9gJ=t<)%4@FUE zZnws=3~4c=)61P>+Q+Zv(d-10ZAy3^q4i>eNN@K5R9#jF|FBxgW=n0EgC5FlKnPj^ zZN-bS2Amn?gJn`LRLJ!S{inJ|wxNaES?D);B~SZg!gLo6h5)Y5WuRH;g|!O1zm3*S zvfK`>5#?kK|D9inO35;F|3wAlwY=@=9m5RRgk)^`>rA#|{?$s%`&Bmm5h|U$FKp3o zkS`={G(B)(4aZSbM_otUqpX1IgksVM^GNO=uUR_$wb z>?iiou3^eYALJG{O94@Yd1>#^5n(J&;kxKNyB}qGd$aTYNnAkpmdkdQh102jgfP{m z)hET!6h%$xu4AS3FY7O)x)w>5qje-TGU0il#b_sdF-=PM3rEq(z^?3a`pWnXjivp8 zKcPm^{}F?AbEv<5I;}vKxkkjRxck%hNas9i&()<9t2l;HD!N(5%KxzJWZtNvumwtm z3Nf{6q)tQ2%TtzhD3{z%?v_L4@M)EKO9=#Azl zhXyX9HZnkcp{jTlyllEr(PF`irBk||&e@Tn`p0nHTi#re48kedP_)ObV3XV~Tv1oP z*hY4Ot4cX{HBB|#*i^%_pZ%={sv^8%{;^ye_V$E!_?jtX($aZSL-@EEDn?{pn^wGxXPWz;HO)oP%wb*lGy_NLfuv;e8-GF-D4Lj!!~SY!5UdpFk__W=y36S?d}7 z&>!AJS~>^&7~wbc4}C0m$c9M0Eb|%3c{+L>oFk4@SI|D>x_Pfcn#zv**oH&U(gaR3 z1z$$j;HAc*FoUebB54Z)yv5)>qXTp1oybOdlJcRBU@{cJGaY`hRlI^U$n~#?)ti&g zxc^)uX$~Wx2$7yo%oNzhOLa^F;cr;@R65+Lh0SDKk;y> zv#vU6$JWi$w3&phmaN&P|DYg@WvT-5tU$H6kl>1_XhYL8QW#d4iO(T4qSu7|l$Sb$ zDdYpAJs-VcUK<$2)dQs};jU{d;%o0JDXtNV)6?d2Xlb|;t_R=oO0goj;?_Y=Iz!h< z%pdE|RMn1%IO?-??K}8YJ!vKD1=J#(ZhK2RvkCg@uuCk={PSxWuc8r|V=JDx2}4r_ zZLLu$)&R}gkkMi1U7Befp7jd8p(?&UBwxOsp$xLobjfhWaGpELw?gwsRdsO)p~Yc+ z`p;-(t`@$Y$kbfdJcuE_7)(S9=pEZgQXFME{$RW8A~G!AGr;&8+%NcvL5F5B^2QL7 z86C^7XI{{0=x_B1pN&2vA`0&g; zPqIKsZDqq&tDTO=!&Fm9O^)gEcE;69U#b}d%_2PzkM^)rDYz#vRjB~k!2X|6?#H&v z%6g$zSOwA00Q!&4D4th7b^S_K3FVOx-QXPQ-zFB}t(qlxmlM%e>GS2697=c^*MZvi z4!?nP^n*Q1kHxBDHLjskVy9-Sy^;I3*c7BBjksmH2I#8s5o}N8$JG;2{s12oS0}@E zi8>83afquDX+Uqs8-y#xQqGwAgR6b8MsyOHB-T#1Qy$y%|0)bOumn)lkenYM#@t6i zLzwyUz;w#pLD$o;QePrmt81lcQb*}=0y7QBEuWC)#|vkNj~fAVQ`I{^FK?Zil4i$-@1 zSe3A#M5r-(ne)tb&N*D1WGI7C&Td>PIY^tt34d2Q6=`S#v;)5j@20cSx^T*~6G}u= zcE31Pn-BdC3TVadSY?ty-43(_GL5yxQ_(N(g{-4kd8pr&w6TBSs3|2Zq8_sscI%Vfocp<(odG6F4731MWoG5H(M#nxm`*MH~%ZYcKf zr6I(1L{;eG>@hGEia~XHP%`OOqwk^7*oSs1MV1U3@9M7Ks(i}6;(OeQDybZeOlw0% zp~@P)QSCd4n~4p5E9iYVL%Z01oRWcONj^Qh2Jkf$nR!E-A>^yZelC~0b>vN7TJf= zach_npMhF4E}oKod^PSY&WJa|FSPU6Znu*>ke32qYzJx1wV~hj6}ZaYy3okRnJ0=z zqaV>`yqo|%9&8&w5y}%!=U&493+09rqy=i7dWf_p|4(#?F?juRzr2EMq;8i;TtD*wM=9TvGqm; z9YXd78Nn}Sc}&gsl7<`iqU}P}td6)bu7k9+LGlOut6KmI@g$ZSw<5~AYj(@$DE6{3 zvJXwqvarsymZ-W;!#EYa$vti%?1)Yc|0llnf^}>#13h3~tbXRt%mH>)D<*m|$4#R| zJ(VLe3^k-(+3VX@)EIIC8MF}JMuw2vu`oL!cFK0-j3GHvE5#u^jelu<$kXpLf!E+gkO&@-dTFmZf56kE zlW*-h08`LD^Fs0m{QwU19f`yNZxeZR6ogsp&bD~{tbN;(QHct{uH{LDvgqisnZNyOrM6Id8c~Miwli)vnm?) z1d;VfRyo%XF5yIqey%gpmF%Kqkx&o{NNRdN-o{x;RV1jQ?U{17DUnZA)3K2rMTKCO zaV0uLYT`MnRg&aVuzbmJX_rSKu8s8PmiaT7Lu({;#7j8`1@AaF+DDf4B}Npw>nkY5(RFR6qg4vlq> z=PHdbrp66?He5&gJ(Pmufd;ut=nt1*Phl}6Njy&!cKvC)1{KJClh^PjS&y}z z>~M8-)yPsa{bIdC;mjA)7+yE&R*qM@#x&=d`2C+|<;o^YOG z-Jp0QbWe$6KcRolG00$(lLMp$ZmOM?SBjCGj~i0lpK0aEOj04%BsDL5iPn?d#ACT? z+Jm?`{2f}PE1@sMw*YV2ot&S>kTwtI@*TOebXK?t^UM4uTb1KNr|4%v8=A}1oqo_S z*##yF&2THJQ|c@3=6=c432UUIyDqwchr=nT<~~NnKoOD$ivzFFQHx5kPk3(c4h|@a z%0deN}cCXpZ$0><29jhhdRU5aOe} z3AZt5JW1WZ-d{C?`9J9UG%M~cPZvijH>nT7Z;t8kuigcJvis*6+}2l4Y%NuQ$F@3w z8~zhe*R&VB`j#Y5)*0V7SEs<(iLY$DZ}L-H6TO~s72a+Yyni=FFXxfDH#)APIq9u0V zak6#zHn&buRLR6P$)rcF*`M|w%t<+j|!0-`7}j(>IKOMgGIe%4xNL9 z;7Z$6_-tF3UyVjs+M@*XVpfy>k(NX!+rBWpvr2dd-jM$<*`*itr{(XdZLx& zguI%!YV4lt9I78%3khciy$ijgB~*{0B0kD1$qM;F;)<1oN$9+94pGMzx^_TTNGYzM zrKpcw;p>Cw_$01HrFcBmtVY`v(dRpn#0c&iyLa@ub6zy7cxy2A9-blDWoJEHO!}3+zj;- zfsurm&md9>htY9aMMdAxu$DyL*X*csc zPXD#qZ!x-SuQ+ zWhwLp-!=PKN_wv2x3txirv7KBtT>-F6V0bz=meDIyyNJdXA^VbakvW8u=<8&jIDJv z_jj~Zeb+S?zM}kz)}%VR99tMqV+}D&(Ds!{uo|G7e3FWhlWPXH1VT$}OUSc@3N6 z7PudKo}RFN!>gn+BLUyx@9XU08Ie!S<@{G@9=<7EmBRA*TzNiS=p^1Xm!<>Li@-JY z7H3hINv@)>CFs1Ja|-ulMC6vPp3KpzN9pDp__b^XVaf$r0v}i_#78)p9E%S#F2V2q zHe|82E}Eqnj;wJH992F5(f&yIldo?miw;4UoRk-gOqt&~+00o{$iSVg`;4p`6<4CC z;VOM(x|iCn?}E1o!@{#uFNq#?3LbHC=)T6p%N;kArxe5O-HDo1iEoEOE*}3aUC;f< zn4Cw=nP|SNly;K%K{(E}4mL#hNTZy=q%ceU{X!N;huA7}Z_qLG3GT8!+t`T9CwIe9 z)~H+??TmgTX{4W2kBc)$&|cVvUg}KxCqXW3%47nFLnOY8|X+3W>RMVI* z&A{=ds@9*zW6HHqh4|2#oEmr)3^tYYeKIX%NnsM`sFwl`%R?6>zeyG;G zIW%y!fD%mZ~W8Cg9B4=@Wf5W#e z#n~=g6NXS(`X#I&F5XT0hbADU>A7ZF{Qs%*(@YWWlSTu*}-!C31r*v5!*YMzJk>{K4%D&U6npu8!G6V@dq{wKeIE_0R0 zAF%-PMQylYasZbZ%90IGR+fJ^7I3gViqXUKB$h7&PInD0_iV=_QaV_ztrp%!tK%x+ z8u%l$_Sa2~h#bS`gEP&<5ET!h-F}YTz~77)aWqoH-P<&jY2CGC4}vPEjQ?G12n+a9 z!Zy6hz6cG6;^wQ$JBb*6W-sGx2W5zc(Qa;9I^*5;Zs3PUs5Mj9vFl3crnHam%f08n zXl?kc;wMw3mhx|KAv}#NQM|y*)iP;!cnE)y^H7 zg0Z;1FtlR|v&{G#cB1#f5c_Iqky@5sK#Vb}2jK^jZ}6Qv8sC*1D6Pd=!Zv5ndtH5% z=!9N|SAMg)9cm93=sD{)mN8zCn8#9I*({B7GX6I0u~8MxkOnfzeWjt&15u4L#pkpeT4VZ8Q6#jHoho+X zkEYL%Myk@e$ve)wCa3b6KaVamHgtC)!-WFUH&Ei0Qt{O6z}M_r;P7=pUyOcXBCJM# z*_uEb7?<1C_CWIjmI?KRfxfeJKb+Og!n@H0ZDp|*BLYVZ?a^oU9;zzbVM*Oy^gO>h z>u}sgZA8o50?YH^@Bm9KX^7=Is>l3PhcOY$3LThl=9sz&)I}X4d+Ds$C_{OvH#DJI zSZFyxk7x^X-QlLIlyqJE>OLo(#DxOWaS6wJI!GR-O*O~4C%$p$r>uzBEmW3P^{$I` z;s)riM}~P{Gf!|PPH75=CB-_a>Go`-cKmBE>3kT;g=e(9_?WLFO*PtdgBcIs?JP>l zrcNWdTanbI7x%4qDRGz=qFTmBrwn@%;nGSaTgd*v8NqzfL@g6`hgK^5YqFeBbctiaXt%S?cF68uaxG75l zdSJG%0xXTMk}JbFF`wAr0{q7&yDZNYcp&}@P5t@QgN1Q0oO63tI*+>ckh7s~w2{3o z>(~6rP9m5-!)54HTR(9Wec@h-I;7sq~y&A=M0uIDZxt}B(pl_;CbaGBn)Q&pfh2=Az$(jp#u8Dd zFL8DvlTk0r%EV0B1>;n%J-;)jTiSxeN@O+90h?k@`dnI1YNB3D?g+M|oMj1hS_jFp zXGS`p2TXq%NA4TDQzeI-4^snsarxLTu=*U_G)-rGEA6rr zG*n_F?!&@HTrjlB*fCm+Ion6$W9gS^2UITqc87&|0jcA%G$Xw-G@v}~#Fb}s=1_7Z z-6O75PRrVzf0}!^bcDRMR~K>_F{=-1jo#@mq7%3!KU*lR^|$_AE3_^2V}xh#&!(TS7EM9@m-3^$b=euG;% zS4&+rlcBIV1FoPMWSKPI-cWpOw^}vKq46s{Duvx<)WR{-SsI2aM;N>6b<9aN$CWPD zmtKqh_*^OU|A>M;Ey$U}SjJ6%t^ zkwebH^tpVCC)ZR1S0EnuEbB_tNwWrh%N@vI)xXQSdb9B9tTSvExuEV(ixMh!!bR=N z?3aYfVvl@g`iFd#!Acj>Hld@;=ddBr&VG|+MQ^3;Nbh8ivneMLj*A%YaI_D&bUzFW zOyg6<;IFKTn$J=>+zmbE%h`^H)iA=+A1b5QQJ<-W<(_jK_DHLw8zvBox{9&2bG24x zXYWVuf!g4{tmGp)Z!+s8n-f(|Wz%cU$?Oz-U(A6xSH*qZ+mtI8_zR-(s?1Zk0aZ!X z;iiP`^spwzuQF9;{Ql4OfwYHvldoX-0#og-;kov`%(t>2@=aKWXQtMfM=MGuN~4X$ zLQ3G0xD7sPFNv6`UpYd2mY$ilTK2_|jDIxF;de=IQCq%QY8P|lM6yZ?-3%eZd~8l- z^q4bgEUB2vCI|nbYSv$=5q&pRw$x(jsJi-7S(BlfXhY3RYL;qI<6fXJUXZ;NwfF#9 zoA%IEfMpTK$=k>ZswZ$kqlP)Ez&#fKC(ET_`$xw@_VnDxeiFtt;JafHFQU%S&0b$I z6UK^jG!tYA#@8I&AeDbmCMxb2LNHVR8-9^_TpO*ekTsVg#-563S5*CTER9v+FRDtJ`D=7#O z2YDHj!%^2#f+-@!orQIS`1vxM^OaL=Sd{%1-xUkut+a<;feK~WaYgM!q~VL&`{UhQ z$~Fq_2um#M+2nbMXCUd9m8q`>g*bN8hmz?hNN%7!nn{nK<@mF7mTRJ1i~?RQUYXXE zW<}HSSVecwPk&=r%4XT)Z9`bwMcApAR-}y&yznQuCGZ^13p)Uz+DtiQTpQuM{VTV~ z*$$0_&NPReM22N|()SlDp#>o~KRT5iS|RlgZ%EEjUQrbmhatVJdv15?ppT3j;*;oX zNh4m1?_m@Ak{mmwARSFHO3(k;1e1Xgb5yt_vb%2kbl`I}!#dptX^^H7DauXP3`M^< z*8zc!Qb%@@dkiJ8k4*PABE_Zu;jWl%>OW_Pz;@45MXxzr&vH77p_P)hx*CBhjuYt z`bQ2%gPf0O$h(%_<35LPqj%nBVvV?o7WW+V6?1)&POwgqDXJDi1N0`VJ=|k-nN1`` z4j9G)q3hYrYc-uKZ-^?u1~wy&qG^m2xjpd->4eI7W9%rAC7vL)a}D(*+pt+jPghT@ zV!L@MbXD_a{`uHVoF?2B5BuIG{z2Qs^|nmB1}=se`Pe^$p0rH2oQT}yCgV-~IhGpe z7W%?{G)S;BtF`|L%0V;yYE)2N2A6gHmF#Cq;LWi*^re)HJrDDmoBXAC4cro+WKa1W zJR{rSs;G*e1IvUu3NT7=N$kLttCdcJu&}06|Y3W=#o8hw@rTGH1qW>jUnR_9pBbkrA zIrKvq(PN?5U0fyhH5L;#FvaF9^M=baW?gyM!Hyj&_-+rdybL)chMX8Vn2!+vx(LXoWb;;wb7E!qNo9R zqo}%I2@H2W%?gMcXfyP;<1gAXy`Q!suT0LNg`hB+kJR&zq4Li2V1`byMYN5nH1qV~*QG~wo zXHX*^#=dT!0uLgEc#NyYQgF)`j=e+yekPfO=Gy1MW}yY_hNW~jtwO#@J=_&h4gXIh zx0&c(b6uoXok8Wa`>;nh313cpK{m*cH5Tgy>gv_G1?8pCYr4Sp2Crl!|8u$^ouVCM zNy(y#?MR8=km+<3XO+(|shK)+L3y6*of@sH&9C=Wh((=!SbOwR^pe-kUjo-)l`u@3 z<-3Sy;>_3)Mb}`r*mCJ_^#4=RhFqNV0meyns zyMsIsrwg}GLiF)H#J`9PuIOs;D$^5bJIsbYxGh@7d@kQ@f1v!#qt*$ohnLYh@oS+0 ziCe(aRGYXH8e&j_u41#pTh<$f#-R+nPg_%5F78dR z&7baJ)9~G9pK>+Kg!V~`^4IW8;|J1=sOdP=A}vXWg?OfWmv{R~DcXtk#SfrcwGtdO zjG!uErFhV@iJOND(eADgYdYA=k^w!86);ZgA6>^*KgNQi9|E=U2dpyj;nlcfVnwpF zY;8_Q)`DDs-oyr4J~=hFJ?#qb3=_#Pp{T07^dyhdsPqasJJdOEOBeDsb3L%l`Xb!Q zR+)6h`{JkF!xTS-Me-WxUvw9#|-MPJi z_sW}6fVn*0=-#ItKrACds^M&R2QncdCx5~{?`p8hoK!3$A&Wn1nR`&iFF8R{|2V)U99(G7GnV~;FFHL^FOOy^_z6XnG7lP7VK zrjyl0ugJbgL-c_8V`O9fG78&0O~rbSxHw1ZZ7sK0wB!C!uJhlQ zPReHBqLNuY8h6u-DPV}LkTz;hgFDttw+PNaDz_2JgKe6@mWQH1P9?@W=Gafu0dxv; zd%wpk%n@QY7ZEZIKXVtLOsR&mtZN6>lVQ#h$~VTU|DXQZ=Hch-08Re=&0KW(hqt#+e6J_MQOKeqZqx?d)LL1NT zbX*Q$uDfM)b80WwJoJ&S)m^83Eu*mB9nh6SPc>6aZycH81g3)(Oz`4sJlRz*vI_r* zUdn!mI+}imTX>+@ktsMJJ<(&-LCiIlB%`crvvl6qp(z#|80wzItrO>vre;5zbgs2t ziAQX?OliMp8=>2&`(f>cUZKg*4c#C+MGJC=`&uiBGjNXeNw7WH>&_v!f<|0HwpbSD zZfh4&KQf{U)UAqpRrD`hS}GwHbxsp;*8&vJ#SHv6J&P-B=%5dB6>=!K&> z{{=Y14AU~pd2tU~#--2(Hs3yy_)UBtImQA1LD>ky_w#ENcd4IocIF%l+x{;5sNrwm31; znn_LE5%PriWe%99>X$C2wn8skOp?1ax_q#Ou1;mMTV&Bho$OzYtvSx&H`jDz!$>+y z-xpS)Bc_M=!F;3srL8@4bpETn8vtnszmfC0Q-RHv2rZp+04;QnG+qjK&!5Rv4`gu< zq`09co3hMG%j5cF7hvazVf@BWH?%+dclAzuh2H_sxZH3BaYCp7Kc6-FY~l*wy4(VO zKR-;Y3Y^7CvWL5#sGWc#+W-h#oQ24=5Vi@A3;#k{ib zie8Ks)iM@=cA|uKNW5`?G!TDfG_=mnT85rt8KErs0_T+Vq|;d!rA4+e_BQA#lttww z58jA$7R(8BXOQ)(y8gex%EGe$uW1(DVd>)v7$fR}&f~ToVkU&)0dy5Ea(Z%t9zvti z-^lg`r(1qwc}eP8LRR4xS*y5pXut1_G|ZL(9OG8~^j1Rk3_a{+-6CIK{188`>=GJ= z?wZ<4GvZTNv&;o?nE49x3RYormyYBk^U=4l*HvP%EUiFq<0XO;ORjq4eDJ)~KierA z8#WPv{pP8sc!C@Gl9Pv z%&=FnJH$uyOLRVt(23TD-jY#J4zLv0%xB6~)VhIO$F)#4sh+x-R+Mbk3?Rc~26Z59 zg>JP}o6RP%?`7aC-Y11k6UF{6t1+AH1~%ar_ijy@SUZ^NmE#L!bF?Q^u+<>-kY5~) z5AqtH7xyEz1F!K@e1?{?NT^Dry!%kFHJta<$JJ7^Xq9B^n1U%RLt<@&>s&iF%W0qJ zMLW=?Ic}zcc8nEIWTV^CVsw-~Mxp zQ;;%uWfSPq#(shQ(e_eZFq;+|v=OVhg*X%+0oH$GPymmr$JLesI1e9A{4W0={XmP* z=0bN`D<_V|k_4|o^_AV2+uCa`&MDbv^&m@-DsTvn2CuP(<@&TRsAC17XX__O=)D4y-yOqj-=3Hg?s_E`~ zX=?ytf=vThqUaPlgl8M}q4!L~^r0cdEY?FMo$WcB)`i-5yQ2+ZEvjzrj?+>HN!y&0 z$m%_T6p?!K3*knAx+I%@kNrpo!z%Myr^D4FZvgHSFk2>y$58>xuk5GoX&M)==4*|- ziHbQ2{XsHFtPx9RuYo`Dh+7tGq}merD|ZgemdZpYVKaUY_qmnAir5IWH&Tuz1w6^Y zfp$4#;8uJo$mwZ+ZKz1ECH64tV>#U?e4pL5O=4MNdBaE)bL#PW;1UHP7cF|UP&8opt9j=bFBUn%|fLw=SQg!D9-!3vBe4jf8cLP^NOLl*lk<%o= z^Mg=Hq~Ye`{xB%(7xuHxqGoBFpOZ=||7PxtqKvq0C-tN{!LI(Qw5BFqN{KIspEeAC zhgYN*QE@~3(}>K}D|=ILE^`P>&uY&PR9d(pw7=6uo`;{%Te|k5B`)Lrc!=DIcVUIp zSku{iAO@V)e2sR{exqAOy*MkdmAlB+`YocBb2X_#B^15Q&s_P^1I`0b#o*AU8~b>k}ILb;1F+#y+Yr)Zc;Pl z@a*H>0sPs(MqFR>h$}9&k-41>#6iKKXtAcL`;BjP1#Kqn+S=H);q))F%U48r06*IkS^ zd{N^O=ig$IQB&3@PcSa;WZ{0kGQvaWWhiQF9z5ighb}5QqT*;fSfXR07~ENSneosf z(kh`6D$SVJv&3?#47MkJaaKT(mq$A=FIq)bab;q6rC;gqNDeOV5tLzT&oqfs-XdZ@ z`!a4smMO0>&X4|tk5H3&5BgZHlFsO!>}F`0{VCpz{HPcmPkvIf46mRyUN zk_u1ZukweXXk&%eLRfP!KS^B4IM(?IIZa;^RlQsW5{B88*?#JhRm8|-Z}$`4rF_LP3ugU zLpS9@bXaN#t>>O+sL#4t4$wEu|CEkqr=54zk8N16-niE`2MR!o5KkAQu4oJ1XgRIb zqwXxVy$|;?MUd#NPg~duVaB&Jm7+zYq}7N%nEEgZb7@p4@Qk)lKQ)gggYkN49P^uY zLj5fH=tDLGUk`pH$QzP@DB&4|4r@w5qmUaFiu{WYs!P%_?01$wJcdpZ4v7lXEPFO* zvgA<%>cwu-EzxEukXt9s3I7??;W}tu!~-L7NqQVtMfKy^p)RlwJ3EczXEAwZ3H5`Qn+e?tcOL-+#)aDY8uH^c;TFly^I*Kt?^N5qxc9Bpk}Ps`?D z&>3^xEu0EkA-^TkoLjA$hzij!=%uqkv}|;>`~s=Z+Op2M>sty#W!B>|g87qHM0bSe zdbBh>gd$xHh3GseVOfrtT{2!09T7L{Wp+pYk<9Pc)!YRhi0O11I$_O>f2E6s2Q-d} zeYA~_U*amN2|6TYAzoDQnhbd%Z z*lk{<4O!lMKl8IxVT73>q?)NZ`pefJ4KNg?7r2W2J3~+0!m%*em`tOU)s+}8bTB-G z=hn}tBCZt}7+C=S^YzIe;+r@$Z0DcF?m?Gu$7l;9^ERQanmzoxa4Umc=?JYc%JpvX zBRz!+$&Txmqf)3px}GQ-n~4fz&RETa0@XZYq%n+BdJ~E9j*t&k*MA@j@HK2ze+o?_ z7StC{i4^sWl9{<$RHLj;Z^$yydBj;o|8-Oy_R6#14{dw=uTTKbLR-95P>1vjN^{P@ zbdmWs9-zjMYy@3PLqcpS_6jNd6I$|e&_Uqh_$am|3c_S) zE`*K4qYD8g4@JJP*6Fr5%~P7Yf=Bqb$pn6Ss<>c}-oPR5Q`SA_OS38Y15+^5iv&^^{_yW;Ns$?0ee%+#>kWxTX&6#YY( zX`T_BCg+*=b+xlq8n9Es%A5r;i@6NE!7l@~!<=qZcrv<7X8#{WXBi&V)kWcb?wy&; zB;%f-1p>j{HMmQ0cXuyP;GA=3CNs&nC%BYSw73+CJH_1!1&UjtP$ENe`D zgp1lYWN+{RDuN1m%lHj?(6m+v#pbf-sTqu;8}NvB}RX;Wx=EL$~_z7}8LTmCULNZK4KWV#kzfctNi zGia?%X3>^(q;goiyL~Iw>LcVwS##U8yse)3)EmBmTfc<)HC>CU(M%$b?a)jmQDH#r zu`no^X_-x5N!y8rbdv?3d;C0zWH_syGL8;%)sYBql)8j8vWjr0s-t0)<+# z3WN0qH?WFKSiTO?ch zCpQ6(cuV6k_yrv5u5=Kb2{yCziB%)N`KQ=cWT=Ej{7>DlWE`uk$yU@i-|=NemP9M? zhuB-|qQhk`ge<8;e7vk7Eg9PZgJ?Etz&~Io!4)JbY*qYYs0CTHNVt^L!=%gmO_(en zNNiAC`#L2q?=H;iTvjTqKdc^0iU%4+e#532CCz15EN5UpZD;sB*%td#YK7W3PTTLn8@NlROFhWT zoUR3J2|5?@>e9^UBX3o)JpJ4L3h8ED9qHUET(R87d-@)euh2_v9=4Sn(CsvDa+U@J z5D61RGachU3`Jp;zPQ$aU&xg38*>vj3UmKk%mbM*ti-(RxcmyRSDXVDl4|@UR;R}> zhusNjMukaZeHva;8!4HX05if%}AM;&jxDriYRIZQ&9 zIFxGg8k3TS?ZR}&Vq<{kLnET0=S=VEF>$J63Y6E@7Y=zlDB^~*!cMl$Kwy~r4*Q}U zt9A-4&7GlpXoE1%enyJs4fUmYCW8$hGFNH3sy!LPJjxEaeA1EhyR$9()At4|+F zJ%p8bDxM>+Y(=Ttc~r`^SZLGu7%JMnKn;UQ)&-yJ0}-G8IA7_{BuE~it>K>N*1HN% zA~Ne4Hagff-^V+k5}yjyA;$&g$>A*eCTfgR^CNOXYO9sY9Q0=V3cq8m5W)3#Mjw1n z>LNuUn+=9Djyryh{SsM>Zmv5dQ|pwd@f2wn7|i}5P0fY)1pagCG~uzasBH`@kZR)m z-`RdcIgdZ%9;6I(uxw$~u%)_}w1$39#?cS5xU9YGnko)|#EmdD`T#8c8zdHJPCM%5 zw3pXRXTnx}f6@q1I~f=mNV1%(jcs`xN%sAiL)vQ0K~_>$_z|xk z>}{FhJi%^IK^Pf73QDBy=5|60-A&<3 zuAcp$!MlUD_Rh9W4g>&|DQJk=*}`6K0hoN9U{54$#^lK)W}z(1%9Ly}eHDBGi%cWZW@_)je8(tNnC{dZgUWKRKc6+s zm`0i@Dj_W`nR4HEF7{5kNq?j%I^=vKZ`^7az=N7RxaJV}HK`9pJ(uh=xTO!6}u=|Ck1{p`Z9ZBnC zY4RqmqE=4clgm+{7od$zX1*9aE>@1Lws(n5W`y-5X4{wVzLJfTk&p zgI`FF(3gD@)EPXw6Luw=^3p7$;EKutxne)K3oLjs+Fy_Fx5g>ZN=Z z>%vYNGJL~?ZM39%o%L@hPp`vI8F$$&xM!=7i`_kTx%D8-PocCv{lbT{%Hm*yBfgc@ zXOH!j*c$KHG?U=7>@*+MRh3`h-H@fS!k+?9*o<(@I>B-axp@m>Wj)_`S4LlxLFoJI z33kg?R7@b2kJiDv{2L{gK0*_@8Xl`R+^o}=2-5qlQKM2nNPybTjxSxYN4g z=KeWZ#sYMTxjn0`KS!Hudy)ORz2bD`SENF^tSeXpU2B-aDhTtW3gOxdD+f-|(Iyj{ z7MyMRmW`%rOAK2^8`!G(dRUzFVW_rtX!2K~uK2__QAm-7_+74=;`*>Pd^IwMZWd<+ zWKf2j7qT2vlWzM;GS||Wwh%X4=j81|CX2`9C)lWA*+v62k=~!)NXTqecn_J&qXz7i z(hcAnWScN?I>SAUO@@nXDG#E4l0tNBH)iu*r#4|Jf$DTn{0WWPuS=(-mTZ(OA?((U zp?2F_?N0h!ldatoYQ+|!m!g$%3i^kBOqt`~0(DHH0i;PL2Kav?3CxOj&eQ4jbOGNN z0DeSX*xg#uCECTb*7yfgi$>7m%u*g^!#3fd{+fE9w2|&HGL2jaqjPyN-jy=>TO(3E zXu7_EwmsVdSJcOYjBe%~==ZTa`3uz-IW~NyZgmGKQ#v~*pxH|9S!P-*)U-*G5M^Hf%^Ay#Dh=tbGEM#jnpXq%%hHNK4(XOiRl)u7bZEh#heMMK_qX(tYU%Sz+hxSk$2LOn@dxbFsK?gkL}p={Hqp2qw-&lR{9sll##z z-u&6QT^fOEDr&HKd&$7mSI~)!5O+y~*>G~-J=fVp%!HKS01`0=XkGO#G9;z4P+V;1 zC=_?{xzWX#H%nz_4R7V0oZ|r4(&Plzj7>E#<0KOD=Hz!qa!EDsSH}Q&*``R)wdURHok03b_rBPlpIbiB1TxyzZW9TuDIPx2K&jY(%UqiGt4<( z?#p>&IY_hV9C=ULRIz~0@NL5kS{Mq$8FmcSu7uV@R?y2iuaNn{*#WL~Xq`9QCCJOX zGW=QC>noEp)@;EI`82kXn$TzbJNd+{uqyAQ=R;6RP~KWB?0Ts>M*h%T5t_^X5mIw_ zMkQJ{_IHjltrP2@$+UIME2rE7t&qE#nruvGVvq2C{RF<(S;Mi~T^6;rv$QgA4()M& zx+->(u2au~hNMLf#~$=>tR~+Tsl`adCA%a$L=QXH+U#OQZB3*i#hpjVbX`4Dxo8pS zZYeAt@Z7L8koI6lMPb?yT`6_gJ7lG$8A~Mc!FcCkPCJbIB=g`Rv}ZVdj8W_jC(*BNJFmarT9lPtyTWu7I79Fvpo%xI>nHrY#^ z=<9ecoa5WPEoE=>`YQ`No8)zXHpuH4i|)K~c%S{(U4eE|e~@1IwmJL8QeX~y;y=kQ z3l;dE>{)6Jc0JJ*^~e~e+2%V^-2sSDI4Yke zAaTkA3YnWHoJs*=GjRiQF83f=n-zszDhZrlufiD(=5e=Q-PU^OUi$}1|Fe}NlxODdv+{@e6uh$>r%-op)Pr)Qn2Yv z1H0e|PCu{VhTcP`7#wtr)RxV#y7>@mLz){HL&gYKao3LkZ;$2F$tS)Vb zN&hzfMdr0g@m}klg9*%y92>GstrAUwJ@KA&35tok0weJ&a3;5L+FJ%wzAji7GKG^wBm9*2 zC4AF6Q^CRw$a!5N))86>t!@2b6T4!V8*dfN7S1Sot6IjQn9=FvT?8Y5sh=yew1Ytt zD;q7&+c;W;39pB{#jnJvSsKo!MUDS=4`u3SD!LnFnJc;@(ui{=zx>R3280N#$@I;Jd>N|4j1a?>FF$aan>$lgKV0P zu;09u;iCB=RE(}cZdYSH3APTG$1TzkbY^!XH(-UQg~h}^dZk5Y*gADD(DS0CCvyv@ zlShNsvBT_ysh;e7y4Aaoo{pwQJFCh&53$qeFmCOsM<=p#UX#6HpguZ9mzn38ItrD8 zlK6yO!kIW4&p@UBP~fw96)n#r_CJuc{i}Q{(P^h6lQsdEYO#cnX!jg!G%L4bnhvHz zPx(|@M<*AveM>MaIM+FXtc-qj?l)bv+?n|K2;Y zF-Prah?7V=T7bKxC~fCDm1e~IbU*PF>Ea!u+sxb1UvV0(VChUI(ptis@CEi8Twp0u zKXmowv$v+lY)oP-8BDh-t0tP^_pdYk6xk!MYF$X4DZ4}E zp_EZcFH`%s;^+IpgN6j)qS%vs6%OE~3I^KYke&-t`i)ABg zO%QWp`-6k9rLe1JxO|Pd5h)@Y7dd5}8X7OwSIohGPZ?^Dj*7RYsrJ`yE&A^UM7ofF z9dpgaFbPqfTEN3G?G0C?8Tv2KjC|A_Pq9Nu$40VCSD#$><+`4;7V27xbo@@Nh90&* zQmTN59wv8We`;F_9_xKll$G_A#d+Z%nQcuC7XvT7CU%F7vMl;B!IZP%jbf=@XW2}C zW>-Zg@{OLu+x!9SY5q!eUr}pIC;#up^N<4tI>9U)a@D1;lZ}-7RBw!#rUtYa`8MYe z=^#@HCUlqIp;p~oYM0gJ6&GgHQOcLPuk!jN8=6GcD0La7;H8<;)@CI)JTytMik z?*_{~U`YADOkW5qAf#wz|J^{yz{FfKM77cMN1oPRPFSJ$@;B@gcGVb!knao;lWk4) z;Ue#&J}Vy7tq9j~GTbY#5e^y(_+!HqyeE$l?!fnC8J{hiBm0KjWNiZDiFRQRO#4@p z9ES3|ES}9W?;x-T8x=OtlA3AJRxvXRKrvoDsi1pURZUlWeHfZ=u&)r?Su*jqa$ZW} z*L#ULR*~xSP?`SH{lfer>^y&!tcfRWK{6{g*4&>~vf2usS~BQ(M}(~riaAaz`{eX5 z=wO;|7E_bbF=>Rc1*+Y{kjfp`Z;fL!D5gGcIdfF{3Ra}ZG>~poY=!a`A{F6KHe+V=uA2h z8(SK&C+O8#=O0g%G;W`*9*2%;A->$RmQ3P}=~i=XSf(oH*bl!&zwl6socx5F=$4-9 z&`apXilO^2NY}?k()Tb^wUqR*Y)hHx^C-uWw)lk^CeIbp;GJnV(iXa^P8ntD`mk2a zK^BCTyr53}{q4@*$|=&+SI}wzFahdo|ASk~n|S)&G&d89gdFa7EDPQA9(kC|^9JFy z>X^G7G3X8w2Q^ToB)ls;jAHgRo@@Oq=Zz<{>N>j;MJaslG zenmI-S?e3&uh?KvOZ$axIvu%*ca)_nJyLI4NMR?=ho-H`CUmoB5}Avx( z{*PmVzM@brSSmUPz9C&qby#h3&hkNj-aLoyx7{+`GTxEt$rJxtKx(e_Ababp9W15K zlhq+VvU)h@7l!F{yx1Yx?OsGvFb)#r@JPU2SnH-L9{0Z=t&fV^~txR$nf9 z%%=DJnlf3^@ekn&$Q6Sk$CG*6<8MU0hTRnE`2!jH$)MP{4TbN{Ap!zL#S=(QHiaIGJ1I3Xbn!2W}WHr2UF)zP` z^omqLzVrFOBlQ1~xAGEF32~R^gNm!|xpnosR14@F zdSAB7Hy~vh-$sYgk+B(Ujx@`4K6)eNvf_MHCtEA}u-D?Ydr5Q;GFJ)vN!{C#>25@~ z7^cYoQC?2zD`oM@yr+CgFh#aXJV^A8UtxKooBV5_vhu3=0QL`+hlLcGXvR^Ag-V%x zsiL>o(CJdv3>xEekw);VvWjd}#6}l6rty~12f`z41l;UgA6=)cn(L6!mowS~k?S)1SmI$8K#9O~HXU!O23%Dc)cGDUf;O7Lh>NO3p{%f`sB zV)AS>nHQ?AJWu)uZ>6+WKGS|e!sA5WXY7UFE@moDTcggI!RkzsS<=Gt*(rWU4tXf{ zVP(YLo&uOEyeEB)86_u*nMbj@x%@kZekm-stF()d# zcOcF52FA*_km}}t)waNjyv5iF`4?+Q2iPSL;lJp3+i(~qI~yRuo%FO@D@=9o<-4Qx z;jLIdRfXjEjsKTL5eUu*4Wcl5ef*z4Wpp|dWXlba&nt6nH4e@ zb$*IfFy1rNlYc^<|72`2vXJ89>Xe3ZRpIR*MisI>wmf>stxGFTzM&O`zoY-;PLCI5 z%G5D}JbDZI!A~U1v@ zM7}#;4y)wFlhv6Is#t7vsHiA%M}Nf!X+G-F z?Ws}gEZhQ?=~pGT2u-{Z`UAepcDN^BsG4v16H{0RQ!66V6 zs)kg9VGcER8Fl~_og|O>{)w0|RilwzlPx0|Vh2kjp{Dn}vjJ%k=>WN8D)|oeAMA%x zl#^;OrTLR{y?3SehHXCCC>thkOB=XO!w|J4H^!Po$3nZ{efTNz9~95&;VUIx#f`!* znD_LW8`9(P1Hyh}WS*jZr3c|^kS#Q&El8TYH7QE!8;3|cf)&L=;z(tWf(^p>qDj1Q zln@7Ul}J;2vpK0Z%xUalG#3uYGgID(4U*c0@#rr4ChY>GxYh@ovLaL!K;||)j7`Yf zPEPhzrOH73l+$fV0dQu^1R%XCL$jW=h$LR|tWAFnl4coz_ybCesU$h^O zLMhaW-iXCz=UDHw+R__;H#X1MhP*eQk~XEapzm|#^kU#Obk@~KHj#dFRt%Pp{YQ|z zMGtubtg$#Rb}fM40ik_zg{*7AHV8sLp&|E>xp^aEt>GzAdH-YIhxWVYr_PU@4(Dn2 z2=BNSC5%7QuEaQq+7Tydlsojx1>YEjb2#gLzN^z6sPtg1edB6t}6< zgx9hT;>&0QsYXDTU{=T8UdY2H-)m%@0(e;emC*Q#9FOpQ$OUal6FQu< zUa*M`^t8j@T0he#sabS;v@^NF8w%e@=hHO7r=Cv6VCGIpKWAkxk7`;S^CQ2rU}h!~Y6@=2c*zZZwQ1+!*9jvA_3>kVV@0WKuiZlgMs%Ams;km%bDR!^^bE zOox=Bcf2>-AfDzWsUbDrfvz<2%5jcn#>2Vw3{}_xeFbL|+jB@-zx8i)bQ7%ley$I+ zI5c79cyIC!T6pe77xG;1-SA51&&)#3$Sk;*ElF!wrh0eaChH%4O}LyqoO*-HZPR33 z)JoYc^x@>wo#ElqUb@j;Nr>A!z%)9^-d<~!D=d#`1$InofXU|dtT@GAWPBN`N4EtU zkK1%bf{O~8!CiAxsc-m#Yz>lxx)o}| zI?+<;m0}Jt* zu!DWh8z-5aQ{n@Zzv%i)H4GPXUOGM+8k631WNuNWFkG}xk#ZgL+>=F}G|nWDs_X>2 z>H4f$%9>lWj-BwERK#U+J`rS&dBmc$33f$KQp&ai-Y4fsM%5kcW4($j=PKm5uYIsL zZLIPrXQb7Fxl|6iB+d)e;x?+EimT)IW7FyL;6Pg2aUGqar5%5J3nHkz!7tw9&_4D_ z(;C~sM@EYWp9%@w?7b4ICr;CG&|m*kLAE+9c*z@ktC&)A85GLad?pi?_(zBC!uXD@#cGCVZg?}T(g%Nz1ellE1v=E;O z)s@YWQL>+UVCv#s*n?BtF`E>#R&=#U>t@<478BQr9`9GWIJYV=X=R>FEG71#d72f@ z5xJwu5bq#_N{!)M=w)f_?w&NzKP+dVpOw-Td>y?TzehI6mUC={qCI3kksV>1RLxc! ziaHLHv#1iAqc7+bocwM@8|C~eG^bPaukAm`iiaQ3*R(zPLptQjDV!F0f_l;SfuPzcPjPdUT|QTgLEwcV*p2_Rtw6 z<)vfsOj4GV32i3r9iqPuJ)_%;o9JD#zVf4sN`px*m}InGC@nu7x?}6NQ84;$;#0Gl zjHb)L5skB-0~zvszD)iMy;jrt8reQ>4=#h}j#jKwAPACih|}joHi@P)92c)pqotjx zm1xsX;e-5x9A#mJ(9`&cTxG|i{Y@_TN&jtLY3INC#dNHsqG{05X)|6?{)_&3oncT; z>4=?l14a5kqrrEJ@1~>JZ$evMoa)(kx=ZP`J=5U|y=)dOT~*86E8P3UBdj<(t{zLv z&>pU4)@FFSf57|bn+l5<^0HY3Gh*zfP^~}+Mx>Q}fO^sEk3Qtpwkk0#3O~MJ07|B`8 zr@AY!)?kJW)N4FPZ%F}1bKH3ElKJv0S)N6^IXm+&xvwxGt8?Cw!ooy)S$&-y2=rsq z!Um^5upsI2JR(M#9VqRUN2}47&OdSMYhevodxwo=(}Q3})#d|jg-MvqHGAJx#{lF zLS>{-S&(YcD1yD!^dXtdX0i9EbeC54^v9)rsV#+9j-zy_{b$l7Rb(x_t%dKfb;PXD z1pF+;Urf{3+=_5Igg*D{BucNvN8{VQK6l)rt1Q#}4Qf+^U=&iHQPSt+K)?P6`%4TVE9pbt6fKb70e*op>;3e_PHx?ywiQMzQ| z7*%CnS1UuxVM#iYbY3u%ou%bnC8*KP=`w5^|HiD7O`|r$3D_9~Xp;Lx_Ak-fX21kp zhO{DtE>+B&%AM=!2|gpVE9K8b4SF_IfvtxE5$ zT5JlRO>ZYLD{Gqv)8otd5ox2czq_c^Ip5$d<`^1p4gbP2XQ`ah@kikzK9QA+RfN_C ze_BQQnVd;~hW8XP)+Gj#WbPPP}FOqTWmTQ zW}Xq#vt2?;bb079)6vT8fV~DPcIyj%MiNTC6^b~eKQva{6852J86^Gn|9QLMu2kvI z6|Ne$c=K7GoZZ2WhRP{NfWRJU6TX?d(DB|~{o1^NJ|XXH!~7Qvm%VpzbGLx^!pW)x zF9X~%%BREThmygGsSSB^`FSw;tMXJ^7j~cT!6xs;;&{-qJBENVn>3bmtSL?RAE0k_ z-*5$VNofq%qB%J)V}tD1cm@?^UHksd;Or#EOlQU%4-;0j^*0g(M zi>j_L)SyOHyFIlsr@J2eM|M^C3frTZVl)4!s3$T5wV}0+=4@b!o@qP>^UBk1;qC0N z+;L2Y9<%Ar-N8aaElhCSQOy*(rU2M1gXs-#O(=zgE989PEU#j!Nxzb_0A zwZ&QT8OyU{hfDB0HmALl{TVMTUQrAtY4#?uO?jy8NiuvOt7JUxY3=?%C$ zp^BX&2PpPf;aqjmQpEqpXqWmLriPycO;TCCKs8U{C}H(A~`i>dhQmPfKEv6O4V<{MA0I{eeCJ(lWfEW)2Gp$(gR@OUe^)%xHrv(R`SgxC4`QOUYUEZ)EF# zBhRhJ^<{8sZys8t`F~dLE&T332B~C}@4NUNcEaeeNFc=sj~ir^573hCT86W~4X_K>|*h;2KwL2J|JXDL+QT z)T0YBfi!TnBuzvAN}t@fEv0F3`Vjs=5<&{yZ0RW!M+Mq=mrVP0I8H|sp^lK1~jBC1Yb4vA)O|nheAn9v({9H8V8qFurj7A zc%Gi5?~%>>%=ZiZ#q48N{}o9{Z{fTw7x?k~zPgF5m8t@J!=93z^q7^!=jp5AoK#KN zn)_I4OY4(7oAUpE2LG_;7*7!%Nd8tt z<19j}ioX~N!khTO=ulSHxlwmNu)?x|7n8Syr((m%U_mdHO>~ixvJU8U470W37-5Sq zpv@5ru>1PtP(xR>%$$kI4IISQ6lQh!$|G0TDY)wZp&JTFV%zi4%(1R#xG|{@d7&% z%9FUJ7F{Q1D}Rpq_+;N*ZuHmY-})LzlkuEvsjU?9)14}Zuz_*msbjFI`2vNQ#z}e` z`Vo6PCeeZPt7|E1ARN^^FG%JzCX&?`dK(^2ej)drH|TBI2D4h+kQevM`2pj6XeSKz zw!_`z5ZYVz#wzFy{GjKRZ0<|r4>c<2k`2ApK3aD zo6@{S@{2eI;_RFB)ue0OfL{A7;Q`a44n0TpgYa)^ZL(d}ou1T7cS zh0}hZ&ljko?P&@&zs*T*qA9c%S?B$NF4o?$shAnv7H=B309E5n=^FM-*ay40rJ%EQ zJoM%34Xx=>9X1V%>-8G>0+Y)<5gXpeNnH#_h+LTOZC$X~U(T_KXBk?Db5)I%L!}UI z)wZ$UA`e+17!m2BC=0cv2dX!DChT;5hIzQS9fM6T1kT(CMaNy%!}N0$acCy zY6Sm~>QXb=9AO{rDV$`E#A46ZP^I`gD1y|T?aq>pX5dbikyA*zcBfX+kK^@8d2uHs z_<87OTrM?9RVWVdRc;@8$9%LG66@wdkXaQwVNB?{qz-LN7Bd7SwQG{fOzqAa$v~IjmZz*Bbu{P0e4y6&~ohC{FA{^IyD(>eX1@n`dt>s^6&_9P%30-El-a*LS3T$ zEUUjd-R>jN%iqn!H)dL$QU|UILT`> z3oVhiHmwr$AZL6&_A0c>|Ag6755yN}4=J*pJ?JMfEx(nJg&Y@OLTl+IP9%HulcP?b z*S^KEoxS3-p^BD(3~u{2>ocLJ@XXu7w^`UqUy*QfA=zej@IG+Ku!UvGKf^RAt@#bU zLFe@v;ZK=L-BlLO{T=4P@9uf-nq9J-IiKOwpDc7Ns^@8KLy%@|lor2Gp%w5b&@*j;I=?`og ze%j&=mvUQccFy)1)e*tWP3A|ntOC}@C6x5Ix4AD zK04TFmUWWr3pzVWs#EWTB%Z!~WUQ+c23OO`bAbH`_@C($`qe9;&{V;rjw53P(+yNDsJkOVDu8bi1)9Wx>gRQG}hKA^wi(V6LMz4D^^8Uh(0ErqRPT%1Tx3vnry89fu93CfrWXYR?;9!(tXmRt!()H&aTpTJg^4!0pP*(WTb*@J!4m z-T5f(63+~nLn=E5u&C=P95ye5G&;m(!};&7{EqvH@o!R`x}mB_1Py2tJtZeP{d%R9 zvUcN9QQ(v4Fgl2u($71i@wn_B9bni*TSH-r(SYPowoFty%8`l4;%{vIR$I&4l2&wl zgU!u);V%74Ju&BdcGicaeeFy-()I|PqSsT`Q;0QWgCj+A8(Rv|D&D_nE6oKul#8s3 zm@ZUMILJQQi0*dX6P8D(D+{Bep{!yd>u+C6rbe%dImQh7ee$r|?rO;nnQgJp;-s`I zYt%U)QvlBLc>s@d~*G7HJyUGdbmMb9&@ z^gP;<9g7@~ZV|WB%hD!Rv+#%5LcW1p@$Q`-91H&#sQ9fA;ah~AVy5GF@Zz`pPx4x~ z74?9rP}W}3vszJuPR+#)nRf--XBp?+!0xEq=}Q&V;C47kP6pcx8-<^v?;?NG1BMc| z{n*603Y~+6gig?se@UB|!2AI%XV9~E#*q3p@oKNG8AOuCm}aF|m6_ZFy&*H~9)jWc|=*)5V&{ zdP9}G|72zGxhlnOIJ-IUrpzv?HDVDB)2xvF?J?s`KY~;4fKUaBbgbG&Z!xQ*93`}Z*p8G+&w;*{G1xNlC+1P*{M%S3HeLBQ-Ry5fHi=pEl2@HG z7CNFo@t)%>RFh`7v(00@-$Ac<2bQYdk=7BtAk|FSP>%g!e4c(@e?fR0Ot-X*d|`Ha z)IZEI%-O)Sh?dE}7XNCzg4Fd}?xL1%!b;|3k|a0#bk{L4n4~k<72{RbfHq%ozsv_;-%?)-Eua@P*lGY)QWWxg+cC$!XaoUEzAd>eR?>IL9R$C~%F~MWO=5e) zU>4+qqCezFE*q^37mRa|n&m;~ePg)o+0OQu-qB<5-o1?aeTDg@gg5pVHV%G|8IAgq z2HSG#K{nJ^&9&{b-sJ&O%CSRQ%6s7L(I`FFbWn`re|it&{nm>+*x8D8yo+>H%%uh4 zdXCb@F7~?ex+!B=W88RLQ~e2>g`XX5S)E{6+Dtdc(KOmX7?fsA%5X!vYDN7toAk_IoN5?DaPqebsAHre-8n}E?6pT zM4!SsjECG+|G*E^o1R-d#dak6O7C%82yK(yH!DLPvJ}%Y^`QX$3Z`I{aC>mYa}&KR zCwV1y&xd(3Ryugm9X2d5o{Fl{|AyAWZg|8xJ0?OO_Ru`UURtP|yoh>Bu~>WaZ2GIv z85O)Kykxo_nxe*Z6-MbMg|gWIQWBe~6y_1Qwfq*}(M;J8>kT&8yMn0r1Nk#POy+|W zc3zqwjD+S!LXWB)Ft7;AdFOo$WlaYpbEG646>6GV9ZKa^6@|nTu?lnnPy86Npaio# z)E0a1mnY`&%>`BAIHb$E!xz~~HY4ffGU;vPxWj7vJ~Uc~YMd)T;Akc^W?R?8tVg9XY z;5XEF$JokK9eUZ%!|Wh zN6}fwH+8*#{G5A}G)?2)7Izs^+@<(%cXxLk@|<&%G->1BV#9|GmoG5fZ48HvVZ%2D zY%rk6@A>`Dt1ZdB=RETHygyVVB!4%Z2%@+-HpsM!G!uxkzGEV}1Xjx-(VyF&_9B1# z+roON1oJ>={>qv-HY>Nn48v#Fpy&(r7ih=IO5X(9!v?9oGr+FWK6FDojr^f+g^mlo zutXT9IqLWzDM*%~t?XXx60xBws)fT28A2m?7kCOEprrE#TLX{yMR=*3 z=cM)z?0&By|K}uaZzib&$#zmQ-C)`zRr9t%Qqu+DIll8XqGLQU`K81{*sOn__>IZP z7kv$Ahm)(lsLWl+t}3r-E!y$8d#9wG%y`=uQsSHf!iyX@EcaWd^uVAO0 z;?49g;b%h!*3-E#SR|z|zZct>Sj%RMFJo>fWb=I$$%N!2)nAy1YEK+zRf3XbB>Mt0 zX={=i>qwWV_o7PrmQyGE%$kUMm`2RVYb0hP`!3tJ71mhZ!5<+P3{ROMA7U=#dqcPN zY4R;>g8HmEijL4{vd%$P^O5>~id->$JDLGR-Om9**-6zZ<&GnZR@8GQGj^S2#JEzKPIGH)dhR7W8xZ`xZ zhi|vkGOZIYfwPU@!DW6$2Z${cpTxd~l$63;b1YlFBBiD4NGMSRsYnPiZN~ z+LWKd^=W{+`O4_8;$!7q**C@sbc3NOX_DiUbvJI%w^LdJL*)w;eO#YX7kek$D_Bc= z+|fe$w75R_f*<936KdfjZ;6B?75&7IWM)CyTug;AEqZiFf_XU@t<4u2h`hRYwD3Q4$eTejW?@2l*Qi@41zm~CRf8+wx7=?aL|$ntnY(&dWBobC zu@4sVljMqDPl^@{M(wE^oj=V;E~J4qrht*y6C9*feOGuSwUe$@Adc+0{mMA`B{u<| z-QB#)r4V*4m4hGPxG4l-?`hu;m~mPIGSdg9YJ=ZFd##R_(iOlmX(4*u`;)S=Iphs3 zC;Z5rLQnHHdehLKU2)iW(DRubwn)&za)z^*9di?`l!p5RkRToQ;C}3rqZs>#UbNMZ zI%sk8EWXxUI`<%3!(6$~NF!)vv>66lGK4<*o34fhYn`iTesBh}OA(VCK18z&UxF*F z|4)Ey>ZW|Yvj^^krsUU(7Ncu}XUJ>5H9FtF)o_h&2$ux2t6ISY(!lY3x`rMkJtEWD zexbVmC0*p(WGu>FNfpUR=ol}-dMp2h$#4O^NBd!{qZ+>pwVjPvKm7{!#CD4tLVZ(K z%J-pSY%8CtKY-N#ot~SlN!Sq!8e5QVBmsjWzcU#;4|j{zqWR(J@d~WCUd9}B0beVn z$?j>Y`Mcq1XP4CjV=|~-4f}%w)o%24Pv?h7XN7(7Y_b>PdE=51tsA?eEcJit4{0Sy zFU$u^rGwyaq{CDv1(5?fJL|@lM61Tn)46;mER0m3S;lQjOv>etq$!Y&+K(S2opaNm zD_idPlTN|u+v3o6oM2W?`-ZJk-(_*bGusC83#rA%2)m{F#AqreZ6>Qz9;!FtEj&{? z%#_ejSulTV5e#TjI=d(_EpX1Rbigut$ug1H~XUAL4N0xQyRNo zh3XdhX7LPireGoMADNR=!2SZAeJ<33kNP`?Yv$L?ZmSe|5=(=H?Ay?fJTCN#x28wD zn}Q#0#eyq&Z}+Ca0sg{iWO3<|uXS(+$;s~xwdv@@oWM8sX{2Jb3aN%}+cxxXWTicY z`?1=_JCdFj;5#uWIW4a*agy$+hv*V54^w>xa-BBd+59M(>~1XY>-xz-pjK=hG-lld zce0}RuirqH@L9|e{D>Q|>cLsGyKATQUg)tWiaO^i=01ukK+O;0)#+HzrEpGO<48-A zr1fYRoH;MeN^?DagUwW56w>{wpqH%)EY?2r5V=XRlW$nk+)0=PiqL3Fv3Q{<@siqF zrvGH~Qfkl|QUUu_fY?2(jIB#vhpv&?NVjttoAJ?}f7m6>F}Fq;B=y)Xc1-FCTS!&* zy-tap-UF5jr@1k;EU97CLo0GwEwWeYb$LretJ5X)qjnb_VJg8m@*?t-Tqc(kHC(gM z1=x@pa;8F2=TI^yiX4pKU~gUWkF_DJA^Tt|U1c4^6iSW!12IM$a~fL}ZDY?P-94AR z1;p%`4CUks8IvGco3_?Tj-TSEB$6lBACQKUDQr|SMU!ToOurcSij9qX=@y45s$*r? z9D>~!6VOXrPiP(U;&yNh(#r$V@q8KSVayZ$iOg|ajn4L{34X6Z(`%fS8@b;B%7G8v2ogU$>GK?)Ji{whRdR?pTa`h zMLn@2zAO1|0#7wZGvT{ERd)AD~yGsagU4a-5ab)``3)T%{WlL18MKN_>qb={{rWC4?@C zJtpNCr4(~IS|)z?XG0_QneP-m;+B z2WKCnEsay{^e#L{9-qRsnAgpn$)=-DVkr!bU6KE39vz*)cag4m#tg;|ZE5HbP6un} zxy^m-lW}VO7Hd!+_C)z<6ZMI zQp9b?7i$F;yV7^UJWIb~P#(-@}$j344Ig(|!R3 z@SHc0Vpc9OMBmc^hB>6T=`Z+1N?^b7J?tm{>Kn)2N$=S8P{dbMr*Jhu{$i3C{j!M!oPKQlFprcDl6#C$f?q+fZREHb!rKtV&5|uKj@sZlX2N)FYBFK`x#CPm&NF`KN42GVB z#n4AYHejxB9qtZplSW4lVA4vV&=b=!+NknaQDYO-qo#4Aum&}2B`up!`S`@s$k)YJ zhczQ5q{e)%GmXyHZ)GFWs|D&hO=TzJMyiM4YZ3O_4LLl6EbCyR&4&S*Y%KPSblPul&5%>C;?C5ULF%(Dl2Ma;(Tj0^Gg3TG6;zo%Z0xz<@kQOCg?O@4<43& zM>op_&*9*A`V2uLO2J1O8UABNXqBO{AVY#X^;%<;-Qbv-rZmu8%XNpIpVI%06DEbC$?k{v8!ol zs7rLXV^K&y(%sB$h@p0SZ0cY~zWyYwMmNDwD2|NUJ&GApK9Qntq^-F*=1E!)vC&!T zv+#ZHP-!cv5SYyW)JVc96+;712-#HSutB%bPqM|in_1D+*3!POQNCVnEtLk?P(S;tv4vUWtPRA65aGF)qN(LSk@tf}Hn-kkT7|7kB`(z4-!#?Z`pT(>I4UGySbt}923&hK;6Xo8Wb zksQ%y#Tt<&lEF~PRU&%ZJ_3{Z&amP@%+u+MylzAkvgjV76MFDGaTCpR%p!eJzcJlg ziIxoAfrH#d+G*m{W4i(EgZ)f5$#eBb(>#+^s0LNZCS7k1bP_LbctTzpmt~a4voam( zfdeZbi|{&-mrWlMZJfbHR0o=34Ph_)pZS{gj_C|r2hTi1 z(@Gfp>ehS$k_wNL<~bQOlT3*`PAx$Ys9~xRYzV_)5==7of^5uicnIaK1=NI$m@!bs z@K!k%W>Xu-3L>X5{i1&Z9G%2%$$+@ZanmQaU_LP!14L*eR3dsy6-gkkyhC+&l~0I> zKCk1#Rv`xCWeYGJ_Nn_0`P=c3#HbZe$>PIL03E1^bW1EtwWw@15s_`kiUwyAYPvHE_K1F{sR+7b> zyA0z=PACuWqzf_yzX@BdO~`b2DV$uFBE$J!IK~TD8!|cf4E^5LlGIT*08jp6KHNy@ z@7ff8D?Ar2*^M04y088VuU<7`0lpGT; z=|$@jlEb^Bm*%o1i{H!r$G0_FM)9Ys9SNX9F%308Sxn_9o4l61B~C&I@9ET&e!w{u zu(2eKOq2ek8Dy~cZ{K$~4Okw#lGB=`IFL@PzbCab2#%Fd#QuXL!`T_SLbc#>VIE|_ z5L7(eVO{tSSVf&6`8juBu<=Xk9!qgcS5gW%dJ6s%ivi}U@|til^_!d|KJOfv>^YFh z4-g^t6W?km%$4Z5a9LV~t%jTARBRvn!P$kpfs(Oa{6VaWF~{8%w+}XL4?4!*Ug)UY z=bZ$pnRePHx{{dDYwlzFVi^(<%F+Xhw(=ZHI?fq>rFVm=b&96c?=rIIWNw^%aAKn_ZWSlrwT{<0mS=TZcjnA1!6 zCGZi-gdDV%c}(IHZsa>lm9=$*2s(cT8yfKvbglnL$Otb2@%#g%bz%ltC;dVjOHtm= z*im;2mf$Yy1eCEvJ#|xhNlkRkeH}H=XhYT=6R0zoo)_A#$Lx^@!YR@(Zqv5$tn_7* z&5r9Z9e%X#7K#yBksiwVI4xKaEky(55L=79zJ*d_V^LCp)Cg8bKW-N!G5R%Iax}>5 z_tOW$rZoIF!ED+cGCd_Q{d1CdA}y)U#;wSE5{ECsP%>W!JVHtbt(sk?bT|Skp()<) ztKewHT3HMGZ`>?Y@eLGe!E!uHYh)}Js(Xe~7hE^2cGO9C7)z1#R{>?^9LHHxj5w_rnQ>s$+qsDFeS{yf@R-w2gl4q=p0M#@M|?xcXp z;a|B+JDE>MwZKleM_PvgJicMXqQ1(y`|GASfbf0hKkS#BZsisj;&=*r`8R2O(u-J| zuwD))*>3n6Z6PqIq%TT_pi)3(|1H@aeoS7{&&c2G7>sQ0v+M#HtN&Yglqj!mVcoAS ziqsvYYL@G??1Ioh3MR`ioUxmJMwQK3b0g&zgOLwc6~HW^9?pzx!btBY^3ixBqX91< z3&Tbd3{Tfd(n#d>n%UOe1;~9>3iVM3cM)l>uW?>9l{R(PWtFrg$a?aCY;w(kVR{>F zrU9vll)5)YnNVA?gXn}OBiSrc-rg2QlEYG07W3X9%T?nQzeUx~M|46SQqr`)LrEw? z29gp>caZk(k?8pA>^O&Y!f{Ze_FosjAXM~khZTXnutWBoR3WM23_Vgs9LITU;Ten* zFxSw~kRA+0;HGd(u{zd{)3g<=kFTZF1eLJegu{-uiF_yFU-T2nRVXFQcD@dLjVtuC z#Jl?Xj+p;=M1VRl(RQ2Zg+=)v^H*BYO<->q-V%C7{-wh)Bqx^+G+b8f(i>D?!;fN* z_&uQk+lXF{`{V=Zr8MSsz&@!jZ!3&VT*Vozi{)E1j!p1JnNJHb>8L+E^VYQHIo!-E z_Y2EyIhOM57Jb3JEM`tX^SBebfsD`PN60D|Dtqkcn_7x#lJ${;GKb|P=aY)M;ZP_) z&ueH~(54Y%#x2n4IwszoweNM3yAnnlkW;?hL=w_k;Vm%l%Vh!fc-*B!w_`TB4B7ekGzUS6c<9vvhU~ zHJZFL4q@qJ198zkU?Fo-$3hmqAwqP9u|Jv4Gw@yQA;sBt zTW#Lcem1oWof|c=2y&Emk%mRCv#E}o@;UI>*M=3bHnxoqV70)tkiG_nAD7&uJ%crd9TSi-{oB@-xXTb#rv2=CDorws2pXkG`xwXan5e z|{hJE>!hwgD>Vk<@cqkJl}VVho!#Wp)8dZ;{N@Hj%FM-pOwu( zu18kdtZrJ14q zgJf$OkYZ4X9l~Mk>25{Cfn8v5HlTOpQ%DWPT-iEIpldD`g_GE6mC{%8{fbZHCh;>{ znKqCwN}EMzLIw9Q@*#Z%`$KQhG{d*9q3k>#P89Gk@|)95sCutar=O1g`9aErBZH48 zpA9u&mOdkefZAP+z992xP52|dBxx=ituU|@f~iQx)1Iqhe^ioQFw}+_jyM!5OQp_~ zo-N5FgH6*Uc|kw!RYs+?^k?S~h}h1GozW%GDKVJ8b*J$8@QBTheKVUV+YtP?$=E5ffwzC(6g7x{AZ`7DnO4nKsE`cCi<8!GuFqw(j&OXVZ*5nTiOBx+;B8aCZ+iN*jsf z9JTL)6QHc~9nFtDO8&rjbRW7tI~p#kw?(m$)t&p7uf^b;$mhYyHAe# z7tl`zhPuQZR0c~FMdL+S&%7l4A54;F;1ueptD|(Co>xtAWDzAf6I#MbWz2EaO{>E{ zsyaAlnzq8q$b7>|saD$Wp)d9Z4iR@$M~uZ$^>WZ$JpVQO)^x2%XZp9X5}PhIApep2 z%6E|lmOpubwe{|F7LkfLhM`OCxZyR@Cl=wGw467Na8ex#Bk|~l#9UOW4~lj-jR+K~ zTf6npmjBKq_W}@zy~sjZk)?>oy=B#+NUx=Zi43xi716|ddoT+DzhWR3(HAMWi4{SQ(10c9fOA4X9%0v6LhI3f%1(0Ax&^B zg+BzZl_gt?mgcE*59@y&lK;)&$8OuIdllUqMPTg8Y-FE zBDTnz%|GO<4-bW&5MbGYG8*t|kjItB2RKl{;C+T_=>EDXY!AE%l!CHM9(m3Rz1=J- zsWdZKGT4Xc{L~fFf9`3lyL3Lb6iP*I$r|&|&O59l>+G1$$GXf)Amh`TqtfFLGiP94 zp06(UhsPv2a-V!UInGA6LeWr;rX^6)0fNRnQUr5yu2Cne5&kzgfX6INa3u5s-er5RF@ULo2yvCi# zBAO*Vr_GV&wwp{QAHtxRt=_;zl8Epo6L{rlPLIld>9gOk;$iGr9-fFRuZ= z1Jiug2(^5_v9k0PYEg>V&q8nWY0&$;q&;%FpT_T4zK5*fGst7hq+i7cE=#^-ZA_Sm3E0EM#?)yA#!8NpOQJ_d9098L%&=(oU3ILsv_Ws)1&fi?CkLX%SiiIvW=m&21R6q_^A6XZ62EIk2_j|ESPL!yk=fDxZ!zLszOVj)xc^S9H z`JH72X3E_)wxQ)TBi-AhOIZ~-Oo{cX15@Pno!uqqM8iYpb`?{!#$DADIK*D^88&$` zOct@H&h4%{)`7XNbNh$7+cyW-pnktI`;A@1wAgI+w|TZNn0Uf!Ld@4R*dWL}n{pOn zZ=fYz4b>o(RPoL*eLzN`s2Ufn3P(hVth1~o>yj;bP4X$#sch|hL;i(^=50!3V8Z{L zYoxepEidn1KsG{L9e`gJH*?gpJu`O`1`=fAkxje@nG{CV8~aGNMq4EBV*NW@R#RL= zhNB;_0G65?%KxPvlZHRR4x|ogxY#W$kyUm2d26GKd=A`AJ)mwZl+StK9Z4r@nzN-m zJtt2Z6Uk%toH}e)K|fkj@yTOgF*r{uL<`jS675MDA1C{{t;Vfz8$M=FHh>Q9m==VLhc*1EH}{6eFp|a zWpI@B_kF`eWlJI>KbmXjP2xj>CM3z4!!rZ7%=Qtny z*Wc7}-Co+*MO@%~OE1wqj`E!0Ep>uCrQ_HgdW&6?Irv0(eX=B;P6yiOQ;fkFr`n_>w`xBE}o#jlb2+ly%Ek2KQTytMBi*#DP%1leeFDIr@RGv zb5N6`DGDmmJ2}_z3f7Ymfr0McY^kCw7$UuSZ!glvV7Rp*?cr=p)bQ9SDn~*VZA4y? zxtbYJC1*HJZ-yhW3nE+PYrTilUqcHLr58vaULJa@|3xQRFWKP8t^B4Cf-m$rn}8e0 zU~~zs8oMO7Nn-jedLB1DZ(w118q1Jx7m@a!QN+C=^u##Txehe0IQ1u$d$?yC7 zv2u>(n1oTD?^1qcGTCWs87M;6fz$ks8gfVD)BOZmrY4Zld=^F+Wdg!e=}A(Zmk^Gl zKWzqmn>QP4^^ej|*4gBt{wZG=y$`9OQ?f8Bwf37^Bk{eI*$hqSONYRkMOzoSYpz3X zSlhq?Q(Ej6*-RFu{Y_ki8I_8#NlD!H35L(6R7C?}N>GP2)T>sUh}ImfkM7)eI4p!OHl5rPhKaSWU8 z{sJQ{cCs6$r8I$XteH^Ryf&=>{eYFp7>>yZ@HTqgSr7NR4Z`7Ids0jwxxGn}$pm+- z60CJk=J~SYn3nS#(+7(|Yh=s5WrA3o7N(aFE?Tb``UJGln|PhQ$^6`gj+H5OJ*(K@ z`Cb_*s#OQ=ehXJ*K-)8q(EA=rpkptswp8J&p|VKT%6rp8JJ&WGs0rU1y)fc48T?kNsgNLC4t^$e(!X z(Yc0YWUTO;RLfQ+wo_cBbm_L5n!yxUN$c4j;eH|%ldQdweLK3?k2FhNoux@us78l6 zZkbP5nhD4=K&MZI#0*b6SQe3mYdSi+w(xemDqM;W5*oAW=5pFB{u7?RD@;4g+x*pH zGFfplgA~W)j{mVDa5?{zISdx@obGI(9zT=vf%Y*D5`*R&VpNdgF7c~#B#216@02=+ z7#uak*}@RFLYNer2zO}G8zm3CEmGbj{;)XdX#ANM$#r1_*-*5ZcndnpFX{4v%|Iy( z!Q_K=uvlnoxXktzIi^|4lvYglqz`B|`Bc0f2i8h)OfVU)@Wx9TnSL_dOeq58R1-;0 z_ZInAPm4U2I4f8eM(DbTBhx2~*1XQvO?-)bIz3`d)3jJRm!|5Xq%2l2C3$J8^d_iN zuEm@Cu%fB5q|6kZ=A39=LR!gwhc=cHR5IgEKiw#<$rvE4Ap?{Ae4sH}{p~iFt8JJRF znXeF1zF3C{3gtnAMJ$$-?1i$W$|>RwML&Bj7#yh}dy2fC-m>=Sz*q+>U7$Hk7y1?K zapE40TYAc0#ysQ?uSM8w(ZasSLH!z3!+D z4AgIv?X&`2Dc#AdZZVS!^rly! zo!)^}krUp!fbv9-h~ z%c}8i^5?{u`a;+%G|2H{B{2*_vBtt1byN0_!1VXU@h}YLn?ot*ql1yGdrZ3LZ%JOW zRGBW;2YQPS#pbA08b`0NV!_M8dYPJDmA6og%X=jx^nJslJq zF{Y1HD|105YBdWq>c1d?Cm_g#pme1 zC?^W|d1diLky^RS5=H14GFq`TD$<`w2xdWNuP8U*lcRuh?3d&#w=t?=D*)&Ea%FTm zDI@>QF)RaORi~)2-SVp+1217Iwsl1uCn>=FW&|7T1$R5d~W`x#cjSVP;37O=;pd_fkBG;iTJhqDaj zmvQouMsq?R-D=o}RcU$IFSH6B?7a?EAV-=!tg4^J! z_*Qhqsbq$5n4Cq1)-iTMdz{?RZN&}KUSY7!fYZ$H*(_TZwk5bhQHcBNJEot5+2nd$ zD})4_w375fnsmaFChRdT1#A3)_A~7U$FK|NMYO&`{m^hLbVPqH7!hrNwbOC!aCB3h z*VJ{^NL7TZ`8KQ7w5wvN--PGwUGkmqyYOSQA(vaqz*oU&>tfLQ!mh+(CHu_!MKwYz zB;t+beZ)P{wzNRnn>1Yf1z;YY+@SU2<)jE0W-&FEfk&m*ileIZ<;U8OOB!Ga^& z8`>vN(2dF3Y@GWA>nd#*UHTEYSE+@3vpml=Ix6=+sEG`pWb_?O6SU^5`r3TvlFvaa z)Q+u2-Ed1nNg)wJt%ChXEg=-%ATCc-kfjN~gttdq1*a-a!msoQ8E-|#4lkw|mw!)J zAGcK}gKLbY+-u4fd^G)sZ6dz}nt}%2@M%g1Zf$(A$-Yi>r0|8qAA!d-G)JwzxK?a@|HheL=LpH|!|^n^RX3RWP4a zK+@G&Z%bG$o#VCHE0WDWOWh)wqAvUwrbsBox5`!ISY9o9y`Vk68=02!z*!v%^bb;J zNo~k-Wa(8$hyG|S(U!;E(Y^34R>M0c@s2hUPeul?;&5m2H{q5^&Z-7V78KKGI!{q$ z+AY`uzd3JV{?h8ukkEJ0v#8NL6SuKrr2<+vu7pt^DmPh#e?o$d8b1`_xGfltWt7|w1O`*4n%iD zZ~dv5(*2+AXZ8)N!4KnpVq9{)`!87?DJ4+OQ6$h%`QEX^=0`zIzG}njeOQ$4k;H&xnLibrUSZf&<&li3Gt+8G71ha@2VPI60&$K&I zx=7~?5yxBNCvV|`_e;uuq^ZQ&A-HcW!vm?UMLQTgMWJIdJ2jwp#zupMK0&7H4kQwV z+;ioFSVzy=z^Vx9nn^?VWLHb)8nIpc3$zVUPPYmzEOr;#?~9$y%oBffWhrTO{8Wml4ZewZ7? z$;yT1zTzWKrmO(E)6w$D5tHR&=$Ye^JVX4H$CDnuiG7Nfr@$|S1_dj4{u0v7gM+#8 zZi1bJ^V0F;c%*$Mz4SZsJdsMW&a{(rDgL(R&JKc7>XYBr@Q+Za9wn5b+tgY5orxdh zomdS~AuaL!$A7}SiC&87(b<7vVy5g!sJ@iyoMZoiu7*7Ed-=40+40V_3%Uy9Qx1t* zdA_vA**Rs9LPIjGsi-J1Go8H#e23eiJRRvk80;$YeV!E+IXk)TKZ8niFCC7^1B!>*HbS2av z3t$?XDkuog?SN_@LH(a;upKp?_2_hOJC%RVakSm+yS1DIw*XR^m?qj5c|PP$vB!zM=^Q&%>TJ%|k_-KFw5zl5}= zd}2u)F48b}E!KMHf_q34Oc1|?+MqhfBW-3ZBOF)kH&!8T-2T{wH_@Td8@y6%1#L>^ z>ASPG3EZP=uHvVCBGOc7CR-AW3;SaZm7L|mLeDu%cZ=)vbRZ>-W z%&+6U(1i|C7|06Th0Rhp$Q5s2a?Z0*8m1o42Ncn2l+exM2yyXU)M}qqF=uUGw&Wr|0gWw9CPug3yIfhu~sTzwNl1Wk$HbNhoVn56F z3w?w=osFd`yp7dGdz-(-Dy$)I9KVBko?qyF zTa1jhk76U~CP`-bf~2+0+7)1dio!tNKKd{{{W^0pf|*9=Nz1z&lya!U`w>0yROv}bZJ(qlx%TMRdXtETGa85H3HLCU5g>H}n zWiV?go!klZQqRO}pQawJ7#$oz2IEGrv6Sr?>{*o93^!tJl{_-7CmoXdpL-I&*UwAHS26NSO!@ftcq zGj%OT8Ov!)PgNh`D2;xQAJkl6^Wu4t<=iqhIqoB`U6SwX~$Xsw1q>_fP%&4{=WVPYG{*-$l zbtn^jm+m`pe}0(Wpr4YD!6rKcYoJk}Ds90gLOaryk5+dOABFrvPx4&Rf-Ti&D1L}0 zEam7i;$fGi{x~U}k{K0-L2G}dL=9t4=)~-()>%hntdRajKB}Kfles216J*c>y9BNO z74qh`yOyw@6kVKG^$pX;h5I>>cB(B6N0qJkP-o0NUa*AP@=_%dPB2hSJwKzj z&6d8^(;!iuoC^F));NA6wPcH+r@k4iLT&7E7)FN+qS#hFTDH%+5hkZTcRi75XeUE2 z*i$fxX4+!TJZd7p1w9H%1`3;@h^&`GC&(=8k~ylDR2IK1ybV;toK3B88PlD<<2%gr z(|cLA(Yt8{n)U7!#UgxP?tq?-2>r{lk}LB|S_Vc#n9~(E&X$6bot08{Fr|18(cab= zSt4I%DWmC}@-2QxrC6L-@SLNS9WiwF)U&S-REA2zOsEY1g|h9O9w1?yFn*WuCwZa= zp$Y0f`{J&qxGW@Ikd~!>qEExy*;;pyZOGh3>Uvacfiy+d5jVuv#Y5cFz^d#nJ`DXt z?-L6YgjT{~veTcm{ex5U716C+=C2FivXXd{bQ3$6jjD}A$z0mq&?r*IIFF4^wleM3 zRufA&lE_Hgkfx&d$kXtPv<*0|s7MyrFDmQ%EZ&av0jYvJ^|2v}JvUoyicUao_6hT^ zn)ldujG=Axamb&3rOM6t)onx=?4V%XgXfoKmbgMGVX1Z^Zg~)qR zk$JWaIPE;H*22Wh(Y#WkMal~OHR%-V%oJ>ww3o75 zrXBK@q+PPKGYjAO^`SFduGT^z)Ie24}u4*eHdE%_PfrQag%!8&4|P0rSW zDq>OZRDH|e86H{&hUP#YAq_PeewH13;Mn7x5&oaqZk5rNinKr#_Ks83kJd_jwqm$; zT5sN#?}^TUx`uS=cSAAgDNZ!&gzd5&hSSt&*keeSRc8kb5oj%S!s)|c@i6MLx8w^me3>>wGGw_pvxG>|Ht|%BgT69 zO<5&!lBN4z;=43f+aMezyR7T;ceyU6mLxx7B3@B$<9cV0xCR}23g5pl92Ik;z+EsK9;lWiFe8cN8s9oDgTWA$-(f$CTOm!G2S!*LC~c?g4zFsk zJ7jb)Gm-9oRITgvv^q&xN0G^nC`%W%hy%;&uKTvP>B3q36` z+bkvUF12q+0j-o8c3ra&b=GBgO*GL6}3e$1NC0o-fqsMMmPsRg3C}UUU^%`wtSH}>SI8%U95RHj;V06UhwA z3GxxOAeg|(av8XWNHLutwAYO!$Mq7c5S=Zw(>$ilbkn4{SP$sTwOun{NT7MNtL+Ty zf*sOia|US1B;~-!C*)j~wBK@Od$XY;YR4DR){;r}VKFlLn9QxPYqYHu~~nAt?jLaE`W1O&Ip;v;owRioy|dQ*O)5 zGyhCh!vz>3J>q@H>*!8Yv$k+eNM*@Sv>VHIk8#|0_M!VdZraX3wA+Zvwwlev4TcXU zYLOj9<4+iZe2 zoERv}9* zElCtyab!gGfa)pCA%jug6#|x*HvWA1nRFs*BW-1_j4sbMe4JaJ~fMB zm0g|>z+Uzd0z_Uf5H3 zIsA(UnKue4q@Sghp){GP+2DEYGTKwf0eDMJ!z@0;_N)D0R95fTY?d9?cTXKfCq;hu zjWchOeG7BxOVZfbj*X*LjO`;$jr|}O;>K+Ac*A4wN9Q-v8r(j#&S)TL$i(>LKt6t# zUE?zXouIZNi~VBhOU#iVSw;S}v~ay(GjUpZ!SYBm74`83p*Ip#dRG?j%!?5o-;p{9^A}<73|OCc0RL1cIHf4bX4dpC%Q9gvOc`^lD@tsS>Tqi-`ZySjtUvEBFi93}wj!zK+f^S4~_> z>n`-R<%%UN3d?2E1Gh^p;36grCiu1otCP2u)xpKl6SO87$-gBbvLp6XXq_?1w?Fli zWhI$UW5%K^7m&awo|5&;SPAn@naGl>Vp#+oZO_>Vc_U#3EpBdtGsCA~Z&2rXqJ{h{ zwcx^@)v0OaMBr5yp$L+%Cc!>iC_S%xx3 z`zjujrlzp4)HBxfKsuO`ttyIlk7@8T`{MmgHiWiFy=e>cc?*tZ)`58ZBYDp23Xk|= zbnLGSeJ2eP=4#F>rW*&S{~_`PZKHKl%cm|B;$#(6NHpX>14JqoR<$&8%Hc(J152a$pS&rF4yQBpMIZq%v=v`_9 zR)IC9l)a@lJT@4t16T>Oygy(v?6OoVel95I&2ek+4%u1t$US>AM}o|ETC{&#+6yP8 z*|MS}oqo-qMqUz+<%MSu`KYc(Q%E(|2b&J-3a_2h$!NYg>UGYEzVa>9?7;6}?chq@ zTX)?t$#FidsnEt=NDC9UX%9_FXz4y-uAh6|ahjZWUvc&~WkVnH0$N4Wg4UM{;tp)) z7|2bIePS2h+R3G7y3cf`sXhy_VX{*xdtsX9wBuY1TRY8ezBu;*SsO2(Uc@=XC*vz! z;~j4uBb9IBb@KF{qh15C2QKsP@%GsonPul;x~-3?FsPMQ#qIGQ)wNuIGOOexzterj zi7?arPgEghsB4nn9Y-R^h4#p6cukcSBG<5z!OE;7yO@4WG1Jz=(K1#$caO8Slu26% z(JIL6c%!IHRB#oHa(y3z_JtbfrQDD7X{a~trY-H*Nj?~xpdhqomWK5I6aFtqsWuu)kup>d+u$etA}HtTpr{U|( zgIq=`2Q{lFT@o7bzF{rSp(o&~Q{R)l?oA7BpmVTUK<>z8wUxOz6;`4h=_PjyR-pS{knu{gpILwC2G_|70i0j68j;K7 zSulqt3yok-`MFW)D^Y z$#~^aoh*rj7=NsNd=!3)^-L4RTAC+bKj+?>m=YO}iJN;k%ic+zhe51@^0xvmFUR+i zj=HUZQsE9}jp(FVs4(`kA7e_;gklCInaqAQ%SdnNK$<`xn8xOqSE2{4A>RvTBpcL& z9*zk5m}U_m_1HIJPf{eNBS!eyS%JOv#8~x$x5(tc&^2su7BVaLdcOrsp=LNeQMiZIxP z34-$+9d$5Szl*HUI-sf$qF1fch{X~@2DOs+h`Agw@f(sKw`Q~z`vtYECe7mKWy6KG zmIC!%@?Mump884~^ynPlXd407SX%UP$Q$ed4KgxxU#yR52KgkVqnsJfT;(Bv^^&#J7?u-`VZT(wwKU$Rzvn^n+RYFD& z+RfS3a)*_)=38><4XF%SNG>QiJcJ755N*!wtOgR6X9(N)ed!qK7fHbJ*nGA`yzT03 zI6=Cp$MX)ciYz-hGRDZQz)W5;(O0MoqmZ9JnN@{1=11tU+N+)sZYy3+Tqg#x|X*bh(+nS<>}_v9hpSb4*|1IF6n>b|X#18Rw97fR>^o+_Ih9}$R?VdSy-KaD-_ zm1iAq2`$Mpwj(~8QSvl4)z%fAT;2WKLOL43_rTLA^s?o^7oYOjZ}}=p&6JkPd`QIODcv=3BB+QaM`p5c^PfQ zww^eg;C%^%W|F&I3JbGC703(s1pPMmJf2EFCNq6gk{Z%KO%4VAPPCS6gRsM}oz$Q= zQAw=CLo{2ogl_Ri-i?A%8o;Njmr5zoszQkfdbd-W;9DXFDEFMv|Cw-_hik+pQW zxq3Xbz%Kq6T*@kj3iOBgXZp7-1^E}7LK{N|$s_i?Q%u%W%TY-^8m&(sk?OvZ*sXRv zSZF((dXn7Dt(+s`qBsX7G`JOuc{f+KbUwNZW53o(wiEKoYwBacjD^gYWG%e zHRa!2DSGH7x;j1q(T%)f6LRL%))$^qne`y-Xj?&p0Cm3G}1pv8(hJI@slse>OWq@Wcw`pe zD#nD3__y@{JGEL%6)Y3Ar&t1=8EwcNcm-oJCqNz2NY)&icn#QMNNYrL z9cy5wb6?6C_Oo{g!S|o=)=-A^a8HoS_*ys#-BP#u9&3-opx_Ot6vFH)6d|&J$a>SG zY%EM*e>rZFt+vK6INA?4B{SJFTN5bh9t*Q0Z5;d5KB1jw5t|>y`Vrxp?>_v=#yZNf z3BKIm2#?COJG_LQHR6qp4}_tSn{boi>5#55mtb%8$8?YRVkT#s6-xyRe2SE44 zdR`*Zo3xa3?GNBW^4kW0EoZr4=ftE?q6 zM^PWEWo58dH^W?2I^k--j!H*O5n9@No_xZms0!W8Cg#eWdw4a!3L7{bz;OSyEzq63 z4y_{nc_*=EQVlDhoO1lyv5YyoOedp2S5-16zq@L8$RpoCXR#uNVm)m zs5rJ@OGuWuP~VId*H>YAdsh|5?yFJ~7 zN&L<7batCAW}VXmqA5O1{!!SeKTF$#AOFmjjCo8Wqf&862nG3hOICQ4u8&X)E@~36 z*)yIEbX)U_kcfRO$aC#&awR5XPU3zhODW37+lufmRiS#!O$3$e#d;_YJ0J0jEQxb>sdzH3tAj-7QlyENll8O%GWA;clHn(| ziW!Hbsg8o!7&1{2V}D_n_+JJuyf^OzA|c;gYe{|wx1;~U5Ez0vvN6IvYh89VtEZtK zpF%!{1mUx)r@1?ChnaCT$+8_MRRc#zGw29^(WhhvnMJ-Z1@^>wVg}S6&0q&Gz%f-%+D!!JhND8*uf6`x3 z_rNBIk8Ca-oYsf)U|A4oEbkjKG`Ul#roI=S0eU>~i^~o`EAqiKfR=%!sXO)C?JuDy z;ff28fqsjsrnNA{xKsTX>F8R`QgHe)KyIOyX@uo6Y~it&;oEJM&6lhdVV>ij!GZm? zQ=x;nNuwk$(eLY(g0AufKa-r4QyLvFCqGX9u{GuOtO`g^9S_G1J?Kw(Kg?Io!Bp98 zSjiHo%AMfV?eDl`9*udXlf0t!Jo4)dQq5?g_$s(Qtv7WD&l1l}yWogTE!>AYtUY=j z8YEivEo4dJNn0vBP3g<}=jZTJ z!DMb2U5bN3TKLX|bTyxkmLPK>QZO^#7q=8Q5=p5}xDHgL z=b;{HB~k5f>17GtfE|^1DZ>`cG+|R@aI|K)fwYhIB&QuM45QJXVPVhw&v7zr18wa; zrED{7Gg_Ge-#*u1m&ro2$RPbPb1N<<$CSMw2arL48zci8YYCEkb~pYMZlz8H88S)g z@K)$WSxW$YoY|yzZbiYw2T7PhF_x72$|gpJK|>hJ9F8e`9851rr@i2i=9)U+{D@@m zvEn+R1b*|DCa*ziRIlwt7ne&@GGjie6`V!p6*T9yf~8^uh!xo)MKY(k>zFE&m8cc(*PCHJ?kh4ab;%^y zD72-c9RIQEFxg@vi>>cTAKFFyRh9z>u+7#O-p#iMt8hX1nY9Vb(Wl`}ZX5dC&pH!A zY3Em}>nT6-^Wk!2re%|^A8W{DiAu;1cd38%9FIO@a_gzo`k^{N;ClE2Prz36P>4RJ zsFu6K)Q5B+`^-+#jH-lhr0?{@t(8ITD@$;T95~OuGEPPk*F-jvt_?S0PsDSfY zzm|;A)rSryX2wF{0Ki#aUjgQ**MZ@2+d#T?Y7OC>T~N>Y}~WtZ%g=q*RK zgy}2XXDMPGStq(HKPmlVy^Vw-JKTps(a!9$GC?DxrOYd@V>zim6&lYP!WhpSa$1Ky zxp^m9DmxlFL|z%zON!VShN`;$2A?TE4;PH3bDJlfa7gHq~y6ZVzc4gGljk9#_!$v3}?{zT)eu zyoOu6A6c#Z5WkJ?$QRDOkzcXbDg_A>N1oG7O6jQkG1C_LYu#fDaa=q%1_dYz7J%`n_ zsBExtif=V31_M2x=xy7@=w3b{B|XPty;$-_3`rEDcnOlF{DuCn)QC>ZDLp`h~R2tLrEptgIYHPwCA<1$mrMI2bik z3;T&w#3V-}^k1HjRl!Vlp=eu$+jAX*&w)R$+ID4{Y`nuc-;L&W~UZwt<`8o~<2 zL!m1_0<(gdd{_ERxrgovtB8e$U@(z1*stEfTEszIgN@q9A*<$Cn153+hH(* z@1PIhz40~niFbhm5_)4y)yW5WMe=XFh-_KzKIa1=!MSd$We51ff1$_rpzI0j6g^^o zuGf9;_oxS+Lo`e?hEFIfOzRoI-?_#O$^xto5uh&USA(0 z!^H1(b=(0(8ktFDQElQcMonf`nTv(xVx?^c*y(G<2|r?T5G~yl$RxWp0~03*@Fw{` zQfw?uUyZFBH%LGJqM(iAXQzoBMxT%Z%1UzboohJE(_F=GeqUjaw-J~YwFZYNLwIU< z!#hDwuqiXB?uRScE8xx`z%Lm75=PKF+Lrc1OmMe1o#9r?DRNt^K>vaXWUYC9 z;uF(BJ@YZ)nm?#~PS&Zl=^HJRuzBwra!7U}a0vOhrQ;RSr|Y|m4(5*j<^7^>j1zc@ zlu8!}Z&O#j?R%&ILYjaFAz^#2b=3aceYAs1r#TLb(#^Xk-v2Jt=-fTImWt?E>b)4 z7pyn>2ojhKCxldV?kz)2Y&H1tK6H=Ill8cv(Lo~&6PYHcp z0`2IXMenM=h>KNIC9QZTy%*QOd{QBL%k49^g3{4a(938blkm>`Angqs4<6cstl_Iz zdD7jx%=N{65!I{fJcox_L;rWufZ#kf!T6E>NDIi^WOm^Z*I={YsFzz$@tZI|_Lb_b zVXZvNdzdfP7~*5_-dNQiWwnLPh8)poZ_8=cA1SZnC#CkH%rFi!{PM&L*&_YnAPe7! zb|a#*PX0DtN3fA*irtZ(^oevTJO_Hx*THh^rY(#A9Y;o&qPkhb1}jHLT43+OAzMTE z$+0Exx$IOT%W{xiaMXi(jtj~QAey@KOB{Q5$wx`8`rav*iUbdm_l7oPNg9!Uh^FR# zN>M_ZyQ5Um;=#_g2IdD44-`gnGwTr!eRGWoS#4QBE-RM(lTdDcon-RwIp6rIx;_&iSy5E z*8`^`1Lu%uE^M3*zS(5vZ=f?`*WOOj;!6))d5lm{43Hs$MDOp*6sjB`f z%cmG~7B`gS*F)xL1$vxq&2L9m(nz#8@8%mprWuYGX4uB^;q*hGgJU*Ts(<7vm!9TE zDjB9@H+m=kY8qpuz~h{2Zmquod9g3L`%dMDb`Y#+@!x5>`i*1x8jrjwfKVcN-v>X!sbO2@|f^1(lIS?2LF$> zG*#W!_zPJ^^@vEgV`}D|?EIMK2;O&0ci*CwAx6~3JJ5}c)(t4ASWsSgMaQN}-fU+^ zxE6T;KfqKt7a56fuZ{NJ@$s}b?WO1&S_TuOZDg0NGORE+hf2tHxsv;hvllCkyU?SO zhm5B=&|W;_s7Nj=yRojMou(?uF?``+Lu2niIv!QcMvh&iCs-nlaJt;D-kR12)5MRU zA*qdxQ^(NN857>e-bugm6QSp{4HBcrLlS)xx%>^kO%7|mCx3>Psn+Pv!cuPVy&!Eu zU!b(IrY9Y)S-O)gfu@c_#(PkhvQqbqo_0=Xnpa19Bu3&L;3DdqEz#Y* zEAKtF4f|vlgf%H1b7!fSV-4FxKdb&B*MhrXIjhX3vwh?at>v1_4l3S~ae3$9sOu}% z(AZR#fp69yTyZiuypOF{ZcDB~hT_lWf4zgajaXRg0PbgbAY9zu0V<|Hw-#l(%vI2Z z-GdLv#{Lq>uum6)Y`$@TgR3{|FOg-ISDKxMTYNXEfz!qEs706o*#+VBd|7)o25-@d zd}?fq1g`?R9WL=U`E5W8;}fkck7){h>=#2FQOQ%1YE%V^^p|)BhwQ_hbEV?Y2Ihsj zD6QyKJIO`ZD_z8?!h_00Hu@d(=}YA0l>eDWi*rdB-Bjgy9kNQL#rs!zmCpLizaBT& zKavit8ARb!bQ<>UTJe6ROKZXokZwSNK652XWU-^d%- ziG88vQL`)s%PqypC~-9F9^Qkyjs$5RRKOds^i^3R~}_zLSRmJegoEL3gn>YgSp zqO}rpX<9*QUMJ+5MxnO&&XJ><3I)b#Y#`Lsbrg;nwy?^C7}k28>N|!e z%O~KuKNIrv>)=gZ6TK9ziHy|E+L@`xFhLq2mtnkcQC`8}r1wHuj-QB$79mAcQ{9ze z5@r-m3)^#t2oE)JbSP}hFVFU?H!B45M&B8s0^CJ?aiy##vH*_IXJnwNZ@3aFhn?9j zF@x?G#*(qYTeK*Y*Ue^D_4oKzsz#PW6I&h(l;+8n!vS=beKc*-IHaFh2YydIhu+R# zBPN}Hpr5c@v@QKg_fhfxKH){a-}4R9aNd>lQ{RF4(FX9ftEXtq8-_orDtR09lLz8< zvVcryzX-k9?C5@|$_-w5HCVObUyDB-)>3>?Q?rUCaa?U2R0kVLLuG2_pmGhlb*8Atd6n>-IX?ios6Zh zBhjj)Zg3-P)XZkbBC>za04BafUnM?f3_19^UMD!*<%wY8TMMX@6L5u$uaY zqt0kPUF0_k%HXvXm8Uj6|WjBIP-#uUL{3gvU^k3?&>X5!E5vcV4QBU2-Yv z1M1dnsIZD7oq??t0%-!>VBe?R&xYsKVNXHHYC?v68uMWTmxlEWK6O)LV`){WHVMFC zUJJtND)7j)lW$;OM|ZJXnjw6lZ8saJvG}V>J;ZznhAO5MdZv>BnytKXbUSu6r$U!- zZP4+Gq!Qmu{sA9vk@7vSW{E-#(h}AetcJ_xInv?yTyFK==QS86iwm+M7G6YM8_#QB z?hovKTC?=*cpvBDWC{%ieu`{mzrx?xS@DjHbTy1!u}*>X#0rCuwujfFr&Yt)3_job z-r*}~5&RqsnP$KkX(jK1w8>-aC~X~CZmGiR`Om_7`fuuZ!}sAwWUVhi+|EF1HhLp{ zhUGLP@g};9*OcCCK1oi+8O=NP6K+g4lL1K)&c{cQXJn{6!L^tH?kqJFeVSSHFK-E! zNJhCbQ4)6RH?pX*E>tyF}At7`L4)% zyVq)CbgRNH?vX!0O3Vo4hVs-E?)D27k-745dV$}gHDOSwfkPLH)2-(3B*9mX&0~6O zsmg}A!asPYdrY!WPdBi$%m${@OAVf zoi5uVOHt|cojtpJN5yGI6VV&%Mh21|YZ z{@N_%{;qFiZ=S41k0a-Im1!Jome(Sa$g}uX)gMABwNV(%n|oujXOYU{dH)2YfLG5O z2s&EFuw15G@GQL;=}IeES20aNO;!ZiI0r~6S~b~#4_15!>Ey8ZTxc&`aqV^%cN9r$ zL+e?WW3&8FQW%|06S*lYLpg@-i>hFO;fzer+G*6uYgWb;$Wrc{{|-`Vfo+c7%>0&8 z$jpC?G$aS<0n5l~u1@b$u!F1?1_Zj{KDJQRpVV?ZH*Hia;R&pyyM(AlEty%7PVxR0^SAM8nL`F7t8v4SJRx4wj-SYQ?Qo)zCG_S#T7+5N9G8 zs70&;8=Tj4$Ti|#X|3=ZnXS@;(RT{nKy`(Qq-FjP*TLwNlNJ%-WFOcp1Pvi2*|^bM_9 zrha%fmG^xQIjU7iI2g$r%8n&#!DwuksO0?-Y6sp%cjQWR8dNgvR5wfH!fCh2&d0Ur z(9aW&W0S=+dWlbf&rqC}f-9Z}@Cg$Fjd?1on%RJ?^UsFw{f*cR*8#;Cg#wiJ8u2HP z<8KL0Hbj=nUMH#-sqP)e-r;uei~MiXcx0ojjz-WA(|>`>e9Ur2IK+MCZ(=pbbs^jJ zBOgeIG%lhB)6i)AX7Yo4nhb=EJeX4KPb$B5s6e7m(m;+wT0w&HWwzy%0n+Cpgg8a zbk*Rgx;43JtH91`euNA1Q}AAY5f#+o!7#bwA7|2}tH*B#>RRt;AJeTuSvU?I3VbA+cZy8Q zrAZe}MP}6&-$3W2&}v6 zIHd&t9@<0CL|4WCsY5M1Ck>u?gS9OsNzZAJ@sM zLyvqRJV7~|uV)p=Y50j|k-y_dX}jnW#T=+^X~e>0A)JD(b{$=`g0bUhCY3o2XrXM_j4@(MQP`lrs##{@ffS zVE)2}r*0?NxEHbUU9^Z|EUB)n3QcrgvV$L^H)3h@NN6>4hX)C+JVokD;j>Ub{MUqk80{yB_CNXWd0B?cr={`JlZ=tLd9S9Y@VrUH?eS6a__$bJeNn$UyfDKdY?u;qsCY(jhlX8hMG&cPs)1KVHHB7=#D)Y&0UoMT8e z>vTs5T4|?;w0K)4@TXga&idDI#PEvGjb~^F$djf9P!ZIq_?-#JNMkp{+|L6OBW={5 zo$}n1Ad>cSAh&ei(n-$o+6LI%r6OOV;xFWlXJEQwuE^kO$h~6rZ`UB;%;#z-|8;jGAG;&+;r za8e~>D-1GN97A7%{%=~u=Y;Z_ji9mXvDNvw*QWbuT0$vqGF#*lytggzj&i$6IB(yA zl9=}GO4R%+PFM{bt@N9sqq&=zeHz)NPRt2cq3geo)<{kGUV{&z(}a=|5a#gD62N93-md>1)GO6=xFrfH;5Xj z8OG7-{x13lu#;?-UdkSkopcn=&vjyZRcnP$mP2qCw{|Alt8gqaLlOB#v6W_oqpVOh zTuWC}_FNVZZbdD*E6byg6(Va9%VK(Tp}sBj^FL`oY>PcW?SvJ&8=e*xD>)OwUiZ98 zu!5E)EdpCu5oZycBbxE{@*ukxGSV0FGHh!ucXYGNVnghHUMo}zdsE)0yrMtQJ?!P{HkWP!$q8n8s;%A{89jtZZ?>aM@;mQxMgp~`2nyQz=oPTE>}F`3Ql z%F^;5lD@*DXh0gMKO0`jw~?9pvgC~JX5M0{y!<8^%hQvK=nF+f=@|S%<3ex1Ie>4+ z?wRQvF*m~3rpsjfA`e^VA}~*0Q#fiJgPq_RsjGMe?YZC@{VTlZW|5bL6Nrrd9c>@1 z%T}^MiT%P|({Zv3KFDxV;aBr(#A@>^Y1^(>1c%+@rz=@DrVn9@Y<0PLvS0O%B#0lX&&q!=V9Wu&5yI;toDT zR|Y5l7v`O8y=xNrn%oc0lL@3hnIz1S7NNqtK=U8bldQaPq`jfPbi(+o5M88j7dsz5 z69MX)#!(HisUO93mRiVE`H8<4*PxDi**sbL!~3mR9Cj7tL34DFO(#3e6KQF-nY3qR z4KlVfZD-0H;|-e2RQliP-=f@6Go`b82-{`uE_A_N-m*|*VTPi0FytKL{0N;TPz6GM zvL&b`BLf|YUUq?wjZxYT4CqF^$KLSs5Db2lk>p6E$aIv|vCJUZ%yVB%1^M`ecDur!XxgXJuMX??OE z&M6&uLmiSH==JNm>C~rRLMkm8J;TE;c4upqJedHbSr#{4aB*zbh4BCM7WaV z(RU^t9G#-4$Z;uPZp-S2&X`_eJKFcbmTZnYExuE#;JnX9&>nbecxU*GQ}E9?nd!)% zo{4Ohyt~&&7WikAC&4PDPvK;xE@CEr!z?P-#i2vi9`7_>RW&a5UcOH5As5-Dloj*@ z?URgK9*`=@vbKA&HR;9SZzzX%9Y1`_#vpgSotUOSB`X>dWh02uR$0+Bs8cT$zoL&+ zmtz^IJ>3qcXWdJ0Aeiv?xbJz%kH`LYIv|_mfj+PucaT>MKK(>g$bVA5NVPlKxc>!b zzKUBS#YLAeSCPtAr`E(>WK$&Y|$LLUie9ZMJh9moH4Z6#Y)9*tA%x!b8 zV$VyqQk&6B>`g8ja)jG_f8JHH$#6{D)UYak25P2kkhPHitk@ux66#u48_Qw0_6XQO z4jT^3{tN%hSL0-8bX^vN_fLhiE%2m48vHo}lH^oo&zUm6mkv7pmu^p)PFSb2V zug5&Ml9YCwW9#xxkP|{J_iC1h|BeJ}ushgBazqhXbn{Syc!u8C04<$g0uB{^&AQt! zS;rygxwvpown$O>DDEn%{1w`rLs3Tx)}H8wzO%@hFV z)rqFEMVNUW5Ns*CLJjT=sLgxi$M}*s3mDxSt!ex^Zu@6|Qs#o+p=Y$F;UL!sYmlh4 zGx14vF&JPh{Sp10&c)`59dsW{Bme1&``(gmP$MNo4i_#n%qJfOY>pDs(M?<>bq4e$ zBQSsZntd(%z&nTs+@shi<5)Q7*#-4%XZUGo1u=C|=|BBm7!xBlD=Eh#=ASJ+X?4uG zUsH4<(|IXd$=C*VH@MWCqUdHD1V+4lmqNOE^MuXboKF*mq1M+ndQfLXFVBs{HffGy zi%Gp^M<@?;hEOvyd`;^mM1(HtB{J}0Rpup-OHeB{vYrR*3nha z-joXFlvla$Nzi=8F+RUOYwoWv-D3592idReuKb+0nRheoqPhgcc$n5o->p2T{w?&c z?5MPbwYLU*bwf*t)6$r{b2ldq#GByF3zM#nOMdCCJbDc~0IsqiIY$TT4?~%BF@K!)NCe1n*)X+Ic11CaRuNxBN~UMi zN_a0QL1*|gWS_&GXjyp~-UJp#|HShz&2)nm(N&05q(^8S?LBTa{ho4~yPRpPudp;P zPM4+l`6qOJrV2{os>`f=BtPrzPkZMT<=fDgUrfD5))J@dj)woR8R|S8=Wk`)$Npx$ zb=UMQP_KSOdKfRX|fcnVbk zi_s#@wXF*jVcp0Ty!RZFwZhzdRHy{qQ>>qu@km8Uo6&wcA+4( zkYg~JB-8r|dc{q#1j{s}%a_J}^!JheWIKf4Qme5$sS07KNYo>xPWm12PNRo5miIys zE_kx}*XSw92+ef57{sT9(iWw2b;!{BBvudNJGP z)Kr47VlKHN+hi`T_3AmRXqYXe(GS*|Y@O_=vMjBgzS_TA#J&#o4)QWB;Qfqy`M-#X z@3kxwo)`_tLQI9?goy*4CgCSxiGM6#V$CA0Y()G!bFB0+zc*bN>>!*^n90`Y(#R{e zR9ilhBh?VBWH57>E3yS_tD&y_47nY1h)S`kc_1`nVamt>Vli$rXYn~mkzGZ;7!UIa zbcDIRY=3B2>Rd>|L{>&N3s0#x5V2H@{{}^%n|XvS=-pz2@EnqIPg{PCGw<9|S&v_X^ z2DRO;m`7Wbm}vn#7K+j0P~6*w_kn%fYpJc@M@vFdVdCvY(J{%_mt;rxxSk+C(hP^7 zGPEV}MFRamesF#R7n9{Bxj}86M!BmQ$q+s8RMChnc9)jE5i>0w>I-}j$`oJ~O6mi9 zF}TX=l0TC*JsG+t_Jl4pzFIklK)Wldr(wR-*qr}{-*1GRx!O#I#&vaWC1POjIw+1(> zAM0gXE^tFMTC*nGo7R7>mngRV%y0QIHd8{B61VK3bK(AP8tKCy0QZ}1+n zYR2#?bhpu_Ne_L?&E|(}8P7^gAQ$<$T+FB^YkP)DO58|~$i-(zGnstAcBJW2B6@>P z_cg%%X(}vtT;V2ufoq-9Q8Bw7I!E>ePs2?61-OV^6~mPe2xkvrZ$UV`mv3{g(3Mi( zr(c7H6h|Gm8hH`#5mb@`MmcDC-9VB&gu&2(rO>hdo=83t$rg`}mdJ|XraQ%6Io8md zpI?F2BtuyZ^#YaxpB38{E{oSAvtW~dz6$jBtf!F3|BmS)8N=2B(%boStOWk7f74!i zI4Pey0BYgRDl>FmFp!SPLh+pgKT9x#`*;%g-{_8c-TA>zd|A{5*h#Ed0TcAZS(rRk zn1c#nj9hj8#cINtmtE!X!s4RGL*}S!^Qhn=B#iLrUQU^p7 zdc@ZzI8tqfP4ViG5%rK%k_qGV3fzO5hzqumNm5UCR}~brzW(H;&_#T1AnYsT8oBZ+ zk>4XTT{RhnecBvrOMXGV7W0}-s2vvCi&|gAh6q2zkFdJZZM-4&QA-*h!Zne>^n^7VwcD=nnM{Ol%mzAHT}`sn zp7_syzz|1Q_MMOwsKEwV=8#pUAwr#u2JCh4jL^~*6|M&RlgZ{!o*s}AzUAH#RZ#u^ zvuvRYWCr^xx>;Wa`{jogRHPg8oJ2up!$@HO`7If?&0>@owZmEE%-cc-%n4;ID3I@w zUeht;1w<27SQHtm<&q0yPv`|PC{2(&@xM5V07YSef8-wpebn|?Ux_J9O^Pm4cnFTp=H_}{0Xg{)u|@dM;aWx zVXMH~lPTmCRKauXJ?;|PLD{@sX(RH6QzaQp^1KH;d(Tn?!hnU1+hP=0xjvQ zWPN&DcATs5n^>0)3ZM2jQI>K9;kctTtPFgh-T6yr2Yv?3kfB?}m^4?o>@!CHq2(}Z z;n%zKCLvEJ;;zBg1>4Ymw6gF?euQkNBgGYjlVvyuhEyeK?~oN1D^^I;aF)-qR1$mH zUh)TtIl0>$C!t!XfuW*wJ(Lehc~hY;Xw>iRuCx*=ySX}<5j$$xN1l@j@={2|xDX#| zoUAKC2QDZZiR;GFE<7Xk5e#8(q6dYEiB`d$CRN%VeAZ_9x|2Wf=^HNlC0ZiZi1di5 z$bRxU_?_pku$8-+g;mBjNQ~R68BjRT`8>7_7#N_2OfBzgonU+grNnpYY}H3YN%cR%ra*ni zG4)!Ud4I>bWv;ys(xd+~w=QUA+y$p$jc%O(sn4K3@7yj7K<5TAjiGWf*fBralb!&G zUNh`vPgKXr(LA|gt9hF6K*~uUDpis%#I5R6vbX4H= z#G8hYtZdjOR1iiB|IjvK1NMVB4tqb_3yrF@99u=-yMIz5L#oLSrO zbJ|U^Gp1&|E-2V_e*(U~QXU{DHHQCB>*@FM*LtDWWKJuQ_z zBSfv`k-5CzBHx7Rku=)VZlYb;s_2u2u;7|F57rvHM$f7C8N)D9n95Vh%%F>B6Tcas zGV~+XPF)m!!z-|NbhYd*-5BS}U-&I&QP}`872iNt;g)t9jKy5KpUnv-9ogG2FLplXWLlcoC{;{0)#F1np!UgnHttf{ARh{kQy$ z;xXT!aGm{3Mni{$iKVMHIJ&V=u#v*7Ynac18)Da%`(&M}S_=Gisw zDxT*;vE18!pZgOurxz00+@({KG0Hb=vgQs;bF5;kVyE#=#8`cJ!~UeD96fa}6qDpF zq+R3zJyft2G(HOD!q*ThTEo2_ekH{V<}Mt^Mg1bofL^8Ke-xc%m{Zr+#m~7n$t0P0 zZe#`@+@-j?yE_zjm|}$@`<$C(l9^=UGPo4iV#TGUc%iry+QJ_zR-97o-S78-;R(6t zp1s#vzr}JR37r#FrP>w+Ic-{=Do_O3W2vg}CsbT8M6*6T+;!VgA^IWzU&8rA%_lm7 zjY=lu>bBn!;ZP%Ib9kz_7Wso^W3G4(JsiL6bfW9Gm@o{d-6tZ6J;$8PdS2AkUi=w8 zi-3Ac_f&ptG#N-Lpabt_{9eGp*V0WSOS~G*WWT9KvX*ofSwTkeL3FOGg0RrkUEHJ? zz-;zHP$61QylUzqpVaQ*zrjTKN`4WVDg5M11u_awqt?2K9`d~=1@Iw!)7F~YGOt4| zxIlFXz1ZWCs<@V{if5(5LQi^MznOu}lb_ALN)DHc8#X9SY!>?ud`=0cfWh9yizbBc zyVZO~c&}|Zdd)wJ8^m_pK$8I?yG}XVAX%|q z&P4O%&}-I=Qf-V}qwj^3zdUan%TP^Z`}1eAW0<|pKv#A;S)*J}ThM{AWttXNizO?v zioABEX}8n$xt~QZ^!0sYJ0$d5hlarAWF28^S|nCV9#2OiQLUDtmsFG92*@np?*~P2 zb9LK}DLdsUArlz?jolL#n%|M!c#@iFH<*XszcOZ%@J`cOAhum(JbHUBMaJs32zQXv z=N2}}kH~Q8!-68V3S>gO4*U@R!HW|tHsT&8Phe55U1}GsLyvfuMejOFiBrjk;9!C9 z1DfVOkM)kxXDx4RfJ#>&+>{ij<-sF1u|L3sMVqihqT;OJQ1cW2S-Ms_PtjixD$M4% zW-0(g+i~*-u^aPRiwNx_-MIr!D9+QrNS>iQt(@0QNGDrpL^w-px(BdF!ke5<5HM9? zW&8(8(Ue2g3%}V~wUfE?_Ot5lww5$unB3Y}Cwf5CqdVsBup6@ElJ<|nG}jNLMJr|FhL6Mfd>SN81+Db>Rhz@L%}~b6uJX217BGQ}uw_ z1y5>j><`V~x(r28@g45#iWJU7X5%Y|3Adp8VP{6ZephQ@>0&h`uX&~6)`_v_|C$wSv ze62FC!a>ZxZ^!emiQu&KBuAwxsw+@a5-{JPA}KhypayK9zl+W3YiWY2yW^*Drg}W4 zmbxP~uanL%dR4OSA~WYRa@N0@TuF{lRn;5|cBdm0713)klU_g~Snd24@MEw)%n@FK z$~FoZsetakuZ3l>jVMD8#ns`Tkbyo@e4T0}_R%gECtChdTq5^*K0FrUW}mUO@<9~$ z_=@ww=d^oyer3npT`b}ls2E`m1`g2DLW@L%OoN|8rJaY|_k?U)JN+wT6IzjuvJO_3 z6tt$wJk8{^sZ6^Hoo1hezT$!u$F$&VI-DN}{SkLs{-Cu16)S5B=g^}zWkxn!@SQ2R z4$VC)-~;ImAK5}|IPG9MOCvDMd;x~q5Rt7I8vZOU3ON9_a(QINw87Z-7 zF|R~VoA2l!h4hWL;i! zWk530o;duQ;h67}Tv7Q$W(5B6KNDWZFUpPlO{A72#QgM<)K=HlTNV?boJ^zVU?x05 zHSiz{u%U8cWEk8OPeVWLbb8uQmY8@=$gzFLCMJG>W6om=uWD%eL-8tkE3t3}DVN`i zKjlyHZ*3AIv8$3=TpM3aE<5{3S8(c$73xU#2$P&U(`u;plfM3+gGKX-RG-y(DN!3bmRcHoMrOL6= zQ61&Z`SP=Xla?_qB2QzSFE$S`dFeBCZ}Vi|PO=8n)E66z%J?Eh{bVb694~C!L9>kw z&{sc>VcW8+k;NN7N(Um3FhIwrPsKj!NycwepLD;dyTLJ>t}n%`t7UP-+Xisy|e*a)j&gYX0UNvHzz0zDN5 zvMnH|D%h)#WvB!#fn3bG-p`mu_eQFvuTiej&R*uvHY|Ib=N`;>woPEBF=loMkY>1?(H0_HWoW>S=t)BBJfc?37E z^^wPzMP5KL+^foX-dnK)#mtqK(jt+)#FTLs^BxmO!$dh=KlD2&vZ@X^kJ9fRz6dCyi=;9Nu>9i`9ZDAAyLs~l_Nrx0(1-}@I(+TXk5T!HNYB38vfPcGNkY3l-^4=^R8FR`ieUihUzD zgckDWd{Or?c!s}&#h8d#WJ6yz*iC06<=Gz4_}2xBu!-pW`zp@iCtH;EhmDe~%5W7& zceEz_yId3#6i-MRObYp-QD782#wm3+)Cimty4XkP#^T&XNGH7UsmOjqH_?n4=ajCE zB@@=culQChiVlEg4ju0tZJPTXoR4&1{b3zB19=$@Nh`?8!JWQttFmiqiT1wfpsNzQ z=KmYI8HWq~yhUcXU|K?z2*`#7s2lP8C@lUPn^q7jO#QqjRAf zolln&J(OivX+Pf7+@9T3+X<>~a=NuJX=07>o904viGHPUMLq_t6Pxh;sBpGrdf7zx z^HElFNRqPL3-m=;JTl!}i;iPd-;7MB-#d0XA8EG;d+nS2S5m{-Bs$D;i{5|(sg2|e zyJ2|cyk+@BRx%l?^Qt(J7h{>yJ7l!?)ZT$N!@J#-O8~~%o%P9Lg(25BDp)gg~Q0P*i z^7K#NFI-TR6ss8XNGQ@hUYiutKlKy~Gp;9L9!9P6NA`E(Vu2Cer?r!5-iXu_+6(_8 z(Eybe?}KoHHKnEGNkX>snF5o>(I&}@foZy2TAAJU-&( z{)ByA&V0o?W~JXIlT1fG=^sQt6Nmh@b4Tnxy(%1nhw+}ope^mX0C}O}ytWq|$C&(m zD&HUpSj#&ze`GE=Q@=w|9#>SNZ{zFPw~piCWgL5K1uJ=qp8T8AUr?0{@@JUaq6^kZ zs>$ONeIZD4g|1{>+>rLYd{)|xnjwSTaDP!t+Fn>opJCffD@CPHj`V$OxqBgW)OClL zA;UGxbDt+c9a>D<#O8Yv;h)%df$Q;?@-VS5uMf?&ISD^zbf!XU-wbe&Jxs4Hf^OmN zFq+;ZS6p$vKDR6VgJ;=r`)UFsvwFNU%HZ~po!*yMiT=kK> zWA#tK)?btJF8wR|Kh!fH!k*+{b`3U%2h(=3Y}(k~Oq!AGAs=Bw!hfO$Gb;KV>=}DP zUa7kMm7v%3j(OQ36~TOp&3V~)AAXEIBi+?~Oi$FaaUWbNHrhj7bCLzn1jg91sWx=M zlnn>mm7*G!ktiMNEf0qvE6IY|cC?Tfp+B$+yuach4Dy1tcQo} z9CC&$hT03GNlAT8d8~H6c@5v6Z?ZMk6;{=xf5Aq+FeeAUKb3Mc!B3uTq&+#DihG|M ze=V3v_6p+(WqS%9fgKv9a;09pE7^gH#T$GB{YzSz_4Eq%n>qOQhLusN36iFgvN?_lFisi{J~H z>F&lZbFHj3`N3+cVcbJ1X)DsftSpJc%D9>AraQb9;7Opl+|uHYeU?{)-90X>ByZEo z2=(F5^iF(Jcrp%gx7^zJ9^tgtXi_8Xpgp{>AJn;0J;;X0ACO@@4qv;^@WZBm$viyK z-f|uCn~Kl{;VIbc6Ce{=)D!b}pf#+A>A_%0I>7ORump2VRV}@YrMNP`G5X49;O^mI zVsF7B^I{mC+5wNOs|qi~v%JTmLxd3UUQqXSbR&hLuOg95wYxa}*%r`}|16bYOC!O^ z0PWwZNvM`TOs|G+-ErhGy=QG9rDzRu3U(;%(hl!s+ZVc08V@$Pq|?a8$$F#+wa7S^ zI*u-#=Eg6Or#aylWV7oE-i;mvUt__TCQNk{6+JKgXCu>k03j(SojUD|wqJe5DqAB81l# zYqGt*^TsQ-GRVejgH2V<^GlGH%Kr>~@#Nj0RJnbW$lX&X8Fm?|e~o5D3W+P=ow=R3 zLSG`I2|4d-MoyAhiRS20%UIMP4(V*X7zZ?U<&7TnCa4S4#; z7I^Bzc1FeCBwJq{8oBH7##EhSBiFFoaDg=%TZewvN_4+#9kW1w>^1boF2mB%f=EN5 z6&sP;F{h=xjlVKa2b)wq)Rc8~>4XFw1;3E?1#Nggd5T&KoifJD12uEw8bc%g4Zn{q zdo9dafJIGdzqoy=@$^62X-r7Te1dAKt-ia2>Jlp)Y2|wo+l=YL4dhl%X?oNBO6cdC z3L4nLf1njqud#)uee^Y(pPJ1v$;wNZYQQ(K1FUi7}97DDFtQJ zZ()qk(%KT|nw=0KAA~KC&1&o0@d4y?I=X3N<4GA)yWk^yn{cvU-i0Sm9ql`LI9a6Y zq%Ul&FMM>jaeu?M%IEk9={z>wbxI#1oQ`DB8N|WR!)#V_ji;@UC;w5<)BCHA>SyLn zbqyls^s@3WZ5eq7PxrSc2jekXU@ix3Z6{qjpqRC>E5QfQ#ffNcZ|N-b51%LR4e#kj znkh_(IoU3GqsvZHFoe!>53_D|?YHEy@0ABR;|>5 zrX+#X$Qy?59nFQOPzB#Izs9Fh5z-cHkp90fahoZrbbuaxHZS5+)h<8&K2j|~O@2f2TmEopC|;q@ zFl(_Kw@;IVnWCP~#H{;9_a5tQQeOFtzLE-&$M*T~m-iH%V84p0!8?+jxj5EQMbTZU zz?Kg!-OddeN94r7QxH_6Zn=ms$5k(V3v9{% znyj>5VCTJ?+->|7c#0k4H^S}NaZO3wUu3yH1aH~RycB#!22BhGz?)Q)0D*-(QSiuj z-<^a3ESvNS*fNm{d{cgmpK>a_BXS1VG|^&WTJAowm$U=fo<|yz>(LVns~H0B z0pz;9z*0khEquXSj}&tq7|*+sc`Jk!__&mUk7{Vm+IJdh8usN)A% zAqsGxX=4uFmM(^a{69}8*ePF+M#x;&L@3Mp#ht#S)F^Btdyrhy$NfKVUD78p(LI@M zhU}O&y%9M^yZWE=1>S*Fa5m)1kSkC%#~xdc-nJ;JM|9B~PQeY#c%QrewL77P$?M@^o6s+BNi4_P1V-@Zp%uZF$?-5DP()BgOCm9@ zs9Yk_5;F%n$YhWBJb4x@^iL6Vv5Iih<IzH5dD76NS5`PmlPz*jTQ{M8e67$e)r&Rt^^CP* zUFC}5Nn~kElhTm(LUH3xxGDveS)N8Y&)^n<$4}#(XR%n5N985d=x*-%izT2b`%SH7eEO7I;SOp5BRqKEZ{`HrGA!9 zTG6cBNavs%yor7rG#373F85pSW$ZKvAyvvLY#}GawK-k#8x;PYZXiFgeYkhXguS+@ zd=`94Yi3)Sa}qaf;hgz&Eh)w3Ngw3nj)+*6e$wnFkFk}=K?)MTP>ZLG(3C(yBc5rR zqwJw6?i$KZDel2!tskbO)y%C!R~PCB7b7?5PTLSx#s9Cmrcj&*+4xiiU6qg%>YFLl zMHgHi?#TZ`_vkME8a*yg$TQYbZf<@`KSV3zR<0J%_z`0Dm8Km{g!EcChZm4nP}wwX z!G2LKW>FQZr8)pzk|hdKQZ6~~1bA$EV99a$@!2X1%g9vwjRmE>TGx~ql_nc@k=1ZE z*qHqTZ*q64s%v+d*JYF^N!)1t3M=Hss$Rq`CQZ*09(Kz%5^pib3(W~PGERjRAtTh2 zZ`vD@oxB5PWvBTQ#u5A+>txf4>rrx+7%H7 zNS&QmgpjEOyyjKO9??t3Qj)AC?1Y7;U&%w$YF!t26{_KDlDCwcP~3r^z%V≶9x`TKswIV-dY3Mu=S{g@39<9Yie%D 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